protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_UAIDSF_1056 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); var product = new ORM_CMN_PRO_Product(); var result = product.Load(Connection, Transaction, Parameter.ProductID); if (result.Status != FR_Status.Success) { returnValue.Result = false; returnValue.Status = FR_Status.Error_Internal; return(returnValue); } product.IsProductPartOfDefaultStock = Parameter.IsProductPartOfDefaultStock; result = product.Save(Connection, Transaction); if (result.Status != FR_Status.Success) { returnValue.Result = false; returnValue.Status = FR_Status.Error_Internal; return(returnValue); } returnValue.Status = FR_Status.Success; returnValue.Result = true; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5DA_CDAtA_1238 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here var article = new ORM_CMN_PRO_Product(); var dummyArticle = new ORM_CMN_PRO_Product(); var result = article.Load(Connection, Transaction, Parameter.CMN_PRO_ProductID); if (result.Status != FR_Status.Success || article.CMN_PRO_ProductID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } var result2 = dummyArticle.Load(Connection, Transaction, Parameter.Dummy_ProductID); if (result.Status != FR_Status.Success || dummyArticle.CMN_PRO_ProductID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } article.IsPlaceholderArticle = true; dummyArticle.IsPlaceholderArticle = false; dummyArticle.Save(Connection, Transaction); return(new FR_Guid(article.Save(Connection, Transaction), article.CMN_PRO_ProductID)); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L3MP_DP_1145 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Guid(); ORM_CMN_PRO_Product item = new ORM_CMN_PRO_Product(); var result = item.Load(Connection, Transaction, Parameter.CMN_PRO_ProductID); if (result.Status != FR_Status.Success) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } /**********************Delete Hec_Product***********************************/ var hecProductQuery = new ORM_HEC_Product.Query(); hecProductQuery.Ext_PRO_Product_RefID = Parameter.CMN_PRO_ProductID; hecProductQuery.IsDeleted = false; var medProduct = ORM_HEC_Product.Query.Search(Connection, Transaction, hecProductQuery).FirstOrDefault(); if (medProduct != null) { medProduct.IsDeleted = true; medProduct.Save(Connection, Transaction); } /**********************Delete Surveys***************************************/ var surveysQuery = new ORM_CMN_PRO_Product_Questionnaire_Assignment.Query(); surveysQuery.CMN_PRO_Product_RefID = Parameter.CMN_PRO_ProductID; surveysQuery.IsDeleted = false; var surveyes = ORM_CMN_PRO_Product_Questionnaire_Assignment.Query.Search(Connection, Transaction, surveysQuery).ToList(); if (surveyes.Count != 0) { foreach (var survey in surveyes) { survey.IsDeleted = true; survey.Save(Connection, Transaction); } } item.IsDeleted = true; item.Save(Connection, Transaction); return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_CDAtA_1238 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here var article = new ORM_CMN_PRO_Product(); article.Load(Connection, Transaction, Parameter.CMN_PRO_ProductID); var dummyArticle = new ORM_CMN_PRO_Product(); dummyArticle.Load(Connection, Transaction, Parameter.Dummy_ProductID); dummyArticle.ProductSuccessor_RefID = article.CMN_PRO_ProductID; dummyArticle.Save(Connection, Transaction); return(new FR_Guid(article.Save(Connection, Transaction), article.CMN_PRO_ProductID)); #endregion UserCode }
private static List <L5CA_GACPfR_1621> ProductWithoutPrices(DbConnection Connection, DbTransaction Transaction, P_L5CA_PNCV_1520 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket, List <ORM_CMN_PRO_Catalog_Product> oldProducts) { List <L5CA_GACPfR_1621> products = new List <L5CA_GACPfR_1621>(); L5CA_GACPfR_1621 product; List <Guid> insertedProducts = new List <Guid>(); foreach (var item in oldProducts) { if (insertedProducts.Any(i => i == item.CMN_PRO_Product_RefID)) { continue; } insertedProducts.Add(item.CMN_PRO_Product_RefID); ORM_CMN_SLS_Pricelist_Release plr = new ORM_CMN_SLS_Pricelist_Release(); plr.Load(Connection, Transaction, Parameter.Default_PricelistRelease_RefID); var pricelistPriceQry = new ORM_CMN_SLS_Price.Query() { CMN_PRO_Product_RefID = item.CMN_PRO_Product_RefID, PricelistRelease_RefID = plr.CMN_SLS_Pricelist_ReleaseID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }; var prices = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, pricelistPriceQry); if (prices.Count == 0) { ORM_CMN_PRO_Product pr = new ORM_CMN_PRO_Product(); pr.Load(Connection, Transaction, item.CMN_PRO_Product_RefID); product = new L5CA_GACPfR_1621(); product.Product_Number = pr.Product_Number; product.Product_Name = pr.Product_Name; product.Product_Description = pr.Product_Description; products.Add(product); } } return(products); }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_SP_1614 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var languageQuery = new ORM_CMN_Language.Query(); languageQuery.Tenant_RefID = securityTicket.TenantID; languageQuery.IsDeleted = false; var languages = ORM_CMN_Language.Query.Search(Connection, Transaction, languageQuery); var product = new ORM_CMN_PRO_Product(); if (Parameter.ProductID == Guid.Empty) { #region ORM_CMN_PRO_Product product = new ORM_CMN_PRO_Product(); product.CMN_PRO_ProductID = Guid.NewGuid(); product.ProductITL = String.Empty; product.IsCustomizable = Parameter.IsCustomizable; product.IsProduct_Article = true; product.IsProductAvailableForOrdering = true; product.IsImportedFromExternalCatalog = false; product.IsProductForInternalDistributionOnly = Parameter.IsProductForInternalDistribution; if (Parameter.CatalogRefID != null && Parameter.CatalogRefID != Guid.Empty) { product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = Parameter.CatalogRefID; } product.Product_Name = new Dict(ORM_CMN_PRO_Product.TableName); product.Product_Description = new Dict(ORM_CMN_PRO_Product.TableName); product.PackageInfo_RefID = Guid.NewGuid(); product.Creation_Timestamp = DateTime.Now; product.Tenant_RefID = securityTicket.TenantID; product.IsDeleted = Parameter.IsDeleted; product.Save(Connection, Transaction); #endregion } else { product.Load(Connection, Transaction, Parameter.ProductID); } if (Parameter.Document_ID != null && Parameter.Document_ID != Guid.Empty) { ORM_DOC_Structure_Header structureHeader = new ORM_DOC_Structure_Header(); if (Parameter.DocumentStructureHeaderID == Guid.Empty) { structureHeader.Label = "Product picture"; structureHeader.Tenant_RefID = securityTicket.TenantID; structureHeader.Save(Connection, Transaction); product.Product_DocumentationStructure_RefID = structureHeader.DOC_Structure_HeaderID; } ORM_DOC_Structure structure = new ORM_DOC_Structure(); if (Parameter.DocumentStructureHeaderID == Guid.Empty) { structure.Label = "Product picture"; structure.Structure_Header_RefID = structureHeader.DOC_Structure_HeaderID; structure.CreatedBy_Account_RefID = securityTicket.AccountID; structure.Tenant_RefID = securityTicket.TenantID; structure.Save(Connection, Transaction); } ORM_DOC_Document document = new ORM_DOC_Document(); document.DOC_DocumentID = Parameter.Document_ID; document.Tenant_RefID = securityTicket.TenantID; document.Save(Connection, Transaction); var documentStructureID = structure.DOC_StructureID; var assignmentID = Guid.Empty; List <ORM_DOC_Document_2_Structure> existingDocumentStructure = new List <ORM_DOC_Document_2_Structure>(); if (Parameter.DocumentStructureHeaderID != Guid.Empty) { existingDocumentStructure = ORM_DOC_Document_2_Structure.Query.Search(Connection, Transaction, new ORM_DOC_Document_2_Structure.Query() { StructureHeader_RefID = Parameter.DocumentStructureHeaderID }); } ORM_DOC_Document_2_Structure documentStructure = new ORM_DOC_Document_2_Structure(); if (existingDocumentStructure != null && existingDocumentStructure.Count() > 0) { existingDocumentStructure.First().Document_RefID = document.DOC_DocumentID; existingDocumentStructure.First().Save(Connection, Transaction); } else { documentStructure.Document_RefID = document.DOC_DocumentID; documentStructure.Structure_RefID = documentStructureID; documentStructure.StructureHeader_RefID = structure.Structure_Header_RefID; documentStructure.Tenant_RefID = securityTicket.TenantID; documentStructure.Save(Connection, Transaction); } } #region ORM_CMN_PRO_Product product.Product_Number = Parameter.ProductNumber; foreach (var language in languages) { product.Product_Name.UpdateEntry(language.CMN_LanguageID, Parameter.ProductName); product.Product_Description.UpdateEntry(language.CMN_LanguageID, Parameter.Description); } product.ProductType_RefID = Guid.Empty; product.IsPlaceholderArticle = Parameter.IsDummy; product.IsCustomizable = Parameter.IsCustomizable; product.ProductSuccessor_RefID = Guid.Empty; product.IsDeleted = Parameter.IsDeleted; product.Save(Connection, Transaction); #endregion #region Variant //Create default varient var defaultVarient = new ORM_CMN_PRO_Product_Variant(); defaultVarient.CMN_PRO_Product_VariantID = Guid.NewGuid(); defaultVarient.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; defaultVarient.IsStandardProductVariant = true; defaultVarient.Tenant_RefID = securityTicket.TenantID; defaultVarient.VariantName = new Dict(ORM_CMN_PRO_Product_Variant.TableName); foreach (var language in languages) { defaultVarient.VariantName.UpdateEntry(language.CMN_LanguageID, String.Empty); } defaultVarient.Save(Connection, Transaction); #endregion #region Customization if (Parameter.IsCustomizable == false && Parameter.ProductID != Guid.Empty) { var customizations = ORM_CMN_PRO_CUS_Customization.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { Product_RefID = Parameter.ProductID }); foreach (var customization in customizations) { ORM_CMN_PRO_CUS_Customization_Variant.Query.SoftDelete(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query() { Customization_RefID = customization.CMN_PRO_CUS_CustomizationID }); } ORM_CMN_PRO_CUS_Customization.Query.SoftDelete(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { Product_RefID = Parameter.ProductID }); } #endregion returnValue.Result = product.CMN_PRO_ProductID; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_MC_SM_1132 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here //save new medication if (Parameter.MedicationID == Guid.Empty) { var hecProducts = new ORM_HEC_Product(); hecProducts.IsDeleted = false; hecProducts.Tenant_RefID = securityTicket.TenantID; hecProducts.Creation_Timestamp = DateTime.Now; hecProducts.Modification_Timestamp = DateTime.Now; hecProducts.Ext_PRO_Product_RefID = Guid.NewGuid(); hecProducts.Save(Connection, Transaction); var DBLanguages = cls_Get_All_Languages.Invoke(Connection, Transaction, securityTicket).Result.ToList(); Dict ProductNameDict = new Dict(ORM_CMN_PRO_Product.TableName); for (int i = 0; i < DBLanguages.Count; i++) { ProductNameDict.AddEntry(DBLanguages[i].CMN_LanguageID, Parameter.Medication); } var products = new ORM_CMN_PRO_Product(); products.CMN_PRO_ProductID = hecProducts.Ext_PRO_Product_RefID; products.IsDeleted = false; products.Tenant_RefID = securityTicket.TenantID; products.Creation_Timestamp = DateTime.Now; products.Product_Name = ProductNameDict; products.IsProducable_Internally = Parameter.ProprietaryDrug; products.Product_Number = Parameter.PZNScheme; products.Save(Connection, Transaction); //dosage and unit!!! } else { //edit medication var medication = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, CMN_PRO_ProductID = Parameter.MedicationID }).SingleOrDefault(); if (medication != null) { var DBLanguages = cls_Get_All_Languages.Invoke(Connection, Transaction, securityTicket).Result.ToList(); Dict ProductNameDict = new Dict(ORM_CMN_PRO_Product.TableName); for (int i = 0; i < DBLanguages.Count; i++) { ProductNameDict.AddEntry(DBLanguages[i].CMN_LanguageID, Parameter.Medication); } medication.Modification_Timestamp = DateTime.Now; medication.Product_Name = ProductNameDict; medication.IsProducable_Internally = Parameter.ProprietaryDrug; medication.Product_Number = Parameter.PZNScheme; medication.Save(Connection, Transaction); } } return(returnValue); #endregion UserCode }
protected static FR_L3PR_IoUPBD_1614_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L3PR_IoUPBD_1614 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L3PR_IoUPBD_1614_Array(); var result = new List <L3PR_IoUPBD_1614>(); //Put your code here #region Get All Producers for Tenant var allProducers = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); #endregion #region Get Taxes For Default Country var taxesToImport = Parameter.Products.Select(i => i.VAT).Distinct(); var param = new P_L3TX_STfDCaRR_1119(); param.TaxRates = taxesToImport.ToArray(); var allTaxes = cls_Save_Taxes_for_DefaultCountry_and_ReturnResult.Invoke(Connection, Transaction, param, securityTicket).Result; #endregion foreach (var item in Parameter.Products) { bool alreadyExistingInDB = true; #region ORM_CMN_PRO_Product var productQuery = new ORM_CMN_PRO_Product.Query(); productQuery.ProductITL = item.ProductITL; productQuery.Tenant_RefID = securityTicket.TenantID; productQuery.IsDeleted = false; productQuery.IsProductAvailableForOrdering = true; var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, productQuery).FirstOrDefault(); if (product == null) { product = new ORM_CMN_PRO_Product(); product.CMN_PRO_ProductID = Guid.NewGuid(); product.ProductITL = item.ProductITL; product.PackageInfo_RefID = Guid.NewGuid(); product.Creation_Timestamp = DateTime.Now; product.Tenant_RefID = securityTicket.TenantID; alreadyExistingInDB = false; } product.Product_Name = item.Product_Name; product.Product_Description = item.Product_Description; product.Product_Number = item.Product_Number; product.IsProduct_Article = true; product.IsProductAvailableForOrdering = true; #region Save Producer var producerBPT = allProducers.Where(i => i.DisplayName == item.Producer).FirstOrDefault(); if (producerBPT == default(ORM_CMN_BPT_BusinessParticipant)) { producerBPT = new ORM_CMN_BPT_BusinessParticipant(); producerBPT.CMN_BPT_BusinessParticipantID = Guid.NewGuid(); producerBPT.DisplayName = item.Producer; producerBPT.IsCompany = true; producerBPT.Tenant_RefID = securityTicket.TenantID; producerBPT.Creation_Timestamp = DateTime.Now; producerBPT.Save(Connection, Transaction); } #endregion product.ProducingBusinessParticipant_RefID = producerBPT.CMN_BPT_BusinessParticipantID; product.Save(Connection, Transaction); #endregion #region Unit //Unit could be used for multiple products, there is no sense to edit unit //If there is need to change unit, we should find unit with that iso code and change reference var unitsQuery = new ORM_CMN_Unit.Query(); unitsQuery.Tenant_RefID = securityTicket.TenantID; unitsQuery.ISOCode = item.MeasuredInUnit_ISO_um_ums; unitsQuery.IsDeleted = false; var measuredInUnit = ORM_CMN_Unit.Query.Search(Connection, Transaction, unitsQuery).FirstOrDefault(); if (measuredInUnit == null) { measuredInUnit = new ORM_CMN_Unit(); measuredInUnit.Tenant_RefID = securityTicket.TenantID; measuredInUnit.Creation_Timestamp = DateTime.Now; measuredInUnit.ISOCode = item.MeasuredInUnit_ISO_um_ums; measuredInUnit.CMN_UnitID = Guid.NewGuid(); measuredInUnit.Save(Connection, Transaction); } #endregion #region PackageInfo var packageInfo = new ORM_CMN_PRO_PAC_PackageInfo(); packageInfo.Load(Connection, Transaction, product.PackageInfo_RefID); if (packageInfo.CMN_PRO_PAC_PackageInfoID == Guid.Empty) { packageInfo.CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID; packageInfo.Creation_Timestamp = DateTime.Now; packageInfo.Tenant_RefID = securityTicket.TenantID; } packageInfo.PackageContent_DisplayLabel = item.Amount; packageInfo.PackageContent_Amount = PackageAmountUtils.GetPackageAmount(item.Amount); packageInfo.PackageContent_MeasuredInUnit_RefID = measuredInUnit.CMN_UnitID; packageInfo.Save(Connection, Transaction); #endregion #region VAT var salesTax = ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query() { Product_RefID = product.CMN_PRO_ProductID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).FirstOrDefault(); if (salesTax == null) { salesTax = new ORM_CMN_PRO_Product_SalesTaxAssignmnet(); salesTax.CMN_PRO_Product_SalesTaxAssignmnetID = Guid.NewGuid(); salesTax.Product_RefID = product.CMN_PRO_ProductID; salesTax.Creation_Timestamp = DateTime.Now; salesTax.Tenant_RefID = securityTicket.TenantID; } salesTax.ApplicableSalesTax_RefID = allTaxes.Where(i => i.TaxRate == item.VAT).Select(j => j.TaxID).FirstOrDefault(); salesTax.Save(Connection, Transaction); #endregion result.Add(new L3PR_IoUPBD_1614() { ProductITL = product.ProductITL, ProductID = product.CMN_PRO_ProductID, IsAlreadyExisted = alreadyExistingInDB }); } returnValue.Result = result.ToArray(); return(returnValue); }
protected static FR_L5PR_GPCaCV_1310 Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_GPCaCV_1310 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_L5PR_GPCaCV_1310(); returnValue.Result = new L5PR_GPCaCV_1310(); ORM_CMN_PRO_Product product; List <ORM_CMN_PRO_CUS_Customization> customizations = new List <ORM_CMN_PRO_CUS_Customization>(); List <ORM_CMN_PRO_CUS_Customization_Variant> customizationVariants = new List <ORM_CMN_PRO_CUS_Customization_Variant>(); #region Check if product is customizable product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, CMN_PRO_ProductID = Parameter.ProductId, //IsCustomizable = true }).FirstOrDefault(); if (product == null) { returnValue.Status = FR_Status.Error_Internal; returnValue.ErrorMessage = String.Format("Product with ID = {0} is not customizable or does not exist in database!", Parameter.ProductId.ToString()); return(returnValue); } #endregion ORM_CMN_PRO_ASS_AssortmentProduct assortmentProduct; #region Product is not part of an assortment // If product is not part of any assortment product, // then it is local product so take all customizations and customization variants for that product and return that as result. assortmentProduct = ORM_CMN_PRO_ASS_AssortmentProduct.Query.Search(Connection, Transaction, new ORM_CMN_PRO_ASS_AssortmentProduct.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Ext_CMN_PRO_Product_RefID = product.CMN_PRO_ProductID }).FirstOrDefault(); if (assortmentProduct == null) { #region Retrieve all customizations and values for product customizations = ORM_CMN_PRO_CUS_Customization.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Product_RefID = product.CMN_PRO_ProductID }); foreach (var customization in customizations) { List <ORM_CMN_PRO_CUS_Customization_Variant> variants = ORM_CMN_PRO_CUS_Customization_Variant.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Customization_RefID = customization.CMN_PRO_CUS_CustomizationID }); customizationVariants.AddRange(variants); } #endregion returnValue.Result.Customizations = customizations.ToArray(); returnValue.Result.CustomizationVariants = customizationVariants.ToArray(); return(returnValue); } #endregion #region Product is part of an assortment // Find all assortment vendor products that are bound to it List <ORM_CMN_PRO_ASS_AssortmentProduct_VendorProduct> assortmentProductVendorProducts = ORM_CMN_PRO_ASS_AssortmentProduct_VendorProduct.Query.Search(Connection, Transaction, new ORM_CMN_PRO_ASS_AssortmentProduct_VendorProduct.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, CMN_PRO_ASS_AssortmentProduct_RefID = assortmentProduct.CMN_PRO_ASS_AssortmentProductID }); // Check if there is customization for each asortment product vendor product int numberOfBoundProductsThatHaveCustomizations = 0; List <Guid> boundProductIds = new List <Guid>(); foreach (var assortmentProductVendorProduct in assortmentProductVendorProducts) { ORM_CMN_PRO_Product vendorProduct = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, CMN_PRO_ProductID = assortmentProductVendorProduct.CMN_PRO_Product_RefID, IsCustomizable = true }).FirstOrDefault(); if (vendorProduct == null) { continue; } bool hasCustomizations = ORM_CMN_PRO_CUS_Customization.Query.Exists(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Product_RefID = vendorProduct.CMN_PRO_ProductID }); if (hasCustomizations) { numberOfBoundProductsThatHaveCustomizations++; boundProductIds.Add(vendorProduct.CMN_PRO_ProductID); } } if (numberOfBoundProductsThatHaveCustomizations == 0) { // Nothing! } else if (numberOfBoundProductsThatHaveCustomizations == 1) { #region Retrieve all customizations and values for product customizations = ORM_CMN_PRO_CUS_Customization.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Product_RefID = boundProductIds[0] }); foreach (var customization in customizations) { List <ORM_CMN_PRO_CUS_Customization_Variant> variants = ORM_CMN_PRO_CUS_Customization_Variant.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Customization_RefID = customization.CMN_PRO_CUS_CustomizationID }); customizationVariants.AddRange(variants); } #endregion } else { #region More then one product that is bound to assortment product has variants ORM_CMN_PRO_ASS_AssortmentVariant assortmentProductVariant = ORM_CMN_PRO_ASS_AssortmentVariant.Query.Search(Connection, Transaction, new ORM_CMN_PRO_ASS_AssortmentVariant.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Ext_CMN_PRO_Product_Variant_RefID = Parameter.ProductVariantId }).FirstOrDefault(); if (assortmentProductVariant != null) { List <ORM_CMN_PRO_ASS_AssortmentVariant_VendorVariant> assortmentVariantVendorVariants = ORM_CMN_PRO_ASS_AssortmentVariant_VendorVariant.Query.Search(Connection, Transaction, new ORM_CMN_PRO_ASS_AssortmentVariant_VendorVariant.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, CMN_PRO_ASS_AssortmentVariant_RefID = assortmentProductVariant.CMN_PRO_ASS_AssortmentVariantID }); ORM_CMN_PRO_ASS_AssortmentVariant_VendorVariant defaultAssortmentVariantVendorVariant = assortmentVariantVendorVariants.FirstOrDefault(x => x.IsDefaultVendorVariant == true); if (defaultAssortmentVariantVendorVariant == null) { defaultAssortmentVariantVendorVariant = assortmentVariantVendorVariants.OrderBy(x => x.OrderSequence).FirstOrDefault(); } if (defaultAssortmentVariantVendorVariant != null) { ORM_CMN_PRO_Product_Variant productVariant = ORM_CMN_PRO_Product_Variant.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product_Variant.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, CMN_PRO_Product_VariantID = defaultAssortmentVariantVendorVariant.CMN_PRO_Product_Variant_RefID }).FirstOrDefault(); if (productVariant != null) { product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, CMN_PRO_ProductID = productVariant.CMN_PRO_Product_RefID }).FirstOrDefault(); if (product != null) { customizations = ORM_CMN_PRO_CUS_Customization.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Product_RefID = product.CMN_PRO_ProductID }); foreach (var customization in customizations) { List <ORM_CMN_PRO_CUS_Customization_Variant> variants = ORM_CMN_PRO_CUS_Customization_Variant.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Customization_RefID = customization.CMN_PRO_CUS_CustomizationID }); customizationVariants.AddRange(variants); } } } } } #endregion } #endregion returnValue.Result.Customizations = customizations.ToArray(); returnValue.Result.CustomizationVariants = customizationVariants.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L6SH_GMDfPH_0500_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L6SH_GMDfPH_0500 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6SH_GMDfPH_0500_Array(); //Put your code here var supplier = cls_Get_Suppliers_for_PrivateSubscribedCatalogs.Invoke(Connection, Transaction, securityTicket).Result.FirstOrDefault(); #region Get All OrganizationalUnits //TODO: This is quick and dirty solution, remove it as soon as SLorenz remove MaveFile var organizationalUnits = ORM_CMN_BPT_CTM_OrganizationalUnit.Query.Search(Connection, Transaction, new ORM_CMN_BPT_CTM_OrganizationalUnit.Query() { Tenant_RefID = Guid.Parse(supplier.TenantITL) }); #endregion var paramShoppingProducts = new P_L5PO_GPPaSCIfH_1750(); paramShoppingProducts.ProcurementOrderHeaderID = Parameter.ProcurementHeaderID; var shoppingCartProcurementPositions = cls_Get_ProcurementPositions_and_ShoppingCartInfo_for_HeaderID.Invoke(Connection, Transaction, paramShoppingProducts, securityTicket) .Result.OrderBy(x => x.ORD_PRC_ShoppingCart_RefID); var maveResults = new List <L6SH_GMDfPH_0500>(); var procurementHeader = new ORM_ORD_PRC_ProcurementOrder_Header(); procurementHeader.Load(Connection, Transaction, Parameter.ProcurementHeaderID); var previousShoppingCartID = Guid.Empty; var currentShoppingCart = new ORM_ORD_PRC_ShoppingCart(); var accountsForTenant = cls_Get_AllDisplayNames_of_Accounts_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result; foreach (var shoppingCartProcurementPosition in shoppingCartProcurementPositions) { var maveResult = new L6SH_GMDfPH_0500(); var currentProduct = new ORM_CMN_PRO_Product(); currentProduct.Load(Connection, Transaction, shoppingCartProcurementPosition.CMN_PRO_Product_RefID); if (currentShoppingCart.ORD_PRC_ShoppingCartID == Guid.Empty || shoppingCartProcurementPosition.ORD_PRC_ShoppingCart_RefID != previousShoppingCartID) { currentShoppingCart.Load(Connection, Transaction, shoppingCartProcurementPosition.ORD_PRC_ShoppingCart_RefID); } var userThatApproved = accountsForTenant.FirstOrDefault(x => x.USR_AccountID == currentShoppingCart.CreatedBy_Account_RefID); #region Add ShoppingCart Position //TODO: This is quick and dirty solution, remove it as soon as SLorenz remove MaveFile var organizationalUnit = organizationalUnits.Where(i => i.CustomerTenant_OfficeITL == shoppingCartProcurementPosition.CMN_STR_OfficeID.ToString()).Single(); maveResult.CustomerNumber = supplier.ExternalSupplierProvidedIdentifier; maveResult.OrgUnitNumber = organizationalUnit.InternalOrganizationalUnitNumber; maveResult.OrderDateTime = procurementHeader.ProcurementOrder_Date; maveResult.PriceOfAllPositionsOverAll = procurementHeader.TotalValue_BeforeTax; maveResult.PZNorTXT = currentProduct.Product_Number; maveResult.UserThatApproved = userThatApproved.DisplayName; maveResult.OrderQuantity = Convert.ToInt32(shoppingCartProcurementPosition.Position_Quantity); maveResult.PositionPricePerUnit = shoppingCartProcurementPosition.Position_ValuePerUnit; maveResult.Comment = string.Empty; maveResult.IncreasingNumber = "108384"; maveResults.Add(maveResult); #endregion #region Add ShoppingCart Comment // get all comments for current shopping chart and do that just once! if (currentShoppingCart.ORD_PRC_ShoppingCartID != previousShoppingCartID) { previousShoppingCartID = currentShoppingCart.ORD_PRC_ShoppingCartID; var shoppingNoteParameter = new P_L5AWSAR_GSCNfSC_1454(); shoppingNoteParameter.ShoppingCartID = currentShoppingCart.ORD_PRC_ShoppingCartID; var shoppingCartNotes = cls_Get_ShoppingCart_Notes_for_ShoppingCartID.Invoke(Connection, Transaction, shoppingNoteParameter, securityTicket).Result; foreach (var note in shoppingCartNotes) { if (!note.IsNoteForProcurementOrder) { continue; } maveResult = new L6SH_GMDfPH_0500(); maveResult.CustomerNumber = supplier.ExternalSupplierProvidedIdentifier; maveResult.OrgUnitNumber = organizationalUnit.InternalOrganizationalUnitNumber; maveResult.OrderDateTime = procurementHeader.ProcurementOrder_Date; maveResult.PriceOfAllPositionsOverAll = procurementHeader.TotalValue_BeforeTax; maveResult.PZNorTXT = "TEXT"; maveResult.UserThatApproved = userThatApproved.DisplayName; maveResult.OrderQuantity = 0; maveResult.PositionPricePerUnit = 0; maveResult.Comment = note.Memo_Text; maveResult.IncreasingNumber = "108384"; maveResults.Add(maveResult); } } #endregion } returnValue.Result = maveResults.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5CA_PNCV_1603 Execute(DbConnection Connection, DbTransaction Transaction, P_L5CA_PNCV_1603 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5CA_PNCV_1603(); returnValue.Result = new L5CA_PNCV_1603(); var account = new ORM_USR_Account(); account.Load(Connection, Transaction, securityTicket.AccountID); #region Update active catalog revision ORM_CMN_PRO_Catalog_Revision rev = new ORM_CMN_PRO_Catalog_Revision(); rev.Load(Connection, Transaction, Parameter.CMN_PRO_Catalog_RevisionID); rev.Valid_From = Parameter.Valid_From; rev.Valid_Through = Parameter.Valid_Through; rev.Default_PricelistRelease_RefID = Parameter.Default_PricelistRelease_RefID; rev.PublishedBy_BusinessParticipant_RefID = account.BusinessParticipant_RefID; rev.PublishedOn_Date = DateTime.Now; rev.Save(Connection, Transaction); #endregion #region Create new catalog revision ORM_CMN_PRO_Catalog_Revision newRev = new ORM_CMN_PRO_Catalog_Revision(); newRev.CMN_PRO_Catalog_RevisionID = Guid.NewGuid(); newRev.CMN_PRO_Catalog_RefID = rev.CMN_PRO_Catalog_RefID; newRev.Tenant_RefID = securityTicket.TenantID; newRev.Creation_Timestamp = DateTime.Now; newRev.CatalogRevision_Description = "Revision for Catalog"; newRev.CatalogRevision_Name = "New Catalog Revision"; newRev.IsDeleted = false; newRev.RevisionNumber = rev.RevisionNumber + 1; newRev.Save(Connection, Transaction); #endregion #region Products var oldProducts = ORM_CMN_PRO_Catalog_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Catalog_Product.Query() { CMN_PRO_Catalog_Revision_RefID = rev.CMN_PRO_Catalog_RevisionID, IsDeleted = false }); if (oldProducts.Count == 0) { returnValue.Result.Status_Code = -1; // -1 no products in revision returnValue.Result.Status_Message = "no products in revision"; return(returnValue); } //oldProductID - newProductID Dictionary <Guid, Guid> productsMapping = new Dictionary <Guid, Guid>(); foreach (var item in oldProducts) { ORM_CMN_SLS_Pricelist_Release plr = new ORM_CMN_SLS_Pricelist_Release(); plr.Load(Connection, Transaction, Parameter.Default_PricelistRelease_RefID); var pricelistPriceQry = new ORM_CMN_SLS_Price.Query() { CMN_PRO_Product_RefID = item.CMN_PRO_Product_RefID, PricelistRelease_RefID = plr.CMN_SLS_Pricelist_ReleaseID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }; var prices = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, pricelistPriceQry); if (prices.Count == 0) { ORM_CMN_PRO_Product pr = new ORM_CMN_PRO_Product(); pr.Load(Connection, Transaction, item.CMN_PRO_Product_RefID); returnValue.Result.Status_Code = -2; // -2 => pricelist does not have price for product returnValue.Result.Status_Message = pr.Product_Number; return(returnValue); } var newProduct = new ORM_CMN_PRO_Catalog_Product() { CMN_PRO_Catalog_ProductID = Guid.NewGuid(), CMN_PRO_Product_Variant_RefID = item.CMN_PRO_Product_Variant_RefID, Creation_Timestamp = DateTime.Now, Tenant_RefID = item.Tenant_RefID, CMN_PRO_Catalog_Revision_RefID = newRev.CMN_PRO_Catalog_RevisionID, CMN_PRO_Product_RefID = item.CMN_PRO_Product_RefID, }; newProduct.Save(Connection, Transaction); productsMapping.Add(item.CMN_PRO_Catalog_ProductID, newProduct.CMN_PRO_Catalog_ProductID); } #endregion #region ProductGroups var oldGroups = ORM_CMN_PRO_Catalog_ProductGroup.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Catalog_ProductGroup.Query() { Catalog_Revision_RefID = rev.CMN_PRO_Catalog_RevisionID, IsDeleted = false }); //oldGroupID - newGroupID Dictionary <Guid, Guid> groupsMapping = new Dictionary <Guid, Guid>(); groupsMapping.Add(Guid.Empty, Guid.Empty); foreach (var item in oldGroups) { groupsMapping.Add(item.CMN_PRO_Catalog_ProductGroupID, Guid.NewGuid()); } foreach (var item in oldGroups) { var newGroup = new ORM_CMN_PRO_Catalog_ProductGroup() { CMN_PRO_Catalog_ProductGroupID = groupsMapping[item.CMN_PRO_Catalog_ProductGroupID], Catalog_Revision_RefID = newRev.CMN_PRO_Catalog_RevisionID, CatalogProductGroup_Name = item.CatalogProductGroup_Name, CatalogProductGroup_Parent_RefID = groupsMapping[item.CatalogProductGroup_Parent_RefID], Creation_Timestamp = DateTime.Now, Tenant_RefID = item.Tenant_RefID }; newGroup.Save(Connection, Transaction); var oldProductsInGroup = ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Catalog_Product_2_ProductGroup.Query() { CMN_PRO_Catalog_ProductGroup_RefID = item.CMN_PRO_Catalog_ProductGroupID, IsDeleted = false }); foreach (var product in oldProductsInGroup) { var newProduct = new ORM_CMN_PRO_Catalog_Product_2_ProductGroup() { AssignmentID = Guid.NewGuid(), CMN_PRO_Catalog_ProductGroup_RefID = groupsMapping[product.CMN_PRO_Catalog_ProductGroup_RefID], CMN_PRO_Catalog_Product_RefID = productsMapping[product.CMN_PRO_Catalog_Product_RefID], Creation_Timestamp = DateTime.Now, Tenant_RefID = item.Tenant_RefID }; newProduct.Save(Connection, Transaction); } } #endregion returnValue.Result.Status_Code = 1; returnValue.Result.Status_Message = "Success"; returnValue.Result.ID = newRev.CMN_PRO_Catalog_RevisionID; return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5PR_IPfC_1648 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var defaultLanguages = ORM_CMN_Language.Query.Search(Connection, Transaction, new ORM_CMN_Language.Query { IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); var productFromCatalog = Parameter.Product; ORM_CMN_PRO_SubscribedCatalog subscribedCatalog = new ORM_CMN_PRO_SubscribedCatalog(); var existingCatalog = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, new ORM_CMN_PRO_SubscribedCatalog.Query() { CatalogCodeITL = productFromCatalog.CatalogITL }); if (existingCatalog != null && existingCatalog.Count() > 0) { subscribedCatalog = existingCatalog.First(); } var supplierID = subscribedCatalog.PublishingSupplier_RefID; ORM_CMN_PRO_Product productToCreateUpdate = new ORM_CMN_PRO_Product(); productToCreateUpdate.CMN_PRO_ProductID = Guid.NewGuid(); ORM_CMN_PRO_Product.Query productDbQuery = new ORM_CMN_PRO_Product.Query(); productDbQuery.ProductITL = productFromCatalog.ProductITL; productDbQuery.Tenant_RefID = securityTicket.TenantID; productDbQuery.IsDeleted = false; var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, productDbQuery); if (product != null && product.Count > 0) { productToCreateUpdate = product.First(); ORM_CMN_PRO_Dimension.Query dimensionQuery = new ORM_CMN_PRO_Dimension.Query(); dimensionQuery.Product_RefID = productToCreateUpdate.CMN_PRO_ProductID; dimensionQuery.Tenant_RefID = securityTicket.TenantID; dimensionQuery.IsDeleted = false; var dimensions = ORM_CMN_PRO_Dimension.Query.Search(Connection, Transaction, dimensionQuery); foreach (var dimension in dimensions) { ORM_CMN_PRO_Dimension_Value.Query dimensionValuesQuery = new ORM_CMN_PRO_Dimension_Value.Query(); dimensionValuesQuery.Dimensions_RefID = dimension.CMN_PRO_DimensionID; dimensionValuesQuery.Tenant_RefID = securityTicket.TenantID; var dimensionValues = ORM_CMN_PRO_Dimension_Value.Query.Search(Connection, Transaction, dimensionValuesQuery); foreach (var dimensionValue in dimensionValues) { ORM_CMN_PRO_Variant_DimensionValue.Query dimensionValueVariantQuery = new ORM_CMN_PRO_Variant_DimensionValue.Query(); dimensionValueVariantQuery.DimensionValue_RefID = dimensionValue.CMN_PRO_Dimension_ValueID; ORM_CMN_PRO_Variant_DimensionValue.Query.SoftDelete(Connection, Transaction, dimensionValueVariantQuery); } ORM_CMN_PRO_Dimension_Value.Query.SoftDelete(Connection, Transaction, dimensionValuesQuery); } ORM_CMN_PRO_Dimension.Query.SoftDelete(Connection, Transaction, dimensionQuery); } productToCreateUpdate.IsImportedFromExternalCatalog = true; productToCreateUpdate.Product_Name = new Dict(ORM_CMN_PRO_Product.TableName); productToCreateUpdate.IsDeleted = false; productToCreateUpdate.ProductITL = productFromCatalog.ProductITL; productToCreateUpdate.Product_Description = new Dict(ORM_CMN_PRO_Product.TableName); productToCreateUpdate.Tenant_RefID = securityTicket.TenantID; productToCreateUpdate.Product_Number = productFromCatalog.Code; foreach (var lang in defaultLanguages) { productToCreateUpdate.Product_Name.AddEntry(lang.CMN_LanguageID, productFromCatalog.Name); productToCreateUpdate.Product_Description.AddEntry(lang.CMN_LanguageID, productFromCatalog.Description); } productToCreateUpdate.Save(Connection, Transaction); returnValue.Result = productToCreateUpdate.CMN_PRO_ProductID; foreach (var customizationToDelete in ORM_CMN_PRO_CUS_Customization.Query.Search(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { Product_RefID = productToCreateUpdate.CMN_PRO_ProductID })) { ORM_CMN_PRO_CUS_Customization.Query.SoftDelete(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization.Query() { CMN_PRO_CUS_CustomizationID = customizationToDelete.CMN_PRO_CUS_CustomizationID }); if (ORM_CMN_PRO_CUS_Customization_Variant.Query.Exists(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query() { Customization_RefID = customizationToDelete.CMN_PRO_CUS_CustomizationID })) { ORM_CMN_PRO_CUS_Customization_Variant.Query.SoftDelete(Connection, Transaction, new ORM_CMN_PRO_CUS_Customization_Variant.Query() { Customization_RefID = customizationToDelete.CMN_PRO_CUS_CustomizationID }); } } var customizationOrderSequence = 0; if (productFromCatalog.Customizations != null) { productToCreateUpdate.IsCustomizable = true; productToCreateUpdate.Save(Connection, Transaction); foreach (var customization in productFromCatalog.Customizations) { ORM_CMN_PRO_CUS_Customization customizationToSave = new ORM_CMN_PRO_CUS_Customization(); customizationToSave.CMN_PRO_CUS_CustomizationID = Guid.NewGuid(); customizationToSave.Customization_Description = new Dict(ORM_CMN_PRO_CUS_Customization.TableName); customizationToSave.Customization_Name = new Dict(ORM_CMN_PRO_CUS_Customization.TableName); customizationToSave.IsDeleted = false; customizationToSave.Product_RefID = productToCreateUpdate.CMN_PRO_ProductID; customizationToSave.Tenant_RefID = securityTicket.TenantID; customizationToSave.OrderSequence = customizationOrderSequence; customizationOrderSequence++; foreach (var lang in defaultLanguages) { customizationToSave.Customization_Description.UpdateEntry(lang.CMN_LanguageID, customization.Description); customizationToSave.Customization_Name.UpdateEntry(lang.CMN_LanguageID, customization.Name); } customizationToSave.Save(Connection, Transaction); var customizationVariantOrderSequence = 0; foreach (var customizationVariant in customization.CustomizationVariants) { ORM_CMN_PRO_CUS_Customization_Variant customizationVariantsToSave = new ORM_CMN_PRO_CUS_Customization_Variant(); customizationVariantsToSave.CMN_PRO_CUS_Customization_VariantID = Guid.NewGuid(); customizationVariantsToSave.Customization_RefID = customizationToSave.CMN_PRO_CUS_CustomizationID; customizationVariantsToSave.CustomizationVariant_Name = new Dict(ORM_CMN_PRO_CUS_Customization_Variant.TableName); customizationVariantsToSave.OrderSequence = customizationVariantOrderSequence; customizationVariantOrderSequence++; customizationVariantsToSave.IsDeleted = false; customizationVariantsToSave.Tenant_RefID = securityTicket.TenantID; foreach (var lang in defaultLanguages) { customizationVariantsToSave.CustomizationVariant_Name.UpdateEntry(lang.CMN_LanguageID, customizationVariant.Name); } customizationVariantsToSave.Save(Connection, Transaction); } } } ORM_CMN_PRO_Product_Variant.Query productVariantQuery = new ORM_CMN_PRO_Product_Variant.Query(); productVariantQuery.CMN_PRO_Product_RefID = productToCreateUpdate.CMN_PRO_ProductID; productVariantQuery.Tenant_RefID = securityTicket.TenantID; productVariantQuery.IsDeleted = false; var productVariantsDb = ORM_CMN_PRO_Product_Variant.Query.Search(Connection, Transaction, productVariantQuery); List <ORM_CMN_PRO_Dimension> dimensionsToCreate = new List <ORM_CMN_PRO_Dimension>(); List <ORM_CMN_PRO_Dimension_Value> dimensionValuesToCreate = new List <ORM_CMN_PRO_Dimension_Value>(); foreach (var productVariantFromCatalog in productFromCatalog.Variants) { ORM_CMN_PRO_Product_Variant.Query variantToCreateQuery = new ORM_CMN_PRO_Product_Variant.Query(); variantToCreateQuery.ProductVariantITL = productVariantFromCatalog.ITL; variantToCreateQuery.Tenant_RefID = securityTicket.TenantID; var isVariantSaved = ORM_CMN_PRO_Product_Variant.Query.Exists(Connection, Transaction, variantToCreateQuery); ORM_CMN_PRO_Product_Variant productVariantToCreate = new ORM_CMN_PRO_Product_Variant(); if (isVariantSaved) { productVariantToCreate.Load(Connection, Transaction, ORM_CMN_PRO_Product_Variant.Query.Search(Connection, Transaction, variantToCreateQuery).FirstOrDefault().CMN_PRO_Product_VariantID); } else { productVariantToCreate.CMN_PRO_Product_VariantID = Guid.NewGuid(); } productVariantToCreate.IsStandardProductVariant = productVariantFromCatalog.DefaultVariant; productVariantToCreate.CMN_PRO_Product_RefID = productToCreateUpdate.CMN_PRO_ProductID; productVariantToCreate.IsDeleted = false; productVariantToCreate.Tenant_RefID = securityTicket.TenantID; productVariantToCreate.IsImportedFromExternalCatalog = true; productVariantToCreate.ProductVariantITL = productVariantFromCatalog.ITL; productVariantToCreate.VariantName = new Dict(ORM_CMN_PRO_Product_Variant.TableName); foreach (var lang in defaultLanguages) { productVariantToCreate.VariantName.UpdateEntry(lang.CMN_LanguageID, productVariantFromCatalog.Name); } productVariantToCreate.Save(Connection, Transaction); ORM_CMN_Price procurementPrice = new ORM_CMN_Price(); procurementPrice.CMN_PriceID = Guid.NewGuid(); procurementPrice.IsDeleted = false; procurementPrice.Tenant_RefID = securityTicket.TenantID; procurementPrice.Save(Connection, Transaction); foreach (var price in productVariantFromCatalog.PriceGrades) { ORM_CMN_Price_Value priceValues = new ORM_CMN_Price_Value(); priceValues.Price_RefID = procurementPrice.CMN_PriceID; var procurementPriceAmount = price.SalesPrice ?? 0; priceValues.PriceValue_Amount = (double)procurementPriceAmount; priceValues.PriceValue_Currency_RefID = subscribedCatalog.SubscribedCatalog_Currency_RefID; priceValues.IsDeleted = false; priceValues.Tenant_RefID = securityTicket.TenantID; priceValues.Save(Connection, Transaction); } ORM_CMN_PRO_Product_Supplier productSupplier = new ORM_CMN_PRO_Product_Supplier(); productSupplier.CMN_BPT_Supplier_RefID = supplierID; productSupplier.CMN_PRO_Product_RefID = productVariantToCreate.CMN_PRO_Product_RefID; productSupplier.CMN_PRO_Product_Variant_RefID = productVariantToCreate.CMN_PRO_Product_VariantID; productSupplier.ProcurementPrice_RefID = procurementPrice.CMN_PriceID; productSupplier.Tenant_RefID = securityTicket.TenantID; productSupplier.SupplierPriority = 0; productSupplier.IsDeleted = false; productSupplier.Save(Connection, Transaction); foreach (var dimension in productVariantFromCatalog.Dimensions) { if (dimensionsToCreate.Where(x => x.DimensionName.Contents.First().Content == dimension.Key).Count() == 0) { ORM_CMN_PRO_Dimension dimensionToCreate = new ORM_CMN_PRO_Dimension(); dimensionToCreate.DimensionName = new Dict(ORM_CMN_PRO_Dimension.TableName); foreach (var lang in defaultLanguages) { dimensionToCreate.DimensionName.AddEntry(lang.CMN_LanguageID, dimension.Key); } dimensionToCreate.OrderSequence = dimensionsToCreate.Count() + 1; dimensionToCreate.CMN_PRO_DimensionID = Guid.NewGuid(); dimensionToCreate.Product_RefID = productVariantToCreate.CMN_PRO_Product_RefID; dimensionToCreate.IsDeleted = false; dimensionToCreate.Tenant_RefID = securityTicket.TenantID; dimensionsToCreate.Add(dimensionToCreate); } var dimensionValue = dimensionValuesToCreate.Where(x => x.DimensionValue_Text.Contents.First().Content == dimension.Value); ORM_CMN_PRO_Dimension_Value dimensionValueToCreate = new ORM_CMN_PRO_Dimension_Value(); if (dimensionValue != null && dimensionValue.Count() > 0) { dimensionValueToCreate = dimensionValue.First(); } else { dimensionValueToCreate.DimensionValue_Text = new Dict(ORM_CMN_PRO_Dimension_Value.TableName); foreach (var lang in defaultLanguages) { dimensionValueToCreate.DimensionValue_Text.AddEntry(lang.CMN_LanguageID, dimension.Value); } dimensionValueToCreate.Dimensions_RefID = dimensionsToCreate.First(x => x.DimensionName.Contents.First().Content == dimension.Key).CMN_PRO_DimensionID; dimensionValueToCreate.CMN_PRO_Dimension_ValueID = Guid.NewGuid(); dimensionValueToCreate.OrderSequence = dimensionValuesToCreate.Count() + 1; dimensionValueToCreate.IsDeleted = false; dimensionValueToCreate.Tenant_RefID = securityTicket.TenantID; dimensionValuesToCreate.Add(dimensionValueToCreate); } ORM_CMN_PRO_Variant_DimensionValue variantDimensionValueToCreate = new ORM_CMN_PRO_Variant_DimensionValue(); variantDimensionValueToCreate.CMN_PRO_Variant_DimensionValueID = Guid.NewGuid(); variantDimensionValueToCreate.DimensionValue_RefID = dimensionValueToCreate.CMN_PRO_Dimension_ValueID; variantDimensionValueToCreate.ProductVariant_RefID = productVariantToCreate.CMN_PRO_Product_VariantID; variantDimensionValueToCreate.IsDeleted = false; variantDimensionValueToCreate.Tenant_RefID = securityTicket.TenantID; variantDimensionValueToCreate.Save(Connection, Transaction); } } foreach (var dimensionToCreate in dimensionsToCreate) { dimensionToCreate.Save(Connection, Transaction); } foreach (var dimensionValueToCreate in dimensionValuesToCreate) { dimensionValueToCreate.Save(Connection, Transaction); } return(returnValue); #endregion UserCode }
protected static FR_L3AR_IoUPBD_1631_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L3AR_IoUPBD_1631 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3AR_IoUPBD_1631_Array(); var result = new List <L3AR_IoUPBD_1631>(); #region Get All Producers for Tenant var allProducers = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); #endregion #region Get Taxes For Default Country var taxesToImport = Parameter.Products.Select(i => i.VAT).Distinct(); var param = new P_L3TX_STfDCaRR_1119(); param.TaxRates = taxesToImport.ToArray(); var allTaxes = cls_Save_Taxes_for_DefaultCountry_and_ReturnResult.Invoke(Connection, Transaction, param, securityTicket).Result; #endregion #region DosageForms var dosageQuery = new ORM_HEC_Product_DosageForm.Query(); dosageQuery.Tenant_RefID = securityTicket.TenantID; dosageQuery.IsDeleted = false; var allDosages = ORM_HEC_Product_DosageForm.Query.Search(Connection, Transaction, dosageQuery); #endregion foreach (var item in Parameter.Products) { bool alreadyExistingInDB = true; #region ORM_CMN_PRO_Product var productQuery = new ORM_CMN_PRO_Product.Query(); productQuery.ProductITL = item.ProductITL; productQuery.Tenant_RefID = securityTicket.TenantID; productQuery.IsDeleted = false; productQuery.IsProductAvailableForOrdering = true; var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, productQuery).FirstOrDefault(); if (product == null) { product = new ORM_CMN_PRO_Product(); product.CMN_PRO_ProductID = Guid.NewGuid(); product.ProductITL = item.ProductITL; product.PackageInfo_RefID = Guid.NewGuid(); product.Creation_Timestamp = DateTime.Now; product.Tenant_RefID = securityTicket.TenantID; alreadyExistingInDB = false; } product.Product_Name = item.Product_Name; product.Product_Description = item.Product_Description; product.Product_Number = item.Product_Number; product.IsProduct_Article = true; product.IsProductAvailableForOrdering = true; product.DefaultExpirationPeriod_in_sec = item.DefaultExpirationPeriod_in_sec; if (item.DefaultStorageTemperature_min_in_kelvin != 0) { product.DefaultStorageTemperature_min_in_kelvin = (float)Math.Round(item.DefaultStorageTemperature_min_in_kelvin, 2); } if (item.DefaultStorageTemperature_max_in_kelvin != 0) { product.DefaultStorageTemperature_max_in_kelvin = (float)Math.Round(item.DefaultStorageTemperature_max_in_kelvin, 2); } product.IsStorage_CoolingRequired = item.IsStorage_CoolingRequired; var xmlModel = new ProductAdditionalInfoXML() { IsPharmacyOnlyDistribution = item.IsPharmacyOnlyDistribution }; product.ProductAdditionalInfoXML = xmlModel.ToPayload(); product.IsStorage_ExpiryDateMandatory = (item.DefaultExpirationPeriod_in_sec != 0); product.Save(Connection, Transaction); #endregion #region Save Producer var producerBPT = allProducers.Where(i => i.DisplayName == item.Producer).FirstOrDefault(); if (producerBPT == default(ORM_CMN_BPT_BusinessParticipant)) { producerBPT = new ORM_CMN_BPT_BusinessParticipant(); producerBPT.CMN_BPT_BusinessParticipantID = Guid.NewGuid(); producerBPT.DisplayName = item.Producer; producerBPT.IsCompany = true; producerBPT.Tenant_RefID = securityTicket.TenantID; producerBPT.Creation_Timestamp = DateTime.Now; producerBPT.Save(Connection, Transaction); } product.ProducingBusinessParticipant_RefID = producerBPT.CMN_BPT_BusinessParticipantID; product.Save(Connection, Transaction); #endregion #region Product Code (EAN) var product2Code = ORM_CMN_PRO_Product_2_ProductCode.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product_2_ProductCode.Query() { CMN_PRO_Product_RefID = product.CMN_PRO_ProductID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (product2Code == null) { var eanID = DMProductCodeTypes.Get_ProductCodeType_ByGlobalMatchingID(Connection, Transaction, EProductCodeType.EAN, securityTicket); var productCode = new ORM_CMN_PRO_ProductCode(); productCode.CMN_PRO_ProductCodeID = Guid.NewGuid(); productCode.ProductCode_Type_RefID = eanID; productCode.ProductCode_Value = String.Empty; productCode.Creation_Timestamp = DateTime.Now; productCode.Tenant_RefID = securityTicket.TenantID; productCode.Save(Connection, Transaction); product2Code = new ORM_CMN_PRO_Product_2_ProductCode(); product2Code.AssignmentID = Guid.NewGuid(); product2Code.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product2Code.CMN_PRO_ProductCode_RefID = productCode.CMN_PRO_ProductCodeID; product2Code.Creation_Timestamp = DateTime.Now; product2Code.Tenant_RefID = securityTicket.TenantID; product2Code.Save(Connection, Transaction); } else { var productCode = new ORM_CMN_PRO_ProductCode(); productCode.Load(Connection, Transaction, product2Code.CMN_PRO_ProductCode_RefID); productCode.ProductCode_Value = String.Empty; productCode.Save(Connection, Transaction); } #endregion #region Unit //Unit could be used for multiple products, there is no sense to edit unit //If there is need to change unit, we should find unit with that iso code and change reference var unitsQuery = new ORM_CMN_Unit.Query(); unitsQuery.Tenant_RefID = securityTicket.TenantID; unitsQuery.ISOCode = item.MeasuredInUnit_ISO_um_ums; unitsQuery.IsDeleted = false; var measuredInUnit = ORM_CMN_Unit.Query.Search(Connection, Transaction, unitsQuery).FirstOrDefault(); if (measuredInUnit == null) { measuredInUnit = new ORM_CMN_Unit(); measuredInUnit.Tenant_RefID = securityTicket.TenantID; measuredInUnit.Creation_Timestamp = DateTime.Now; measuredInUnit.ISOCode = item.MeasuredInUnit_ISO_um_ums; measuredInUnit.CMN_UnitID = Guid.NewGuid(); measuredInUnit.Save(Connection, Transaction); } #endregion #region PackageInfo var packageInfo = new ORM_CMN_PRO_PAC_PackageInfo(); packageInfo.Load(Connection, Transaction, product.PackageInfo_RefID); if (packageInfo.CMN_PRO_PAC_PackageInfoID == Guid.Empty) { packageInfo.CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID; packageInfo.Creation_Timestamp = DateTime.Now; packageInfo.Tenant_RefID = securityTicket.TenantID; } packageInfo.PackageContent_DisplayLabel = item.Amount; packageInfo.PackageContent_Amount = PackageAmountUtils.GetPackageAmount(item.Amount); packageInfo.PackageContent_MeasuredInUnit_RefID = measuredInUnit.CMN_UnitID; packageInfo.Save(Connection, Transaction); #endregion #region VAT var salesTax = ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query() { Product_RefID = product.CMN_PRO_ProductID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (salesTax == null) { salesTax = new ORM_CMN_PRO_Product_SalesTaxAssignmnet(); salesTax.CMN_PRO_Product_SalesTaxAssignmnetID = Guid.NewGuid(); salesTax.Product_RefID = product.CMN_PRO_ProductID; salesTax.Creation_Timestamp = DateTime.Now; salesTax.Tenant_RefID = securityTicket.TenantID; } salesTax.ApplicableSalesTax_RefID = allTaxes.Where(i => i.TaxRate == item.VAT).Select(j => j.TaxID).FirstOrDefault(); salesTax.Save(Connection, Transaction); #endregion #region DosageForms //DosageForms could be used for multiple products, there is no sense to edit unit //If there is need to change unit, we should find unit with that GlobalPropertyMatchingID and change reference var dosage = allDosages.Where(i => i.GlobalPropertyMatchingID == item.Dosage).FirstOrDefault(); //if not create new if (dosage == null) { dosage = new ORM_HEC_Product_DosageForm(); dosage.HEC_Product_DosageFormID = Guid.NewGuid(); dosage.Tenant_RefID = securityTicket.TenantID; dosage.Creation_Timestamp = DateTime.Now; dosage.GlobalPropertyMatchingID = item.Dosage; dosage.Save(Connection, Transaction); } #endregion #region HecProduct var hec_product = ORM_HEC_Product.Query.Search(Connection, Transaction, new ORM_HEC_Product.Query() { Ext_PRO_Product_RefID = product.CMN_PRO_ProductID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (hec_product == null) { hec_product = new ORM_HEC_Product(); hec_product.HEC_ProductID = Guid.NewGuid(); hec_product.Creation_Timestamp = DateTime.Now; hec_product.Tenant_RefID = securityTicket.TenantID; } hec_product.Ext_PRO_Product_RefID = product.CMN_PRO_ProductID; hec_product.ProductDosageForm_RefID = dosage.HEC_Product_DosageFormID; hec_product.ProductDistributionStatus = item.DistributionStatus; hec_product.IsProduct_AddictiveDrug = item.IsProduct_AddictiveDrug; hec_product.Save(Connection, Transaction); #endregion var date = DateTime.Now; #region Save Active Components var componentsParam = new P_L3CO_SCfIPFC_1324(); componentsParam.HEC_ProductID = hec_product.HEC_ProductID; componentsParam.ActiveComponents = item.ActiveComponents; cls_Save_Componets_for_ImportedProductFromCatalog.Invoke(Connection, Transaction, componentsParam, securityTicket); #endregion result.Add(new L3AR_IoUPBD_1631() { ProductITL = product.ProductITL, ProductID = product.CMN_PRO_ProductID, IsAlreadyExisted = alreadyExistingInDB }); date = DateTime.Now; } returnValue.Result = result.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_SA_1614 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var languageQuery = new ORM_CMN_Language.Query(); languageQuery.Tenant_RefID = securityTicket.TenantID; languageQuery.IsDeleted = false; var languages = ORM_CMN_Language.Query.Search(Connection, Transaction, languageQuery); var product = new ORM_CMN_PRO_Product(); if (Parameter.ArticleID == Guid.Empty) { #region ORM_CMN_PRO_Product product = new ORM_CMN_PRO_Product(); product.CMN_PRO_ProductID = Guid.NewGuid(); product.ProductITL = Guid.NewGuid().ToString(); product.IsProduct_Article = true; product.IsProductAvailableForOrdering = true; product.IsImportedFromExternalCatalog = false; product.Product_Name = new Dict(ORM_CMN_PRO_Product.TableName); product.Product_Description = new Dict(ORM_CMN_PRO_Product.TableName); product.PackageInfo_RefID = Guid.NewGuid(); product.Creation_Timestamp = DateTime.Now; product.Tenant_RefID = securityTicket.TenantID; product.IsDeleted = Parameter.IsDeleted; #region Product picture if (Parameter.Image != null && Parameter.Image.Document_ID != Guid.Empty) { ORM_DOC_Structure_Header structureHeader = new ORM_DOC_Structure_Header(); structureHeader.Label = "Product picture"; structureHeader.Tenant_RefID = securityTicket.TenantID; structureHeader.Save(Connection, Transaction); ORM_DOC_Structure structure = new ORM_DOC_Structure(); structure.Label = "Product picture"; structure.Structure_Header_RefID = structureHeader.DOC_Structure_HeaderID; structure.CreatedBy_Account_RefID = securityTicket.AccountID; structure.Tenant_RefID = securityTicket.TenantID; structure.Save(Connection, Transaction); ORM_DOC_Document document = new ORM_DOC_Document(); document.DOC_DocumentID = Parameter.Image.Document_ID; document.Tenant_RefID = securityTicket.TenantID; document.Save(Connection, Transaction); ORM_DOC_Document_2_Structure documentStructure = new ORM_DOC_Document_2_Structure(); documentStructure.Document_RefID = document.DOC_DocumentID; documentStructure.Structure_RefID = structure.DOC_StructureID; documentStructure.StructureHeader_RefID = structureHeader.DOC_Structure_HeaderID; documentStructure.Tenant_RefID = securityTicket.TenantID; documentStructure.Save(Connection, Transaction); ORM_DOC_DocumentRevision documentRevision = new ORM_DOC_DocumentRevision(); documentRevision.Document_RefID = document.DOC_DocumentID; documentRevision.Revision = 1; documentRevision.IsLocked = false; documentRevision.IsLastRevision = true; documentRevision.UploadedByAccount = securityTicket.AccountID; documentRevision.File_Name = Parameter.Image.File_Name; documentRevision.File_Description = Parameter.Image.File_Description; documentRevision.File_SourceLocation = Parameter.Image.File_Source_Location; documentRevision.File_ServerLocation = Parameter.Image.File_Server_Location; documentRevision.File_MIMEType = Parameter.Image.File_MimeType; documentRevision.File_Extension = Parameter.Image.File_Extension; documentRevision.File_Size_Bytes = Parameter.Image.File_Size_Bytes; documentRevision.Tenant_RefID = securityTicket.TenantID; documentRevision.Save(Connection, Transaction); //add relation for product picture with product product.Product_DocumentationStructure_RefID = structureHeader.DOC_Structure_HeaderID; } #endregion product.Save(Connection, Transaction); #endregion } else { product.Load(Connection, Transaction, Parameter.ArticleID); #region Product picture if (Parameter.Image != null && Parameter.Image.Document_ID != Guid.Empty) { ORM_DOC_Structure_Header structureHeader = new ORM_DOC_Structure_Header(); structureHeader.Label = "Product picture"; structureHeader.Tenant_RefID = securityTicket.TenantID; structureHeader.Save(Connection, Transaction); ORM_DOC_Structure structure = new ORM_DOC_Structure(); structure.Label = "Product picture"; structure.Structure_Header_RefID = structureHeader.DOC_Structure_HeaderID; structure.CreatedBy_Account_RefID = securityTicket.AccountID; structure.Tenant_RefID = securityTicket.TenantID; structure.Save(Connection, Transaction); ORM_DOC_Document document = new ORM_DOC_Document(); document.DOC_DocumentID = Parameter.Image.Document_ID; document.Tenant_RefID = securityTicket.TenantID; document.Save(Connection, Transaction); ORM_DOC_Document_2_Structure documentStructure = new ORM_DOC_Document_2_Structure(); documentStructure.Document_RefID = document.DOC_DocumentID; documentStructure.Structure_RefID = structure.DOC_StructureID; documentStructure.StructureHeader_RefID = structureHeader.DOC_Structure_HeaderID; documentStructure.Tenant_RefID = securityTicket.TenantID; documentStructure.Save(Connection, Transaction); ORM_DOC_DocumentRevision documentRevision = new ORM_DOC_DocumentRevision(); documentRevision.Document_RefID = document.DOC_DocumentID; documentRevision.Revision = 1; documentRevision.IsLocked = false; documentRevision.IsLastRevision = true; documentRevision.UploadedByAccount = securityTicket.AccountID; documentRevision.File_Name = Parameter.Image.File_Name; documentRevision.File_Description = Parameter.Image.File_Description; documentRevision.File_SourceLocation = Parameter.Image.File_Source_Location; documentRevision.File_ServerLocation = Parameter.Image.File_Server_Location; documentRevision.File_MIMEType = Parameter.Image.File_MimeType; documentRevision.File_Extension = Parameter.Image.File_Extension; documentRevision.File_Size_Bytes = Parameter.Image.File_Size_Bytes; documentRevision.Tenant_RefID = securityTicket.TenantID; documentRevision.Save(Connection, Transaction); //add relation for product picture with product product.Product_DocumentationStructure_RefID = structureHeader.DOC_Structure_HeaderID; } else { // if (Parameter.Image.IsForDeleting) if product image has to be deleted } #endregion } #region ORM_CMN_PRO_Product product.Product_Number = Parameter.ProductNumber; foreach (var language in languages) { product.Product_Name.UpdateEntry(language.CMN_LanguageID, Parameter.ArticleName); product.Product_Description.UpdateEntry(language.CMN_LanguageID, Parameter.Description); } product.ProductType_RefID = Guid.Empty; product.IsPlaceholderArticle = Parameter.IsDummy; product.ProductSuccessor_RefID = Guid.Empty; product.IsDeleted = Parameter.IsDeleted; product.Save(Connection, Transaction); #endregion //#region ORM_CMN_PRO_Product_2_ProductCode //var product2CodeQuery = new ORM_CMN_PRO_Product_2_ProductCode.Query(); //product2CodeQuery.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; //product2CodeQuery.Tenant_RefID = securityTicket.TenantID; //product2CodeQuery.IsDeleted = false; //var productCodeAssignment = ORM_CMN_PRO_Product_2_ProductCode.Query.Search(Connection, Transaction, product2CodeQuery).SingleOrDefault(); //if (productCodeAssignment == null) //{ // #region ORM_CMN_PRO_ProductCode #region Variant //Create default varient var defaultVarient = new ORM_CMN_PRO_Product_Variant(); defaultVarient.CMN_PRO_Product_VariantID = Guid.NewGuid(); defaultVarient.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; defaultVarient.IsStandardProductVariant = true; defaultVarient.Tenant_RefID = securityTicket.TenantID; defaultVarient.VariantName = new Dict(ORM_CMN_PRO_Product_Variant.TableName); foreach (var language in languages) { defaultVarient.VariantName.UpdateEntry(language.CMN_LanguageID, String.Empty); } defaultVarient.Save(Connection, Transaction); #endregion returnValue.Result = product.CMN_PRO_ProductID; return(returnValue); #endregion UserCode }
protected static FR_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L3_DPPfID_1421 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Base(); //Put your code here var productID = Parameter.ProductID; ORM_CMN_PRO_Product product = new ORM_CMN_PRO_Product(); product.Load(Connection, Transaction, productID); var DocumentationStructure = product.Product_DocumentationStructure_RefID; product.Product_DocumentationStructure_RefID = Guid.Empty; product.Save(Connection, Transaction); ////////////////////////////////////////////////////////////////////////////////////// ORM_DOC_Document_2_Structure.Query documentToStructure = new ORM_DOC_Document_2_Structure.Query(); documentToStructure.StructureHeader_RefID = DocumentationStructure; documentToStructure.Tenant_RefID = securityTicket.TenantID; documentToStructure.IsDeleted = false; var documentStructure = ORM_DOC_Document_2_Structure.Query.Search(Connection, Transaction, documentToStructure); var doc_documentID = documentStructure.Count() > 0 ? documentStructure.Select(x => x.Document_RefID).FirstOrDefault() : Guid.Empty; ORM_DOC_Document_2_Structure.Query.SoftDelete(Connection, Transaction, documentToStructure); ////////////////////////////////////////////////////////////////////////////////////// ORM_DOC_Document.Query document = new ORM_DOC_Document.Query(); document.DOC_DocumentID = doc_documentID; document.Tenant_RefID = securityTicket.TenantID; document.IsDeleted = false; ORM_DOC_Document.Query.SoftDelete(Connection, Transaction, document); ///////////////////////////////////////////////////////////////////////////////////// ORM_DOC_Structure.Query structure = new ORM_DOC_Structure.Query(); structure.Structure_Header_RefID = DocumentationStructure; structure.Tenant_RefID = securityTicket.TenantID; structure.IsDeleted = false; ORM_DOC_Structure.Query.SoftDelete(Connection, Transaction, structure); ///////////////////////////////////////////////////////////////////////////////////// ORM_DOC_Structure_Header.Query structureHeader = new ORM_DOC_Structure_Header.Query(); structureHeader.DOC_Structure_HeaderID = DocumentationStructure; structureHeader.Tenant_RefID = securityTicket.TenantID; structureHeader.IsDeleted = false; ORM_DOC_Structure_Header.Query.SoftDelete(Connection, Transaction, structureHeader); return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L3MP_SP_1045 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { //Leave UserCode region to enable user code saving #region UserCode var returnValue = new FR_Guid(); //languages P_L2LN_GALFTID_1530 languageTenandID = new P_L2LN_GALFTID_1530(); languageTenandID.Tenant_RefID = securityTicket.TenantID; List <L2LN_GALFTID_1530> DBLanguages = cls_Get_All_Languages_ForTenantID.Invoke(Connection, Transaction, languageTenandID, securityTicket).Result.ToList(); ORM_CMN_PRO_Product item = new ORM_CMN_PRO_Product(); if (Parameter.CMN_PRO_ProductID != null && Parameter.CMN_PRO_ProductID != Guid.Empty) { var result = item.Load(Connection, Transaction, Parameter.CMN_PRO_ProductID); if (result.Status != FR_Status.Success) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } #region Edit Dict _extProductDictName = new Dict("cmn_pro_products"); _extProductDictName = Parameter.Product_Name_DictID; if (_extProductDictName != null) { foreach (var entry in _extProductDictName.Contents) { item.Product_Name.UpdateEntry(entry.LanguageID, entry.Content); } } Dict _extProductDictDescription = new Dict("cmn_pro_products"); _extProductDictDescription = Parameter.Product_Description; if (_extProductDictDescription != null) { foreach (var entry in _extProductDictDescription.Contents) { item.Product_Description.UpdateEntry(entry.LanguageID, entry.Content); } } item.Product_Number = Parameter.Product_Number; return(new FR_Guid(item.Save(Connection, Transaction), item.CMN_PRO_ProductID)); #endregion } else { #region Save item.CMN_PRO_ProductID = Guid.NewGuid(); item.Creation_Timestamp = DateTime.Now; item.IsDeleted = false; Dict _extProductDictName = new Dict("cmn_pro_products"); _extProductDictName = Parameter.Product_Name_DictID; if (_extProductDictName != null) { foreach (var entry in _extProductDictName.Contents) { item.Product_Name.UpdateEntry(entry.LanguageID, entry.Content); } } Dict _extProductDictDescription = new Dict("cmn_pro_products"); _extProductDictDescription = Parameter.Product_Description; if (_extProductDictDescription != null) { foreach (var entry in _extProductDictDescription.Contents) { item.Product_Description.UpdateEntry(entry.LanguageID, entry.Content); } } item.Product_Number = Parameter.Product_Number; item.Tenant_RefID = securityTicket.TenantID; item.Modification_Timestamp = DateTime.MinValue; return(new FR_Guid(item.Save(Connection, Transaction), item.CMN_PRO_ProductID)); #endregion } return(returnValue); #endregion UserCode }
protected static FR_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L5PA_SPEM_1413 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); var medPro_Credentials = cls_Get_TenantMemershipData.Invoke(Connection, Transaction, securityTicket).Result; P_L2LN_GALFTID_1530 langParam = new P_L2LN_GALFTID_1530(); langParam.Tenant_RefID = securityTicket.TenantID; var DBLanguages = cls_Get_All_Languages_ForTenantID.Invoke(Connection, Transaction, langParam, securityTicket).Result; var examination = ORM_HEC_ACT_PerformedAction.Query.Search(Connection, Transaction, new ORM_HEC_ACT_PerformedAction.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, HEC_ACT_PerformedActionID = Parameter.ExaminationID }).Single(); #region Save foreach (var item in Parameter.new_medication) { //check if dosage exists var dosageQuery = new ORM_HEC_Dosage.Query(); dosageQuery.IsDeleted = false; dosageQuery.Tenant_RefID = securityTicket.TenantID; dosageQuery.DosageText = item.dosage_text; var dosage_table = ORM_HEC_Dosage.Query.Search(Connection, Transaction, dosageQuery).SingleOrDefault(); if (dosage_table == null) { dosage_table = new ORM_HEC_Dosage(); dosage_table.HEC_DosageID = Guid.NewGuid(); dosage_table.Tenant_RefID = securityTicket.TenantID; dosage_table.Creation_Timestamp = DateTime.Now; dosage_table.Modification_Timestamp = DateTime.Now; dosage_table.DosageText = item.dosage_text; dosage_table.Save(Connection, Transaction); } ORM_HEC_ACT_PerformedAction_MedicationUpdate medicationUpdate = new ORM_HEC_ACT_PerformedAction_MedicationUpdate(); medicationUpdate.HEC_ACT_PerformedAction_MedicationUpdateID = Guid.NewGuid(); medicationUpdate.Tenant_RefID = securityTicket.TenantID; medicationUpdate.Creation_Timestamp = DateTime.Now; medicationUpdate.Modification_Timestamp = DateTime.Now; medicationUpdate.IsSubstance = !item.is_product; medicationUpdate.IsHealthcareProduct = item.is_product; medicationUpdate.IntendedApplicationDuration_in_days = item.days_valid; medicationUpdate.HEC_ACT_PerformedAction_RefID = Parameter.ExaminationID; medicationUpdate.HEC_Patient_Medication_RefID = Guid.NewGuid(); ORM_HEC_Patient_Medication patient_medications = new ORM_HEC_Patient_Medication(); patient_medications.HEC_Patient_MedicationID = medicationUpdate.HEC_Patient_Medication_RefID; patient_medications.Patient_RefID = Parameter.PatientID; patient_medications.Creation_Timestamp = DateTime.Now; patient_medications.Tenant_RefID = securityTicket.TenantID; patient_medications.Modification_Timestamp = DateTime.Now; patient_medications.R_IsActive = true; patient_medications.R_DateOfAdding = examination.IfPerfomed_DateOfAction; patient_medications.R_IsHealthcareProduct = item.is_product; patient_medications.R_IsSubstance = !item.is_product; patient_medications.R_ActiveUntill = patient_medications.R_DateOfAdding.AddDays(item.days_valid); if (item.is_product)//medication is a product { Guid Hec_ProductID = Guid.Empty; //check if product exists var productQuery = new ORM_CMN_PRO_Product.Query(); productQuery.Tenant_RefID = securityTicket.TenantID; productQuery.IsDeleted = false; productQuery.ProductITL = item.product_itl; var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, productQuery).SingleOrDefault(); //if product does not exist create it if (product == null) { ORM_CMN_PRO_Product cmn_pro_product = new ORM_CMN_PRO_Product(); cmn_pro_product.CMN_PRO_ProductID = Guid.NewGuid(); cmn_pro_product.Tenant_RefID = securityTicket.TenantID; cmn_pro_product.Creation_Timestamp = DateTime.Now; cmn_pro_product.Modification_Timestamp = DateTime.Now; Dict product_name = new Dict("cmn_pro_products"); for (int i = 0; i < DBLanguages.Length; i++) { product_name.AddEntry(DBLanguages[i].CMN_LanguageID, item.product_name); } cmn_pro_product.Product_Name = product_name; cmn_pro_product.ProductITL = item.product_itl; cmn_pro_product.ProducingBusinessParticipant_RefID = Guid.NewGuid(); //manufacturer cmn_pro_product.PackageInfo_RefID = Guid.NewGuid(); // package info cmn_pro_product.Save(Connection, Transaction); ORM_CMN_BPT_BusinessParticipant manufacturer = new ORM_CMN_BPT_BusinessParticipant(); manufacturer.CMN_BPT_BusinessParticipantID = cmn_pro_product.ProducingBusinessParticipant_RefID; manufacturer.DisplayName = item.product_manufacturer; manufacturer.IsCompany = true; manufacturer.IsNaturalPerson = false; manufacturer.Tenant_RefID = securityTicket.TenantID; manufacturer.Creation_Timestamp = DateTime.Now; manufacturer.Modification_Timestamp = DateTime.Now; manufacturer.Save(Connection, Transaction); ORM_CMN_PRO_PAC_PackageInfo package_info = new ORM_CMN_PRO_PAC_PackageInfo(); package_info.CMN_PRO_PAC_PackageInfoID = cmn_pro_product.PackageInfo_RefID; package_info.Tenant_RefID = securityTicket.TenantID; package_info.Creation_Timestamp = DateTime.Now; package_info.Modification_Timestamp = DateTime.Now; string amount = String.Empty; string unit = String.Empty; foreach (char c in item.product_strength) { // Do not use IsDigit as it will include more than the characters 0 through to 9 if (c >= '0' && c <= '9') { amount += c; } else { unit += c; } } package_info.PackageContent_Amount = Int32.Parse(amount); package_info.PackageContent_DisplayLabel = amount; var unitQuery = new ORM_CMN_Unit.Query(); unitQuery.IsDeleted = false; unitQuery.Tenant_RefID = securityTicket.TenantID; unitQuery.ISOCode = unit; var cmn_unit = ORM_CMN_Unit.Query.Search(Connection, Transaction, unitQuery).FirstOrDefault(); if (cmn_unit == null) { cmn_unit = new ORM_CMN_Unit(); cmn_unit.CMN_UnitID = Guid.NewGuid(); cmn_unit.Tenant_RefID = securityTicket.TenantID; cmn_unit.Creation_Timestamp = DateTime.Now; cmn_unit.Modification_Timestamp = DateTime.Now; cmn_unit.ISOCode = unit; cmn_unit.Save(Connection, Transaction); } package_info.PackageContent_MeasuredInUnit_RefID = cmn_unit.CMN_UnitID; package_info.Save(Connection, Transaction); //hec_products ORM_HEC_Product hec_product = new ORM_HEC_Product(); hec_product.HEC_ProductID = Guid.NewGuid(); hec_product.Ext_PRO_Product_RefID = cmn_pro_product.CMN_PRO_ProductID; hec_product.Tenant_RefID = securityTicket.TenantID; hec_product.Creation_Timestamp = DateTime.Now; hec_product.Modification_Timestamp = DateTime.Now; Hec_ProductID = hec_product.HEC_ProductID; var dosage_formQuery = new ORM_HEC_Product_DosageForm.Query(); dosage_formQuery.Tenant_RefID = securityTicket.TenantID; dosage_formQuery.IsDeleted = false; dosage_formQuery.GlobalPropertyMatchingID = item.product_form; var dosage_form = ORM_HEC_Product_DosageForm.Query.Search(Connection, Transaction, dosage_formQuery).SingleOrDefault(); if (dosage_form == null) { dosage_form = new ORM_HEC_Product_DosageForm(); dosage_form.HEC_Product_DosageFormID = Guid.NewGuid(); dosage_form.GlobalPropertyMatchingID = item.product_form; dosage_form.Tenant_RefID = securityTicket.TenantID; dosage_form.Creation_Timestamp = DateTime.Now; dosage_form.Modification_Timestamp = DateTime.Now; Dict form_name = new Dict("hec_product_dosageforms"); for (int i = 0; i < DBLanguages.Length; i++) { form_name.AddEntry(DBLanguages[i].CMN_LanguageID, item.product_form); } dosage_form.DosageForm_Name = form_name; dosage_form.Save(Connection, Transaction); } hec_product.ProductDosageForm_RefID = dosage_form.HEC_Product_DosageFormID; //dosage form hec_product.Save(Connection, Transaction); //product component ORM_HEC_PRO_Product_Component product_component = new ORM_HEC_PRO_Product_Component(); product_component.HEC_PRO_Product_ComponentID = Guid.NewGuid(); product_component.HEC_PRO_Component_RefID = Guid.NewGuid();//pro_component product_component.HEC_PRO_Product_RefID = hec_product.HEC_ProductID; product_component.Tenant_RefID = securityTicket.TenantID; product_component.Creation_Timestamp = DateTime.Now; product_component.Modification_Timestamp = DateTime.Now; product_component.Save(Connection, Transaction); ORM_HEC_PRO_Component pro_component = new ORM_HEC_PRO_Component(); pro_component.HEC_PRO_ComponentID = product_component.HEC_PRO_Component_RefID; pro_component.Tenant_RefID = securityTicket.TenantID; pro_component.Creation_Timestamp = DateTime.Now; pro_component.Modification_Timestamp = DateTime.Now; pro_component.Save(Connection, Transaction); ORM_HEC_PRO_Component_SubstanceIngredient component_SubstanceIngredient = new ORM_HEC_PRO_Component_SubstanceIngredient(); component_SubstanceIngredient.HEC_PRO_Component_SubstanceIngredientID = Guid.NewGuid(); component_SubstanceIngredient.Component_RefID = pro_component.HEC_PRO_ComponentID; component_SubstanceIngredient.Tenant_RefID = securityTicket.TenantID; component_SubstanceIngredient.Creation_Timestamp = DateTime.Now; component_SubstanceIngredient.Modification_Timestamp = DateTime.Now; var substanceQuery = new ORM_HEC_SUB_Substance.Query(); substanceQuery.IsDeleted = false; substanceQuery.Tenant_RefID = securityTicket.TenantID; substanceQuery.HealthcareSubstanceITL = item.substance_itl; var substance = ORM_HEC_SUB_Substance.Query.Search(Connection, Transaction, substanceQuery).SingleOrDefault(); if (substance == null) { substance = new ORM_HEC_SUB_Substance(); substance.HealthcareSubstanceITL = item.substance_itl; substance.HEC_SUB_SubstanceID = Guid.NewGuid(); substance.GlobalPropertyMatchingID = item.substance_name; substance.Tenant_RefID = securityTicket.TenantID; substance.Creation_Timestamp = DateTime.Now; substance.Modification_Timestamp = DateTime.Now; substance.Save(Connection, Transaction); ORM_HEC_SUB_Substance_Name substance_name = new ORM_HEC_SUB_Substance_Name(); substance_name.HEC_SUB_Substance_NameID = Guid.NewGuid(); substance_name.HEC_SUB_Substance_RefID = substance.HEC_SUB_SubstanceID; Dict substance_name_ = new Dict("hec_sub_substance_names"); for (int i = 0; i < DBLanguages.Length; i++) { substance_name_.AddEntry(DBLanguages[i].CMN_LanguageID, item.substance_name); } substance_name.SubstanceName_Label = substance_name_; substance_name.Tenant_RefID = securityTicket.TenantID; substance_name.Creation_Timestamp = DateTime.Now; substance_name.Modification_Timestamp = DateTime.Now; substance_name.Save(Connection, Transaction); } component_SubstanceIngredient.Substance_RefID = substance.HEC_SUB_SubstanceID; component_SubstanceIngredient.Save(Connection, Transaction); } else { var hec_productQuery = new ORM_HEC_Product.Query(); hec_productQuery.IsDeleted = false; hec_productQuery.Tenant_RefID = securityTicket.TenantID; hec_productQuery.Ext_PRO_Product_RefID = product.CMN_PRO_ProductID; var hec_product = ORM_HEC_Product.Query.Search(Connection, Transaction, hec_productQuery).Single(); Hec_ProductID = hec_product.HEC_ProductID; } medicationUpdate.HEC_Product_RefID = Hec_ProductID; patient_medications.R_HEC_Product_RefID = Hec_ProductID; patient_medications.R_DosageText = item.dosage_text; medicationUpdate.DosageText = item.dosage_text; } else// medication is a substance { medicationUpdate.IfSubstance_Strength = item.substance_strength; patient_medications.R_IfSubstance_Strength = item.substance_strength; medicationUpdate.IfSubstance_Unit_RefID = item.substance_unit; patient_medications.R_IfSubstance_Unit_RefID = item.substance_unit; patient_medications.R_DosageText = item.dosage_text; medicationUpdate.DosageText = item.dosage_text; var substanceQuery = new ORM_HEC_SUB_Substance.Query(); substanceQuery.IsDeleted = false; substanceQuery.Tenant_RefID = securityTicket.TenantID; substanceQuery.HealthcareSubstanceITL = item.substance_itl; var substance = ORM_HEC_SUB_Substance.Query.Search(Connection, Transaction, substanceQuery).SingleOrDefault(); if (substance == null) { substance = new ORM_HEC_SUB_Substance(); substance.HealthcareSubstanceITL = item.substance_itl; substance.HEC_SUB_SubstanceID = Guid.NewGuid(); substance.GlobalPropertyMatchingID = item.substance_name; substance.Tenant_RefID = securityTicket.TenantID; substance.Creation_Timestamp = DateTime.Now; substance.Modification_Timestamp = DateTime.Now; substance.Save(Connection, Transaction); ORM_HEC_SUB_Substance_Name substance_name = new ORM_HEC_SUB_Substance_Name(); substance_name.HEC_SUB_Substance_NameID = Guid.NewGuid(); substance_name.HEC_SUB_Substance_RefID = substance.HEC_SUB_SubstanceID; Dict substance_name_ = new Dict("hec_sub_substance_names"); for (int i = 0; i < DBLanguages.Length; i++) { substance_name_.AddEntry(DBLanguages[i].CMN_LanguageID, item.substance_name); } substance_name.SubstanceName_Label = substance_name_; substance_name.Tenant_RefID = securityTicket.TenantID; substance_name.Creation_Timestamp = DateTime.Now; substance_name.Modification_Timestamp = DateTime.Now; substance_name.Save(Connection, Transaction); } medicationUpdate.IfSubstance_Substance_RefiD = substance.HEC_SUB_SubstanceID; patient_medications.R_IfSubstance_Substance_RefiD = substance.HEC_SUB_SubstanceID; } patient_medications.Save(Connection, Transaction); medicationUpdate.Save(Connection, Transaction); returnValue.Result = true; } #endregion #region Delete foreach (var item in Parameter.deleted_medications) { var medicationUpdateQuery = new ORM_HEC_ACT_PerformedAction_MedicationUpdate.Query(); medicationUpdateQuery.IsDeleted = false; medicationUpdateQuery.IsMedicationDeactivated = false; medicationUpdateQuery.Tenant_RefID = securityTicket.TenantID; medicationUpdateQuery.HEC_ACT_PerformedAction_MedicationUpdateID = item.performedAction_medicationUpdate_id; var medicationUpdate = ORM_HEC_ACT_PerformedAction_MedicationUpdate.Query.Search(Connection, Transaction, medicationUpdateQuery).Single(); medicationUpdate.IsMedicationDeactivated = true; medicationUpdate.Save(Connection, Transaction); } #endregion return(returnValue); #endregion UserCode }
protected static FR_Base Execute(DbConnection Connection, DbTransaction Transaction, P_L5AS_SAP_1515 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Base(); var defaultLanguages = ORM_CMN_Language.Query.Search(Connection, Transaction, new ORM_CMN_Language.Query { IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); List <P_L3AS_SAVP_0004> parameterVendorProduct = new List <P_L3AS_SAVP_0004>(); List <P_L3AS_SAVV_0040> parameterVendorVariants = new List <P_L3AS_SAVV_0040>(); #region ImportCatalogProducts foreach (var productFromCatalog in Parameter.Products.Where(x => !string.IsNullOrEmpty(x.ProductITL)).ToList()) { P_L5PR_IPfC_1648 importProductFromCatalogParameter = new P_L5PR_IPfC_1648(); importProductFromCatalogParameter.Product = new ProductsForImport(); importProductFromCatalogParameter.Product.CatalogITL = productFromCatalog.CatalogITL; importProductFromCatalogParameter.Product.Code = productFromCatalog.Code; importProductFromCatalogParameter.Product.Custom = productFromCatalog.Custom; importProductFromCatalogParameter.Product.Description = productFromCatalog.Description; importProductFromCatalogParameter.Product.Name = productFromCatalog.Name; importProductFromCatalogParameter.Product.LongName = productFromCatalog.LongName; importProductFromCatalogParameter.Product.ProductITL = productFromCatalog.ProductITL; importProductFromCatalogParameter.Product.Variants = new List <Variant>(); foreach (var variant in productFromCatalog.Variants) { importProductFromCatalogParameter.Product.Variants.Add(variant); } importProductFromCatalogParameter.Product.Customizations = new List <Customization>(); if (productFromCatalog.Customizations != null) { foreach (var customization in productFromCatalog.Customizations) { importProductFromCatalogParameter.Product.Customizations.Add(customization); } } importProductFromCatalogParameter.Product.Vat = productFromCatalog.Vat; Guid productID = cls_Import_Product_from_Catalog.Invoke(Connection, Transaction, importProductFromCatalogParameter, securityTicket).Result; Parameter.Products.Where(x => x.ProductITL == productFromCatalog.ProductITL).ToList().ForEach(x => x.LocalProductID = productID); } #endregion import foreach (var parameterProduct in Parameter.Products) { ORM_CMN_PRO_Product productDB = new ORM_CMN_PRO_Product(); #region loadProduct productDB.Load(Connection, Transaction, parameterProduct.LocalProductID); Guid originalProductId = productDB.CMN_PRO_ProductID; #endregion P_L3AS_GNoPiAfP_1512 parameterAssortmentProductExists = new P_L3AS_GNoPiAfP_1512(); parameterAssortmentProductExists.AssortmentID = Parameter.AssortmentID; parameterAssortmentProductExists.ProductRefID = originalProductId; int numberOfProductsInAssortment = cls_Get_Number_of_Products_in_Assortment_for_ProductID.Invoke(Connection, Transaction, parameterAssortmentProductExists, securityTicket).Result.NumberOfProducts; if (numberOfProductsInAssortment == 0) { #region SaveProductCopy ORM_CMN_PRO_Product productCopyToCreate = new ORM_CMN_PRO_Product(); productCopyToCreate.CMN_PRO_ProductID = Guid.NewGuid(); productCopyToCreate.ProductITL = string.Empty; productCopyToCreate.IsProduct_Article = true; productCopyToCreate.IsProductAvailableForOrdering = true; productCopyToCreate.IsImportedFromExternalCatalog = false; productCopyToCreate.IsProductForInternalDistributionOnly = true; productCopyToCreate.Product_Name = new Dict(ORM_CMN_PRO_Product.TableName); productCopyToCreate.Product_Description = new Dict(ORM_CMN_PRO_Product.TableName); productCopyToCreate.PackageInfo_RefID = Guid.NewGuid(); productCopyToCreate.Creation_Timestamp = DateTime.Now; productCopyToCreate.Tenant_RefID = securityTicket.TenantID; productCopyToCreate.IsDeleted = false; productCopyToCreate.Save(Connection, Transaction); productCopyToCreate.Product_Number = productDB.Product_Number; foreach (var lang in defaultLanguages) { productCopyToCreate.Product_Name.UpdateEntry(lang.CMN_LanguageID, productDB.Product_Name.Contents.FirstOrDefault().Content); productCopyToCreate.Product_Description.UpdateEntry(lang.CMN_LanguageID, productDB.Product_Description.Contents.FirstOrDefault().Content); } productCopyToCreate.ProductType_RefID = Guid.Empty; productCopyToCreate.ProductSuccessor_RefID = Guid.Empty; productCopyToCreate.IsDeleted = false; var productDocumentStructureRefID = Guid.NewGuid(); if (productDB.Product_DocumentationStructure_RefID != Guid.Empty) { productCopyToCreate.Product_DocumentationStructure_RefID = productDocumentStructureRefID; } productCopyToCreate.Save(Connection, Transaction); #endregion #region copyPicture if (productDB.Product_DocumentationStructure_RefID != Guid.Empty) { var documentStructureHeaders = ORM_DOC_Structure_Header.Query.Search(Connection, Transaction, new ORM_DOC_Structure_Header.Query { DOC_Structure_HeaderID = productDB.Product_DocumentationStructure_RefID }); if (documentStructureHeaders != null && documentStructureHeaders.Count() > 0) { var documentStructureHeader = documentStructureHeaders.First(); ORM_DOC_Structure_Header docStructureHeaderToCreate = new ORM_DOC_Structure_Header(); docStructureHeaderToCreate.DOC_Structure_HeaderID = productDocumentStructureRefID; docStructureHeaderToCreate.IsDeleted = false; docStructureHeaderToCreate.Label = documentStructureHeader.Label; docStructureHeaderToCreate.Tenant_RefID = securityTicket.TenantID; docStructureHeaderToCreate.Save(Connection, Transaction); var documentStructures = ORM_DOC_Structure.Query.Search(Connection, Transaction, new ORM_DOC_Structure.Query { Structure_Header_RefID = documentStructureHeader.DOC_Structure_HeaderID }); var documentStructureID = Guid.NewGuid(); if (documentStructures != null && documentStructures.Count() > 0) { var documentStructure = documentStructures.First(); ORM_DOC_Structure structureToCreate = new ORM_DOC_Structure(); structureToCreate.Label = "Product picture"; structureToCreate.DOC_StructureID = documentStructureID; structureToCreate.Structure_Header_RefID = docStructureHeaderToCreate.DOC_Structure_HeaderID; structureToCreate.CreatedBy_Account_RefID = securityTicket.AccountID; structureToCreate.Tenant_RefID = securityTicket.TenantID; structureToCreate.Save(Connection, Transaction); var document2DocumentStructures = ORM_DOC_Document_2_Structure.Query.Search(Connection, Transaction, new ORM_DOC_Document_2_Structure.Query { Structure_RefID = documentStructure.DOC_StructureID }); if (document2DocumentStructures != null && document2DocumentStructures.Count() > 0) { var document2DocumentStructure = document2DocumentStructures.First(); var documentService = InfrastructureFactory.CreateDocumentService(); var webClient = new WebClient(); var imageBytes = webClient.DownloadData(documentService.GenerateDownloadLink(document2DocumentStructure.Document_RefID)); var documentID = documentService.UploadDocument(imageBytes, productCopyToCreate.Product_Number, securityTicket.SessionTicket, null, null); ORM_DOC_Document documentToCreate = new ORM_DOC_Document(); documentToCreate.DOC_DocumentID = documentID; documentToCreate.Tenant_RefID = securityTicket.TenantID; documentToCreate.Save(Connection, Transaction); ORM_DOC_Document_2_Structure documentStructureToSave = new ORM_DOC_Document_2_Structure(); documentStructureToSave.Document_RefID = documentToCreate.DOC_DocumentID; documentStructureToSave.Structure_RefID = structureToCreate.DOC_StructureID; documentStructureToSave.StructureHeader_RefID = docStructureHeaderToCreate.DOC_Structure_HeaderID; documentStructureToSave.Tenant_RefID = securityTicket.TenantID; documentStructureToSave.Save(Connection, Transaction); } } } } #endregion var dimensionsDb = ORM_CMN_PRO_Dimension.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Dimension.Query { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Product_RefID = originalProductId }); List <ORM_CMN_PRO_Dimension_Value> dimensionValuesToCreate = new List <ORM_CMN_PRO_Dimension_Value>(); #region SaveDimensions foreach (var dimensionDb in dimensionsDb) { var dimensionName = dimensionDb.DimensionName; var dimensionID = dimensionDb.CMN_PRO_DimensionID; ORM_CMN_PRO_Dimension dimensionCopyToCreate = new ORM_CMN_PRO_Dimension(); dimensionCopyToCreate.CMN_PRO_DimensionID = Guid.NewGuid(); dimensionCopyToCreate.Creation_Timestamp = DateTime.Now; dimensionCopyToCreate.DimensionName = new Dict(ORM_CMN_PRO_Dimension.TableName); dimensionCopyToCreate.IsDeleted = false; dimensionCopyToCreate.IsDimensionTemplate = false; dimensionCopyToCreate.Product_RefID = productCopyToCreate.CMN_PRO_ProductID; dimensionCopyToCreate.Tenant_RefID = securityTicket.TenantID; dimensionCopyToCreate.OrderSequence = dimensionDb.OrderSequence; dimensionCopyToCreate.Modification_Timestamp = DateTime.Now; dimensionCopyToCreate.Save(Connection, Transaction); foreach (var lang in defaultLanguages) { dimensionCopyToCreate.DimensionName.UpdateEntry(lang.CMN_LanguageID, dimensionName.Contents.FirstOrDefault().Content); } dimensionCopyToCreate.Save(Connection, Transaction); var dimensionValuesDb = ORM_CMN_PRO_Dimension_Value.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Dimension_Value.Query { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Dimensions_RefID = dimensionID }); dimensionValuesDb.ForEach(x => x.Dimensions_RefID = dimensionCopyToCreate.CMN_PRO_DimensionID); dimensionValuesToCreate.AddRange(dimensionValuesDb); } #endregion var productVariantsDb = ORM_CMN_PRO_Product_Variant.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product_Variant.Query { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_PRO_Product_RefID = originalProductId }); #region AssortmentProductSave ORM_CMN_PRO_ASS_AssortmentProduct assortmentProductToCreate = new ORM_CMN_PRO_ASS_AssortmentProduct(); assortmentProductToCreate.CMN_PRO_ASS_AssortmentProductID = Guid.NewGuid(); assortmentProductToCreate.Ext_CMN_PRO_Product_RefID = productCopyToCreate.CMN_PRO_ProductID; assortmentProductToCreate.IsDeleted = false; assortmentProductToCreate.Tenant_RefID = securityTicket.TenantID; assortmentProductToCreate.Save(Connection, Transaction); #endregion #region Assortment Vendor Product Save P_L3AS_SAVP_0004 parameterVendorProductItem = new P_L3AS_SAVP_0004(); parameterVendorProductItem.AssortmentProductID = assortmentProductToCreate.CMN_PRO_ASS_AssortmentProductID; parameterVendorProductItem.ProductRefID = originalProductId; parameterVendorProduct.Add(parameterVendorProductItem); ORM_CMN_PRO_ASS_AssortmentProduct_VendorProduct assortmentVendorProductToCreate = new ORM_CMN_PRO_ASS_AssortmentProduct_VendorProduct(); #endregion #region Assortment2Assortment Product save ORM_CMN_PRO_ASS_Assortment_2_AssortmentProduct assortmentToAssortmentProductToCreate = new ORM_CMN_PRO_ASS_Assortment_2_AssortmentProduct(); assortmentToAssortmentProductToCreate.AssignmentID = Guid.NewGuid(); assortmentToAssortmentProductToCreate.CMN_PRO_ASS_Assortment_Product_RefID = assortmentProductToCreate.CMN_PRO_ASS_AssortmentProductID; assortmentToAssortmentProductToCreate.CMN_PRO_ASS_Assortment_RefID = Parameter.AssortmentID; assortmentToAssortmentProductToCreate.IsDeleted = false; assortmentToAssortmentProductToCreate.Tenant_RefID = securityTicket.TenantID; assortmentToAssortmentProductToCreate.Save(Connection, Transaction); #endregion List <ORM_CMN_PRO_Variant_DimensionValue> variantDimensionValueAssignmentToCreate = new List <ORM_CMN_PRO_Variant_DimensionValue>(); foreach (var productVariantDb in productVariantsDb) { #region ProductVariant Save ORM_CMN_PRO_ASS_DistributionPrice distributionPriceToCreate = new ORM_CMN_PRO_ASS_DistributionPrice(); distributionPriceToCreate.CMN_PRO_ASS_DistributionPriceID = Guid.NewGuid(); distributionPriceToCreate.IsDeleted = false; distributionPriceToCreate.Tenant_RefID = securityTicket.TenantID; distributionPriceToCreate.Save(Connection, Transaction); ORM_CMN_PRO_Product_Variant productVariantToCreate = new ORM_CMN_PRO_Product_Variant(); productVariantToCreate.CMN_PRO_Product_VariantID = Guid.NewGuid(); productVariantToCreate.CMN_PRO_Product_RefID = productCopyToCreate.CMN_PRO_ProductID; productVariantToCreate.Creation_Timestamp = DateTime.Now; productVariantToCreate.Tenant_RefID = securityTicket.TenantID; productVariantToCreate.ProductVariantITL = ""; productVariantToCreate.ProductVariant_DocumentationStructure_RefID = Guid.Empty; productVariantToCreate.VariantName = new Dict(ORM_CMN_PRO_Product_Variant.TableName); productVariantToCreate.IsDeleted = false; productVariantToCreate.IsStandardProductVariant = productVariantDb.IsStandardProductVariant; productVariantToCreate.IsImportedFromExternalCatalog = false; productVariantToCreate.Modification_Timestamp = DateTime.Now; productVariantToCreate.Save(Connection, Transaction); foreach (var lang in defaultLanguages) { productVariantToCreate.VariantName.UpdateEntry(lang.CMN_LanguageID, productVariantDb.VariantName.Contents.FirstOrDefault().Content); } productVariantToCreate.Save(Connection, Transaction); #endregion #region dimensionValuesAssignemnt var assignmentExists = ORM_CMN_PRO_Variant_DimensionValue.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Variant_DimensionValue.Query { Tenant_RefID = securityTicket.TenantID, ProductVariant_RefID = productVariantDb.CMN_PRO_Product_VariantID }); foreach (var variantAssignment in assignmentExists) { variantAssignment.IsDeleted = false; variantAssignment.ProductVariant_RefID = productVariantToCreate.CMN_PRO_Product_VariantID; variantAssignment.Tenant_RefID = securityTicket.TenantID; variantDimensionValueAssignmentToCreate.Add(variantAssignment); } #endregion #region AddVariantToAssortment ORM_CMN_PRO_ASS_AssortmentVariant assortmentVariantToCreate = new ORM_CMN_PRO_ASS_AssortmentVariant(); assortmentVariantToCreate.CMN_PRO_ASS_AssortmentVariantID = Guid.NewGuid(); assortmentVariantToCreate.Ext_CMN_PRO_Product_Variant_RefID = productVariantToCreate.CMN_PRO_Product_VariantID; assortmentVariantToCreate.IsDeleted = false; assortmentVariantToCreate.DistributionPrice_RefID = distributionPriceToCreate.CMN_PRO_ASS_DistributionPriceID; assortmentVariantToCreate.Tenant_RefID = securityTicket.TenantID; assortmentVariantToCreate.Save(Connection, Transaction); #endregion P_L3AS_SAVV_0040 parameterVendorVariantItem = new P_L3AS_SAVV_0040(); parameterVendorVariantItem.AssortmentVariantID = assortmentVariantToCreate.CMN_PRO_ASS_AssortmentVariantID; parameterVendorVariantItem.ProductVariantID = productVariantDb.CMN_PRO_Product_VariantID; parameterVendorVariantItem.OrderSequence = 1; parameterVendorVariantItem.IsDefaultVendorVariant = true; parameterVendorVariants.Add(parameterVendorVariantItem); } #region SaveDimensionValuesAndAssignment foreach (var dimensionValueToCreate in dimensionValuesToCreate) { var valueName = dimensionValueToCreate.DimensionValue_Text; var valueID = dimensionValueToCreate.CMN_PRO_Dimension_ValueID; ORM_CMN_PRO_Dimension_Value dimensionValueToCreateUpdate = new ORM_CMN_PRO_Dimension_Value(); dimensionValueToCreateUpdate.CMN_PRO_Dimension_ValueID = Guid.NewGuid(); dimensionValueToCreateUpdate.Creation_Timestamp = DateTime.Now; dimensionValueToCreateUpdate.DimensionValue_Text = new Dict(ORM_CMN_PRO_Dimension_Value.TableName); dimensionValueToCreateUpdate.Dimensions_RefID = dimensionValueToCreate.Dimensions_RefID; dimensionValueToCreateUpdate.IsDeleted = false; dimensionValueToCreateUpdate.Tenant_RefID = securityTicket.TenantID; dimensionValueToCreateUpdate.Modification_Timestamp = DateTime.Now; dimensionValueToCreateUpdate.OrderSequence = dimensionValueToCreate.OrderSequence; dimensionValueToCreateUpdate.Save(Connection, Transaction); foreach (var lang in defaultLanguages) { dimensionValueToCreateUpdate.DimensionValue_Text.UpdateEntry(lang.CMN_LanguageID, valueName.Contents.FirstOrDefault().Content); } dimensionValueToCreateUpdate.Save(Connection, Transaction); var assignments = variantDimensionValueAssignmentToCreate.Where(x => x.DimensionValue_RefID == valueID).ToList(); foreach (var assignment in assignments) { ORM_CMN_PRO_Variant_DimensionValue assignmentToSave = new ORM_CMN_PRO_Variant_DimensionValue(); assignmentToSave.CMN_PRO_Variant_DimensionValueID = Guid.NewGuid(); assignmentToSave.Creation_Timestamp = DateTime.Now; assignmentToSave.DimensionValue_RefID = dimensionValueToCreateUpdate.CMN_PRO_Dimension_ValueID; assignmentToSave.IsDeleted = false; assignmentToSave.Modification_Timestamp = DateTime.Now; assignmentToSave.ProductVariant_RefID = assignment.ProductVariant_RefID; assignmentToSave.Tenant_RefID = securityTicket.TenantID; assignmentToSave.Save(Connection, Transaction); } } #endregion } } cls_Save_Assortment_Vendor_Products.Invoke(Connection, Transaction, parameterVendorProduct.ToArray(), securityTicket); cls_Save_Assortment_Vendor_Variants.Invoke(Connection, Transaction, parameterVendorVariants.ToArray(), securityTicket); return(returnValue); #endregion UserCode }
protected static FR_L6PO_GPfCOCM_1502 Execute(DbConnection Connection, DbTransaction Transaction, P_L6PO_GPfCOCM_1502 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6PO_GPfCOCM_1502(); returnValue.Result = new L6PO_GPfCOCM_1502(); #region Get Languages P_L2LN_GALFTID_1530 langParam = new P_L2LN_GALFTID_1530(); langParam.Tenant_RefID = securityTicket.TenantID; var DBLanguages = cls_Get_All_Languages_ForTenantID.Invoke(Connection, Transaction, langParam, securityTicket).Result; var LanguageID = DBLanguages.Where(i => i.ISO_639_1 == "DE").SingleOrDefault().CMN_LanguageID; #endregion #region ORM_ORD_PRC_ProcurementOrder_Header var procurementHeader = new ORM_ORD_PRC_ProcurementOrder_Header(); procurementHeader.Load(Connection, Transaction, Parameter.ProcurementHeaderID); #endregion #region ORM_ORD_PRC_ProcurementOrder_Positions var paramShoppingProducts = new P_L5PO_GPPaSCIfH_1750(); paramShoppingProducts.ProcurementOrderHeaderID = Parameter.ProcurementHeaderID; var shoppingProducts = cls_Get_ProcurementPositions_and_ShoppingCartInfo_for_HeaderID.Invoke(Connection, Transaction, paramShoppingProducts, securityTicket).Result; #endregion #region Positions var positions = new List <L6PO_GPfCOCM_1502a>(); foreach (var shoppingProduct in shoppingProducts) { var product = new ORM_CMN_PRO_Product(); product.Load(Connection, Transaction, shoppingProduct.CMN_PRO_Product_RefID); if (String.IsNullOrEmpty(product.ProductITL)) { product.ProductITL = Guid.NewGuid().ToString(); product.Save(Connection, Transaction); } var catalogSubscription = new ORM_CMN_PRO_SubscribedCatalog(); catalogSubscription.Load(Connection, Transaction, product.IfImportedFromExternalCatalog_CatalogSubscription_RefID); var position = new L6PO_GPfCOCM_1502a(); position.ProductITL = product.ProductITL; position.ProductNumber = product.Product_Number; position.ProductName = product.Product_Name.GetContent(LanguageID); position.ProductDescription = product.Product_Description.GetContent(LanguageID); position.Comment = "NotDefinedBySender"; position.Quantity = shoppingProduct.Position_Quantity; position.IsProductReplacementAllowed = shoppingProduct.IsProductReplacementAllowed; position.SourceCatalogITL = catalogSubscription.CatalogCodeITL; position.UnitPrice = shoppingProduct.Position_ValuePerUnit; position.NetoPrice = shoppingProduct.Position_ValueTotal; var shoppingCart2Office = ORM_ORD_PRC_Office_ShoppingCart.Query.Search(Connection, Transaction, new ORM_ORD_PRC_Office_ShoppingCart.Query { ORD_PRC_ShoppingCart_RefID = shoppingProduct.ORD_PRC_ShoppingCart_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID } ).Single(); position.Quantites = new L6PO_GPfCOCM_1502b[] { new L6PO_GPfCOCM_1502b() { OfficeID = shoppingCart2Office.CMN_STR_Office_RefID, Quantity = shoppingProduct.Position_Quantity } }; positions.Add(position); } #endregion #region Comments var procurmentNotes = ORM_ORD_PRC_ProcurementOrder_Note.Query.Search(Connection, Transaction, new ORM_ORD_PRC_ProcurementOrder_Note.Query() { ORD_PRC_ProcurementOrder_Header_RefID = procurementHeader.ORD_PRC_ProcurementOrder_HeaderID, IsDeleted = false }).ToList(); var comments = new List <L6PO_GPfCOCM_1502c>(); foreach (var note in procurmentNotes) { comments.Add( new L6PO_GPfCOCM_1502c() { OfficeID = note.CMN_STR_Office_RefID, Content = note.Comment, PublilshDate = note.NotePublishDate, SequenceNumber = note.SequenceOrderNumber, Title = note.Title } ); } #endregion returnValue.Result.ProcurProcurementHeaderID = procurementHeader.ORD_PRC_ProcurementOrder_HeaderID; returnValue.Result.OrderNumber = procurementHeader.ProcurementOrder_Number; returnValue.Result.ProcurementOrderDate = procurementHeader.ProcurementOrder_Date; returnValue.Result.Comments = comments.ToArray(); returnValue.Result.Positions = positions.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5ME_SP_1054 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here returnValue.Result = new Guid(); if (!Parameter.IsDeleted) { var DBLanguages = cls_Get_All_Languages.Invoke(Connection, Transaction, securityTicket).Result; Guid Hec_ProductID = Guid.Empty; //check if product exists var productQuery = new ORM_CMN_PRO_Product.Query(); productQuery.Tenant_RefID = securityTicket.TenantID; productQuery.IsDeleted = false; productQuery.CMN_PRO_ProductID = Guid.Parse(Parameter.product_itl); var product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, productQuery).SingleOrDefault(); //save if (product == null) { ORM_CMN_PRO_Product cmn_pro_product = new ORM_CMN_PRO_Product(); cmn_pro_product.CMN_PRO_ProductID = Guid.NewGuid(); cmn_pro_product.Tenant_RefID = securityTicket.TenantID; cmn_pro_product.Creation_Timestamp = DateTime.Now; cmn_pro_product.Modification_Timestamp = DateTime.Now; Dict product_name = new Dict("cmn_pro_products"); for (int i = 0; i < DBLanguages.Length; i++) { product_name.AddEntry(DBLanguages[i].CMN_LanguageID, Parameter.product_name); } cmn_pro_product.Product_Name = product_name; cmn_pro_product.ProductITL = Guid.NewGuid().ToString(); cmn_pro_product.ProducingBusinessParticipant_RefID = Guid.NewGuid(); //manufacturer cmn_pro_product.PackageInfo_RefID = Guid.NewGuid(); // package info cmn_pro_product.Save(Connection, Transaction); ORM_CMN_BPT_BusinessParticipant manufacturer = new ORM_CMN_BPT_BusinessParticipant(); var manufacturerQuery = new ORM_CMN_BPT_BusinessParticipant.Query(); manufacturerQuery.Tenant_RefID = securityTicket.TenantID; manufacturerQuery.IsDeleted = false; manufacturerQuery.CMN_BPT_BusinessParticipantID = Guid.Parse(Parameter.product_manufacturer_id); if (Parameter.product_manufacturer_id == Guid.Empty.ToString()) { manufacturer.CMN_BPT_BusinessParticipantID = cmn_pro_product.ProducingBusinessParticipant_RefID; manufacturer.DisplayName = Parameter.product_manufacturer; manufacturer.IsCompany = true; manufacturer.IsNaturalPerson = false; manufacturer.Tenant_RefID = securityTicket.TenantID; manufacturer.Creation_Timestamp = DateTime.Now; manufacturer.Modification_Timestamp = DateTime.Now; manufacturer.Save(Connection, Transaction); } else { manufacturer = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, manufacturerQuery).Single(); } ORM_CMN_PRO_PAC_PackageInfo package_info = new ORM_CMN_PRO_PAC_PackageInfo(); package_info.CMN_PRO_PAC_PackageInfoID = cmn_pro_product.PackageInfo_RefID; package_info.Tenant_RefID = securityTicket.TenantID; package_info.Creation_Timestamp = DateTime.Now; package_info.Modification_Timestamp = DateTime.Now; string amount = String.Empty; string unit = String.Empty; foreach (char c in Parameter.product_strength) { // Do not use IsDigit as it will include more than the characters 0 through to 9 if (c >= '0' && c <= '9') { amount += c; } else { unit += c; } } package_info.PackageContent_Amount = Int32.Parse(amount); package_info.PackageContent_DisplayLabel = amount; var unitQuery = new ORM_CMN_Unit.Query(); unitQuery.IsDeleted = false; unitQuery.Tenant_RefID = securityTicket.TenantID; unitQuery.ISOCode = unit; var cmn_unit = ORM_CMN_Unit.Query.Search(Connection, Transaction, unitQuery).FirstOrDefault(); if (cmn_unit == null) { cmn_unit = new ORM_CMN_Unit(); cmn_unit.CMN_UnitID = Guid.NewGuid(); cmn_unit.Tenant_RefID = securityTicket.TenantID; cmn_unit.Creation_Timestamp = DateTime.Now; cmn_unit.Modification_Timestamp = DateTime.Now; cmn_unit.ISOCode = unit; cmn_unit.Save(Connection, Transaction); } package_info.PackageContent_MeasuredInUnit_RefID = cmn_unit.CMN_UnitID; package_info.Save(Connection, Transaction); //hec_products ORM_HEC_Product hec_product = new ORM_HEC_Product(); hec_product.HEC_ProductID = Guid.NewGuid(); hec_product.Ext_PRO_Product_RefID = cmn_pro_product.CMN_PRO_ProductID; hec_product.Tenant_RefID = securityTicket.TenantID; hec_product.Creation_Timestamp = DateTime.Now; hec_product.Modification_Timestamp = DateTime.Now; Hec_ProductID = hec_product.HEC_ProductID; var dosage_formQuery = new ORM_HEC_Product_DosageForm.Query(); dosage_formQuery.Tenant_RefID = securityTicket.TenantID; dosage_formQuery.IsDeleted = false; dosage_formQuery.GlobalPropertyMatchingID = Parameter.product_form; var dosage_form = ORM_HEC_Product_DosageForm.Query.Search(Connection, Transaction, dosage_formQuery).SingleOrDefault(); if (dosage_form == null) { dosage_form = new ORM_HEC_Product_DosageForm(); dosage_form.HEC_Product_DosageFormID = Guid.NewGuid(); dosage_form.GlobalPropertyMatchingID = Parameter.product_form; dosage_form.Tenant_RefID = securityTicket.TenantID; dosage_form.Creation_Timestamp = DateTime.Now; dosage_form.Modification_Timestamp = DateTime.Now; Dict form_name = new Dict("hec_product_dosageforms"); for (int i = 0; i < DBLanguages.Length; i++) { form_name.AddEntry(DBLanguages[i].CMN_LanguageID, Parameter.product_form); } dosage_form.DosageForm_Name = form_name; dosage_form.Save(Connection, Transaction); } hec_product.ProductDosageForm_RefID = dosage_form.HEC_Product_DosageFormID; //dosage form hec_product.Save(Connection, Transaction); //product component ORM_HEC_PRO_Product_Component product_component = new ORM_HEC_PRO_Product_Component(); product_component.HEC_PRO_Product_ComponentID = Guid.NewGuid(); product_component.HEC_PRO_Component_RefID = Guid.NewGuid();//pro_component product_component.HEC_PRO_Product_RefID = hec_product.HEC_ProductID; product_component.Tenant_RefID = securityTicket.TenantID; product_component.Creation_Timestamp = DateTime.Now; product_component.Modification_Timestamp = DateTime.Now; product_component.Save(Connection, Transaction); ORM_HEC_PRO_Component pro_component = new ORM_HEC_PRO_Component(); pro_component.HEC_PRO_ComponentID = product_component.HEC_PRO_Component_RefID; pro_component.Tenant_RefID = securityTicket.TenantID; pro_component.Creation_Timestamp = DateTime.Now; pro_component.Modification_Timestamp = DateTime.Now; pro_component.Save(Connection, Transaction); ORM_HEC_PRO_Component_SubstanceIngredient component_SubstanceIngredient = new ORM_HEC_PRO_Component_SubstanceIngredient(); component_SubstanceIngredient.HEC_PRO_Component_SubstanceIngredientID = Guid.NewGuid(); component_SubstanceIngredient.Component_RefID = pro_component.HEC_PRO_ComponentID; component_SubstanceIngredient.Tenant_RefID = securityTicket.TenantID; component_SubstanceIngredient.Creation_Timestamp = DateTime.Now; component_SubstanceIngredient.Modification_Timestamp = DateTime.Now; var substanceQuery = new ORM_HEC_SUB_Substance.Query(); substanceQuery.IsDeleted = false; substanceQuery.Tenant_RefID = securityTicket.TenantID; substanceQuery.HEC_SUB_SubstanceID = Parameter.substance_id; var substance = ORM_HEC_SUB_Substance.Query.Search(Connection, Transaction, substanceQuery).SingleOrDefault(); component_SubstanceIngredient.Substance_RefID = substance.HEC_SUB_SubstanceID; component_SubstanceIngredient.Save(Connection, Transaction); Parameter.IsSaved = true; Parameter.product_itl = cmn_pro_product.CMN_PRO_ProductID.ToString(); returnValue.Result = cmn_pro_product.CMN_PRO_ProductID; } else { //edit Parameter.IsEdited = true; Dict product_name = new Dict("cmn_pro_products"); for (int i = 0; i < DBLanguages.Length; i++) { product_name.AddEntry(DBLanguages[i].CMN_LanguageID, Parameter.product_name); } product.Product_Name = product_name; var manufacturerQuery = new ORM_CMN_BPT_BusinessParticipant.Query(); manufacturerQuery.Tenant_RefID = securityTicket.TenantID; manufacturerQuery.IsDeleted = false; manufacturerQuery.CMN_BPT_BusinessParticipantID = Guid.Parse(Parameter.product_manufacturer_id); ORM_CMN_BPT_BusinessParticipant manufacturer = new ORM_CMN_BPT_BusinessParticipant(); if (Parameter.product_manufacturer_id == Guid.Empty.ToString()) { manufacturer.CMN_BPT_BusinessParticipantID = new Guid(); manufacturer.DisplayName = Parameter.product_manufacturer; manufacturer.IsCompany = true; manufacturer.IsNaturalPerson = false; manufacturer.Tenant_RefID = securityTicket.TenantID; manufacturer.Creation_Timestamp = DateTime.Now; manufacturer.Modification_Timestamp = DateTime.Now; manufacturer.Save(Connection, Transaction); } else { manufacturer = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, manufacturerQuery).Single(); } product.ProducingBusinessParticipant_RefID = manufacturer.CMN_BPT_BusinessParticipantID; var package_info = ORM_CMN_PRO_PAC_PackageInfo.Query.Search(Connection, Transaction, new ORM_CMN_PRO_PAC_PackageInfo.Query() { CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); string amount = String.Empty; string unit = String.Empty; foreach (char c in Parameter.product_strength) { // Do not use IsDigit as it will include more than the characters 0 through to 9 if (c >= '0' && c <= '9') { amount += c; } else { unit += c; } } package_info.PackageContent_Amount = Int32.Parse(amount); package_info.PackageContent_DisplayLabel = amount; package_info.Save(Connection, Transaction); var unitQuery = new ORM_CMN_Unit.Query(); unitQuery.IsDeleted = false; unitQuery.Tenant_RefID = securityTicket.TenantID; unitQuery.ISOCode = unit; var cmn_unit = ORM_CMN_Unit.Query.Search(Connection, Transaction, unitQuery).FirstOrDefault(); if (cmn_unit == null) { cmn_unit = new ORM_CMN_Unit(); cmn_unit.CMN_UnitID = Guid.NewGuid(); cmn_unit.Tenant_RefID = securityTicket.TenantID; cmn_unit.Creation_Timestamp = DateTime.Now; cmn_unit.Modification_Timestamp = DateTime.Now; cmn_unit.ISOCode = unit; cmn_unit.Save(Connection, Transaction); } package_info.PackageContent_MeasuredInUnit_RefID = cmn_unit.CMN_UnitID; package_info.Save(Connection, Transaction); var dosage_formQuery = new ORM_HEC_Product_DosageForm.Query(); dosage_formQuery.Tenant_RefID = securityTicket.TenantID; dosage_formQuery.IsDeleted = false; dosage_formQuery.GlobalPropertyMatchingID = Parameter.product_form; var dosage_form = ORM_HEC_Product_DosageForm.Query.Search(Connection, Transaction, dosage_formQuery).SingleOrDefault(); if (dosage_form == null) { dosage_form = new ORM_HEC_Product_DosageForm(); dosage_form.HEC_Product_DosageFormID = Guid.NewGuid(); dosage_form.GlobalPropertyMatchingID = Parameter.product_form; dosage_form.Tenant_RefID = securityTicket.TenantID; dosage_form.Creation_Timestamp = DateTime.Now; dosage_form.Modification_Timestamp = DateTime.Now; Dict form_name = new Dict("hec_product_dosageforms"); for (int i = 0; i < DBLanguages.Length; i++) { form_name.AddEntry(DBLanguages[i].CMN_LanguageID, Parameter.product_form); } dosage_form.DosageForm_Name = form_name; dosage_form.Save(Connection, Transaction); } ORM_HEC_Product hec_product = ORM_HEC_Product.Query.Search(Connection, Transaction, new ORM_HEC_Product.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Ext_PRO_Product_RefID = product.CMN_PRO_ProductID }).Single(); hec_product.ProductDosageForm_RefID = dosage_form.HEC_Product_DosageFormID; hec_product.Save(Connection, Transaction); ORM_HEC_PRO_Product_Component product_component = ORM_HEC_PRO_Product_Component.Query.Search(Connection, Transaction, new ORM_HEC_PRO_Product_Component.Query() { HEC_PRO_Product_RefID = hec_product.HEC_ProductID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_HEC_PRO_Component pro_component = ORM_HEC_PRO_Component.Query.Search(Connection, Transaction, new ORM_HEC_PRO_Component.Query() { HEC_PRO_ComponentID = product_component.HEC_PRO_Component_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_HEC_PRO_Component_SubstanceIngredient component_SubstanceIngredient = ORM_HEC_PRO_Component_SubstanceIngredient.Query.Search(Connection, Transaction, new ORM_HEC_PRO_Component_SubstanceIngredient.Query() { Component_RefID = pro_component.HEC_PRO_ComponentID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); var substanceQuery = new ORM_HEC_SUB_Substance.Query(); substanceQuery.IsDeleted = false; substanceQuery.Tenant_RefID = securityTicket.TenantID; substanceQuery.HEC_SUB_SubstanceID = Parameter.substance_id; var substance = ORM_HEC_SUB_Substance.Query.Search(Connection, Transaction, substanceQuery).SingleOrDefault(); component_SubstanceIngredient.Substance_RefID = substance.HEC_SUB_SubstanceID; component_SubstanceIngredient.Save(Connection, Transaction); } } else { //delete ORM_CMN_PRO_Product product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, new ORM_CMN_PRO_Product.Query() { Tenant_RefID = securityTicket.TenantID, CMN_PRO_ProductID = Guid.Parse(Parameter.product_itl), IsDeleted = false }).Single(); ORM_HEC_Product hec_product = ORM_HEC_Product.Query.Search(Connection, Transaction, new ORM_HEC_Product.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Ext_PRO_Product_RefID = product.CMN_PRO_ProductID }).Single(); ORM_CMN_PRO_PAC_PackageInfo package_info = ORM_CMN_PRO_PAC_PackageInfo.Query.Search(Connection, Transaction, new ORM_CMN_PRO_PAC_PackageInfo.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID }).Single(); ORM_HEC_PRO_Product_Component product_component = ORM_HEC_PRO_Product_Component.Query.Search(Connection, Transaction, new ORM_HEC_PRO_Product_Component.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, HEC_PRO_Product_RefID = hec_product.HEC_ProductID }).Single(); ORM_HEC_PRO_Component pro_component = ORM_HEC_PRO_Component.Query.Search(Connection, Transaction, new ORM_HEC_PRO_Component.Query() { HEC_PRO_ComponentID = product_component.HEC_PRO_Component_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_HEC_PRO_Component_SubstanceIngredient component_SubstanceIngredient = ORM_HEC_PRO_Component_SubstanceIngredient.Query.Search(Connection, Transaction, new ORM_HEC_PRO_Component_SubstanceIngredient.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Component_RefID = pro_component.HEC_PRO_ComponentID }).Single(); component_SubstanceIngredient.IsDeleted = true; component_SubstanceIngredient.Save(Connection, Transaction); pro_component.IsDeleted = true; pro_component.Save(Connection, Transaction); product_component.IsDeleted = true; product_component.Save(Connection, Transaction); package_info.IsDeleted = true; package_info.Save(Connection, Transaction); product.IsDeleted = true; product.Save(Connection, Transaction); returnValue.Result = product.CMN_PRO_ProductID; } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5AR_SA_1525 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var languageQuery = new ORM_CMN_Language.Query(); languageQuery.Tenant_RefID = securityTicket.TenantID; languageQuery.IsDeleted = false; var languages = ORM_CMN_Language.Query.Search(Connection, Transaction, languageQuery); var product = new ORM_CMN_PRO_Product(); if (Parameter.ArticleID == Guid.Empty) { #region ORM_CMN_PRO_Product product = new ORM_CMN_PRO_Product(); product.CMN_PRO_ProductID = Guid.NewGuid(); product.ProductITL = Guid.NewGuid().ToString(); product.IsProduct_Article = true; product.IsProductAvailableForOrdering = true; product.IsImportedFromExternalCatalog = false; product.Product_Name = new Dict(ORM_CMN_PRO_Product.TableName); product.Product_Description = new Dict(ORM_CMN_PRO_Product.TableName); product.PackageInfo_RefID = Guid.NewGuid(); product.Creation_Timestamp = DateTime.Now; product.Tenant_RefID = securityTicket.TenantID; product.Save(Connection, Transaction); #endregion #region CustomArticles Group var customerArticlesGroupID = Guid.Empty; var customArticlesGlobalMatching = EnumUtils.GetEnumDescription(EProductGroup.CustomArticles); var customerArticlesGroup = ORM_CMN_PRO_ProductGroup.Query.Search(Connection, Transaction, new ORM_CMN_PRO_ProductGroup.Query() { GlobalPropertyMatchingID = customArticlesGlobalMatching, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); if (customerArticlesGroup == null || customerArticlesGroup.Count() == 0) { var group = new ORM_CMN_PRO_ProductGroup(); group.CMN_PRO_ProductGroupID = Guid.NewGuid(); group.GlobalPropertyMatchingID = customArticlesGlobalMatching; group.ProductGroup_Name = new Dict(ORM_CMN_PRO_ProductGroup.TableName); foreach (var language in languages) { group.ProductGroup_Name.AddEntry(language.CMN_LanguageID, "Custom Articles"); } group.ProductGroup_Description = new Dict(ORM_CMN_PRO_ProductGroup.TableName); group.IsDeleted = false; group.Creation_Timestamp = DateTime.Now; group.Tenant_RefID = securityTicket.TenantID; group.Save(Connection, Transaction); customerArticlesGroupID = group.CMN_PRO_ProductGroupID; } else { customerArticlesGroupID = customerArticlesGroup.Single().CMN_PRO_ProductGroupID; } var product2Group = new ORM_CMN_PRO_Product_2_ProductGroup(); product2Group.AssignmentID = Guid.NewGuid(); product2Group.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product2Group.CMN_PRO_ProductGroup_RefID = customerArticlesGroupID; product2Group.Creation_Timestamp = DateTime.Now; product2Group.Tenant_RefID = securityTicket.TenantID; product2Group.Save(Connection, Transaction); #endregion } else { product.Load(Connection, Transaction, Parameter.ArticleID); } #region ORM_CMN_PRO_Product product.Product_Number = Parameter.PZN; foreach (var language in languages) { product.Product_Name.UpdateEntry(language.CMN_LanguageID, Parameter.ArticleName); } foreach (var language in languages) { product.Product_Description.UpdateEntry(language.CMN_LanguageID, Parameter.Notice); } product.DefaultStorageTemperature_min_in_kelvin = Parameter.StorageTemperatureFrom_in_kelvin; product.DefaultStorageTemperature_max_in_kelvin = Parameter.StorageTemperatureTo_in_kelvin; product.DefaultExpirationPeriod_in_sec = Parameter.Expiring_in_seconds; product.ProductType_RefID = Parameter.ArticleType_RefID; product.IsPlaceholderArticle = Parameter.IsDummy; product.IsStorage_CoolingRequired = Parameter.IsStorage_CoolingRequired; product.IsStorage_BatchNumberMandatory = Parameter.IsStorage_BatchNumberMandatory; product.IsStorage_ExpiryDateMandatory = Parameter.IsStorage_ExpiryDateMandatory; product.IsProductPartOfDefaultStock = Parameter.IsProduct_PartOfDefaultStock; var xml = new ProductAdditionalInfoXML() { IsPharmacyOnlyDistribution = Parameter.IsProduct_PharmacyOnlyDistribution }; product.ProductAdditionalInfoXML = xml.ToPayload(); product.ProductSuccessor_RefID = Parameter.ProductSuccessor_RefID; product.Save(Connection, Transaction); #endregion #region ORM_HEC_Product var query = new ORM_HEC_Product.Query(); query.Ext_PRO_Product_RefID = product.CMN_PRO_ProductID; query.IsDeleted = false; query.Tenant_RefID = securityTicket.TenantID; var hecProduct = ORM_HEC_Product.Query.Search(Connection, Transaction, query).SingleOrDefault(); if (hecProduct == null) { hecProduct = new ORM_HEC_Product(); hecProduct.HEC_ProductID = Guid.NewGuid(); hecProduct.Ext_PRO_Product_RefID = product.CMN_PRO_ProductID; hecProduct.Creation_Timestamp = DateTime.Now; hecProduct.Tenant_RefID = securityTicket.TenantID; } hecProduct.ProductDosageForm_RefID = Parameter.DosageForm_RefID; hecProduct.IsProduct_AddictiveDrug = Parameter.IsProduct_AddictiveDrug; hecProduct.Save(Connection, Transaction); #endregion #region ORM_CMN_PRO_Product_2_ProductGroup var groupQuery = new ORM_CMN_PRO_Product_2_ProductGroup.Query(); groupQuery.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; groupQuery.IsDeleted = false; groupQuery.Tenant_RefID = securityTicket.TenantID; var alreadyPersistedGroups = ORM_CMN_PRO_Product_2_ProductGroup.Query.Search(Connection, Transaction, groupQuery); //delete removed groups foreach (var item in alreadyPersistedGroups) { var globalGroup = new ORM_CMN_PRO_ProductGroup(); globalGroup.Load(Connection, Transaction, item.CMN_PRO_ProductGroup_RefID); if (!Parameter.ArticleGroup_RefIDs.Contains(item.CMN_PRO_ProductGroup_RefID) && String.IsNullOrEmpty(globalGroup.GlobalPropertyMatchingID)) { item.IsDeleted = true; item.Save(Connection, Transaction); } } //add new groups foreach (var groupID in Parameter.ArticleGroup_RefIDs) { if (!alreadyPersistedGroups.Select(i => i.CMN_PRO_ProductGroup_RefID).Contains(groupID)) { var group = new ORM_CMN_PRO_Product_2_ProductGroup(); group.AssignmentID = Guid.NewGuid(); group.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; group.CMN_PRO_ProductGroup_RefID = groupID; group.Creation_Timestamp = DateTime.Now; group.Tenant_RefID = securityTicket.TenantID; group.Save(Connection, Transaction); } } #endregion #region ORM_CMN_PRO_Product_SalesTaxAssignmnet var salesTaxQuery = new ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query(); salesTaxQuery.Product_RefID = product.CMN_PRO_ProductID; salesTaxQuery.IsDeleted = false; salesTaxQuery.Tenant_RefID = securityTicket.TenantID; var salesTax = ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query.Search(Connection, Transaction, salesTaxQuery).SingleOrDefault(); if (salesTax == null) { salesTax = new ORM_CMN_PRO_Product_SalesTaxAssignmnet(); salesTax.CMN_PRO_Product_SalesTaxAssignmnetID = Guid.NewGuid(); salesTax.Product_RefID = product.CMN_PRO_ProductID; salesTax.Creation_Timestamp = DateTime.Now; salesTax.Tenant_RefID = securityTicket.TenantID; } salesTax.ApplicableSalesTax_RefID = Parameter.VAT_RefID; salesTax.Save(Connection, Transaction); #endregion #region ORM_CMN_PRO_Product_2_ProductCode var product2CodeQuery = new ORM_CMN_PRO_Product_2_ProductCode.Query(); product2CodeQuery.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product2CodeQuery.Tenant_RefID = securityTicket.TenantID; product2CodeQuery.IsDeleted = false; var productCodeAssignment = ORM_CMN_PRO_Product_2_ProductCode.Query.Search(Connection, Transaction, product2CodeQuery).SingleOrDefault(); if (productCodeAssignment == null) { #region ORM_CMN_PRO_ProductCode //Get Product Code Type or create it if not exist var eanID = DMProductCodeTypes.Get_ProductCodeType_ByGlobalMatchingID(Connection, Transaction, EProductCodeType.EAN, securityTicket); var productCode = new ORM_CMN_PRO_ProductCode(); productCode.CMN_PRO_ProductCodeID = Guid.NewGuid(); productCode.ProductCode_Type_RefID = eanID; productCode.ProductCode_Value = Parameter.EAN; productCode.Creation_Timestamp = DateTime.Now; productCode.Tenant_RefID = securityTicket.TenantID; productCode.Save(Connection, Transaction); #endregion #region ORM_CMN_PRO_Product_2_ProductCode var product2Code = new ORM_CMN_PRO_Product_2_ProductCode(); product2Code.AssignmentID = Guid.NewGuid(); product2Code.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product2Code.CMN_PRO_ProductCode_RefID = productCode.CMN_PRO_ProductCodeID; product2Code.Creation_Timestamp = DateTime.Now; product2Code.Tenant_RefID = securityTicket.TenantID; product2Code.Save(Connection, Transaction); #endregion } else { #region ORM_CMN_PRO_ProductCode var productCode = new ORM_CMN_PRO_ProductCode(); productCode.Load(Connection, Transaction, productCodeAssignment.CMN_PRO_ProductCode_RefID); productCode.ProductCode_Value = Parameter.EAN; productCode.Save(Connection, Transaction); #endregion } #endregion #region ORM_CMN_PRO_PackageInfo var packageInfo = new ORM_CMN_PRO_PAC_PackageInfo(); packageInfo.Load(Connection, Transaction, product.PackageInfo_RefID); if (packageInfo.CMN_PRO_PAC_PackageInfoID == Guid.Empty) { packageInfo = new ORM_CMN_PRO_PAC_PackageInfo(); packageInfo.CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID; packageInfo.Creation_Timestamp = DateTime.Now; packageInfo.Tenant_RefID = securityTicket.TenantID; } packageInfo.PackageContent_Amount = PackageAmountUtils.GetPackageAmount(Parameter.UnitAmount); packageInfo.PackageContent_DisplayLabel = Parameter.UnitAmount; packageInfo.PackageContent_MeasuredInUnit_RefID = Parameter.Unit_RefID; packageInfo.Save(Connection, Transaction); #endregion #region Producer var producer = new ORM_CMN_BPT_BusinessParticipant(); producer.Load(Connection, Transaction, product.ProducingBusinessParticipant_RefID); if (producer.CMN_BPT_BusinessParticipantID == Guid.Empty) { producer.CMN_BPT_BusinessParticipantID = Guid.NewGuid(); producer.IsCompany = true; producer.Tenant_RefID = securityTicket.TenantID; producer.Creation_Timestamp = DateTime.Now; product.ProducingBusinessParticipant_RefID = producer.CMN_BPT_BusinessParticipantID; product.Save(Connection, Transaction); } producer.DisplayName = Parameter.Producer; producer.Save(Connection, Transaction); #endregion returnValue.Result = product.CMN_PRO_ProductID; return(returnValue); #endregion UserCode }
protected static FR_L3PR_IoUPfSC_1326_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L3PR_IoUPfSC_1326 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3PR_IoUPfSC_1326_Array(); //Put your code here var importedProducts = new List <L3PR_IoUPfSC_1326>(); #region ImportOrUpdate Product's BaseData P_L3PR_IoUPBD_1614 param = new P_L3PR_IoUPBD_1614(); param.Products = Parameter.Products.Select(i => i.Product).ToArray(); var importedProductsBaseData = cls_ImportOrUpdate_Products_BaseData.Invoke(Connection, Transaction, param, securityTicket).Result; #endregion //TODO: for each product saved, create or update product_2_productGroup foreach (var importedProductBaseData in importedProductsBaseData) { var currentParameter = Parameter.Products.SingleOrDefault(i => i.Product.ProductITL == importedProductBaseData.ProductITL); var product = new ORM_CMN_PRO_Product(); product.Load(Connection, Transaction, importedProductBaseData.ProductID); if (!importedProductBaseData.IsAlreadyExisted) { product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = Parameter.SubscribedCatalogID; product.IsImportedFromExternalCatalog = true; product.Save(Connection, Transaction); ORM_CMN_PRO_Product_2_ProductGroup product_2_productGroup = new ORM_CMN_PRO_Product_2_ProductGroup(); product_2_productGroup.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product_2_productGroup.CMN_PRO_ProductGroup_RefID = Parameter.ProductGroupID; product_2_productGroup.Tenant_RefID = securityTicket.TenantID; product_2_productGroup.Creation_Timestamp = DateTime.Now; product_2_productGroup.Save(Connection, Transaction); } else { #region Update Product_2_ProductGroup var isAlreadyInGroup = ORM_CMN_PRO_Product_2_ProductGroup.Query.Exists(Connection, Transaction, new ORM_CMN_PRO_Product_2_ProductGroup.Query() { CMN_PRO_Product_RefID = product.CMN_PRO_ProductID, CMN_PRO_ProductGroup_RefID = Parameter.ProductGroupID, Tenant_RefID = securityTicket.TenantID }); if (!isAlreadyInGroup) { ORM_CMN_PRO_Product_2_ProductGroup product_2_productGroup = new ORM_CMN_PRO_Product_2_ProductGroup(); product_2_productGroup.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product_2_productGroup.CMN_PRO_ProductGroup_RefID = Parameter.ProductGroupID; product_2_productGroup.Tenant_RefID = securityTicket.TenantID; product_2_productGroup.Creation_Timestamp = DateTime.Now; product_2_productGroup.Save(Connection, Transaction); } #endregion } #region Default Price var price = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, new ORM_CMN_SLS_Price.Query() { PricelistRelease_RefID = Parameter.PriceListReleaseID, CMN_PRO_Product_RefID = product.CMN_PRO_ProductID, Tenant_RefID = securityTicket.TenantID, CMN_Currency_RefID = Parameter.CatalogCurrencyID, IsDeleted = false }).SingleOrDefault(); if (price == null) { price = new ORM_CMN_SLS_Price(); price.CMN_SLS_PriceID = Guid.NewGuid(); price.PricelistRelease_RefID = Parameter.PriceListReleaseID; price.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; price.CMN_Currency_RefID = Parameter.CatalogCurrencyID; price.Tenant_RefID = securityTicket.TenantID; price.Creation_Timestamp = DateTime.Now; } price.PriceAmount = currentParameter.Price; price.Save(Connection, Transaction); #endregion importedProducts.Add(new L3PR_IoUPfSC_1326() { ProductID = product.CMN_PRO_ProductID, ProductITL = product.ProductITL }); } returnValue.Result = importedProducts.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L5SO_RSP_1524 Execute(DbConnection Connection, DbTransaction Transaction, P_L5SO_RSP_1524 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L5SO_RSP_1524(); returnValue.Result = new L5SO_RSP_1524(); var shipmentPositionToReplace = new ORM_LOG_SHP_Shipment_Position(); shipmentPositionToReplace.Load(Connection, Transaction, Parameter.PositionID); var startProduct = new ORM_CMN_PRO_Product(); startProduct.Load(Connection, Transaction, shipmentPositionToReplace.CMN_PRO_Product_RefID); var finalProduct = new ORM_CMN_PRO_Product(); finalProduct.Load(Connection, Transaction, Parameter.ProductID); shipmentPositionToReplace.ShipmentPosition_PricePerUnitValueWithoutTax = Parameter.Price; shipmentPositionToReplace.ShipmentPosition_ValueWithoutTax = Parameter.Price * (Decimal)shipmentPositionToReplace.QuantityToShip; shipmentPositionToReplace.CMN_PRO_Product_RefID = Parameter.ProductID; returnValue.Result.ReplacedPosition = new FR_Guid(shipmentPositionToReplace.Save(Connection, Transaction), shipmentPositionToReplace.LOG_SHP_Shipment_PositionID).Result; P_L2LN_GALFTID_1530 langParam = new P_L2LN_GALFTID_1530(); langParam.Tenant_RefID = securityTicket.TenantID; SessionSecurityTicket fakeTicket = new SessionSecurityTicket(); var DBLanguages = cls_Get_All_Languages_ForTenantID.Invoke(Connection, Transaction, langParam, fakeTicket).Result; var languages = DBLanguages.Select(i => new ISOLanguage() { ISO = i.ISO_639_1, LanguageID = i.CMN_LanguageID }).ToList(); var dicts = EnumUtils.GetDictObjectsForStaticListData <ECustomMessages>(ResourceFilePath.CustomMessages, ORM_LOG_SHP_Shipment_Note.TableName, languages); ORM_LOG_SHP_Shipment_Note note = new ORM_LOG_SHP_Shipment_Note(); note.LOG_SHP_Shipment_NoteID = Guid.NewGuid(); note.Shipment_Header_RefID = Parameter.ShipmentHeaderID; note.Comment = String.Format(dicts["comment.article-replaced"].Contents[1].Content, startProduct.Product_Name.Contents[0].Content, startProduct.Product_Number, finalProduct.Product_Name.Contents[0].Content, finalProduct.Product_Number); note.Tenant_RefID = securityTicket.TenantID; note.IsNotePrintedOnDeliveryPaper = true; note.Save(Connection, Transaction); returnValue.Result.ReplacedPosition = new FR_Guid(shipmentPositionToReplace.Save(Connection, Transaction), shipmentPositionToReplace.LOG_SHP_Shipment_PositionID).Result; ORM_LOG_RSV_Reservation.Query.SoftDelete(Connection, Transaction, new ORM_LOG_RSV_Reservation.Query { LOG_SHP_Shipment_Position_RefID = shipmentPositionToReplace.LOG_SHP_Shipment_PositionID, IsDeleted = false }); #region CommentedUseful #endregion cls_Update_Current_TotalValue_on_ShipmentHeader_from_Positions.Invoke(Connection, Transaction, new P_L5SO_UCTVoSHfP_1549 { ShipmentHeaderID = Parameter.ShipmentHeaderID }, securityTicket); return(returnValue); #endregion UserCode }
protected static FR_L3CCfTaIC_1526_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L3CCfTaIC_1526 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3CCfTaIC_1526_Array(); //Put your code here List <L3CCfTaIC_1526> ProductList = new List <L3CCfTaIC_1526>(); returnValue.Result = ProductList.ToArray(); var _service = CatalogServiceFactory.GetSubscriptionService(); //make data to send to Architecture so that they will know which catalog to update var subscriptionRequest = new SubscriptionRequest(); subscriptionRequest.CatalogCode = Parameter.CatalogCodeITL; Customer customer = new Customer(); // for only Tenant specific cases add Business Participant ID if (Parameter.SubscribedBy_BusinessParticipant_RefID != Guid.Empty) { customer.BusinessParticipantITL = Parameter.SubscribedBy_BusinessParticipant_RefID.ToString(); } else { customer.BusinessParticipantITL = securityTicket.TenantID.ToString(); } customer.TenantITL = securityTicket.TenantID.ToString(); customer.Name = Parameter.ClientName; // customer.SourceRealm = BOp.Infrastructure.PropertyRepository.Instance.RealmID.ToString(); subscriptionRequest.Customer = customer; /* * @see if catalog with the same ITL for that bussinessParticipant exists * */ var subscribedCatalogQuery = new ORM_CMN_PRO_SubscribedCatalog.Query(); subscribedCatalogQuery.Tenant_RefID = securityTicket.TenantID; subscribedCatalogQuery.CatalogCodeITL = Parameter.CatalogCodeITL; if (Parameter.SubscribedBy_BusinessParticipant_RefID != Guid.Empty) { subscribedCatalogQuery.SubscribedBy_BusinessParticipant_RefID = Parameter.SubscribedBy_BusinessParticipant_RefID; } subscribedCatalogQuery.IsDeleted = false; var subscribedCatalog = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, subscribedCatalogQuery).FirstOrDefault(); #region Get VAT var defaultCountryISOCode = cls_Get_DefaultCountryISOCode_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result; var param = new P_L3TX_GTfCICaT_1359(); param.CountryISOCode = "DE"; var taxes = cls_Get_Taxes_for_CountryISOCode_and_TenantID.Invoke(Connection, Transaction, param, securityTicket).Result; //if there are no taxes for tenant Guid countryID = Guid.Empty; if (taxes.Length == 0) { var country = cls_Get_AllCountries_for_TenantID.Invoke(Connection, Transaction, securityTicket).Result.FirstOrDefault(); if (country != null) { countryID = country.CMN_CountryID; } } else { countryID = taxes.First().CMN_CountryID; // ti slucajni posmatracu ovog koda nemoj zameriti na ovakvom resenju. } #endregion #region save if (subscribedCatalog == null) { /* * @save ORM_CMN_PRO_SubscribedCatalog * */ subscribedCatalog = new ORM_CMN_PRO_SubscribedCatalog(); subscribedCatalog.CMN_PRO_SubscribedCatalogID = Guid.NewGuid(); subscribedCatalog.CatalogCodeITL = Parameter.CatalogCodeITL; subscribedCatalog.SubscribedCatalog_Name = Parameter.CatalogName; subscribedCatalog.SubscribedBy_BusinessParticipant_RefID = Parameter.SubscribedBy_BusinessParticipant_RefID; subscribedCatalog.Tenant_RefID = securityTicket.TenantID; subscribedCatalog.SubscribedCatalog_ValidFrom = Parameter.ValidFrom_Date; subscribedCatalog.SubscribedCatalog_ValidThrough = Parameter.ValidTo_Date; subscribedCatalog.SubscribedCatalog_Description = Parameter.CatalogDescription; subscribedCatalog.Creation_Timestamp = DateTime.Now; subscribedCatalog.IsDeleted = false; subscribedCatalog.SubscribedCatalog_CurrentRevision = Parameter.CatalogVersion; subscribedCatalog.IsCatalogPublic = Parameter.IsCatalogPublic; // check if language with that ISO exists for Tenant (Lower, exmpl de) var languageQuery = new ORM_CMN_Language.Query(); languageQuery.ISO_639_1 = Parameter.CatalogLanguage_ISO_639_1_codes.ToLower(); languageQuery.Tenant_RefID = securityTicket.TenantID; languageQuery.IsDeleted = false; var language = ORM_CMN_Language.Query.Search(Connection, Transaction, languageQuery).FirstOrDefault(); // if language does not exist for that Tenant if (language == null) { //check if language with that ISO exists for Tenant (Upper exmpl DE) languageQuery = new ORM_CMN_Language.Query(); languageQuery.ISO_639_1 = Parameter.CatalogLanguage_ISO_639_1_codes.ToUpper(); languageQuery.Tenant_RefID = securityTicket.TenantID; languageQuery.IsDeleted = false; language = ORM_CMN_Language.Query.Search(Connection, Transaction, languageQuery).FirstOrDefault(); // if language does not exist for that Tenant if (language == null) { ORM_CMN_Language newLanguage = new ORM_CMN_Language(); newLanguage.CMN_LanguageID = Guid.NewGuid(); newLanguage.ISO_639_1 = Parameter.CatalogLanguage_ISO_639_1_codes; newLanguage.Creation_Timestamp = DateTime.Now; newLanguage.Tenant_RefID = securityTicket.TenantID; newLanguage.IsDeleted = false; newLanguage.Save(Connection, Transaction); subscribedCatalog.SubscribedCatalog_Language_RefID = newLanguage.CMN_LanguageID; } else { subscribedCatalog.SubscribedCatalog_Language_RefID = language.CMN_LanguageID; } } else { subscribedCatalog.SubscribedCatalog_Language_RefID = language.CMN_LanguageID; } // check if currency with that ISO exists for Tenant var currencyQuery = new ORM_CMN_Currency.Query(); currencyQuery.ISO4127 = Parameter.CatalogCurrency_ISO_4217; currencyQuery.Tenant_RefID = securityTicket.TenantID; currencyQuery.IsDeleted = false; var currency = ORM_CMN_Currency.Query.Search(Connection, Transaction, currencyQuery).FirstOrDefault(); if (currency == null) { ORM_CMN_Currency newCurrency = new ORM_CMN_Currency(); newCurrency.CMN_CurrencyID = Guid.NewGuid(); newCurrency.ISO4127 = Parameter.CatalogCurrency_ISO_4217; newCurrency.Tenant_RefID = securityTicket.TenantID; newCurrency.Creation_Timestamp = DateTime.Now; newCurrency.Save(Connection, Transaction); subscribedCatalog.SubscribedCatalog_Currency_RefID = newCurrency.CMN_CurrencyID; } else { subscribedCatalog.SubscribedCatalog_Currency_RefID = currency.CMN_CurrencyID; } #region product group /* * @Search product group * */ ORM_CMN_PRO_ProductGroup productGroup = new ORM_CMN_PRO_ProductGroup(); var productGroupQuery = new ORM_CMN_PRO_ProductGroup.Query(); productGroupQuery.Tenant_RefID = securityTicket.TenantID; productGroupQuery.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EProductGroup.Treatment); //if (Parameter.IsCatalogPublic == false) //{ // productGroupQuery.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EProductGroup.HauseList); //} //else //{ // productGroupQuery.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EProductGroup.ABDA); //} // for only Tenant specific cases add Business Participant ID if (Parameter.SubscribedBy_BusinessParticipant_RefID != Guid.Empty) { productGroupQuery.GlobalPropertyMatchingID += Parameter.SubscribedBy_BusinessParticipant_RefID; } productGroupQuery.IsDeleted = false; productGroup = ORM_CMN_PRO_ProductGroup.Query.Search(Connection, Transaction, productGroupQuery).FirstOrDefault(); if (productGroup == null) { /* * @Create product group for products if product group for that BP and Tenent does not exist * */ productGroup = new ORM_CMN_PRO_ProductGroup(); productGroup.Tenant_RefID = securityTicket.TenantID; productGroup.Creation_Timestamp = DateTime.Now; productGroup.CMN_PRO_ProductGroupID = Guid.NewGuid(); productGroup.ProductGroup_Name = new Dict(ORM_CMN_PRO_ProductGroup.TableName); productGroupQuery.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EProductGroup.Treatment); productGroup.ProductGroup_Name.AddEntry(language.CMN_LanguageID, "Treatment Group"); //if (Parameter.IsCatalogPublic == false) //{ // productGroup.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EProductGroup.HauseList); // productGroup.ProductGroup_Name.AddEntry(language.CMN_LanguageID, "HauseList Group"); //} //else //{ // productGroup.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(EProductGroup.ABDA); // productGroup.ProductGroup_Name.AddEntry(language.CMN_LanguageID, "ABDA Group"); //} // for only Tenant specific cases add Business Participant ID if (Parameter.SubscribedBy_BusinessParticipant_RefID != Guid.Empty) { productGroup.GlobalPropertyMatchingID += Parameter.SubscribedBy_BusinessParticipant_RefID; productGroup.ProductGroup_Name.AddEntry(language.CMN_LanguageID, "Treatment Group"); } productGroup.Save(Connection, Transaction); } #endregion #region create priceList for Catalog /* * @create pricelist_Release * */ ORM_CMN_SLS_Pricelist_Release pricelist_Release = new ORM_CMN_SLS_Pricelist_Release(); pricelist_Release.CMN_SLS_Pricelist_ReleaseID = Guid.NewGuid(); pricelist_Release.Release_Version = "v1"; if (Parameter.IsCatalogPublic == false) { pricelist_Release.PricelistRelease_ValidFrom = Parameter.ValidFrom_Date; pricelist_Release.PricelistRelease_ValidTo = Parameter.ValidTo_Date; } else { pricelist_Release.IsPricelistAlwaysActive = true; } pricelist_Release.Tenant_RefID = securityTicket.TenantID; pricelist_Release.Creation_Timestamp = DateTime.Now; pricelist_Release.Pricelist_RefID = Guid.NewGuid();//priceList.CMN_SLS_PricelistID pricelist_Release.Save(Connection, Transaction); /* * @create pricelist * */ ORM_CMN_SLS_Pricelist priceList = new ORM_CMN_SLS_Pricelist(); priceList.CMN_SLS_PricelistID = pricelist_Release.Pricelist_RefID; var DBLanguages = cls_Get_All_Languages.Invoke(Connection, Transaction, securityTicket).Result.ToList(); Dict nameDict = new Dict("cmn_sls_pricelist"); if (Parameter.IsCatalogPublic == false) { for (int i = 0; i < DBLanguages.Count; i++) { nameDict.AddEntry(DBLanguages[i].CMN_LanguageID, Parameter.CatalogName + "_" + Parameter.ValidFrom_Date.ToShortDateString() + "_" + Parameter.ValidTo_Date.ToShortDateString()); } } else { for (int i = 0; i < DBLanguages.Count; i++) { nameDict.AddEntry(DBLanguages[i].CMN_LanguageID, "ABDA_PriceList"); } } priceList.Pricelist_Name = nameDict; priceList.Tenant_RefID = securityTicket.TenantID; priceList.Creation_Timestamp = DateTime.Now; priceList.Save(Connection, Transaction); #endregion if (Parameter.IsCatalogPublic == false) { #region create and save products in product group and give product its price , product amout and measure unit /* * @create and save products in product group * */ bool isAlreadyInABDA = false; foreach (var item in Parameter.Products) { ORM_CMN_PRO_Product product = new ORM_CMN_PRO_Product(); // only for Tenant specific cases add Business Participant ID (!Lucentis) if (Parameter.SubscribedBy_BusinessParticipant_RefID == Guid.Empty) { var productQuery = new ORM_CMN_PRO_Product.Query(); productQuery.ProductITL = item.ProductITL; productQuery.Tenant_RefID = securityTicket.TenantID; productQuery.IsDeleted = false; productQuery.IsProductAvailableForOrdering = true; product = ORM_CMN_PRO_Product.Query.Search(Connection, Transaction, productQuery).FirstOrDefault(); //if it is not in ABDA if (product == null) { product = new ORM_CMN_PRO_Product(); product.CMN_PRO_ProductID = Guid.NewGuid(); product.Creation_Timestamp = DateTime.Now; product.Tenant_RefID = securityTicket.TenantID; product.ProductITL = item.ProductITL; product.Product_Name = item.Product_Name; product.Product_Description = item.Product_Description; product.Product_Number = item.Product_Number; product.IsProduct_Article = item.IsProduct_Article; product.IsProductAvailableForOrdering = true; product.PackageInfo_RefID = Guid.NewGuid();//packageInfo.CMN_PRO_PAC_PackageInfoID isAlreadyInABDA = false; } else { isAlreadyInABDA = true; } } else { product.CMN_PRO_ProductID = Guid.NewGuid(); product.Creation_Timestamp = DateTime.Now; product.Tenant_RefID = securityTicket.TenantID; product.ProductITL = item.ProductITL; product.Product_Name = item.Product_Name; product.Product_Description = item.Product_Description; product.Product_Number = item.Product_Number; product.IsProduct_Article = item.IsProduct_Article; product.IsProductAvailableForOrdering = true; product.PackageInfo_RefID = Guid.NewGuid();//packageInfo.CMN_PRO_PAC_PackageInfoID isAlreadyInABDA = false; } product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = subscribedCatalog.CMN_PRO_SubscribedCatalogID; product.Save(Connection, Transaction); L3CCfTaIC_1526 pro = new L3CCfTaIC_1526(); pro.ProductID = product.CMN_PRO_ProductID; if (product.IsProduct_Article) { pro.Dosage = item.Dosage; } pro.isEdit = false; ProductList.Add(pro); ORM_CMN_PRO_Product_2_ProductGroup product_2_productGroup = new ORM_CMN_PRO_Product_2_ProductGroup(); product_2_productGroup.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product_2_productGroup.CMN_PRO_ProductGroup_RefID = productGroup.CMN_PRO_ProductGroupID; product_2_productGroup.Tenant_RefID = securityTicket.TenantID; product_2_productGroup.Creation_Timestamp = DateTime.Now; product_2_productGroup.Save(Connection, Transaction); if (isAlreadyInABDA == false) { ORM_CMN_SLS_Price price = new ORM_CMN_SLS_Price(); price.CMN_SLS_PriceID = Guid.NewGuid(); price.Tenant_RefID = securityTicket.TenantID; price.Creation_Timestamp = DateTime.Now; price.PricelistRelease_RefID = pricelist_Release.CMN_SLS_Pricelist_ReleaseID; price.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; price.PriceAmount = item.Price; price.CMN_Currency_RefID = subscribedCatalog.SubscribedCatalog_Currency_RefID; price.Save(Connection, Transaction); //add amount and Measure ORM_CMN_PRO_PAC_PackageInfo packageInfo = new ORM_CMN_PRO_PAC_PackageInfo(); packageInfo.CMN_PRO_PAC_PackageInfoID = product.PackageInfo_RefID; packageInfo.Tenant_RefID = securityTicket.TenantID; packageInfo.Creation_Timestamp = DateTime.Now; packageInfo.PackageContent_Amount = item.Amount; //check if MeasureUnit exists for this Tenant var unitsQuery = new ORM_CMN_Unit.Query(); unitsQuery.Tenant_RefID = securityTicket.TenantID; unitsQuery.ISOCode = item.MeasuredInUnit_ISO_um_ums; unitsQuery.IsDeleted = false; var measuredInUnit = ORM_CMN_Unit.Query.Search(Connection, Transaction, unitsQuery).FirstOrDefault(); if (measuredInUnit == null) { ORM_CMN_Unit newMeasuredInUnit = new ORM_CMN_Unit(); newMeasuredInUnit.Tenant_RefID = securityTicket.TenantID; newMeasuredInUnit.Creation_Timestamp = DateTime.Now; newMeasuredInUnit.ISOCode = item.MeasuredInUnit_ISO_um_ums; newMeasuredInUnit.CMN_UnitID = Guid.NewGuid(); newMeasuredInUnit.Save(Connection, Transaction); packageInfo.PackageContent_MeasuredInUnit_RefID = newMeasuredInUnit.CMN_UnitID; } else { packageInfo.PackageContent_MeasuredInUnit_RefID = measuredInUnit.CMN_UnitID; } packageInfo.Save(Connection, Transaction); if (countryID != Guid.Empty)// if there is a country for this Tenant { #region Create Taxes double productVAT = 0; Double.TryParse(item.VAT, out productVAT); var tax = taxes.Where(i => i.TaxRate == productVAT).SingleOrDefault(); if (tax == default(L3TX_GTfCICaT_1359)) { #region CreateTax var saveTaxParam = new P_L3TX_STX_1119(); saveTaxParam.ACC_TAX_TaxeID = Guid.Empty; saveTaxParam.TaxName = new Dict(ORM_ACC_TAX_Tax.TableName); saveTaxParam.TaxName.AddEntry(language.CMN_LanguageID, productVAT.ToString()); saveTaxParam.TaxRate = productVAT; if (taxes.Length != 0) { saveTaxParam.EconomicRegion_RefID = taxes.First().CMN_EconomicRegionID; saveTaxParam.Country_RefID = taxes.First().CMN_CountryID; } else { saveTaxParam.EconomicRegion_RefID = Guid.Empty; saveTaxParam.Country_RefID = countryID; } var saveTaxResult = cls_Save_Tax.Invoke(Connection, Transaction, saveTaxParam, securityTicket).Result; #endregion #region Update Available taxes param = new P_L3TX_GTfCICaT_1359(); param.CountryISOCode = "DE"; taxes = cls_Get_Taxes_for_CountryISOCode_and_TenantID.Invoke(Connection, Transaction, param, securityTicket).Result; tax = taxes.Where(i => i.TaxRate == productVAT).SingleOrDefault(); #endregion } var salesTax = new ORM_CMN_PRO_Product_SalesTaxAssignmnet(); salesTax.CMN_PRO_Product_SalesTaxAssignmnetID = Guid.NewGuid(); salesTax.Product_RefID = product.CMN_PRO_ProductID; salesTax.ApplicableSalesTax_RefID = tax.ACC_TAX_TaxeID; salesTax.Creation_Timestamp = DateTime.Now; salesTax.Tenant_RefID = securityTicket.TenantID; salesTax.Save(Connection, Transaction); #endregion } } } #endregion } /* * @See if Supplier already exists in database * */ ORM_CMN_BPT_Supplier supplier = new ORM_CMN_BPT_Supplier(); var supplierQuery = new ORM_CMN_BPT_BusinessParticipant.Query(); supplierQuery.BusinessParticipantITL = Parameter.SupplierData.SupplierITL; supplierQuery.Tenant_RefID = securityTicket.TenantID; supplierQuery.IsDeleted = false; var supplier_bussinessParticipant = ORM_CMN_BPT_BusinessParticipant.Query.Search(Connection, Transaction, supplierQuery).FirstOrDefault(); #region if supplier does not exist if (supplier_bussinessParticipant == null) { /* * @Make Supplier Data * */ var tenantQuery = new ORM_CMN_Tenant.Query() { TenantITL = Parameter.SupplierData.TenantITL, Tenant_RefID = securityTicket.TenantID }; var supplierTenant = ORM_CMN_Tenant.Query.Search(Connection, Transaction, tenantQuery).SingleOrDefault(); if (supplierTenant == default(ORM_CMN_Tenant)) { supplierTenant = new ORM_CMN_Tenant(); supplierTenant.CMN_TenantID = Guid.NewGuid(); supplierTenant.TenantITL = Parameter.SupplierData.TenantITL; supplierTenant.Tenant_RefID = securityTicket.TenantID; supplierTenant.Creation_Timestamp = DateTime.Now; supplierTenant.Save(Connection, Transaction); } supplier.CMN_BPT_SupplierID = Guid.NewGuid(); supplier.Ext_BusinessParticipant_RefID = Guid.NewGuid();//supplierBussinessParticipant.CMN_BPT_BusinessParticipantID supplier.Creation_Timestamp = DateTime.Now; supplier.IsDeleted = false; supplier.Tenant_RefID = securityTicket.TenantID; supplier.Save(Connection, Transaction); ORM_CMN_BPT_BusinessParticipant supplierBussinessParticipant = new ORM_CMN_BPT_BusinessParticipant(); supplierBussinessParticipant.CMN_BPT_BusinessParticipantID = supplier.Ext_BusinessParticipant_RefID; supplierBussinessParticipant.DisplayName = Parameter.SupplierData.Supplier_Name; supplierBussinessParticipant.BusinessParticipantITL = Parameter.SupplierData.SupplierITL; supplierBussinessParticipant.Creation_Timestamp = DateTime.Now; supplierBussinessParticipant.Tenant_RefID = securityTicket.TenantID; supplierBussinessParticipant.IsCompany = true; supplierBussinessParticipant.IsTenant = true; supplierBussinessParticipant.IfTenant_Tenant_RefID = supplierTenant.CMN_TenantID; supplierBussinessParticipant.IfCompany_CMN_COM_CompanyInfo_RefID = Guid.NewGuid();//companyInfo.CMN_COM_CompanyInfoID supplierBussinessParticipant.Save(Connection, Transaction); ORM_CMN_COM_CompanyInfo companyInfo = new ORM_CMN_COM_CompanyInfo(); companyInfo.CMN_COM_CompanyInfoID = supplierBussinessParticipant.IfCompany_CMN_COM_CompanyInfo_RefID; companyInfo.Creation_Timestamp = DateTime.Now; companyInfo.Tenant_RefID = securityTicket.TenantID; companyInfo.Contact_UCD_RefID = Guid.NewGuid();//universalContactDetail.CMN_UniversalContactDetailID companyInfo.Save(Connection, Transaction); ORM_CMN_UniversalContactDetail universalContactDetail = new ORM_CMN_UniversalContactDetail(); universalContactDetail.CMN_UniversalContactDetailID = companyInfo.Contact_UCD_RefID; universalContactDetail.IsCompany = true; universalContactDetail.Country_639_1_ISOCode = Parameter.SupplierData.CountryISO; universalContactDetail.Street_Name = Parameter.SupplierData.Supplier_Name; universalContactDetail.Street_Number = Parameter.SupplierData.Street_Number; universalContactDetail.ZIP = Parameter.SupplierData.ZIP; universalContactDetail.Town = Parameter.SupplierData.Town; universalContactDetail.Region_Code = Parameter.SupplierData.Region_Code; universalContactDetail.Tenant_RefID = securityTicket.TenantID; universalContactDetail.Creation_Timestamp = DateTime.Now; universalContactDetail.Save(Connection, Transaction); } #endregion #region if supplier exists , check if its data is changed else { var tenantQuery = new ORM_CMN_Tenant.Query() { TenantITL = Parameter.SupplierData.TenantITL, Tenant_RefID = securityTicket.TenantID }; var supplierTenant = ORM_CMN_Tenant.Query.Search(Connection, Transaction, tenantQuery).SingleOrDefault(); if (supplierTenant == default(ORM_CMN_Tenant)) { supplierTenant = new ORM_CMN_Tenant(); supplierTenant.CMN_TenantID = Guid.NewGuid(); supplierTenant.TenantITL = Parameter.SupplierData.TenantITL; supplierTenant.Tenant_RefID = securityTicket.TenantID; supplierTenant.Creation_Timestamp = DateTime.Now; supplierTenant.Save(Connection, Transaction); supplier_bussinessParticipant.IsTenant = true; supplier_bussinessParticipant.IfTenant_Tenant_RefID = supplierTenant.CMN_TenantID; } supplier_bussinessParticipant.DisplayName = Parameter.SupplierData.Supplier_Name; supplier_bussinessParticipant.Save(Connection, Transaction); var query = new ORM_CMN_BPT_Supplier.Query(); query.Ext_BusinessParticipant_RefID = supplier_bussinessParticipant.CMN_BPT_BusinessParticipantID; query.Tenant_RefID = securityTicket.TenantID; query.IsDeleted = false; supplier = ORM_CMN_BPT_Supplier.Query.Search(Connection, Transaction, query).First(); //edit universal contact details var companyInfoQuery = new ORM_CMN_COM_CompanyInfo.Query(); companyInfoQuery.CMN_COM_CompanyInfoID = supplier_bussinessParticipant.IfCompany_CMN_COM_CompanyInfo_RefID; companyInfoQuery.Tenant_RefID = securityTicket.TenantID; companyInfoQuery.IsDeleted = false; var companyInfo = ORM_CMN_COM_CompanyInfo.Query.Search(Connection, Transaction, companyInfoQuery).First(); var universalContactDetailQuery = new ORM_CMN_UniversalContactDetail.Query(); universalContactDetailQuery.CMN_UniversalContactDetailID = companyInfo.Contact_UCD_RefID; universalContactDetailQuery.Tenant_RefID = securityTicket.TenantID; universalContactDetailQuery.IsDeleted = false; var universalContactDetail = ORM_CMN_UniversalContactDetail.Query.Search(Connection, Transaction, universalContactDetailQuery).First(); universalContactDetail.Country_639_1_ISOCode = Parameter.SupplierData.CountryISO; universalContactDetail.Street_Name = Parameter.SupplierData.Supplier_Name; universalContactDetail.Street_Number = Parameter.SupplierData.Street_Number; universalContactDetail.ZIP = Parameter.SupplierData.ZIP; universalContactDetail.Town = Parameter.SupplierData.Town; universalContactDetail.Region_Code = Parameter.SupplierData.Region_Code; universalContactDetail.Save(Connection, Transaction); } #endregion subscribedCatalog.SubscribedCatalog_PricelistRelease_RefID = pricelist_Release.CMN_SLS_Pricelist_ReleaseID; subscribedCatalog.PublishingSupplier_RefID = supplier.CMN_BPT_SupplierID; subscribedCatalog.Save(Connection, Transaction); /* * @send Kika information which catalog has been subscribed to who * */ var result = _service.SubscribeToCatalog(subscriptionRequest); if (result.ResponseStatus != ResponseStatus.OK) { throw new Exception("Catalog subscription failed!"); } } #endregion returnValue.Result = ProductList.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L3AR_IoUPfSC_1325_Array Execute(DbConnection Connection, DbTransaction Transaction, P_L3AR_IoUPfSC_1325 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L3AR_IoUPfSC_1325_Array(); var importedProducts = new List <L3AR_IoUPfSC_1325>(); #region ABDA catalog var catalogQuery = new ORM_CMN_PRO_SubscribedCatalog.Query(); catalogQuery.Tenant_RefID = securityTicket.TenantID; catalogQuery.IsDeleted = false; catalogQuery.CatalogCodeITL = EnumUtils.GetEnumDescription(EPublicCatalogs.ABDA); var abdaCatalog = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, catalogQuery).SingleOrDefault(); #endregion #region ImportOrUpdate Product's BaseData var param = new P_L3AR_IoUPBD_1631(); var products = Parameter.Products.Select(item => new P_L3AR_IoUPBD_1631a() { ProductITL = item.ProductITL, Product_Name = item.Product_Name, Product_Description = item.Product_Description, Product_Number = item.Product_Number, Dosage = item.Dosage, Amount = item.Amount, MeasuredInUnit_ISO_um_ums = item.MeasuredInUnit_ISO_um_ums, VAT = Double.Parse(item.VAT), Producer = item.Producer, DistributionStatus = item.DistributionStatus, DefaultExpirationPeriod_in_sec = item.DefaultExpirationPeriod_in_sec, DefaultStorageTemperature_min_in_kelvin = item.DefaultStorageTemperature_min_in_kelvin, DefaultStorageTemperature_max_in_kelvin = item.DefaultStorageTemperature_max_in_kelvin, IsStorage_CoolingRequired = item.IsStorage_CoolingRequired, IsProduct_AddictiveDrug = item.IsProduct_AddictiveDrug, ActiveComponents = item.ActiveComponents, IsPharmacyOnlyDistribution = item.IsPharmacyOnlyDistribution }).ToArray(); param.Products = products; var importedProductsBaseData = cls_ImportOrUpdate_Products_BaseData.Invoke(Connection, Transaction, param, securityTicket).Result; #endregion foreach (var importedProductBaseData in importedProductsBaseData) { var currentParameter = Parameter.Products.SingleOrDefault(i => i.ProductITL == importedProductBaseData.ProductITL); var product = new ORM_CMN_PRO_Product(); product.Load(Connection, Transaction, importedProductBaseData.ProductID); if (!importedProductBaseData.IsAlreadyExisted) { product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = Parameter.SubscribedCatalogID; product.IsImportedFromExternalCatalog = true; product.Save(Connection, Transaction); ORM_CMN_PRO_Product_2_ProductGroup product_2_productGroup = new ORM_CMN_PRO_Product_2_ProductGroup(); product_2_productGroup.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product_2_productGroup.CMN_PRO_ProductGroup_RefID = Parameter.ProductGroupID; product_2_productGroup.Tenant_RefID = securityTicket.TenantID; product_2_productGroup.Creation_Timestamp = DateTime.Now; product_2_productGroup.Save(Connection, Transaction); } else { #region Update Product_2_ProductGroup var groupsParam = new P_CL2_MP_GAPGfP_1735(); groupsParam.ProductID = product.CMN_PRO_ProductID; var productGroups = cls_Get_All_ProductGroups_for_ProductID.Invoke(Connection, Transaction, groupsParam, securityTicket).Result; var abdaGroup = productGroups.Where(i => i.GlobalPropertyMatchingID == EnumUtils.GetEnumDescription(EProductGroup.ABDA)).FirstOrDefault(); var houselistGroup = productGroups.Where(i => i.GlobalPropertyMatchingID == EnumUtils.GetEnumDescription(EProductGroup.HauseList)).FirstOrDefault(); if (abdaGroup == default(CL2_MP_GAPGfP_1735)) { //it's not in abda if (houselistGroup == default(CL2_MP_GAPGfP_1735)) { //it's not in abda and it's not in houselist product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = Parameter.SubscribedCatalogID; product.IsImportedFromExternalCatalog = true; product.Save(Connection, Transaction); } else { //it's not in abda but it's in houselist //check if new import isn't from abda //it could be new house list if (abdaCatalog == null || abdaCatalog.CMN_PRO_SubscribedCatalogID != Parameter.SubscribedCatalogID) { product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = Parameter.SubscribedCatalogID; product.IsImportedFromExternalCatalog = true; product.Save(Connection, Transaction); } } } else { //it's in abda if (houselistGroup == default(CL2_MP_GAPGfP_1735)) { //it's in abda but it's not in houselist //it could be house list or just update abda product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = Parameter.SubscribedCatalogID; product.IsImportedFromExternalCatalog = true; product.Save(Connection, Transaction); } else { //it's in abda and it's in houselist //check if new import isn't from abda //it could be only house list if (abdaCatalog.CMN_PRO_SubscribedCatalogID != Parameter.SubscribedCatalogID) { product.IfImportedFromExternalCatalog_CatalogSubscription_RefID = Parameter.SubscribedCatalogID; product.IsImportedFromExternalCatalog = true; product.Save(Connection, Transaction); } } } var isAlreadyInGroup = ORM_CMN_PRO_Product_2_ProductGroup.Query.Exists(Connection, Transaction, new ORM_CMN_PRO_Product_2_ProductGroup.Query() { CMN_PRO_Product_RefID = product.CMN_PRO_ProductID, CMN_PRO_ProductGroup_RefID = Parameter.ProductGroupID, Tenant_RefID = securityTicket.TenantID }); if (!isAlreadyInGroup) { ORM_CMN_PRO_Product_2_ProductGroup product_2_productGroup = new ORM_CMN_PRO_Product_2_ProductGroup(); product_2_productGroup.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; product_2_productGroup.CMN_PRO_ProductGroup_RefID = Parameter.ProductGroupID; product_2_productGroup.Tenant_RefID = securityTicket.TenantID; product_2_productGroup.Creation_Timestamp = DateTime.Now; product_2_productGroup.Save(Connection, Transaction); } #endregion } #region Default Price var price = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, new ORM_CMN_SLS_Price.Query() { PricelistRelease_RefID = Parameter.PriceListReleaseID, CMN_PRO_Product_RefID = product.CMN_PRO_ProductID, Tenant_RefID = securityTicket.TenantID, CMN_Currency_RefID = Parameter.CatalogCurrencyID, IsDeleted = false }).SingleOrDefault(); if (price == null) { price = new ORM_CMN_SLS_Price(); price.CMN_SLS_PriceID = Guid.NewGuid(); price.PricelistRelease_RefID = Parameter.PriceListReleaseID; price.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; price.CMN_Currency_RefID = Parameter.CatalogCurrencyID; price.Tenant_RefID = securityTicket.TenantID; price.Creation_Timestamp = DateTime.Now; } price.PriceAmount = currentParameter.Price; price.Save(Connection, Transaction); #endregion importedProducts.Add(new L3AR_IoUPfSC_1325() { ProductID = product.CMN_PRO_ProductID, ProductITL = product.ProductITL }); } returnValue.Result = importedProducts.ToArray(); return(returnValue); #endregion UserCode }
protected static FR_L6WS_GSCDfSCID_1458 Execute(DbConnection Connection, DbTransaction Transaction, P_L6WS_GSCDfSCID_1458 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6WS_GSCDfSCID_1458(); //Put your code here if (Parameter.ShoppingCartID == Guid.Empty) { return(null); } returnValue.Result = new L6WS_GSCDfSCID_1458(); #region ShoppingCart returnValue.Result.ShoppingCart = cls_Get_ShoppingCart_for_ShoppingCartID.Invoke(Connection, Transaction, new P_L6WS_GSCfSCID_1448() { ShoppingCartID = Parameter.ShoppingCartID }, securityTicket).Result; if (returnValue.Result.ShoppingCart == null) { return(null); } #endregion #region ShoppingCart_Notes returnValue.Result.ShoppingCart_Notes = cls_Get_ShoppingCart_Notes_for_ShoppingCartID.Invoke(Connection, Transaction, new P_L5AWSAR_GSCNfSC_1454() { ShoppingCartID = Parameter.ShoppingCartID }, securityTicket).Result.OrderBy(i => i.UpdatedOn).ToArray(); #endregion #region Articles ORM_ORD_PRC_ShoppingCart_Product.Query shoppingCartProductsQuery = new ORM_ORD_PRC_ShoppingCart_Product.Query(); shoppingCartProductsQuery.ORD_PRC_ShoppingCart_RefID = returnValue.Result.ShoppingCart.ORD_PRC_ShoppingCartID; shoppingCartProductsQuery.IsDeleted = false; shoppingCartProductsQuery.IsCanceled = false; shoppingCartProductsQuery.Tenant_RefID = securityTicket.TenantID; List <ORM_ORD_PRC_ShoppingCart_Product> productList = ORM_ORD_PRC_ShoppingCart_Product.Query.Search(Connection, Transaction, shoppingCartProductsQuery); List <Guid> articleIds = new List <Guid>(); if (productList != null && productList.Count > 0) { articleIds.AddRange(productList.Select(i => i.CMN_PRO_Product_RefID)); } List <L3AR_GAfAL_0942> articleInfos = new List <L3AR_GAfAL_0942>(); if (articleIds.Count > 0) { articleInfos = cls_Get_Articles_for_ArticleList.Invoke(Connection, Transaction, new P_L3AR_GAfAL_0942() { ProductID_List = articleIds.ToArray() }, securityTicket).Result.ToList(); } List <L6WS_GSCDfSCID_1458_Product> products = new List <L6WS_GSCDfSCID_1458_Product>(); L6WS_GSCDfSCID_1458_Product product; L3AR_GAfAL_0942 articleInfo; double taxRate = 0; #region ORM and Querie objects ORM_CMN_PRO_Product orm_product; ORM_CMN_SLS_Price.Query priceQuery; ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query taxAssignmentQuery; ORM_ACC_TAX_Tax orm_tax; #endregion foreach (var productItem in productList) { #region check procurement order date and number if (returnValue.Result.OrderDate == null || returnValue.Result.OrderDate.Ticks == 0) { ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition.Query shoppingCartOrderPositionQuery = new ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition.Query(); shoppingCartOrderPositionQuery.IsDeleted = false; shoppingCartOrderPositionQuery.Tenant_RefID = securityTicket.TenantID; shoppingCartOrderPositionQuery.ORD_PRC_ShoppingCart_Product_RefID = productItem.ORD_PRC_ShoppingCart_ProductID; List <ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition> shoppingCartOrderPositionList = ORM_ORD_PRC_ShoppingCart_2_ProcurementOrderPosition.Query.Search(Connection, Transaction, shoppingCartOrderPositionQuery); foreach (var shoppingCartOrderPosition in shoppingCartOrderPositionList) { ORM_ORD_PRC_ProcurementOrder_Position procurementOrder_Position = new ORM_ORD_PRC_ProcurementOrder_Position(); var procurementOrder_PositionResult = procurementOrder_Position.Load(Connection, Transaction, shoppingCartOrderPosition.ORD_PRC_ProcurementOrder_Position_RefID); if (procurementOrder_PositionResult.Status != FR_Status.Success || procurementOrder_Position.ORD_PRC_ProcurementOrder_PositionID == Guid.Empty) { continue; } ORM_ORD_PRC_ProcurementOrder_Header procurementOrder_Header = new ORM_ORD_PRC_ProcurementOrder_Header(); var procurementOrder_HeaderResult = procurementOrder_Header.Load(Connection, Transaction, procurementOrder_Position.ProcurementOrder_Header_RefID); if (procurementOrder_HeaderResult.Status != FR_Status.Success || procurementOrder_Header.ORD_PRC_ProcurementOrder_HeaderID == Guid.Empty) { continue; } returnValue.Result.OrderDate = procurementOrder_Header.ProcurementOrder_Date; returnValue.Result.OrderNumber = procurementOrder_Header.ProcurementOrder_Number; break; } } #endregion #region get product orm_product = new ORM_CMN_PRO_Product(); var productResult = orm_product.Load(Connection, Transaction, productItem.CMN_PRO_Product_RefID); if (productResult.Status != FR_Status.Success || orm_product.CMN_PRO_ProductID == Guid.Empty) { continue; } #endregion #region get price ORM_CMN_PRO_SubscribedCatalog.Query catalogQuery = new ORM_CMN_PRO_SubscribedCatalog.Query(); catalogQuery.Tenant_RefID = securityTicket.TenantID; catalogQuery.IsDeleted = false; List <ORM_CMN_PRO_SubscribedCatalog> catalogList = ORM_CMN_PRO_SubscribedCatalog.Query.Search(Connection, Transaction, catalogQuery); priceQuery = new ORM_CMN_SLS_Price.Query(); priceQuery.CMN_PRO_Product_RefID = orm_product.CMN_PRO_ProductID; priceQuery.Tenant_RefID = securityTicket.TenantID; priceQuery.IsDeleted = false; List <ORM_CMN_SLS_Price> prices = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, priceQuery); ORM_CMN_SLS_Price price = prices.Where(i => catalogList.Select(j => j.SubscribedCatalog_PricelistRelease_RefID).Contains(i.PricelistRelease_RefID)).FirstOrDefault(); #endregion #region get taxes taxRate = 0; taxAssignmentQuery = new ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query(); taxAssignmentQuery.Product_RefID = orm_product.CMN_PRO_ProductID; taxAssignmentQuery.Tenant_RefID = securityTicket.TenantID; taxAssignmentQuery.IsDeleted = false; List <ORM_CMN_PRO_Product_SalesTaxAssignmnet> taxAssignmentList = ORM_CMN_PRO_Product_SalesTaxAssignmnet.Query.Search(Connection, Transaction, taxAssignmentQuery); foreach (var taxAssignment in taxAssignmentList) { orm_tax = new ORM_ACC_TAX_Tax(); var taxResult = orm_tax.Load(Connection, Transaction, taxAssignment.ApplicableSalesTax_RefID); if (taxResult.Status == FR_Status.Success && orm_tax.ACC_TAX_TaxeID != Guid.Empty) { taxRate += orm_tax.TaxRate; } } #endregion #region set product item product = new L6WS_GSCDfSCID_1458_Product(); product.CMN_PRO_Product_RefID = orm_product.CMN_PRO_ProductID; product.PriceAmount = price == null ? 0 : (price.PriceAmount == null ? 0 : Double.Parse(price.PriceAmount.ToString())); product.TaxRate = taxRate; product.Quantity = productItem.Quantity.ToString(); product.IsProductCanceled = productItem.IsCanceled; if (!String.IsNullOrEmpty(productItem.Comment)) { string[] comments = productItem.Comment.Split('@'); if (comments.Length == 2) { product.ProductComment = comments[1]; } } product.IsProductReplacementAllowed = productItem.IsProductReplacementAllowed; articleInfo = articleInfos.FirstOrDefault(i => i.CMN_PRO_ProductID == orm_product.CMN_PRO_ProductID); if (articleInfo != null) { product.Product_Name = articleInfo.Product_Name; product.Product_Number = articleInfo.Product_Number; product.UnitAmount = articleInfo.UnitAmount.ToString(); product.UnitIsoCode = articleInfo.UnitIsoCode; product.DossageFormName = articleInfo.DossageFormName; } #endregion products.Add(product); } returnValue.Result.Products = products.ToArray(); #endregion #region Person info // current user ORM_CMN_PER_PersonInfo_2_Account.Query accountQuery = new ORM_CMN_PER_PersonInfo_2_Account.Query(); accountQuery.USR_Account_RefID = securityTicket.AccountID; accountQuery.Tenant_RefID = securityTicket.TenantID; accountQuery.IsDeleted = false; ORM_CMN_PER_PersonInfo_2_Account account = ORM_CMN_PER_PersonInfo_2_Account.Query.Search(Connection, Transaction, accountQuery).FirstOrDefault(); if (account != null) { ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo(); var personInfoResult = personInfo.Load(Connection, Transaction, account.CMN_PER_PersonInfo_RefID); if (personInfoResult.Status == FR_Status.Success && personInfo.CMN_PER_PersonInfoID != Guid.Empty) { returnValue.Result.CurrentUser = personInfo.FirstName + " " + personInfo.LastName; } } #region Approved by user ORM_ORD_PRC_ShoppingCart_Status.Query stusesQuery = new ORM_ORD_PRC_ShoppingCart_Status.Query(); stusesQuery.Tenant_RefID = securityTicket.TenantID; stusesQuery.IsDeleted = false; List <ORM_ORD_PRC_ShoppingCart_Status> statuses = ORM_ORD_PRC_ShoppingCart_Status.Query.Search(Connection, Transaction, stusesQuery); ORM_ORD_PRC_ShoppingCart_Status approvedStatus = statuses.FirstOrDefault(i => i.GlobalPropertyMatchingID.Contains("approved")); if (approvedStatus != null) { ORM_ORD_PRC_ShoppingCartStatus_History.Query statusHistoryQuery = new ORM_ORD_PRC_ShoppingCartStatus_History.Query(); statusHistoryQuery.Tenant_RefID = securityTicket.TenantID; statusHistoryQuery.IsDeleted = false; statusHistoryQuery.ORD_PRC_ShoppingCart_RefID = returnValue.Result.ShoppingCart.ORD_PRC_ShoppingCartID; statusHistoryQuery.ORD_PRC_ShoppingCart_Status_RefID = approvedStatus.ORD_PRC_ShoppingCart_StatusID; ORM_ORD_PRC_ShoppingCartStatus_History statusHistory = ORM_ORD_PRC_ShoppingCartStatus_History.Query.Search(Connection, Transaction, statusHistoryQuery).FirstOrDefault(); if (statusHistory != null) { accountQuery = new ORM_CMN_PER_PersonInfo_2_Account.Query(); accountQuery.USR_Account_RefID = statusHistory.PerformedBy_Account_RefID; accountQuery.Tenant_RefID = securityTicket.TenantID; accountQuery.IsDeleted = false; account = ORM_CMN_PER_PersonInfo_2_Account.Query.Search(Connection, Transaction, accountQuery).FirstOrDefault(); if (account != null) { ORM_CMN_PER_PersonInfo personInfo = new ORM_CMN_PER_PersonInfo(); var personInfoResult = personInfo.Load(Connection, Transaction, account.CMN_PER_PersonInfo_RefID); if (personInfoResult.Status == FR_Status.Success && personInfo.CMN_PER_PersonInfoID != Guid.Empty) { returnValue.Result.ApprovedByUser = personInfo.FirstName + " " + personInfo.LastName; returnValue.Result.DateOfApproval = statusHistory.Creation_Timestamp; } } } } #endregion #endregion return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L6DTPG_SCL_1016 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var item = new ORM_CMN_BPT_InvestedWorkTime_ChargingLevel(); #region Unnecessary if (Parameter.CMN_BPT_InvestedWorkTime_ChargingLevelID != Guid.Empty) { var result = item.Load(Connection, Transaction, Parameter.CMN_BPT_InvestedWorkTime_ChargingLevelID); if (result.Status != FR_Status.Success || item.CMN_BPT_InvestedWorkTime_ChargingLevelID == Guid.Empty) { var error = new FR_Guid(); error.ErrorMessage = "No Such ID"; error.Status = FR_Status.Error_Internal; return(error); } if (Parameter.ChargingLevelName != null) { item.ChangingLevel_Name = Parameter.ChargingLevelName; } item.Save(Connection, Transaction); ORM_CMN_SLS_Price.Query priceQuery = new ORM_CMN_SLS_Price.Query(); priceQuery.Tenant_RefID = securityTicket.TenantID; priceQuery.IsDeleted = false; priceQuery.CMN_PRO_Product_RefID = item.CMN_PRO_Product_RefID; List <ORM_CMN_SLS_Price> prices = ORM_CMN_SLS_Price.Query.Search(Connection, Transaction, priceQuery); if (prices != null && prices.Count == 1) { ORM_CMN_SLS_Price price = prices[0]; price.PriceAmount = Parameter.PricePerMinute; price.CMN_Currency_RefID = Parameter.CurrencyID; price.Save(Connection, Transaction); } } else { var structureHeader = new ORM_DOC_Structure_Header(); structureHeader.Label = "document_header_for_product"; structureHeader.Tenant_RefID = securityTicket.TenantID; var structureStatusSave = structureHeader.Save(Connection, Transaction); ORM_CMN_PRO_Product product = new ORM_CMN_PRO_Product(); product.Product_Name = Parameter.ChargingLevelName; product.Product_DocumentationStructure_RefID = structureHeader.DOC_Structure_HeaderID; product.Product_Number = "product_number"; product.Tenant_RefID = securityTicket.TenantID; product.Save(Connection, Transaction); ORM_CMN_BPT_InvestedWorkTime_ChargingLevel charginglevel = new ORM_CMN_BPT_InvestedWorkTime_ChargingLevel(); charginglevel.ChangingLevel_Name = Parameter.ChargingLevelName; charginglevel.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; charginglevel.Tenant_RefID = securityTicket.TenantID; charginglevel.Save(Connection, Transaction); ORM_CMN_SLS_Price price = new ORM_CMN_SLS_Price(); price.CMN_Currency_RefID = Parameter.CurrencyID; price.CMN_PRO_Product_RefID = product.CMN_PRO_ProductID; price.PriceAmount = Parameter.PricePerMinute; price.Tenant_RefID = securityTicket.TenantID; price.Save(Connection, Transaction); } #endregion return(returnValue); #endregion UserCode }