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); }