Skip to content
Snippets Groups Projects
Commit a7ca554d authored by Sebastian Listl's avatar Sebastian Listl :speech_balloon:
Browse files

#1067448 order copy fix

parent 30289689
No related branches found
No related tags found
No related merge requests found
......@@ -100,11 +100,6 @@
<entityConsumer>
<name>Orderitems</name>
<description></description>
<dependency>
<name>dependency</name>
<entityName>Orderitem_entity</entityName>
<fieldName>Orderitems</fieldName>
</dependency>
<children>
<entityParameter>
<name>OrderId_param</name>
......@@ -130,6 +125,11 @@
<mandatory v="true" />
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>Orderitem_entity</entityName>
<fieldName>Orderitems</fieldName>
</dependency>
</entityConsumer>
<entityField>
<name>NET</name>
......@@ -191,11 +191,6 @@
<entityConsumer>
<name>Documents</name>
<selectionMode>MULTI</selectionMode>
<dependency>
<name>dependency</name>
<entityName>Document_entity</entityName>
<fieldName>Documents</fieldName>
</dependency>
<children>
<entityParameter>
<name>AssignmentRowId_param</name>
......@@ -206,19 +201,16 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>MainDocuments</name>
<stateProcess>%aditoprj%/entity/Order_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
<dependency>
<name>dependency</name>
<entityName>Document_entity</entityName>
<fieldName>MainDocuments</fieldName>
<fieldName>Documents</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>MainDocuments</name>
<stateProcess>%aditoprj%/entity/Order_entity/entityfields/maindocuments/stateProcess.js</stateProcess>
<children>
<entityParameter>
<name>AssignmentName_param</name>
</entityParameter>
<entityParameter>
<name>AssignmentRowId_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess>
......@@ -228,28 +220,28 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>Salesprojects</name>
<dependency>
<name>dependency</name>
<entityName>Salesproject_entity</entityName>
<fieldName>Salesprojects</fieldName>
<entityName>Document_entity</entityName>
<fieldName>MainDocuments</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>Salesprojects</name>
<children>
<entityParameter>
<name>ContactId_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>KeywordCurrencies</name>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
<entityName>Salesproject_entity</entityName>
<fieldName>Salesprojects</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>KeywordCurrencies</name>
<children>
<entityParameter>
<name>ContainerName_param</name>
......@@ -257,14 +249,14 @@
<expose v="false" />
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>KeywordStates</name>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>KeywordStates</name>
<children>
<entityParameter>
<name>ContainerName_param</name>
......@@ -272,6 +264,11 @@
<expose v="false" />
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>Languages</name>
......@@ -290,11 +287,6 @@
</entityParameter>
<entityConsumer>
<name>Activities</name>
<dependency>
<name>dependency</name>
<entityName>Activity_entity</entityName>
<fieldName>LinkedObjects</fieldName>
</dependency>
<children>
<entityParameter>
<name>RowId_param</name>
......@@ -309,6 +301,11 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>Activity_entity</entityName>
<fieldName>LinkedObjects</fieldName>
</dependency>
</entityConsumer>
<entityField>
<name>OFFER_ID</name>
......@@ -322,11 +319,6 @@
<entityConsumer>
<name>Tasks</name>
<stateProcess>%aditoprj%/entity/Order_entity/entityfields/tasks/stateProcess.js</stateProcess>
<dependency>
<name>dependency</name>
<entityName>Task_entity</entityName>
<fieldName>Tasks</fieldName>
</dependency>
<children>
<entityParameter>
<name>RowId_param</name>
......@@ -341,15 +333,15 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>Task_entity</entityName>
<fieldName>Tasks</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>Attributes</name>
<onValidation>%aditoprj%/entity/Order_entity/entityfields/attributes/onValidation.js</onValidation>
<dependency>
<name>dependency</name>
<entityName>AttributeRelation_entity</entityName>
<fieldName>AttributeRelations</fieldName>
</dependency>
<children>
<entityParameter>
<name>ObjectRowId_param</name>
......@@ -360,15 +352,15 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>AttributeTree</name>
<stateProcess>%aditoprj%/entity/Order_entity/entityfields/attributetree/stateProcess.js</stateProcess>
<dependency>
<name>dependency</name>
<entityName>AttributeRelation_entity</entityName>
<fieldName>TreeProvider</fieldName>
<fieldName>AttributeRelations</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>AttributeTree</name>
<stateProcess>%aditoprj%/entity/Order_entity/entityfields/attributetree/stateProcess.js</stateProcess>
<children>
<entityParameter>
<name>ObjectType_param</name>
......@@ -379,20 +371,25 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>LogHistories</name>
<dependency>
<name>dependency</name>
<entityName>LogHistory_entity</entityName>
<fieldName>LogHistoryProvider</fieldName>
<entityName>AttributeRelation_entity</entityName>
<fieldName>TreeProvider</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>LogHistories</name>
<children>
<entityParameter>
<name>tablenames_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>LogHistory_entity</entityName>
<fieldName>LogHistoryProvider</fieldName>
</dependency>
</entityConsumer>
<entityField>
<name>ORDERTYPE</name>
......@@ -470,31 +467,31 @@
</entityField>
<entityConsumer>
<name>KeywordOrderTypes</name>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
<children>
<entityParameter>
<name>ContainerName_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/keywordordertypes/children/containername_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>KeywordDunningLevels</name>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>KeywordDunningLevels</name>
<children>
<entityParameter>
<name>ContainerName_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/keyworddunninglevels/children/containername_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
</entityConsumer>
<entityField>
<name>OBJECT_ROWID</name>
......@@ -522,11 +519,6 @@
</entityField>
<entityConsumer>
<name>Objects</name>
<dependency>
<name>dependency</name>
<entityName>Object_entity</entityName>
<fieldName>FilteredObjects</fieldName>
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
......@@ -537,14 +529,14 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>Contexts</name>
<dependency>
<name>dependency</name>
<entityName>Context_entity</entityName>
<fieldName>Exclusive</fieldName>
<entityName>Object_entity</entityName>
<fieldName>FilteredObjects</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>Contexts</name>
<children>
<entityParameter>
<name>Blacklist_param</name>
......@@ -555,6 +547,11 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>Context_entity</entityName>
<fieldName>Exclusive</fieldName>
</dependency>
</entityConsumer>
<entityParameter>
<name>PossibleConnectionTypes</name>
......@@ -607,46 +604,46 @@
</entityField>
<entityConsumer>
<name>KeywordPaymentTerms</name>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
<children>
<entityParameter>
<name>ContainerName_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/keywordpaymentterms/children/containername_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>KeywordDeliveryTerms</name>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>KeywordDeliveryTerms</name>
<children>
<entityParameter>
<name>ContainerName_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/keyworddeliveryterms/children/containername_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>KeywordEntry_entity</entityName>
<fieldName>SpecificContainerKeywords</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>PossibleAddresses</name>
<documentation>%aditoprj%/entity/Order_entity/entityfields/possibleaddresses/documentation.adoc</documentation>
<dependency>
<name>dependency</name>
<entityName>Address_entity</entityName>
<fieldName>OrganisationAndContactAddresses</fieldName>
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/possibleaddresses/children/contactid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>Address_entity</entityName>
<fieldName>OrganisationAndContactAddresses</fieldName>
</dependency>
</entityConsumer>
<entityField>
<name>NOTICE</name>
......@@ -663,25 +660,20 @@
</entityField>
<entityConsumer>
<name>Offers</name>
<dependency>
<name>dependency</name>
<entityName>Offer_entity</entityName>
<fieldName>ContactOffers</fieldName>
</dependency>
<children>
<entityParameter>
<name>ContactId_param</name>
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/offers/children/contactid_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>DocumentTemplateTexHeader</name>
<dependency>
<name>dependency</name>
<entityName>DocumentTemplate_entity</entityName>
<fieldName>DocumentTemplateProvider</fieldName>
<entityName>Offer_entity</entityName>
<fieldName>ContactOffers</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>DocumentTemplateTexHeader</name>
<children>
<entityParameter>
<name>DocumentTemplateType_param</name>
......@@ -692,14 +684,14 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/documenttemplatetexheader/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
</entityConsumer>
<entityConsumer>
<name>DocumentTemplateTexFooter</name>
<dependency>
<name>dependency</name>
<entityName>DocumentTemplate_entity</entityName>
<fieldName>DocumentTemplateProvider</fieldName>
</dependency>
</entityConsumer>
<entityConsumer>
<name>DocumentTemplateTexFooter</name>
<children>
<entityParameter>
<name>DocumentTemplateType_param</name>
......@@ -710,6 +702,11 @@
<valueProcess>%aditoprj%/entity/Order_entity/entityfields/documenttemplatetexfooter/children/documenttemplatetypeclassification_param/valueProcess.js</valueProcess>
</entityParameter>
</children>
<dependency>
<name>dependency</name>
<entityName>DocumentTemplate_entity</entityName>
<fieldName>DocumentTemplateProvider</fieldName>
</dependency>
</entityConsumer>
<entityField>
<name>ChosenTexHeader</name>
......@@ -797,10 +794,10 @@
<title>Count</title>
</entityAggregateField>
<entityActionField>
<name>newOrder</name>
<documentation>%aditoprj%/entity/Order_entity/entityfields/neworder/documentation.adoc</documentation>
<name>copyOrder</name>
<documentation>%aditoprj%/entity/Order_entity/entityfields/copyorder/documentation.adoc</documentation>
<title>Copy receipt</title>
<onActionProcess>%aditoprj%/entity/Order_entity/entityfields/neworder/onActionProcess.js</onActionProcess>
<onActionProcess>%aditoprj%/entity/Order_entity/entityfields/copyorder/onActionProcess.js</onActionProcess>
<iconId>VAADIN:COPY</iconId>
</entityActionField>
<entityActionField>
......@@ -916,6 +913,10 @@
</entityActionField>
</children>
</entityActionGroup>
<entityParameter>
<name>SourceOrderId_param</name>
<expose v="true" />
</entityParameter>
</entityFields>
<recordContainers>
<dbRecordContainer>
......
import("system.vars");
import("system.neon");
import("Order_lib");
import("Keyword_lib");
import("KeywordRegistry_basic");
var orderId = vars.get("$field.SALESORDERID");
var fieldValues = {
contactId: vars.getString("$field.CONTACT_ID"),
currency: vars.getString("$field.CURRENCY"),
language: vars.getString("$field.ISOLANGUAGE"),
header: vars.getString("$field.HEADER"),
footer: vars.getString("$field.FOOTER"),
offerId: vars.getString("$field.OFFER_ID"),
deliveryTerm: vars.getString("$field.DELIVERYTERMS"),
paymentTerm: vars.getString("$field.PAYMENTTERMS"),
paymentAddress: vars.getString("$field.PAYMENTADDRESS"),
deliveryAddress: vars.getString("$field.DELIVERYADDRESS"),
objectRowId: vars.getString("$field.OBJECT_ROWID"),
objectType: vars.getString("$field.OBJECT_TYPE"),
dunningDate: vars.getString("$field.DUNNINGDATE"),
dunningLevel: vars.getString("$field.DUNNINGLEVEL"),
orderType: vars.getString("$field.ORDERTYPE"),
cancellation: vars.getString("$field.CANCELLATION"),
orderStatus:vars.getString("$field.ORDERSTATUS")
};
OrderUtils.copyOrder(orderId, fieldValues);
\ No newline at end of file
import("system.vars");
import("system.neon");
import("Order_lib");
import("Keyword_lib");
import("KeywordRegistry_basic");
var contactId = vars.getString("$field.CONTACT_ID");
var currency = vars.getString("$field.CURRENCY");
var language = vars.getString("$field.ISOLANGUAGE");
var header = vars.getString("$field.HEADER");
var footer = vars.getString("$field.FOOTER");
var offerId = vars.getString("$field.OFFER_ID");
var deliveryTerm = vars.getString("$field.DELIVERYTERMS");
var paymentTerm = vars.getString("$field.PAYMENTTERMS");
var paymentAddress = vars.getString("$field.PAYMENTADDRESS");
var deliveryAddress = vars.getString("$field.DELIVERYADDRESS");
var rowId = vars.getString("$field.OBJECT_ROWID");
var objectType = vars.getString("$field.OBJECT_TYPE");
var dunningDate = vars.getString("$field.DUNNINGDATE");
var dunningLevel = vars.getString("$field.DUNNINGLEVEL");
var orderType= vars.getString("$field.ORDERTYPE");
var cancellation= vars.getString("$field.CANCELLATION");
var orderStatus=vars.getString("$field.ORDERSTATUS");
OrderUtils.copyOrder(offerId, contactId, orderType, language, currency, header, footer, deliveryTerm, paymentTerm, paymentAddress, deliveryAddress, objectType, rowId, dunningDate, dunningLevel, cancellation, orderStatus);
\ No newline at end of file
......@@ -4,7 +4,11 @@ import("system.neon");
import("system.vars");
//@TODO: OfferId_param is also set by 'copy order' -> the items of the offer are copied. What should happen?
if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.OfferId_param"))
OrderUtils.copyOfferItemsToOrder(vars.getString("$param.OfferId_param"), vars.get("$local.rowdata")["SALESORDER.SALESORDERID"]);
WorkflowSignalSender.inserted();
\ No newline at end of file
if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
{
if (vars.exists("$param.OfferId_param") && vars.get("$param.OfferId_param"))
OrderUtils.copyOfferItemsToOrder(vars.get("$param.OfferId_param"), vars.get("$local.uid"));
if (vars.exists("$param.SourceOrderId_param") && vars.get("$param.SourceOrderId_param"))
OrderUtils.copyOrderItems(vars.get("$param.SourceOrderId_param"), vars.get("$local.uid"));
}
WorkflowSignalSender.inserted();
......@@ -97,32 +97,42 @@ OrderUtils.createNewOrder = function(pContextId, pRowId, pRelationId)
neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);
}
OrderUtils.copyOrder = function (pSourceOfferId, pContactId, pOrderType, pLanguage, pCurrency, pHeader, pFooter, pDeliveryTerm, pPaymentTerm, pPaymentAddress, pDeliveryAddress, pObjectType, pRowId, pDunningDate, pDunningLevel, pCancellation, pOrderStatus)
/**
* Opens a new Order copy
*
* @param {String} pSourceOrderId id of the source order
* @param {Object} [pOrderData] the field values to preset, possible properties: contactId, orderType, language, offerId, currency,
* header, footer, deliveryTerm, paymentTerm, paymentAddress, deliveryAddress, objectType, objectRowId,
* dunningDate, dunningLevel, cancellation, orderStatus
*/
OrderUtils.copyOrder = function (pSourceOrderId, pOrderData)
{
if (!pOrderData)
pOrderData = {};
var fieldparams = {
"$field.CONTACT_ID" : pContactId,
"$field.ORDERTYPE" : pOrderType,
"$field.ISOLANGUAGE" : pLanguage,
"$field.OFFER_ID" : pSourceOfferId,
"$field.CURRENCY" : pCurrency || "",
"$field.HEADER" : pHeader || "",
"$field.FOOTER" : pFooter || "",
"$field.DELIVERYTERMS" : pDeliveryTerm || "",
"$field.PAYMENTTERMS" : pPaymentTerm || "",
"$field.PAYMENTADDRESS" : pPaymentAddress || "",
"$field.DELIVERYADDRESS" : pDeliveryAddress || "",
"$field.OBJECT_TYPE" : pObjectType || "",
"$field.OBJECT_ROWID" : pRowId || "",
"$field.DUNNINGDATE" : pDunningDate || "",
"$field.DUNNINGLEVEL" : pDunningLevel || "",
"$field.CANCELLATION" : pCancellation || "",
"$field.ORDERSTATUS" : pOrderStatus || ""
"$field.CONTACT_ID": pOrderData.contactId,
"$field.ORDERTYPE": pOrderData.orderType,
"$field.ISOLANGUAGE": pOrderData.language,
"$field.OFFER_ID": pOrderData.offerId,
"$field.CURRENCY": pOrderData.currency || "",
"$field.HEADER": pOrderData.header || "",
"$field.FOOTER": pOrderData.footer || "",
"$field.DELIVERYTERMS": pOrderData.deliveryTerm || "",
"$field.PAYMENTTERMS": pOrderData.paymentTerm || "",
"$field.PAYMENTADDRESS": pOrderData.paymentAddress || "",
"$field.DELIVERYADDRESS": pOrderData.deliveryAddress || "",
"$field.OBJECT_TYPE": pOrderData.objectType || "",
"$field.OBJECT_ROWID": pOrderData.objectRowId || "",
"$field.DUNNINGDATE": pOrderData.dunningDate || "",
"$field.DUNNINGLEVEL": pOrderData.dunningLevel || "",
"$field.CANCELLATION": pOrderData.cancellation || "",
"$field.ORDERSTATUS": pOrderData.orderStatus || ""
};
var params = {};
params["Copy_param"] = JSON.stringify(fieldparams);
params["OfferId_param"] = pSourceOfferId;
var params = {
"Copy_param": JSON.stringify(fieldparams),
"SourceOrderId_param": pSourceOrderId
};
neon.openContext("Order", null, null, neon.OPERATINGSTATE_NEW, params);
}
......@@ -174,6 +184,36 @@ OrderUtils.copyOfferItemsToOrder = function (pSourceOfferId, pOrderId)
.updateData(true, "SALESORDER", cols, null, vals);
}
/**
* copies all orderItems and creates orderItems for an order
*
* @param {String} pSourceOrderId the order to get the items from
* @param {String} pTargetOrderId the order to create the items for
*/
OrderUtils.copyOrderItems = function (pSourceOrderId, pTargetOrderId)
{
var inputMapping = {
"SALESORDERITEM": {
condition: newWhere("SALESORDERITEM.SALESORDER_ID", pSourceOrderId),
ValueMapping: {
"SALESORDER_ID": pTargetOrderId
}
}
};
CopyModuleUtils.copyModule(inputMapping);
var oiUtils = new OrderItemUtils(pTargetOrderId);
//update order price
var [netValue, vat] = oiUtils.getNetAndVat();
newWhere("SALESORDER.SALESORDERID", pTargetOrderId)
.updateFields({
"NET": netValue,
"VAT": vat
});
}
/**
* Will build the order report for the given order.
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment