Skip to content
Snippets Groups Projects
Commit 53bfb85a authored by Maximilian Schröger's avatar Maximilian Schröger
Browse files

Angebotsposten / Stückliste:

- Fertigstellung Stückliste
- Einfügen eines neuen Posten mitsamt der Stückliste des ausgewählten Produktes
- Löschen eines Posten mitsamt seinen untergeordneten Posten
- Funktionsbibliothek Offer_lib zu OfferOrder_lib geändert und Funktionen refactored
parent 76669082
No related branches found
No related tags found
No related merge requests found
Showing
with 61 additions and 106 deletions
import("system.vars");
import("system.result");
import("system.neon");
import("Offer_lib");
import("OfferOrder_lib");
import("Util_lib");
var OfferUtils = new OfferUtils();
......
import("system.vars");
import("system.result");
import("system.neon");
import("Offer_lib");
import("OfferOrder_lib");
if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW)
{
......
import("system.vars");
import("system.result");
import("Offer_lib");
import("OfferOrder_lib");
var oUtils = new OfferUtils();
result.string(oUtils.isEditable(vars.get("$field.STATUS")));
\ No newline at end of file
import("system.vars");
import("system.result");
import("Offer_lib");
import("OfferOrder_lib");
var oUtils = new OfferUtils();
result.string(oUtils.isEditable(vars.get("$field.STATUS")));
\ No newline at end of file
......@@ -3,16 +3,18 @@
<name>Offeritem_entity</name>
<title>Offeritem</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<alias>Data_alias</alias>
<conditionProcess>%aditoprj%/entity/Offeritem_entity/conditionProcess.js</conditionProcess>
<onDBInsert>%aditoprj%/entity/Offeritem_entity/onDBInsert.js</onDBInsert>
<onDBUpdate>%aditoprj%/entity/Offeritem_entity/onDBUpdate.js</onDBUpdate>
<onDBDelete>%aditoprj%/entity/Offeritem_entity/onDBDelete.js</onDBDelete>
<grantCreateProcess>%aditoprj%/entity/Offeritem_entity/grantCreateProcess.js</grantCreateProcess>
<grantUpdateProcess>%aditoprj%/entity/Offeritem_entity/grantUpdateProcess.js</grantUpdateProcess>
<grantDeleteProcess>%aditoprj%/entity/Offeritem_entity/grantDeleteProcess.js</grantDeleteProcess>
<recordContainerType>DB</recordContainerType>
<caption>Offeritem</caption>
<afterOperatingState>%aditoprj%/entity/Offeritem_entity/afterOperatingState.js</afterOperatingState>
<alias>Data_alias</alias>
<conditionProcess>%aditoprj%/entity/Offeritem_entity/conditionProcess.js</conditionProcess>
<orderClauseProcess>%aditoprj%/entity/Offeritem_entity/orderClauseProcess.js</orderClauseProcess>
<onDBInsert>%aditoprj%/entity/Offeritem_entity/onDBInsert.js</onDBInsert>
<onDBUpdate>%aditoprj%/entity/Offeritem_entity/onDBUpdate.js</onDBUpdate>
<onDBDelete>%aditoprj%/entity/Offeritem_entity/onDBDelete.js</onDBDelete>
<entityFields>
<entityIncomingField>
<name>#INCOMING</name>
......@@ -29,6 +31,7 @@
<name>ASSIGNEDTO</name>
<tableName>OFFERITEM</tableName>
<columnName>ASSIGNEDTO</columnName>
<valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/assignedto/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>DATE_EDIT</name>
......@@ -78,6 +81,8 @@
<columnName>ITEMPOSITION</columnName>
<caption>Position</caption>
<state>READONLY</state>
<valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/itemposition/valueProcess.js</valueProcess>
<onValidation>%aditoprj%/entity/Offeritem_entity/entityfields/itemposition/onValidation.js</onValidation>
</entityField>
<entityField>
<name>ITEMSORT</name>
......@@ -153,7 +158,7 @@
<tableName>OFFERITEM</tableName>
<columnName>VAT</columnName>
<caption>VAT</caption>
<state>READONLY</state>
<state>AUTO</state>
</entityField>
<entityParameter>
<name>OfferId_param</name>
......@@ -181,6 +186,7 @@
<outputFormat>#,##0.00</outputFormat>
<state>READONLY</state>
<valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/totalprice/valueProcess.js</valueProcess>
<onValidation>%aditoprj%/entity/Offeritem_entity/entityfields/totalprice/onValidation.js</onValidation>
</entityField>
<entityField>
<name>IMAGE</name>
......
import("system.neon");
import("system.vars");
import("OfferOrder_lib");
var opState = vars.get("$sys.operatingstate");
if(opState == neon.OPERATINGSTATE_NEW)
{
var offerId = vars.get("$field.OFFER_ID");
var oiUtils = new OfferItemUtils(offerId);
vars.set("$field.ITEMSORT", oiUtils.getNextItemSort());
vars.set("$field.ITEMPOSITION", oiUtils.getNextItemPosition(vars.get("$field.ASSIGNEDTO")));
}
\ No newline at end of file
......@@ -14,16 +14,17 @@ if(pid != "")
var PriceListFilter = { currency: curr, quantity: vars.get("$field.QUANTITY"), relationId: relid };
var ProductDetails = pUtils.getProductDetails(pid, PriceListFilter);
if(ProductDetails[pid] != undefined)
if(ProductDetails.productId != undefined)
{
vars.set("$field.GROUPCODEID", ProductDetails[pid].groupCode);
vars.set("$field.UNIT", ProductDetails[pid].unit);
vars.set("$field.ITEMNAME", ProductDetails[pid].productName);
vars.set("$field.GROUPCODEID", ProductDetails.groupCode);
vars.set("$field.UNIT", ProductDetails.unit);
vars.set("$field.ITEMNAME", ProductDetails.productName);
if(ProductDetails[pid].PriceListToUse != null)
if(ProductDetails.PriceListToUse != null)
{
vars.set("$field.PRICE", ProductDetails[pid].PriceListToUse.price);
vars.set("$field.VAT", ProductDetails[pid].PriceListToUse.vat);
vars.set("$field.PRICE", ProductDetails.PriceListToUse.price);
vars.set("$field.VAT", ProductDetails.PriceListToUse.vat);
}
}
}
\ No newline at end of file
......@@ -16,9 +16,9 @@ if(pid != "" && newQuantity != "")
var ProductDetails = pUtils.getProductDetails(pid, PriceListFilter);
if(ProductDetails[pid] != undefined && ProductDetails[pid].PriceListToUse != null)
if(ProductDetails.productId != undefined && ProductDetails.PriceListToUse != null)
{
vars.set("$field.PRICE", ProductDetails[pid].PriceListToUse.price);
vars.set("$field.VAT", ProductDetails[pid].PriceListToUse.vat);
vars.set("$field.PRICE", ProductDetails.PriceListToUse.price);
vars.set("$field.VAT", ProductDetails.PriceListToUse.vat);
}
}
\ No newline at end of file
import("system.result");
import("system.vars");
import("Offer_lib");
import("OfferOrder_lib");
var oiUtils = new OfferItemUtils();
var oiUtils = new OfferItemUtils(vars.get("$field.OFFER_ID"));
result.string(oiUtils.roundPrice(oiUtils.getItemSum(vars.get("$field.QUANTITY"), vars.get("$field.PRICE")
, vars.get("$field.DISCOUNT"), vars.get("$field.OPTIONAL"))));
\ No newline at end of file
import("system.vars");
import("system.result");
import("Offer_lib");
import("OfferOrder_lib");
var oUtils = new OfferUtils();
result.string(oUtils.isEditable(vars.get("$param.OfferStatus_param")));
\ No newline at end of file
import("system.vars");
import("system.result");
import("Offer_lib");
import("OfferOrder_lib");
var oUtils = new OfferUtils();
result.string(oUtils.isEditable(vars.get("$param.OfferStatus_param")));
\ No newline at end of file
import("system.vars");
import("system.result");
import("Offer_lib");
import("OfferOrder_lib");
var oUtils = new OfferUtils();
result.string(oUtils.isEditable(vars.get("$param.OfferStatus_param")));
\ No newline at end of file
import("system.neon");
import("system.vars");
import("system.db");
import("Offer_lib");
import("OfferOrder_lib");
var oid = vars.get("$field.OFFER_ID");
if(oid != "")
{
var oiid = vars.get("$field.OFFERITEMID");
var oiUtils = new OfferItemUtils(oid);
var deletedIds = oiUtils.deletePartsList(oiid);
oiUtils.reOrgItems();
deletedIds.push(oiid);
var cols = ["NET", "VAT"];
var colTypes = db.getColumnTypes("OFFER", cols);
var oUtils = new OfferUtils();
var vals = oUtils.getOfferNetAndVAT(oid, vars.get("$field.OFFERITEMID"));
var vals = oUtils.getOfferNetAndVAT(oid, deletedIds);
db.updateData("OFFER", cols, colTypes, vals, "OFFERID = '" + oid + "'");
......
......@@ -3,44 +3,18 @@ import("system.neon");
import("system.vars");
import("system.db");
import("system.util");
import("Offer_lib");
import("OfferOrder_lib");
import("Product_lib");
var oid = vars.get("$field.OFFER_ID");
if(oid != "")
{
//insert parts list
var rootProdId = vars.get("$field.PRODUCT_ID");
if(rootProdId != "")
{
var p2pUtils = new Prod2prodUtils();
var pUtils = new ProductUtils();
var partsList = p2pUtils.getSubordinatedObject(rootProdId);
var statements = [];
var cols = ["OFFERITEMID"
, "OFFER_ID"
, "PRODUCT_ID"
, "GROUPCODEID"
, "ASSIGNEDTO"
, "ITEMNAME"
, "UNIT"
, "PRICE"
, "VAT"
, "QUANTITY"
, "OPTIONAL"
, "ITEMPOSITION"
, "ITEMSORT"
, "DATE_NEW"
, "USER_NEW"];
var colTypes = db.getColumnTypes("OFFERITEM", cols);
__offeritemInsertStatement(partsList.root, vars.get("$field.OFFERITEMID"), vars.get("$field.ITEMPOSITION"));
if(statements.length > 0)
db.inserts(statements);
}
var curr = vars.exists("$param.Currency_param") ? vars.get("$param.Currency_param") : "";
var relid = vars.exists("$param.RelationId_param") ? vars.get("$param.RelationId_param") : "";
var oiUtils = new OfferItemUtils(vars.get("$field.OFFER_ID"));
oiUtils.insertPartsList(vars.get("$field.PRODUCT_ID"), vars.get("$field.OFFERITEMID"), curr, relid);
oiUtils.reOrgItems();
//update offer price
var cols = ["NET", "VAT"];
......@@ -51,50 +25,4 @@ if(oid != "")
db.updateData("OFFER", cols, colTypes, vals, "OFFERID = '" + oid + "'");
neon.refresh("Offer_entity");
}
function __offeritemInsertStatement(pPartsListObj, pAssignedTo, pPos)
{
for(var i = 0; i < pPartsListObj.ids.length; i++)
{
var p2pid = pPartsListObj.ids[i];
var newid = util.getNewUUID();
var Prod2prodObj = partsList[p2pid];
var prodid = partsList[p2pid].prodid;
var curr = vars.exists("$param.Currency_param") ? vars.get("$param.Currency_param") : "";
var relid = vars.exists("$param.RelationId_param") ? vars.get("$param.RelationId_param") : "";
var ProdDetails = pUtils.getProductDetails(prodid, { currency: curr, quantity: Prod2prodObj.quantity, relationId: relid } )
var price = "";
var vat = "";
if(Prod2prodObj.takeprice == "Y" && ProdDetails.PriceListToUse != null)
{
price = ProdDetails.PriceListToUse.price;
vat = ProdDetails.PriceListToUse.vat;
}
var vals = [newid
, oid
, prodid
, ProdDetails.groupCode
, pAssignedTo
, ProdDetails.productName
, ProdDetails.unit
, price
, vat
, Prod2prodObj.quantity
, Prod2prodObj.optional
, Prod2prodObj.pos //TODO: Pos
, "" //TODO: Itemsort
, datetime.date()
, vars.get("$sys.user")
];
statements.push(["OFFERITEM", cols, colTypes, vals]);
__offeritemInsertStatement(partsList[p2pid], newid);
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@ import("system.logging");
import("system.vars");
import("system.db");
import("system.neon");
import("Offer_lib");
import("OfferOrder_lib");
var oid = vars.get("$field.OFFER_ID");
if(oid != "")
......
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