📄 vpayment.java
字号:
pPanel.add(pTermLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(2, 5, 2, 0), 0, 0));
pPanel.add(pTermCombo, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, 5, 2, 5), 0, 0));
//
bCashBookLabel.setText(Msg.translate(Env.getCtx(), "C_CashBook_ID"));
bCurrencyLabel.setText(Msg.translate(Env.getCtx(), "C_Currency_ID"));
bPanel.setLayout(bPanelLayout);
bAmountLabel.setText(Msg.getMsg(Env.getCtx(), "Amount"));
bAmountField.setText("");
bDateLabel.setText(Msg.translate(Env.getCtx(), "DateAcct"));
centerLayout.addLayoutComponent(bPanel, "bPanel");
centerPanel.add(bPanel, "bPanel");
bPanel.add(bCurrencyLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(2, 0, 2, 0), 0, 0));
bPanel.add(bCurrencyCombo, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, 5, 2, 5), 0, 0));
bPanel.add(bDateField, new GridBagConstraints(1, 2, 2, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 2, 5), 0, 0));
bPanel.add(bDateLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 0, 2, 0), 0, 0));
bPanel.add(bCashBookLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(2, 0, 2, 0), 0, 0));
bPanel.add(bCashBookCombo, new GridBagConstraints(1, 0, 2, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, 5, 2, 5), 0, 0));
bPanel.add(bAmountLabel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 0, 2, 0), 0, 0));
bPanel.add(bAmountField, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0
,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 2, 5), 0, 0));
//
mainPanel.add(confirmPanel, BorderLayout.SOUTH);
confirmPanel.addActionListener(this);
} // jbInit
/*************************************************************************/
/**
* Dynamic Init.
* B (Cash) (Currency)
* K (CreditCard) Type, Number, Exp, Approval
* L (DirectDebit) BPartner_Bank
* P (PaymentTerm) PaymentTerm
* S (Check) (Currency) CheckNo, Routing
*
* Currencies are shown, if member of EMU
* @param button button
* @return true if init OK
* @throws Exception
*/
private boolean dynInit (VButton button) throws Exception
{
Log.trace(Log.l3_Util, "VPayment.dynInit");
if (m_mTab.getValue("C_BPartner_ID") == null)
{
ADialog.error(0, this, "SaveErrorRowNotFound");
return false;
}
// Is the Trx posted?
// String Posted = (String)m_mTab.getValue("Posted");
// if (Posted != null && Posted.equals("Y"))
// return false;
// DocStatus
m_DocStatus = (String)m_mTab.getValue("DocStatus");
if (m_DocStatus == null)
m_DocStatus = "";
// Is the Trx closed? Reversed / Voided / Cloased
if (m_DocStatus.equals("RE") || m_DocStatus.equals("VO") || m_DocStatus.equals("CL"))
return false;
// Document is not complete - allow to change the Payment Rule only
if (m_DocStatus.equals("CO"))
m_onlyRule = false;
else
{
m_onlyRule = true;
centerPanel.setVisible(false);
// ADialog.error(m_WindowNo, this, "PaymentCompleteDocument");
// return false;
}
// Amount
m_Amount = (BigDecimal)m_mTab.getValue("GrandTotal");
if (!m_onlyRule && m_Amount.compareTo(Env.ZERO) == 0)
{
ADialog.error(m_WindowNo, this, "PaymentZero");
return false;
}
bAmountField.setText(m_Format.format(m_Amount));
sAmountField.setText(m_Format.format(m_Amount));
/**
* Get Data from Grid
*/
m_AD_Client_ID = ((Integer)m_mTab.getValue("AD_Client_ID")).intValue();
m_AD_Org_ID = ((Integer)m_mTab.getValue("AD_Org_ID")).intValue();
m_C_BPartner_ID = ((Integer)m_mTab.getValue("C_BPartner_ID")).intValue();
m_PaymentRule = (String)m_mTab.getValue("PaymentRule");
m_C_Currency_ID = ((Integer)m_mTab.getValue("C_Currency_ID")).intValue();
m_DateAcct = (Timestamp)m_mTab.getValue("DateAcct");
if (m_mTab.getValue("C_PaymentTerm_ID") != null)
m_C_PaymentTerm_ID = ((Integer)m_mTab.getValue("C_PaymentTerm_ID")).intValue();
// Existing Payment
if (m_mTab.getValue("C_Payment_ID") != null)
{
m_C_Payment_ID = ((Integer)m_mTab.getValue("C_Payment_ID")).intValue();
if (m_C_Payment_ID != 0)
m_mPayment = new MPayment(Env.getCtx(), m_C_Payment_ID);
if (m_mPayment != null)
{
// CreditCard
m_CCType = m_mPayment.getCreditCardType();
kNumberField.setText(m_mPayment.getCreditCardNumber());
kExpField.setText(m_mPayment.getCreditCardExp());
kApprovalField.setText(m_mPayment.getVoiceAuthCode());
kStatus.setText(m_mPayment.getR_PnRef());
// Check
m_C_BankAccount_ID = m_mPayment.getC_BankAccount_ID();
sRoutingField.setText(m_mPayment.getBankRoutingNo());
sNumberField.setText(m_mPayment.getBankAccountNo());
sCheckField.setText(m_mPayment.getBankCheckNo());
sStatus.setText(m_mPayment.getR_PnRef());
// Transfer
tRoutingField.setText(m_mPayment.getBankRoutingNo());
tNumberField.setText(m_mPayment.getBankAccountNo());
tStatus.setText(m_mPayment.getR_PnRef());
}
else
m_C_Payment_ID = 0;
}
else
m_C_Payment_ID = 0;
// Existing Cahbook entry
if (m_mTab.getValue("C_CashLine_ID") != null)
{
m_C_CashLine_ID = ((Integer)m_mTab.getValue("C_CashLine_ID")).intValue();
if (m_C_CashLine_ID != 0)
m_mCashBook = new MCashBook(m_C_CashLine_ID);
if (m_mCashBook != null && m_mCashBook.getC_CashLine_ID() != 0)
{
m_DateAcct = m_mCashBook.getStatementDate();
m_C_CashBook_ID = m_mCashBook.getC_CashBook_ID();
}
}
else
m_C_CashLine_ID = 0;
// Accounting Date
bDateField.setValue(m_DateAcct);
if (s_Currencies == null)
loadCurrencies();
// Is the currency an EMU currency?
Integer C_Currency_ID = new Integer(m_C_Currency_ID);
if (s_Currencies.containsKey(C_Currency_ID))
{
Enumeration en = s_Currencies.keys();
while (en.hasMoreElements())
{
Object key = en.nextElement();
bCurrencyCombo.addItem(s_Currencies.get(key));
sCurrencyCombo.addItem(s_Currencies.get(key));
}
sCurrencyCombo.addActionListener(this);
sCurrencyCombo.setSelectedItem(s_Currencies.get(C_Currency_ID));
bCurrencyCombo.addActionListener(this);
bCurrencyCombo.setSelectedItem(s_Currencies.get(C_Currency_ID));
}
else // No EMU Currency
{
bCurrencyLabel.setVisible(false); // Cash
bCurrencyCombo.setVisible(false);
sCurrencyLabel.setVisible(false); // Check
sCurrencyCombo.setVisible(false);
}
/**
* Payment Combo
*/
if (m_PaymentRule == null)
m_PaymentRule = "";
ValueNamePair vp = null;
HashMap values = button.getValues();
Object[] a = values.keySet().toArray();
for (int i = 0; i < a.length; i++)
{
String PaymentRule = (String)a[i];
ValueNamePair pp = new ValueNamePair(PaymentRule, (String)values.get(a[i]));
paymentCombo.addItem(pp);
if (PaymentRule.toString().equals(m_PaymentRule)) // to select
vp = pp;
}
// Set PaymentRule
paymentCombo.addActionListener(this);
if (vp != null)
paymentCombo.setSelectedItem(vp);
/**
* Load Payment Terms
*/
String SQL = Access.addROAccessSQL(Env.getCtx(),
"SELECT C_PaymentTerm_ID, Name FROM C_PaymentTerm",
"PaymentTerm", false);
KeyNamePair kp = null;
try
{
PreparedStatement pstmt = DB.prepareStatement(SQL);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
int key = rs.getInt(1);
String name = rs.getString(2);
KeyNamePair pp = new KeyNamePair(key, name);
pTermCombo.addItem(pp);
if (key == m_C_PaymentTerm_ID)
kp = pp;
}
rs.close();
pstmt.close();
}
catch (SQLException ept)
{
Log.error ("VPayment.dynInit -PaymentTerm-", ept);
}
// Set Selection
if (kp != null)
pTermCombo.setSelectedItem(kp);
/**
* Load Accounts
*/
SQL = "SELECT a.C_BP_BankAccount_ID, NVL(b.Name, ' ')||a.AccountNo AS Acct "
+ "FROM C_BP_BankAccount a,C_Bank b "
+ "WHERE C_BPartner_ID=?";
kp = null;
try
{
PreparedStatement pstmt = DB.prepareStatement(SQL);
pstmt.setInt(1, m_C_BPartner_ID);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
int key = rs.getInt(1);
String name = rs.getString(2);
KeyNamePair pp = new KeyNamePair(key, name);
tAccountCombo.addItem(pp);
// kp = pp;
}
rs.close();
pstmt.close();
}
catch (SQLException eac)
{
Log.error ("VPayment.dynInit -BPAcct-", eac);
}
// Set Selection
if (kp != null)
tAccountCombo.setSelectedItem(kp);
/**
* Load Credit Cards
*/
if (Env.isBaseLanguage(Env.getCtx(), "AD_Ref_List"))
SQL = "SELECT Value, Name FROM AD_Ref_List WHERE AD_Reference_ID=?";
else
SQL = "SELECT l.Value, t.Name FROM AD_Ref_List l, AD_Ref_List_Trl t "
+ "WHERE l.AD_Ref_List_ID=t.AD_Ref_List_ID"
+ " AND t.AD_Language='" + Env.getAD_Language(Env.getCtx()) + "'"
+ " AND l.AD_Reference_ID=?";
vp = null;
try
{
PreparedStatement pstmt = DB.prepareStatement(SQL);
pstmt.setInt(1, 149);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
String value = rs.getString(1);
String name = rs.getString(2);
ValueNamePair pp = new ValueNamePair(value, name);
kTypeCombo.addItem(pp);
if (m_CCType.equals(value))
vp = pp;
}
rs.close();
pstmt.close();
}
catch (SQLException ecc)
{
Log.error("VPayment.dunInit -CreditCard-", ecc);
}
// Set Selection
if (vp != null)
kTypeCombo.setSelectedItem(vp);
/**
* Load Bank Accounts
*/
SQL = Access.addROAccessSQL(Env.getCtx(),
"SELECT C_BankAccount_ID, Name || ' ' || AccountNo, IsDefault "
+ "FROM C_BankAccount, C_Bank WHERE C_BankAccount.C_Bank_ID=C_Bank.C_Bank_ID",
"C_BankAccount", true);
kp = null;
try
{
PreparedStatement pstmt = DB.prepareStatement(SQL);
ResultSet rs = pstmt.executeQuery();
while (rs.next())
{
int key = rs.getInt(1);
String name = rs.getString(2);
KeyNamePair pp = new KeyNamePair(key, name);
sBankAccountCombo.addItem(pp);
if (key == m_C_BankAccount_ID)
kp = pp;
if (kp == null && rs.getString(3).equals("Y")) // Default
kp = pp;
}
rs.close();
pstmt.close();
}
catch (SQLException ept)
{
Log.error ("VPayment.dynInit -PaymentTerm-", ept);
}
// Set Selection
if (kp != null)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -