Example #1
0
        ICollection <POIntertekSKUOutput> ITypeConverter <POO, ICollection <POIntertekSKUOutput> > .Convert(POO source, ICollection <POIntertekSKUOutput> destination, ResolutionContext context)
        {
            List <POIntertekSKUOutput> poSkus            = new List <POIntertekSKUOutput>();
            POProductOutput            poIntertekProduct = new POProductOutput();

            source.POSkus?.ToList().ForEach(x =>
            {
                POProductFlagsOutput productFlagsOutput = new POProductFlagsOutput
                {
                    Sku = x.SKU,
                    IntlSafetyTransitTestRequired = !string.IsNullOrEmpty((x.POProduct?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IntlSafetyTransitTestRequired)?.FlagValue.ConvertToString())) ? x.POProduct.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IntlSafetyTransitTestRequired).FlagValue.ConvertToString() : "N",
                    IsChildClothCostume           = !string.IsNullOrEmpty(x.POProduct?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IsChildClothCostume)?.FlagValue.ConvertToString()) ? x.POProduct.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IsChildClothCostume).FlagValue.ConvertToString() : "N",
                    IsGlassDishAdultJewelry       = !string.IsNullOrEmpty(x.POProduct?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IsGlassDishAdultJewelry)?.FlagValue.ConvertToString()) ? x.POProduct.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IsGlassDishAdultJewelry).FlagValue.ConvertToString() : "N",
                    NonPaintTestingRequired       = !string.IsNullOrEmpty(x.POProduct?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.NonPaintTestingRequired)?.FlagValue.ConvertToString()) ? x.POProduct.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.NonPaintTestingRequired).FlagValue.ConvertToString() : "N",
                    RandomInspectionRequired      = !string.IsNullOrEmpty(x.POProduct?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.RandomInspectionRequired)?.FlagValue.ConvertToString()) ? x.POProduct.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.RandomInspectionRequired).FlagValue.ConvertToString() : "N",
                    CPSIATestingRequired          = !string.IsNullOrEmpty(x.POProduct?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.CPSIATestingRequired)?.FlagValue.ConvertToString()) ? x.POProduct.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.CPSIATestingRequired).FlagValue.ConvertToString() : "N",
                };


                if (x.POProduct != null)
                {
                    poIntertekProduct = new POProductOutput
                    {
                        SKU                  = x.SKU,
                        ClassCode            = x.POProduct.Class,
                        DepartmentName       = x.POProduct.ClassDescription,
                        ClassName            = x.POProduct.ClassDescription,
                        DepartmentCode       = x.POProduct.Department,
                        HTSCode              = x.POProduct.HTSCode,
                        MasterPackQuantity   = x.POProduct.MasterPackQuantity.HasValue ? x.POProduct.MasterPackQuantity.Value.ToString() : "0",
                        ClassShortDesc       = x.POProduct.ClassShortDesc,
                        SkuDesc              = x.POProduct.SkuDesc,
                        SubClass             = x.POProduct.SubClass,
                        SubclassDescription  = x.POProduct.SubclassDescription,
                        Country              = x.POProduct.CountryOfOrigin,
                        PrepackChildQuantity = (x.POProduct.ProductPrepack != null && x.POProduct.ProductPrepack.Count > 0) ? Convert.ToString(x.POProduct.ProductPrepack.Find(y => y.Prepack == x.PrepackId && y.Sku == x.SKU).Quantity) : string.Empty,
                        PrepackTotalQuantity = (x.POProduct.ProductPrepack != null && x.POProduct.ProductPrepack.Count > 0) ? Convert.ToString(x.POProduct.ProductPrepack.Where(y => y.Prepack == x.PrepackId).Sum(y => y.Quantity)) : "0",
                        ProductFlagsOutput   = productFlagsOutput
                    };
                }
                poSkus.Add(new POIntertekSKUOutput
                {
                    PONumber            = x.PONumber.ToString(),
                    BuyQuantity         = x.BuyQuantity.HasValue ? x.BuyQuantity.Value.ToString() : "0",
                    CreateDate          = x.CreateDate.HasValue ? x.CreateDate.Value.Date.ToString("yyyyMMdd") : string.Empty,
                    DutyCost            = x.DutyCost.HasValue ? Math.Round(x.DutyCost.GetValueOrDefault(), 2).ToString() : "0",
                    FirstCost           = x.FirstCost.HasValue ? Math.Round(x.FirstCost.GetValueOrDefault(), 2).ToString() : "0",
                    SKU                 = x.SKU,
                    POProduct           = poIntertekProduct,
                    StatusCode          = x.StatusCode,
                    DutyPctOfFOB        = x.DutyPctOfFOB.HasValue ? Math.Round(x.DutyPctOfFOB.GetValueOrDefault(), 2).ToString() : "0",
                    EstimatedLandedCost = x.EstimatedLandedCost.HasValue ? Math.Round(x.EstimatedLandedCost.GetValueOrDefault(), 2).ToString() : "0",
                    MasterPackCubicFeet = x.MasterPackCubicFeet.HasValue ? Math.Round(x.MasterPackCubicFeet.GetValueOrDefault(), 2).ToString() : "0",
                    PrepackId           = x.PrepackId,
                    ApprovalLetter      = x.ApprovalLetter.HasValue ? (x.ApprovalLetter.Value == true ? "Y" : "N") : "N"
                });
            });

            return(poSkus);
        }
