public ActionResult Create(InitialInfo initialinfo) { if (ModelState.IsValid) { db.InitialInfoes.Add(initialinfo); db.SaveChanges(); return RedirectToAction("Index"); } return View(initialinfo); }
private bool CreateSalesOrderRecords(int nCustomerId, string[] szDetailsIds, string tradeId, ref int nSalesOrderIdHlp, ref string szError) { bool bStatus = false; int nQuoteid = 0; int nItemPos = 1; int nSalesOrderId = 0; int nQuoteDetailsId = 0; int nSubItemid = 0; int nPos = -1; int nTradeid = 0; int nSalesOrderNo = 0; double dOnHand = 0; double dQtyQuote = 0; double dReqQty = 0; double dShipQty = 0; double dPOQty = 0; double dUnitPrice = 0; double dTaxRate = 0; string szDetailsId = ""; string szDescription = ""; string szSalesOrderIdHlp = ""; string szItemIdHlp = ""; List<String> quotedetailsList = null; IQueryable<SUB_ITEM> qySubItem = null; SUB_ITEM subitem = null; UserQuotation quotation = null; UserQuotationDetail quotationdetail = null; SalesOrderDetail salesorderdetail = null; InitialInfo initialinfo = null; Trade trade = null; SetupChargeDetail setupcharge = null; try { if (string.IsNullOrEmpty(tradeId)) { trade = db.Trades.FirstOrDefault<Trade>(); if (trade != null) { nTradeid = trade.TradeId; } } else { nTradeid = Convert.ToInt32(tradeId); } //Get the sales order no initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 1; nSalesOrderNo = 1; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); } else { nSalesOrderNo = initialinfo.SalesOrderNo; nSalesOrderNo++; initialinfo.SalesOrderNo = nSalesOrderNo; dTaxRate = initialinfo.TaxRate; db.Entry(initialinfo).State = EntityState.Modified; } quotedetailsList = szDetailsIds.ToList<string>(); SalesOrder salesorder = new SalesOrder(); salesorder.CustomerId = nCustomerId; salesorder.SODate = DateTime.Now; salesorder.IsBlindShip = false; salesorder.TradeId = nTradeid; salesorder.SalesOrderNo = nSalesOrderNo.ToString(); salesorder.Tax_rate = Convert.ToDouble(dTaxRate); salesorder.Invs_Tax = Convert.ToDouble(dTaxRate); db.SalesOrders.Add(salesorder); db.SaveChanges(); nSalesOrderIdHlp = salesorder.SalesOrderId; nSalesOrderId = salesorder.SalesOrderId; // // Con szDetailsIds leer UserQuotationDetails, luego leer el inventario para establecer las cantidades disponible y // luego crear el detalle de la Sales Order, lee el inventario e incluye setup charge y runcharge foreach (var item in quotedetailsList) { nPos = -1; nPos = item.IndexOf("chk_"); if (nPos != -1) { szDetailsId = item.Replace("chk_", ""); nQuoteDetailsId = Convert.ToInt16(szDetailsId); quotationdetail = db.UserQuotationDetails.Find(nQuoteDetailsId); if (quotationdetail != null) { if (quotationdetail.Status == 0) { if (nQuoteid == 0) { nQuoteid = Convert.ToInt32(quotationdetail.DetailId); } dQtyQuote = Convert.ToDouble(quotationdetail.Quantity) - Convert.ToDouble(quotationdetail.ShippedQuantity); dReqQty = Convert.ToDouble(quotationdetail.Quantity); dShipQty = 0; dPOQty = 0; quotation = db.UserQuotations.Find(quotationdetail.DetailId); if (quotation != null) { subitem = db.SUB_ITEM.Where(sbit => sbit.ItemID == quotation.ProductId && sbit.Description == quotationdetail.ProductType).FirstOrDefault<SUB_ITEM>(); } else { nSubItemid = Convert.ToInt32(quotationdetail.ItemID); subitem = db.SUB_ITEM.Find(nSubItemid); } if (subitem != null) { szDescription = subitem.Description; //Get OnHand inventory dOnHand = Convert.ToDouble(subitem.OnHand_Db) - Convert.ToDouble(subitem.OnHand_Cr); if (dQtyQuote >= dOnHand) { if (dOnHand == 0) { dPOQty = dQtyQuote; } else { dPOQty = dQtyQuote - dOnHand; dShipQty = dOnHand; } } else { } //Create sales order detail salesorderdetail = new SalesOrderDetail(); salesorderdetail.SalesOrderId = nSalesOrderId; salesorderdetail.ItemID = subitem.ItemID; salesorderdetail.Sub_ItemID = subitem.Sub_ItemID; salesorderdetail.Description = szDescription; salesorderdetail.Quantity = dReqQty; salesorderdetail.ShipQuantity = dShipQty; salesorderdetail.BackOrderQuantity = dPOQty; salesorderdetail.Tax = 0; salesorderdetail.UnitPrice = quotationdetail.Amount; salesorderdetail.ItemPosition = nItemPos; salesorderdetail.ItemOrder = 0; salesorderdetail.Tax = Convert.ToDouble(dTaxRate); db.SalesOrderDetails.Add(salesorderdetail); db.SaveChanges(); nItemPos++; szSalesOrderIdHlp = salesorderdetail.SalesOrderId.ToString(); szItemIdHlp = salesorderdetail.ItemID; //Create setup charge setupcharge = db.SetupChargeDetails.Where(stup => stup.itemid == subitem.ItemID).FirstOrDefault<SetupChargeDetail>(); if (setupcharge != null) { salesorderdetail = new SalesOrderDetail(); salesorderdetail.SalesOrderId = nSalesOrderId; salesorderdetail.ItemID = string.Empty; salesorderdetail.Sub_ItemID = string.Empty; salesorderdetail.Description = string.Format("Set up Charge {0} {1}", szSalesOrderIdHlp, szItemIdHlp); salesorderdetail.Quantity = dReqQty; salesorderdetail.ShipQuantity = 0; salesorderdetail.BackOrderQuantity = 0; salesorderdetail.Tax = 0; salesorderdetail.UnitPrice = setupcharge.SetUpCharge; salesorderdetail.ItemPosition = 0; salesorderdetail.ItemOrder = 0; salesorderdetail.Tax = Convert.ToDouble(dTaxRate); db.SalesOrderDetails.Add(salesorderdetail); //Create run charge salesorderdetail = new SalesOrderDetail(); salesorderdetail.SalesOrderId = nSalesOrderId; salesorderdetail.ItemID = string.Empty; salesorderdetail.Sub_ItemID = string.Empty; salesorderdetail.Description = string.Format("Run Charge {0} {1}", szSalesOrderIdHlp, szItemIdHlp); salesorderdetail.Quantity = dReqQty; salesorderdetail.ShipQuantity = 0; salesorderdetail.BackOrderQuantity = 0; salesorderdetail.Tax = 0; salesorderdetail.UnitPrice = setupcharge.RunCharge; salesorderdetail.ItemPosition = 0; salesorderdetail.ItemOrder = 0; salesorderdetail.Tax = Convert.ToDouble(dTaxRate); db.SalesOrderDetails.Add(salesorderdetail); } //Update Quote Details quotationdetail.ShippedQuantity = dShipQty; quotationdetail.BOQuantity = dPOQty; if (dShipQty >= Convert.ToDouble(quotationdetail.Quantity)) { quotationdetail.Status = 1; } else { quotationdetail.Status = 1; } } else { //szDescription = quotationdetail.ProductType; ////Create sales order detail //salesorderdetail = new SalesOrderDetail(); //salesorderdetail.SalesOrderId = nSalesOrderId; //salesorderdetail.Description = szDescription; //salesorderdetail.Quantity = dReqQty; ////salesorderdetail.ShipQuantity = dShipQty; ////salesorderdetail.BackOrderQuantity = dPOQty; //salesorderdetail.Tax = 0; //salesorderdetail.UnitPrice = quotationdetail.Amount; //salesorderdetail.ItemPosition = nItemPos; //salesorderdetail.ItemOrder = 0; //db.SalesOrderDetails.Add(salesorderdetail); //nItemPos++; //quotationdetail.Status = 1; } //Update Sub Item Inventory } } } } //Update the sales order record with the quoteid if (nQuoteid != 0) { SalesOrder salesorderHlp = db.SalesOrders.Find(nSalesOrderId); if (salesorderHlp != null) { salesorderHlp.QuoteId = nQuoteid; db.Entry(salesorderHlp).State = EntityState.Modified; } } //Save all changes db.SaveChanges(); bStatus = true; } catch (Exception err) { szError = err.Message; } return bStatus; }
// // GET: //CreateSalesOrder public ActionResult CreateSalesOrder(string id) { int nSalesOrderNo = 0; int nTradeid = 0; int nCustomerId = 0; double dTaxRate = 0; InitialInfo initialinfo = null; Customers customer = null; SalesOrder salesorder = null; //Get the sales order no initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 1; nSalesOrderNo = 1; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); } else { nSalesOrderNo = initialinfo.SalesOrderNo; nSalesOrderNo++; initialinfo.SalesOrderNo = nSalesOrderNo; dTaxRate = initialinfo.TaxRate; db.Entry(initialinfo).State = EntityState.Modified; } //Get the customer id customer = db.Customers.Where(cst => cst.CustomerNo == id).FirstOrDefault<Customers>(); if (customer != null) { nCustomerId = customer.Id; salesorder = new SalesOrder(); salesorder.CustomerId = nCustomerId; salesorder.SODate = DateTime.Now; salesorder.IsBlindShip = false; salesorder.TradeId = nTradeid; salesorder.SalesOrderNo = nSalesOrderNo.ToString(); salesorder.Tax_rate = Convert.ToDouble(dTaxRate); salesorder.Invs_Tax = Convert.ToDouble(dTaxRate); db.SalesOrders.Add(salesorder); db.SaveChanges(); } return RedirectToAction("Edit", new { id = salesorder.SalesOrderId }); //return View("Edit", new { id = salesorder.SalesOrderId }); }
private void GetSalesOrderTotals01(TimelyDepotContext db01, int nSalesOrderId, ref double dSalesAmount, ref double dTotalTax, ref double dTax, ref double dTotalAmount, ref double dBalanceDue) { double dShipping = 0; double dPayment = 0; double dSOTax = 0; IQueryable<SalesOrderDetail> qryDetails = null; InitialInfo initialinfo = null; dSalesAmount = 0; dTax = 0; dTotalAmount = 0; dBalanceDue = 0; dTotalTax = 0; initialinfo = db01.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 1; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); dTax = initialinfo.TaxRate; } else { dTax = initialinfo.TaxRate; } //Each sales order should save it own tax information. Also the tax should be on product only, no tax on service. SalesOrder salesorder = db01.SalesOrders.Find(nSalesOrderId); if (salesorder != null) { dShipping = Convert.ToDouble(salesorder.ShippingHandling); dPayment = Convert.ToDouble(salesorder.PaymentAmount); //Use the sales order tax information if (salesorder.Tax_rate != null) { if (Convert.ToDecimal(salesorder.Tax_rate) >= 0) { dTax = Convert.ToDouble(salesorder.Tax_rate); } } dSOTax = dTax; qryDetails = db01.SalesOrderDetails.Where(sldt => sldt.SalesOrderId == salesorder.SalesOrderId); if (qryDetails.Count() > 0) { foreach (var item in qryDetails) { ////use the tax on product //if (item.Tax != null) //{ // if (Convert.ToDecimal(item.Tax) >= 0) // { // dTax = Convert.ToDouble(item.Tax); // } //} dSalesAmount = dSalesAmount + (Convert.ToDouble(item.Quantity) * Convert.ToDouble(item.UnitPrice)); //use the tax on product if (!string.IsNullOrEmpty(item.Sub_ItemID)) { dTotalTax = dTotalTax + (Convert.ToDouble(item.Quantity) * Convert.ToDouble(item.UnitPrice) * (dTax / 100)); } } } dTotalAmount = dSalesAmount + dTotalTax + dShipping; dBalanceDue = dTotalAmount - dPayment; //Set the sales order tax again dTax = dSOTax; } }
// // GET: //Payment public PartialViewResult Payment(int id = 0) { int nPaymentNo = 0; int nCustomerId = 0; int nPos = -1; int nHas = 0; double dSalesAmount = 0; double dTax = 0; double dTotalTax = 0; double dTotalAmount = 0; double dBalanceDue = 0; string szError = ""; string szDecriptedData = ""; string szMsg = ""; string szCustomerNo = ""; Payments payment = null; InitialInfo initialinfo = null; Customers customer = null; List<KeyValuePair<string, string>> listSelector = new List<KeyValuePair<string, string>>(); //Get sales order SalesOrder salesorder = db.SalesOrders.Find(id); if (salesorder != null) { //Get the totals GetSalesOrderTotals(salesorder.SalesOrderId, ref dSalesAmount, ref dTotalTax, ref dTax, ref dTotalAmount, ref dBalanceDue); customer = db.Customers.Where(cst => cst.Id == salesorder.CustomerId).FirstOrDefault<Customers>(); if (customer != null) { //Get the next payment No initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 1; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 0; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); } else { nPaymentNo = initialinfo.PaymentNo; nPaymentNo++; initialinfo.PaymentNo = nPaymentNo; db.Entry(initialinfo).State = EntityState.Modified; } db.SaveChanges(); //Get Payment Type listSelector = new List<KeyValuePair<string, string>>(); var qryPaymentType = db.CustomersCardTypes.OrderBy(cdty => cdty.CardType); if (qryPaymentType.Count() > 0) { foreach (var item in qryPaymentType) { listSelector.Add(new KeyValuePair<string, string>(item.CardType, item.CardType)); } } SelectList paymentTypeselectorlist = new SelectList(listSelector, "Key", "Value"); //Get the Credit Card Number for each credit card listSelector = new List<KeyValuePair<string, string>>(); if (paymentTypeselectorlist.Count() > 0) { foreach (var item in paymentTypeselectorlist) { var qryPayment = db.CustomersCreditCardShippings.Join(db.Customers, ctcc => ctcc.CustomerId, cstm => cstm.Id, (ctcc, cstm) => new { ctcc, cstm }).OrderBy(Nctad => Nctad.ctcc.CardType).ThenBy(Nctad => Nctad.ctcc.CreditNumber).Where(Nctad => Nctad.ctcc.CustomerId == customer.Id && Nctad.ctcc.CardType == item.Value); if (qryPayment.Count() > 0) { foreach (var itemCard in qryPayment) { if (nCustomerId == 0) { nCustomerId = itemCard.cstm.Id; } //Decode card number szError = ""; szDecriptedData = TimelyDepotMVC.Controllers.PaymentController.DecodeInfo02(itemCard.ctcc.CreditNumber, ref szError); if (!string.IsNullOrEmpty(szError)) { nPos = szError.IndexOf("data to decode"); if (nPos != -1) { szDecriptedData = string.Empty; } else { szDecriptedData = string.Format("******"); } } else { //Mask the card number nHas = szDecriptedData.Length; if (nHas > 4) { szMsg = szDecriptedData.Substring(nHas - 4, 4); szDecriptedData = string.Format("******{0}", szMsg); } else { szDecriptedData = string.Format("******"); } } szMsg = string.Format("{0} - {1}", itemCard.ctcc.CardType, szDecriptedData); listSelector.Add(new KeyValuePair<string, string>(itemCard.ctcc.CreditNumber, szMsg)); } } } } SelectList cardsselectorlist = new SelectList(listSelector, "Key", "Value"); ViewBag.CardsList = cardsselectorlist; payment = new Payments(); payment.PaymentNo = nPaymentNo.ToString(); payment.PaymentDate = DateTime.Now; payment.CustomerNo = customer.CustomerNo; payment.SalesOrderNo = salesorder.SalesOrderNo; payment.Amount = Convert.ToDecimal(dBalanceDue); //db.Payments.Add(payment); //db.SaveChanges(); } } return PartialView(payment); }
public ActionResult Create() { int nPurchaseOrderNo = 0; List<KeyValuePair<string, string>> listSelector = new List<KeyValuePair<string, string>>(); IQueryable<Trade> qryTrade = null; InitialInfo initialinfo = null; //Get the next Purchase Order No initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 1; initialinfo.SalesOrderNo = 0; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); } else { nPurchaseOrderNo = initialinfo.PurchaseOrderNo; nPurchaseOrderNo++; initialinfo.PurchaseOrderNo = nPurchaseOrderNo; db.Entry(initialinfo).State = EntityState.Modified; } PurchaseOrders purchaseorder = new PurchaseOrders(); purchaseorder.PurchaseOrderNo = nPurchaseOrderNo.ToString(); purchaseorder.PODate = DateTime.Now; db.PurchaseOrders.Add(purchaseorder); db.SaveChanges(); //Get the dropdown data qryTrade = db.Trades.OrderBy(trd => trd.TradeName); if (qryTrade.Count() > 0) { foreach (var item in qryTrade) { listSelector.Add(new KeyValuePair<string, string>(item.TradeId.ToString(), item.TradeName)); } } SelectList tradeselectorlist = new SelectList(listSelector, "Key", "Value"); ViewBag.TradeList = tradeselectorlist; return View(purchaseorder); }
private void GetSalesOrderTotals01(TimelyDepotContext db01, int nSalesOrderId, ref double dSalesAmount, ref double dTotalTax, ref double dTax, ref double dTotalAmount, ref double dBalanceDue) { double dShipping = 0; double dPayment = 0; IQueryable<SalesOrderDetail> qryDetails = null; InitialInfo initialinfo = null; dSalesAmount = 0; dTax = 0; dTotalAmount = 0; dBalanceDue = 0; dTotalTax = 0; initialinfo = db01.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 1; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); dTax = initialinfo.TaxRate; } else { dTax = initialinfo.TaxRate; } SalesOrder salesorder = db01.SalesOrders.Find(nSalesOrderId); if (salesorder != null) { dShipping = Convert.ToDouble(salesorder.ShippingHandling); dPayment = Convert.ToDouble(salesorder.PaymentAmount); qryDetails = db01.SalesOrderDetails.Where(sldt => sldt.SalesOrderId == salesorder.SalesOrderId); if (qryDetails.Count() > 0) { foreach (var item in qryDetails) { dSalesAmount = dSalesAmount + (Convert.ToDouble(item.Quantity) * Convert.ToDouble(item.UnitPrice)); dTotalTax = dTotalTax + (Convert.ToDouble(item.Quantity) * Convert.ToDouble(item.UnitPrice) * (dTax / 100)); } } dTotalAmount = dSalesAmount + dTotalTax + dShipping; dBalanceDue = dTotalAmount - dPayment; } }
// // GET: //GenerateInvoice public ActionResult GenerateInvoice(int id = 0) { int nInvoiceNo = 0; int nTrackingNo = 0; int nPos = -1; double dTax = 0; string szMsg = ""; string[] szHlp = null; InitialInfo initialinfo = null; Invoice invoice = null; InvoiceDetail invoicedetail = null; TimelyDepotContext db01 = new TimelyDepotContext(); IQueryable<SalesOrderDetail> qrySODetails = null; SalesOrder salesorder = db.SalesOrders.Find(id); if (salesorder != null) { //Get the next payment No initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 1; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 0; initialinfo.TaxRate = 0; initialinfo.TrackingNo = 1; db.InitialInfoes.Add(initialinfo); } else { nInvoiceNo = initialinfo.InvoiceNo; nInvoiceNo++; initialinfo.InvoiceNo = nInvoiceNo; nTrackingNo = Convert.ToInt32(initialinfo.TrackingNo); nTrackingNo++; initialinfo.TrackingNo = nTrackingNo; dTax = initialinfo.TaxRate; db.Entry(initialinfo).State = EntityState.Modified; } //Use the sales order tax information if (salesorder.Tax_rate != null) { if (Convert.ToDecimal(salesorder.Tax_rate) >= 0) { dTax = Convert.ToDouble(salesorder.Tax_rate); } } //Create the Invoice invoice = new Invoice(); invoice.InvoiceNo = nInvoiceNo.ToString(); invoice.CustomerId = salesorder.CustomerId; invoice.BussinesType = salesorder.BussinesType; invoice.CreaditCardNo = salesorder.CreaditCardNo; invoice.CustomerShipLocation = salesorder.CustomerShipLocation; invoice.CustomerShiptoId = salesorder.CustomerShiptoId; //invoice.InvoiceDate = DateTime.Now; invoice.InvoiceDate = Convert.ToDateTime(salesorder.SODate); invoice.IsBlindShip = salesorder.IsBlindShip; invoice.Note = salesorder.Note; invoice.PaymentAmount = salesorder.PaymentAmount; invoice.PaymentDate = salesorder.PaymentDate; invoice.PaymentTerms = salesorder.PaymentTerms; invoice.PurchaseOrderNo = salesorder.PurchaseOrderNo; invoice.SalesOrderId = salesorder.SalesOrderId; invoice.SalesOrderNo = salesorder.SalesOrderNo; invoice.SalesRep = salesorder.SalesRep; invoice.ShipDate = salesorder.ShipDate; invoice.ShippingHandling = salesorder.ShippingHandling; invoice.ShipVia = salesorder.ShipVia; invoice.TrackingNo = nTrackingNo.ToString(); invoice.TradeId = salesorder.TradeId; invoice.VendorAddress = salesorder.VendorAddress; invoice.VendorId = salesorder.VendorId; invoice.Tax_rate = Convert.ToDecimal(dTax); invoice.Invs_Tax = Convert.ToDecimal(dTax); //Set the shipment information invoice.FromAddress1 = salesorder.FromAddress1; invoice.FromAddress2 = salesorder.FromAddress2; invoice.FromCity = salesorder.FromCity; invoice.FromCompany = salesorder.FromCompany; invoice.FromCountry = salesorder.FromCountry; invoice.FromEmail = salesorder.FromEmail; invoice.FromFax = salesorder.FromFax; invoice.FromName = salesorder.FromName; invoice.FromState = salesorder.FromState; invoice.FromTel = salesorder.FromTel; invoice.FromTitle = salesorder.FromTitle; invoice.FromZip = salesorder.FromZip; invoice.ToAddress1 = salesorder.ToAddress1; invoice.ToAddress2 = salesorder.ToAddress2; invoice.ToCity = salesorder.ToCity; invoice.ToCompany = salesorder.ToCompany; invoice.ToCountry = salesorder.ToCountry; invoice.ToEmail = salesorder.ToEmail; invoice.ToFax = salesorder.ToFax; invoice.ToName = salesorder.ToName; invoice.ToState = salesorder.ToState; invoice.ToTel = salesorder.ToTel; invoice.ToTitle = salesorder.ToTitle; invoice.ToZip = salesorder.ToZip; db.Invoices.Add(invoice); db.SaveChanges(); //Create the details qrySODetails = db.SalesOrderDetails.Where(sodt => sodt.SalesOrderId == salesorder.SalesOrderId); if (qrySODetails.Count() > 0) { foreach (var item in qrySODetails) { invoicedetail = new InvoiceDetail(); invoicedetail.BackOrderQuantity = 0; invoicedetail.Description = item.Description; nPos = -1; nPos = item.Description.IndexOf("Set up Charge"); if (nPos != -1) { szHlp = item.Description.Split(' '); szHlp[3] = invoice.InvoiceId.ToString(); szMsg = string.Format("{0} {1} {2} {3} {4}", szHlp[0], szHlp[1], szHlp[2], szHlp[3], szHlp[4]); invoicedetail.Description = szMsg; } nPos = -1; nPos = item.Description.IndexOf("Run Charge"); if (nPos != -1) { szHlp = item.Description.Split(' '); szHlp[2] = invoice.InvoiceId.ToString(); szMsg = string.Format("{0} {1} {2} {3}", szHlp[0], szHlp[1], szHlp[2], szHlp[3]); invoicedetail.Description = szMsg; } invoicedetail.InvoiceId = invoice.InvoiceId; invoicedetail.ItemID = item.ItemID; invoicedetail.ItemOrder = item.ItemOrder; invoicedetail.ItemPosition = item.ItemPosition; invoicedetail.Quantity = item.Quantity; invoicedetail.ShipQuantity = item.Quantity; invoicedetail.Sub_ItemID = item.Sub_ItemID; invoicedetail.Tax = item.Tax; invoicedetail.UnitPrice = item.UnitPrice; invoicedetail.Tax = item.Tax; db.InvoiceDetails.Add(invoicedetail); } db.SaveChanges(); } } return RedirectToAction("Edit", new { id = invoice.InvoiceId }); }
public void GetInvoiceTotals01(TimelyDepotContext db01, int nInvoiceId, ref double dSalesAmount, ref double dTotalTax, ref double dTax, ref double dTotalAmount, ref double dBalanceDue) { double dShipping = 0; double dPayment = 0; double dSOTax = 0; IQueryable<InvoiceDetail> qryDetails = null; InitialInfo initialinfo = null; dSalesAmount = 0; dTax = 0; dTotalAmount = 0; dBalanceDue = 0; dTotalTax = 0; initialinfo = db01.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 0; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 1; initialinfo.TaxRate = 0; db01.InitialInfoes.Add(initialinfo); dTax = initialinfo.TaxRate; } else { dTax = initialinfo.TaxRate; } Invoice salesorder = db01.Invoices.Find(nInvoiceId); if (salesorder != null) { dShipping = Convert.ToDouble(salesorder.ShippingHandling); dPayment = Convert.ToDouble(salesorder.PaymentAmount); //Use the sales order tax information if (salesorder.Tax_rate != null) { if (Convert.ToDecimal(salesorder.Tax_rate) >= 0) { dTax = Convert.ToDouble(salesorder.Tax_rate); } } dSOTax = dTax; qryDetails = db01.InvoiceDetails.Where(sldt => sldt.InvoiceId == salesorder.InvoiceId); if (qryDetails.Count() > 0) { foreach (var item in qryDetails) { //use the tax on product if (item.Tax != null) { if (Convert.ToDecimal(item.Tax) >= 0) { dTax = Convert.ToDouble(item.Tax); } } dSalesAmount = dSalesAmount + (Convert.ToDouble(item.Quantity) * Convert.ToDouble(item.UnitPrice)); dTotalTax = dTotalTax + (Convert.ToDouble(item.Quantity) * Convert.ToDouble(item.UnitPrice) * (dTax / 100)); } } dTotalAmount = dSalesAmount + dTotalTax + dShipping; dBalanceDue = dTotalAmount - dPayment; //Set the sales order tax again dTax = dSOTax; } }
public ActionResult Add() { int nPaymentNo = 0; string CustomerNo = string.Empty; string CompanyName = string.Empty; InitialInfo initialinfo = null; //Get the next payment No initialinfo = db.InitialInfoes.FirstOrDefault<InitialInfo>(); if (initialinfo == null) { initialinfo = new InitialInfo(); initialinfo.InvoiceNo = 0; initialinfo.PaymentNo = 1; initialinfo.PurchaseOrderNo = 0; initialinfo.SalesOrderNo = 0; initialinfo.TaxRate = 0; db.InitialInfoes.Add(initialinfo); } else { nPaymentNo = initialinfo.PaymentNo; nPaymentNo++; initialinfo.PaymentNo = nPaymentNo; db.Entry(initialinfo).State = EntityState.Modified; } Payments payment = new Payments(); payment.PaymentNo = nPaymentNo.ToString(); payment.PaymentDate = DateTime.Now; db.Payments.Add(payment); db.SaveChanges(); TempData["Status"] = "Add"; return RedirectToAction("Index", new { id = payment.Id }); }
public ActionResult Edit(InitialInfo initialinfo) { if (ModelState.IsValid) { db.Entry(initialinfo).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(initialinfo); }