📄 mpayment.java
字号:
super.setCreditCardExpYY(CreditCardExpYY);
} // setCreditCardExpYY
/**
* CreditCard Exp MMYY
* @param mmyy Exp in form of mmyy
* @return true if valid
*/
public boolean setCreditCardExp (String mmyy)
{
if (MPaymentValidate.validateCreditCardExp(mmyy).length() != 0)
return false;
//
String exp = MPaymentValidate.checkNumeric(mmyy);
String mmStr = exp.substring(0,2);
String yyStr = exp.substring(2,4);
setCreditCardExpMM (Integer.parseInt(mmStr));
setCreditCardExpYY (Integer.parseInt(yyStr));
return true;
} // setCreditCardExp
/**
* CreditCard Exp MMYY
* @param delimiter / - or null
* @return Exp
*/
public String getCreditCardExp(String delimiter)
{
String mm = String.valueOf(getCreditCardExpMM());
String yy = String.valueOf(getCreditCardExpYY());
StringBuffer retValue = new StringBuffer();
if (mm.length() == 1)
retValue.append("0");
retValue.append(mm);
//
if (delimiter != null)
retValue.append(delimiter);
//
if (yy.length() == 1)
retValue.append("0");
retValue.append(yy);
//
return (retValue.toString());
} // getCreditCardExp
/**
* MICR
* @param MICR MICR
*/
public void setMicr (String MICR)
{
super.setMicr (MPaymentValidate.checkNumeric(MICR));
} // setBankMICR
/**
* Routing No
* @param RoutingNo Routing No
*/
public void setRoutingNo(String RoutingNo)
{
super.setRoutingNo (MPaymentValidate.checkNumeric(RoutingNo));
} // setBankRoutingNo
/**
* Bank Account No
* @param AccountNo AccountNo
*/
public void setAccountNo (String AccountNo)
{
super.setAccountNo (MPaymentValidate.checkNumeric(AccountNo));
} // setBankAccountNo
/**
* Check No
* @param CheckNo Check No
*/
public void setCheckNo(String CheckNo)
{
super.setCheckNo(MPaymentValidate.checkNumeric(CheckNo));
} // setBankCheckNo
/**
* Set DocumentNo to Payment info.
* If there is a R_PnRef that is set automatically
*/
private void setDocumentNo()
{
// Cash Transfer
if ("X".equals(getTenderType()))
return;
// Current Document No
String documentNo = getDocumentNo();
// Existing reversal
if (documentNo != null
&& documentNo.indexOf(REVERSE_INDICATOR) >= 0)
return;
// If external number exists - enforce it
if (getR_PnRef() != null && getR_PnRef().length() > 0)
{
if (!getR_PnRef().equals(documentNo))
setDocumentNo(getR_PnRef());
return;
}
documentNo = "";
// Credit Card
if (TENDERTYPE_CreditCard.equals(getTenderType()))
{
documentNo = getCreditCardType()
+ " " + Obscure.obscure(getCreditCardNumber())
+ " " + getCreditCardExpMM()
+ "/" + getCreditCardExpYY();
}
// Own Check No
else if (TENDERTYPE_Check.equals(getTenderType())
&& !isReceipt()
&& getCheckNo() != null && getCheckNo().length() > 0)
{
documentNo = getCheckNo();
}
// Customer Check: Routing: Account #Check
else if (TENDERTYPE_Check.equals(getTenderType())
&& isReceipt())
{
if (getRoutingNo() != null)
documentNo = getRoutingNo() + ": ";
if (getAccountNo() != null)
documentNo += getAccountNo();
if (getCheckNo() != null)
{
if (documentNo.length() > 0)
documentNo += " ";
documentNo += "#" + getCheckNo();
}
}
// Set Document No
documentNo = documentNo.trim();
if (documentNo.length() > 0)
setDocumentNo(documentNo);
} // setDocumentNo
/**
* Set Refernce No (and Document No)
* @param R_PnRef reference
*/
public void setR_PnRef (String R_PnRef)
{
super.setR_PnRef (R_PnRef);
if (R_PnRef != null)
setDocumentNo (R_PnRef);
} // setR_PnRef
// ---------------
/**
* Set Payment Amount
* @param PayAmt Pay Amt
*/
public void setPayAmt (BigDecimal PayAmt)
{
super.setPayAmt(PayAmt == null ? Env.ZERO : PayAmt);
} // setPayAmt
/**
* Set Payment Amount
*
* @param C_Currency_ID currency
* @param payAmt amount
*/
public void setAmount (int C_Currency_ID, BigDecimal payAmt)
{
if (C_Currency_ID == 0)
C_Currency_ID = MClient.get(getCtx()).getC_Currency_ID();
setC_Currency_ID(C_Currency_ID);
setPayAmt(payAmt);
} // setAmount
/**
* Discount Amt
* @param DiscountAmt Discount
*/
public void setDiscountAmt (BigDecimal DiscountAmt)
{
super.setDiscountAmt (DiscountAmt == null ? Env.ZERO : DiscountAmt);
} // setDiscountAmt
/**
* WriteOff Amt
* @param WriteOffAmt WriteOff
*/
public void setWriteOffAmt (BigDecimal WriteOffAmt)
{
super.setWriteOffAmt (WriteOffAmt == null ? Env.ZERO : WriteOffAmt);
} // setWriteOffAmt
/**
* OverUnder Amt
* @param OverUnderAmt OverUnder
*/
public void setOverUnderAmt (BigDecimal OverUnderAmt)
{
super.setOverUnderAmt (OverUnderAmt == null ? Env.ZERO : OverUnderAmt);
setIsOverUnderPayment(getOverUnderAmt().compareTo(Env.ZERO) != 0);
} // setOverUnderAmt
/**
* Tax Amt
* @param TaxAmt Tax
*/
public void setTaxAmt (BigDecimal TaxAmt)
{
super.setTaxAmt (TaxAmt == null ? Env.ZERO : TaxAmt);
} // setTaxAmt
/**
* Set Info from BP Bank Account
* @param ba BP bank account
*/
public void setBP_BankAccount (MBPBankAccount ba)
{
log.fine("" + ba);
if (ba == null)
return;
setC_BPartner_ID(ba.getC_BPartner_ID());
setAccountAddress(ba.getA_Name(), ba.getA_Street(), ba.getA_City(),
ba.getA_State(), ba.getA_Zip(), ba.getA_Country());
setA_EMail(ba.getA_EMail());
setA_Ident_DL(ba.getA_Ident_DL());
setA_Ident_SSN(ba.getA_Ident_SSN());
// CC
if (ba.getCreditCardType() != null)
setCreditCardType(ba.getCreditCardType());
if (ba.getCreditCardNumber() != null)
setCreditCardNumber(ba.getCreditCardNumber());
if (ba.getCreditCardExpMM() != 0)
setCreditCardExpMM(ba.getCreditCardExpMM());
if (ba.getCreditCardExpYY() != 0)
setCreditCardExpYY(ba.getCreditCardExpYY());
if (ba.getCreditCardVV() != null)
setCreditCardVV(ba.getCreditCardVV());
// Bank
if (ba.getAccountNo() != null)
setAccountNo(ba.getAccountNo());
if (ba.getRoutingNo() != null)
setRoutingNo(ba.getRoutingNo());
} // setBP_BankAccount
/**
* Save Info from BP Bank Account
* @param ba BP bank account
* @return true if saved
*/
public boolean saveToBP_BankAccount (MBPBankAccount ba)
{
if (ba == null)
return false;
ba.setA_Name(getA_Name());
ba.setA_Street(getA_Street());
ba.setA_City(getA_City());
ba.setA_State(getA_State());
ba.setA_Zip(getA_Zip());
ba.setA_Country(getA_Country());
ba.setA_EMail(getA_EMail());
ba.setA_Ident_DL(getA_Ident_DL());
ba.setA_Ident_SSN(getA_Ident_SSN());
// CC
ba.setCreditCardType(getCreditCardType());
ba.setCreditCardNumber(getCreditCardNumber());
ba.setCreditCardExpMM(getCreditCardExpMM());
ba.setCreditCardExpYY(getCreditCardExpYY());
ba.setCreditCardVV(getCreditCardVV());
// Bank
if (getAccountNo() != null)
ba.setAccountNo(getAccountNo());
if (getRoutingNo() != null)
ba.setRoutingNo(getRoutingNo());
// Trx
ba.setR_AvsAddr(getR_AvsAddr());
ba.setR_AvsZip(getR_AvsZip());
//
boolean ok = ba.save(get_TrxName());
log.fine("saveToBP_BankAccount - " + ba);
return ok;
} // setBP_BankAccount
/**
* Set Doc Type bases on IsReceipt
*/
private void setC_DocType_ID ()
{
setC_DocType_ID(isReceipt());
} // setC_DocType_ID
/**
* Set Doc Type
* @param isReceipt is receipt
*/
public void setC_DocType_ID (boolean isReceipt)
{
setIsReceipt(isReceipt);
String sql = "SELECT C_DocType_ID FROM C_DocType WHERE AD_Client_ID=? AND DocBaseType=? ORDER BY IsDefault DESC";
try
{
PreparedStatement pstmt = DB.prepareStatement(sql, get_TrxName());
pstmt.setInt(1, getAD_Client_ID());
if (isReceipt)
pstmt.setString(2, MDocType.DOCBASETYPE_ARReceipt);
else
pstmt.setString(2, MDocType.DOCBASETYPE_APPayment);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
setC_DocType_ID(rs.getInt(1));
else
log.warning ("setDocType - NOT found - isReceipt=" + isReceipt);
rs.close();
pstmt.close();
}
catch (SQLException e)
{
log.log(Level.SEVERE, sql, e);
}
} // setC_DocType_ID
/**
* Set Document Type
* @param C_DocType_ID doc type
*/
public void setC_DocType_ID (int C_DocType_ID)
{
// if (getDocumentNo() != null && getC_DocType_ID() != C_DocType_ID)
// setDocumentNo(null);
super.setC_DocType_ID(C_DocType_ID);
} // setC_DocType_ID
/**
* Verify Document Type with Invoice
* @return true if ok
*/
private boolean verifyDocType()
{
if (getC_DocType_ID() == 0)
return false;
//
Boolean invoiceSO = null;
// Check Invoice First
if (getC_Invoice_ID() > 0)
{
String sql = "SELECT idt.IsSOTrx "
+ "FROM C_Invoice i"
+ " INNER JOIN C_DocType idt ON (i.C_DocType_ID=idt.C_DocType_ID) "
+ "WHERE i.C_Invoice_ID=?";
PreparedStatement pstmt = null;
try
{
pstmt = DB.prepareStatement(sql, get_TrxName());
pstmt.setInt(1, getC_Invoice_ID());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
invoiceSO = new Boolean ("Y".equals(rs.getString(1)));
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, sql, e);
}
try
{
if (pstmt != null)
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
pstmt = null;
}
} // Invoice
// DocumentType
Boolean paymentSO = null;
PreparedStatement pstmt = null;
String sql = "SELECT IsSOTrx "
+ "FROM C_DocType "
+ "WHERE C_DocType_ID=?";
try
{
pstmt = DB.prepareStatement(sql, get_TrxName());
pstmt.setInt(1, getC_DocType_ID());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
paymentSO = new Boolean ("Y".equals(rs.getString(1)));
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
log.log(Level.SEVERE, sql, e);
}
try
{
if (pstmt != null)
pstmt.close();
pstmt = null;
}
catch (Exception e)
{
pstmt = null;
}
// No Payment info
if (paymentSO == null)
return false;
setIsReceipt(paymentSO.booleanValue());
// We have an Invoice .. and it does not match
if (invoiceSO != null
&& invoiceSO.booleanValue() != paymentSO.booleanValue())
return false;
// OK
return true;
} // verifyDocType
/**
* Get ISO Code of Currency
* @return Currency ISO
*/
public String getCurrencyISO()
{
return MCurrency.getISO_Code (getCtx(), getC_Currency_ID());
} // getCurrencyISO
/**
* Get Document Status
* @return Document Status Clear Text
*/
public String getDocStatusName()
{
return MRefList.getListName(getCtx(), 131, getDocStatus());
} // getDocStatusName
/**
* Get Name of Credit Card
* @return Name
*/
public String getCreditCardName()
{
return getCreditCardName(getCreditCardType());
} // getCreditCardName
/**
* Get Name of Credit Card
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -