public async Task <IActionResult> PutRegularSaleItem(int id, RegularSaleItem regularSaleItem) { if (id != regularSaleItem.RegularSaleItemId) { return(BadRequest()); } _context.Entry(regularSaleItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RegularSaleItemExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <RegularSaleItem> > PostRegularSaleItem(RegularSaleItem regularSaleItem) { _context.RegularSaleItems.Add(regularSaleItem); await _context.SaveChangesAsync(); return(CreatedAtAction("GetRegularSaleItem", new { id = regularSaleItem.RegularSaleItemId }, regularSaleItem)); }
public bool RemoveSaleItem(eStoreDbContext db, RegularSaleItem saleItem, int StoreId = 1) { Stock stock = db.Stocks.Where(c => c.StoreId == StoreId && c.ProductItemId == saleItem.ProductItemId).FirstOrDefault(); if (stock == null) { return(false); } stock.SaleQty -= saleItem.Qty; stock.Quantity += saleItem.Qty; db.Stocks.Update(stock); db.RegularSaleItems.Remove(saleItem); return(true); }
public RegularSaleItem AddSaleItem(eStoreDbContext db, SaleItemList saleitem, int StoreId = 1) { ProductItem pItem = db.ProductItems.Include(c => c.Units).Where(c => c.Barcode == saleitem.BarCode).FirstOrDefault(); if (pItem == null) { } RegularSaleItem rSale = new RegularSaleItem { BarCode = saleitem.BarCode }; Stock stock = db.Stocks.Where(c => c.StoreId == StoreId && c.ProductItemId == rSale.ProductItemId).FirstOrDefault(); stock.SaleQty += rSale.Qty; stock.Quantity -= rSale.Qty; db.Stocks.Update(stock); return(rSale); }
private RegularSaleItem CreateSaleItem(VoyagerContext db, ImportSaleItemWise item, int StoreId) { var pi = db.ProductItems.Where(c => c.Barcode == item.Barcode).Select(c => new { c.ProductItemId, c.Units }).FirstOrDefault(); RegularSaleItem saleItem = new RegularSaleItem { BarCode = item.Barcode, MRP = item.MRP, BasicAmount = item.BasicRate, Discount = item.Discount, Qty = item.Quantity, TaxAmount = item.SGST, BillAmount = item.LineTotal, Units = pi.Units, ProductItemId = pi.ProductItemId, SalesPersonId = GetSalesPersonId(db, item.Saleman), SaleTaxTypeId = CreateSaleTax(db, item) }; SalePurchaseManager.UpDateStock(db, pi.ProductItemId, item.Quantity, false, StoreId); // TODO: Check for this working return(saleItem); }
private RegularSaleItem CreateSaleItem(VoyagerContext db, ImportSaleItemWise item) { var pi = db.ProductItems.Where(c => c.Barcode == item.Barcode).Select(c => new { c.ProductItemId, c.Units }).FirstOrDefault(); if (pi == null) { //TODO: Handle for ProductItem Doesn't Exists. //create item and stock int id = StockItem(db, item, out Units UNTS); pi = new { ProductItemId = id, Units = UNTS }; } RegularSaleItem saleItem = new RegularSaleItem { BarCode = item.Barcode, MRP = item.MRP, BasicAmount = item.BasicRate, Discount = item.Discount, Qty = item.Quantity, TaxAmount = item.SGST + item.CGST, BillAmount = item.LineTotal, Units = pi.Units, ProductItemId = pi.ProductItemId, SalesPersonId = GetSalesPersonId(db, item.Saleman), SaleTaxTypeId = CreateSaleTax(db, item) }; if (!SalePurchaseManager.UpDateStock(db, pi.ProductItemId, item.Quantity, false, item.StoreId)) { //TODO: Create Stock and update CreateStockItem(db, saleItem.Qty, saleItem.ProductItemId, saleItem.Units); } item.IsDataConsumed = true; db.Entry(item).State = EntityState.Modified; return(saleItem); }
public InvoiceSaveReturn OnInsert(eStoreDbContext db, SaveOrderDTO sales, string userName, int StoreId = 1) { Customer cust = db.Customers.Where(c => c.MobileNo == sales.MobileNo).FirstOrDefault(); if (cust == null) { string[] names = sales.Name.Split(" "); string FName = names[0]; string LName = ""; for (int i = 1; i < names.Length; i++) { LName += names[i] + " "; } cust = new Customer { City = sales.Address, Age = 30, FirstName = FName, Gender = Gender.Male, LastName = LName, MobileNo = sales.MobileNo, NoOfBills = 0, TotalAmount = 0, CreatedDate = DateTime.Now.Date }; db.Customers.Add(cust); } string InvNo = GenerateInvoiceNo(db, StoreId, true); List <RegularSaleItem> itemList = new List <RegularSaleItem>(); List <Stock> stockList = new List <Stock>(); foreach (var item in sales.SaleItems) { RegularSaleItem sItem = new RegularSaleItem { BarCode = item.BarCode, MRP = item.Price, Qty = item.Quantity, Discount = 0, SalesmanId = item.Salesman, Units = item.Units, InvoiceNo = InvNo, BasicAmount = item.Amount, TaxAmount = 0, ProductItemId = -1, BillAmount = 0, SaleTaxTypeId = 1, //TODO: default tax id needed }; ProductItem pItem = db.ProductItems.Where(c => c.Barcode == item.BarCode).FirstOrDefault(); Stock stock = db.Stocks.Where(c => c.ProductItemId == pItem.ProductItemId && c.StoreId == StoreId).FirstOrDefault(); sItem.ProductItemId = pItem.ProductItemId; decimal amt = (decimal)item.Quantity * item.Price; sItem.BasicAmount = (amt * 100) / (100 + pItem.TaxRate); sItem.TaxAmount = (sItem.BasicAmount * pItem.TaxRate) / 100; sItem.BillAmount = sItem.BasicAmount + sItem.TaxAmount; //SaleTax Id var taxid = db.SaleTaxTypes.Where(c => c.CompositeRate == pItem.TaxRate).Select(c => c.SaleTaxTypeId).FirstOrDefault(); if (taxid <= 0) { taxid = 1; //TODO: Handle it for creating new saletax id } sItem.SaleTaxTypeId = taxid; itemList.Add(sItem); stock.SaleQty += item.Quantity; stock.Quantity -= item.Quantity; stockList.Add(stock); } var totalBillamt = itemList.Sum(c => c.BillAmount); var totaltaxamt = itemList.Sum(c => c.TaxAmount); var totalDiscount = itemList.Sum(c => c.Discount); var totalQty = itemList.Sum(c => c.Qty); var totalitem = itemList.Count; decimal roundoffamt = Math.Round(totalBillamt) - totalBillamt; PaymentDetail pd = new PaymentDetail { CardAmount = sales.PaymentInfo.CardAmount, CashAmount = sales.PaymentInfo.CashAmount, InvoiceNo = InvNo, IsManualBill = true, MixAmount = 0, PayMode = SalePayMode.Cash }; if (sales.PaymentInfo.CardAmount > 0) { if (sales.PaymentInfo.CashAmount > 0) { pd.PayMode = SalePayMode.Mix; } else { pd.PayMode = SalePayMode.Card; } CardDetail cd = new CardDetail { CardCode = CardType.Visa,//TODO: default Amount = sales.PaymentInfo.CardAmount, AuthCode = (int)Int64.Parse(sales.PaymentInfo.AuthCode), InvoiceNo = InvNo, LastDigit = (int)Int64.Parse(sales.PaymentInfo.CardNo), CardType = CardMode.DebitCard//TODO: default }; if (sales.PaymentInfo.CardType.Contains("Debit") || sales.PaymentInfo.CardType.Contains("debit") || sales.PaymentInfo.CardType.Contains("DEBIT")) { cd.CardType = CardMode.DebitCard; } else if (sales.PaymentInfo.CardType.Contains("Credit") || sales.PaymentInfo.CardType.Contains("credit") || sales.PaymentInfo.CardType.Contains("CREDIT")) { cd.CardType = CardMode.CreditCard; } if (sales.PaymentInfo.CardType.Contains("visa") || sales.PaymentInfo.CardType.Contains("Visa") || sales.PaymentInfo.CardType.Contains("VISA")) { cd.CardCode = CardType.Visa; } else if (sales.PaymentInfo.CardType.Contains("MasterCard") || sales.PaymentInfo.CardType.Contains("mastercard") || sales.PaymentInfo.CardType.Contains("MASTERCARD")) { cd.CardCode = CardType.MasterCard; } else if (sales.PaymentInfo.CardType.Contains("Rupay") || sales.PaymentInfo.CardType.Contains("rupay") || sales.PaymentInfo.CardType.Contains("RUPAY")) { cd.CardCode = CardType.Rupay; } else if (sales.PaymentInfo.CardType.Contains("MASTRO") || sales.PaymentInfo.CardType.Contains("mastro") || sales.PaymentInfo.CardType.Contains("Mastro")) { cd.CardCode = CardType.Rupay; } pd.CardDetail = cd; } RegularInvoice Invoice = new RegularInvoice { Customer = cust, InvoiceNo = InvNo, OnDate = sales.OnDate, IsManualBill = true, StoreId = StoreId, SaleItems = itemList, CustomerId = cust.CustomerId, TotalBillAmount = totalBillamt + roundoffamt, TotalDiscountAmount = totalDiscount, TotalItems = totalitem, TotalQty = totalQty, TotalTaxAmount = totaltaxamt, RoundOffAmount = roundoffamt, PaymentDetail = pd, UserId = userName }; db.RegularInvoices.Add(Invoice); db.Stocks.UpdateRange(stockList); InvoiceSaveReturn returnData = new InvoiceSaveReturn { NoOfRecord = db.SaveChanges(), FileName = "NotSaved" }; if (returnData.NoOfRecord > 0) { ReceiptHeader header = PrinterHelper.GetReceiptHeader(db, StoreId); ReceiptDetails details = PrinterHelper.GetReceiptDetails(Invoice.InvoiceNo, Invoice.OnDate, DateTime.Now.ToShortTimeString(), sales.Name); ReceiptItemTotal itemtotal = PrinterHelper.GetReceiptItemTotal(Invoice); List <ReceiptItemDetails> itemDetailList = PrinterHelper.GetInvoiceDetails(db, itemList); returnData.FileName = "/" + InvoicePrinter.PrintManaulInvoice(header, itemtotal, details, itemDetailList, false); } return(returnData); }