Example #2
0
        public async void UpdatePOObject(POIntertekOutput poobject, MMSProductEvent product, POSkus posku)
        {
            try
            {
                var prodhierarchy = _lookUpService.GetProductHierarchy(product.SubClass).Result;

                //check if exists
                if (poobject.POSkus != null && poobject.POSkus.Count > 0 && poobject.POSkus.Exists(y => y.SKU == posku.SKU))
                {
                    var poskutobeupdated = poobject.POSkus.Find(y => y.SKU == posku.SKU);

                    poskutobeupdated.POProduct.ClassCode      = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Class;
                    poskutobeupdated.POProduct.DepartmentName = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Description;
                    poskutobeupdated.POProduct.ClassName      = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Description;
                    poskutobeupdated.POProduct.DepartmentCode = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Department;
                    poskutobeupdated.POProduct.ClassShortDesc = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.ShortDesc;

                    poskutobeupdated.POProduct.HTSCode            = product.HTSCode;
                    poskutobeupdated.POProduct.Country            = product.ProductVendors.Find(y => y.Sku == product.Sku)?.CountryOfOrigin;
                    poskutobeupdated.POProduct.SkuDesc            = product.SkuDesc;
                    poskutobeupdated.POProduct.MasterPackQuantity = product.ProductVendors.Find(y => y.Sku == product.Sku)?.MasterPackQuantity;

                    // Product Flags
                    poskutobeupdated.POProduct.ProductFlagsOutput.IntlSafetyTransitTestRequired = !string.IsNullOrEmpty((product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IntlSafetyTransitTestRequired)?.FlagValue.ConvertToString())) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IntlSafetyTransitTestRequired).FlagValue.ConvertToString() : "N";
                    poskutobeupdated.POProduct.ProductFlagsOutput.IsChildClothCostume           = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IsChildClothCostume)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IsChildClothCostume).FlagValue.ConvertToString() : "N";
                    poskutobeupdated.POProduct.ProductFlagsOutput.IsGlassDishAdultJewelry       = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IsGlassDishAdultJewelry)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IsGlassDishAdultJewelry).FlagValue.ConvertToString() : "N";
                    poskutobeupdated.POProduct.ProductFlagsOutput.NonPaintTestingRequired       = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.NonPaintTestingRequired)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.NonPaintTestingRequired).FlagValue.ConvertToString() : "N";
                    poskutobeupdated.POProduct.ProductFlagsOutput.RandomInspectionRequired      = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.RandomInspectionRequired)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.RandomInspectionRequired).FlagValue.ConvertToString() : "N";
                    poskutobeupdated.POProduct.ProductFlagsOutput.CPSIATestingRequired          = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.CPSIATestingRequired)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.CPSIATestingRequired).FlagValue.ConvertToString() : "N";
                    poskutobeupdated.POProduct.ProductFlagsOutput.Sku = product.Sku;
                }
                else
                {
                    POProductFlagsOutput productFlagsOutput = new POProductFlagsOutput
                    {
                        Sku = product.Sku,
                        IntlSafetyTransitTestRequired = !string.IsNullOrEmpty((product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IntlSafetyTransitTestRequired)?.FlagValue.ConvertToString())) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IntlSafetyTransitTestRequired).FlagValue.ConvertToString() : "N",
                        IsChildClothCostume           = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IsChildClothCostume)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IsChildClothCostume).FlagValue.ConvertToString() : "N",
                        IsGlassDishAdultJewelry       = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.IsGlassDishAdultJewelry)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.IsGlassDishAdultJewelry).FlagValue.ConvertToString() : "N",
                        NonPaintTestingRequired       = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.NonPaintTestingRequired)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.NonPaintTestingRequired).FlagValue.ConvertToString() : "N",
                        RandomInspectionRequired      = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.RandomInspectionRequired)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.RandomInspectionRequired).FlagValue.ConvertToString() : "N",
                        CPSIATestingRequired          = !string.IsNullOrEmpty(product?.ProductFlags?.Find(y => y.FlagKey == ProductFlagSettings.CPSIATestingRequired)?.FlagValue.ConvertToString()) ? product.ProductFlags.Find(y => y.FlagKey == ProductFlagSettings.CPSIATestingRequired).FlagValue.ConvertToString() : "N",
                    };
                    POProductOutput poProductOutput = new POProductOutput
                    {
                        ClassCode      = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Class,
                        DepartmentName = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Department,
                        ClassName      = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Description,
                        ClassShortDesc = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.ShortDesc,
                        DepartmentCode = prodhierarchy.Find(y => y.SubClass == product.SubClass)?.Department,

                        HTSCode            = product.HTSCode,
                        Country            = product.ProductVendors?.Find(y => y.Sku == product.Sku)?.CountryOfOrigin,
                        MasterPackQuantity = !string.IsNullOrEmpty(product.ProductVendors?.Find(y => y.Sku == product.Sku)?.MasterPackQuantity) ? product.ProductVendors?.Find(y => y.Sku == product.Sku)?.MasterPackQuantity : "0",
                        SkuDesc            = product.SkuDesc,
                        SKU = product.Sku,
                        //Product Flags
                        ProductFlagsOutput = productFlagsOutput
                    };
                    POIntertekSKUOutput POSkusOutput = new POIntertekSKUOutput
                    {
                        PONumber            = posku.PONumber.ToString(),
                        BuyQuantity         = posku.BuyQuantity.HasValue? posku.BuyQuantity.Value.ToString():"0",
                        CreateDate          = posku.CreateDate.Value.Date.ToString("yyyyMMdd"),
                        DutyCost            = posku.DutyCost.HasValue ? Math.Round(posku.DutyCost.GetValueOrDefault(), 2).ToString() :"0",
                        FirstCost           = posku.FirstCost.HasValue ? Math.Round(posku.FirstCost.GetValueOrDefault(), 2).ToString() : "0",
                        SKU                 = posku.SKU,
                        DutyPctOfFOB        = posku.DutyPctOfFOB.HasValue? Math.Round(posku.DutyPctOfFOB.GetValueOrDefault(), 2).ToString():"0",
                        EstimatedLandedCost = posku.EstimatedLandedCost.HasValue ? Math.Round(posku.EstimatedLandedCost.GetValueOrDefault(), 2).ToString() : "0",
                        MasterPackCubicFeet = posku.MasterPackCubicFeet.HasValue? Math.Round(posku.MasterPackCubicFeet.GetValueOrDefault(), 2).ToString():"0",
                        PrepackId           = posku.PrepackId,
                        ApprovalLetter      = posku.ApprovalLetter.HasValue ? (posku.ApprovalLetter.Value == true ? "Y" : "N") : "N",
                        StatusCode          = posku.StatusCode,
                        POProduct           = poProductOutput,
                    };

                    if (poobject.POSkus == null)
                    {
                        poobject.POSkus = new System.Collections.Generic.List <POIntertekSKUOutput>();
                    }
                    poobject.POSkus.Add(POSkusOutput);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "UpdatePOObject - Failed Updating IntertekPO: {Reason}", ex.Message);
            }
        }