private ReportConsumedMaterial.Response ReportConsumedMaterialHandler(ReportConsumedMaterial command) { var response = new ReportConsumedMaterial.Response(); var consumedMaterial = command.ConsumedMaterial; bool customized = Platform.Query <IMaterialDefinitionExt>().Where(cust => cust.MaterialDefinitionId == consumedMaterial.MaterialDefinitionId).Select(cust => cust.Customized).FirstOrDefault(); IToBeConsumedMaterialExt consumedMaterialExt = Platform.Query <IToBeConsumedMaterialExt>().FirstOrDefault(cms => cms.ToBeConsumedMaterialId == consumedMaterial.ToBeConsumedMaterialId && cms.WorkOrderOperationId == consumedMaterial.WorkOrderOperationId); UnplannedMat reportConsumedMaterial = new UnplannedMat(consumedMaterial.ERPOrder, consumedMaterial.OrderSequence, consumedMaterial.MaterialDefinitionNId, customized, consumedMaterialExt.Sequence, consumedMaterial.ConsumedQuantity, consumedMaterial.MaterialDefinitionUoM, consumedMaterial.Plant); var result = InforConnector.ReportConsumedMaterial(reportConsumedMaterial); if (result.InforCallSucceeded == false) { response.SetError(-1001, result.Error); Platform.Tracer.Write("Siemens-SimaticIT-Trace-UADMRuntime", result.Error); } else if (!string.IsNullOrEmpty(result.Error)) { response.SetError(-1002, result.Error); Platform.Tracer.Write("Siemens-SimaticIT-Trace-UADMRuntime", result.Error); } if (response.Succeeded) { consumedMaterialExt.DeclaredQuantity = consumedMaterialExt.DeclaredQuantity + consumedMaterial.ConsumedQuantity; Platform.Submit(consumedMaterialExt); } return(response); }
private ReportConsumedMaterials.Response ReportConsumedMaterialsHandler(ReportConsumedMaterials command) { var response = new ReportConsumedMaterials.Response(); var unplannedMats = new List <UnplannedMat>(); var matExts = new Dictionary <int, IToBeConsumedMaterialExt>(); foreach (var consumedMat in command.ConsumedMaterials) { bool customized = Platform.Query <IMaterialDefinitionExt>().Where(cust => cust.MaterialDefinitionId == consumedMat.MaterialDefinitionId).Select(cust => cust.Customized).FirstOrDefault(); IToBeConsumedMaterialExt consumedMaterialExt = Platform.Query <IToBeConsumedMaterialExt>().FirstOrDefault(cms => cms.ToBeConsumedMaterialId == consumedMat.ToBeConsumedMaterialId && cms.WorkOrderOperationId == consumedMat.WorkOrderOperationId); matExts.Add(consumedMat.ToBeConsumedMaterialId, consumedMaterialExt); unplannedMats.Add(new UnplannedMat(consumedMat.ERPOrder, consumedMat.OrderSequence, consumedMat.MaterialDefinitionNId, customized, consumedMaterialExt.Sequence, consumedMat.ConsumedQuantity, consumedMat.MaterialDefinitionUoM, consumedMat.Plant)); } var result = InforConnector.ReportConsumedMaterials(unplannedMats); if (result.InforCallSucceeded == false) { response.SetError(-1001, result.Error); Platform.Tracer.Write("Siemens-SimaticIT-Trace-UADMRuntime", result.Error); } else if (!string.IsNullOrEmpty(result.Error)) { response.SetError(-1002, result.Error); Platform.Tracer.Write("Siemens-SimaticIT-Trace-UADMRuntime", result.Error); } if (response.Succeeded) { foreach (var matEx in command.ConsumedMaterials) { matExts[matEx.ToBeConsumedMaterialId].DeclaredQuantity = matExts[matEx.ToBeConsumedMaterialId].DeclaredQuantity + matEx.ConsumedQuantity; Platform.Submit(matExts[matEx.ToBeConsumedMaterialId]); } } return(response); }