use of org.compiere.process.ProcessInfo in project adempiere by adempiere.
the class POSActionMenu method executeCommand.
private void executeCommand(Command command) {
Waiting waiting = new Waiting(pos.getFrame(), Msg.parseTranslation(pos.getCtx(), "@Processing@"), false, 120);
try {
CommandReceiver receiver = commandManager.getCommandReceivers(command.getEvent());
if (command.getCommand() == CommandManager.GENERATE_IMMEDIATE_INVOICE && pos.getC_Order_ID() > 0 && pos.isCompleted() && !pos.isVoided()) {
receiver.setCtx(pos.getCtx());
receiver.setPartnerId(queryPartner.getRecord_ID());
receiver.setOrderId(pos.getC_Order_ID());
receiver.setPOSId(pos.getC_POS_ID());
receiver.setBankAccountId(pos.getC_BankAccount_ID());
MBPartner partner = MBPartner.get(pos.getCtx(), receiver.getPartnerId());
Optional<String> taxId = Optional.ofNullable(partner.getTaxID());
String processMessage = receiver.getName() + " @DisplayDocumentInfo@ : " + pos.getDocumentNo() + " @To@ @C_BPartner_ID@ : " + partner.getName() + " @TaxID@ : " + taxId.orElse("");
if (ADialog.ask(pos.getWindowNo(), popupMenu, "StartProcess?", Msg.parseTranslation(pos.getCtx(), processMessage))) {
AEnv.showCenterScreen(waiting);
command.execute(receiver);
ProcessInfo processInfo = receiver.getProcessInfo();
waiting.setVisible(false);
if (processInfo != null && processInfo.isError()) {
showError(processInfo);
} else {
afterExecutionCommand(command);
showOkMessage(processInfo);
if (processInfo != null)
pos.setOrder(processInfo.getRecord_ID());
pos.refreshHeader();
// Print Ticket
pos.printTicket();
}
}
} else //Reverse The Sales Transaction
if (command.getCommand() == CommandManager.GENERATE_REVERSE_SALES && pos.getC_Order_ID() > 0 && !pos.isReturnMaterial() && !pos.isVoided() && !pos.isClosed()) {
receiver.setCtx(pos.getCtx());
receiver.setOrderId(pos.getC_Order_ID());
receiver.setPOSId(pos.getC_POS_ID());
receiver.setPartnerId(pos.getC_BPartner_ID());
receiver.setBankAccountId(pos.getC_BankAccount_ID());
String processMessage = receiver.getName() + " @order.no@ : " + pos.getDocumentNo() + " @To@ @C_BPartner_ID@ : " + pos.getBPName();
if (ADialog.ask(pos.getWindowNo(), popupMenu, "StartProcess?", Msg.parseTranslation(pos.getCtx(), processMessage))) {
AEnv.showCenterScreen(waiting);
command.execute(receiver);
ProcessInfo processInfo = receiver.getProcessInfo();
waiting.setVisible(false);
if (processInfo != null && processInfo.isError()) {
showError(processInfo);
} else {
afterExecutionCommand(command);
showOkMessage(processInfo);
}
pos.printTicket();
}
} else //Return product
if (command.getCommand() == CommandManager.GENERATE_RETURN && pos.getC_Order_ID() > 0 && !pos.isReturnMaterial() && pos.isCompleted()) {
receiver.setCtx(pos.getCtx());
receiver.setOrderId(pos.getC_Order_ID());
receiver.setPOSId(pos.getC_POS_ID());
receiver.setPartnerId(pos.getC_BPartner_ID());
receiver.setBankAccountId(pos.getC_BankAccount_ID());
String processMessage = receiver.getName() + " @DisplayDocumentInfo@ : " + pos.getDocumentNo() + " @To@ @C_BPartner_ID@ : " + pos.getBPName();
if (ADialog.ask(pos.getWindowNo(), popupMenu, "StartProcess?", Msg.parseTranslation(pos.getCtx(), processMessage))) {
AEnv.showCenterScreen(waiting);
command.execute(receiver);
ProcessInfo processInfo = receiver.getProcessInfo();
waiting.setVisible(false);
if (processInfo != null && processInfo.isError()) {
showError(processInfo);
} else {
afterExecutionCommand(command);
showOkMessage(processInfo);
//execute out transaction
if (processInfo != null && processInfo.getRecord_ID() > 0) {
pos.setOrder(processInfo.getRecord_ID());
pos.refreshHeader();
}
}
}
} else if (command.getCommand() == CommandManager.GENERATE_WITHDRAWAL) {
Env.setContext(pos.getCtx(), pos.getWindowNo(), "C_POS_ID", pos.getC_POS_ID());
Dimension size = new Dimension(1024, 768);
FormFrame ff = new FormFrame(pos.getWindowNo());
ff.setSize(size);
MBrowse browse = new MBrowse(Env.getCtx(), 50056, null);
new VBrowser(ff, true, pos.getWindowNo(), "", browse, "", true, "", true);
ff.pack();
AEnv.showCenterScreen(ff);
} else if (command.getCommand() == CommandManager.CLOSE_STATEMENT) {
Env.setContext(pos.getCtx(), pos.getWindowNo(), "C_POS_ID", pos.getC_POS_ID());
Dimension size = new Dimension(1024, 768);
FormFrame ff = new FormFrame(pos.getWindowNo());
ff.setSize(size);
MBrowse browse = new MBrowse(Env.getCtx(), 50057, null);
new VBrowser(ff, true, pos.getWindowNo(), "", browse, "", true, "", true);
ff.pack();
AEnv.showCenterScreen(ff);
}
} catch (Exception exception) {
waiting.setVisible(false);
ADialog.error(pos.getWindowNo(), pos.getFrame(), exception.getLocalizedMessage());
} finally {
waiting.setVisible(false);
waiting = null;
}
}
use of org.compiere.process.ProcessInfo in project adempiere by adempiere.
the class CPOS method generateShipment.
// processOrder
/**
* Generate Shipment
* @param trxName
* @return void
*/
private void generateShipment(String trxName) {
List<Integer> selectionIds = new ArrayList<Integer>();
selectionIds.add(getC_Order_ID());
//Generate Return using InOutGenerate
ProcessInfo processInfo = ProcessBuilder.create(getCtx()).process(199).withTitle(Msg.parseTranslation(getCtx(), "@InOutGenerateGen@")).withParameter(MInOut.COLUMNNAME_M_Warehouse_ID, getM_Warehouse_ID()).withParameter("Selection", true).withSelectedRecordsIds(selectionIds).withoutTransactionClose().execute(trxName);
if (processInfo.isError())
throw new AdempiereException(processInfo.getSummary());
}
use of org.compiere.process.ProcessInfo in project adempiere by adempiere.
the class ProcessInfoHandler method getProcessInfo.
protected ProcessInfo getProcessInfo(String name, int id) {
ProcessInfo info = new ProcessInfo(name, id);
info.setAD_User_ID(Env.getAD_User_ID(Env.getCtx()));
info.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
return info;
}
use of org.compiere.process.ProcessInfo in project adempiere by adempiere.
the class APanel method actionButton.
/**************************************************************************
* Start Button Process
* @param vButton button
*/
protected void actionButton(VButton vButton) {
log.info(vButton.toString());
if (m_curTab.hasChangedCurrentTabAndParents()) {
String msg = CLogger.retrieveErrorString("Please ReQuery Window");
ADialog.error(m_curWindowNo, this, null, msg);
return;
}
boolean startWOasking = false;
// boolean batch = false;
String col = vButton.getColumnName();
// Zoom
if (col.equals("Record_ID")) {
int AD_Table_ID = Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Table_ID");
int Record_ID = Env.getContextAsInt(m_ctx, m_curWindowNo, "Record_ID");
AEnv.zoom(AD_Table_ID, Record_ID);
return;
}
// save first ---------------
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
// Save included tabs if necessary - teo_sarca BF [ 2876892 ]
for (GridTab includedTab : m_curTab.getIncludedTabs()) {
if (includedTab.needSave(true, false))
if (!includedTab.dataSave(true))
return;
}
//
int table_ID = m_curTab.getAD_Table_ID();
// Record_ID
int record_ID = m_curTab.getRecord_ID();
// Record_ID - Language Handling
if (record_ID == -1 && m_curTab.getKeyColumnName().equals("AD_Language"))
record_ID = Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Language_ID");
// Record_ID - Change Log ID
if (record_ID == -1 && (vButton.getProcess_ID() == 306 || vButton.getProcess_ID() == 307)) {
Integer id = (Integer) m_curTab.getValue("AD_ChangeLog_ID");
record_ID = id.intValue();
}
// Ensure it's saved
if (record_ID == -1 && m_curTab.getKeyColumnName().endsWith("_ID")) {
ADialog.error(m_curWindowNo, this, "SaveErrorRowNotFound");
return;
}
boolean isProcessMandatory = false;
// Pop up Payment Rules
if (col.equals("PaymentRule")) {
VPayment vp = new VPayment(m_curWindowNo, m_curTab, vButton);
if (// may not be allowed
vp.isInitOK())
vp.setVisible(true);
vp.dispose();
if (vp.needSave()) {
cmd_save(false);
cmd_refresh();
}
} else // Pop up Document Action (Workflow)
if (col.equals("DocAction")) {
isProcessMandatory = true;
VDocAction vda = new VDocAction(m_curWindowNo, m_curTab, vButton, record_ID);
// Something to select from?
if (vda.getNumberOfOptions() == 0) {
vda.dispose();
log.info("DocAction - No Options");
return;
} else {
vda.setVisible(true);
if (!vda.isStartProcess())
return;
// batch = vda.isBatch();
startWOasking = true;
vda.dispose();
}
} else // Pop up Create From
if (col.equals("CreateFrom")) {
// Run form only if the button has no process defined - teo_sarca [ 1974354 ]
if (vButton.getProcess_ID() <= 0) {
ICreateFrom cf = VCreateFromFactory.create(m_curTab);
if (cf != null) {
if (cf.isInitOK()) {
cf.showWindow();
cf.closeWindow();
m_curTab.dataRefresh();
} else
cf.closeWindow();
return;
}
// else may start process
}
} else // Posting -----
if (col.equals("Posted") && MRole.getDefault().isShowAcct()) {
// Check Doc Status
String processed = Env.getContext(m_ctx, m_curWindowNo, "Processed");
if (!processed.equals("Y")) {
String docStatus = Env.getContext(m_ctx, m_curWindowNo, "DocStatus");
if (DocAction.STATUS_Completed.equals(docStatus) || DocAction.STATUS_Closed.equals(docStatus) || DocAction.STATUS_Reversed.equals(docStatus) || DocAction.STATUS_Voided.equals(docStatus))
;
else {
ADialog.error(m_curWindowNo, this, "PostDocNotComplete");
return;
}
}
// try to get table and record id from context data (eg for unposted view)
// otherwise use current table/record
int tableId = Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Table_ID", true);
int recordId = Env.getContextAsInt(m_ctx, m_curWindowNo, "Record_ID", true);
if (tableId == 0 || recordId == 0) {
tableId = m_curTab.getAD_Table_ID();
recordId = m_curTab.getRecord_ID();
}
// Check Post Status
Object ps = m_curTab.getValue("Posted");
if (ps != null && ps.equals("Y")) {
new org.compiere.acct.AcctViewer(Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Client_ID"), tableId, recordId);
} else {
if (ADialog.ask(m_curWindowNo, this, "PostImmediate?")) {
// force when problems
boolean force = ps != null && !ps.equals("N");
String error = AEnv.postImmediate(m_curWindowNo, Env.getAD_Client_ID(m_ctx), tableId, recordId, force);
if (error != null)
ADialog.error(m_curWindowNo, this, "PostingError-N", error);
cmd_refresh();
}
}
return;
}
// Posted
/**
* Start Process ----
* or invoke user form
*/
log.config("Process_ID=" + vButton.getProcess_ID() + ", Record_ID=" + record_ID);
if (vButton.getProcess_ID() == 0) {
if (isProcessMandatory) {
ADialog.error(m_curWindowNo, this, null, Msg.parseTranslation(m_ctx, "@NotFound@ @AD_Process_ID@"));
}
return;
}
// Save item changed
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
// call form
MProcess pr = new MProcess(m_ctx, vButton.getProcess_ID(), null);
// Validate Access
MRole role = MRole.getDefault(m_ctx, false);
Boolean accessRW = role.checkProcessAccess(pr.getAD_Process_ID());
if (accessRW == null || !accessRW.booleanValue()) {
ADialog.error(m_curWindowNo, this, null, Msg.parseTranslation(m_ctx, "@AccessCannotProcess@"));
return;
}
//
int form_ID = pr.getAD_Form_ID();
if (form_ID != 0) {
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
// Yamel Senih FR [ 114 ] 2015-11-23 Add Support to Dialog for create from
FormFrame ff = new FormFrame(getWindowNo());
String title = vButton.getDescription();
if (title == null || title.length() == 0)
title = vButton.getName();
ProcessInfo pi = new ProcessInfo(title, vButton.getProcess_ID(), table_ID, record_ID);
pi.setAD_User_ID(Env.getAD_User_ID(m_ctx));
pi.setAD_Client_ID(Env.getAD_Client_ID(m_ctx));
ff.setProcessInfo(pi);
ff.openForm(form_ID);
ff.pack();
AEnv.showCenterScreen(ff);
// Refresh
m_curTab.dataRefresh();
// End Yamel Senih
return;
}
int browse_ID = pr.getAD_Browse_ID();
if (browse_ID != 0) {
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
String title = vButton.getDescription();
if (title == null || title.length() == 0)
title = vButton.getName();
ProcessInfo pi = new ProcessInfo(title, vButton.getProcess_ID(), table_ID, record_ID);
pi.setAD_User_ID(Env.getAD_User_ID(m_ctx));
pi.setAD_Client_ID(Env.getAD_Client_ID(m_ctx));
FormFrame ff = new FormFrame(getWindowNo());
ff.setProcessInfo(pi);
MBrowse browse = new MBrowse(Env.getCtx(), browse_ID, null);
new VBrowser(ff, true, getWindowNo(), "", browse, "", true, "", Env.isSOTrx(Env.getCtx(), m_curWindowNo));
ff.pack();
AEnv.showCenterScreen(ff);
// Yamel Senih
// Refresh
m_curTab.dataRefresh();
return;
} else {
ProcessModalDialog dialog = new ProcessModalDialog(m_ctx, Env.getWindow(m_curWindowNo), Env.getHeader(m_ctx, m_curWindowNo), this, m_curWindowNo, vButton.getProcess_ID(), table_ID, record_ID, startWOasking);
// BR [ 323 ]
if (!startWOasking) {
dialog.validate();
dialog.pack();
AEnv.showCenterWindow(Env.getWindow(m_curWindowNo), dialog);
}
}
}
use of org.compiere.process.ProcessInfo in project adempiere by adempiere.
the class AReport method launchReport.
// launchReport
/**
* Launch Report
* @param pf print format
*/
private void launchReport(MPrintFormat pf) {
int Record_ID = 0;
// The query is passed into AReport.java with only the key or link column included.
if (m_query.getRestrictionCount() == 1 && m_query.getCode(0) instanceof Integer)
Record_ID = ((Integer) m_query.getCode(0)).intValue();
// Add the extended query after the record ID has been identified.
if (m_whereExtended != null && m_whereExtended.length() > 0 && m_query != null)
m_query.addRestriction(Env.parseContext(Env.getCtx(), WindowNo, m_whereExtended, false));
PrintInfo info = new PrintInfo(pf.getName(), pf.getAD_Table_ID(), Record_ID);
info.setDescription(m_query.getInfo());
if (pf != null && pf.getJasperProcess_ID() > 0) {
// It's a report using the JasperReports engine
ProcessInfo pi = new ProcessInfo("", pf.getJasperProcess_ID(), pf.getAD_Table_ID(), Record_ID);
// Execute Process
ProcessCtl worker = ProcessCtl.process(parent, WindowNo, pi, null);
} else {
// It's a default report using the standard printing engine
ReportEngine re = new ReportEngine(Env.getCtx(), pf, m_query, info);
re.setWhereExtended(m_whereExtended);
re.setWindowNo(WindowNo);
ReportCtl.preview(re);
}
}
Aggregations