protected static FR_L6CN_SCNaURS_0910 Execute(DbConnection Connection, DbTransaction Transaction, P_L6CN_SCNaURS_0910 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6CN_SCNaURS_0910(); returnValue.Result = new L6CN_SCNaURS_0910(); var newShipmentHeaderGuids = new List <Guid>(); var shipmentPositionsToBeCredited = new List <Guid>(); var newShipmentPositions = new List <P_L5RS_CSaRSPfH_0449a>(); foreach (var header in Parameter.ShipmentHeaders) { var shipmentHeader = new ORM_LOG_SHP_Shipment_Header(); var shipmentHeaderPositions = new List <ORM_LOG_SHP_Shipment_Position>(); #region Load Shipment Header and Positions var result = shipmentHeader.Load(Connection, Transaction, header.ShipmentHeaderID); if (result.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } shipmentHeaderPositions = ORM_LOG_SHP_Shipment_Position.Query.Search( Connection, Transaction, new ORM_LOG_SHP_Shipment_Position.Query() { LOG_SHP_Shipment_Header_RefID = header.ShipmentHeaderID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); #endregion L5RS_CSaRSH_0244 newHeader = null; decimal updatedHeaderTotalValue = 0; foreach (var position in shipmentHeaderPositions) { var positionToBeCredited = header.ShipmentPositions.FirstOrDefault(hsp => hsp.ShipmentPositionID == position.LOG_SHP_Shipment_PositionID); // Split Shipment in case that not all positions of one header are selected for crediting // or in case that selected positions quantities are edited. #region Create New Header and Position Object if position is not selected or dirty if (positionToBeCredited == null || positionToBeCredited.Quantity != positionToBeCredited.OriginalQuantity) { if (Parameter.ReturnToStock == false) { #region Create New Header if (newHeader == null) { var newHeaderParameter = new P_L5RS_CSaRSH_0244() { SupplierID = Parameter.SupplierId }; var createResult = cls_Create_Shipment_and_ReturnShipment_Header.Invoke(Connection, Transaction, newHeaderParameter, securityTicket); if (createResult.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } newHeader = createResult.Result; newShipmentHeaderGuids.Add(newHeader.ShipmentHeaderID); } #endregion #region Set New Position Object P_L5RS_CSaRSPfH_0449a newPosition; if (positionToBeCredited == null) { var productTrackingInstance = cls_Get_ProductTrackingInstance_for_StockReceiptPosition.Invoke( Connection, Transaction, new P_L5SR_GPTIfSRP_1322() { ReceiptPositionsID = header.ShipmentPositions[0].ReceiptPositionID }, securityTicket).Result; newPosition = new P_L5RS_CSaRSPfH_0449a() { Quantity = Convert.ToInt32(position.QuantityToShip), PricePerUnit = position.ShipmentPosition_PricePerUnitValueWithoutTax, ProductId = position.CMN_PRO_Product_RefID, ReceiptPositionId = header.ShipmentPositions[0].ReceiptPositionID, ReturnPolicyId = header.ShipmentPositions[0].ReturnPolicyID, ShipmentHeaderID = newHeader.ShipmentHeaderID, ReturnShipmentHeaderID = newHeader.ReturnShipmentHeaderID, ProductTrackingInstance = productTrackingInstance.LOG_ProductTrackingInstanceID, ShelfContentID = productTrackingInstance.LOG_WRH_Shelf_ContentID }; } else { var productTrackingInstance = cls_Get_ProductTrackingInstance_for_StockReceiptPosition.Invoke( Connection, Transaction, new P_L5SR_GPTIfSRP_1322() { ReceiptPositionsID = positionToBeCredited.ReceiptPositionID }, securityTicket).Result; newPosition = new P_L5RS_CSaRSPfH_0449a() { Quantity = positionToBeCredited.OriginalQuantity - positionToBeCredited.Quantity, PricePerUnit = positionToBeCredited.OriginalTotalValue / positionToBeCredited.OriginalQuantity, ProductId = positionToBeCredited.ProductId, ReceiptPositionId = positionToBeCredited.ReceiptPositionID, ReturnPolicyId = positionToBeCredited.ReturnPolicyID, ShipmentHeaderID = newHeader.ShipmentHeaderID, ReturnShipmentHeaderID = newHeader.ReturnShipmentHeaderID, ProductTrackingInstance = productTrackingInstance.LOG_ProductTrackingInstanceID, ShelfContentID = productTrackingInstance.LOG_WRH_Shelf_ContentID }; } newShipmentPositions.Add(newPosition); #endregion } else { #region Return to Stock //The difference in the credited quantity compared to the returned position is taken back to stock. if (positionToBeCredited == null) { var productTrackingInstance = cls_Get_ProductTrackingInstance_for_StockReceiptPosition.Invoke( Connection, Transaction, new P_L5SR_GPTIfSRP_1322() { ReceiptPositionsID = header.ShipmentPositions[0].ReceiptPositionID }, securityTicket).Result; CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content shelfContent = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content(); shelfContent.Load(Connection, Transaction, productTrackingInstance.LOG_WRH_Shelf_ContentID); shelfContent.Quantity_Current = Convert.ToInt32(position.QuantityToShip); shelfContent.Save(Connection, Transaction); CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment shelfContentAdjustment = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment(); shelfContentAdjustment.ShelfContent_RefID = shelfContent.Shelf_RefID; shelfContentAdjustment.QuantityChangedAmount = shelfContent.Quantity_Current; shelfContentAdjustment.QuantityChangedDate = DateTime.Now; shelfContentAdjustment.Creation_Timestamp = DateTime.Now; shelfContentAdjustment.Tenant_RefID = securityTicket.TenantID; shelfContentAdjustment.Save(Connection, Transaction); } else { var productTrackingInstance = cls_Get_ProductTrackingInstance_for_StockReceiptPosition.Invoke( Connection, Transaction, new P_L5SR_GPTIfSRP_1322() { ReceiptPositionsID = positionToBeCredited.ReceiptPositionID }, securityTicket).Result; CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content shelfContent = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content(); shelfContent.Load(Connection, Transaction, productTrackingInstance.LOG_WRH_Shelf_ContentID); shelfContent.Quantity_Current = positionToBeCredited.OriginalQuantity - positionToBeCredited.Quantity; shelfContent.Save(Connection, Transaction); CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment shelfContentAdjustment = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment(); shelfContentAdjustment.ShelfContent_RefID = shelfContent.Shelf_RefID; shelfContentAdjustment.QuantityChangedAmount = shelfContent.Quantity_Current; shelfContentAdjustment.QuantityChangedDate = DateTime.Now; shelfContentAdjustment.Creation_Timestamp = DateTime.Now; shelfContentAdjustment.Tenant_RefID = securityTicket.TenantID; shelfContentAdjustment.Save(Connection, Transaction); } #endregion } } #endregion if (positionToBeCredited == null) { #region Cancel Position #region Get Account var account = ORM_USR_Account.Query.Search(Connection, Transaction, new ORM_USR_Account.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, USR_AccountID = securityTicket.AccountID }).FirstOrDefault(); #endregion position.IsCancelled = true; position.CancelledOnDate = DateTime.Now; position.CancelledBy_BusinessParticipant_RefID = account.BusinessParticipant_RefID; var resultUpdate = position.Save(Connection, Transaction); if (resultUpdate.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } #endregion } else { shipmentPositionsToBeCredited.Add(positionToBeCredited.ReturnShipmentPositionID); updatedHeaderTotalValue += positionToBeCredited.TotalValue; #region Update Position if data is dirty if (positionToBeCredited.Quantity != positionToBeCredited.OriginalQuantity || positionToBeCredited.TotalValue != positionToBeCredited.OriginalTotalValue) { position.QuantityToShip = positionToBeCredited.Quantity; position.ShipmentPosition_ValueWithoutTax = positionToBeCredited.TotalValue; var resultUpdate = position.Save(Connection, Transaction); if (resultUpdate.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } } #endregion } } #region Update shipmentHeader #region Create Credited Status History // fetch 'credited' status id var returnedStatusId = ORM_LOG_SHP_Shipment_Status.Query.Search( Connection, Transaction, new ORM_LOG_SHP_Shipment_Status.Query() { GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EShipmentStatus.Credited), Tenant_RefID = securityTicket.TenantID }).FirstOrDefault().LOG_SHP_Shipment_StatusID; // fetch Status History 'credited by' User Account var performedByAccount = ORM_USR_Account.Query.Search( Connection, Transaction, new ORM_USR_Account.Query() { USR_AccountID = securityTicket.AccountID }) .FirstOrDefault(); // create status Shipment Status history entry var statusHistoryCredited = new ORM_LOG_SHP_Shipment_StatusHistory(); statusHistoryCredited.Creation_Timestamp = DateTime.Now; statusHistoryCredited.IsDeleted = false; statusHistoryCredited.LOG_SHP_Shipment_Header_RefID = shipmentHeader.LOG_SHP_Shipment_HeaderID; statusHistoryCredited.LOG_SHP_Shipment_Status_RefID = returnedStatusId; statusHistoryCredited.LOG_SHP_Shipment_StatusHistoryID = Guid.NewGuid(); statusHistoryCredited.PerformedBy_BusinessParticipant_RefID = performedByAccount == null ? Guid.Empty : performedByAccount.BusinessParticipant_RefID; statusHistoryCredited.Tenant_RefID = securityTicket.TenantID; var resultSave = statusHistoryCredited.Save(Connection, Transaction); if (resultSave.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } #endregion shipmentHeader.ShipmentType_RefID = statusHistoryCredited.LOG_SHP_Shipment_StatusHistoryID; shipmentHeader.ShipmentHeader_ValueWithoutTax = updatedHeaderTotalValue; resultSave = shipmentHeader.Save(Connection, Transaction); if (resultSave.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } #endregion } #region Create New Positions foreach (var shipmentHeaderId in newShipmentHeaderGuids) { var positions = new P_L5RS_CSaRSPfH_0449(); positions.Positions = newShipmentPositions.FindAll(nsp => nsp.ShipmentHeaderID == shipmentHeaderId).ToArray(); var returnShipment = new P_L5RS_SRSHaP_0807a() { CreateNewHeader = false, ShipmentHeader = null, ShipmentPositions = positions }; var savePositionsInputParameter = new P_L5RS_SRSHaP_0807() { ReturnShipments = new P_L5RS_SRSHaP_0807a[] { returnShipment } }; var resultCreate = cls_Save_ReturnShipment_Header_and_Position.Invoke(Connection, Transaction, savePositionsInputParameter, securityTicket); if (resultCreate.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } } #endregion #region Save CreditNote Header and Positions var inputParameter = new P_L5RS_CNfRS_1119() { headerId = Guid.Empty, headerNumber = Parameter.CreditNoteHeaderNumber, headerValue = Parameter.CreditNoteHeaderValue, currencyRef = Parameter.CreditNoteHeaderCurrencyId, creditNoteDate = Parameter.CreditNoteHeaderDate, returnShipmentPositions = shipmentPositionsToBeCredited.ToArray(), receiptPositions = null }; var resultCreditNote = cls_Save_CreditNote_for_ReturnShipment.Invoke(Connection, Transaction, inputParameter, securityTicket); if (resultCreditNote.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; return(returnValue); } #endregion returnValue.Status = FR_Status.Success; returnValue.Result.CreditNoteHeaderId = resultCreditNote.Result; return(returnValue); #endregion UserCode }
protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L3WH_SSCA_1732 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); returnValue.Result = false; double adjustedQuantity = 0.0; CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment adjustment = null; CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance contentAdjustmentTrackingInstance = null; CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content shelfContent = null; if (Parameter.Adjustments == null) { return(returnValue); } var adjustmentsShelfContent = new Dictionary <Guid, Double>(); #region Adjustments without TrackingInstances foreach (var item in Parameter.Adjustments.Where(x => x.TrackingInstanceID == Guid.Empty)) { var productTrackingInstaces = CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance.Query.Search(Connection, Transaction, new CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance.Query { LOG_WRH_Shelf_Content_RefID = item.ShelfContentID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).ToArray(); shelfContent = CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content.Query.Search(Connection, Transaction, new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content.Query() { LOG_WRH_Shelf_ContentID = item.ShelfContentID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); double shelfContent_CurrentQuantity_Minus_TrackingInstances_CurrentQuantity = shelfContent.Quantity_Current; if (productTrackingInstaces != null) { foreach (var assignment in productTrackingInstaces) { var productTrackingInstancesByShelfContent = CL1_LOG.ORM_LOG_ProductTrackingInstance.Query.Search(Connection, Transaction, new CL1_LOG.ORM_LOG_ProductTrackingInstance.Query { LOG_ProductTrackingInstanceID = assignment.LOG_ProductTrackingInstance_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); shelfContent_CurrentQuantity_Minus_TrackingInstances_CurrentQuantity -= productTrackingInstancesByShelfContent.CurrentQuantityOnTrackingInstance; } } adjustedQuantity = item.AdjustedQuantity - shelfContent_CurrentQuantity_Minus_TrackingInstances_CurrentQuantity; adjustment = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment { LOG_WRH_Shelf_ContentAdjustmentID = item.IsRelocation ? item.RelocationAdjustmentID : Guid.NewGuid(), ShelfContent_RefID = item.ShelfContentID, QuantityChangedAmount = adjustedQuantity, QuantityChangedDate = DateTime.Now, IsManualCorrection = item.IsManualCorrection, IfManualCorrection_InventoryChangeReason_RefID = item.IfManualCorrection_InventoryChangeReason_RefID, IsRelocation = item.IsRelocation, IfRelocation_CorrespondingAdjustment_RefID = item.IfRelocation_CorrespondingAdjustment_RefID, IsShipmentWithdrawal = item.IsShipmentWithdrawal, IfShipmentWithdrawal_ShipmentPosition_RefID = item.IfShipmentWithdrawal_ShipmentPosition_RefID, PerformedAt_Date = DateTime.Now, PerformedBy_Account_RefID = securityTicket.AccountID, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID }; adjustment.Save(Connection, Transaction); if (adjustmentsShelfContent.ContainsKey(item.ShelfContentID)) { adjustmentsShelfContent[item.ShelfContentID] += adjustedQuantity; } else { adjustmentsShelfContent[item.ShelfContentID] = adjustedQuantity; } } #endregion #region Adjustments with TrackingInstances // Adjustements that have tracking instances and memorize relative adjustement values by ShelfID foreach (var item in Parameter.Adjustments.Where(x => x.TrackingInstanceID != Guid.Empty)) { var productTrackingInstance = new CL1_LOG.ORM_LOG_ProductTrackingInstance(); productTrackingInstance.Load(Connection, Transaction, item.TrackingInstanceID); if (productTrackingInstance.LOG_ProductTrackingInstanceID == Guid.Empty || productTrackingInstance.IsDeleted == true) { throw new Exception("Wrong Product tracking instance"); } adjustedQuantity = item.AdjustedQuantity - productTrackingInstance.CurrentQuantityOnTrackingInstance; adjustment = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment { LOG_WRH_Shelf_ContentAdjustmentID = item.IsRelocation ? item.RelocationAdjustmentID : Guid.NewGuid(), ShelfContent_RefID = item.ShelfContentID, QuantityChangedAmount = adjustedQuantity, QuantityChangedDate = DateTime.Now, IsManualCorrection = item.IsManualCorrection, IfManualCorrection_InventoryChangeReason_RefID = item.IfManualCorrection_InventoryChangeReason_RefID, IsRelocation = item.IsRelocation, IfRelocation_CorrespondingAdjustment_RefID = item.IfRelocation_CorrespondingAdjustment_RefID, IsShipmentWithdrawal = item.IsShipmentWithdrawal, IfShipmentWithdrawal_ShipmentPosition_RefID = item.IfShipmentWithdrawal_ShipmentPosition_RefID, PerformedAt_Date = DateTime.Now, PerformedBy_Account_RefID = securityTicket.AccountID, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, }; adjustment.Save(Connection, Transaction); contentAdjustmentTrackingInstance = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance { LOG_WRH_Shelf_ContentAdjustment_TrackingInstanceID = Guid.NewGuid(), Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, LOG_ProductTrackingInstance_RefID = item.TrackingInstanceID, LOG_WRH_Shelf_ContentAdjustment_RefID = adjustment.LOG_WRH_Shelf_ContentAdjustmentID, QuantityChangedAmount = item.AdjustedQuantity }; contentAdjustmentTrackingInstance.Save(Connection, Transaction); productTrackingInstance.CurrentQuantityOnTrackingInstance = item.AdjustedQuantity; productTrackingInstance.Save(Connection, Transaction); if (adjustmentsShelfContent.ContainsKey(item.ShelfContentID)) { adjustmentsShelfContent[item.ShelfContentID] += adjustedQuantity; } else { adjustmentsShelfContent[item.ShelfContentID] = adjustedQuantity; } } #endregion // update shelf content for all adjustments foreach (var item in adjustmentsShelfContent.Keys) { shelfContent = CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content.Query.Search(Connection, Transaction, new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content.Query() { LOG_WRH_Shelf_ContentID = item, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); shelfContent.Quantity_Current += adjustmentsShelfContent[item]; shelfContent.Save(Connection, Transaction); } returnValue.Result = true; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L3WH_SRIC_1421 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); #region LOG_RCP_Receipt_Headers (Update) var receiptHeader = CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header.Query.Search(Connection, Transaction, new CL1_LOG_RCP.ORM_LOG_RCP_Receipt_Header.Query() { LOG_RCP_Receipt_HeaderID = Parameter.ReceiptHeaderID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); receiptHeader.IsTakenIntoStock = true; receiptHeader.TakenIntoStock_ByAccount_RefID = securityTicket.AccountID; receiptHeader.TakenIntoStock_AtDate = DateTime.Now; receiptHeader.DeliverySlip_Date = Parameter.DeliveryDate; receiptHeader.DeliverySlip_Number = Parameter.DeliveryNumber; receiptHeader.Save(Connection, Transaction); #endregion #region ORD_PRC_ExpectedDelivery_Headers (Update) var expectedDeliveryHeader = CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header.Query.Search(Connection, Transaction, new CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header.Query() { ORD_PRC_ExpectedDelivery_HeaderID = receiptHeader.ExpectedDeliveryHeader_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (expectedDeliveryHeader != default(CL1_ORD_PRC.ORM_ORD_PRC_ExpectedDelivery_Header)) { expectedDeliveryHeader.IsDeliveryOpen = false; expectedDeliveryHeader.IsDeliveryClosed = true; expectedDeliveryHeader.Save(Connection, Transaction); } #endregion #region Receipt_Positions, Position_QualityControlItems ProcurementOrderPositions_and_ProcurementOrderHeader_for_ReceiptHeaderID (Read) var positionsAndQualityControlItems = CL3_Warehouse.Atomic.Retrieval.cls_Get_ReceiptPositions_and_QualityControlItems_for_HeaderID. Invoke(Connection, Transaction, new CL3_Warehouse.Atomic.Retrieval.P_L3WH_GRPaQCIfH_0905 { ReceiptHeaderID = Parameter.ReceiptHeaderID }, securityTicket).Result; var procurementOrderPositions = CL3_Warehouse.Atomic.Retrieval.cls_Get_ProcurementOrderPositions_and_ProcurementOrderHeader_for_ReceiptHeaderID. Invoke(Connection, Transaction, new CL3_Warehouse.Atomic.Retrieval.P_L3WH_GPOPaPOHfRH_0918 { ReceiptHeaderID = Parameter.ReceiptHeaderID }, securityTicket).Result; #endregion #region LOG_WRH_Shelf_Contents (Save) foreach (var item in positionsAndQualityControlItems) { #region ORM_LOG_WRH_Shelf_Content var shelfContent = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content(); shelfContent.LOG_WRH_Shelf_ContentID = Guid.NewGuid(); shelfContent.Shelf_RefID = item.Target_WRH_Shelf_RefID; shelfContent.Quantity_Current = item.Quantity; shelfContent.Quantity_Initial = item.Quantity; shelfContent.PlacedIntoStock_Date = DateTime.Now; // WithoutProcurement -needed when called from Backoffice for return shipments if (Parameter.WithoutProcurement == false) { var procurementPosition = procurementOrderPositions.Where(x => x.LOG_RCP_Receipt_PositionID == item.Receipt_Position_RefID).Single(); shelfContent.ReceivedAsFulfillmentOf_ProcurementOrderHeader_RefID = procurementPosition.ORD_PRC_ProcurementOrder_HeaderID; shelfContent.ReceivedAsFulfillmentOf_ProcurementOrderPosition_RefID = procurementPosition.ORD_PRC_ProcurementOrder_PositionID; shelfContent.R_ProcurementValue = procurementPosition.Position_ValueTotal; shelfContent.R_ProcurementValue_Currency_RefID = procurementPosition.ProcurementOrder_Currency_RefID; } shelfContent.Product_RefID = item.ReceiptPosition_Product_RefID; shelfContent.R_FreeQuantity = item.Quantity; shelfContent.Creation_Timestamp = DateTime.Now; shelfContent.Tenant_RefID = securityTicket.TenantID; shelfContent.Save(Connection, Transaction); #endregion #region LOG_WRH_Shelf_ContentAdjustments var contentAdjustment = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment(); contentAdjustment.LOG_WRH_Shelf_ContentAdjustmentID = Guid.NewGuid(); contentAdjustment.ShelfContent_RefID = shelfContent.LOG_WRH_Shelf_ContentID; contentAdjustment.QuantityChangedAmount = item.Quantity; contentAdjustment.QuantityChangedDate = DateTime.Now; contentAdjustment.IsInitialReceipt = true; contentAdjustment.IfInitialReceipt_ReceiptPosition_QualityControlItem_RefID = item.LOG_RCP_Receipt_Position_QualityControlItem; contentAdjustment.IsInventoryJobCorrection = false; contentAdjustment.IsShipmentWithdrawal = false; contentAdjustment.IsManualCorrection = false; contentAdjustment.PerformedBy_Account_RefID = securityTicket.AccountID; contentAdjustment.PerformedAt_Date = DateTime.Now; contentAdjustment.ContentAdjustmentComment = "Product is being added on the shelf after intake confirmation of stock receipt"; contentAdjustment.Tenant_RefID = securityTicket.TenantID; contentAdjustment.Creation_Timestamp = DateTime.Now; contentAdjustment.Save(Connection, Transaction); #endregion bool isTrackable = (!String.IsNullOrEmpty(item.BatchNumber) || (DateTime.MinValue != item.ExpiryDate)); if (isTrackable) { #region ORM_LOG_ProductTrackingInstance var trackingInstance = new CL1_LOG.ORM_LOG_ProductTrackingInstance(); trackingInstance.LOG_ProductTrackingInstanceID = Guid.NewGuid(); trackingInstance.TrackingInstanceTakenFromSourceTrackingInstance_RefID = Guid.Empty; trackingInstance.TrackingCode = String.Empty; trackingInstance.SerialNumber = String.Empty; trackingInstance.BatchNumber = item.BatchNumber; trackingInstance.OwnedBy_BusinessParticipant_RefID = Guid.Empty; //this is important if we want to persist owner of product (mobile phone in a service) trackingInstance.CMN_PRO_Product_RefID = item.ReceiptPosition_Product_RefID;; trackingInstance.CMN_PRO_Product_Release_RefID = Guid.Empty; trackingInstance.CMN_PRO_Product_Variant_RefID = Guid.Empty; trackingInstance.ExpirationDate = item.ExpiryDate; trackingInstance.InitialQuantityOnTrackingInstance = item.Quantity; trackingInstance.CurrentQuantityOnTrackingInstance = item.Quantity; trackingInstance.R_ReservedQuantity = 0; trackingInstance.R_FreeQuantity = item.Quantity; trackingInstance.Creation_Timestamp = DateTime.Now; trackingInstance.Tenant_RefID = securityTicket.TenantID; trackingInstance.Save(Connection, Transaction); #endregion #region ORM_LOG_ProductTrackingInstance_HistoryEntry var trackingInstanceHistory = new CL1_LOG.ORM_LOG_ProductTrackingInstance_HistoryEntry(); trackingInstanceHistory.LOG_ProductTrackingInstance_HistoryEntryID = Guid.NewGuid(); trackingInstanceHistory.ProductTrackingInstance_RefID = trackingInstance.LOG_ProductTrackingInstanceID; trackingInstanceHistory.HistoryEntry_Text = "Product is being added on the shelf after intake confirmation of stock receipt"; trackingInstanceHistory.Creation_Timestamp = DateTime.Now; trackingInstanceHistory.Tenant_RefID = securityTicket.TenantID; trackingInstanceHistory.Save(Connection, Transaction); #endregion #region ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance var adjustment2tracking = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance(); adjustment2tracking.LOG_WRH_Shelf_ContentAdjustment_TrackingInstanceID = Guid.NewGuid(); adjustment2tracking.LOG_ProductTrackingInstance_RefID = trackingInstance.LOG_ProductTrackingInstanceID; adjustment2tracking.LOG_WRH_Shelf_ContentAdjustment_RefID = contentAdjustment.LOG_WRH_Shelf_ContentAdjustmentID; adjustment2tracking.QuantityChangedAmount = item.Quantity; adjustment2tracking.Creation_Timestamp = DateTime.Now; adjustment2tracking.Tenant_RefID = securityTicket.TenantID; adjustment2tracking.Save(Connection, Transaction); #endregion #region ORM_LOG_WRH_ShelfContent_2_TrackingInstance var shelf2tracking = new CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance(); shelf2tracking.AssignmentID = Guid.NewGuid(); shelf2tracking.LOG_ProductTrackingInstance_RefID = trackingInstance.LOG_ProductTrackingInstanceID; shelf2tracking.LOG_WRH_Shelf_Content_RefID = shelfContent.LOG_WRH_Shelf_ContentID; shelf2tracking.Creation_Timestamp = DateTime.Now; shelf2tracking.Tenant_RefID = securityTicket.TenantID; shelf2tracking.Save(Connection, Transaction); #endregion } } #endregion return(returnValue); #endregion UserCode }
protected static FR_L3WH_UPTI_1439 Execute(DbConnection Connection, DbTransaction Transaction, P_L3WH_UPTI_1439 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3WH_UPTI_1439(); returnValue.Result = new L3WH_UPTI_1439(); //Put your code here List <P_L3WH_SSCA_1732a> contentAdjustments = new List <P_L3WH_SSCA_1732a>(); List <L3WH_UPTI_1439a> returnVal = new List <L3WH_UPTI_1439a>(); foreach (var trackingInstance in Parameter.ProductTrackingInstance) { P_L3WH_SSCA_1732a ca = new P_L3WH_SSCA_1732a(); L3WH_UPTI_1439a retItem = new L3WH_UPTI_1439a(); #region TrackingInstance var newTrackingInstance = new CL1_LOG.ORM_LOG_ProductTrackingInstance(); var oldTrackingInstance = new CL1_LOG.ORM_LOG_ProductTrackingInstance(); oldTrackingInstance.Load(Connection, Transaction, trackingInstance.ProductTrackingInstanceID); newTrackingInstance.BatchNumber = trackingInstance.BatchNumber; newTrackingInstance.ExpirationDate = trackingInstance.ExpirationDate; newTrackingInstance.Creation_Timestamp = DateTime.Now; newTrackingInstance.OwnedBy_BusinessParticipant_RefID = oldTrackingInstance.OwnedBy_BusinessParticipant_RefID; newTrackingInstance.R_FreeQuantity = oldTrackingInstance.R_FreeQuantity; newTrackingInstance.R_ReservedQuantity = oldTrackingInstance.R_ReservedQuantity; newTrackingInstance.SerialNumber = oldTrackingInstance.SerialNumber; newTrackingInstance.Tenant_RefID = securityTicket.TenantID; newTrackingInstance.TrackingCode = (oldTrackingInstance.TrackingCode == null) ? String.Empty : oldTrackingInstance.TrackingCode; newTrackingInstance.TrackingInstanceTakenFromSourceTrackingInstance_RefID = oldTrackingInstance.TrackingInstanceTakenFromSourceTrackingInstance_RefID; newTrackingInstance.CMN_PRO_Product_RefID = oldTrackingInstance.CMN_PRO_Product_RefID; newTrackingInstance.CMN_PRO_Product_Release_RefID = oldTrackingInstance.CMN_PRO_Product_Release_RefID; newTrackingInstance.CMN_PRO_Product_Variant_RefID = oldTrackingInstance.CMN_PRO_Product_Variant_RefID; newTrackingInstance.CurrentQuantityOnTrackingInstance = oldTrackingInstance.CurrentQuantityOnTrackingInstance; newTrackingInstance.InitialQuantityOnTrackingInstance = oldTrackingInstance.InitialQuantityOnTrackingInstance; newTrackingInstance.IsDeleted = false; newTrackingInstance.Save(Connection, Transaction); oldTrackingInstance.TrackingCode = (oldTrackingInstance.TrackingCode == null) ? String.Empty : oldTrackingInstance.TrackingCode; oldTrackingInstance.IsDeleted = true; oldTrackingInstance.Save(Connection, Transaction); #endregion #region ShelfContent CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content newShelfContent = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content(); CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content oldShelfContent = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content(); oldShelfContent.Load(Connection, Transaction, trackingInstance.ShelfContentID); newShelfContent.GlobalPropertyMatchingID = oldShelfContent.GlobalPropertyMatchingID; newShelfContent.IntakeIntoInventoryDate = oldShelfContent.IntakeIntoInventoryDate; newShelfContent.IsLocked = oldShelfContent.IsLocked; newShelfContent.PlacedIntoStock_Date = oldShelfContent.PlacedIntoStock_Date; newShelfContent.Product_RefID = oldShelfContent.Product_RefID; newShelfContent.Product_Release_RefID = oldShelfContent.Product_Release_RefID; newShelfContent.Product_Variant_RefID = oldShelfContent.Product_Variant_RefID; newShelfContent.Quantity_Current = oldShelfContent.Quantity_Current; newShelfContent.Quantity_Initial = oldShelfContent.Quantity_Initial; newShelfContent.R_FreeQuantity = oldShelfContent.R_FreeQuantity; newShelfContent.R_ProcurementValue = oldShelfContent.R_ProcurementValue; newShelfContent.R_ProcurementValue_Currency_RefID = oldShelfContent.R_ProcurementValue_Currency_RefID; newShelfContent.R_ReservedQuantity = oldShelfContent.R_ReservedQuantity; newShelfContent.ReceivedAsFulfillmentOf_ProcurementOrderHeader_RefID = oldShelfContent.ReceivedAsFulfillmentOf_ProcurementOrderHeader_RefID; newShelfContent.ReceivedAsFulfillmentOf_ProcurementOrderPosition_RefID = oldShelfContent.ReceivedAsFulfillmentOf_ProcurementOrderPosition_RefID; newShelfContent.ReceptionDate = oldShelfContent.ReceptionDate; newShelfContent.Shelf_RefID = oldShelfContent.Shelf_RefID; newShelfContent.Tenant_RefID = securityTicket.TenantID; newShelfContent.UsedShelfCapacityAmount = oldShelfContent.UsedShelfCapacityAmount; newShelfContent.LOG_WRH_Shelf_ContentID = Guid.NewGuid(); newShelfContent.Creation_Timestamp = DateTime.Now; newShelfContent.Save(Connection, Transaction); CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content.Query.SoftDelete(Connection, Transaction, new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content.Query() { LOG_WRH_Shelf_ContentID = trackingInstance.ShelfContentID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance shelfContent2TrackingInstance = new CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance(); shelfContent2TrackingInstance.LOG_ProductTrackingInstance_RefID = newTrackingInstance.LOG_ProductTrackingInstanceID; shelfContent2TrackingInstance.LOG_WRH_Shelf_Content_RefID = newShelfContent.LOG_WRH_Shelf_ContentID; shelfContent2TrackingInstance.Tenant_RefID = securityTicket.TenantID; shelfContent2TrackingInstance.Save(Connection, Transaction); var oldsc2ti = CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance.Query.SoftDelete(Connection, Transaction, new CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance.Query() { LOG_WRH_Shelf_Content_RefID = oldShelfContent.LOG_WRH_Shelf_ContentID, Tenant_RefID = securityTicket.TenantID }); #endregion ca.ProductID = newTrackingInstance.CMN_PRO_Product_RefID; ca.ShelfContentID = newShelfContent.LOG_WRH_Shelf_ContentID; ca.TrackingInstanceID = newTrackingInstance.LOG_ProductTrackingInstanceID; ca.AdjustedQuantity = trackingInstance.Quantity; contentAdjustments.Add(ca); retItem.ProductID = trackingInstance.ProductID; retItem.TrackingInstanceID = newTrackingInstance.LOG_ProductTrackingInstanceID; retItem.LOG_WRH_Shelf_ContentID = newShelfContent.LOG_WRH_Shelf_ContentID; returnVal.Add(retItem); } P_L3WH_SSCA_1732 param = new P_L3WH_SSCA_1732(); param.Adjustments = contentAdjustments.ToArray(); cls_Save_Shelf_ContentAdjustments.Invoke(Connection, Transaction, param, securityTicket); returnValue.Result.newTrackingInstance = returnVal.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L3WH_SSCfP_1635 Execute(DbConnection Connection, DbTransaction Transaction, P_L3WH_SSCfP_1635 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3WH_SSCfP_1635(); //Put your code here #region create shelf content var shelfContent = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_Content(); shelfContent.LOG_WRH_Shelf_ContentID = Guid.NewGuid(); shelfContent.Shelf_RefID = Parameter.ShelfID; shelfContent.Quantity_Current = Parameter.Quantity; shelfContent.Quantity_Initial = Parameter.Quantity; shelfContent.Product_RefID = Parameter.ProductID; shelfContent.R_FreeQuantity = Parameter.Quantity; shelfContent.IsLocked = false; shelfContent.Creation_Timestamp = DateTime.Now; shelfContent.Tenant_RefID = securityTicket.TenantID; shelfContent.Save(Connection, Transaction); #endregion #region LOG_WRH_Shelf_ContentAdjustments var contentAdjustment = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment(); contentAdjustment.LOG_WRH_Shelf_ContentAdjustmentID = Guid.NewGuid(); contentAdjustment.ShelfContent_RefID = shelfContent.LOG_WRH_Shelf_ContentID; contentAdjustment.QuantityChangedAmount = Parameter.Quantity; contentAdjustment.QuantityChangedDate = DateTime.Now; contentAdjustment.IsInitialReceipt = true; /* PITATI PEJU SUTRA * contentAdjustment.IsInventoryJobCorrection = false; * contentAdjustment.IsShipmentWithdrawal = false; * contentAdjustment.IsManualCorrection = false; */ contentAdjustment.PerformedBy_Account_RefID = securityTicket.AccountID; contentAdjustment.PerformedAt_Date = DateTime.Now; contentAdjustment.Tenant_RefID = securityTicket.TenantID; contentAdjustment.Creation_Timestamp = DateTime.Now; contentAdjustment.Save(Connection, Transaction); #endregion #region create tracking instance var trackingInstance = new CL1_LOG.ORM_LOG_ProductTrackingInstance(); trackingInstance.LOG_ProductTrackingInstanceID = Guid.NewGuid(); trackingInstance.TrackingInstanceTakenFromSourceTrackingInstance_RefID = Guid.Empty; trackingInstance.TrackingCode = String.Empty; trackingInstance.SerialNumber = String.Empty; trackingInstance.BatchNumber = Parameter.BatchNumber; trackingInstance.OwnedBy_BusinessParticipant_RefID = Guid.Empty; //this is important if we want to persist owner of product (mobile phone in a service) trackingInstance.CMN_PRO_Product_RefID = Parameter.ProductID; trackingInstance.CMN_PRO_Product_Release_RefID = Guid.Empty; trackingInstance.CMN_PRO_Product_Variant_RefID = Guid.Empty; trackingInstance.ExpirationDate = Parameter.ExpirationDate; trackingInstance.InitialQuantityOnTrackingInstance = Parameter.Quantity; trackingInstance.CurrentQuantityOnTrackingInstance = Parameter.Quantity; trackingInstance.R_ReservedQuantity = 0; trackingInstance.R_FreeQuantity = Parameter.Quantity; trackingInstance.Creation_Timestamp = DateTime.Now; trackingInstance.Tenant_RefID = securityTicket.TenantID; trackingInstance.Save(Connection, Transaction); #endregion #region create tracking instance history var trackingInstanceHistory = new CL1_LOG.ORM_LOG_ProductTrackingInstance_HistoryEntry(); trackingInstanceHistory.LOG_ProductTrackingInstance_HistoryEntryID = Guid.NewGuid(); trackingInstanceHistory.ProductTrackingInstance_RefID = trackingInstance.LOG_ProductTrackingInstanceID; trackingInstanceHistory.HistoryEntry_Text = "Product is added to inventory job process"; trackingInstanceHistory.Creation_Timestamp = DateTime.Now; trackingInstanceHistory.Tenant_RefID = securityTicket.TenantID; trackingInstanceHistory.Save(Connection, Transaction); #endregion #region ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance var adjustment2tracking = new CL1_LOG_WRH.ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance(); adjustment2tracking.LOG_WRH_Shelf_ContentAdjustment_TrackingInstanceID = Guid.NewGuid(); adjustment2tracking.LOG_ProductTrackingInstance_RefID = trackingInstance.LOG_ProductTrackingInstanceID; adjustment2tracking.LOG_WRH_Shelf_ContentAdjustment_RefID = contentAdjustment.LOG_WRH_Shelf_ContentAdjustmentID; adjustment2tracking.QuantityChangedAmount = Parameter.Quantity; adjustment2tracking.Creation_Timestamp = DateTime.Now; adjustment2tracking.Tenant_RefID = securityTicket.TenantID; adjustment2tracking.Save(Connection, Transaction); #endregion #region create ShelfContent_2_TrackingInstance var shelf2tracking = new CL1_LOG_WRH.ORM_LOG_WRH_ShelfContent_2_TrackingInstance(); shelf2tracking.AssignmentID = Guid.NewGuid(); shelf2tracking.LOG_ProductTrackingInstance_RefID = trackingInstance.LOG_ProductTrackingInstanceID; shelf2tracking.LOG_WRH_Shelf_Content_RefID = shelfContent.LOG_WRH_Shelf_ContentID; shelf2tracking.Creation_Timestamp = DateTime.Now; shelf2tracking.Tenant_RefID = securityTicket.TenantID; shelf2tracking.Save(Connection, Transaction); #endregion L3WH_SSCfP_1635 resultItem = new L3WH_SSCfP_1635(); resultItem.ShelfContentID = shelfContent.LOG_WRH_Shelf_ContentID; resultItem.TrackingInstanceID = trackingInstance.LOG_ProductTrackingInstanceID; returnValue.Result = resultItem; return(returnValue); #endregion UserCode }