Beispiel #1
0
 public Inbound.Файл ЗаказНаРазмещениеДокумент(Inbound.Документ документ)
 {
     try
     {
         var result = new Inbound.Файл();
         result.Документ = new ДокументКоллекция();
         ProcessInbound(документ);
         result.Документ.Add(документ);
         Dme.Core.Helper.Entities.SaveChanges(_Context);
         return(result);
     }
     catch (Exception e)
     {
         StringBuilder sb = new StringBuilder();
         for (Exception err = e; err != null; err = err.InnerException)
         {
             sb
             .Append(err.Message)
             .AppendLine(err.StackTrace)
             .AppendLine("===========================")
             .AppendLine();
         }
         throw new Exception(sb.ToString());
     }
 }
Beispiel #2
0
        public void ProcessInbound(Inbound.Документ 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.Supplier = GetSupplier(s.Отправитель.First().СвЮЛ.First());
            // Строки
            int rowNo = 1;

            foreach (var r in t.СтрТабл)
            {
                var i = new Core.OrderDocRow();
                i.Partm     = GetPartm(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);
        }
Beispiel #3
0
        string GetParameter(Inbound.Документ 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);
        }