protected static FR_Guid Execute(DbConnection Connection,DbTransaction Transaction,P_L3CO_AO_1648 Parameter,CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null){ //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Guid(); //Put your code here var confirmedStatus = ORM_ORD_CUO_CustomerOrder_Status.Query.Search(Connection, Transaction, new ORM_ORD_CUO_CustomerOrder_Status.Query { GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(ECustomerOrderStatus.Confirmed), Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single().ORD_CUO_CustomerOrder_StatusID; var customerOrder = new ORM_ORD_CUO_CustomerOrder_Header(); customerOrder.Load(Connection, Transaction, Parameter.CustomerOrderHeaderID); customerOrder.Current_CustomerOrderStatus_RefID = confirmedStatus; customerOrder.IsCustomerOrderFinalized = true; customerOrder.WasAutoApprovedUponReceipt = Parameter.IsAutomaticallyApprovedOnReceipt; ORM_USR_Account account = new ORM_USR_Account(); account.Load(Connection, Transaction, securityTicket.AccountID); ORM_ORD_CUO_CustomerOrder_StatusHistory newStatusInHistory = new ORM_ORD_CUO_CustomerOrder_StatusHistory(); newStatusInHistory.CustomerOrder_Header_RefID = customerOrder.ORD_CUO_CustomerOrder_HeaderID; newStatusInHistory.StatusHistoryComment = Parameter.Message; newStatusInHistory.Tenant_RefID = securityTicket.TenantID; newStatusInHistory.CustomerOrder_Status_RefID = confirmedStatus; newStatusInHistory.PerformedBy_BusinessParticipant_RefID = account.BusinessParticipant_RefID; newStatusInHistory.Save(Connection, Transaction); returnValue.Result = new FR_Guid(customerOrder.Save(Connection, Transaction), customerOrder.ORD_CUO_CustomerOrder_HeaderID).Result; return returnValue; #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6TR_SOHaS1434 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //* Array TreatmentID and ArticleID are the sam lenght; Treatment with position i has article with the position i var count = 0; List <Orders> orderList = new List <Orders>(); int ordinalNumber = 0; Guid headerID = Guid.Empty; for (int g = 0; g < Parameter.HEC_Patient_TreatmentID.Length; g++) { #region Save Order var status_query = new ORM_ORD_CUO_CustomerOrder_Status.Query(); status_query.IsDeleted = false; status_query.Tenant_RefID = securityTicket.TenantID; status_query.GlobalPropertyMatchingID = STLD_ORD_CUO_CustomerOrder_Status.Ordered.ToString(); var notOrderedstatus = ORM_ORD_CUO_CustomerOrder_Status.Query.Search(Connection, Transaction, status_query).First(); // za ispraviti sto pre #region var prod_param = new P_L6PD_GPaCOSfT_1120(); prod_param.TreatmentID = Parameter.HEC_Patient_TreatmentID[g]; var products = cls_Get_Products_and_CustomerOrderStatuses_for_TreatmentID.Invoke(Connection, Transaction, prod_param, securityTicket).Result; var notOrdered_Products = products.Where(i => i.CMN_PRO_ProductID == Guid.Empty); #endregion if (notOrdered_Products.Count() == 0) { return(returnValue); } #region Save Header and Status var header_query = new ORM_ORD_CUO_CustomerOrder_Header.Query(); header_query.IsDeleted = false; header_query.Tenant_RefID = securityTicket.TenantID; var headers = ORM_ORD_CUO_CustomerOrder_Header.Query.Search(Connection, Transaction, header_query); if (headers != null) { count = headers.Count(); } String ordernumber = String.Empty; var orderFound = orderList.Where(c => c.TreatmentID == Parameter.HEC_Patient_TreatmentID[g]).FirstOrDefault(); if (orderFound == null) { ordernumber = "000000000000" + (count + 1).ToString(); ordernumber = ordernumber.Substring(ordernumber.Length - 12); var header = new ORM_ORD_CUO_CustomerOrder_Header(); headerID = Guid.NewGuid(); header.ORD_CUO_CustomerOrder_HeaderID = headerID; header.Current_CustomerOrderStatus_RefID = notOrderedstatus.ORD_CUO_CustomerOrder_StatusID; header.CustomerOrder_Number = ordernumber; header.CustomerOrder_Date = DateTime.Now; header.Creation_Timestamp = DateTime.Now; header.Tenant_RefID = securityTicket.TenantID; header.Save(Connection, Transaction); var history = new ORM_ORD_CUO_CustomerOrder_StatusHistory(); history.ORD_CUO_CustomerOrder_StatusHistoryID = Guid.NewGuid(); history.CustomerOrder_Header_RefID = header.ORD_CUO_CustomerOrder_HeaderID; history.CustomerOrder_Status_RefID = notOrderedstatus.ORD_CUO_CustomerOrder_StatusID; history.StatusHistoryComment = ""; history.Creation_Timestamp = DateTime.Now; history.Tenant_RefID = securityTicket.TenantID; history.Save(Connection, Transaction); Orders ord = new Orders(); ord.TreatmentID = Parameter.HEC_Patient_TreatmentID[g]; ord.Ordernumber = ordernumber; ord.OrdinalNumber = 0; ord.headerID = headerID; orderList.Add(ord); ordinalNumber = 0; } else { ordernumber = orderFound.Ordernumber; ordinalNumber = orderFound.OrdinalNumber + 1; headerID = orderFound.headerID; } #endregion var product = notOrdered_Products.Where(t => t.CMN_PRO_ProductID == Parameter.AtricleID[g]).FirstOrDefault(); var position = new ORM_ORD_CUO_CustomerOrder_Position(); position.ORD_CUO_CustomerOrder_PositionID = Guid.NewGuid(); position.CustomerOrder_Header_RefID = headerID; position.Position_OrdinalNumber = ordinalNumber; position.Position_Quantity = product.Quantity; position.Position_ValuePerUnit = 1; position.Position_ValueTotal = (decimal)product.Quantity; position.CMN_PRO_Product_Variant_RefID = Guid.Empty; position.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; position.CMN_PRO_Product_Release_RefID = Guid.Empty; position.Position_RequestedDateOfDelivery = product.ExpectedDateOfDelivery; position.Creation_Timestamp = DateTime.Now; position.Tenant_RefID = securityTicket.TenantID; position.Save(Connection, Transaction); var item = new ORM_HEC_Patient_Treatment_RequiredProduct(); item.Load(Connection, Transaction, product.HEC_Patient_Treatment_RequiredProductID); item.BoundTo_CustomerOrderPosition_RefID = position.ORD_CUO_CustomerOrder_PositionID; item.Save(Connection, Transaction); #endregion } return(returnValue); #endregion UserCode }
protected static FR_L5CO_ACOaCS_2108_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L5CO_ACOaCS_2108[] Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5CO_ACOaCS_2108_Array(); List <L5CO_ACOaCS_2108> confirmedProcurementOrders = new List <L5CO_ACOaCS_2108>(); foreach (var param in Parameter) { L5CO_ACOaCS_2108 procurementOrderITL = new L5CO_ACOaCS_2108(); var confirmedStatus = ORM_ORD_CUO_CustomerOrder_Status.Query.Search(Connection, Transaction, new ORM_ORD_CUO_CustomerOrder_Status.Query { GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(ECustomerOrderStatus.Confirmed), Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single().ORD_CUO_CustomerOrder_StatusID; var customerOrder = new ORM_ORD_CUO_CustomerOrder_Header(); customerOrder.Load(Connection, Transaction, param.CustomerOrderHeaderID); customerOrder.Current_CustomerOrderStatus_RefID = confirmedStatus; customerOrder.IsCustomerOrderFinalized = true; customerOrder.Save(Connection, Transaction); ORM_USR_Account account = new ORM_USR_Account(); account.Load(Connection, Transaction, securityTicket.AccountID); ORM_ORD_CUO_CustomerOrder_StatusHistory newStatusInHistory = new ORM_ORD_CUO_CustomerOrder_StatusHistory(); newStatusInHistory.CustomerOrder_Header_RefID = customerOrder.ORD_CUO_CustomerOrder_HeaderID; newStatusInHistory.StatusHistoryComment = param.Message; newStatusInHistory.Tenant_RefID = securityTicket.TenantID; newStatusInHistory.CustomerOrder_Status_RefID = confirmedStatus; newStatusInHistory.PerformedBy_BusinessParticipant_RefID = account.BusinessParticipant_RefID; newStatusInHistory.Save(Connection, Transaction); procurementOrderITL.ProcurementOrderITL = customerOrder.ProcurementOrderITL; procurementOrderITL.ProcuringTenatID = customerOrder.OrderingCustomer_BusinessParticipant_RefID.ToString(); ORM_CMN_NumberRange_UsageArea numberRangeUsageArea = ORM_CMN_NumberRange_UsageArea.Query.Search(Connection, Transaction, new ORM_CMN_NumberRange_UsageArea.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, GlobalStaticMatchingID = NumberRangeGlobalPropertyMatchingID }).FirstOrDefault(); if (numberRangeUsageArea == null) { throw new Exception(String.Format("Number range usage area with GPMID = {0} was not found.", NumberRangeGlobalPropertyMatchingID)); } ORM_CMN_NumberRange numberRange = ORM_CMN_NumberRange.Query.Search(Connection, Transaction, new ORM_CMN_NumberRange.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, NumberRange_UsageArea_RefID = numberRangeUsageArea.CMN_NumberRange_UsageAreaID }).FirstOrDefault(); if (numberRange == null) { throw new Exception(String.Format("Number range for area with GPMID = {0} was not found.", NumberRangeGlobalPropertyMatchingID)); } numberRange.Value_Current++; numberRange.Save(Connection, Transaction); string shipmentNumber = numberRange.FixedPrefix + numberRange.Value_Current.ToString().PadLeft(numberRange.Formatting_NumberLength, numberRange.Formatting_LeadingFillCharacter[0]); ORM_LOG_SHP_Shipment_Header shipmentHeader = new ORM_LOG_SHP_Shipment_Header(); shipmentHeader.LOG_SHP_Shipment_HeaderID = Guid.NewGuid(); shipmentHeader.RecipientBusinessParticipant_RefID = customerOrder.OrderingCustomer_BusinessParticipant_RefID; shipmentHeader.ShipmentHeaderITL = shipmentHeader.LOG_SHP_Shipment_HeaderID.ToString(); shipmentHeader.ShipmentHeader_Number = shipmentNumber; shipmentHeader.Shippipng_AddressUCD_RefID = customerOrder.ShippingAddressUCD_RefID; shipmentHeader.ShipmentPriority = 0; shipmentHeader.ShipmentHeader_ValueWithoutTax = customerOrder.TotalValue_BeforeTax; shipmentHeader.ShipmentHeader_Currency_RefID = customerOrder.CustomerOrder_Currency_RefID; shipmentHeader.Tenant_RefID = securityTicket.TenantID; shipmentHeader.IsDeleted = false; shipmentHeader.Save(Connection, Transaction); var customerOrderPositions = ORM_ORD_CUO_CustomerOrder_Position.Query.Search(Connection, Transaction, new ORM_ORD_CUO_CustomerOrder_Position.Query() { CustomerOrder_Header_RefID = customerOrder.ORD_CUO_CustomerOrder_HeaderID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); if (customerOrderPositions != null) { foreach (var customerOrderPosition in customerOrderPositions) { ORM_LOG_SHP_Shipment_Position shipmentPosition = new ORM_LOG_SHP_Shipment_Position(); shipmentPosition.LOG_SHP_Shipment_PositionID = Guid.NewGuid(); shipmentPosition.ShipmentPositionITL = shipmentPosition.LOG_SHP_Shipment_PositionID.ToString(); shipmentPosition.LOG_SHP_Shipment_Header_RefID = shipmentHeader.LOG_SHP_Shipment_HeaderID; shipmentPosition.CMN_PRO_Product_RefID = customerOrderPosition.CMN_PRO_Product_RefID; shipmentPosition.CMN_PRO_ProductVariant_RefID = customerOrderPosition.CMN_PRO_Product_Variant_RefID; shipmentPosition.CMN_PRO_ProductRelease_RefID = customerOrderPosition.CMN_PRO_Product_Release_RefID; shipmentPosition.QuantityToShip = customerOrderPosition.Position_Quantity; shipmentPosition.ShipmentPosition_PricePerUnitValueWithoutTax = customerOrderPosition.Position_ValuePerUnit; shipmentPosition.ShipmentPosition_ValueWithoutTax = customerOrderPosition.Position_ValueTotal; shipmentPosition.IsCancelled = false; shipmentPosition.Tenant_RefID = securityTicket.TenantID; shipmentPosition.IsDeleted = false; shipmentPosition.Save(Connection, Transaction); ORM_ORD_CUO_CustomerOrder_Position_2_ShipmentPosition customerOrderPositionToShipmentPosition = new ORM_ORD_CUO_CustomerOrder_Position_2_ShipmentPosition(); customerOrderPositionToShipmentPosition.AssignmentID = Guid.NewGuid(); customerOrderPositionToShipmentPosition.LOG_SHP_Shipment_Position_RefID = shipmentPosition.LOG_SHP_Shipment_PositionID; customerOrderPositionToShipmentPosition.ORD_CUO_CustomerOrder_Position_RefID = customerOrderPosition.ORD_CUO_CustomerOrder_PositionID; customerOrderPositionToShipmentPosition.Tenant_RefID = securityTicket.TenantID; customerOrderPositionToShipmentPosition.IsDeleted = false; customerOrderPositionToShipmentPosition.Save(Connection, Transaction); } } //TO DO: UNCOMMENT AFTER JANKO ADD STATUSES //var shipmentStatusHistoryStatusID = ORM_LOG_SHP_Shipment_Status.Query.Search(Connection, Transaction, new ORM_LOG_SHP_Shipment_Status.Query() //{ // GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EShipmentStatus.Created), // Tenant_RefID = securityTicket.TenantID, // IsDeleted = false //}).Single().LOG_SHP_Shipment_StatusID; //ORM_LOG_SHP_Shipment_StatusHistory shipmentStatusHistory = new ORM_LOG_SHP_Shipment_StatusHistory(); //shipmentStatusHistory.LOG_SHP_Shipment_StatusHistoryID = Guid.NewGuid(); //shipmentStatusHistory.LOG_SHP_Shipment_Header_RefID = shipmentHeader.LOG_SHP_Shipment_HeaderID; //shipmentStatusHistory.LOG_SHP_Shipment_Status_RefID = shipmentStatusHistoryStatusID; //shipmentStatusHistory.PerformedBy_BusinessParticipant_RefID = securityTicket.TenantID; //shipmentStatusHistory.Tenant_RefID = securityTicket.TenantID; //shipmentStatusHistory.IsDeleted = false; //shipmentStatusHistory.Save(Connection, Transaction); ORM_LOG_SHP_ShipmentHeader_2_CustomerOrderHeader shipmentToCustomerOrderHeader = new ORM_LOG_SHP_ShipmentHeader_2_CustomerOrderHeader(); shipmentToCustomerOrderHeader.AssignmentID = Guid.NewGuid(); shipmentToCustomerOrderHeader.LOG_SHP_Shipment_Header_RefID = shipmentHeader.LOG_SHP_Shipment_HeaderID; shipmentToCustomerOrderHeader.ORD_CUO_CustomerOrder_Header_RefID = customerOrder.ORD_CUO_CustomerOrder_HeaderID; shipmentToCustomerOrderHeader.Tenant_RefID = securityTicket.TenantID; shipmentToCustomerOrderHeader.IsDeleted = false; shipmentToCustomerOrderHeader.Save(Connection, Transaction); confirmedProcurementOrders.Add(procurementOrderITL); } returnValue.Result = confirmedProcurementOrders.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6TR_SPTaO_1014 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); #region Save Treatment var param = new P_L6TR_SPT_1533(); param.Aticles = Parameter.Aticles; param.Diagnosis = Parameter.Diagnosis; param.Treatment = Parameter.Treatment; param.Followups = Parameter.Followups; var TreatmentID = cls_Save_Patient_Treatment.Invoke(Connection, Transaction, param, securityTicket).Result; returnValue.Result = TreatmentID; #endregion #region Save Order var status_query = new ORM_ORD_CUO_CustomerOrder_Status.Query(); status_query.IsDeleted = false; status_query.Tenant_RefID = securityTicket.TenantID; status_query.GlobalPropertyMatchingID = STLD_ORD_CUO_CustomerOrder_Status.Ordered.ToString(); var notOrderedstatus = ORM_ORD_CUO_CustomerOrder_Status.Query.Search(Connection, Transaction, status_query).First(); var prod_param = new P_L6PD_GPaCOSfT_1120(); prod_param.TreatmentID = TreatmentID; var products = cls_Get_Products_and_CustomerOrderStatuses_for_TreatmentID.Invoke(Connection, Transaction, prod_param, securityTicket).Result; var notOrdered_Products = products.Where(i => i.ORD_CUO_CustomerOrder_PositionID == Guid.Empty); if (notOrdered_Products.Count() == 0) { return(returnValue); } #region Save Header and Status var header_query = new ORM_ORD_CUO_CustomerOrder_Header.Query(); header_query.IsDeleted = false; header_query.Tenant_RefID = securityTicket.TenantID; var headers = ORM_ORD_CUO_CustomerOrder_Header.Query.Search(Connection, Transaction, header_query); var count = 0; if (headers != null) { count = headers.Count(); } String ordernumber = "000000000000" + (count + 1).ToString(); ordernumber = ordernumber.Substring(ordernumber.Length - 12); var header = new ORM_ORD_CUO_CustomerOrder_Header(); header.ORD_CUO_CustomerOrder_HeaderID = Guid.NewGuid(); header.Current_CustomerOrderStatus_RefID = notOrderedstatus.ORD_CUO_CustomerOrder_StatusID; header.CustomerOrder_Number = ordernumber; header.CustomerOrder_Date = DateTime.Now; header.Creation_Timestamp = DateTime.Now; header.Tenant_RefID = securityTicket.TenantID; header.Save(Connection, Transaction); var history = new ORM_ORD_CUO_CustomerOrder_StatusHistory(); history.ORD_CUO_CustomerOrder_StatusHistoryID = Guid.NewGuid(); history.CustomerOrder_Header_RefID = header.ORD_CUO_CustomerOrder_HeaderID; history.CustomerOrder_Status_RefID = notOrderedstatus.ORD_CUO_CustomerOrder_StatusID; history.StatusHistoryComment = ""; history.Creation_Timestamp = DateTime.Now; history.Tenant_RefID = securityTicket.TenantID; history.Save(Connection, Transaction); #endregion int cnt = 0; foreach (var product in notOrdered_Products) { cnt++; var position = new ORM_ORD_CUO_CustomerOrder_Position(); position.ORD_CUO_CustomerOrder_PositionID = Guid.NewGuid(); position.CustomerOrder_Header_RefID = header.ORD_CUO_CustomerOrder_HeaderID; position.Position_OrdinalNumber = cnt; position.Position_Quantity = product.Quantity; position.Position_ValuePerUnit = 1; position.Position_ValueTotal = (decimal)product.Quantity; position.CMN_PRO_Product_Variant_RefID = Guid.Empty; position.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; position.CMN_PRO_Product_Release_RefID = Guid.Empty; position.Position_RequestedDateOfDelivery = product.ExpectedDateOfDelivery; position.Creation_Timestamp = DateTime.Now; position.Tenant_RefID = securityTicket.TenantID; position.Save(Connection, Transaction); var item = new ORM_HEC_Patient_Treatment_RequiredProduct(); item.Load(Connection, Transaction, product.HEC_Patient_Treatment_RequiredProductID); item.BoundTo_CustomerOrderPosition_RefID = position.ORD_CUO_CustomerOrder_PositionID; item.Save(Connection, Transaction); } #endregion return(returnValue); #endregion UserCode }
protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L5CO_CCO_1950 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); //Find status var status = ORM_ORD_CUO_CustomerOrder_Status.Query.Search(Connection, Transaction, new ORM_ORD_CUO_CustomerOrder_Status.Query() { Tenant_RefID = securityTicket.TenantID, GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(ECustomerOrderStatus.Ordered), IsDeleted = false }).SingleOrDefault(); //Find currency var currency = ORM_CMN_Currency.Query.Search(Connection, Transaction, new ORM_CMN_Currency.Query() { Tenant_RefID = securityTicket.TenantID, ISO4127 = Parameter.ProcurementOrderHeader.CurrencyISOCode.Trim() }); //Put your code here ORM_ORD_CUO_CustomerOrder_Header customerOrderHeader = new ORM_ORD_CUO_CustomerOrder_Header(); customerOrderHeader.ORD_CUO_CustomerOrder_HeaderID = Guid.NewGuid(); customerOrderHeader.ProcurementOrderITL = Parameter.ProcurementOrderHeader.ProcurementOrderID.ToString(); customerOrderHeader.CustomerOrder_Number = Parameter.ProcurementOrderHeader.OrderNumber; customerOrderHeader.CustomerOrder_Date = DateTime.Now; customerOrderHeader.OrderingCustomer_BusinessParticipant_RefID = Parameter.ProcurementOrderHeader.OrderingCustomerBusinessParticipantID; customerOrderHeader.CreatedBy_BusinessParticipant_RefID = Parameter.ProcurementOrderHeader.CreatedByBusinessParticipantID; customerOrderHeader.TotalValue_BeforeTax = Parameter.ProcurementOrderHeader.TotalValueBeforeTax; customerOrderHeader.Current_CustomerOrderStatus_RefID = status.ORD_CUO_CustomerOrder_StatusID; customerOrderHeader.Tenant_RefID = securityTicket.TenantID; //This should be changed when we figure out what to do with currencies that don't exist in s-adm database customerOrderHeader.CustomerOrder_Currency_RefID = (currency != null && currency.Count == 1) ? currency.First().CMN_CurrencyID : Guid.Empty; customerOrderHeader.Save(Connection, Transaction); ORM_ORD_CUO_CustomerOrder_StatusHistory statusHistory = new ORM_ORD_CUO_CustomerOrder_StatusHistory(); statusHistory.ORD_CUO_CustomerOrder_StatusHistoryID = Guid.NewGuid(); statusHistory.CustomerOrder_Status_RefID = status.ORD_CUO_CustomerOrder_StatusID; statusHistory.CustomerOrder_Header_RefID = customerOrderHeader.ORD_CUO_CustomerOrder_HeaderID; statusHistory.Tenant_RefID = securityTicket.TenantID; statusHistory.Save(Connection, Transaction); //Get products and product variants for ITL Lists var productIDList = Parameter.ProcurementOrderHeader.Positions.Select(x => x.ProductRefID.ToString()).ToArray(); L3PR_GPfPITL_1416[] products = null; if (productIDList != null && productIDList.Count() > 0) { products = cls_Get_Producs_for_ProductITLList.Invoke(Connection, Transaction, new P_L3PR_GPfPITL_1416() { ProductITLList = productIDList }, securityTicket).Result; } var variantIDList = Parameter.ProcurementOrderHeader.Positions.Select(x => x.ProductVariantRefID.ToString()).ToArray(); L3PV_GPVfVITL_1421[] variants = null; if (variantIDList != null && variantIDList.Count() > 0) { variants = cls_Get_ProductVariants_for_VariantITLList.Invoke(Connection, new P_L3PV_GPVfVITL_1421() { VariantITLList = variantIDList }, securityTicket).Result; } foreach (var position in Parameter.ProcurementOrderHeader.Positions) { var newPosition = new ORM_ORD_CUO_CustomerOrder_Position(); newPosition.ORD_CUO_CustomerOrder_PositionID = Guid.NewGuid(); newPosition.CustomerProcurementOrderPositionITL = position.ProcurementOrderPositionID.ToString(); newPosition.CustomerOrder_Header_RefID = customerOrderHeader.ORD_CUO_CustomerOrder_HeaderID; newPosition.Position_OrdinalNumber = position.OridinalNumber; newPosition.Position_Quantity = position.Quantity; newPosition.Position_ValuePerUnit = position.ValuePerunit; newPosition.Position_ValueTotal = position.ValueTotal; newPosition.Position_Comment = position.Comment; newPosition.Position_Description = position.Description; newPosition.IsProductReplacementAllowed = position.IsProductReplacementAllowed; newPosition.CMN_PRO_Product_RefID = products.Where(x => x.ProductITL == position.ProductRefID.ToString()).First().CMN_PRO_ProductID; newPosition.CMN_PRO_Product_Variant_RefID = variants.Where(x => x.ProductVariantITL == position.ProductVariantRefID.ToString()).First().CMN_PRO_Product_VariantID; newPosition.Tenant_RefID = securityTicket.TenantID; newPosition.Save(Connection, Transaction); foreach (var custom in position.PositionCustomizations) { ORM_ORD_CUO_CustomerOrder_Position_Customization customization = new ORM_ORD_CUO_CustomerOrder_Position_Customization(); customization.ORD_CUO_CustomerOrder_Position_CustomizationID = Guid.NewGuid(); customization.Tenant_RefID = securityTicket.TenantID; customization.CustomerOrder_Position_RefID = newPosition.ORD_CUO_CustomerOrder_PositionID; customization.Customization_Name = custom.CustomizationName; customization.CustomizationVariant_Name = custom.CustomizationVariantName; customization.ValuePerUnit = custom.ValuePerUnit; customization.ValueTotal = custom.ValueTotal; customization.Save(Connection, Transaction); } } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6CO_SNoPCHS_1833 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); foreach (var headerId in Parameter.CustomerOrder_HeaderID_List) { #region Save Order var status_query = new ORM_ORD_CUO_CustomerOrder_Status.Query(); status_query.IsDeleted = false; status_query.Tenant_RefID = securityTicket.TenantID; var allStatuses = ORM_ORD_CUO_CustomerOrder_Status.Query.Search(Connection, Transaction, status_query).OrderBy(i => i.Status_Code); #region Save Header and Status var header = new ORM_ORD_CUO_CustomerOrder_Header(); header.Load(Connection, Transaction, headerId); var currentStatusCode = allStatuses.Where(i => i.ORD_CUO_CustomerOrder_StatusID == header.Current_CustomerOrderStatus_RefID).First().Status_Code; string currentStatusGlobalID = allStatuses.Where(i => i.ORD_CUO_CustomerOrder_StatusID == header.Current_CustomerOrderStatus_RefID).First().GlobalPropertyMatchingID; ORM_ORD_CUO_CustomerOrder_Status nextStatus = null; // List<ORM_ORD_CUO_CustomerOrder_Status> nextStatuses = new List<ORM_ORD_CUO_CustomerOrder_Status>(); switch (currentStatusGlobalID.ToUpper()) { case "4621085A-E747-4645-AA61-FA4CE1A8E646": nextStatus = allStatuses.Where(i => i.GlobalPropertyMatchingID == STLD_ORD_CUO_CustomerOrder_Status.OrderConfirmed.ToString()).First(); break; case "1712AF34-6E74-4A3D-9E97-5A90A88692B6": if (Parameter.MoveToNext) { nextStatus = allStatuses.Where(i => i.GlobalPropertyMatchingID == STLD_ORD_CUO_CustomerOrder_Status.Shipped.ToString()).First(); } else { nextStatus = allStatuses.Where(i => i.GlobalPropertyMatchingID == STLD_ORD_CUO_CustomerOrder_Status.Ordered.ToString()).First(); } break; case "D2FDEBAE-865D-4DB2-B15F-7396C6CCBD8E": if (Parameter.MoveToNext) { nextStatus = allStatuses.Where(i => i.GlobalPropertyMatchingID == STLD_ORD_CUO_CustomerOrder_Status.Billed.ToString()).First(); } else { nextStatus = allStatuses.Where(i => i.GlobalPropertyMatchingID == STLD_ORD_CUO_CustomerOrder_Status.OrderConfirmed.ToString()).First(); } break; case "ABF393AC-96CA-4154-B21E-57B20119C291": nextStatus = allStatuses.Where(i => i.GlobalPropertyMatchingID == STLD_ORD_CUO_CustomerOrder_Status.Shipped.ToString()).First(); break; default: Console.WriteLine("Default case"); break; } header.Current_CustomerOrderStatus_RefID = nextStatus.ORD_CUO_CustomerOrder_StatusID; header.Save(Connection, Transaction); var history = new ORM_ORD_CUO_CustomerOrder_StatusHistory(); history.ORD_CUO_CustomerOrder_StatusHistoryID = Guid.NewGuid(); history.CustomerOrder_Header_RefID = header.ORD_CUO_CustomerOrder_HeaderID; history.CustomerOrder_Status_RefID = nextStatus.ORD_CUO_CustomerOrder_StatusID; history.StatusHistoryComment = ""; history.Creation_Timestamp = DateTime.Now; history.Tenant_RefID = securityTicket.TenantID; history.Save(Connection, Transaction); #endregion #endregion } return(returnValue); #endregion UserCode }
protected static FR_Guids Execute(DbConnection Connection, DbTransaction Transaction, P_L5CO_CCOaMR_1102 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guids(); var result = new List <Guid>(); #region Current_CustomerOrderStatus var orderedStatusID = ORM_ORD_CUO_CustomerOrder_Status.Query.Search(Connection, Transaction, new ORM_ORD_CUO_CustomerOrder_Status.Query { GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(ECustomerOrderStatus.Ordered), Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault().ORD_CUO_CustomerOrder_StatusID; #endregion #region Get All OrganizationalUnits var organizationalUnits = ORM_CMN_BPT_CTM_OrganizationalUnit.Query.Search(Connection, Transaction, new ORM_CMN_BPT_CTM_OrganizationalUnit.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); #endregion foreach (var procurement in Parameter.Procurements) { #region CustomerOrder_Number var incrNumberParam = new P_L2NR_GaIINfUA_1454() { GlobalStaticMatchingID = EnumUtils.GetEnumDescription(ENumberRangeUsageAreaType.CustomerOrderNumber) }; var customerOrderNumber = cls_Get_and_Increase_IncreasingNumber_for_UsageArea.Invoke(Connection, Transaction, incrNumberParam, securityTicket).Result.Current_IncreasingNumber; #endregion var cuoHeader = new ORM_ORD_CUO_CustomerOrder_Header(); cuoHeader.ORD_CUO_CustomerOrder_HeaderID = Guid.NewGuid(); cuoHeader.ProcurementOrderITL = procurement.ProcurementHeaderInfo.ProcurementOrderInfo.ITL; cuoHeader.Current_CustomerOrderStatus_RefID = orderedStatusID; cuoHeader.CustomerOrder_Number = customerOrderNumber; cuoHeader.CustomerOrder_Date = DateTime.Now; cuoHeader.OrderingCustomer_BusinessParticipant_RefID = Parameter.CustomerBusinessParticipantID; cuoHeader.CreatedBy_BusinessParticipant_RefID = Parameter.CustomerBusinessParticipantID; cuoHeader.CanceledBy_BusinessParticipant_RefID = Guid.Empty; cuoHeader.CustomerOrder_Currency_RefID = Guid.Empty; cuoHeader.TotalValue_BeforeTax = 0; cuoHeader.IsCustomerOrderFinalized = false; cuoHeader.DeliveryDeadline = new DateTime(); cuoHeader.IsPartialShippingAllowed = true; cuoHeader.Tenant_RefID = securityTicket.TenantID; cuoHeader.Creation_Timestamp = DateTime.Now; cuoHeader.Save(Connection, Transaction); #region CustomerOrderStatusHistory var statusHistory = new ORM_ORD_CUO_CustomerOrder_StatusHistory() { ORD_CUO_CustomerOrder_StatusHistoryID = Guid.NewGuid(), CustomerOrder_Header_RefID = cuoHeader.ORD_CUO_CustomerOrder_HeaderID, CustomerOrder_Status_RefID = orderedStatusID, StatusHistoryComment = "", PerformedBy_BusinessParticipant_RefID = Parameter.CustomerBusinessParticipantID, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID }; statusHistory.Save(Connection, Transaction); #endregion var count = 1; decimal ammount = 0; foreach (var position in procurement.ProcurementPositions) { #region FindArticle var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query() { ProductITL = position.Product.ProductITL, IsDeleted = false, Tenant_RefID = securityTicket.TenantID, IsProductAvailableForOrdering = true }).Single(); var packageInfo = ORM_CMN_PRO_PAC_PackageInfo.Query.Search(Connection, Transaction, new ORM_CMN_PRO_PAC_PackageInfo.Query() { CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); #endregion #region Find Price decimal priceAmount = 0; if (position.Product.SourceCatalogITL == EnumUtils.GetEnumDescription(EPublicCatalogs.ABDA)) { var abdaCatalogSubscription = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, new ORM_CMN_PRO_SubscribedCatalog.Query() { CatalogCodeITL = EnumUtils.GetEnumDescription(EPublicCatalogs.ABDA), Tenant_RefID = securityTicket.TenantID, IsDeleted = false } ).SingleOrDefault(); var price = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, new ORM_CMN_SLS_Price.Query() { CMN_PRO_Product_RefID = product.CMN_PRO_ProductID, PricelistRelease_RefID = abdaCatalogSubscription.SubscribedCatalog_PricelistRelease_RefID, IsDeleted = false }).Single(); priceAmount = price.PriceAmount; } else { var catalog = ORM_CMN_PRO_Catalog.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Catalog.Query() { CatalogCodeITL = position.Product.SourceCatalogITL, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var lastPublishedRevision = ORM_CMN_PRO_Catalog_Revision.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Catalog_Revision.Query() { CMN_PRO_Catalog_RefID = catalog.CMN_PRO_CatalogID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID, }).Where(j => j.PublishedOn_Date != new DateTime()).OrderBy(i => i.RevisionNumber).Last(); var price = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, new ORM_CMN_SLS_Price.Query() { CMN_PRO_Product_RefID = product.CMN_PRO_ProductID, PricelistRelease_RefID = lastPublishedRevision.Default_PricelistRelease_RefID, CMN_Currency_RefID = catalog.Catalog_Currency_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); priceAmount = price.PriceAmount; } #endregion var cuoPosition = new ORM_ORD_CUO_CustomerOrder_Position(); cuoPosition.ORD_CUO_CustomerOrder_PositionID = Guid.NewGuid(); cuoPosition.CustomerOrder_Header_RefID = cuoHeader.ORD_CUO_CustomerOrder_HeaderID; cuoPosition.Position_OrdinalNumber = count++; cuoPosition.Position_Quantity = position.TotalOrderQuantity; cuoPosition.Position_ValuePerUnit = priceAmount; cuoPosition.Position_ValueTotal = priceAmount * (decimal)position.TotalOrderQuantity; cuoPosition.Position_Comment = String.Empty; cuoPosition.Position_Unit_RefID = packageInfo.PackageContent_MeasuredInUnit_RefID; cuoPosition.Position_RequestedDateOfDelivery = new DateTime(); cuoPosition.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; cuoPosition.CMN_PRO_Product_Release_RefID = Guid.Empty; cuoPosition.CMN_PRO_Product_Variant_RefID = Guid.Empty; cuoPosition.IsProductReplacementAllowed = position.Product.IsProductReplacementAllowed; cuoPosition.Tenant_RefID = securityTicket.TenantID; cuoPosition.Creation_Timestamp = DateTime.Now; cuoPosition.Save(Connection, Transaction); #region Product 2 OrganizationalUnit foreach (var item in position.TargetOrgUnitInfo) { var orgUnit = organizationalUnits.Where(i => i.CustomerTenant_OfficeITL == item.OfficeITL).Single(); var assignement = new ORM_ORD_CUO_Position_CustomerOrganizationalUnitDistribution() { ORD_CUO_Position_CustomerOrganizationalUnitDistributionID = Guid.NewGuid(), Quantity = item.SubQuantity, CMN_BPT_CTM_OrganizationalUnit_RefID = orgUnit.CMN_BPT_CTM_OrganizationalUnitID, ORD_CUO_CustomerOrder_Position_RefID = cuoPosition.ORD_CUO_CustomerOrder_PositionID, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID }; assignement.Save(Connection, Transaction); } #endregion ammount += cuoPosition.Position_ValueTotal; } #region Create comments if (procurement.ProcurementComments != null) { foreach (var item in procurement.ProcurementComments) { var orgUnit = organizationalUnits.Where(i => i.CustomerTenant_OfficeITL == item.OfficeITL).Single(); var assignement = new ORM_ORD_CUO_CustomerOrder_Note() { ORD_CUO_CustomerOrder_NoteID = Guid.NewGuid(), CustomerOrder_Header_RefID = cuoHeader.ORD_CUO_CustomerOrder_HeaderID, CustomerOrder_Position_RefID = Guid.Empty, CMN_BPT_CTM_OrganizationalUnit_RefID = orgUnit.CMN_BPT_CTM_OrganizationalUnitID, Title = item.Title, Comment = item.Content, NotePublishDate = item.PublilshDate, SequenceOrderNumber = item.SequenceNumber, Creation_Timestamp = DateTime.Now, Tenant_RefID = securityTicket.TenantID }; assignement.Save(Connection, Transaction); } } #endregion cuoHeader.TotalValue_BeforeTax = ammount; cuoHeader.Save(Connection, Transaction); result.Add(cuoHeader.ORD_CUO_CustomerOrder_HeaderID); } returnValue.Result = result.ToArray(); return(returnValue); #endregion UserCode }