diff --git a/scripts/process/SP026_PR_ImportOrders.groovy b/scripts/process/SP026_PR_ImportOrders.groovy new file mode 100644 index 0000000..1d89c6d --- /dev/null +++ b/scripts/process/SP026_PR_ImportOrders.groovy @@ -0,0 +1,82 @@ +import org.adempiere.exceptions.AdempiereException; +import org.compiere.process.ProcessInfo; +import org.compiere.util.DB; + +// Enviroment variables +// A_Ctx: Context (Properties) +// A_Trx: Transaction (Trx) +// A_TrxName: Transaction Name (String) +// A_Record_ID: Record ID (Integer) +// A_AD_Client_ID: Client ID (Integer) +// A_AD_User_ID: Instance User ID (Integer) +// A_AD_PInstance_ID: Instance ID (Integer) +// A_Table_ID: Table ID (Integer) +// A_ProcessInfo: (ProcessInfo) + +// Get a Parameter +// Integer: A_ProcessInfo.getParameterAsInt("") +// String: A_ProcessInfo.getParameterAsString("") +// BigDecimal: A_ProcessInfo.getParameterAsBigDecimal("") +// Timestamp: A_ProcessInfo.getParameterAsTimestamp("") +// Object: A_ProcessInfo.getParameter("") + +// Get Parameter To +// Integer: A_ProcessInfo.getParameterToAsInt("") +// String: A_ProcessInfo.getParameterToAsString("") +// BigDecimal: A_ProcessInfo.getParameterToAsBigDecimal("") +// Timestamp: A_ProcessInfo.getParameterToAsTimestamp("") +// Object: A_ProcessInfo.getParameterTo("") + +// The throw exception should be used as result = "@Error@ " + +// result: Result Message (String) + +try { + + String clientCheck = " AND o.AD_Client_ID=" + A_ProcessInfo.getParameterAsInt("AD_Client_ID"); + // for user + if(A_ProcessInfo.getParameterAsInt("AD_User_ID") != 0) { + clientCheck += " AND o.CreatedBy = " + A_ProcessInfo.getParameterAsInt("AD_User_ID"); + } + + //BP from GLN + String sql = "UPDATE I_Order o SET C_BPartner_ID = bpi.BP_ID, BPartnerValue = bpi.BP_Value, C_BPartner_Location_ID = bpi.BP_Location_ID, BillTo_ID = bpi.BP_Location_ID " + + "FROM (SELECT bp.C_BPartner_ID AS BP_ID, bp.Value AS BP_Value, BPL.C_BPartner_Location_ID AS BP_Location_ID, bpl.SP026_GLN AS GLN, " + + "bp.AD_Client_ID, bpl.IsShipTo, bpl.IsDefaultShipping, bpl.IsBillTo " + + "FROM C_BPartner_Location bpl " + + "INNER JOIN C_BPartner bp ON (bp.C_BPartner_ID = bpl.C_BPartner_ID)) AS bpi " + + "WHERE bpi.GLN = o.SP026_GLN " + + "AND o.I_IsImported <> 'Y' " + + "AND o.AD_Client_ID = bpi.AD_Client_ID " + + "AND bpi.IsShipTo = 'Y' " + clientCheck; + DB.executeUpdateEx(sql, A_TrxName); + + sql = "UPDATE I_Order o SET " + + "M_PriceList_ID = CASE WHEN o.M_PriceList_ID IS NULL THEN bp.M_PriceList_ID ELSE o.M_PriceList_ID END, " + + "C_PaymentTerm_ID = CASE WHEN o.C_PaymentTerm_ID IS NULL THEN bp.C_PaymentTerm_ID ELSE o.C_PaymentTerm_ID END " + + "FROM C_BPartner bp " + + "WHERE o.I_IsImported <> 'Y' " + + "AND o.C_BPartner_ID = bp.C_BPartner_ID "; + DB.executeUpdateEx(sql, A_TrxName); + if (A_Trx != null) { + A_Trx.commit(true); + } + ProcessInfo info = org.eevolution.services.dsl.ProcessBuilder.create(A_Ctx) + .process("Import_Order") + .withParameter("AD_Client_ID", A_ProcessInfo.getParameterAsInt("AD_Client_ID")) + .withParameter("AD_Org_ID", A_ProcessInfo.getParameterAsInt("AD_Org_ID")) + .withParameter("AD_User_ID", A_ProcessInfo.getParameterAsInt("AD_User_ID")) + .withParameter("DocAction", A_ProcessInfo.getParameterAsString("DocAction")) + .withParameter("DeleteOldImported", A_ProcessInfo.getParameterAsBoolean("DeleteOldImported")) + .withoutTransactionClose() + .execute(A_TrxName); + + if(info.isError()){ + throw new AdempiereException(info.getSummary()); + } + + result = ""; + +} catch(Exception e) { + return "@Error@ " + e.getLocalizedMessage(); +} \ No newline at end of file diff --git a/scripts/process/examples/TEMPLATE_PR_ProcessCommercialRelation.groovy b/scripts/process/examples/TEMPLATE_PR_ProcessCommercialRelation.groovy deleted file mode 100644 index acb36bf..0000000 --- a/scripts/process/examples/TEMPLATE_PR_ProcessCommercialRelation.groovy +++ /dev/null @@ -1,65 +0,0 @@ -// DB Record -// Name: groovy:TEMPLATE_PR_ProcessCommercialRelation -// EventType = P (Process) -// RuleType = S (JSR223ScriptingAPIs) -import java.util.List; -import org.compiere.model.Query; -import org.compiere.model.PO; -import org.compiere.model.MTable; -import org.compiere.model.MProject; -import java.sql.Timestamp; - -// Enviroment variables -// A_Ctx: Context (Properties) -// A_Trx: Transaction (Trx) -// A_TrxName: Transaction Name (String) -// A_Record_ID: Record ID (Integer) -// A_AD_Client_ID: Client ID (Integer) -// A_AD_User_ID: Instance User ID (Integer) -// A_AD_PInstance_ID: Instance ID (Integer) -// A_Table_ID: Table ID (Integer) -// A_ProcessInfo: (ProcessInfo) - -// Get a Parameter -// Integer: A_ProcessInfo.getParameterAsInt("") -// String: A_ProcessInfo.getParameterAsString("") -// BigDecimal: A_ProcessInfo.getParameterAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterAsTimestamp("") -// Object: A_ProcessInfo.getParameter("") - -// Get Parameter To -// Integer: A_ProcessInfo.getParameterToAsInt("") -// String: A_ProcessInfo.getParameterToAsString("") -// BigDecimal: A_ProcessInfo.getParameterToAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterToAsTimestamp("") -// Object: A_ProcessInfo.getParameterTo("") - -// The throw exception should be used as result = "@Error@ " - -// result: Result Message (String) - -// Example - -int relationId = A_Record_ID; -// Validate Record ID (Order) -if(relationId <= 0) { - return "@Error@ @FPLE01_CommercialRelation_ID@ @IsMandatory@"; -} -// Validate Lines -try { - PO commercialRelation = MTable.get(A_Ctx, "FPLE01_CommercialRelation").getPO(relationId, A_TrxName); - // Close Project - int projectId = new Query(A_Ctx, "C_Project", "FPLE01_CommercialRelation_ID = ?", A_TrxName).setParameters(relationId).setClient_ID().firstId(); - if(projectId > 0) { - MProject project = new MProject(A_Ctx, projectId, A_TrxName); - project.set_ValueOfColumn("Processed", true); - project.saveEx(); - } - // Update Commercial Relation - commercialRelation.set_ValueOfColumn("IsClosed", true); - commercialRelation.set_ValueOfColumn("CloseDate", new Timestamp(System.currentTimeMillis())); - commercialRelation.saveEx(); - result = ""; -} catch(Exception e) { - return "@Error@ " + e.getLocalizedMessage(); -} \ No newline at end of file diff --git a/scripts/process/examples/TEMPLATE_SB_UnassignOrderfromPS.groovy b/scripts/process/examples/TEMPLATE_SB_UnassignOrderfromPS.groovy deleted file mode 100644 index 768d337..0000000 --- a/scripts/process/examples/TEMPLATE_SB_UnassignOrderfromPS.groovy +++ /dev/null @@ -1,77 +0,0 @@ -// DB Record -// Name: groovy:TEMPLATE_SB_UnassignOrderfromPS -// EventType = P (Process) -// RuleType = S (JSR223ScriptingAPIs) -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.List; -import org.adempiere.exceptions.AdempiereException; -import org.compiere.model.PO; -import org.compiere.model.MTable; -import org.compiere.model.Query; -import org.compiere.model.MOrder; -import org.compiere.model.MOrderLine; - -// Enviroment variables -// A_Ctx: Context (Properties) -// A_Trx: Transaction (Trx) -// A_TrxName: Transaction Name (String) -// A_Record_ID: Record ID (Integer) -// A_AD_Client_ID: Client ID (Integer) -// A_AD_User_ID: Instance User ID (Integer) -// A_AD_PInstance_ID: Instance ID (Integer) -// A_Table_ID: Table ID (Integer) -// A_ProcessInfo: (ProcessInfo) - -// Get a Parameter -// Integer: A_ProcessInfo.getParameterAsInt("") -// String: A_ProcessInfo.getParameterAsString("") -// BigDecimal: A_ProcessInfo.getParameterAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterAsTimestamp("") -// Object: A_ProcessInfo.getParameter("") - -// Get Parameter To -// Integer: A_ProcessInfo.getParameterToAsInt("") -// String: A_ProcessInfo.getParameterToAsString("") -// BigDecimal: A_ProcessInfo.getParameterToAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterToAsTimestamp("") -// Object: A_ProcessInfo.getParameterTo("") - -// The throw exception should be used as result = "@Error@ " - -// result: Result Message (String) - -// Example - -try { - if(A_ProcessInfo != null) { - if(A_ProcessInfo.getSelectionKeys() != null) { - PO shipmentPlanning = MTable.get(A_Ctx, "FPLE01_ShipmentPlanning").getPO(A_Record_ID, A_TrxName); - shipmentPlanning.set_ValueOfColumn("IsUpdateOrderLine", false); - shipmentPlanning.saveEx(); - for (int keyId : A_ProcessInfo.getSelectionKeys()) { - MOrder order = new MOrder(A_Ctx, keyId, A_TrxName); - MOrderLine[] orderLines = order.getLines(); - if(orderLines != null) { - for (MOrderLine ol : orderLines) { - PO planningLine = new Query(A_Ctx, "FPLE01_ShipmentPlanningLine", "C_Order_ID = ? AND C_OrderLine_ID = ?", A_TrxName).setParameters(ol.getC_Order_ID(), ol.getC_OrderLine_ID()).setClient_ID().first(); - if (planningLine != null){ - planningLine.set_ValueOfColumn("IsUpdateOrderLine", false); - planningLine.set_ValueOfColumn("Processed", false); - planningLine.saveEx(); - planningLine.deleteEx(true); - } - } - } - } - // Update Order by Default - shipmentPlanning.set_ValueOfColumn("IsUpdateOrderLine", true); - shipmentPlanning.saveEx(); - } - } - result = ""; -} catch (Exception e) { - return "@Error@ " + e.getLocalizedMessage(); -} \ No newline at end of file diff --git a/scripts/process/templates/TEMPLATE_PR_.groovy b/scripts/process/templates/TEMPLATE_PR_.groovy deleted file mode 100644 index c9e1011..0000000 --- a/scripts/process/templates/TEMPLATE_PR_.groovy +++ /dev/null @@ -1,41 +0,0 @@ -// DB Record -// Name: groovy:TEMPLATE_PR_ -// EventType = P (Process) -// RuleType = S (JSR223ScriptingAPIs) -// Imports Here - -// Enviroment variables -// A_Ctx: Context (Properties) -// A_Trx: Transaction (Trx) -// A_TrxName: Transaction Name (String) -// A_Record_ID: Record ID (Integer) -// A_AD_Client_ID: Client ID (Integer) -// A_AD_User_ID: Instance User ID (Integer) -// A_AD_PInstance_ID: Instance ID (Integer) -// A_Table_ID: Table ID (Integer) -// A_ProcessInfo: (ProcessInfo) - -// Get a Parameter -// Integer: A_ProcessInfo.getParameterAsInt("") -// String: A_ProcessInfo.getParameterAsString("") -// BigDecimal: A_ProcessInfo.getParameterAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterAsTimestamp("") -// Object: A_ProcessInfo.getParameter("") - -// Get Parameter To -// Integer: A_ProcessInfo.getParameterToAsInt("") -// String: A_ProcessInfo.getParameterToAsString("") -// BigDecimal: A_ProcessInfo.getParameterToAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterToAsTimestamp("") -// Object: A_ProcessInfo.getParameterTo("") - -// The throw exception should be used as result = "@Error@ " - -// result: Result Message (String) - -// Code Here -try { - result = ""; -} catch(Exception e) { - return "@Error@ " + e.getLocalizedMessage(); -} \ No newline at end of file diff --git a/scripts/process/templates/TEMPLATE_SB_.groovy b/scripts/process/templates/TEMPLATE_SB_.groovy deleted file mode 100644 index adbb33c..0000000 --- a/scripts/process/templates/TEMPLATE_SB_.groovy +++ /dev/null @@ -1,49 +0,0 @@ -// DB Record -// Name: groovy:TEMPLATE_SB_ -// EventType = P (Process) -// RuleType = S (JSR223ScriptingAPIs) -// Imports Here - -// Enviroment variables -// A_Ctx: Context (Properties) -// A_Trx: Transaction (Trx) -// A_TrxName: Transaction Name (String) -// A_Record_ID: Record ID (Integer) -// A_AD_Client_ID: Client ID (Integer) -// A_AD_User_ID: Instance User ID (Integer) -// A_AD_PInstance_ID: Instance ID (Integer) -// A_Table_ID: Table ID (Integer) -// A_ProcessInfo: (ProcessInfo) - -// Get a Parameter -// Integer: A_ProcessInfo.getParameterAsInt("") -// String: A_ProcessInfo.getParameterAsString("") -// BigDecimal: A_ProcessInfo.getParameterAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterAsTimestamp("") -// Object: A_ProcessInfo.getParameter("") - -// Get Parameter To -// Integer: A_ProcessInfo.getParameterToAsInt("") -// String: A_ProcessInfo.getParameterToAsString("") -// BigDecimal: A_ProcessInfo.getParameterToAsBigDecimal("") -// Timestamp: A_ProcessInfo.getParameterToAsTimestamp("") -// Object: A_ProcessInfo.getParameterTo("") - -// The throw exception should be used as result = "@Error@ " - -// result: Result Message (String) - -// Code Here - -try { - if(A_ProcessInfo != null) { - if(A_ProcessInfo.getSelectionKeys() != null) { - for (int keyId : A_ProcessInfo.getSelectionKeys()) { - - } - } - } - result = ""; -} catch (Exception e) { - return "@Error@ " + e.getLocalizedMessage(); -} \ No newline at end of file