Example #1
0
        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
        }