Exemple #1
0
 public bool SaveSalesOrder(OM_Order saleOrder)
 {
     if (DbRepository.Add(saleOrder) > 0)
     {
         return(true);
     }
     return(false);
 }
Exemple #2
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="salesOrder"></param>
        /// <returns></returns>
        public bool SaveSalesOrder(OM_SalesOrderDataObject salesOrder)
        {
            OM_Order order = salesOrder.ToDTO();
            var      user  = DbRepository.GetModel <OM_User>(s => s.Account.ToUpper() == salesOrder.CardCode.ToUpper() && s.IsDel == false);

            if (user == null)
            {
                throw new GenericException("客户代码不存在,保持草稿失败");
            }

            order.DocStatus  = ((int)OM_DocStatusEnum.未提交).ToString();
            order.TotalPrice = salesOrder.TotalPrice;
            order.DocEntry   = GetLastDocEntry();
            order.NoteNotice = GetShortRemarks(order.Remarks, 5);
            var salesOrderHead = DbRepository.Add(order);

            if (salesOrderHead <= 0)
            {
                throw new GenericException("保存草稿失败");
            }


            var orderResult = DbRepository.GetModel <OM_Order>(s => s.Guid == order.Guid);

            List <OM_OrderItem> items = new List <OM_OrderItem>();

            foreach (var item in salesOrder.SalesOrderLine)
            {
                OM_OrderItem oi = new OM_OrderItem()
                {
                    Guid          = Guid.NewGuid().ToString().ToUpper(),
                    Currency      = item.Currency,
                    ItemCode      = item.ItemCode,
                    ItemName      = item.ItemName,
                    Price         = item.Price,
                    Quantity      = item.Quantity,
                    TotalPrice    = (item.CustomerPrice ?? item.Price) * item.Quantity,
                    Remarks       = item.Remarks,
                    Order_Guid    = orderResult.Guid,
                    DocEntry      = orderResult.DocEntry,
                    InnerPrice    = item.InnerPrice,
                    CustomerPrice = item.CustomerPrice,
                    ItemStandard  = item.ItemStandard,
                    ItemUnit      = item.ItemUnit
                };
                items.Add(oi);
            }

            var salesOrderLine = DbRepository.AddRange(items);

            if (salesOrderLine <= 0)
            {
                throw new GenericException("保存草稿失败");
            }

            return(true);
        }
Exemple #3
0
        public OM_Order ToDTO()
        {
            OM_Order salesOrderDataObejct = new OM_Order()
            {
                DocEntry   = this.DocEntry,
                Guid       = this.Guid,
                DocDate    = this.DocDate == null ? DateTime.Now : this.DocDate,
                DocDueDate = this.DocDueDate,
                DocStatus  = this.DocStatus,
                CardCode   = this.CardCode,
                CardName   = this.CardName,
                NumCard    = this.NumCard,
                TPLCompany = this.TPLCompany,
                TPLContact = this.TPLContact,
                TPLOrder   = this.TPLOrder,
                TPLPhone   = this.TPLPhone,
                NoteNotice = this.NoteNotice,
                Remarks    = this.Remarks,
                User_Guid  = this.User_Guid
            };

            return(salesOrderDataObejct);
        }
Exemple #4
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="salesOrder"></param>
        /// <returns></returns>
        public bool UpdateSalesOrder(OM_SalesOrderDataObject salesOrder)
        {
            OM_Order temp = salesOrder.ToDTO();

            var order = DbRepository.GetModel <OM_Order>(s => s.Guid == salesOrder.Guid);

            if (order == null)
            {
                throw new GenericException("订单号不存在,修改草稿失败");
            }

            var user = DbRepository.GetModel <OM_User>(s => s.Account.ToUpper() == salesOrder.CardCode.ToUpper() && s.IsDel == false);

            if (user == null)
            {
                throw new GenericException("客户代码不存在,修改草稿失败");
            }

            order.CardCode   = salesOrder.CardCode;
            order.CardName   = user.Name;
            order.Remarks    = salesOrder.Remarks;
            order.DocDate    = salesOrder.DocDate;
            order.DocDueDate = salesOrder.DocDueDate;
            order.NoteNotice = GetShortRemarks(order.Remarks, 5);
            var salesOrderHead = DbRepository.Update(order);

            if (salesOrderHead <= 0)
            {
                throw new GenericException("修改草稿失败");
            }

            List <OM_OrderItem> items      = DbRepository.GetList <OM_OrderItem>(s => s.Order_Guid == salesOrder.Guid);
            List <OM_OrderItem> removeItem = new List <OM_OrderItem>();

            foreach (var item in salesOrder.SalesOrderLine) //temp
            {
                foreach (var i in items)                    //数据库
                {
                    if (string.IsNullOrWhiteSpace(item.Guid))
                    {
                        item.Guid       = Guid.NewGuid().ToString();
                        item.DocEntry   = salesOrder.DocEntry;
                        item.Order_Guid = salesOrder.Guid;
                        DbRepository.Add(item);
                    }
                    else
                    {  //不为空并且在数据库中找不到对应
                        var exist = salesOrder.SalesOrderLine.Where(s => s.Guid == i.Guid);
                        if ((exist == null || exist.Count() == 0) && !removeItem.Contains(i))
                        {
                            removeItem.Add(i);
                        }
                    }

                    if (i.Guid == item.Guid)
                    {
                        i.ItemCode      = item.ItemCode;
                        i.ItemName      = item.ItemName;
                        i.Remarks       = item.Remarks;
                        i.InnerPrice    = item.InnerPrice;
                        i.CustomerPrice = item.CustomerPrice;
                        i.Price         = item.Price;
                        i.Quantity      = item.Quantity;
                        i.TotalPrice    = item.Price * item.Quantity;
                        i.ItemUnit      = item.ItemUnit;
                        i.ItemStandard  = item.ItemStandard;
                    }
                }
            }

            var salesOrderLine = DbRepository.UpdateRange(items);


            foreach (var delItem in removeItem)
            {
                DbRepository.RealDelete <OM_OrderItem>(s => s.Guid == delItem.Guid);
            }



            if (salesOrderLine <= 0)
            {
                throw new GenericException("修改草稿失败");
            }

            return(true);
        }