Esempio n. 1
0
        public Outbound.Файл ЗаказНаОтгрузкуДокумент(Outbound.Документ документ)
        {
            var result = new Outbound.Файл();

            result.Документ = new ДокументКоллекция();
            ProcessOutbound(документ);
            result.Документ.Add(документ);
            Dme.Core.Helper.Entities.SaveChanges(_Context);
            return(result);
        }
Esempio n. 2
0
        string GetParameter(Outbound.Документ s, string name, bool throwException = false)
        {
            var par = s.Параметр == null ? null : s.Параметр.FirstOrDefault(p => p.Имя == name);

            if (par == null)
            {
                if (throwException)
                {
                    throw new Exception(String.Format("Ожидается параметр документа \"{0}\"", name));
                }
                else
                {
                    return(null);
                }
            }
            string result = par.Значение;

            return(result);
        }
Esempio n. 3
0
        public void ProcessOutbound(Outbound.Документ s)
        {
            var userID  = Helper.GetUserName();
            var userB2B = _Context.B2BUser.First(r => r.B2BUserID == userID);
            // Заказ
            var o = new Dme.Core.Order();

            o.UserID      = userID;
            o.DT          = DateTime.Now;
            o.CustOrderID = s.Номер;
            o.CustOrderDT = s.Дата;
            string orderTypeName = GetParameter(s, "Тип") ?? "Отгрузка";

            o.OrderType = _Context.OrderType.Where(ot => ot.Name == orderTypeName && ot.Sign == "-").FirstOrDefault();
            if (o.OrderType == null)
            {
                throw new Exception("Неизвестный тип документа");
            }
            o.CustomerID = userB2B.CustomerID;
            var t = s.ТаблДок.First();

            // Отправитель
            o.Dest                   = new Core.Dest();
            o.Dest.Name              = GetParameter(s, "ПолучательНаим", true);
            o.Dest.Addr              = GetParameter(s, "ПолучательАдрес", true);
            o.Dest.Phone             = GetParameter(s, "ПолучательТел");
            o.Dest.Note              = GetParameter(s, "ПолучательПримечание");
            o.Dest.WorkSchW1From     = TimeSpan.Parse(GetParameter(s, "НачалоРаботыПн") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW2From     = TimeSpan.Parse(GetParameter(s, "НачалоРаботыВт") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW3From     = TimeSpan.Parse(GetParameter(s, "НачалоРаботыСр") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW4From     = TimeSpan.Parse(GetParameter(s, "НачалоРаботыЧт") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW5From     = TimeSpan.Parse(GetParameter(s, "НачалоРаботыПт") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW6From     = TimeSpan.Parse(GetParameter(s, "НачалоРаботыСб") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW7From     = TimeSpan.Parse(GetParameter(s, "НачалоРаботыВс") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW1To       = TimeSpan.Parse(GetParameter(s, "КонецРаботыПн") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW2To       = TimeSpan.Parse(GetParameter(s, "КонецРаботыВт") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW3To       = TimeSpan.Parse(GetParameter(s, "КонецРаботыСр") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW4To       = TimeSpan.Parse(GetParameter(s, "КонецРаботыЧт") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW5To       = TimeSpan.Parse(GetParameter(s, "КонецРаботыПт") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW6To       = TimeSpan.Parse(GetParameter(s, "КонецРаботыСб") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.WorkSchW7To       = TimeSpan.Parse(GetParameter(s, "КонецРаботыВс") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW1From = TimeSpan.Parse(GetParameter(s, "НачалоПриемкиПн") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW2From = TimeSpan.Parse(GetParameter(s, "НачалоПриемкиВт") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW3From = TimeSpan.Parse(GetParameter(s, "НачалоПриемкиСр") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW4From = TimeSpan.Parse(GetParameter(s, "НачалоПриемкиЧт") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW5From = TimeSpan.Parse(GetParameter(s, "НачалоПриемкиПт") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW6From = TimeSpan.Parse(GetParameter(s, "НачалоПриемкиСб") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW7From = TimeSpan.Parse(GetParameter(s, "НачалоПриемкиВс") ?? "00:00:00", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW1To   = TimeSpan.Parse(GetParameter(s, "КонецПриемкиПн") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW2To   = TimeSpan.Parse(GetParameter(s, "КонецПриемкиВт") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW3To   = TimeSpan.Parse(GetParameter(s, "КонецПриемкиСр") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW4To   = TimeSpan.Parse(GetParameter(s, "КонецПриемкиЧт") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW5To   = TimeSpan.Parse(GetParameter(s, "КонецПриемкиПт") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW6To   = TimeSpan.Parse(GetParameter(s, "КонецПриемкиСб") ?? "23:59:59", CultureInfo.InvariantCulture);
            o.Dest.DeliverySchW7To   = TimeSpan.Parse(GetParameter(s, "КонецПриемкиВс") ?? "23:59:59", CultureInfo.InvariantCulture);
            _Context.Dest.Add(o.Dest);
            // Примечание
            string orderNote = GetParameter(s, "Примечание");

            if (orderNote != null)
            {
                o.OrderNote.Add(new Core.OrderNote {
                    Note = orderNote
                });
            }
            // Строки
            int rowNo = 1;

            foreach (var r in t.СтрТабл)
            {
                var i = new Core.OrderDocRow();
                i.Partm     = _Context.Partm.FirstOrDefault(p => p.id1 == r.Код);
                i.BatchNo   = r.Серия;
                i.InvQual   = r.Качество ?? "N";
                i.SpecInvID = r.Маркер;
                i.ExpireDT  = r.СрокГодности;
                i.Qty       = r.Кол_во;
                i.Price     = r.Цена;
                i.RowNo     = rowNo;
                o.OrderDocRow.Add(i);
                rowNo++;
            }
            // сохраняем изменения
            _Context.Order.Add(o);
        }