📄 mrequest.java
字号:
/**
* Get Request Resolution Name
* @return name
*/
public String getResolutionName()
{
MResolution res = getResolution();
if (res == null)
return "";
return res.getName();
} // getResolutionName
/**
* Is Overdue
* @return true if overdue
*/
public boolean isOverdue()
{
return DUETYPE_Overdue.equals(getDueType());
} // isOverdue
/**
* Is due
* @return true if due
*/
public boolean isDue()
{
return DUETYPE_Due.equals(getDueType());
} // isDue
/**
* Get DueType Text (for jsp)
* @return text
*/
public String getDueTypeText()
{
return MRefList.getListName(getCtx(), DUETYPE_AD_Reference_ID, getDueType());
} // getDueTypeText
/**
* Get Priority Text (for jsp)
* @return text
*/
public String getPriorityText()
{
return MRefList.getListName(getCtx(), PRIORITY_AD_Reference_ID, getPriority());
} // getPriorityText
/**
* Get Importance Text (for jsp)
* @return text
*/
public String getPriorityUserText()
{
return MRefList.getListName(getCtx(), PRIORITYUSER_AD_Reference_ID, getPriorityUser());
} // getPriorityUserText
/**
* Get Confidential Text (for jsp)
* @return text
*/
public String getConfidentialText()
{
return MRefList.getListName(getCtx(), CONFIDENTIALTYPE_AD_Reference_ID, getConfidentialType());
} // getConfidentialText
/**
* Get Confidential Entry Text (for jsp)
* @return text
*/
public String getConfidentialEntryText()
{
return MRefList.getListName(getCtx(), CONFIDENTIALTYPEENTRY_AD_Reference_ID, getConfidentialTypeEntry());
} // getConfidentialTextEntry
/**
* Set Date Last Alert to today
*/
public void setDateLastAlert ()
{
super.setDateLastAlert (new Timestamp(System.currentTimeMillis()));
} // setDateLastAlert
/**
* Get Sales Rep
* @return Sales Rep User
*/
public MUser getSalesRep()
{
if (getSalesRep_ID() == 0)
return null;
return MUser.get(getCtx(), getSalesRep_ID());
} // getSalesRep
/**
* Get Sales Rep Name
* @return Sales Rep User
*/
public String getSalesRepName()
{
MUser sr = getSalesRep();
if (sr == null)
return "n/a";
return sr.getName();
} // getSalesRepName
/**
* Get Name of creator
* @return name
*/
public String getCreatedByName()
{
MUser user = MUser.get(getCtx(), getCreatedBy());
return user.getName();
} // getCreatedByName
/**
* Get Contact (may be not defined)
* @return Sales Rep User
*/
public MUser getUser()
{
if (getAD_User_ID() == 0)
return null;
if (m_user != null && m_user.getAD_User_ID() != getAD_User_ID())
m_user = null;
if (m_user == null)
m_user = new MUser (getCtx(), getAD_User_ID(), get_TrxName());
return m_user;
} // getUser
/**
* Get BPartner (may be not defined)
* @return Sales Rep User
*/
public MBPartner getBPartner()
{
if (getC_BPartner_ID() == 0)
return null;
if (m_partner != null && m_partner.getC_BPartner_ID() != getC_BPartner_ID())
m_partner = null;
if (m_partner == null)
m_partner = new MBPartner (getCtx(), getC_BPartner_ID(), get_TrxName());
return m_partner;
} // getBPartner
/**
* Web Can Update Request
* @return true if Web can update
*/
public boolean isWebCanUpdate()
{
if (isProcessed())
return false;
if (getR_Status_ID() == 0)
setR_Status_ID();
if (getR_Status_ID() == 0)
return false;
MStatus status = MStatus.get(getCtx(), getR_Status_ID());
if (status == null)
return false;
return status.isWebCanUpdate();
} // isWebCanUpdate
/**
* Set Priority
*/
private void setPriority()
{
if (getPriorityUser() == null)
setPriorityUser(PRIORITYUSER_Low);
//
if (getBPartner() != null)
{
MBPGroup bpg = MBPGroup.get(getCtx(), getBPartner().getC_BP_Group_ID());
String prioBase = bpg.getPriorityBase();
if (prioBase != null && !prioBase.equals(MBPGroup.PRIORITYBASE_Same))
{
char targetPrio = getPriorityUser().charAt(0);
if (prioBase.equals(MBPGroup.PRIORITYBASE_Lower))
targetPrio += 2;
else
targetPrio -= 2;
if (targetPrio < PRIORITY_High.charAt(0)) // 1
targetPrio = PRIORITY_High.charAt(0);
if (targetPrio > PRIORITY_Low.charAt(0)) // 9
targetPrio = PRIORITY_Low.charAt(0);
if (getPriority() == null)
setPriority(String.valueOf(targetPrio));
else // previous priority
{
if (targetPrio < getPriority().charAt(0))
setPriority(String.valueOf(targetPrio));
}
}
}
// Same if nothing else
if (getPriority() == null)
setPriority(getPriorityUser());
} // setPriority
/**
* Set Confidential Type Entry
* @param ConfidentialTypeEntry confidentiality
*/
public void setConfidentialTypeEntry (String ConfidentialTypeEntry)
{
if (ConfidentialTypeEntry == null)
ConfidentialTypeEntry = getConfidentialType();
//
if (CONFIDENTIALTYPE_Internal.equals(getConfidentialType()))
super.setConfidentialTypeEntry (CONFIDENTIALTYPE_Internal);
else if (CONFIDENTIALTYPE_PrivateInformation.equals(getConfidentialType()))
{
if (CONFIDENTIALTYPE_Internal.equals(ConfidentialTypeEntry)
|| CONFIDENTIALTYPE_PrivateInformation.equals(ConfidentialTypeEntry))
super.setConfidentialTypeEntry (ConfidentialTypeEntry);
else
super.setConfidentialTypeEntry (CONFIDENTIALTYPE_PrivateInformation);
}
else if (CONFIDENTIALTYPE_CustomerConfidential.equals(getConfidentialType()))
{
if (CONFIDENTIALTYPE_Internal.equals(ConfidentialTypeEntry)
|| CONFIDENTIALTYPE_PrivateInformation.equals(ConfidentialTypeEntry)
|| CONFIDENTIALTYPE_CustomerConfidential.equals(ConfidentialTypeEntry))
super.setConfidentialTypeEntry (ConfidentialTypeEntry);
else
super.setConfidentialTypeEntry (CONFIDENTIALTYPE_CustomerConfidential);
}
else if (CONFIDENTIALTYPE_PublicInformation.equals(getConfidentialType()))
super.setConfidentialTypeEntry (ConfidentialTypeEntry);
} // setConfidentialTypeEntry
/**
* Web Update
* @param result result
* @return true if updated
*/
public boolean webUpdate (String result)
{
MStatus status = MStatus.get(getCtx(), getR_Status_ID());
if (!status.isWebCanUpdate())
return false;
if (status.getUpdate_Status_ID() > 0)
setR_Status_ID(status.getUpdate_Status_ID());
setResult(result);
return true;
} // webUpdate
/**
* String Representation
* @return info
*/
public String toString ()
{
StringBuffer sb = new StringBuffer ("MRequest[");
sb.append (get_ID()).append ("-").append(getDocumentNo()).append ("]");
return sb.toString ();
} // toString
/**
* Create PDF
* @return pdf or null
*/
public File createPDF ()
{
try
{
File temp = File.createTempFile(get_TableName()+get_ID()+"_", ".pdf");
return createPDF (temp);
}
catch (Exception e)
{
log.severe("Could not create PDF - " + e.getMessage());
}
return null;
} // getPDF
/**
* Create PDF file
* @param file output file
* @return file if success
*/
public File createPDF (File file)
{
// ReportEngine re = ReportEngine.get (getCtx(), ReportEngine.INVOICE, getC_Invoice_ID());
// if (re == null)
return null;
// return re.getPDF(file);
} // createPDF
/**************************************************************************
* Before Save
* @param newRecord new
* @return true
*/
protected boolean beforeSave (boolean newRecord)
{
// Request Type
getRequestType();
if (newRecord || is_ValueChanged("R_RequestType_ID"))
{
if (m_requestType != null)
{
if (isInvoiced() != m_requestType.isInvoiced())
setIsInvoiced(m_requestType.isInvoiced());
if (getDateNextAction() == null && m_requestType.getAutoDueDateDays() > 0)
setDateNextAction(TimeUtil.addDays(new Timestamp(System.currentTimeMillis()),
m_requestType.getAutoDueDateDays()));
}
// Is Status Valid
if (getR_Status_ID() != 0)
{
MStatus sta = MStatus.get(getCtx(), getR_Status_ID());
MRequestType rt = MRequestType.get(getCtx(), getR_RequestType_ID());
if (sta.getR_StatusCategory_ID() != rt.getR_StatusCategory_ID())
setR_Status_ID(); // set to default
}
}
// Request Status
if (getR_Status_ID() == 0)
setR_Status_ID();
// Validate/Update Due Type
setDueType();
MStatus status = MStatus.get(getCtx(), getR_Status_ID());
// Close/Open
if (status != null)
{
if (status.isOpen())
{
if (getStartDate() == null)
setStartDate (new Timestamp(System.currentTimeMillis()));
if (getCloseDate() != null)
setCloseDate(null);
}
if (status.isClosed()
&& getCloseDate() == null)
setCloseDate(new Timestamp(System.currentTimeMillis()));
if (status.isFinalClose())
setProcessed(true);
}
// Confidential Info
if (getConfidentialType() == null)
{
getRequestType();
if (m_requestType != null)
{
String ct = m_requestType.getConfidentialType();
if (ct != null)
setConfidentialType (ct);
}
if (getConfidentialType() == null)
setConfidentialType(CONFIDENTIALTYPEENTRY_PublicInformation);
}
if (getConfidentialTypeEntry() == null)
setConfidentialTypeEntry(getConfidentialType());
else
setConfidentialTypeEntry(getConfidentialTypeEntry());
// Importance / Priority
setPriority();
// New
if (newRecord)
return true;
// Change Log
m_changed = false;
ArrayList<String> sendInfo = new ArrayList<String>();
MRequestAction ra = new MRequestAction(this, false);
//
if (checkChange(ra, "R_RequestType_ID"))
sendInfo.add("R_RequestType_ID");
if (checkChange(ra, "R_Group_ID"))
sendInfo.add("R_Group_ID");
if (checkChange(ra, "R_Category_ID"))
sendInfo.add("R_Category_ID");
if (checkChange(ra, "R_Status_ID"))
sendInfo.add("R_Status_ID");
if (checkChange(ra, "R_Resolution_ID"))
sendInfo.add("R_Resolution_ID");
//
if (checkChange(ra, "SalesRep_ID"))
{
// Sender
int AD_User_ID = Env.getContextAsInt(p_ctx, "#AD_User_ID");
if (AD_User_ID == 0)
AD_User_ID = getUpdatedBy();
// Old
Object oo = get_ValueOld("SalesRep_ID");
int oldSalesRep_ID = 0;
if (oo instanceof Integer)
oldSalesRep_ID = ((Integer)oo).intValue();
if (oldSalesRep_ID != 0)
{
// RequestActionTransfer - Request {0} was transfered by {1} from {2} to {3}
Object[] args = new Object[] {getDocumentNo(),
MUser.getNameOfUser(AD_User_ID),
MUser.getNameOfUser(oldSalesRep_ID),
MUser.getNameOfUser(getSalesRep_ID())
};
String msg = Msg.getMsg(getCtx(), "RequestActionTransfer", args);
addToResult(msg);
sendInfo.add("SalesRep_ID");
}
}
checkChange(ra, "AD_Role_ID");
//
checkChange(ra, "Priority");
if (checkChange(ra, "PriorityUser"))
sendInfo.add("PriorityUser");
if (checkChange(ra, "IsEscalated"))
sendInfo.add("IsEscalated");
//
checkChange(ra, "ConfidentialType");
checkChange(ra, "Summary");
checkChange(ra, "IsSelfService");
checkChange(ra, "C_BPartner_ID");
checkChange(ra, "AD_User_ID");
checkChange(ra, "C_Project_ID");
checkChange(ra, "A_Asset_ID");
checkChange(ra, "C_Order_ID");
checkChange(ra, "C_Invoice_ID");
checkChange(ra, "M_Product_ID");
checkChange(ra, "C_Payment_ID");
checkChange(ra, "M_InOut_ID");
checkChange(ra, "M_RMA_ID");
// checkChange(ra, "C_Campaign_ID");
// checkChange(ra, "RequestAmt");
checkChange(ra, "IsInvoiced");
checkChange(ra, "C_Activity_ID");
checkChange(ra, "DateNextAction");
checkChange(ra, "M_ProductSpent_ID");
checkChange(ra, "QtySpent");
checkChange(ra, "QtyInvoiced");
checkChange(ra, "StartDate");
checkChange(ra, "CloseDate");
checkChange(ra, "TaskStatus");
checkChange(ra, "DateStartPlan");
checkChange(ra, "DateCompletePlan");
//
if (m_changed)
ra.save();
// Current Info
MRequestUpdate update = new MRequestUpdate(this);
if (update.isNewInfo())
update.save();
else
update = null;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -