protected static FR_L5OR_GCORPwAfBH_1051_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5OR_GCORPwAfBH_1051 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_L5OR_GCORPwAfBH_1051_Array();
            //Put your code here
            var positionParam = new P_L5OR_GCORPfBH_1045
            {
                BillHeaderID = Parameter.BillHeaderID
            };
            var orderReturnBillPositions = cls_Get_CustomerOrderReturnPosition_for_BillHeader.Invoke(Connection, Transaction, positionParam, securityTicket).Result;

            if (orderReturnBillPositions == null || orderReturnBillPositions.Count() == 0)
            {
                return(returnValue);
            }

            var articleParam = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942
            {
                ProductID_List = orderReturnBillPositions.Select(x => x.CMN_PRO_Product_RefID).ToArray()
            };
            var articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articleParam, securityTicket);

            returnValue.Result = orderReturnBillPositions.Select(x => new L5OR_GCORPwAfBH_1051
            {
                OrderReturnBillPosition = orderReturnBillPositions.Single(y => y.BIL_BillPositionID == x.BIL_BillPositionID),
                Article = articles.Result.Single(y => y.CMN_PRO_ProductID == x.CMN_PRO_Product_RefID)
            }).ToArray();

            return(returnValue);

            #endregion UserCode
        }
        protected static FR_L5CO_GCOPwDfH_1421_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5CO_GCOPwDfH_1421 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            //Leave UserCode region to enable user code saving
            #region UserCode
            var returnValue = new FR_L5CO_GCOPwDfH_1421_Array();
            var lsrResult   = new List <L5CO_GCOPwDfH_1421>();

            #region Get Customer Order Positions
            var resultHeaderWithPositions = cls_Get_CustomerOrderHeaders_with_Positions_by_HeaderIDs.Invoke(
                Connection,
                Transaction,
                new P_L3CO_GCOHwPbH_1604()
            {
                CustomerOrderHeaderIDs = new Guid[] { Parameter.OrderHeaderID }
            },
                securityTicket);
            if (resultHeaderWithPositions.Status != FR_Status.Success || resultHeaderWithPositions.Result == null || resultHeaderWithPositions.Result.Count() <= 0)
            {
                returnValue.Result = null;
                returnValue.Status = FR_Status.Error_Internal;
                return(returnValue);
            }
            var resultPositions = resultHeaderWithPositions.Result.Single().Positions;
            #endregion

            #region Get Articles
            var paramArticles = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            paramArticles.ProductID_List = resultPositions.Select(x => x.CMN_PRO_Product_RefID).ToArray <Guid>();

            var articles = new CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942[0];

            if (paramArticles.ProductID_List.Length != 0)
            {
                articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticles, securityTicket).Result;
            }

            #endregion

            foreach (var position in resultPositions)
            {
                var article = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == position.CMN_PRO_Product_RefID);
                if (article == null)
                {
                    continue;
                }

                lsrResult.Add(new L5CO_GCOPwDfH_1421()
                {
                    OrderPosition = position,
                    Article       = article
                });
            }


            returnValue.Result = lsrResult.ToArray();
            return(returnValue);

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

            #region Get Open Shipping Positions

            var statusParam = new CL5_APOBilling_Shipment.Atomic.Retrieval.P_L5SH_GSSfGPMaT_1700
            {
                GlobalPropertyMatchingID = DLCore_DBCommons.Utils.EnumUtils.GetEnumDescription(DLCore_DBCommons.APODemand.EShipmentStatus.Shipped)
            };
            var statusResult = CL5_APOBilling_Shipment.Atomic.Retrieval.cls_Get_Shipment_Status_for_GlobalPropertyMatchingID_and_TenantID.Invoke(
                Connection, Transaction, statusParam, securityTicket).Result;

            var openParam = new CL5_APOBilling_Bill.Atomic.Retrieval.P_L5BL_GOSPwD_0954
            {
                ShipmentStatusID = statusResult.LOG_SHP_Shipment_StatusID
            };
            var positions = CL5_APOBilling_Bill.Atomic.Retrieval.cls_Get_OpenShipmentPositions_with_Data.Invoke(Connection, Transaction, openParam, securityTicket).Result;

            #endregion

            #region Get Articles

            var arrayOfProductId = positions.Select(x => x.CMN_PRO_Product_RefID).ToArray <Guid>();

            var paramArticles = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            paramArticles.ProductID_List = arrayOfProductId;

            var articles = new CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942[0];

            if (arrayOfProductId.Length != 0)
            {
                articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticles, securityTicket).Result;
            }

            #endregion

            var lsrResult = new List <L5BL_GOSPwAfT_1720>();

            foreach (var position in positions)
            {
                var retObj = new L5BL_GOSPwAfT_1720();
                retObj.OrderPosition = position;
                retObj.Article       = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == position.CMN_PRO_Product_RefID);

                lsrResult.Add(retObj);
            }

            returnValue.Result = lsrResult.ToArray();

            return(returnValue);

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

            #region Get Return Shipment Positions
            var positionsResult = cls_Get_ShipmentPositions_for_ShipmentHeaderID
                                  .Invoke(Connection, Transaction, new P_CL3_GSPfSH_1047()
            {
                ShipmentHeaderID = Parameter.ShipmentHeaderID
            }, securityTicket);
            if (positionsResult.Status != FR_Status.Success)
            {
                returnValue.Status = FR_Status.Error_Internal;
                returnValue.Result = null;
                return(returnValue);
            }
            #endregion

            #region Get Articles
            var paramArticles = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            paramArticles.ProductID_List = positionsResult.Result.Select(x => x.CMN_PRO_Product_RefID).ToArray <Guid>();

            var articles = new CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942[0];

            if (paramArticles.ProductID_List.Length != 0)
            {
                articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticles, securityTicket).Result;
            }
            #endregion



            var lsrResult = new List <CL6_GSPwAfSH_1049>();
            foreach (var position in positionsResult.Result)
            {
                var retObj = new CL6_GSPwAfSH_1049()
                {
                    ShipmentPosition = position,
                    Article          = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == position.CMN_PRO_Product_RefID)
                };
                lsrResult.Add(retObj);
            }
            returnValue.Result = lsrResult.ToArray();

            return(returnValue);

            #endregion UserCode
        }
Esempio n. 5
0
        protected static FR_L5SG_GDfSRbSP_1141 Execute(DbConnection Connection, DbTransaction Transaction, P_L5SG_GDfSRbSP_1141 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5SG_GDfSRbSP_1141();
            //Put your code here

            var getStorageDetailsParameter = new CL5_APOLogistic_Storage.Atomic.Retrieval.P_L5SG_GSDfPIDoSID_1612();
            getStorageDetailsParameter.ShelfID = Parameter.ShelfID;
            var storageDetails = CL5_APOLogistic_Storage.Atomic.Retrieval.cls_Get_StorageDetails_for_ProductIDorShelfID.Invoke(Connection, Transaction, getStorageDetailsParameter, securityTicket).Result;

            //remove articles with 0 quantity
            storageDetails = storageDetails.Where(x => x.Quantity_Current > 0).ToArray();


            List <Guid> articlesList = new List <Guid>();

            foreach (var storageDetail in storageDetails)
            {
                articlesList.Add(storageDetail.Product_RefID);
            }

            var getArticlesParameter = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            getArticlesParameter.ProductID_List = articlesList.ToArray();

            if (getArticlesParameter.ProductID_List != null && getArticlesParameter.ProductID_List.Length == 0)
            {
                // simulation because db query generator cannot do with empty param list
                getArticlesParameter.ProductID_List = new Guid[] { Guid.Empty };
            }

            var articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, getArticlesParameter, securityTicket).Result;

            List <L5SG_GDfSRbSP_1141a> articleStorageDetails = new List <L5SG_GDfSRbSP_1141a>();

            foreach (var storageDetail in storageDetails)
            {
                L5SG_GDfSRbSP_1141a temporaryDetail = new L5SG_GDfSRbSP_1141a();
                temporaryDetail.StorageDetails = storageDetail;
                temporaryDetail.Article        = articles.Where(ar => ar.CMN_PRO_ProductID == storageDetail.Product_RefID).First();

                articleStorageDetails.Add(temporaryDetail);
            }

            returnValue.Result = new L5SG_GDfSRbSP_1141();
            returnValue.Result.ArticleStorageDetails = articleStorageDetails.ToArray();

            return(returnValue);

            #endregion UserCode
        }
Esempio n. 6
0
        protected static FR_L5PR_GRPwADfHIDL_1413 Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_GRPwADfHIDL_1413 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5PR_GRPwADfHIDL_1413();
            //Put your code here

            var proposalsParameter = new CL5_APOProcurement_Proposals.Atomic.Retrieval.P_L5PR_GRPCfHL_1418();
            proposalsParameter.HeaderID_List = Parameter.ProposalsHeaders;

            var proposals = CL5_APOProcurement_Proposals.Atomic.Retrieval.cls_Get_RequestProposals_Customer_for_HeaderIdList
                            .Invoke(Connection, Transaction, proposalsParameter, securityTicket).Result.ToList();

            List <Guid> articlesList = new List <Guid>();
            foreach (var proposal in proposals)
            {
                articlesList.Add(proposal.CMN_PRO_Product_RefID);
            }

            var articlesParameter = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            articlesParameter.ProductID_List = articlesList.ToArray();

            var articles = new List <CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942>();

            if (articlesList.Count > 0)
            {
                articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.
                           Invoke(Connection, Transaction, articlesParameter, securityTicket).Result.ToList();
            }

            List <L5PR_GRPwADfHIDL_1413a> proposalsWithDetails = new List <L5PR_GRPwADfHIDL_1413a>();

            foreach (var proposal in proposals)
            {
                L5PR_GRPwADfHIDL_1413a tempProposalWithDetails = new L5PR_GRPwADfHIDL_1413a();
                tempProposalWithDetails.Proposal = proposal;
                tempProposalWithDetails.Article  = articles.Where(ar => ar.CMN_PRO_ProductID == proposal.CMN_PRO_Product_RefID).Single();
                proposalsWithDetails.Add(tempProposalWithDetails);
            }

            returnValue.Result = new L5PR_GRPwADfHIDL_1413();
            returnValue.Result.ProposalsWithArticleDetails = proposalsWithDetails.ToArray();

            return(returnValue);

            #endregion UserCode
        }
        protected static FR_L5BL_GBPwAfBH_1848_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5BL_GBPwAfBH_1848 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5BL_GBPwAfBH_1848_Array();
            returnValue.Result = new L5BL_GBPwAfBH_1848[0];

            // shipped status for tenant
            var statusParam = new CL5_APOBilling_Shipment.Atomic.Retrieval.P_L5SH_GSSfGPMaT_1700
            {
                GlobalPropertyMatchingID = DLCore_DBCommons.Utils.EnumUtils.GetEnumDescription(DLCore_DBCommons.APODemand.EShipmentStatus.Shipped)
            };
            var statusResult = CL5_APOBilling_Shipment.Atomic.Retrieval.cls_Get_Shipment_Status_for_GlobalPropertyMatchingID_and_TenantID.Invoke(Connection, Transaction, statusParam, securityTicket).Result;

            var billParam = new CL5_APOBilling_Bill.Atomic.Retrieval.P_L5BL_GBPfBH_1534
            {
                BillHeaderID     = Parameter.BillHeaderID,
                ShipmentStatusID = statusResult.LOG_SHP_Shipment_StatusID
            };

            var billPositions = CL5_APOBilling_Bill.Atomic.Retrieval.cls_Get_BillPositions_for_BillHeader.Invoke(Connection, Transaction, billParam, securityTicket).Result;

            if (billPositions == null || billPositions.Count() == 0)
            {
                return(returnValue);
            }

            var articleParam = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942
            {
                ProductID_List = billPositions.Select(x => x.CMN_PRO_Product_RefID).ToArray()
            };
            var articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articleParam, securityTicket);

            returnValue.Result = billPositions.Select(x => new L5BL_GBPwAfBH_1848
            {
                BillPosition = billPositions.Single(y => y.BIL_BillPositionID == x.BIL_BillPositionID),
                Article      = articles.Result.Single(y => y.CMN_PRO_ProductID == x.CMN_PRO_Product_RefID)
            }).ToArray();

            return(returnValue);

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

            //Get Customer Order Return Positions
            var customerOrderReturnPositions = cls_Get_Open_CustomerOrderReturnPosition_with_Data.Invoke(Connection, Transaction, securityTicket).Result;

            // Get Articles
            var arrayOfProductId = customerOrderReturnPositions.Select(x => x.CMN_PRO_Product_RefID).ToArray <Guid>();

            var paramArticles = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            paramArticles.ProductID_List = arrayOfProductId;

            var articles = new CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942[0];

            if (arrayOfProductId.Length != 0)
            {
                articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticles, securityTicket).Result;
            }

            var lsrResult = new List <L5BL_GOORPwAfT_1427>();

            foreach (var position in customerOrderReturnPositions)
            {
                var retObj = new L5BL_GOORPwAfT_1427();
                retObj.OrderReturnPositions = position;
                retObj.Article = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == position.CMN_PRO_Product_RefID);

                lsrResult.Add(retObj);
            }

            returnValue.Result = lsrResult.ToArray();

            return(returnValue);

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

            #region Shippment Status - Shipped

            var shippedStatus = CL1_LOG_SHP.ORM_LOG_SHP_Shipment_Status.Query.Search(Connection, Transaction,
                                                                                     new CL1_LOG_SHP.ORM_LOG_SHP_Shipment_Status.Query
            {
                GlobalPropertyMatchingID = DLCore_DBCommons.Utils.EnumUtils.GetEnumDescription(DLCore_DBCommons.APODemand.EShipmentStatus.Shipped),
                IsDeleted    = false,
                Tenant_RefID = securityTicket.TenantID
            }).Single();

            #endregion

            #region Get shipped quantities by month/year period for year given by the parameter for the list of articles

            var sqParam = new  CL3_Articles.Atomic.Retrieval.P_L3AR_GSQbMaY_1546
            {
                ShippedStatusID = shippedStatus.LOG_SHP_Shipment_StatusID,
                ProductID_List  = Parameter.ProductIDList,
                Year            = Parameter.Year
            };

            var quantitiesByPeriod = CL3_Articles.Atomic.Retrieval.cls_Get_Shipped_Quantities_by_Month_and_Year.Invoke(Connection, Transaction, sqParam, securityTicket).Result;

            #endregion

            #region Get summed up quantities of the products in the stock

            var scqParam = new CL3_Articles.Atomic.Retrieval.P_L3AR_GCQfPIL_1013
            {
                ProductID_List = Parameter.ProductIDList
            };

            var quantitiesByProduct = CL3_Articles.Atomic.Retrieval.cls_Get_CurrentQuantity_for_ProductIDList.Invoke(Connection, Transaction, scqParam, securityTicket).Result;

            #endregion

            #region Get all articles data regardless of the found quantities

            var articleParam = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942
            {
                ProductID_List = Parameter.ProductIDList
            };

            var articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articleParam, securityTicket).Result;

            #endregion

            #region Get Companies info data (Just one for now, from the current user's account)

            var companyInfo = CL2_AccountInformation.Atomic.Retrieval.cls_Get_AccountCompanyInformation_for_AccountID.Invoke(Connection, Transaction, securityTicket).Result;

            /*
             * TODO: Remove this. Find out why can there be no data for this retrieval.
             */
            if (companyInfo == null)
            {
                companyInfo = new CL2_AccountInformation.Atomic.Retrieval.L2AI_GACIfAID_1455();
                companyInfo.CompanyName_Line1         = "-";
                companyInfo.BusinessParticipant_RefID = Guid.NewGuid();
            }

            #endregion

            #region Get MSR

            var msrForProducts = cls_Get_MSR_for_ProductIDList.Invoke(Connection, Transaction,
                                                                      new P_L3AS_GSMRfPL_1508 {
                ProductIDList = Parameter.ProductIDList
            }, securityTicket).Result;

            #endregion

            #region Bind all data to returning object

            var result = new List <L3PR_GASS_fPIL_1533>();

            L3PR_GASS_fPIL_1533 resultItem = null;
            foreach (var productID in Parameter.ProductIDList)
            {
                resultItem = new L3PR_GASS_fPIL_1533();
                var productMSR = msrForProducts.SingleOrDefault(x => x.ProductID == productID);



                resultItem.Article      = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == productID);
                resultItem.SoldByPeriod = quantitiesByPeriod.Where(x => x.ProductID == productID).ToArray();
                resultItem.ShelfContent = quantitiesByProduct.SingleOrDefault(x => x.Product_RefID == productID);
                resultItem.MSR          = (productMSR != null) ? productMSR.MSR : (double)0.0;
                resultItem.CompanyInfo  = new L3PR_GASS_fPIL_1533a
                {
                    BPID = companyInfo.BusinessParticipant_RefID,
                    Name = companyInfo.CompanyName_Line1
                };
                result.Add(resultItem);
            }

            returnValue.Result = result.ToArray();

            #endregion

            return(returnValue);

            #endregion UserCode
        }
Esempio n. 10
0
        protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_CRR_1429 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_Guid();
            //Put your code here

            #region ArticlesAndPrices

            var productIDsParam = new List <Guid>();

            foreach (var proposalRequestPosition in Parameter.ProposalRequestPositions)
            {
                productIDsParam.Add(proposalRequestPosition.ProductID);
            }

            var productsParameter = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            productsParameter.ProductID_List = productIDsParam.Distinct().ToArray();

            var pricesParam = new CL3_Price.Complex.Retrieval.P_L3PR_GSPfPIL_1645();
            pricesParam.ProductIDList = productIDsParam.Distinct().ToArray();

            var products = new List <CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942>();
            var prices   = new List <CL3_Price.Complex.Retrieval.L3PR_GSPfPIL_1645>();

            if (Parameter.ProposalRequestPositions.Length > 0)
            {
                prices   = CL3_Price.Complex.Retrieval.cls_Get_StandardPrices_for_ProductIDList.Invoke(Connection, Transaction, pricesParam, securityTicket).Result.ToList();
                products = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, productsParameter, securityTicket).Result.ToList();
            }

            #endregion

            var responseHeader = new CL1_ORD_PRC_RFP.ORM_ORD_PRC_RFP_SupplierProposalResponse_Header();
            responseHeader.ORD_PRC_RFP_SupplierProposalResponse_HeaderID = Guid.NewGuid();
            responseHeader.ProposalResponseHeaderITPL = Parameter.ProposalResponseHeaderITPL;
            responseHeader.OfferReceivedFrom_RegisteredBusinessParticipant_RefID = Parameter.OfferReceivedFrom_RegisteredBusinessParticipant_RefID;
            responseHeader.CreatedFor_RequestForProposal_Header_RefID            = Parameter.CreatedFor_RequestForProposal_Header_RefID;
            responseHeader.ValidThrough = Parameter.ValidThrough;
            responseHeader.Tenant_RefID = securityTicket.TenantID;

            responseHeader.Save(Connection, Transaction);

            foreach (var param in Parameter.ProposalRequestPositions)
            {
                #region RegisteredBusinessParticipantHistoryUpdate

                var potentialSupplier = new CL1_ORD_PRC_RFP.ORM_ORD_PRC_RFP_PotentialSupplier();

                var supplierForHistoryQuery = ORM_ORD_PRC_RFP_PotentialSupplier.Query.Search(Connection, Transaction,
                                                                                             new ORM_ORD_PRC_RFP_PotentialSupplier.Query
                {
                    RequestForProposal_Header_RefID = Parameter.CreatedFor_RequestForProposal_Header_RefID,
                    Tenant_RefID = securityTicket.TenantID
                }
                                                                                             ).First();

                //accepted request history
                var history = new CL1_ORD_PRC_RFP.ORM_ORD_PRC_RFP_PotentialSupplier_History();
                history.ORD_PRC_RFP_PotentialSupplier_HistoryID = Guid.NewGuid();
                history.ORD_PRC_RFP_PotentialSupplier_RefID     = supplierForHistoryQuery.ORD_PRC_RFP_PotentialSupplierID;
                history.IsEvent_ProposalResponse_Accepted       = true;
                history.Tenant_RefID = securityTicket.TenantID;
                history.Save(Connection, Transaction);

                #endregion

                var responsePosition = new CL1_ORD_PRC_RFP.ORM_ORD_PRC_RFP_SupplierProposalResponse_Position();

                var productPrice = prices.Single(pr => pr.ProductID == param.ProductID).SalesPrice;
                var productTax   = Convert.ToDecimal(products.Single(pr => pr.CMN_PRO_ProductID == param.ProductID).Taxes[0].TaxRate);

                responsePosition.ORD_PRC_RFP_SupplierProposalResponse_PositionID = Guid.NewGuid();
                responsePosition.PricePerUnit_WithoutTax              = productPrice;
                responsePosition.PricePerUnit_IncludingTax            = DLUtils_Common.Calculations.MoneyUtils.CalculateGrossPriceForTaxInPercent(productPrice, productTax);
                responsePosition.SupplierProposalResponseHeader_RefID = responseHeader.ORD_PRC_RFP_SupplierProposalResponse_HeaderID;
                responsePosition.ProposalResponsePositionITPL         = responsePosition.ORD_PRC_RFP_SupplierProposalResponse_PositionID.ToString();
                responsePosition.Quantity = param.Quantity;
                responsePosition.TotalPrice_IncludingTax = responseHeader.TotalPrice_IncludingTax;
                responsePosition.TotalPrice_WithoutTax   = responseHeader.TotalPrice_WithoutTax;
                responsePosition.CreatedFrom_RequestForProposal_Position_RefID = param.Created_From_RequestForProposal_Position_RefID;
                responsePosition.Tenant_RefID          = securityTicket.TenantID;
                responsePosition.CMN_PRO_Product_RefID = param.ProductID;
                responsePosition.Save(Connection, Transaction);
            }


            returnValue.Result = responseHeader.ORD_PRC_RFP_SupplierProposalResponse_HeaderID;
            return(returnValue);

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

            #region Get StockReceiptPositions Position

            var parameterPositions = new CL5_APOLogistic_StockReceipt.Atomic.Retrieval.P_L5SR_GSROfHA_1408();
            parameterPositions.ReceiptHeaderID = Parameter.ReceiptHeaderID;

            var positions = CL5_APOLogistic_StockReceipt.Atomic.Retrieval.cls_Get_StockReceiptsPositions_for_ReceiptHeaderID_Atomic
                            .Invoke(Connection, Transaction, parameterPositions, securityTicket).Result;

            #endregion

            if (positions.Count() == 0)
            {
                returnValue.Result = new L5SR_GSRPfH_1544[0];
                return(returnValue);
            }

            #region Get Articles

            var paramArticles = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            paramArticles.ProductID_List = positions.Select(x => x.ReceiptPosition_Product_RefID).Distinct().ToArray();

            var articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticles, securityTicket).Result;

            #endregion

            #region Get All StoragePlaces for TenantID
            var filterCriteria = new P_L3WH_GSPfFC_1504()
            {
                WarehouseGroupID    = null,
                WarehouseID         = null,
                AreaID              = null,
                RackID              = null,
                UseShelfIDList      = true,
                ShelfIDs            = positions.Select(i => i.Target_WRH_Shelf_RefID).Distinct().ToArray(),
                UseProductIDList    = false,
                ProductIDs          = new Guid[] { Guid.Empty },
                BottomShelfQuantity = null,
                TopShelfQuantity    = null,
                UseProductTrackingInstanceIDList = false,
                ProductTrackingInstanceIDs       = new Guid[] { Guid.Empty },
                StartExpirationDate = null,
                EndExpirationDate   = null
            };
            var allStoragePlacesForTenant = cls_Get_StoragePlaces_for_FilterCriteria.Invoke(
                Connection,
                Transaction,
                filterCriteria,
                securityTicket).Result;

            #endregion

            #region Get_StandardPrices_for_ProductIDList

            var priceParam = new P_L3PR_GSPfPIL_1645
            {
                ProductIDList = positions.Select(x => x.ReceiptPosition_Product_RefID).Distinct().ToArray()
            };

            var prices = cls_Get_StandardPrices_for_ProductIDList.Invoke(Connection, Transaction, priceParam, securityTicket).Result;

            #endregion

            var result = new List <L5SR_GSRPfH_1544>();

            foreach (var position in positions)
            {
                var retObj = new L5SR_GSRPfH_1544();
                retObj.OrderPosition  = position;
                retObj.Article        = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == position.ReceiptPosition_Product_RefID);
                retObj.StandardPrices = prices.SingleOrDefault(x => x.ProductID == position.ReceiptPosition_Product_RefID);

                if (position.Target_WRH_Shelf_RefID != Guid.Empty)
                {
                    var storagePlace = allStoragePlacesForTenant.Where(i => i.LOG_WRH_ShelfID == position.Target_WRH_Shelf_RefID).FirstOrDefault();

                    if (storagePlace != null)
                    {
                        retObj.StoragePlace = String.Format("{0}-{1}-{2}-{3}",
                                                            storagePlace.WarehouseCoordinateCode,
                                                            storagePlace.AreaCoordinateCode,
                                                            storagePlace.RackCoordinateCode,
                                                            storagePlace.ShelfCoordinateCode);
                    }
                }
                result.Add(retObj);
            }

            returnValue.Result = result.ToArray();
            return(returnValue);

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

            #region Get Stock Receipt Positions

            var parameterPositions = new CL5_APOLogistic_StockReceipt.Atomic.Retrieval.P_L5SR_GSROfHA_1408();
            parameterPositions.ReceiptHeaderID = Parameter.ReceiptHeaderID;

            var positions = CL5_APOLogistic_StockReceipt.Atomic.Retrieval.cls_Get_StockReceiptsPositions_for_ReceiptHeaderID_Atomic
                            .Invoke(Connection, Transaction, parameterPositions, securityTicket).Result;

            #endregion

            #region Get Articles
            var arrayOfProductId = positions.Select(x => x.ReceiptPosition_Product_RefID).Distinct().ToArray <Guid>();


            var paramArticles = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            paramArticles.ProductID_List = arrayOfProductId;

            var articles = new CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942[0];

            if (arrayOfProductId.Length != 0)
            {
                articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticles, securityTicket).Result;
            }

            var getPricesParam = new CL3_Price.Complex.Retrieval.P_L3PR_GSPfPIL_1645();
            getPricesParam.ProductIDList = arrayOfProductId;

            List <CL3_Price.Complex.Retrieval.L3PR_GSPfPIL_1645> prices = new List <L3PR_GSPfPIL_1645>();
            if (arrayOfProductId.Length > 0)
            {
                prices = CL3_Price.Complex.Retrieval.cls_Get_StandardPrices_for_ProductIDList.Invoke(Connection, Transaction, getPricesParam, securityTicket).Result.ToList();
            }
            #endregion

            var lsrResult = new List <L5SR_GSRPfHbP_1522>();

            foreach (var position in positions)
            {
                var retObj = new L5SR_GSRPfHbP_1522();
                retObj.OrderPosition = position;
                retObj.Article       = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == position.ReceiptPosition_Product_RefID);
                if (prices.Any())
                {
                    retObj.AEKPrice = prices.Single(pr => pr.ProductID == position.ReceiptPosition_Product_RefID).AbdaPrice;
                    retObj.Symbol   = prices.Single(pr => pr.ProductID == position.ReceiptPosition_Product_RefID).Symbol;
                }

                lsrResult.Add(retObj);
            }

            returnValue.Result = lsrResult.ToArray();


            return(returnValue);

            #endregion UserCode
        }
        protected static FR_L6IN_GDfCRP_0947_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L6IN_GDfCRP_0947 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L6IN_GDfCRP_0947_Array();
            var lsrResult   = new List <L6IN_GDfCRP_0947>();

            var countingRun = CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_CountingRun.Query.Search(Connection, Transaction,
                                                                                                    new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_CountingRun.Query
            {
                LOG_WRH_INJ_InventoryJob_CountingRunID = Parameter.CountingRunID,
                IsDeleted    = false,
                Tenant_RefID = securityTicket.TenantID
            }).Single();

            #region Get Shelves
            var paramShelves = new CL5_APOLogistic_Inventory.Atomic.Retrieval.P_L5IN_GSCwQfIJP_1023();
            paramShelves.ProcessID = countingRun.InventoryJob_Process_RefID;
            var shelves = CL5_APOLogistic_Inventory.Atomic.Retrieval.cls_Get_ShelfContent_with_Quantity_for_InventoryJob_ProcessID.Invoke(Connection, Transaction, paramShelves, securityTicket).Result;

            // filter by difference found on first counting run
            if (countingRun.SequenceNumber == 2)
            {
                var firstCountingRun = CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_CountingRun.Query.Search(Connection, Transaction,
                                                                                                             new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_CountingRun.Query
                {
                    InventoryJob_Process_RefID = countingRun.InventoryJob_Process_RefID,
                    SequenceNumber             = 1,
                    IsDeleted    = false,
                    Tenant_RefID = securityTicket.TenantID
                }).Single();

                var crParameter = new CL5_APOLogistic_Inventory.Atomic.Retrieval.P_L5IN_GRfCR_1143
                {
                    CountingRunID            = firstCountingRun.LOG_WRH_INJ_InventoryJob_CountingRunID,
                    OnlyIf_IsDifferenceFound = true
                };

                var firstCountingRunResults = CL5_APOLogistic_Inventory.Atomic.Retrieval.cls_Get_Results_for_CountingRun.Invoke(Connection, Transaction, crParameter, securityTicket).Result;

                var diffTrackingInstanceIDs = firstCountingRunResults.Select(x => x.LOG_ProductTrackingInstance_RefID);
                var diffShelfContentIDs     = firstCountingRunResults.Select(x => x.LOG_WRH_Shelf_Content_RefID);

                var shelfContentIDs        = shelves.Select(x => x.LOG_WRH_Shelf_ContentID);
                var shelfTrackingInstances = shelves.Select(x => x.LOG_ProductTrackingInstanceID);

                var intersectionTrackingInstances = shelfTrackingInstances.Intersect(diffTrackingInstanceIDs);
                var intersectionShelfContents     = shelfContentIDs.Intersect(diffShelfContentIDs);

                shelves = shelves.Where(x =>
                                        (x.LOG_ProductTrackingInstanceID == Guid.Empty && intersectionShelfContents.Contains(x.LOG_WRH_Shelf_ContentID)) ||
                                        (x.LOG_ProductTrackingInstanceID != Guid.Empty && intersectionTrackingInstances.Contains(x.LOG_ProductTrackingInstanceID))
                                        ).ToArray();
            }

            #endregion

            #region Get Articles
            var paramArticles = new CL3_Articles.Atomic.Retrieval.P_L3AR_GAfAL_0942();
            paramArticles.ProductID_List = shelves.Select(x => x.Product_RefID).ToArray <Guid>();
            var articles = new CL3_Articles.Atomic.Retrieval.L3AR_GAfAL_0942[0];
            if (paramArticles.ProductID_List.Length != 0)
            {
                articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticles, securityTicket).Result;
            }

            #endregion

            #region Get Counting Results

            var parameterGetCountingResult = new CL5_APOLogistic_Inventory.Atomic.Retrieval.P_L5IN_GRfCR_1143
            {
                CountingRunID = Parameter.CountingRunID
            };
            var countingRunResults = CL5_APOLogistic_Inventory.Atomic.Retrieval.cls_Get_Results_for_CountingRun.Invoke(Connection, Transaction, parameterGetCountingResult, securityTicket).Result;

            //countingRunResults = countingRunResults.Where(x => x.LOG_ProductTrackingInstance_RefID != Guid.Empty).ToArray();


            #endregion

            foreach (var item in shelves)
            {
                var retObj = new L6IN_GDfCRP_0947();
                retObj.Shelf          = item;
                retObj.Article        = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == item.Product_RefID);
                retObj.CountingResult = countingRunResults.Where(x =>
                                                                 (x.LOG_ProductTrackingInstance_RefID == Guid.Empty &&
                                                                  x.LOG_WRH_Shelf_Content_RefID == retObj.Shelf.LOG_WRH_Shelf_ContentID &&
                                                                  x.LOG_WRH_INJ_InventoryJob_CountingResultID != Guid.Empty
                                                                 )
                                                                 ||
                                                                 (x.LOG_ProductTrackingInstance_RefID != Guid.Empty &&
                                                                  x.LOG_ProductTrackingInstance_RefID == retObj.Shelf.LOG_ProductTrackingInstanceID &&
                                                                  x.LOG_WRH_INJ_CountingResult_TrackingInstanceID != Guid.Empty)
                                                                 ).FirstOrDefault();

                lsrResult.Add(retObj);
            }

            returnValue.Result = lsrResult.ToArray();
            return(returnValue);

            #endregion UserCode
        }