protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5PO_CEDP_1248 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();

            var account = CL1_USR.ORM_USR_Account.Query.Search(Connection, Transaction,
                                                               new CL1_USR.ORM_USR_Account.Query
            {
                USR_AccountID = securityTicket.AccountID,
                IsDeleted     = false,
                Tenant_RefID  = securityTicket.TenantID
            }).Single();

            var extraDemandProduct = new CL1_ORD_PRC.ORM_ORD_PRC_ExtraDemandProduct
            {
                ORD_PRC_ExtraDemandProductID        = Guid.NewGuid(),
                CreatedBy_BusinessParticipant_RefID = account.BusinessParticipant_RefID,
                Supplier_RefID          = Parameter.SupplierID,
                Product_RefID           = Parameter.ProductID,
                CreatedFor_Office_RefID = Parameter.OfficeID,
                Tenant_RefID            = securityTicket.TenantID
            };
            extraDemandProduct.Save(Connection, Transaction);

            return(returnValue);

            #endregion UserCode
        }
Esempio n. 2
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5PO_CQfEDP_1311 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();

            CL1_ORD_PRC.ORM_ORD_PRC_ExtraDemandProduct extraDemandProduct = null;

            foreach (var item in Parameter.Items)
            {
                extraDemandProduct = new CL1_ORD_PRC.ORM_ORD_PRC_ExtraDemandProduct();
                extraDemandProduct.Load(Connection, Transaction, item.ExtraDemandProductID);

                extraDemandProduct.RequestedQuantity = item.RequestedQuantity;

                extraDemandProduct.Save(Connection, Transaction);
            }

            return(returnValue);

            #endregion UserCode
        }
Esempio n. 3
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5PO_AEDPtPO_1324 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_Guid();

            CL1_ORD_PRC.ORM_ORD_PRC_ExtraDemandProduct extraDemandProduct = null;

            foreach (var item in Parameter.ExtraDemandProductIDs)
            {
                extraDemandProduct = new CL1_ORD_PRC.ORM_ORD_PRC_ExtraDemandProduct();
                extraDemandProduct.Load(Connection, Transaction, item);

                #region Procurement Order Header

                var    pohSupplierParam = new P_L3PO_GAPOHfS_1412();
                string statusActive     = DLCore_DBCommons.Utils.EnumUtils.GetEnumDescription(DLCore_DBCommons.APODemand.EProcurementStatus.Active);
                pohSupplierParam.ActiveStatus_GlobalPropertyMatchingID = statusActive;
                pohSupplierParam.SupplierID = extraDemandProduct.Supplier_RefID;

                var procurementHeader = cls_Get_Active_ProcurementOrderHeader_for_SupplierID.Invoke(
                    Connection, Transaction, pohSupplierParam, securityTicket).Result.SingleOrDefault();

                Guid ProcurementOrderHeaderID = Guid.Empty;

                if (procurementHeader == null || procurementHeader.ORD_PRC_ProcurementOrder_HeaderID == Guid.Empty)
                {
                    // Create new procurement header
                    var pohParam = new P_L3PO_SPOH_0323();
                    pohParam.SupplierID             = extraDemandProduct.Supplier_RefID;
                    pohParam.GlobalStaticMatchingID = EnumUtils.GetEnumDescription(ENumberRangeUsageAreaType.ProcurementOrderNumber);

                    ProcurementOrderHeaderID = cls_Save_ProcurementOrder_Header.Invoke(Connection, Transaction, pohParam, securityTicket).Result;
                }
                else
                {
                    ProcurementOrderHeaderID = procurementHeader.ORD_PRC_ProcurementOrder_HeaderID;
                }

                #endregion

                #region Create Procurement Order Position
                var priceParam = new CL3_Price.Complex.Retrieval.P_L3PR_GSPfPIL_1645
                {
                    ProductIDList = new Guid[] { extraDemandProduct.Product_RefID }
                };

                var price = CL3_Price.Complex.Retrieval.cls_Get_StandardPrices_for_ProductIDList.Invoke(Connection, Transaction, priceParam, securityTicket).Result.Single();

                var positionParam = new P_L3PO_SPOP_0331
                {
                    ORD_PRC_ProcurementOrder_HeaderID = ProcurementOrderHeaderID,
                    Positions = new P_L3PO_SPOP_0331a[]
                    {
                        new P_L3PO_SPOP_0331a
                        {
                            ORD_PRC_ProcurementOrder_PositionID = Guid.Empty,
                            IsDeleted         = false,
                            Position_Quantity = extraDemandProduct.RequestedQuantity,
                            PricePerUnit      = price.AverageProcurementPrice,
                            ProductID         = extraDemandProduct.Product_RefID
                        }
                    }
                };
                Guid[] result = cls_Save_ProcurementOrder_Positions.Invoke(Connection, Transaction, positionParam, securityTicket).Result;

                #region create cash discount
                //Create cash discount type for positions
                P_L5PO_GDVfHaDT_1607 param = new P_L5PO_GDVfHaDT_1607();
                param.DiscountType = EnumUtils.GetEnumDescription(EDiscountType.CashDiscount);
                param.HeaderID     = ProcurementOrderHeaderID;

                var discounts = cls_Get_DiscountValues_for_HeaderID_and_DiscountType.Invoke(Connection, Transaction, param, securityTicket).Result.ToList();

                if (discounts != null && discounts.Count > 0)
                {
                    P_L5PO_SCDfHoP_1117 newDiscountParam = new P_L5PO_SCDfHoP_1117();
                    newDiscountParam.DiscountValue = discounts.First().DiscountValue;
                    newDiscountParam.ProcurementOrderPositionIDList = result;

                    cls_Save_CashDiscount_for_Header_or_Position.Invoke(Connection, Transaction, newDiscountParam, securityTicket);
                }
                #endregion

                #endregion

                extraDemandProduct.ProcurementOrderPosition_RefID = result[0];

                extraDemandProduct.Save(Connection, Transaction);
            }

            return(returnValue);

            #endregion UserCode
        }