📄 vpayprint.java
字号:
{
m_C_BankAccount_ID = rs.getInt(1);
fBank.setText(rs.getString(2));
fCurrency.setText(rs.getString(3));
fBalance.setValue(rs.getBigDecimal(4));
}
else
{
m_C_BankAccount_ID = -1;
fBank.setText("");
fCurrency.setText("");
fBalance.setValue(Env.ZERO);
Log.error("VPayPrint.loadPaySelectInfo - No BankAccount for C_PaySelection_ID=" + C_PaySelection_ID);
}
rs.close();
pstmt.close();
}
catch (SQLException e)
{
Log.error("VPayPrint.loadPaySelectInfo", e);
}
loadPaymentRule();
} // loadPaySelectInfo
/**
* Bank changed - load PaymentRule
*/
private void loadPaymentRule()
{
Log.trace(Log.l1_User, "VPayPrint.loadPaymentRule");
if (m_C_BankAccount_ID == -1)
return;
// load PaymentRule for Bank
int C_PaySelection_ID = ((KeyNamePair)fPaySelect.getSelectedItem()).getKey();
fPaymentRule.removeAllItems();
int AD_Reference_ID = 195; // MLookupInfo.getAD_Reference_ID("All_Payment Rule");
Language language = Language.getLanguage(Env.getAD_Language(Env.getCtx()));
MLookupInfo info = MLookupFactory.getLookup_List(language, AD_Reference_ID);
String sql = info.Query.substring(0, info.Query.indexOf(" ORDER BY"))
+ " AND " + info.KeyColumn
+ " IN (SELECT PaymentRule FROM C_PaySelectionCheck WHERE C_PaySelection_ID=?) "
+ info.Query.substring(info.Query.indexOf(" ORDER BY"));
try
{
PreparedStatement pstmt = DB.prepareStatement(sql);
pstmt.setInt(1, C_PaySelection_ID);
ResultSet rs = pstmt.executeQuery();
//
while (rs.next())
{
ValueNamePair pp = new ValueNamePair(rs.getString(2), rs.getString(3));
fPaymentRule.addItem(pp);
}
rs.close();
pstmt.close();
}
catch (SQLException e)
{
Log.error("VPayPrint.loadPayBankInfo - SQL=" + sql, e);
}
if (fPaymentRule.getItemCount() == 0)
Log.trace(Log.l3_Util, "PaySel=" + C_PaySelection_ID + ", BAcct=" + m_C_BankAccount_ID, sql);
loadPaymentRuleInfo();
} // loadPaymentRule
/**
* PaymentRule changed - load DocumentNo, NoPayments,
* enable/disable EFT, Print
*/
private void loadPaymentRuleInfo()
{
String PaymentRule = ((ValueNamePair)fPaymentRule.getSelectedItem()).getValue();
Log.trace(Log.l1_User, "VPayPrint.loadPaymentRuleInfo", "PaymentRule=" + PaymentRule);
fNoPayments.setText(" ");
int C_PaySelection_ID = ((KeyNamePair)fPaySelect.getSelectedItem()).getKey();
String sql = "SELECT COUNT(*) "
+ "FROM C_PaySelectionCheck "
+ "WHERE C_PaySelection_ID=?";
try
{
PreparedStatement pstmt = DB.prepareStatement(sql);
pstmt.setInt(1, C_PaySelection_ID);
ResultSet rs = pstmt.executeQuery();
//
if (rs.next())
fNoPayments.setText(String.valueOf(rs.getInt(1)));
rs.close();
pstmt.close();
}
catch (SQLException e)
{
Log.error("VPayPrint.loadPaymentRuleInfo", e);
}
bProcess.setEnabled(PaymentRule.equals("T"));
// DocumentNo
sql = "SELECT CurrentNext "
+ "FROM C_BankAccountDoc "
+ "WHERE C_BankAccount_ID=? AND PaymentRule=?";
try
{
PreparedStatement pstmt = DB.prepareStatement(sql);
pstmt.setInt(1, m_C_BankAccount_ID);
pstmt.setString(2, PaymentRule);
ResultSet rs = pstmt.executeQuery();
//
if (rs.next())
fDocumentNo.setValue(new Integer(rs.getInt(1)));
else
{
Log.error ("VPayPrint.loadPaymentRuleInfo - No BankAccountDoc for C_BankAccount_ID="
+ m_C_BankAccount_ID + " AND PaymentRule=" + PaymentRule);
ADialog.error (m_WindowNo, this, "VPayPrintNoDoc");
}
rs.close();
pstmt.close();
}
catch (SQLException e)
{
Log.error("VPayPrint.loadPaymentRuleInfo ba", e);
}
} // loadPaymentRuleInfo
/*************************************************************************/
/**
* Export payments to file
*/
private void cmd_export()
{
String PaymentRule = ((ValueNamePair)fPaymentRule.getSelectedItem()).getValue();
Log.trace(Log.l1_User, "VPayPrint.cmd_export", PaymentRule);
if (!getChecks(PaymentRule))
return;
// Get File Info
JFileChooser fc = new JFileChooser();
fc.setDialogTitle(Msg.getMsg(Env.getCtx(), "Export"));
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
fc.setMultiSelectionEnabled(false);
fc.setSelectedFile(new java.io.File("paymentExport.txt"));
if (fc.showSaveDialog(this) != JFileChooser.APPROVE_OPTION)
return;
// Create File
int no = MPaySelectionCheck.exportToFile(m_checks, fc.getSelectedFile());
ADialog.info(m_WindowNo, this, "Saved",
fc.getSelectedFile().getAbsolutePath() + "\n"
+ Msg.getMsg(Env.getCtx(), "NoOfLines") + "=" + no);
if (ADialog.ask(m_WindowNo, this, "VPayPrintSuccess?"))
{
int lastDocumentNo = MPaySelectionCheck.confirmPrint (m_checks);
// document No not updated
}
dispose();
} // cmd_export
/**
* Create EFT payment
*/
private void cmd_EFT()
{
String PaymentRule = ((ValueNamePair)fPaymentRule.getSelectedItem()).getValue();
Log.trace(Log.l1_User, "VPayPrint.cmd_EFT", PaymentRule);
if (!getChecks(PaymentRule))
return;
dispose();
} // cmd_EFT
/**
* Print Checks and/or Remittance
*/
private void cmd_print()
{
String PaymentRule = ((ValueNamePair)fPaymentRule.getSelectedItem()).getValue();
Log.trace(Log.l1_User, "VPayPrint.cmd_print", PaymentRule);
if (!getChecks(PaymentRule))
return;
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
boolean somethingPrinted = false;
boolean directPrint = !Ini.getPropertyBool(Ini.P_PRINTPREVIEW);
// for all checks
for (int i = 0; i < m_checks.length; i++)
{
MPaySelectionCheck check = m_checks[i];
// ReportCtrl will check BankAccountDoc for PrintFormat
boolean ok = ReportCtl.startDocumentPrint(ReportCtl.CHECK, check.getID(), directPrint);
if (!somethingPrinted && ok)
somethingPrinted = true;
}
// Confirm Print and Update BankAccountDoc
if (somethingPrinted && ADialog.ask(m_WindowNo, this, "VPayPrintSuccess?"))
{
int lastDocumentNo = MPaySelectionCheck.confirmPrint (m_checks);
if (lastDocumentNo != 0)
{
StringBuffer sb = new StringBuffer();
sb.append("UPDATE C_BankAccountDoc SET CurrentNext=").append(++lastDocumentNo)
.append(" WHERE C_BankAccount_ID=").append(m_C_BankAccount_ID)
.append(" AND PaymentRule='").append(PaymentRule).append("'");
DB.executeUpdate(sb.toString());
}
} // confirm
if (ADialog.ask(m_WindowNo, this, "VPayPrintPrintRemittance"))
{
for (int i = 0; i < m_checks.length; i++)
{
MPaySelectionCheck check = m_checks[i];
ReportCtl.startDocumentPrint(ReportCtl.REMITTANCE, check.getID(), directPrint);
}
} // remittance
this.setCursor(Cursor.getDefaultCursor());
dispose();
} // cmd_print
/*************************************************************************/
/**
* Get Checks
* @param PaymentRule Payment Rule
* @return true if payments were created
*/
private boolean getChecks(String PaymentRule)
{
// do we have values
if (fPaySelect.getSelectedIndex() == -1 || m_C_BankAccount_ID == -1
|| fPaymentRule.getSelectedIndex() == -1 || fDocumentNo.getValue() == null)
{
ADialog.error(m_WindowNo, this, "VPayPrintNoRecords",
"(" + Msg.translate(Env.getCtx(), "C_PaySelectionLine_ID") + "=0)");
return false;
}
// get data
int C_PaySelection_ID = ((KeyNamePair)fPaySelect.getSelectedItem()).getKey();
int startDocumentNo = ((BigDecimal)fDocumentNo.getValue()).intValue();
Log.trace(Log.l3_Util, "VPayPrint.createPayments",
"C_PaySelection_ID=" + C_PaySelection_ID + ", PaymentRule=" + PaymentRule + ", DocumentNo=" + startDocumentNo);
//
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
m_checks = MPaySelectionCheck.get(C_PaySelection_ID, PaymentRule, startDocumentNo);
this.setCursor(Cursor.getDefaultCursor());
//
if (m_checks == null || m_checks.length == 0)
{
ADialog.error(m_WindowNo, this, "VPayPrintNoRecords",
"(" + Msg.translate(Env.getCtx(), "C_PaySelectionLine_ID") + " #0");
return false;
}
return true;
} // getChecks
} // PayPrint
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -