protected static FR_L5SG_GDfSR_1618 Execute(DbConnection Connection, DbTransaction Transaction, P_L5SG_GDfSR_1618 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5SG_GDfSR_1618(); var getArticleParameter = new P_L3AR_GAfAL_0942(); getArticleParameter.ProductID_List = new Guid[1]; getArticleParameter.ProductID_List[0] = Parameter.ProductID; var article = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, getArticleParameter, securityTicket).Result.First(); var getStorageDetailsParameter = new P_L5SG_GSDfPIDoSID_1612(); getStorageDetailsParameter.ProductID = Parameter.ProductID; var storageDetails = cls_Get_StorageDetails_for_ProductIDorShelfID.Invoke(Connection, Transaction, getStorageDetailsParameter, securityTicket).Result.ToList(); List <L5SG_GDfSR_1618a> articleStorageDetails = new List <L5SG_GDfSR_1618a>(); foreach (var storageDetail in storageDetails) { L5SG_GDfSR_1618a temporaryDetail = new L5SG_GDfSR_1618a(); temporaryDetail.Article = article; temporaryDetail.StorageDetails = storageDetail; articleStorageDetails.Add(temporaryDetail); } returnValue.Result = new L5SG_GDfSR_1618(); returnValue.Result.ArticleStorageDetails = articleStorageDetails.ToArray(); //Put your code here return(returnValue); #endregion UserCode }
protected static FR_L5RS_GRSPwAfP_1526_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5RS_GRSPwAfP_1526 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5RS_GRSPwAfP_1526_Array(); #region Get Return Shipment Positions var returnShipmentPositions = cls_Get_ReturnShipmentPositions_for_PositionIDs.Invoke(Connection, Transaction, Parameter.SearchCriteria, securityTicket).Result; #endregion #region Get Articles var articleIDs = returnShipmentPositions.Select(rsp => rsp.CMN_PRO_Product_RefID).Distinct().ToArray <Guid>(); var articles = new L3AR_GAfAL_0942[0]; var prices = new L3PR_GSPfPIL_1645[0]; if (articleIDs.Length != 0) { var parameterArticles = new P_L3AR_GAfAL_0942 { ProductID_List = articleIDs }; articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, parameterArticles, securityTicket).Result; var parameterPrices = new P_L3PR_GSPfPIL_1645 { ProductIDList = articleIDs }; prices = cls_Get_StandardPrices_for_ProductIDList.Invoke(Connection, Transaction, parameterPrices, securityTicket).Result; } #endregion #region Set Return Value var returnElements = new List <L5RS_GRSPwAfP_1526>(); foreach (var position in returnShipmentPositions) { var returnElement = new L5RS_GRSPwAfP_1526 { Article = articles.FirstOrDefault(a => a.CMN_PRO_ProductID == position.CMN_PRO_Product_RefID), Price = prices.FirstOrDefault(a => a.ProductID == position.CMN_PRO_Product_RefID), Position = position }; returnElements.Add(returnElement); } returnValue.Result = returnElements.ToArray(); #endregion return(returnValue); #endregion UserCode }
protected static FR_Guids Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_CCRR_1327 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guids(); //Put your code here List <Guid> createdResponses = new List <Guid>(); foreach (var request in Parameter.ProposalRequests) { List <Guid> articlesList = new List <Guid>(); foreach (var position in request.RequestPositions) { articlesList.Add(position.ProductID); } var articlesParameter = new P_L3AR_GAfAL_0942(); articlesParameter.ProductID_List = articlesList.ToArray(); var articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articlesParameter, securityTicket).Result; ORM_ORD_CUO_RFP_IssuedProposalResponse_Header responseHeader = new ORM_ORD_CUO_RFP_IssuedProposalResponse_Header(); responseHeader.ORD_CUO_RFP_IssuedProposalResponse_HeaderID = Guid.NewGuid(); foreach (var position in request.RequestPositions) { ORM_ORD_CUO_RFP_IssuedProposalResponse_Position tempPosition = new ORM_ORD_CUO_RFP_IssuedProposalResponse_Position(); tempPosition.ORD_CUO_RFP_IssuedProposalResponse_PositionID = Guid.NewGuid(); tempPosition.Quantity = position.Quantity; tempPosition.CMN_PRO_Product_RefID = position.ProductID; tempPosition.IssuedProposalResponseHeader_RefID = responseHeader.ORD_CUO_RFP_IssuedProposalResponse_HeaderID; tempPosition.ProposalResponsePositionITPL = tempPosition.ORD_CUO_RFP_IssuedProposalResponse_PositionID.ToString(); tempPosition.CreatedFrom_RequestForProposal_Position_RefID = position.RequestPositionID; tempPosition.Tenant_RefID = securityTicket.TenantID; tempPosition.Save(Connection, Transaction); } responseHeader.ProposalResponseHeaderITPL = responseHeader.ORD_CUO_RFP_IssuedProposalResponse_HeaderID.ToString(); responseHeader.CreatedFor_RequestForProposal_Header_RefID = request.RequestHeaderID; responseHeader.ValidThrough = request.ValidThrough; responseHeader.Save(Connection, Transaction); createdResponses.Add(responseHeader.ORD_CUO_RFP_IssuedProposalResponse_HeaderID); } returnValue.Result = createdResponses.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5PR_GCRPwADfTID_1710 Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5PR_GCRPwADfTID_1710(); //Put your code here var proposals = cls_Get_RequestProposals_Customer_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result.ToList(); List <Guid> articlesList = new List <Guid>(); foreach (var proposal in proposals) { articlesList.Add(proposal.CMN_PRO_Product_RefID); } var articlesParameter = new P_L3AR_GAfAL_0942(); articlesParameter.ProductID_List = articlesList.ToArray(); var articles = new List <L3AR_GAfAL_0942>(); if (articlesList.Count > 0) { articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articlesParameter, securityTicket).Result.ToList(); } List <L5PR_GCRPwADfTID_1710a> proposalsWithDetails = new List <L5PR_GCRPwADfTID_1710a>(); foreach (var proposal in proposals) { L5PR_GCRPwADfTID_1710a tempProposalWithDetails = new L5PR_GCRPwADfTID_1710a(); 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_GCRPwADfTID_1710(); returnValue.Result.ProposalsWithArticleDetails = proposalsWithDetails.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5PO_GOEDPwAD_1719_Array Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5PO_GOEDPwAD_1719_Array(); List <L5PO_GOEDPwAD_1719> list = new List <L5PO_GOEDPwAD_1719>(); var extraDemandProducts = cls_Get_Open_ExtraDemandProducts.Invoke(Connection, Transaction, securityTicket).Result; L3AR_GAfAL_0942[] articles = new L3AR_GAfAL_0942[0]; L3PR_GSPfPIL_1645[] prices = new L3PR_GSPfPIL_1645[0]; if (extraDemandProducts.Count() != 0) { var articleIds = extraDemandProducts.Select(x => x.Product_RefID).Distinct().ToArray(); var articleParam = new P_L3AR_GAfAL_0942 { ProductID_List = articleIds }; articles = CL3_Articles.Atomic.Retrieval.cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articleParam, securityTicket).Result; var priceParam = new P_L3PR_GSPfPIL_1645 { ProductIDList = articleIds }; prices = cls_Get_StandardPrices_for_ProductIDList.Invoke(Connection, Transaction, priceParam, securityTicket).Result; } L5PO_GOEDPwAD_1719 listItem = null; foreach (var item in extraDemandProducts) { listItem = new L5PO_GOEDPwAD_1719(); listItem.ExtraDemandProduct = item; listItem.Article = articles.Single(x => x.CMN_PRO_ProductID == item.Product_RefID); listItem.Price = prices.Single(x => x.ProductID == item.Product_RefID); list.Add(listItem); } returnValue.Result = list.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5RS_GRSPwAfH_1024_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5RS_GRSPwAfH_1024 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5RS_GRSPwAfH_1024_Array(); #region Get ReturnShipmentheaders var parameterHeaderId = new P_L5RS_GRSPfH_1105 { ReturnShipmentHeaderID = Parameter.Header_ID }; var shipmentPositions = cls_Get_ReturnShipmentPositions_for_HeaderID.Invoke(Connection, Transaction, parameterHeaderId, securityTicket).Result; #endregion #region Get Articles var parameterProductIds = new P_L3AR_GAfAL_0942(); parameterProductIds.ProductID_List = shipmentPositions.Select(sh => sh.ProductId).ToArray <Guid>(); var articles = new L3AR_GAfAL_0942[0]; if (parameterProductIds.ProductID_List.Length != 0) { articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, parameterProductIds, securityTicket).Result; } #endregion #region Set Return Value var returnElements = new List <L5RS_GRSPwAfH_1024>(); foreach (var shipmentPosition in shipmentPositions) { var returnElement = new L5RS_GRSPwAfH_1024 { Article = articles.FirstOrDefault(a => a.CMN_PRO_ProductID == shipmentPosition.ProductId), Position = shipmentPosition, Header_ID = Parameter.Header_ID }; returnElements.Add(returnElement); } returnValue.Result = returnElements.ToArray(); #endregion return(returnValue); #endregion UserCode }
protected static FR_L5RS_GRSPfT_1636_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5RS_GRSPfT_1636 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5RS_GRSPfT_1636_Array(); var shipmentPositions = cls_Get_ReturnShipmentPositions.Invoke(Connection, Transaction, Parameter.SearchParam, securityTicket).Result; #region Get Articles var parameterProductIds = new P_L3AR_GAfAL_0942(); parameterProductIds.ProductID_List = shipmentPositions.Select(s => s.CMN_PRO_Product_RefID).ToArray(); var articles = new L3AR_GAfAL_0942[0]; if (parameterProductIds.ProductID_List.Length != 0) { articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, parameterProductIds, securityTicket).Result; } #endregion #region Set Return Value var returnElements = new List <L5RS_GRSPfT_1636>(); foreach (var shipmentPosition in shipmentPositions) { var returnElement = new L5RS_GRSPfT_1636 { Article = articles.FirstOrDefault(a => a.CMN_PRO_ProductID == shipmentPosition.CMN_PRO_Product_RefID), Position = shipmentPosition }; returnElements.Add(returnElement); } returnValue.Result = returnElements.ToArray(); #endregion //Put your code here return(returnValue); #endregion UserCode }
protected static FR_L6LG_GDfDLR_1522 Execute(DbConnection Connection, DbTransaction Transaction, P_L6LG_GDfDLR_1522 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6LG_GDfDLR_1522(); L5SO_GSaCOHDfSH_1446 shipmentAndCustomerOrderDetails = null; #region Retrieve Shipment and CustomerOrder Details P_L5SO_GSaCOHDfSH_1446 shipmentAndCustomerOrderDetailsParameter = new P_L5SO_GSaCOHDfSH_1446(); shipmentAndCustomerOrderDetailsParameter.ShippingHeaderID = Parameter.ShipmentHeaderID; FR_L5SO_GSaCOHDfSH_1446 shipmentAndCustomerOrderDetailsResult = CL5_APOLogistic_ShippingOrder.Atomic.Retrieval.cls_Get_Shipment_and_CustomerOrderHeaderDetails_for_ShipmentHeaderID.Invoke(Connection, Transaction, shipmentAndCustomerOrderDetailsParameter, securityTicket); shipmentAndCustomerOrderDetails = shipmentAndCustomerOrderDetailsResult.Result; #endregion #region Customer name var customerName = ""; if (shipmentAndCustomerOrderDetails != null && shipmentAndCustomerOrderDetails.OrderingCustomer_BusinessParticipant_RefID != Guid.Empty) { ORM_CMN_BPT_BusinessParticipant bp = new ORM_CMN_BPT_BusinessParticipant(); var bpResult = bp.Load(Connection, Transaction, shipmentAndCustomerOrderDetails.OrderingCustomer_BusinessParticipant_RefID); if (bpResult.Status == FR_Status.Success && bp.CMN_BPT_BusinessParticipantID != Guid.Empty) { customerName = bp.DisplayName; } } #endregion #region CustomerAddress var CustomerAddress = CL5_APOLogistic_ShippingOrder.Atomic.Retrieval.cls_Get_CustomerAddress_from_ShipmentHeaderID.Invoke(Connection, Transaction, new P_L5SO_GCAfSHI_1127 { ShipmentHeaderID = Parameter.ShipmentHeaderID }, securityTicket); #endregion #region Organisational unit Dict organizationalUnitName = null; if (shipmentAndCustomerOrderDetails != null && shipmentAndCustomerOrderDetails.CMN_BPT_CTM_OrganizationalUnit_RefID != Guid.Empty) { ORM_CMN_BPT_CTM_OrganizationalUnit orgUnit = new ORM_CMN_BPT_CTM_OrganizationalUnit(); var orgUnitResult = orgUnit.Load(Connection, Transaction, shipmentAndCustomerOrderDetails.CMN_BPT_CTM_OrganizationalUnit_RefID); if (orgUnitResult.Status == FR_Status.Success && orgUnit.CMN_BPT_CTM_OrganizationalUnitID != Guid.Empty) { organizationalUnitName = orgUnit.OrganizationalUnit_Name; } } #endregion L6SO_GASPbtWSvR_1413[] shipmentPositions = new L6SO_GASPbtWSvR_1413[0]; #region Retrieve Shipment Positions with reservation details (including storage place) P_L6SO_GASPbtWSvR_1413 shipmentPositionsParameter = new P_L6SO_GASPbtWSvR_1413(); shipmentPositionsParameter.ShipmentHeaderID = Parameter.ShipmentHeaderID; FR_L6SO_GASPbtWSvR_1413_Array shipmentPositionsForPickingListResult = cls_Get_AllShipmentPositions_bound_to_WarehouseStructure_via_Reservations.Invoke(Connection, Transaction, shipmentPositionsParameter, securityTicket); shipmentPositions = shipmentPositionsForPickingListResult.Result; #endregion #region Retrieve Customer Order Positions for Shipment Positions which are not shipped. P_L5CO_GACOPfUSP_1038 customerOrderPositionsForUnshippedShipmentPositionsParameter = new P_L5CO_GACOPfUSP_1038(); customerOrderPositionsForUnshippedShipmentPositionsParameter.ShipmentHeaderID = Parameter.ShipmentHeaderID; customerOrderPositionsForUnshippedShipmentPositionsParameter.OrganizationalUnitID = Parameter.OrganizationalUnitID; FR_L5CO_GACOPfUSP_1038_Array customerOrderPositionsForUnshippedShipmentPositionsResult = cls_Get_AllCustomerOrderPositions_for_Unshipped_ShipmentPositions.Invoke(Connection, Transaction, customerOrderPositionsForUnshippedShipmentPositionsParameter, securityTicket); L5CO_GACOPfUSP_1038[] customerOrderPositions = customerOrderPositionsForUnshippedShipmentPositionsResult.Result; #endregion // // Taking product array from shipment positions previously retrieved. // Product array is used for taking product information // IEnumerable <Guid> productIdList1 = shipmentPositions.Select(x => x.CMN_PRO_Product_RefID).Distinct(); IEnumerable <Guid> productIdList2 = customerOrderPositions.Select(x => x.CMN_PRO_Product_RefID).Distinct(); Guid[] productIdArray = productIdList1.Concat(productIdList2).Distinct().ToArray(); L3AR_GAfAL_0942[] articlesForArticleList = new L3AR_GAfAL_0942[0]; #region Retrive product details if (productIdArray.Length > 0) { P_L3AR_GAfAL_0942 articlesForArticleListParameter = new P_L3AR_GAfAL_0942(); articlesForArticleListParameter.ProductID_List = productIdArray; FR_L3AR_GAfAL_0942_Array articlesForArticleListResult = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articlesForArticleListParameter, securityTicket); articlesForArticleList = articlesForArticleListResult.Result; } #endregion List <ORM_LOG_SHP_Shipment_Note> shipmentNoteList = new List <ORM_LOG_SHP_Shipment_Note>(); if (shipmentAndCustomerOrderDetails != null) { shipmentNoteList = ORM_LOG_SHP_Shipment_Note.Query .Search(Connection, Transaction, new ORM_LOG_SHP_Shipment_Note.Query { IsDeleted = false, IsNotePrintedOnDeliveryPaper = true, Shipment_Header_RefID = shipmentAndCustomerOrderDetails.LOG_SHP_Shipment_HeaderID }) .OrderBy(i => i.Creation_Timestamp).ToList(); } List <L6LG_GDfDLR_1522c> commentList = new List <L6LG_GDfDLR_1522c>(); foreach (ORM_LOG_SHP_Shipment_Note shipmentNote in shipmentNoteList) { L6LG_GDfDLR_1522c comment = new L6LG_GDfDLR_1522c(); ORM_CMN_BPT_BusinessParticipant businessParticipant = new ORM_CMN_BPT_BusinessParticipant(); FR_Base bpLoad = businessParticipant.Load(Connection, Transaction, shipmentNote.CreatedBy_BusinessParticipant_RefID); if (bpLoad.Status == FR_Status.Success) { comment.Name = businessParticipant.DisplayName; } comment.Comment = shipmentNote.Comment; commentList.Add(comment); } #region Building return object List <L6LG_GDfDLR_1522a> tempShipmentPositions = new List <L6LG_GDfDLR_1522a>(); foreach (L6SO_GASPbtWSvR_1413 shipmentPosition in shipmentPositions) { L6LG_GDfDLR_1522a tempShipmentPosition = new L6LG_GDfDLR_1522a(); tempShipmentPosition.ShipmentPositionDetails = shipmentPosition; tempShipmentPosition.ProductDetails = articlesForArticleList.FirstOrDefault(a => a.CMN_PRO_ProductID == shipmentPosition.CMN_PRO_Product_RefID); tempShipmentPositions.Add(tempShipmentPosition); } List <L6LG_GDfDLR_1522b> tempCustomerOrderPositions = new List <L6LG_GDfDLR_1522b>(); foreach (L5CO_GACOPfUSP_1038 customerOrderPosition in customerOrderPositions) { L6LG_GDfDLR_1522b tempCustomerOrderPosition = new L6LG_GDfDLR_1522b(); tempCustomerOrderPosition.CustomerOrderPositionDetails = customerOrderPosition; tempCustomerOrderPosition.ProductDetails = articlesForArticleList.FirstOrDefault(a => a.CMN_PRO_ProductID == customerOrderPosition.CMN_PRO_Product_RefID); tempCustomerOrderPositions.Add(tempCustomerOrderPosition); } returnValue.Result = new L6LG_GDfDLR_1522(); returnValue.Result.CustomerName = customerName; returnValue.Result.StreetAndNumber = CustomerAddress != null && CustomerAddress.Result != null ? CustomerAddress.Result.Street_Name + " " + CustomerAddress.Result.Street_Number : "keine Kundenadresse"; returnValue.Result.ZipAndCity = CustomerAddress != null && CustomerAddress.Result != null ? CustomerAddress.Result.ZIP + " " + CustomerAddress.Result.Town : "keine Kundenadresse"; returnValue.Result.OrganizationalUnitName = organizationalUnitName; returnValue.Result.ShipmentPositionList = tempShipmentPositions.ToArray(); returnValue.Result.CustomerOrderPositionList = tempCustomerOrderPositions.ToArray(); returnValue.Result.ShipmentAndCustomerOrderDetails = shipmentAndCustomerOrderDetails; returnValue.Result.CommentList = commentList.ToArray(); #endregion return(returnValue); #endregion UserCode }
protected static FR_L5SO_GSPwPaSfSH_1141_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5SO_GSPwPaSfSH_1141 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5SO_GSPwPaSfSH_1141_Array(); #region Get Shipment Positions P_L2SH_GSPfToSH_1334 positionsGetParam = new P_L2SH_GSPfToSH_1334(); positionsGetParam.ShipmentHeaderID = Parameter.ShippmentHeaderID; var shipmentPositions = cls_Get_ShipmentPositions_for_Tenant_or_ShipmentHeaderID.Invoke(Connection, Transaction, positionsGetParam, securityTicket).Result.ToList(); #endregion if (shipmentPositions.Count() == 0) { returnValue.Result = new L5SO_GSPwPaSfSH_1141[0]; return(returnValue); } #region Get Articles For ShipmentPositions P_L3AR_GAfAL_0942 articlesGetParam = new P_L3AR_GAfAL_0942(); articlesGetParam.ProductID_List = shipmentPositions.Select(i => i.CMN_PRO_Product_RefID).Distinct().ToArray(); var articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articlesGetParam, securityTicket).Result; #endregion #region Get Quantities on Shelf contents per product var articleIDs = shipmentPositions.Select(x => x.CMN_PRO_Product_RefID).Distinct(); var qntsPerProduct = new L3WH_GASCQfPL_1239[] { }; if (articleIDs.Count() > 0) { var qntParam = new P_L3WH_GASCQfPL_1239 { ProductIDList = articleIDs.ToArray() }; qntsPerProduct = cls_Get_All_ShelfContent_Quantities_for_ProductListID.Invoke(Connection, Transaction, qntParam, securityTicket).Result; } #endregion #region Get ABDAPrices var abdaPricesParam = new P_L2PR_GPVfSC_1424() { SubscribedCatalogITL = EnumUtils.GetEnumDescription(EPublicCatalogs.ABDA) }; var abdaPrices = cls_Get_PriceValues_for_SubscribedCatalogITL.Invoke(Connection, Transaction, abdaPricesParam, securityTicket).Result; #endregion #region cls_Get_AllGeneralAverageProcurementPrices_for_TenantID var avgProcPrice = cls_Get_AllGeneralAverageProcurementPrices_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result; #endregion List <L5SO_GSPwPaSfSH_1141> listOfPositionsWithPrices = new List <L5SO_GSPwPaSfSH_1141>(); foreach (var position in shipmentPositions) { var quantity = qntsPerProduct.Where(i => i.Product_RefID == position.CMN_PRO_Product_RefID).SingleOrDefault(); if (quantity == null) { quantity = new L3WH_GASCQfPL_1239() { Product_RefID = position.CMN_PRO_Product_RefID, Sum_Quantity_Current = 0, Sum_R_ReservedQuantity = 0, Sum_R_FreeQuantity = 0 }; } var tempPositionWithPrice = new L5SO_GSPwPaSfSH_1141(); tempPositionWithPrice.ShipmentPositionID = position.LOG_SHP_Shipment_PositionID; var reservationSum = ORM_LOG_RSV_Reservation.Query.Search(Connection, Transaction, new ORM_LOG_RSV_Reservation.Query() { LOG_SHP_Shipment_Position_RefID = position.LOG_SHP_Shipment_PositionID, IsDeleted = false, IsReservationExecuted = false }).Sum(x => x.ReservedQuantity); var correspodingCustomerOrderPosition = new ORM_ORD_CUO_CustomerOrder_Position(); var positionArticle = articles.Where(ar => ar.CMN_PRO_ProductID == position.CMN_PRO_Product_RefID).Single(); tempPositionWithPrice.Product_Number = positionArticle.Product_Number; tempPositionWithPrice.Product_Name = positionArticle.Product_Name; tempPositionWithPrice.UnitAmount = positionArticle.UnitAmount; tempPositionWithPrice.UnitIsoCode = positionArticle.UnitIsoCode; tempPositionWithPrice.DossageFormName = positionArticle.DossageFormName; tempPositionWithPrice.Producer = positionArticle.ProducerName; tempPositionWithPrice.CMN_PRO_ProductID = positionArticle.CMN_PRO_ProductID; tempPositionWithPrice.ReservedQuantity = reservationSum; tempPositionWithPrice.QuantityToShip = position.QuantityToShip; tempPositionWithPrice.QuantityInStock = quantity.Sum_Quantity_Current; tempPositionWithPrice.QuantityAvailable = quantity.Sum_R_FreeQuantity; tempPositionWithPrice.ABDAPrice = abdaPrices.Where(i => i.CMN_PRO_Product_RefID == position.CMN_PRO_Product_RefID).Select(j => j.PriceAmount).SingleOrDefault(); tempPositionWithPrice.SalesPrice = position.ShipmentPosition_ValueWithoutTax; tempPositionWithPrice.AverageProcurementPrice = avgProcPrice.Where(i => i.Product_RefID == position.CMN_PRO_Product_RefID).Select(j => j.PriceValue_Amount).SingleOrDefault(); tempPositionWithPrice.ShipmentPosition_PricePerUnitValueWithoutTax = position.ShipmentPosition_PricePerUnitValueWithoutTax; #region Product Replacement Allowed var assignmentToCustomerOrderPositionQuery = new ORM_ORD_CUO_CustomerOrder_Position_2_ShipmentPosition.Query(); assignmentToCustomerOrderPositionQuery.LOG_SHP_Shipment_Position_RefID = position.LOG_SHP_Shipment_PositionID; assignmentToCustomerOrderPositionQuery.Tenant_RefID = securityTicket.TenantID; assignmentToCustomerOrderPositionQuery.IsDeleted = false; var foundAssignment = ORM_ORD_CUO_CustomerOrder_Position_2_ShipmentPosition.Query. Search(Connection, Transaction, assignmentToCustomerOrderPositionQuery).SingleOrDefault(); if (foundAssignment != null) { correspodingCustomerOrderPosition.Load(Connection, Transaction, foundAssignment.ORD_CUO_CustomerOrder_Position_RefID); tempPositionWithPrice.IsProductReplacementAllowed = correspodingCustomerOrderPosition.IsProductReplacementAllowed; } else { tempPositionWithPrice.IsProductReplacementAllowed = true; } #endregion listOfPositionsWithPrices.Add(tempPositionWithPrice); } returnValue.Result = listOfPositionsWithPrices.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L5IN_SCRR_1056 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); #region save new items Boolean proceed = true; List <P_L5IN_SCR_1056a> newItemsList = new List <P_L5IN_SCR_1056a>(); foreach (var item in Parameter.NewItemsData) { Guid productTrackingInstanceID = Guid.Empty; Guid shelfContentID = new Guid(); P_L5SG_GPfSbP_1109 parameter = new P_L5SG_GPfSbP_1109(); parameter.BatchNumber = item.BatchNumber; parameter.ExparationDate = item.ExpirationDate; parameter.ProductID = item.Product_RefID; parameter.ShelfID = item.ShelfID; var articles = cls_Get_Product_from_Shelf_by_ProductID.Invoke(Connection, Transaction, parameter, securityTicket).Result.ToList(); if (articles.Count > 0) { P_L5IN_SIJPSCaTI_1418 paramSaveInvJob = new P_L5IN_SIJPSCaTI_1418(); paramSaveInvJob.InvJobProcessShelfID = item.InvJobProcessShelfID; paramSaveInvJob.ShelfContentID = articles.First().LOG_WRH_Shelf_ContentID; paramSaveInvJob.ProductTrackingInstanceID = articles.First().LOG_ProductTrackingInstanceID; paramSaveInvJob.ShelfExpectedQuantity = item.ExpectedQuantity; paramSaveInvJob.TrackingInstanceExpectedQuantity = item.ExpectedQuantity; shelfContentID = articles.First().LOG_WRH_Shelf_ContentID; var invJob = cls_Save_InventoryJob_Process_ShelfContent_and_TrackingInstance.Invoke(Connection, Transaction, paramSaveInvJob, securityTicket).Result; } else { List <Guid> articleIDs = new List <Guid>(); articleIDs.Add(item.Product_RefID); P_L3AR_GAfAL_0942 paramArticleData = new P_L3AR_GAfAL_0942(); paramArticleData.ProductID_List = articleIDs.ToArray(); var articleData = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, paramArticleData, securityTicket).Result.First(); if (articleData.IsStorage_BatchNumberMandatory && (item.BatchNumber == string.Empty || item.BatchNumber == null)) { proceed = false; } else if (articleData.IsStorage_ExpiryDateMandatory && (item.ExpirationDate == null || item.ExpirationDate == DateTime.MinValue)) { proceed = false; } else { P_L3WH_SSCfP_1635 paramShelfContent = new P_L3WH_SSCfP_1635(); paramShelfContent.BatchNumber = item.BatchNumber; paramShelfContent.ExpirationDate = item.ExpirationDate; paramShelfContent.ProductID = item.Product_RefID; paramShelfContent.Quantity = item.ExpectedQuantity; paramShelfContent.ShelfID = item.ShelfID; var shelfContent = cls_Save_Shelf_Content_for_ProductID.Invoke(Connection, Transaction, paramShelfContent, securityTicket).Result; P_L5IN_SIJPSCaTI_1418 paramSaveInvJob = new P_L5IN_SIJPSCaTI_1418(); paramSaveInvJob.InvJobProcessShelfID = item.InvJobProcessShelfID; paramSaveInvJob.ShelfContentID = shelfContent.ShelfContentID; paramSaveInvJob.ProductTrackingInstanceID = shelfContent.TrackingInstanceID; paramSaveInvJob.ShelfExpectedQuantity = item.ExpectedQuantity; paramSaveInvJob.TrackingInstanceExpectedQuantity = item.ExpectedQuantity; shelfContentID = shelfContent.ShelfContentID; productTrackingInstanceID = shelfContent.TrackingInstanceID; var invJob = cls_Save_InventoryJob_Process_ShelfContent_and_TrackingInstance.Invoke(Connection, Transaction, paramSaveInvJob, securityTicket).Result; } } if (!(item.CountedQuantity == 0 || item.CountedQuantity == null)) { P_L5IN_SCR_1056a result = new P_L5IN_SCR_1056a(); result.Quantity = item.CountedQuantity.Value; result.ShelfContentID = shelfContentID; result.ProductRefID = item.Product_RefID; result.ProcessShelfRefID = item.InvJobProcessShelfID; if (productTrackingInstanceID != Guid.Empty) { result.ProductTrackingInstanceID = productTrackingInstanceID; } newItemsList.Add(result); } } #endregion #region Edit items var editItems = Parameter.Results.Where(x => x.IsEdited == true).ToList(); List <P_L5IN_SCR_1056a> countingResults = new List <P_L5IN_SCR_1056a>(); if (editItems.Count > 0) { List <L3WH_UPTI_1439a> batchNrResultsList = new List <L3WH_UPTI_1439a>(); List <P_L3WH_UPTI_1439a> param = new List <P_L3WH_UPTI_1439a>(); foreach (var item in editItems) { if (item.ProductTrackingInstanceID == null) { continue; } //check if batch number has changed var existingTrackingInstance = new ORM_LOG_ProductTrackingInstance(); existingTrackingInstance.Load(Connection, Transaction, (Guid)item.ProductTrackingInstanceID); if (existingTrackingInstance.BatchNumber != item.BatchNumber) { //create new tracking instance var newTrackingInstance = new ORM_LOG_ProductTrackingInstance(); newTrackingInstance.LOG_ProductTrackingInstanceID = Guid.NewGuid(); newTrackingInstance.BatchNumber = item.BatchNumber; newTrackingInstance.ExpirationDate = item.ExpirationDate; newTrackingInstance.CurrentQuantityOnTrackingInstance = item.Quantity; newTrackingInstance.TrackingInstanceTakenFromSourceTrackingInstance_RefID = existingTrackingInstance.TrackingInstanceTakenFromSourceTrackingInstance_RefID; newTrackingInstance.TrackingCode = existingTrackingInstance.TrackingCode; newTrackingInstance.SerialNumber = existingTrackingInstance.SerialNumber; newTrackingInstance.OwnedBy_BusinessParticipant_RefID = existingTrackingInstance.OwnedBy_BusinessParticipant_RefID; newTrackingInstance.CMN_PRO_Product_RefID = existingTrackingInstance.CMN_PRO_Product_RefID; newTrackingInstance.CMN_PRO_Product_Variant_RefID = existingTrackingInstance.CMN_PRO_Product_Variant_RefID; newTrackingInstance.CMN_PRO_Product_Release_RefID = existingTrackingInstance.CMN_PRO_Product_Release_RefID; newTrackingInstance.IsDeleted = false; newTrackingInstance.Tenant_RefID = securityTicket.TenantID; newTrackingInstance.InitialQuantityOnTrackingInstance = existingTrackingInstance.InitialQuantityOnTrackingInstance; newTrackingInstance.R_FreeQuantity = existingTrackingInstance.R_FreeQuantity; newTrackingInstance.R_ReservedQuantity = existingTrackingInstance.R_ReservedQuantity; newTrackingInstance.Save(Connection, Transaction); //delete old and create new shelf content and tracking instance assotiation var existingSCtoTIQuery = new ORM_LOG_WRH_ShelfContent_2_TrackingInstance.Query(); existingSCtoTIQuery.LOG_ProductTrackingInstance_RefID = existingTrackingInstance.LOG_ProductTrackingInstanceID; existingSCtoTIQuery.Tenant_RefID = securityTicket.TenantID; existingSCtoTIQuery.IsDeleted = false; var existingSCtoTI = ORM_LOG_WRH_ShelfContent_2_TrackingInstance.Query.Search(Connection, Transaction, existingSCtoTIQuery).FirstOrDefault(); existingSCtoTI.IsDeleted = true; existingSCtoTI.Save(Connection, Transaction); var newSCtoTI = new ORM_LOG_WRH_ShelfContent_2_TrackingInstance(); newSCtoTI.AssignmentID = Guid.NewGuid(); newSCtoTI.LOG_ProductTrackingInstance_RefID = newTrackingInstance.LOG_ProductTrackingInstanceID; newSCtoTI.LOG_WRH_Shelf_Content_RefID = existingSCtoTI.LOG_WRH_Shelf_Content_RefID; newSCtoTI.Tenant_RefID = securityTicket.TenantID; newSCtoTI.Creation_Timestamp = DateTime.Now; newSCtoTI.Save(Connection, Transaction); //delete old and create new content adjustment and tracking instance assotiation and content adjustment var existingCAtoTIQuery = new ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance.Query(); existingCAtoTIQuery.LOG_ProductTrackingInstance_RefID = existingTrackingInstance.LOG_ProductTrackingInstanceID; existingCAtoTIQuery.IsDeleted = false; existingCAtoTIQuery.Tenant_RefID = securityTicket.TenantID; var existingCAtoTI = ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance.Query.Search(Connection, Transaction, existingCAtoTIQuery).FirstOrDefault(); existingCAtoTI.IsDeleted = true; existingCAtoTI.Save(Connection, Transaction); var existingContentAdjustment = new ORM_LOG_WRH_Shelf_ContentAdjustment(); existingContentAdjustment.Load(Connection, Transaction, existingCAtoTI.LOG_WRH_Shelf_ContentAdjustment_RefID); var newContentAdjustment = new ORM_LOG_WRH_Shelf_ContentAdjustment(); newContentAdjustment.LOG_WRH_Shelf_ContentAdjustmentID = Guid.NewGuid(); newContentAdjustment.ShelfContent_RefID = existingContentAdjustment.ShelfContent_RefID; newContentAdjustment.QuantityChangedAmount = item.Quantity; newContentAdjustment.QuantityChangedDate = DateTime.Now; newContentAdjustment.IsInitialReceipt = false; newContentAdjustment.IsInventoryJobCorrection = existingContentAdjustment.IsInventoryJobCorrection; newContentAdjustment.IfInventoryJobCorrection_InvenoryJobProcess_RefID = existingContentAdjustment.IfInventoryJobCorrection_InvenoryJobProcess_RefID; newContentAdjustment.IsShipmentWithdrawal = existingContentAdjustment.IsShipmentWithdrawal; newContentAdjustment.IfShipmentWithdrawal_ShipmentPosition_RefID = existingContentAdjustment.IfShipmentWithdrawal_ShipmentPosition_RefID; newContentAdjustment.IsManualCorrection = existingContentAdjustment.IsManualCorrection; newContentAdjustment.IfManualCorrection_InventoryChangeReason_RefID = existingContentAdjustment.IfManualCorrection_InventoryChangeReason_RefID; newContentAdjustment.PerformedAt_Date = existingContentAdjustment.PerformedAt_Date; newContentAdjustment.PerformedBy_Account_RefID = existingContentAdjustment.PerformedBy_Account_RefID; newContentAdjustment.ContentAdjustmentComment = existingContentAdjustment.ContentAdjustmentComment; newContentAdjustment.IsBatchNumberOrSerialKeyUpdate = true; newContentAdjustment.IfBatchNumberOrSerialKeyUpdate_CorrespondingAdjustment_RefID = existingContentAdjustment.LOG_WRH_Shelf_ContentAdjustmentID; newContentAdjustment.IsRelocation = false; newContentAdjustment.IfRelocation_CorrespondingAdjustment_RefID = Guid.Empty; newContentAdjustment.Creation_Timestamp = DateTime.Now; newContentAdjustment.Tenant_RefID = securityTicket.TenantID; newContentAdjustment.Save(Connection, Transaction); var newCAtoTI = new ORM_LOG_WRH_Shelf_ContentAdjustment_TrackingInstance(); newCAtoTI.LOG_WRH_Shelf_ContentAdjustment_TrackingInstanceID = Guid.NewGuid(); newCAtoTI.LOG_ProductTrackingInstance_RefID = newTrackingInstance.LOG_ProductTrackingInstanceID; newCAtoTI.LOG_WRH_Shelf_ContentAdjustment_RefID = newContentAdjustment.LOG_WRH_Shelf_ContentAdjustmentID; newCAtoTI.LOG_WRH_Shelf_ContentAdjustment_TrackingInstanceID = newTrackingInstance.LOG_ProductTrackingInstanceID; newCAtoTI.QuantityChangedAmount = item.Quantity - existingContentAdjustment.QuantityChangedAmount; newCAtoTI.IsDeleted = false; newCAtoTI.Tenant_RefID = securityTicket.TenantID; newCAtoTI.Creation_Timestamp = DateTime.Now; newCAtoTI.Save(Connection, Transaction); item.ProductTrackingInstanceID = newTrackingInstance.LOG_ProductTrackingInstanceID; L3WH_UPTI_1439a batchNrChangedResults = new L3WH_UPTI_1439a(); batchNrChangedResults.TrackingInstanceID = newTrackingInstance.LOG_ProductTrackingInstanceID; batchNrChangedResults.ProductID = newTrackingInstance.CMN_PRO_Product_RefID; batchNrChangedResults.LOG_WRH_Shelf_ContentID = newContentAdjustment.ShelfContent_RefID; existingTrackingInstance.IsDeleted = true; existingTrackingInstance.Save(Connection, Transaction); batchNrResultsList.Add(batchNrChangedResults); } else { P_L3WH_UPTI_1439a p = new P_L3WH_UPTI_1439a(); p.BatchNumber = item.BatchNumber; p.ExpirationDate = item.ExpirationDate; p.ProductTrackingInstanceID = (Guid)item.ProductTrackingInstanceID; p.ShelfContentID = item.ShelfContentID; p.Quantity = item.Quantity; p.ProductID = item.ProductRefID; param.Add(p); } } P_L3WH_UPTI_1439 paramUpdateTrackingInstance = new P_L3WH_UPTI_1439(); paramUpdateTrackingInstance.ProductTrackingInstance = param.ToArray(); var result = cls_Update_ProductTrackingInstance.Invoke(Connection, Transaction, paramUpdateTrackingInstance, securityTicket).Result; List <L3WH_UPTI_1439a> finalList = new List <L3WH_UPTI_1439a>(); finalList = result.newTrackingInstance.ToList(); finalList.AddRange(batchNrResultsList); result.newTrackingInstance = finalList.ToArray(); foreach (var item in editItems) { if (item.ProductTrackingInstanceID == null) { continue; } //var oldProcessShelf = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_Process_Shelf().Load(Connection, Transaction, item.ProcessShelfRefID); //var newProcessShelf = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_Process_Shelf(); var oldProcessShelfContent = CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_Process_ShelfContent.Query.Search(Connection, Transaction, new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_Process_ShelfContent.Query() { LOG_WRH_INJ_InventoryJob_Process_Shelf_RefID = item.ProcessShelfRefID, LOG_WRH_Shelf_Content_RefID = item.ShelfContentID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); var newProcessShelfContent = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventoryJob_Process_ShelfContent(); newProcessShelfContent.Creation_Timestamp = DateTime.Now; newProcessShelfContent.ExpectedQuantityOnShelfContent = oldProcessShelfContent.ExpectedQuantityOnShelfContent; newProcessShelfContent.IsDeleted = false; newProcessShelfContent.LOG_WRH_INJ_InventoryJob_Process_Shelf_RefID = oldProcessShelfContent.LOG_WRH_INJ_InventoryJob_Process_Shelf_RefID; newProcessShelfContent.LOG_WRH_INJ_InventoryJob_Process_ShelfContentID = Guid.NewGuid(); newProcessShelfContent.LOG_WRH_Shelf_Content_RefID = result.newTrackingInstance.Where(x => x.ProductID == item.ProductRefID).Single().LOG_WRH_Shelf_ContentID; newProcessShelfContent.Tenant_RefID = securityTicket.TenantID; newProcessShelfContent.Save(Connection, Transaction); oldProcessShelfContent.IsDeleted = true; oldProcessShelfContent.Save(Connection, Transaction); var oldProcessShelfContentTrackingInstance = CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_Process_ShelfContents_TrackingInstance.Query.Search(Connection, Transaction, new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_Process_ShelfContents_TrackingInstance.Query() { LOG_WRH_INJ_InventoryJob_Process_ShelfContent_RefID = oldProcessShelfContent.LOG_WRH_INJ_InventoryJob_Process_ShelfContentID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); var newProcessShelfContentTrackingInstance = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_Process_ShelfContents_TrackingInstance(); newProcessShelfContentTrackingInstance.Creation_Timestamp = DateTime.Now; newProcessShelfContentTrackingInstance.ExpectedQuantityOnTrackingInstance = oldProcessShelfContentTrackingInstance.ExpectedQuantityOnTrackingInstance; newProcessShelfContentTrackingInstance.LOG_ProductTrackingInstance_RefID = result.newTrackingInstance.Where(x => x.ProductID == item.ProductRefID).Single().TrackingInstanceID; newProcessShelfContentTrackingInstance.LOG_WRH_INJ_InventoryJob_Process_ShelfContent_RefID = newProcessShelfContent.LOG_WRH_INJ_InventoryJob_Process_ShelfContentID; newProcessShelfContentTrackingInstance.LOG_WRH_INJ_Process_ShelfContents_TrackingInstanceID = Guid.NewGuid(); newProcessShelfContentTrackingInstance.Tenant_RefID = securityTicket.TenantID; newProcessShelfContentTrackingInstance.Save(Connection, Transaction); oldProcessShelfContentTrackingInstance.IsDeleted = true; oldProcessShelfContentTrackingInstance.Save(Connection, Transaction); } foreach (var item in Parameter.Results.ToList()) { if (result.newTrackingInstance.Any(x => x.ProductID == item.ProductRefID)) { var res = result.newTrackingInstance.Where(x => x.ProductID == item.ProductRefID).Single(); item.ProductTrackingInstanceID = res.TrackingInstanceID; item.ShelfContentID = res.LOG_WRH_Shelf_ContentID; } countingResults.Add(item); } } else { countingResults = Parameter.Results.ToList(); } #endregion List <P_L5IN_SCR_1056a> completeList = new List <P_L5IN_SCR_1056a>(); completeList.AddRange(newItemsList); completeList.AddRange(countingResults); if (proceed) { 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, IsCounting_Started = true, IsCounting_Completed = false, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var countingResult = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventryJob_CountingResult(); var countingResultTrackingInstance = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_CountingResult_TrackingInstance(); foreach (var item in completeList) { bool isTrackingInstance = (item.ProductTrackingInstanceID != Guid.Empty); #region Load or create new Counting Result // try to find counting result for the same ShelfContentID countingResult = CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventryJob_CountingResult.Query.Search(Connection, Transaction, new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventryJob_CountingResult.Query { CountingRun_RefID = Parameter.CountingRunID, Product_RefID = item.ProductRefID, Process_Shelf_RefID = item.ProcessShelfRefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); #region Create new counting result if none is found by ShelfContent_RefID if (countingResult == null) { countingResult = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_InventryJob_CountingResult { LOG_WRH_INJ_InventoryJob_CountingResultID = Guid.NewGuid(), Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, CountedAmount = 0.0, CountingRun_RefID = Parameter.CountingRunID, IsDifferenceToExpectedQuantityFound = false, Product_RefID = item.ProductRefID, Process_Shelf_RefID = item.ProcessShelfRefID, }; countingResult.Save(Connection, Transaction); } #endregion #endregion if (isTrackingInstance) { if (item.InventoryJob_CountingResultID == Guid.Empty || item.CountingResult_TrackingInstanceID == Guid.Empty) { countingResultTrackingInstance = new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_CountingResult_TrackingInstance { LOG_WRH_INJ_CountingResult_TrackingInstanceID = Guid.NewGuid(), Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID, LOG_WRH_INJ_InventoryJob_CountingResult_RefID = countingResult.LOG_WRH_INJ_InventoryJob_CountingResultID, LOG_ProductTrackingInstanceID = item.ProductTrackingInstanceID.Value }; } else { countingResultTrackingInstance.Load(Connection, Transaction, item.CountingResult_TrackingInstanceID); } countingResultTrackingInstance.CountedAmount = item.Quantity; countingResultTrackingInstance.Save(Connection, Transaction); var tiResults = CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_CountingResult_TrackingInstance.Query.Search(Connection, Transaction, new CL1_LOG_WRH_INJ.ORM_LOG_WRH_INJ_CountingResult_TrackingInstance.Query { LOG_WRH_INJ_InventoryJob_CountingResult_RefID = countingResult.LOG_WRH_INJ_InventoryJob_CountingResultID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); countingResult.CountedAmount = tiResults.Sum(x => x.CountedAmount); countingResult.Save(Connection, Transaction); } } } returnValue.Result = proceed; return(returnValue); #endregion UserCode }
protected static FR_L6ED_GPTIwAaS_0816_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L6ED_GPTIwAaS_0816 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6ED_GPTIwAaS_0816_Array(); #region Get Storage Places var filterCriteria = new P_L3WH_GSPfFC_1504() { WarehouseGroupID = null, WarehouseID = null, AreaID = null, RackID = null, UseShelfIDList = false, ShelfIDs = new Guid[] { Guid.Empty }, UseProductIDList = false, ProductIDs = new Guid[] { Guid.Empty }, BottomShelfQuantity = 1, TopShelfQuantity = null, UseProductTrackingInstanceIDList = Parameter.ProductTrackingInstanceIds != null, ProductTrackingInstanceIDs = Parameter.ProductTrackingInstanceIds == null ? new Guid[] { Guid.Empty } : Parameter.ProductTrackingInstanceIds, StartExpirationDate = Parameter.StartDate, EndExpirationDate = Parameter.EndDate }; var resultStoragePlaces = cls_Get_StoragePlaces_for_FilterCriteria.Invoke( Connection, Transaction, filterCriteria, securityTicket); if (resultStoragePlaces.Status != FR_Status.Success || resultStoragePlaces.Result == null || resultStoragePlaces.Result.Count() == 0) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = new L6ED_GPTIwAaS_0816[] { }; return(returnValue); } #endregion #region Get Articles var parameterProductIds = new P_L3AR_GAfAL_0942(); parameterProductIds.ProductID_List = resultStoragePlaces.Result.Select(rsp => rsp.Product_RefID).Distinct().ToArray <Guid>(); var articles = new L3AR_GAfAL_0942[0]; if (parameterProductIds.ProductID_List.Length != 0) { articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, parameterProductIds, securityTicket).Result; } #endregion #region Get Supplier var parameterProductsBatchNumbers = new P_L6ED_GSRtTIbBNaP_1353(); parameterProductsBatchNumbers.ProductIDs = parameterProductIds.ProductID_List; parameterProductsBatchNumbers.BatchNumbers = resultStoragePlaces.Result.Select(rsp => rsp.BatchNumber).Distinct().ToArray <string>(); var resultSuppliers = cls_Get_StockReceipt_through_TrackingInstance_by_BatchNumbers_and_ProductIDs.Invoke(Connection, Transaction, parameterProductsBatchNumbers, securityTicket); if (resultSuppliers.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = new L6ED_GPTIwAaS_0816[] { }; return(returnValue); } #endregion #region Get MSR Guid[] productIds = articles.Select(x => x.CMN_PRO_ProductID).ToArray(); var msrForProducts = cls_Get_MSR_for_ProductIDList.Invoke( Connection, Transaction, new P_L3AS_GSMRfPL_1508 { ProductIDList = productIds }, securityTicket ).Result; #endregion #region Set Result var result = new List <L6ED_GPTIwAaS_0816>(); foreach (var storagePlace in resultStoragePlaces.Result) { var suppliers = resultSuppliers.Result .Where(rs => rs.BatchNumber == storagePlace.BatchNumber && rs.ReceiptPosition_Product_RefID == storagePlace.Product_RefID) .GroupBy(s => s.SupplierId, (key, group) => group.First()); var msrForProduct = msrForProducts.SingleOrDefault(x => x.ProductID == storagePlace.Product_RefID); result.Add(new L6ED_GPTIwAaS_0816() { StoragePlaces = storagePlace, Article = articles.FirstOrDefault(a => a.CMN_PRO_ProductID == storagePlace.Product_RefID), Suppliers = suppliers.ToArray(), MSR = (msrForProduct != null) ? msrForProduct.MSR : 0.0 }); } returnValue.Result = result.ToArray(); returnValue.Status = FR_Status.Success; #endregion return(returnValue); #endregion UserCode }
protected static FR_L6LG_GDfDLR_1634 Execute(DbConnection Connection, DbTransaction Transaction, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6LG_GDfDLR_1634(); returnValue.Result = new L6LG_GDfDLR_1634(); var languages = cls_Get_All_Languages_ForTenantID.Invoke(Connection, Transaction, new P_L2LN_GALFTID_1530() { Tenant_RefID = securityTicket.TenantID }, securityTicket).Result; var account = cls_Get_DisplayName_of_Account.Invoke(Connection, Transaction, securityTicket).Result; List <L6LG_GDfDLR_1634a> returnList = new List <L6LG_GDfDLR_1634a>(); var produtDemandAndSupplyQuantityList = cls_Get_Product_Demand_and_Supply_Quantity.Invoke(Connection, Transaction, securityTicket).Result; List <Guid> productIdList = produtDemandAndSupplyQuantityList.Select(p => p.ProductID).Distinct().ToList(); L3AR_GAfAL_0942[] articlesForArticleList = new L3AR_GAfAL_0942[0]; if (productIdList != null && productIdList.Count > 0) { P_L3AR_GAfAL_0942 articlesForArticleListParameter = new P_L3AR_GAfAL_0942(); articlesForArticleListParameter.ProductID_List = productIdList.ToArray(); FR_L3AR_GAfAL_0942_Array articlesForArticleListResult = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, articlesForArticleListParameter, securityTicket); articlesForArticleList = articlesForArticleListResult.Result; } foreach (L6LG_GPDaSQ_1636 productDemandAndSupplyQuantity in produtDemandAndSupplyQuantityList) { L3AR_GAfAL_0942 article = articlesForArticleList.FirstOrDefault(a => a.CMN_PRO_ProductID == productDemandAndSupplyQuantity.ProductID); if (article == null) { continue; } L6LG_GDfDLR_1634a product = new L6LG_GDfDLR_1634a(); product.ProductID = article.CMN_PRO_ProductID; product.DossageFormName = article.DossageFormName; product.ProducerName = article.ProducerName; product.Product_Name = new Dictionary <string, string>(); foreach (L2LN_GALFTID_1530 lang in languages) { string iso = lang.ISO_639_1; string content = ""; if (article.Product_Name != null && article.Product_Name.Contents != null) { DictEntry dicEntry = article.Product_Name.Contents.FirstOrDefault(c => c.LanguageID == lang.CMN_LanguageID); if (dicEntry != null) { content = dicEntry.Content; } } product.Product_Name.Add(iso, content); } product.Product_Number = article.Product_Number; product.UnitAmount = article.UnitAmount; product.UnitIsoCode = article.UnitIsoCode; product.DemandQuantity = productDemandAndSupplyQuantity.DemandQuantity; product.SupplyQuantity = productDemandAndSupplyQuantity.SupplyQuantity; product.ToBeOrderedQuantity = productDemandAndSupplyQuantity.DemandQuantity - productDemandAndSupplyQuantity.SupplyQuantity; returnList.Add(product); } returnValue.Result.Products = returnList.ToArray(); returnValue.Result.Account = account; return(returnValue); #endregion UserCode }
protected static FR_L6SC_GFDfSC_1424 Execute(DbConnection Connection, DbTransaction Transaction, P_L6SC_GFDfSC_1424 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6SC_GFDfSC_1424(); returnValue.Result = new L6SC_GFDfSC_1424(); var priceForAllProducts = new List <L3PR_GSPfPIL_1645>(); var articles = new List <L3AR_GAfAL_0942>(); var productsBySupplier = new List <L3SP_GPfSvSR_1524>(); var productListId = new List <Guid>(); #region Filter by storage and quantity var filterCriteria = new P_L3WH_GSPfFC_1504() { WarehouseGroupID = Parameter.WarehouseStructure.Warehouse_GroupID, WarehouseID = Parameter.WarehouseStructure.WarehouseID, AreaID = Parameter.WarehouseStructure.AreaID, RackID = Parameter.WarehouseStructure.RackID, UseShelfIDList = Parameter.WarehouseStructure.ShelfID != null, ShelfIDs = new Guid[] { Parameter.WarehouseStructure.ShelfID == null ? Guid.Empty : new Guid(Parameter.WarehouseStructure.ShelfID.ToString()) }, UseProductIDList = false, ProductIDs = new Guid[] { Guid.Empty }, BottomShelfQuantity = (int?)Parameter.QuantityBottom, TopShelfQuantity = (int?)Parameter.QuantityTop, UseProductTrackingInstanceIDList = false, ProductTrackingInstanceIDs = new Guid[] { Guid.Empty }, StartExpirationDate = null, EndExpirationDate = null }; var resultStoragePlaces = cls_Get_StoragePlaces_for_FilterCriteria.Invoke( Connection, Transaction, filterCriteria, securityTicket); if (resultStoragePlaces.Status != FR_Status.Success || resultStoragePlaces.Result == null || resultStoragePlaces.Result.Count() <= 0) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = new L6SC_GFDfSC_1424() { }; return(returnValue); } var productsByStorage = resultStoragePlaces.Result.ToList(); var productIDsByStorageAndQuantity = productsByStorage.Select(x => x.Product_RefID).Distinct().ToList(); #endregion #region Filter by Supplier if (productIDsByStorageAndQuantity.Count != 0) { productsBySupplier = cls_Get_ProductIDs_for_SupplierID_via_StockReceipts.Invoke(Connection, Transaction, new P_L3SP_GPfSvSR_1524 { ProvidingSupplier = Parameter.ProvidingSupplier }, securityTicket).Result.ToList(); if (Parameter.ProvidingSupplier != null) { var productIDsBySupplier = productsBySupplier.Select(x => x.ReceiptPosition_Product_RefID).ToList(); productListId = productIDsBySupplier.Intersect(productIDsByStorageAndQuantity).ToList(); } else { productListId = productIDsByStorageAndQuantity; } } #endregion #region Filter by date of shipment if (Parameter.DateOfShipmentFrom != null || Parameter.DateOfShipmentTo != null) { var dateOfShipmentParam = new P_L6SC_GDSfAL_1418(); dateOfShipmentParam.ProductID_List = productListId.ToArray(); dateOfShipmentParam.shipmentStatus = null; dateOfShipmentParam.DateFrom = Parameter.DateOfShipmentFrom; var filterByDate = Get_DateOfShipment_for_ArticleList.Invoke(Connection, Transaction, dateOfShipmentParam, securityTicket).Result; productListId = filterByDate .Where(x => x.GlobalPropertyMatchingID != EnumUtils.GetEnumDescription(EShipmentStatus.Shipped)) .Select(x => x.CMN_PRO_Product_RefID).Distinct().ToList(); } #endregion #region Filter by Price if (productListId.Count != 0) { var filteredPrice = new List <L3PR_GSPfPIL_1645>(); var priceParams = new P_L3PR_GSPfPIL_1645(); bool isFilteredByPrice = false; priceParams.ProductIDList = productListId.ToArray(); priceForAllProducts = cls_Get_StandardPrices_for_ProductIDList.Invoke( Connection, Transaction, priceParams, securityTicket).Result.ToList(); if (Parameter.Price.DefaultSalesPriceFrom != null || Parameter.Price.DefaultSalesPriceTo != null) { filteredPrice = priceForAllProducts.Where(x => (Parameter.Price.DefaultSalesPriceFrom == null || x.SalesPrice >= Parameter.Price.DefaultSalesPriceFrom) && (Parameter.Price.DefaultSalesPriceTo == null || x.SalesPrice <= Parameter.Price.DefaultSalesPriceTo)).ToList(); isFilteredByPrice = true; } if (Parameter.Price.AverageProcurementPriceFrom != null || Parameter.Price.AverageProcurementPriceTo != null) { if (isFilteredByPrice) { filteredPrice = filteredPrice.Where(x => (Parameter.Price.AverageProcurementPriceFrom == null || x.AverageProcurementPrice >= Parameter.Price.AverageProcurementPriceFrom) && (Parameter.Price.AverageProcurementPriceTo == null || x.AverageProcurementPrice <= Parameter.Price.AverageProcurementPriceTo)).ToList(); } else { filteredPrice = priceForAllProducts.Where(x => (Parameter.Price.AverageProcurementPriceFrom == null || x.AverageProcurementPrice >= Parameter.Price.AverageProcurementPriceFrom) && (Parameter.Price.AverageProcurementPriceTo == null || x.AverageProcurementPrice <= Parameter.Price.AverageProcurementPriceTo)).ToList(); isFilteredByPrice = true; } } if (isFilteredByPrice) { var productListByPrice = filteredPrice.Select(x => x.ProductID).ToList(); productListId = productListId.Intersect(productListByPrice).ToList(); } } #endregion #region Get_Articles_for_ArticleList add producerID if (productListId.Count != 0) { var getArticlesParams = new P_L3AR_GAfAL_0942(); getArticlesParams.ProducingBusinessParticipant = Parameter.ProducingBusinessParticipant; getArticlesParams.ProductID_List = productListId.ToArray(); getArticlesParams.ProductGroupID = Parameter.ProductGroupID; articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, getArticlesParams, securityTicket).Result.ToList(); } #endregion #region filter by producer if ((articles.Count != 0) && (String.IsNullOrEmpty(Parameter.Producer) == false)) { articles = articles.Where(x => x.ProducerName.Contains(Parameter.Producer)).ToList(); } #endregion #region Get Msr for products var productIDs = articles.Select(x => x.CMN_PRO_ProductID).ToArray(); var msrForProducts = cls_Get_MSR_for_ProductIDList.Invoke( Connection, Transaction, new P_L3AS_GSMRfPL_1508 { ProductIDList = productIDs }, securityTicket ).Result; #endregion if (productListId.Count != 0) { var returnItemList = new List <L6SC_GFDfSC_1424a>(); foreach (var item in productsByStorage) { var article = articles.SingleOrDefault(x => x.CMN_PRO_ProductID == item.Product_RefID); var productMst = msrForProducts.SingleOrDefault(x => x.ProductID == item.Product_RefID); var trackingInstances = cls_GetTrackingInstances_for_ShelfContent.Invoke( Connection, Transaction, new P_L3TI_GTIfSC_1455() { ShelfContentID = item.LOG_WRH_Shelf_ContentID }, securityTicket).Result; if (article != null && trackingInstances != null && trackingInstances.Count() > 0) { var returnItem = new L6SC_GFDfSC_1424a(); returnItem.Storage = productsByStorage.Single(x => x.LOG_WRH_Shelf_ContentID == item.LOG_WRH_Shelf_ContentID); returnItem.Price = priceForAllProducts.SingleOrDefault(x => x.ProductID == item.Product_RefID); returnItem.Article = article; returnItem.Supplier = productsBySupplier.Where(x => x.ReceiptPosition_Product_RefID == item.Product_RefID).ToArray(); returnItem.TrackingInstance = trackingInstances[0]; returnItem.MSR = (productMst != null) ? productMst.MSR : 0.0; returnItemList.Add(returnItem); } } returnValue.Result.FullGridData = returnItemList.ToArray(); } return(returnValue); #endregion UserCode }
protected static FR_L6ED_GEDRSPDfPTI_1649_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L6ED_GEDRSPDfPTI_1649 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6ED_GEDRSPDfPTI_1649_Array(); #region Get Storage Places var filterCriteria = new P_L3WH_GSPfFC_1504() { WarehouseGroupID = null, WarehouseID = null, AreaID = null, RackID = null, UseShelfIDList = false, ShelfIDs = new Guid[] { Guid.Empty }, UseProductIDList = false, ProductIDs = new Guid[] { Guid.Empty }, BottomShelfQuantity = 1, TopShelfQuantity = null, UseProductTrackingInstanceIDList = true, ProductTrackingInstanceIDs = Parameter.ProductTrackingInstanceIdList, StartExpirationDate = null, EndExpirationDate = null }; var resultStoragePlaces = cls_Get_StoragePlaces_for_FilterCriteria.Invoke(Connection, Transaction, filterCriteria, securityTicket); if (resultStoragePlaces.Status != FR_Status.Success || resultStoragePlaces.Result == null || resultStoragePlaces.Result.Count() <= 0) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = new L6ED_GEDRSPDfPTI_1649[] { }; return(returnValue); } #endregion #region Get Articles var parameterProductIds = new P_L3AR_GAfAL_0942(); parameterProductIds.ProductID_List = resultStoragePlaces.Result.Select(rsp => rsp.Product_RefID).Distinct().ToArray <Guid>(); var articles = new L3AR_GAfAL_0942[0]; if (parameterProductIds.ProductID_List.Length != 0) { articles = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, parameterProductIds, securityTicket).Result; } #endregion #region Set Result var groupingCriterias = resultStoragePlaces.Result.Select(i => new { ProductID = i.Product_RefID, BatchNumber = i.BatchNumber, ExpirationDate = i.ExpirationDate }).Distinct(); var result = new List <L6ED_GEDRSPDfPTI_1649>(); foreach (var groupingCriteria in groupingCriterias) { var trackingInstances = resultStoragePlaces.Result.Where(i => i.Product_RefID == groupingCriteria.ProductID && i.BatchNumber == groupingCriteria.BatchNumber && i.ExpirationDate == groupingCriteria.ExpirationDate).ToList(); result.Add(new L6ED_GEDRSPDfPTI_1649() { FakeID = Guid.NewGuid(), //this is important, because we don't have unique criteria for id on Front Article = articles.FirstOrDefault(a => a.CMN_PRO_ProductID == groupingCriteria.ProductID), BachNumber = groupingCriteria.BatchNumber, ExpiryDate = groupingCriteria.ExpirationDate, TrackingInstances = trackingInstances.Select(i => new L6ED_GEDRSPDfPTI_1649a() { ProductTrackingInstanceID = i.LOG_ProductTrackingInstanceID, ReceiptPositionID = Guid.Empty, ShelfContentID = i.LOG_WRH_Shelf_ContentID, SupplierID = Guid.Empty, SupplierName = "", ReturnableQuantity = 10, PricePerUnit = 0 }).ToArray() }); } returnValue.Result = result.ToArray(); returnValue.Status = FR_Status.Success; #endregion return(returnValue); #endregion UserCode }