From e1cf4390faded9ba5fecc77ff1990ee89b57ac6d Mon Sep 17 00:00:00 2001 From: phib Date: Mon, 8 Sep 2008 07:31:04 +0000 Subject: [PATCH] FR [ 2094183 ] New Bank Statement create From Added date, amount and bp filters. http://sourceforge.net/tracker/index.php?func=detail&aid=2094183&group_id=176962&atid=879335 --- client/src/org/compiere/grid/VCreateFrom.java | 289 +++++++++++------- .../compiere/grid/VCreateFromStatement.java | 276 ++++++++++------- 2 files changed, 343 insertions(+), 222 deletions(-) diff --git a/client/src/org/compiere/grid/VCreateFrom.java b/client/src/org/compiere/grid/VCreateFrom.java index 8a5f2b2264..8418528a1f 100644 --- a/client/src/org/compiere/grid/VCreateFrom.java +++ b/client/src/org/compiere/grid/VCreateFrom.java @@ -59,8 +59,10 @@ public abstract class VCreateFrom extends CDialog int AD_Table_ID = Env.getContextAsInt(Env.getCtx(), mTab.getWindowNo(), "BaseTable_ID"); VCreateFrom retValue = null; - if (AD_Table_ID == 392) // C_BankStatement + if (AD_Table_ID == 392) { // C_BankStatement retValue = new VCreateFromStatement (mTab); + retValue.setSize(new Dimension(800,600)); + } else if (AD_Table_ID == 318) // C_Invoice retValue = new VCreateFromInvoice (mTab); else if (AD_Table_ID == 319) // M_InOut @@ -144,8 +146,6 @@ public abstract class VCreateFrom extends CDialog protected VLookup tenderTypeField; private JLabel documentTypeLabel = new JLabel(); protected VLookup documentTypeField; - private JLabel docDateLabel = new JLabel(); - protected VDate docDateField = new VDate(); // Bug [1759431] protected JCheckBox sameWarehouseCb = new JCheckBox(); protected VLookup bPartnerField; @@ -163,6 +163,19 @@ public abstract class VCreateFrom extends CDialog protected MiniTable dataTable = new MiniTable(); protected JLabel locatorLabel = new JLabel(); protected VLocator locatorField = new VLocator(); + private CLabel documentNoLabel = new CLabel(Msg.translate(Env.getCtx(), "DocumentNo")); + protected CTextField documentNoField = new CTextField(10); + protected CLabel BPartner_idLabel = new CLabel(Msg.translate(Env.getCtx(), "BPartner")); + protected VLookup bPartnerLookup; + private CLabel dateFromLabel = new CLabel(Msg.translate(Env.getCtx(), "DateTrx")); + protected VDate dateFromField = new VDate("DateFrom", false, false, true, DisplayType.Date, Msg.translate(Env.getCtx(), "DateFrom")); + private CLabel dateToLabel = new CLabel("-"); + protected VDate dateToField = new VDate("DateTo", false, false, true, DisplayType.Date, Msg.translate(Env.getCtx(), "DateTo")); + private CLabel amtFromLabel = new CLabel(Msg.translate(Env.getCtx(), "PayAmt")); + protected VNumber amtFromField = new VNumber("AmtFrom", false, false, true, DisplayType.Amount, Msg.translate(Env.getCtx(), "AmtFrom")); + private CLabel amtToLabel = new CLabel("-"); + protected VNumber amtToField = new VNumber("AmtTo", false, false, true, DisplayType.Amount, Msg.translate(Env.getCtx(), "AmtTo")); + public static final String SELECT_ALL = "SelectAll"; // public static final String SELECT_ALL_TOOLTIP = "Select all records"; @@ -184,120 +197,162 @@ public abstract class VCreateFrom extends CDialog * * @throws Exception */ - private void jbInit() throws Exception - { - parameterPanel.setLayout(parameterLayout); - parameterStdPanel.setLayout(parameterStdLayout); - parameterBankPanel.setLayout(parameterBankLayout); - // - bankAccountLabel.setText(Msg.translate(Env.getCtx(), "C_BankAccount_ID")); - //RF [1811114] - authorizationLabel.setText(Msg.translate(Env.getCtx(), "R_AuthCode")); - bPartnerLabel.setText(Msg.getElement(Env.getCtx(), "C_BPartner_ID")); - orderLabel.setText(Msg.getElement(Env.getCtx(), "C_Order_ID", false)); - invoiceLabel.setText(Msg.getElement(Env.getCtx(), "C_Invoice_ID", false)); - shipmentLabel.setText(Msg.getElement(Env.getCtx(), "M_InOut_ID", false)); - locatorLabel.setText(Msg.translate(Env.getCtx(), "M_Locator_ID")); - rmaLabel.setText(Msg.translate(Env.getCtx(), "M_RMA_ID")); - sameWarehouseCb.setText(Msg.getMsg(Env.getCtx(), "FromSameWarehouseOnly", true)); - sameWarehouseCb.setToolTipText(Msg.getMsg(Env.getCtx(), "FromSameWarehouseOnly", false)); - documentTypeLabel.setText(Msg.translate(Env.getCtx(), "C_DocType_ID")); - tenderTypeLabel.setText(Msg.translate(Env.getCtx(), "TenderType")); - docDateLabel.setText(Msg.translate(Env.getCtx(), "StatementDate")); - - // - this.getContentPane().add(parameterPanel, BorderLayout.NORTH); - parameterPanel.add(parameterBankPanel, BorderLayout.NORTH); - //RF [1811114] - parameterBankPanel.add(bankAccountLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - if (bankAccountField != null) - parameterBankPanel.add(bankAccountField, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - - parameterBankPanel.add(docDateLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterBankPanel.add(docDateField, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - parameterBankPanel.add(documentTypeLabel, new GridBagConstraints(4, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - if(documentTypeField!= null) - parameterBankPanel.add(documentTypeField, new GridBagConstraints(5, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - - parameterBankPanel.add(tenderTypeLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - if(tenderTypeField!=null) - parameterBankPanel.add(tenderTypeField, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - - parameterBankPanel.add(authorizationLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterBankPanel.add(authorizationField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - - parameterStdPanel.add(orderField, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 1, 5, 5), 0, 0)); - - parameterStdPanel.add(invoiceLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterStdPanel.add(invoiceField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 1, 5, 5), 0, 0)); - parameterPanel.add(parameterStdPanel, BorderLayout.CENTER); - parameterStdPanel.add(bPartnerLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - if (bPartnerField != null) - parameterStdPanel.add(bPartnerField, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - parameterStdPanel.add(orderLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterStdPanel.add(orderField, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - parameterStdPanel.add(invoiceLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterStdPanel.add(invoiceField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - parameterStdPanel.add(shipmentLabel, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterStdPanel.add(shipmentField, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - parameterStdPanel.add(locatorLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterStdPanel.add(locatorField, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - parameterStdPanel.add(sameWarehouseCb, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - - // Add RMA document selection to panel - parameterStdPanel.add(rmaLabel, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0 - ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); - parameterStdPanel.add(rmaField, new GridBagConstraints(3, 3, 1, 1, 0.0, 0.0 - ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); - - this.getContentPane().add(dataPane, BorderLayout.CENTER); - dataPane.getViewport().add(dataTable, null); - // - // - // @Trifon - AppsAction selectAllAction = new AppsAction (SELECT_ALL, KeyStroke.getKeyStroke(KeyEvent.VK_A, java.awt.event.InputEvent.ALT_MASK), null); - - CButton selectAllButton = (CButton)selectAllAction.getButton(); - selectAllButton.setMargin(new Insets (0, 10, 0, 10)); - selectAllButton.setDefaultCapable(true); - selectAllButton.addActionListener(this); -// selectAllButton.setToolTipText(Msg.getMsg(Env.getCtx(), SELECT_ALL_TOOLTIP)); - confirmPanel.addButton(selectAllButton); - // - this.getContentPane().add(southPanel, BorderLayout.SOUTH); - southPanel.setLayout(southLayout); - southPanel.add(confirmPanel, BorderLayout.CENTER); - // Trifon End - - this.getContentPane().add(southPanel, BorderLayout.SOUTH); - southPanel.setLayout(southLayout); - southPanel.add(confirmPanel, BorderLayout.CENTER); - southPanel.add(statusBar, BorderLayout.SOUTH); - } // jbInit + private void jbInit() throws Exception + { + parameterPanel.setLayout(parameterLayout); + parameterStdPanel.setLayout(parameterStdLayout); + parameterBankPanel.setLayout(parameterBankLayout); + // + bankAccountLabel.setText(Msg.translate(Env.getCtx(), "C_BankAccount_ID")); + //RF [1811114] + authorizationLabel.setText(Msg.translate(Env.getCtx(), "R_AuthCode")); + bPartnerLabel.setText(Msg.getElement(Env.getCtx(), "C_BPartner_ID")); + orderLabel.setText(Msg.getElement(Env.getCtx(), "C_Order_ID", false)); + invoiceLabel.setText(Msg.getElement(Env.getCtx(), "C_Invoice_ID", false)); + shipmentLabel.setText(Msg.getElement(Env.getCtx(), "M_InOut_ID", false)); + locatorLabel.setText(Msg.translate(Env.getCtx(), "M_Locator_ID")); + rmaLabel.setText(Msg.translate(Env.getCtx(), "M_RMA_ID")); + sameWarehouseCb.setText(Msg.getMsg(Env.getCtx(), "FromSameWarehouseOnly", true)); + sameWarehouseCb.setToolTipText(Msg.getMsg(Env.getCtx(), "FromSameWarehouseOnly", false)); + documentTypeLabel.setText(Msg.translate(Env.getCtx(), "C_DocType_ID")); + tenderTypeLabel.setText(Msg.translate(Env.getCtx(), "TenderType")); + + // + this.getContentPane().add(parameterPanel, BorderLayout.NORTH); + parameterPanel.add(parameterBankPanel, BorderLayout.NORTH); + //RF [1811114] + documentNoLabel.setLabelFor(documentNoField); + // + + + dateFromLabel.setLabelFor(dateFromField); + dateFromField.setToolTipText(Msg.translate(Env.getCtx(), "DateFrom")); + dateToLabel.setLabelFor(dateToField); + dateToField.setToolTipText(Msg.translate(Env.getCtx(), "DateTo")); + amtFromLabel.setLabelFor(amtFromField); + amtFromField.setToolTipText(Msg.translate(Env.getCtx(), "AmtFrom")); + amtToLabel.setLabelFor(amtToField); + amtToField.setToolTipText(Msg.translate(Env.getCtx(), "AmtTo")); + + parameterBankPanel.add(bankAccountLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + if (bankAccountField != null) + parameterBankPanel.add(bankAccountField, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + parameterBankPanel.add(documentTypeLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + if(documentTypeField!= null) + parameterBankPanel.add(documentTypeField, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + parameterBankPanel.add(tenderTypeLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + if(tenderTypeField!=null) + parameterBankPanel.add(tenderTypeField, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + parameterBankPanel.add(BPartner_idLabel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + if ( bPartnerLookup != null ) + { + parameterBankPanel.add(bPartnerLookup, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + } + + + parameterBankPanel.add(documentNoLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterBankPanel.add(documentNoField, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + parameterBankPanel.add(authorizationLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterBankPanel.add(authorizationField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + + + parameterBankPanel.add(amtFromLabel, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterBankPanel.add(amtFromField, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + parameterBankPanel.add(amtToLabel, new GridBagConstraints(4, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterBankPanel.add(amtToField, new GridBagConstraints(5, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + parameterBankPanel.add(dateFromLabel, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterBankPanel.add(dateFromField, new GridBagConstraints(3, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + parameterBankPanel.add(dateToLabel, new GridBagConstraints(4, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterBankPanel.add(dateToField, new GridBagConstraints(5, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + parameterStdPanel.add(orderField, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 1, 5, 5), 0, 0)); + + parameterStdPanel.add(invoiceLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterStdPanel.add(invoiceField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 1, 5, 5), 0, 0)); + parameterPanel.add(parameterStdPanel, BorderLayout.CENTER); + parameterStdPanel.add(bPartnerLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + if (bPartnerField != null) + parameterStdPanel.add(bPartnerField, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + parameterStdPanel.add(orderLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterStdPanel.add(orderField, new GridBagConstraints(3, 0, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + parameterStdPanel.add(invoiceLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterStdPanel.add(invoiceField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + parameterStdPanel.add(shipmentLabel, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterStdPanel.add(shipmentField, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + parameterStdPanel.add(locatorLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterStdPanel.add(locatorField, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + parameterStdPanel.add(sameWarehouseCb, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + // Add RMA document selection to panel + parameterStdPanel.add(rmaLabel, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); + parameterStdPanel.add(rmaField, new GridBagConstraints(3, 3, 1, 1, 0.0, 0.0 + ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 0, 5, 5), 0, 0)); + + this.getContentPane().add(dataPane, BorderLayout.CENTER); + dataPane.getViewport().add(dataTable, null); + // + // + // @Trifon + AppsAction selectAllAction = new AppsAction (SELECT_ALL, KeyStroke.getKeyStroke(KeyEvent.VK_A, java.awt.event.InputEvent.ALT_MASK), null); + + CButton selectAllButton = (CButton)selectAllAction.getButton(); + selectAllButton.setMargin(new Insets (0, 10, 0, 10)); + selectAllButton.setDefaultCapable(true); + selectAllButton.addActionListener(this); +// selectAllButton.setToolTipText(Msg.getMsg(Env.getCtx(), SELECT_ALL_TOOLTIP)); + confirmPanel.addButton(selectAllButton); + // + this.getContentPane().add(southPanel, BorderLayout.SOUTH); + southPanel.setLayout(southLayout); + southPanel.add(confirmPanel, BorderLayout.CENTER); + // Trifon End + + this.getContentPane().add(southPanel, BorderLayout.SOUTH); + southPanel.setLayout(southLayout); + southPanel.add(confirmPanel, BorderLayout.CENTER); + southPanel.add(statusBar, BorderLayout.SOUTH); + } // jbInit /** * Init OK to be able to make changes? diff --git a/client/src/org/compiere/grid/VCreateFromStatement.java b/client/src/org/compiere/grid/VCreateFromStatement.java index 7c0b8dfc23..43f3d9e026 100644 --- a/client/src/org/compiere/grid/VCreateFromStatement.java +++ b/client/src/org/compiere/grid/VCreateFromStatement.java @@ -25,6 +25,7 @@ import java.util.logging.*; import java.awt.Cursor; import java.awt.Insets; import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.JLabel; @@ -34,6 +35,7 @@ import org.compiere.apps.*; import org.compiere.grid.ed.*; import org.compiere.model.*; import org.compiere.swing.CButton; +import org.compiere.swing.CTextField; import org.compiere.util.*; /** * Create Transactions for Bank Statements @@ -43,7 +45,7 @@ import org.compiere.util.*; * @author Victor Perez, e-Evolucion *
  • RF [1811114] http://sourceforge.net/tracker/index.php?func=detail&aid=1811114&group_id=176962&atid=879335 */ -public class VCreateFromStatement extends VCreateFrom implements VetoableChangeListener +public class VCreateFromStatement extends VCreateFrom implements ActionListener { private MBankAccount bankAccount; @@ -54,6 +56,15 @@ public class VCreateFromStatement extends VCreateFrom implements VetoableChangeL VCreateFromStatement(GridTab mTab) { super (mTab); + + //Refresh button + CButton refreshButton = ConfirmPanel.createRefreshButton(false); + refreshButton.setMargin(new Insets (1, 10, 0, 10)); + refreshButton.setDefaultCapable(true); + refreshButton.addActionListener(this); + confirmPanel.addButton(refreshButton); + this.getRootPane().setDefaultButton(refreshButton); + log.info(""); } // VCreateFromStatement @@ -70,56 +81,178 @@ public class VCreateFromStatement extends VCreateFrom implements VetoableChangeL return false; } - //Regresh button - CButton refreshButton = confirmPanel.createRefreshButton(false); - refreshButton.setMargin(new Insets (1, 10, 0, 10)); - refreshButton.setDefaultCapable(true); - refreshButton.addActionListener(this); - confirmPanel.addButton(refreshButton); // // Do not display RMA selection - rmaLabel.setVisible(false); + /* rmaLabel.setVisible(false); rmaField.setVisible(false); sameWarehouseCb.setVisible(false); - +*/ setTitle(Msg.translate(Env.getCtx(), "C_BankStatement_ID") + " .. " + Msg.translate(Env.getCtx(), "CreateFrom")); parameterStdPanel.setVisible(false); int AD_Column_ID = 4917; // C_BankStatement.C_BankAccount_ID MLookup lookup = MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, AD_Column_ID, DisplayType.TableDir); - bankAccountField = new VLookup ("C_BankAccount_ID", true, false, true, lookup); - bankAccountField.addVetoableChangeListener(this); + bankAccountField = new VLookup ("C_BankAccount_ID", true, true, true, lookup); // Set Default int C_BankAccount_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "C_BankAccount_ID"); bankAccountField.setValue(new Integer(C_BankAccount_ID)); // initial Loading - //RF [1811114] - String R_AuthCode=""; authorizationField = new VString ("authorization", false, false, true, 10, 30, null, null); authorizationField.addActionListener(this); - //Doc Date - Timestamp docDate = Env.getContextAsDate(Env.getCtx(), p_WindowNo, MBankStatement.COLUMNNAME_StatementDate); - docDateField = new VDate(MBankStatement.COLUMNNAME_StatementDate,false,false,true,DisplayType.Date,Msg.translate(Env.getCtx(), MBankStatement.COLUMNNAME_StatementDate)); - docDateField.setValue(docDate); - docDateField.addActionListener(this); - String documentType=""; MLookup lookupDocument = MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, MColumn.getColumn_ID(MPayment.Table_Name, MPayment.COLUMNNAME_C_DocType_ID), DisplayType.TableDir); documentTypeField = new VLookup (MPayment.COLUMNNAME_C_DocType_ID,false,false,true,lookupDocument); - documentTypeField.addVetoableChangeListener(this); + documentTypeField.addActionListener(this); - int tenderType=0; MLookup lookupTender = MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, MColumn.getColumn_ID(MPayment.Table_Name, MPayment.COLUMNNAME_TenderType), DisplayType.List); tenderTypeField = new VLookup (MPayment.COLUMNNAME_TenderType,false,false,true,lookupTender); - tenderTypeField.addVetoableChangeListener(this); - + tenderTypeField.addActionListener(this); + + bPartnerLookup = new VLookup("C_BPartner_ID", false, false, true, + MLookupFactory.get (Env.getCtx(), p_WindowNo, 0, 3499, DisplayType.Search)); + BPartner_idLabel.setLabelFor(bPartnerLookup); + + Timestamp date = Env.getContextAsDate(Env.getCtx(), p_WindowNo, MBankStatement.COLUMNNAME_StatementDate); + dateToField.setValue(date); + bankAccount = new MBankAccount(Env.getCtx(), C_BankAccount_ID, null); + + loadBankAccount(); return true; } // dynInit + /************************************************************************** + * Construct SQL Where Clause and define parameters + * (setParameters needs to set parameters) + * Includes first AND + * @return sql where clause + */ + String getSQLWhere() + { + StringBuffer sql = new StringBuffer("WHERE p.Processed='Y' AND p.IsReconciled='N'" + + " AND p.DocStatus IN ('CO','CL','RE','VO') AND p.PayAmt<>0" + + " AND p.C_BankAccount_ID = ?"); + + if (documentNoField.getText().length() > 0) + sql.append(" AND UPPER(p.DocumentNo) LIKE ?"); + // + if (bPartnerLookup.getValue() != null) + sql.append(" AND p.C_BPartner_ID=?"); + // + if (dateFromField.getValue() != null || dateToField.getValue() != null) + { + Timestamp from = (Timestamp)dateFromField.getValue(); + Timestamp to = (Timestamp)dateToField.getValue(); + if (from == null && to != null) + sql.append(" AND TRUNC(p.DateTrx) <= ?"); + else if (from != null && to == null) + sql.append(" AND TRUNC(p.DateTrx) >= ?"); + else if (from != null && to != null) + sql.append(" AND TRUNC(p.DateTrx) BETWEEN ? AND ?"); + } + // + if (amtFromField.getValue() != null || amtToField.getValue() != null) + { + BigDecimal from = (BigDecimal)amtFromField.getValue(); + BigDecimal to = (BigDecimal)amtToField.getValue(); + if (from == null && to != null) + sql.append(" AND p.PayAmt <= ?"); + else if (from != null && to == null) + sql.append(" AND p.PayAmt >= ?"); + else if (from != null && to != null) + sql.append(" AND p.PayAmt BETWEEN ? AND ?"); + } + + if(documentTypeField.getValue()!=null) + sql.append(" AND p.C_DocType_ID=?"); + if(tenderTypeField.getValue() != null && tenderTypeField.getValue().toString().length() > 0) + sql.append(" AND p.TenderType=?"); + if(authorizationField.getText().length() > 0 ) + sql.append(" AND p.R_AuthCode LIKE ?"); + + log.fine(sql.toString()); + return sql.toString(); + } // getSQLWhere + + /** + * Set Parameters for Query. + * (as defined in getSQLWhere) + * @param pstmt statement + * @param forCount for counting records + * @throws SQLException + */ + void setParameters(PreparedStatement pstmt, boolean forCount) throws SQLException + { + int index = 1; + + pstmt.setInt(index++, bankAccount.getC_BankAccount_ID()); + + if (documentNoField.getText().length() > 0) + pstmt.setString(index++, getSQLText(documentNoField)); + // + if (bPartnerLookup.getValue() != null) + { + Integer bp = (Integer)bPartnerLookup.getValue(); + pstmt.setInt(index++, bp.intValue()); + log.fine("BPartner=" + bp); + } + // + if (dateFromField.getValue() != null || dateToField.getValue() != null) + { + Timestamp from = (Timestamp)dateFromField.getValue(); + Timestamp to = (Timestamp)dateToField.getValue(); + log.fine("Date From=" + from + ", To=" + to); + if (from == null && to != null) + pstmt.setTimestamp(index++, to); + else if (from != null && to == null) + pstmt.setTimestamp(index++, from); + else if (from != null && to != null) + { + pstmt.setTimestamp(index++, from); + pstmt.setTimestamp(index++, to); + } + } + // + if (amtFromField.getValue() != null || amtToField.getValue() != null) + { + BigDecimal from = (BigDecimal)amtFromField.getValue(); + BigDecimal to = (BigDecimal)amtToField.getValue(); + log.fine("Amt From=" + from + ", To=" + to); + if (from == null && to != null) + pstmt.setBigDecimal(index++, to); + else if (from != null && to == null) + pstmt.setBigDecimal(index++, from); + else if (from != null && to != null) + { + pstmt.setBigDecimal(index++, from); + pstmt.setBigDecimal(index++, to); + } + } + if(documentTypeField.getValue()!=null) + pstmt.setInt(index++, (Integer) documentTypeField.getValue()); + if(tenderTypeField.getValue()!=null && tenderTypeField.getValue().toString().length() > 0 ) + pstmt.setString(index++, (String) tenderTypeField.getValue()); + if(authorizationField.getText().length() > 0 ) + pstmt.setString(index++, getSQLText(authorizationField)); + + } // setParameters + /** + * Get SQL WHERE parameter + * @param f field + * @return Upper case text with % at the end + */ + private String getSQLText (CTextField f) + { + String s = f.getText().toUpperCase(); + if (!s.endsWith("%")) + s += "%"; + log.fine( "String=" + s); + return s; + } // getSQLText + /** * Init Details (never called) * @param C_BPartner_ID BPartner @@ -127,37 +260,15 @@ public class VCreateFromStatement extends VCreateFrom implements VetoableChangeL protected void initBPDetails(int C_BPartner_ID) { } // initDetails - - /** - * Change Listener - * @param e event - */ - public void vetoableChange (PropertyChangeEvent e) - { - log.config(e.getPropertyName() + "=" + e.getNewValue()); - tableChanged(null); - } // vetoableChange + /** * Load Data - Bank Account - * @param C_BankAccount_ID Bank Account - * @Document Date - * @param Document Type - * @param Teder Type - * @param Autorization Code */ - //RF [1811114] - private void loadBankAccount (int C_BankAccount_ID, Timestamp docDate, int documentType, String tenderType ,String R_AuthCode) + private void loadBankAccount () { - log.config ("C_BankAccount_ID=" + C_BankAccount_ID); - /** - * Selected - 0 - * Date - 1 - * C_Payment_ID - 2 - * C_Currenncy - 3 - * Amt - 4 - */ Vector> data = new Vector>(); + String sql = "SELECT p.DateTrx,p.C_Payment_ID,p.DocumentNo, p.C_Currency_ID,c.ISO_Code, p.PayAmt," + "currencyConvert(p.PayAmt,p.C_Currency_ID,ba.C_Currency_ID,pay.DateAcct,p.C_ConversionType_ID,p.AD_Client_ID,p.AD_Org_ID)," + " bp.Name " @@ -165,41 +276,16 @@ public class VCreateFromStatement extends VCreateFrom implements VetoableChangeL + " INNER JOIN C_Payment_v p ON (p.C_BankAccount_ID=ba.C_BankAccount_ID)" + " INNER JOIN C_Payment pay ON (p.C_Payment_ID=pay.C_Payment_ID)" + " INNER JOIN C_Currency c ON (p.C_Currency_ID=c.C_Currency_ID)" - + " LEFT OUTER JOIN C_BPartner bp ON (p.C_BPartner_ID=bp.C_BPartner_ID) " - + "WHERE p.Processed='Y' AND p.IsReconciled='N'" - + " AND p.DocStatus IN ('CO','CL','RE','VO') AND p.PayAmt<>0" // Bug 1564453 Added Voided payment to bank statement payement selection - + " AND p.C_BankAccount_ID=?"; // #2 - //RF [1811114] - //Payment Filter - if(docDate != null) - sql=sql + " AND p.DateTrx = ?"; - - if(documentType>0) - sql=sql + " AND p.C_DocType_ID = " + documentType; - - if(tenderType!=null && tenderType.length()>0) - sql=sql + " AND p.TenderType = '" + tenderType + "'"; - - if (R_AuthCode!= null && R_AuthCode.length()>0) - sql = sql + " AND p.R_AuthCode LIKE '" + R_AuthCode + "'"; - - sql = sql + " AND NOT EXISTS (SELECT * FROM C_BankStatementLine l " - // Voided Bank Statements have 0 StmtAmt - + "WHERE p.C_Payment_ID=l.C_Payment_ID AND l.StmtAmt <> 0)"; + + " LEFT OUTER JOIN C_BPartner bp ON (p.C_BPartner_ID=bp.C_BPartner_ID) "; - // Get StatementDate - Timestamp ts = (Timestamp)p_mTab.getValue("StatementDate"); - if (ts == null) - ts = new Timestamp(System.currentTimeMillis()); + sql = sql + getSQLWhere() + " ORDER BY p.DateTrx"; try { PreparedStatement pstmt = DB.prepareStatement(sql.toString(), null); - pstmt.setInt(1, C_BankAccount_ID); - //RF [1811114] - - if(docDate != null) - pstmt.setTimestamp(2,docDate); + + setParameters( pstmt, false); + ResultSet rs = pstmt.executeQuery(); while (rs.next()) { @@ -325,36 +411,16 @@ public class VCreateFromStatement extends VCreateFrom implements VetoableChangeL //RF [1811114] public void actionPerformed(ActionEvent e) { - super.actionPerformed(e); log.config("Action=" + e.getActionCommand()); - int C_BankAccount_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "C_BankAccount_ID"); - - if (e.getActionCommand().equals(confirmPanel.A_REFRESH)) { - String tenderType=null; - int C_docType_ID=0; - Timestamp docDate; - //RF [1811114] - String R_AuthCode = (authorizationField.getValue().toString()); - - if(documentTypeField.getValue()!=null) - C_docType_ID=(Integer) documentTypeField.getValue(); - else - C_docType_ID=0; - if(bankAccountField.getValue()!=null) - C_BankAccount_ID=(Integer) bankAccountField.getValue(); - else - C_BankAccount_ID=0; - docDate=(docDateField.getTimestamp()); - if(tenderTypeField.getValue()!=null) - tenderType=(String) tenderTypeField.getValue(); + Object source = e.getSource(); + if ( e.getActionCommand().equals(confirmPanel.A_REFRESH) ) { Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR); - if (authorizationField.getValue().toString().equals("")) - loadBankAccount(C_BankAccount_ID, docDate,C_docType_ID,tenderType,null); - else - loadBankAccount(C_BankAccount_ID, docDate,C_docType_ID,tenderType,R_AuthCode); + loadBankAccount(); + tableChanged(null); Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR); } - // - } + else + super.actionPerformed(e); + } } // VCreateFromStatement