protected static FR_L5SR_GRPaARQfA_1501_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5SR_GRPaARQfA_1501 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5SR_GRPaARQfA_1501_Array(); var param = new P_L5SR_GRPfA_1343() { BatchNumber = Parameter.BatchNumber, ExpirationDate = Parameter.ExpirationDate, ProductID = Parameter.ProductID }; var stockReceipts = cls_Get_ReceiptPositions_for_Article.Invoke(Connection, Transaction, param, securityTicket).Result; var activeResQuantitiesParam = new P_L3SO_GARQfMCFPSH_1450() { ProductTrackingInstanceList = stockReceipts.Select(i => i.LOG_ProductTrackingInstance_RefID).ToArray() }; var activeReservedQuantities = cls_Get_ActiveReservedQuantities_for_ManuallyClearedForPickingShippmentHeaders.Invoke(Connection, Transaction, activeResQuantitiesParam, securityTicket).Result; var result = new List <L5SR_GRPaARQfA_1501>(); foreach (var item in stockReceipts) { var temp = activeReservedQuantities.SingleOrDefault(i => i.LOG_ProductTrackingInstance_RefID == item.LOG_ProductTrackingInstance_RefID); result.Add(new L5SR_GRPaARQfA_1501() { ReceiptPosition = item, ActiveReservedQuantities = (temp == null) ? 0: temp.ReservedQuantityFromTrackingInstance }); } returnValue.Result = result.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L3SO_DARaUSHfPTIL_1159 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); var param = new P_L3SO_GSaUERfPTIL_1153() { ProductTrackingInstanceIDList = Parameter.TracknigInstances.Select(i => i.ProductTrackingInstanceID).ToArray() }; var shippingsAndActiveReservations = cls_Get_Shippings_and_ActiveReservations_for_ProductTrackingInstanceIDList.Invoke(Connection, Transaction, param, securityTicket).Result; var param2 = new P_L3SO_GARQfMCFPSH_1450() { ProductTrackingInstanceList = Parameter.TracknigInstances.Select(i => i.ProductTrackingInstanceID).ToArray() }; var activeAndStartedReservations = cls_Get_ActiveReservedQuantities_for_ManuallyClearedForPickingShippmentHeaders.Invoke(Connection, Transaction, param2, securityTicket).Result; foreach (var trackingInstance in shippingsAndActiveReservations) { var inParam = Parameter.TracknigInstances.SingleOrDefault(i => i.ProductTrackingInstanceID == trackingInstance.LOG_ProductTrackingInstance_RefID); var activeAndStartedReservation = activeAndStartedReservations.SingleOrDefault(i => i.LOG_ProductTrackingInstance_RefID == trackingInstance.LOG_ProductTrackingInstance_RefID); var activeAndStartedQuantities = (activeAndStartedReservation == null) ? 0 : activeAndStartedReservation.ReservedQuantityFromTrackingInstance; if (inParam != null && (inParam.CurrentQuantityOnTrackingInstance - activeAndStartedQuantities) < inParam.RemovedQuantityFromTrackingInstance) { throw new Exception("Reservation can't be deleted because picking has been started."); } foreach (var item in trackingInstance.Reservations) { #region ShipmentHeaders var shipmentHeader = new ORM_LOG_SHP_Shipment_Header(); shipmentHeader.Load(Connection, Transaction, item.LOG_SHP_Shipment_HeaderID); shipmentHeader.IsPartiallyReadyForPicking = false; shipmentHeader.IsReadyForPicking = false; shipmentHeader.IsManuallyCleared_ForPicking = false; shipmentHeader.HasPickingStarted = false; shipmentHeader.Save(Connection, Transaction); #endregion #region Reservation var reservation = new ORM_LOG_RSV_Reservation(); reservation.Load(Connection, Transaction, item.LOG_RSV_ReservationID); reservation.IsDeleted = true; reservation.Save(Connection, Transaction); #endregion #region Reservation Tracking Instance var reservationTrackingInstance = new ORM_LOG_RSV_Reservation_TrackingInstance(); reservationTrackingInstance.Load(Connection, Transaction, item.LOG_RSV_Reservation_TrackingInstanceID); reservationTrackingInstance.IsDeleted = true; reservationTrackingInstance.Save(Connection, Transaction); #endregion } } return(returnValue); #endregion UserCode }