IDEMPIERE-5092 Improvement to Payment Selection Manual form (#1042)
This commit is contained in:
parent
1eedd3f5a6
commit
6923fbe18e
|
@ -68,14 +68,18 @@ import org.compiere.util.Env;
|
||||||
import org.compiere.util.KeyNamePair;
|
import org.compiere.util.KeyNamePair;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.ValueNamePair;
|
import org.compiere.util.ValueNamePair;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.Executions;
|
import org.zkoss.zk.ui.Executions;
|
||||||
import org.zkoss.zk.ui.SuspendNotAllowedException;
|
import org.zkoss.zk.ui.SuspendNotAllowedException;
|
||||||
import org.zkoss.zk.ui.WrongValueException;
|
import org.zkoss.zk.ui.WrongValueException;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
|
import org.zkoss.zk.ui.event.Events;
|
||||||
import org.zkoss.zk.ui.util.Clients;
|
import org.zkoss.zk.ui.util.Clients;
|
||||||
|
import org.zkoss.zul.A;
|
||||||
import org.zkoss.zul.Borderlayout;
|
import org.zkoss.zul.Borderlayout;
|
||||||
import org.zkoss.zul.Center;
|
import org.zkoss.zul.Center;
|
||||||
|
import org.zkoss.zul.Hlayout;
|
||||||
import org.zkoss.zul.North;
|
import org.zkoss.zul.North;
|
||||||
import org.zkoss.zul.Separator;
|
import org.zkoss.zul.Separator;
|
||||||
import org.zkoss.zul.South;
|
import org.zkoss.zul.South;
|
||||||
|
@ -96,7 +100,7 @@ public class WPaySelect extends PaySelect
|
||||||
{
|
{
|
||||||
/** @todo withholding */
|
/** @todo withholding */
|
||||||
|
|
||||||
private CustomForm form = new CustomForm();
|
protected CustomForm form = new CustomForm();
|
||||||
|
|
||||||
//
|
//
|
||||||
private Panel mainPanel = new Panel();
|
private Panel mainPanel = new Panel();
|
||||||
|
@ -129,6 +133,7 @@ public class WPaySelect extends PaySelect
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private ProcessInfo m_pi;
|
private ProcessInfo m_pi;
|
||||||
private boolean m_isLock;
|
private boolean m_isLock;
|
||||||
|
private Hlayout statusBar = new Hlayout();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize Panel
|
* Initialize Panel
|
||||||
|
@ -297,7 +302,9 @@ public class WPaySelect extends PaySelect
|
||||||
south.setStyle("border: none");
|
south.setStyle("border: none");
|
||||||
mainLayout.appendChild(south);
|
mainLayout.appendChild(south);
|
||||||
southPanel = new Panel();
|
southPanel = new Panel();
|
||||||
southPanel.appendChild(dataStatus);
|
statusBar.appendChild(dataStatus);
|
||||||
|
statusBar.setVflex("min");
|
||||||
|
southPanel.appendChild(statusBar);
|
||||||
south.appendChild(southPanel);
|
south.appendChild(southPanel);
|
||||||
Center center = new Center();
|
Center center = new Center();
|
||||||
mainLayout.appendChild(center);
|
mainLayout.appendChild(center);
|
||||||
|
@ -344,7 +351,7 @@ public class WPaySelect extends PaySelect
|
||||||
/**
|
/**
|
||||||
* Load Bank Info - Load Info from Bank Account and valid Documents (PaymentRule)
|
* Load Bank Info - Load Info from Bank Account and valid Documents (PaymentRule)
|
||||||
*/
|
*/
|
||||||
private void loadBankInfo()
|
protected void loadBankInfo()
|
||||||
{
|
{
|
||||||
if (fieldBankAccount.getItemCount() == 0)
|
if (fieldBankAccount.getItemCount() == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -366,8 +373,13 @@ public class WPaySelect extends PaySelect
|
||||||
/**
|
/**
|
||||||
* Query and create TableInfo
|
* Query and create TableInfo
|
||||||
*/
|
*/
|
||||||
private void loadTableInfo()
|
protected void loadTableInfo()
|
||||||
{
|
{
|
||||||
|
if (statusBar.getChildren().size() > 1) {
|
||||||
|
statusBar.getChildren().clear();
|
||||||
|
statusBar.appendChild(dataStatus);
|
||||||
|
}
|
||||||
|
|
||||||
Timestamp payDate = (Timestamp)fieldPayDate.getValue();
|
Timestamp payDate = (Timestamp)fieldPayDate.getValue();
|
||||||
|
|
||||||
//IDEMPIERE-2657, pritesh shah
|
//IDEMPIERE-2657, pritesh shah
|
||||||
|
@ -416,7 +428,11 @@ public class WPaySelect extends PaySelect
|
||||||
{
|
{
|
||||||
// Update Bank Info
|
// Update Bank Info
|
||||||
if (e.getTarget() == fieldBankAccount)
|
if (e.getTarget() == fieldBankAccount)
|
||||||
|
{
|
||||||
loadBankInfo();
|
loadBankInfo();
|
||||||
|
if (miniTable.getRowCount() > 0)
|
||||||
|
loadTableInfo();
|
||||||
|
}
|
||||||
|
|
||||||
// Generate PaySelection
|
// Generate PaySelection
|
||||||
else if (e.getTarget() == bGenerate)
|
else if (e.getTarget() == bGenerate)
|
||||||
|
@ -433,27 +449,49 @@ public class WPaySelect extends PaySelect
|
||||||
loadTableInfo();
|
loadTableInfo();
|
||||||
|
|
||||||
else if (DialogEvents.ON_WINDOW_CLOSE.equals(e.getName())) {
|
else if (DialogEvents.ON_WINDOW_CLOSE.equals(e.getName())) {
|
||||||
|
m_ps.load(null);
|
||||||
// Ask to Open Print Form
|
if (m_ps.isProcessed()) {
|
||||||
FDialog.ask(m_WindowNo, form, "VPaySelectPrint?", new Callback<Boolean>() {
|
loadTableInfo();
|
||||||
|
|
||||||
@Override
|
// Ask to Open Print Form
|
||||||
public void onCallback(Boolean result)
|
FDialog.ask(m_WindowNo, form, "VPaySelectPrint?", new Callback<Boolean>() {
|
||||||
{
|
|
||||||
if (result)
|
@Override
|
||||||
|
public void onCallback(Boolean result)
|
||||||
{
|
{
|
||||||
// Start PayPrint
|
if (result)
|
||||||
int AD_Form_ID = FORM_PAYMENT_PRINT_EXPORT; // Payment Print/Export
|
|
||||||
ADForm form = SessionManager.getAppDesktop().openForm(AD_Form_ID);
|
|
||||||
if (m_ps != null)
|
|
||||||
{
|
{
|
||||||
WPayPrint pp = (WPayPrint) form.getICustomForm();
|
// Start PayPrint
|
||||||
pp.setPaySelection(m_ps.getC_PaySelection_ID());
|
int AD_Form_ID = FORM_PAYMENT_PRINT_EXPORT; // Payment Print/Export
|
||||||
|
ADForm form = SessionManager.getAppDesktop().openForm(AD_Form_ID);
|
||||||
|
if (m_ps != null)
|
||||||
|
{
|
||||||
|
WPayPrint pp = (WPayPrint) form.getICustomForm();
|
||||||
|
pp.setPaySelection(m_ps.getC_PaySelection_ID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
//show link to generated pay selection
|
||||||
|
if (m_ps != null)
|
||||||
|
{
|
||||||
|
A link = new A(m_ps.getName());
|
||||||
|
link.setAttribute("Record_ID", m_ps.get_ID());
|
||||||
|
link.setAttribute("AD_Table_ID", m_ps.get_Table_ID());
|
||||||
|
link.addEventListener(Events.ON_CLICK, (Event event) -> {
|
||||||
|
Component comp = event.getTarget();
|
||||||
|
Integer Record_ID = (Integer) comp.getAttribute("Record_ID");
|
||||||
|
Integer AD_Table_ID = (Integer) comp.getAttribute("AD_Table_ID");
|
||||||
|
if (Record_ID != null && Record_ID > 0 && AD_Table_ID != null && AD_Table_ID > 0)
|
||||||
|
{
|
||||||
|
AEnv.zoom(AD_Table_ID, Record_ID);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
statusBar.appendChild(new Space());
|
||||||
|
statusBar.appendChild(link);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (e.getTarget().equals(chkOnePaymentPerInv))
|
else if (e.getTarget().equals(chkOnePaymentPerInv))
|
||||||
{
|
{
|
||||||
|
@ -491,11 +529,10 @@ public class WPaySelect extends PaySelect
|
||||||
/**
|
/**
|
||||||
* Generate PaySelection
|
* Generate PaySelection
|
||||||
*/
|
*/
|
||||||
private void generatePaySelect()
|
protected void generatePaySelect()
|
||||||
{
|
{
|
||||||
if (miniTable.getRowCount() == 0)
|
if (miniTable.getRowCount() == 0)
|
||||||
return;
|
return;
|
||||||
miniTable.setSelectedIndices(new int[]{0});
|
|
||||||
calculateSelection();
|
calculateSelection();
|
||||||
if (m_noSelected == 0)
|
if (m_noSelected == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -515,7 +552,7 @@ public class WPaySelect extends PaySelect
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
loadTableInfo();
|
|
||||||
if (MSysConfig.getBooleanValue(MSysConfig.PAYMENT_SELECTION_MANUAL_ASK_INVOKE_GENERATE, true, m_ps.getAD_Client_ID(), m_ps.getAD_Org_ID())) {
|
if (MSysConfig.getBooleanValue(MSysConfig.PAYMENT_SELECTION_MANUAL_ASK_INVOKE_GENERATE, true, m_ps.getAD_Client_ID(), m_ps.getAD_Org_ID())) {
|
||||||
// Ask to Post it
|
// Ask to Post it
|
||||||
FDialog.ask(m_WindowNo, form, "VPaySelectGenerate?", new Callback<Boolean>() {
|
FDialog.ask(m_WindowNo, form, "VPaySelectGenerate?", new Callback<Boolean>() {
|
||||||
|
@ -525,7 +562,9 @@ public class WPaySelect extends PaySelect
|
||||||
{
|
{
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
// Prepare Process
|
miniTable.clearSelection();
|
||||||
|
loadTableInfo();
|
||||||
|
// Prepare Process
|
||||||
int AD_Proces_ID = PROCESS_C_PAYSELECTION_CREATEPAYMENT; // C_PaySelection_CreatePayment
|
int AD_Proces_ID = PROCESS_C_PAYSELECTION_CREATEPAYMENT; // C_PaySelection_CreatePayment
|
||||||
|
|
||||||
// Execute Process
|
// Execute Process
|
||||||
|
@ -540,6 +579,21 @@ public class WPaySelect extends PaySelect
|
||||||
// Create instance parameters. Parameters you want to send to the process.
|
// Create instance parameters. Parameters you want to send to the process.
|
||||||
ProcessInfoParameter piParam = new ProcessInfoParameter(MPaySelection.COLUMNNAME_IsOnePaymentPerInvoice, m_isOnePaymentPerInvoice, "", "", "");
|
ProcessInfoParameter piParam = new ProcessInfoParameter(MPaySelection.COLUMNNAME_IsOnePaymentPerInvoice, m_isOnePaymentPerInvoice, "", "", "");
|
||||||
dialog.getProcessInfo().setParameter(new ProcessInfoParameter[] {piParam});
|
dialog.getProcessInfo().setParameter(new ProcessInfoParameter[] {piParam});
|
||||||
|
|
||||||
|
dialog.focus();
|
||||||
|
|
||||||
|
dialog.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener<Event>() {
|
||||||
|
@Override
|
||||||
|
public void onEvent(Event event) throws Exception {
|
||||||
|
if (!dialog.isCancel()) {
|
||||||
|
if (dialog.getProcessInfo().isError()) {
|
||||||
|
FDialog.error(m_WindowNo, form, Msg.parseTranslation(Env.getCtx(), dialog.getProcessInfo().getSummary()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
} catch (SuspendNotAllowedException e) {
|
} catch (SuspendNotAllowedException e) {
|
||||||
log.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
log.log(Level.SEVERE, e.getLocalizedMessage(), e);
|
||||||
}
|
}
|
||||||
|
@ -549,6 +603,8 @@ public class WPaySelect extends PaySelect
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
miniTable.clearSelection();
|
||||||
|
loadTableInfo();
|
||||||
AEnv.zoom(MPaySelection.Table_ID, m_ps.getC_PaySelection_ID());
|
AEnv.zoom(MPaySelection.Table_ID, m_ps.getC_PaySelection_ID());
|
||||||
}
|
}
|
||||||
} // generatePaySelect
|
} // generatePaySelect
|
||||||
|
|
Loading…
Reference in New Issue