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

#1067448 copy receipt

parent 30289689
No related branches found
No related tags found
No related merge requests found
Showing
with 253 additions and 199 deletions
......@@ -10,8 +10,8 @@ import("KeywordRegistry_basic");
var sqlHelper = new SqlMaskingUtils();
var querySelect = newSelect([
"CONTRACTID", //#UID
sqlHelper.concat(["CONTRACTCODE", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractStatus(), "CONTRACTSTATUS")], " | "), //#TITLE
sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Type of contract") + ":'",
sqlHelper.concatWithSeparator(["CONTRACTCODE", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractStatus(), "CONTRACTSTATUS")], " | "), //#TITLE
sqlHelper.concatWithSeparator(["ORGANISATION.NAME", "'| " + translate.text("Type of contract") + ":'",
KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.contractType(), "CONTRACTTYPE")]), //#DESCRIPTION
"CONTRACTCODE",
"CONTACT.ORGANISATION_ID", //CONTACT_ORG_ID
......
......@@ -9,8 +9,8 @@ import("KeywordRegistry_basic");
var sqlHelper = new SqlMaskingUtils();
var querySelect = newSelect([
"OFFER.OFFERID", //#UID
sqlHelper.concat([sqlHelper.cast("OFFER.OFFERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | "), //#TITLE
sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 250)]), //#DESCRIPTION
sqlHelper.concatWithSeparator([sqlHelper.cast("OFFER.OFFERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | "), //#TITLE
sqlHelper.concatWithSeparator(["ORGANISATION.NAME", "'| " + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 250)]), //#DESCRIPTION
"OFFER.OFFERCODE",
"OFFER.CONTACT_ID",
"CONTACT.ORGANISATION_ID", //CONTACT_ORG_ID
......
......@@ -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,11 @@
</entityActionField>
</children>
</entityActionGroup>
<entityParameter>
<name>SourceOrderId_param</name>
<expose v="true" />
<description></description>
</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"]);
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();
\ No newline at end of file
......@@ -2,4 +2,4 @@ import("system.result");
import("Context_lib");
import("system.db");
result.string(db.translateStatement(ContextUtils.getNameSql("Offer", "SALESORDER.OFFER_ID")));
\ No newline at end of file
result.string(db.translateStatement(ContextUtils.getNameSql("Offer", null, "SALESORDER.OFFER_ID")));
\ No newline at end of file
......@@ -8,8 +8,8 @@ import("KeywordRegistry_basic");
var sqlHelper = new SqlMaskingUtils();
var querySelect = newSelect([
"SALESORDERID", //#UID
sqlHelper.concat([sqlHelper.cast("SALESORDERCODE", SQLTYPES.CHAR, 10)], " | "), //#TITLE
sqlHelper.concat(["ORGANISATION.NAME"], " | "), //#DESCRIPTION
sqlHelper.concatWithSeparator([sqlHelper.cast("SALESORDERCODE", SQLTYPES.CHAR, 10)], " | "), //#TITLE
sqlHelper.concatWithSeparator(["ORGANISATION.NAME"], " | "), //#DESCRIPTION
"SALESORDERCODE",
"SALESORDER.CONTACT_ID",
"CONTACT.ORGANISATION_ID", //as CONTACT_ORG_ID
......
......@@ -20,14 +20,14 @@ var commMediumMailIds = CommUtil.getMediumIdsByCategory("EMAIL");
var sqlHelper = new SqlMaskingUtils();
var querySelect = newSelect([
"CONTACT.CONTACTID",
sqlHelper.concat(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]),
sqlHelper.concat([
sqlHelper.concat(["standardAddress.ADDRESS", "standardAddress.BUILDINGNO", "'-'"
sqlHelper.concatWithSeparator(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]),
sqlHelper.concatWithSeparator([
sqlHelper.concatWithSeparator(["standardAddress.ADDRESS", "standardAddress.BUILDINGNO", "'-'"
,"standardAddress.COUNTRY", "standardAddress.ZIP", "standardAddress.CITY"]),
sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]),
sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"])
sqlHelper.concatWithSeparator(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]),
sqlHelper.concatWithSeparator(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"])
], " | "),
sqlHelper.concat([sqlHelper.cast("standardAddress.LAT", SQLTYPES.VARCHAR, 16), sqlHelper.cast("standardAddress.LON", SQLTYPES.VARCHAR, 16)], ","),
sqlHelper.concatWithSeparator([sqlHelper.cast("standardAddress.LAT", SQLTYPES.VARCHAR, 16), sqlHelper.cast("standardAddress.LON", SQLTYPES.VARCHAR, 16)], ","),
//additional indexed fields
"ORGANISATION.NAME",
sqlHelper.trim("ORGANISATION.ORGANISATIONID"),//trim to enable filter patterns like: >> -organisationid_value:0<<
......@@ -39,8 +39,8 @@ var querySelect = newSelect([
"ADDRESS.CITY",
"standardEmail.ADDR",
"standardPhone.ADDR",
sqlHelper.concat([sqlHelper.concat(["standardAddress.ADDRESS", "standardAddress.BUILDINGNO"])
,sqlHelper.concat(["standardAddress.COUNTRY", "standardAddress.ZIP", "standardAddress.CITY"])
sqlHelper.conconcatWithSeparatorcat([sqlHelper.concatWithSeparator(["standardAddress.ADDRESS", "standardAddress.BUILDINGNO"])
,sqlHelper.concatWithSeparator(["standardAddress.COUNTRY", "standardAddress.ZIP", "standardAddress.CITY"])
], " - ")
])
.from("ORGANISATION")
......
import("system.entities");
import("Keyword_lib");
import("KeywordRegistry_basic");
import("system.result");
......
......@@ -18,12 +18,12 @@ var commMediumPhoneIds = CommUtil.getMediumIdsByCategory("PHONE");
sqlHelper = new SqlMaskingUtils();
var querySelect = newSelect([
"CONTACT.CONTACTID", //#UID
sqlHelper.concat(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "'|'", "ORGANISATION.NAME"]), //#TITLE
sqlHelper.concat([
sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'",
sqlHelper.concatWithSeparator(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "'|'", "ORGANISATION.NAME"]), //#TITLE
sqlHelper.concatWithSeparator([
sqlHelper.concatWithSeparator(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'",
"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]),
sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]),
sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"])
sqlHelper.concatWithSeparator(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]),
sqlHelper.concatWithSeparator(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"])
], " | "), //#DESCRIPTION
//additional indexed fields
"CONTACT.CONTACTID",
......
......@@ -7,7 +7,7 @@ import("KeywordRegistry_basic");
var sqlHelper = new SqlMaskingUtils();
var sqlQuery = newSelect([
"PRODUCTID", //#UID
sqlHelper.concat(["PRODUCTCODE", "PRODUCTNAME"], " | "), //#TITLE
sqlHelper.concatWithSeparator(["PRODUCTCODE", "PRODUCTNAME"], " | "), //#TITLE
KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODEID"), //#DESCRIPTION
"PRODUCTCODE"
])
......
......@@ -7,7 +7,7 @@ import("Sql_lib");
var helper = new SqlMaskingUtils();
var res = newSelect(helper.concat([helper.cast("PRODUCTPRICE.FROMQUANTITY", SQLTYPES.CHAR, 36), "' '", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.quantityUnit(), "PRODUCT.UNIT")], "|"))
var res = newSelect(helper.concatWithSeparator([helper.cast("PRODUCTPRICE.FROMQUANTITY", SQLTYPES.CHAR, 36), "' '", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.quantityUnit(), "PRODUCT.UNIT")], "|"))
.from("PRODUCT")
.where("PRODUCT.PRODUCTID = PRODUCTPRICE.PRODUCT_ID")
.toString()
......
......@@ -10,7 +10,7 @@ var sqlHelper = new SqlMaskingUtils();
var sqlQuery = newSelect([
"SALESPROJECTID", //#UID
"PROJECTTITLE", //#TITLE
sqlHelper.concat([
sqlHelper.concatWithSeparator([
"'" + translate.text("Status") + ":'", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectState(), "STATUS"),
"'| " + translate.text("Phase") + ":'", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesprojectPhase(), "PHASE")
]), //#DESCRIPTION
......
......@@ -552,7 +552,7 @@ ContactUtils.getActiveCommRestrictionsSubselect = function()
parts.push("case when exists(" + subquery.toString() + ") then '" + pMedium[1] + "' else '' end");
})
return sqlMasking.concat(parts, " ", false);
return sqlMasking.concatWithSeparator(parts, " ", false);
}
/**
......@@ -679,12 +679,12 @@ function ContactTitleRenderer(pContact, pOptions)
//function that renders the contact into a sql expression (e.g. for a subselect)
this._asSqlFn = function(){
var maskingUtil = new SqlMaskingUtils();
var res = maskingUtil.concat([this.contact.salutation, this.contact.title, this.contact.firstname, this.contact.middlename, this.contact.lastname].filter(function (e){
var res = maskingUtil.concatWithSeparator([this.contact.salutation, this.contact.title, this.contact.firstname, this.contact.middlename, this.contact.lastname].filter(function (e){
return e != "";
}), " ", false);
//binary AND check for possibility to check serveral options
if (this._options & ContactTitleRenderer.OPTIONS.IncludeOrganisation && this.contact.organisationName)
res = maskingUtil.concat([res, this.contact.organisationName], " | ");
res = maskingUtil.concatWithSeparator([res, this.contact.organisationName], " | ");
return res;
};
......
......@@ -506,7 +506,7 @@ ContextUtils.getSelectMap = function()
"Person": [newSelect("CONTACTID").from("CONTACT").where("PERSON_ID is not null"), "CONTACT.ORGANISATION_ID", ["Offer", "Order", "Contract", "SupportTicket"]]
})
,"Person": ContextSelector.create("CONTACT", "CONTACTID")
.setTitleExpression(maskingUtils.concat([
.setTitleExpression(maskingUtils.concatWithSeparator([
new ContactTitleRenderer(Contact.createWithColumnPreset()).asSql()
,"' - '"//looks pretty bad; TODO: workaround till Lookups can be loaded over a link-entity; then use displayProc
,"defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO"
......@@ -517,7 +517,7 @@ ContextUtils.getSelectMap = function()
+ " join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID "
+ " left join ADDRESS defaultAddress on defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID")
,"PrivatePerson": ContextSelector.create("PERSON", "PERSONID")
.setTitleExpression(maskingUtils.concat([
.setTitleExpression(maskingUtils.concatWithSeparator([
new ContactTitleRenderer(Contact.createWithColumnPresetForPrivatePerson()).asSql()
,"' - '"//looks pretty bad; TODO: workaround till Lookups can be loaded over a link-entity; then use displayProc
,"defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO"
......@@ -528,19 +528,19 @@ ContextUtils.getSelectMap = function()
.setContactIdField("CONTACT.CONTACTID")
,"Activity": ContextSelector.create("ACTIVITY", "ACTIVITYID", "SUBJECT")
,"Salesproject": ContextSelector.create("SALESPROJECT", "SALESPROJECTID")
.setTitleExpression(maskingUtils.concat([
.setTitleExpression(maskingUtils.concatenate([
"'" + translate.text("Salesproject") + "'",
"' '",
maskingUtils.cast("PROJECTCODE", SQLTYPES.VARCHAR, 10),
"' | '",
"PROJECTTITLE"
], "", false))
]))
.setContactIdField("CONTACT_ID")
.setCreationDateField("STARTDATE")
.setStateField("STATUS")
.setActiveStates([$KeywordRegistry.salesprojectState$open(), $KeywordRegistry.salesprojectState$postponed()])
,"Contract": ContextSelector.create("CONTRACT", "CONTRACTID")
.setTitleExpression(maskingUtils.cast(maskingUtils.concat([
.setTitleExpression(maskingUtils.cast(maskingUtils.concatWithSeparator([
KeywordUtils.getResolvedTitleSqlPart("ContractType", "CONTRACTTYPE"),
maskingUtils.cast("CONTRACTCODE", SQLTYPES.VARCHAR, 10)
], " "), isOracle ? SQLTYPES.NVARCHAR : SQLTYPES.VARCHAR, 50))
......@@ -549,19 +549,19 @@ ContextUtils.getSelectMap = function()
.setStateField("CONTRACTSTATUS")
.setActiveStates([$KeywordRegistry.contractState$validLimited(), $KeywordRegistry.contractState$validUnlimited(), $KeywordRegistry.contractState$notSigned()])
,"Offer": ContextSelector.create("OFFER", "OFFERID")
.setTitleExpression(maskingUtils.cast(maskingUtils.concat([
.setTitleExpression(maskingUtils.cast(maskingUtils.concatenate([
"'" + translate.text("Offer") + "'",
"' '",
maskingUtils.cast("OFFERCODE", SQLTYPES.VARCHAR, 10),
"'-'",
maskingUtils.cast("VERSNR", SQLTYPES.VARCHAR, 10)
], "", false), isOracle ? SQLTYPES.NVARCHAR : SQLTYPES.VARCHAR, 50))
]), isOracle ? SQLTYPES.NVARCHAR : SQLTYPES.VARCHAR, 50))
.setContactIdField("CONTACT_ID")
.setCreationDateField("OFFERDATE")
.setStateField("STATUS")
.setActiveStates([$KeywordRegistry.offerStatus$open(), $KeywordRegistry.offerStatus$checked(), $KeywordRegistry.offerStatus$sent()])
,"Order": ContextSelector.create("SALESORDER", "SALESORDERID")
.setTitleExpression(maskingUtils.cast(maskingUtils.concat([
.setTitleExpression(maskingUtils.cast(maskingUtils.concatWithSeparator([
KeywordUtils.getResolvedTitleSqlPart("OrderType", "ORDERTYPE"),
maskingUtils.cast("SALESORDERCODE", SQLTYPES.VARCHAR, 10)
], " "), isOracle ? SQLTYPES.NVARCHAR : SQLTYPES.VARCHAR, 50))
......@@ -570,14 +570,14 @@ ContextUtils.getSelectMap = function()
.setStateField("ORDERSTATUS")
.setActiveStates([0, 1])
,"Product": ContextSelector.create("PRODUCT", "PRODUCTID")
.setTitleExpression(maskingUtils.concat([
.setTitleExpression(maskingUtils.concatenate([
"PRODUCTCODE",
"' | '",
"PRODUCTNAME"
], "", false))
]))
,"Task": ContextSelector.create("TASK", "TASKID", "SUBJECT")
,"Campaign": ContextSelector.create("CAMPAIGN", "CAMPAIGNID")
.setTitleExpression(maskingUtils.concat(["CAMPAIGN.NAME", "CAMPAIGNSTEP.NAME"], " - ", false))
.setTitleExpression(maskingUtils.concatWithSeparator(["CAMPAIGN.NAME", "CAMPAIGNSTEP.NAME"], " - ", false))
.setContactIdField("CAMPAIGNPARTICIPANT.CONTACT_ID")
.setJoinExpression("left join CAMPAIGNPARTICIPANT on CAMPAIGNPARTICIPANT.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID " +
"left join CAMPAIGNSTEP on CAMPAIGNSTEP.CAMPAIGNSTEPID = CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID")
......@@ -629,15 +629,18 @@ ContextUtils.getNameSubselectSql = function(pContextIdDbField, pRowIdDbField)
/**
* TODO: !!!temporary function until you can get fields from another Entity!!!
*/
ContextUtils.getNameSql = function(pContextId, pRowId)
ContextUtils.getNameSql = function(pContextId, pRowId, pRowIdField)
{
var selectMap = ContextUtils.getSelectMap ()
if (selectMap[pContextId] != undefined)
{
return newSelect(selectMap[pContextId].titleExpression)
.from(selectMap[pContextId].getFullFromClause())
.whereIfSet(selectMap[pContextId].getFullIdField(), pRowId)
.build(SqlBuilder.NORESULT_CONDITION());
var sql = newSelect(selectMap[pContextId].titleExpression)
.from(selectMap[pContextId].getFullFromClause());
if (pRowIdField)
sql.where(selectMap[pContextId].getFullIdField() + " = " + pRowIdField);
else
sql.whereIfSet(selectMap[pContextId].getFullIdField(), pRowId);
return sql.build(SqlBuilder.NORESULT_CONDITION());
}
else
return "select 1 from person where 1=2";
......
......@@ -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.
*
......
......@@ -53,10 +53,10 @@ PlaceholderUtils.getPlaceholders = function (pLocale, pIsExportTemplateField)
_addSqlPart("title", "PERSON.TITLE", null , translate.text("Title", locale));
_addSqlPart("phone", CommUtil.getStandardSubSqlPhone(), null , translate.text("Phone", locale));
_addSqlPart("email", CommUtil.getStandardSubSqlMail(), null , translate.text("Email", locale));
_addSqlPart("name", sqlUtil.concat(["SALUTATION", "TITLE", "FIRSTNAME", "LASTNAME"]), null , translate.text("Name", locale));
_addSqlPart("name", sqlUtil.concatWithSeparator(["SALUTATION", "TITLE", "FIRSTNAME", "LASTNAME"]), null , translate.text("Name", locale));
_addSqlPart("senderPhone", CommUtil.getStandardSubSqlPhone(), Placeholder.targets.SENDER, null);
_addSqlPart("senderEmail", CommUtil.getStandardSubSqlMail(), Placeholder.targets.SENDER, null);
_addSqlPart("senderName", sqlUtil.concat(["SALUTATION", "TITLE", "FIRSTNAME", "LASTNAME"]), Placeholder.targets.SENDER, null);
_addSqlPart("senderName", sqlUtil.concatWithSeparator(["SALUTATION", "TITLE", "FIRSTNAME", "LASTNAME"]), Placeholder.targets.SENDER, null);
_addSqlPart("date", "'" + datetime.toDate(vars.get("sys.date"), translate.text("dd.MM.yyyy")) + "'", Placeholder.targets.SENDER, null);
......
......@@ -42,7 +42,7 @@ AddressUtils.formatOnelineSql = function ()
{
//request (and resulting change) was made here to NOT include Country int othe title
var maskingHelper = new SqlMaskingUtils();
var sqlExpression = maskingHelper.concat(["ADDRESS.ADDRESS", "ADDRESS.BUILDINGNO", "'-'", "ADDRESS.COUNTRY", "ADDRESS.ZIP", "ADDRESS.CITY", "ADDRESS.ADDRIDENTIFIER"]);
var sqlExpression = maskingHelper.concatWithSeparator(["ADDRESS.ADDRESS", "ADDRESS.BUILDINGNO", "'-'", "ADDRESS.COUNTRY", "ADDRESS.ZIP", "ADDRESS.CITY", "ADDRESS.ADDRIDENTIFIER"]);
return sqlExpression;
};
......
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