This commit is contained in:
2021-05-12 16:59:09 +00:00
parent efd876c323
commit eb4d24d850

View File

@@ -1723,7 +1723,7 @@ namespace AyaNova.Biz
{ {
//automatic actions on record change, called AFTER validation //automatic actions on record change, called AFTER validation
var Contract = GetCurrentWorkOrderContractFromRelatedAsync(AyaType.WorkOrderItem, newObj.WorkOrderItemId); var Contract = await GetCurrentWorkOrderContractFromRelatedAsync(AyaType.WorkOrderItem, newObj.WorkOrderItemId);
switch (ayaEvent) switch (ayaEvent)
{ {
@@ -1764,12 +1764,17 @@ namespace AyaNova.Biz
} }
//Contract //Contract
// todo: need to have a bombproof way to get the effective contract and statically hold it here in wobiz until processing finished because other objects in tree may also need it if (Contract != null)
// figure out if there will only ever be ONE effective contract or multiple and then can determine how to handle here {
//Yes precedence is Unit->Customer->headoffice. //update discount pricing
//it's not permitted to have more than one contracted unit on a workorder if (Contract.ServiceRatesOverridePct != 0)
//if a unit has a contract on workorder it applies to *entire* workorder so they must use one unit under contract and it's the entirety of the work performed {
//if they don't want the rest of wo to be discounted etc if (Contract.ServiceRatesOverrideType == ContractOverrideType.CostMarkup)
newObj.Price = newObj.Cost + (newObj.Cost * Contract.ServiceRatesOverridePct);
else if (Contract.ServiceRatesOverrideType == ContractOverrideType.PriceDiscount)
newObj.Price = newObj.ListPrice - (newObj.ListPrice * Contract.ServiceRatesOverridePct);
}
}
break; break;
case AyaEvent.Modified: case AyaEvent.Modified: