Exemplo n.º 1
0
        public int SaveSalesOrderHeader(SalesOrderDTO salesOrder)
        {
            ProductDetails         productDetails     = GetListOfProductsForThisOrder(salesOrder.ProductWithQuantity);
            List <CustomerAddress> lstCustomerAddress = _customerAddressRepository.GetMany(x => x.CustomerID == salesOrder.CustomerID).ToList();
            var objSalesOrder = new SalesOrderHeader();

            objSalesOrder.RevisionNumber      = 2;
            objSalesOrder.OrderDate           = DateTime.Now;
            objSalesOrder.DueDate             = objSalesOrder.OrderDate.AddDays(12);
            objSalesOrder.ShipDate            = objSalesOrder.OrderDate.AddDays(7);
            objSalesOrder.Status              = 5;
            objSalesOrder.PurchaseOrderNumber = "PO" + salesOrder.CustomerID + DateTime.Now.Minute + DateTime.Now.Second + DateTime.Now.Hour;
            objSalesOrder.OnlineOrderFlag     = true;
            objSalesOrder.CustomerID          = salesOrder.CustomerID;
            foreach (CustomerAddress customerAddress in lstCustomerAddress)
            {
                if (customerAddress.AddressType.Equals("Shipping"))
                {
                    objSalesOrder.ShipToAddressID = customerAddress.AddressID;
                }
                else
                {
                    objSalesOrder.BillToAddressID = customerAddress.AddressID;
                }
            }
            objSalesOrder.ShipMethod   = "CARGO TRANSPORT 5";
            objSalesOrder.SubTotal     = productDetails.totalPrice;
            objSalesOrder.TaxAmt       = decimal.Multiply(productDetails.totalPrice, 0.08M);
            objSalesOrder.Freight      = decimal.Multiply(objSalesOrder.TaxAmt, 0.30M);
            objSalesOrder.Comment      = "Online Order";
            objSalesOrder.rowguid      = Guid.NewGuid();
            objSalesOrder.ModifiedDate = DateTime.Now;

            _salesOrderHeaderRepository.Add(objSalesOrder);
            _unitOfWork.Commit();

            SaveSalesOrderDetails(productDetails, objSalesOrder.SalesOrderID);
            return(objSalesOrder.SalesOrderID);
        }