Skip to content
Snippets Groups Projects
Commit c3f963c2 authored by Sebastian Pongratz's avatar Sebastian Pongratz :ping_pong:
Browse files

Merge branch 'sales_2003693_deleting_forecasts_doesnt_update_salesproject' into '2021.2.4'

[Projekt: xRM-Sales][TicketNr.: 2003693][Prognose löschen aktualisiert Volumen nicht]

See merge request xrm/basic!1650
parents 00859097 a15fa2eb
No related branches found
No related tags found
No related merge requests found
import("system.entities");
import("Sql_lib");
import("system.vars");
import("Salesproject_lib");
var objectType = vars.get("$field.OBJECT_TYPE");
if(objectType == "Salesproject")
if(vars.get("$field.OBJECT_TYPE") == "Salesproject")
{
var objectRowId = vars.get("$field.OBJECT_ROWID");
var volume = newSelect("sum(VOLUME)")
.from("FORECAST")
.where("FORECAST.OBJECT_TYPE", "Salesproject")
.and("FORECAST.OBJECT_ROWID", objectRowId)
.cell();
var config = entities.createConfigForUpdatingRows()
.uid(objectRowId)
.addParameter("IgnoreChecklists_param", true)
.fieldValues({"VOLUME": volume})
.entity("Salesproject_entity");
entities.updateRow(config);
}
\ No newline at end of file
Salesproject.recalculateVolume(vars.get("$field.OBJECT_ROWID"));
}
import("system.vars");
import("Sql_lib");
import("Salesproject_lib");
import("Workflow_lib");
WorkflowSignalSender.deleted();
\ No newline at end of file
if(vars.get("$field.OBJECT_TYPE") == "Salesproject")
{
// for some reason VOLUME doesnt exist as variable neither does it in rowdata
let forecastVolume = newSelect("FORECAST.VOLUME")
.from("FORECAST")
.where("FORECAST.FORECASTID", vars.get("$field.FORECASTID"))
.cell();
// onDBUpdate is called before actual deletion
// -> pass the change in volume to recalculateVolume
Salesproject.recalculateVolume(
vars.get("$field.OBJECT_ROWID"),
-parseInt(forecastVolume)
);
}
WorkflowSignalSender.deleted();
import("system.entities");
import("ClassificationFilter_lib");
import("AttributeRegistry_basic");
import("Date_lib");
......@@ -50,6 +51,35 @@ Salesproject.validateProjectNumber = function(projectNumber) {
return NumberSequencingUtils.validateUniqueNumber(projectNumber, "PROJECTCODE", "SALESPROJECT");
}
/**
* Recalculates the salesproject volume
* and writes it into the database
*
* @param {string} pSalesprojectId the salesproject id
* @param {number=} pToBeChangedAmount if set this amount will be added to the final volume
*
* @returns {number} the new volume
*/
Salesproject.recalculateVolume = function(pSalesprojectId, pToBeChangedAmount)
{
var volume = newSelect("sum(VOLUME)")
.from("FORECAST")
.where("FORECAST.OBJECT_TYPE", "Salesproject")
.and("FORECAST.OBJECT_ROWID", pSalesprojectId)
.cell();
if(pToBeChangedAmount)
{
volume = (parseInt(volume) + pToBeChangedAmount).toFixed(0);
}
var config = entities.createConfigForUpdatingRows()
.uid(pSalesprojectId)
.addParameter("IgnoreChecklists_param", true)
.fieldValues({"VOLUME": volume})
.entity("Salesproject_entity");
entities.updateRow(config);
return volume;
}
/**
* Insert a new milestone.
*
......
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