Exemple #1
0
        partial void AfterTransform(Bespoke.PosEntt.SalesOrders.Domain.SalesOrder item, Bespoke.PosEntt.Adapters.SnbWebApi.PostSalesOrdersRequest destination)
        {
            foreach (var con in destination.Body.Consignments)
            {
                Bespoke.PosEntt.SalesOrders.Domain.Consignment source = null;
                if (string.IsNullOrWhiteSpace(con.ChildConNoteNo) || con.ChildConNoteNo == "-")
                {
                    source = item.Consignments.First(x => x.ConNoteNumberParent == con.ConNoteNo && (string.IsNullOrWhiteSpace(x.ConNoteNumberChild) || x.ConNoteNumberChild == "-"));
                }
                else
                {
                    source = item.Consignments.Single(x => x.ConNoteNumberParent == con.ConNoteNo && x.ConNoteNumberChild == con.ChildConNoteNo);
                }

                // #5014
                if (source.ProductCodeMaterial == "81000012")
                {
                    con.ActualWeight = 1;
                }
                if (source.ProductCodeMaterial == "81000013")
                {
                    con.ActualWeight = 2;
                }
                if (source.ProductCodeMaterial == "81000014")
                {
                    con.ActualWeight = 3;
                }
                if (source.ProductCodeMaterial == "81000015")
                {
                    con.ActualWeight = 1;
                }

                //#5015
                if (NonSpecialityProducts.Contains(source.ProductCodeMaterial))
                {
                    con.SenderPostCode   = "87000";
                    con.ReceiverPostCode = "87000";
                    if (string.IsNullOrWhiteSpace(destination.Body.BranchCode))
                    {
                        destination.Body.BranchCode = "8700";
                    }
                }


                // SNB need category name, not the bloody sequence, while soc use creepy code
                var cat = m_categories.Where(x => x.Code == source.ItemCategoryType).LastOrDefault();
                if (null != cat)
                {
                    con.ItemCategory = cat.Name;
                }

                // in soc, surchages in presented in a multiple of 4, e.g. 0101|1101 , "|" is not present of course
                var chargesCode = Split((source.ValueAdded + source.SurchargeCode), 4);
                foreach (var code in chargesCode)
                {
                    var code1      = code;
                    var surcharges = m_surcharges.Where(x => x.Code == code1 && x.SnbCode.StartsWith("S")).Select(x => x.SnbCode).ToArray();
                    con.Surcharges.AddRange(surcharges);
                }

                foreach (var code in chargesCode)
                {
                    var code1    = code;
                    var services = m_surcharges.Where(x => x.Code == code1 && x.SnbCode.StartsWith("V")).Select(x => x.SnbCode).ToArray();
                    con.ValueAddedServices.AddRange(services);
                }

                con.ProductCode = m_products.Where(x => x.SocCode == source.ProductCodeMaterial).Select(x => x.Code).LastOrDefault() ?? "-";

                // split the dimensions
                if (!string.IsNullOrWhiteSpace(source.VolumetricDimension))
                {
                    var dimensions = source.VolumetricDimension.Split(new[] { "X", "x" }, System.StringSplitOptions.RemoveEmptyEntries);
                    if (dimensions.Length == 3)
                    {
                        con.Width  = decimal.Parse(dimensions[0]);
                        con.Height = decimal.Parse(dimensions[1]);
                        con.Length = decimal.Parse(dimensions[2]);
                    }
                }
            }


            destination.Body.WebId = item.Id;
        }
Exemple #2
0
        partial void BeforeTransform(Bespoke.PosEntt.SalesOrders.Domain.SalesOrder item, Bespoke.PosEntt.Adapters.SnbWebApi.PostSalesOrdersRequest destination)
        {
            var context = new SphDataContext();

            if (m_products.Count == 0)
            {
                var query = context.CreateQueryable <Bespoke.PosEntt.Products.Domain.Product>()
                            .Where(p => p.Id != "0");
                var productRepos = ObjectBuilder.GetObject <IRepository <Bespoke.PosEntt.Products.Domain.Product> >();
                var lo           = productRepos.LoadAsync(query, 1, 200, false).Result;
                m_products.AddRange(lo.ItemCollection);
            }
            if (m_surcharges.Count == 0)
            {
                var surchargeQuery = context.CreateQueryable <Bespoke.PosEntt.SurchargeAddOns.Domain.SurchargeAddOn>()
                                     .Where(p => p.Id != "0");
                var surchargeRepos = ObjectBuilder.GetObject <IRepository <Bespoke.PosEntt.SurchargeAddOns.Domain.SurchargeAddOn> >();
                var scLo           = surchargeRepos.LoadAsync(surchargeQuery, 1, 200, false).Result;
                m_surcharges.AddRange(scLo.ItemCollection);
            }
            if (m_categories.Count == 0)
            {
                var categoryQuery = context.CreateQueryable <Bespoke.PosEntt.ItemCategories.Domain.ItemCategory>()
                                    .Where(p => p.Id != "0");
                var categoryRepos = ObjectBuilder.GetObject <IRepository <Bespoke.PosEntt.ItemCategories.Domain.ItemCategory> >();
                var categoriesLo  = categoryRepos.LoadAsync(categoryQuery, 1, 200, false).Result;
                m_categories.AddRange(categoriesLo.ItemCollection);
            }
        }