/// <summary> /// Add to database all the ordered Products to the table Invoice Items /// Creates Invoice and adds it to table Invoices /// </summary> /// <param name="cartItems">List of all the ordered Items</param> /// <param name="CashAmount">Cash ammount given by the client</param> /// <returns>Returns the change for the client</returns> public double SaveInvoice(List <CartItem> cartItems, string CashAmount) { var Id = this.officeStoreContext.Invoice.Count() + 1; foreach (var item in cartItems) { InvoiceItems InvoiceItem = new InvoiceItems() { ItemId = item.Barcode, Quantity = item.Quantity, SinglePrice = item.SinglePrice, Total = item.Total, InvoiceId = Id }; this.officeStoreContext.Items.First(a => a.Id == InvoiceItem.ItemId).Quantity -= InvoiceItem.Quantity; this.officeStoreContext.InvoiceItems.Add(InvoiceItem); } Invoice invoice = new Invoice() { OrderNo = Id + 1000, Date = DateTime.Now.Date, Time = DateTime.Now.TimeOfDay, EmployeeId = this.officeStoreContext.LastLogin.Last().EmployeeId, Total = cartItems.Sum(a => a.Total), PaymentMethodId = 1, StoreInfoId = 1 }; this.officeStoreContext.Invoice.Add(invoice); this.officeStoreContext.SaveChanges(); return(double.Parse(CashAmount) - invoice.Total); }
public async Task <ActionResult <InvoiceItems> > PostInvoiceItems(InvoiceItems invoiceItems) { _context.InvoiceItems.Add(invoiceItems); await _context.SaveChangesAsync(); return(CreatedAtAction("GetInvoiceItems", new { id = invoiceItems.Id }, invoiceItems)); }
public async Task <IActionResult> PutInvoiceItems(long id, InvoiceItems invoiceItems) { if (id != invoiceItems.InvoiceLineId) { return(BadRequest()); } _context.Entry(invoiceItems).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!InvoiceItemsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private List <InvoiceItemTax> ReturnTaxesAvailableForItem(InvoiceItems invoiceItem, int transactionTypeID, DateTime currentDateTime, int provinceID, object[] objPageDetails) { string strQueryName = "ReturnTaxesAvailableForItem"; string sqlCmd = "SELECT CSI.intInvoiceItemID, TTPII.intTaxID AS intTaxTypeID, T.varTaxName, ITR.fltTaxRate, "; if (transactionTypeID == 1 || transactionTypeID == 7) { sqlCmd += "CASE WHEN CSI.bitIsDiscountPercent = 1 THEN ROUND(((CSI.fltItemPrice - (CSI.fltItemPrice * (CSI.fltItemDiscount / " + "100))) * ITR.fltTaxRate) * CSI.intItemQuantity, 2) ELSE ROUND(((CSI.fltItemPrice - CSI.fltItemDiscount) * ITR.fltTaxRate) " + "* CSI.intItemQuantity, 2) END AS fltTaxAmount, "; } else if (transactionTypeID == 2) { sqlCmd += "ROUND((CSI.fltItemRefund * ITR.fltTaxRate) * CSI.intItemQuantity, 2) AS fltTaxAmount, "; } sqlCmd += "TTPII.bitChargeTax AS bitIsTaxCharged FROM tbl_currentSalesItems CSI JOIN tbl_taxTypePerInventoryItem TTPII ON " + "TTPII.intInventoryID = CSI.intInventoryID JOIN tbl_taxType T ON T.intTaxID = TTPII.intTaxID JOIN(SELECT TTPI.intInventoryID, " + "TTPI.intTaxID, fltTaxRate FROM tbl_taxRate TR INNER JOIN(SELECT intTaxID, MAX(dtmTaxEffectiveDate) AS MTD FROM tbl_taxRate " + "WHERE dtmTaxEffectiveDate <= @dtmCurrentDate AND intProvinceID = @intProvinceID GROUP BY intTaxID) TD ON TR.intTaxID = " + "TD.intTaxID AND TR.dtmTaxEffectiveDate = TD.MTD INNER JOIN(SELECT intInventoryID, intTaxID FROM tbl_taxTypePerInventoryItem " + "WHERE bitChargeTax = 1 AND intInventoryID = @intInventoryID) TTPI ON TTPI.intTaxID = TR.intTaxID WHERE intProvinceID = " + "@intProvinceID) ITR ON ITR.intInventoryID = CSI.intInventoryID AND ITR.intTaxID = TTPII.intTaxID WHERE CSI.intInvoiceID = " + "@intInvoiceID AND CSI.intInventoryID = @intInventoryID"; object[][] parms = { new object[] { "@intInvoiceID", invoiceItem.intInvoiceID }, new object[] { "@dtmCurrentDate", currentDateTime.ToString("yyyy-MM-dd") }, new object[] { "@intProvinceID", provinceID }, new object[] { "@intInventoryID", invoiceItem.intInventoryID } }; return(ConvertFromDataTableToInvoiceItemTax(DBC.MakeDataBaseCallToReturnDataTable(sqlCmd, parms, objPageDetails, strQueryName))); }
public JsonResult InsertInvoiceItems(List <Tbl_InvoiceItems> InvoiceItems) { //Check for NULL. if (InvoiceItems == null) { InvoiceItems = new List <Tbl_InvoiceItems>(); } //Loop and insert records. for (int i = 1; i < InvoiceItems.Count(); i++) { //problem is here int ProductId = InvoiceItems[i].ProductId; var DbProduct = _context.Tbl_Products.SingleOrDefault(u => u.Id == ProductId); //........ DbProduct.Qty = Convert.ToInt16(DbProduct.Qty + InvoiceItems[i].Qty); _context.Tbl_InvoiceItems.Add(InvoiceItems[i]); _context.SaveChanges(); } return(Json((InvoiceItems.Count()) - 1)); }
public void AddInvoice() { var invoice = new InvoiceModel() { CustomerId = 1, EmployeeId = 1, SaleDate = DateTime.UtcNow, }; var invoiceItems = new List <InvoiceItems>(); var item = new InvoiceItems() { ItemId = 1, UnitPrice = 10, Quantity = 2 }; invoiceItems.Add(item); invoice.InvoiceItemses = invoiceItems; var totalCost = 0d; foreach (var i in invoiceItems) { totalCost += i.TotalPrice; } invoice.TotalAmount = totalCost.ToString(); Invoice.AddInvoice(invoice); var invoiceService = new InvoiceService(); var invoicePath = invoiceService.ConstructInvoicePdf(invoice); var emailHelper = new EmailHelper(); emailHelper.SendInvoiceMail(invoice, invoicePath); }
public void InvoiceItemsClassTest() { // Arrange & Act InvoiceItems invoiceItems = new InvoiceItems(); //Assert Assert.IsNotNull(invoiceItems); }
private static InvoiceItems GetInvoiceItem(List <InvoiceItems> input) { Console.Write("Choose item ID: "); int id = int.Parse(Console.ReadLine()); InvoiceItems choosenItem = input.FirstOrDefault(x => x.Id == id); return(choosenItem); }
/// <summary> /// Genrete Line used in the ShowRecipe method wih all the needed space between the words /// </summary> /// <param name="item"></param> /// <returns>Perfect ordered line</returns> private string GenerateItems(InvoiceItems item) { //Generates item var Total = item.SinglePrice * item.Quantity; var ItemName = this.officeStoreContext.Items.First(a => a.Id == item.ItemId).ProductName; return($"{ItemName}{Spaces(ItemName, 32)}{item.Quantity}{Spaces(item.Quantity.ToString(), 5)}{item.SinglePrice:f2}{Spaces(item.SinglePrice.ToString(), 8)}{Total:f2} "); }
public DeliveryPayment(Affiliate affiliate, int customerId) : base(affiliate, customerId) { InvoiceItems = new InvoiceItems(); DeliveryTypes = new List <DeliveryType>(); PaymentTypes = new List <PaymentType>(); DeliveryAddresses = new List <DeliveryAddress>(); DeliveryPaymentButtons = new List <DeliveryPaymentButton>(); }
public void LoopThroughTaxesForEachItemAddingToCurrentInvoiceItemTaxes(InvoiceItems invoiceItem, int transactionTypeID, DateTime currentDateTime, int provinceID, object[] objPageDetails) { List <InvoiceItemTax> invoiceItemTaxes = ReturnTaxesAvailableForItem(invoiceItem, transactionTypeID, currentDateTime, provinceID, objPageDetails); foreach (var tax in invoiceItemTaxes) { InsertItemTaxIntoSalesCart(tax, objPageDetails); } }
public IActionResult Create([FromBody] InvoiceItems invoiceItem) { var res = _invoiceItem.add(invoiceItem); if (res == true) { return(CreatedAtRoute("InvoiceItemById", new { Controller = "InvoiceItem", id = invoiceItem.InvoiceItemsId }, invoiceItem)); } return(StatusCode(500)); }
decimal getTotalPriceBrutto() { try { return(InvoiceItems.Sum(p => p.TotalPriceBrutto)); } catch (Exception) { return(0); } }
decimal getTotalNettPrice() { try { return(InvoiceItems.Sum(p => p.TotalPrice)); } catch (Exception) { return(0); } }
int countItems() { try { return(InvoiceItems.Count()); } catch (Exception) { return(0); } }
decimal getTotalVATValue() { try { return(InvoiceItems.Sum(p => p.TotalVATValue)); } catch (Exception) { return(0); } }
/// <summary> /// Add new invoice item to this NFT Invoice /// </summary> /// <param name="utxo">for example Product NFT hash</param> /// <param name="index"></param> /// <param name="price"></param> /// <param name="amount"></param> public void AddInvoiceItem(string utxo, int index, double price, int amount) { var invit = new InvoiceItem() { ItemUtxo = utxo, ItemUtxoIndex = index, ItemPrice = price, ItemCount = amount }; InvoiceItems.Add(invit); TotalPrice += price * amount; }
private void ShowInvoice(OrganizationServiceContext serviceContext, Entity invoice) { var invoiceProducts = serviceContext.CreateQuery("invoicedetail") .Where(e => e.GetAttributeValue <EntityReference>("invoiceid") == invoice.ToEntityReference()) .Where(e => e.GetAttributeValue <decimal>("quantity") > 0) .ToArray(); var productIds = invoiceProducts .Select(e => e.GetAttributeValue <EntityReference>("productid")) .Where(product => product != null) .Select(product => product.Id); var products = serviceContext.CreateQuery("product") .WhereIn(e => e.GetAttributeValue <Guid>("productid"), productIds) .ToDictionary(e => e.Id, e => e); var items = invoiceProducts .Select(e => GetLineItemFromInvoiceProduct(e, products)) .Where(e => e != null) .OrderBy(e => e.Number) .ThenBy(e => e.Name); InvoiceItems.DataSource = items; InvoiceItems.DataBind(); InvoiceNumber.Text = invoice.GetAttributeValue <string>("invoicenumber"); var tax = invoice.GetAttributeValue <Money>("totaltax") ?? new Money(0); InvoiceTotalTax.Visible = tax.Value > 0; InvoiceTotalTaxAmount.Text = tax.Value.ToString("C2"); var shipping = invoice.GetAttributeValue <Money>("freightamount") ?? new Money(0); InvoiceTotalShipping.Visible = shipping.Value > 0; InvoiceTotalShippingAmount.Text = shipping.Value.ToString("C2"); var discount = invoice.GetAttributeValue <Money>("totaldiscountamount") ?? new Money(0); InvoiceTotalDiscount.Visible = discount.Value > 0; InvoiceTotalDiscountAmount.Text = discount.Value.ToString("C2"); var total = invoice.GetAttributeValue <Money>("totalamount") ?? new Money(0); InvoiceTotal.Visible = total.Value > 0; InvoiceTotalAmount.Text = total.Value.ToString("C2"); GeneralErrorMessage.Visible = false; Order.Visible = false; Invoice.Visible = true; }
protected void InvoiceItems_RowCommand(object sender, GridViewCommandEventArgs e) { int rowIndex = Convert.ToInt32(e.CommandArgument); List <InvoiceDetailsViewModel> invoiceProducts = GetInvoiceItemsFromGridView(); InvoiceDetailsViewModel invoiceItem = invoiceProducts[rowIndex]; if (e.CommandName == "DeleteFromInvoice") { invoiceProducts.Remove(invoiceItem); } InvoiceItems.DataSource = invoiceProducts; InvoiceItems.DataBind(); CalculateTotals(); }
public bool add(InvoiceItems invoiceItem) { try { _context.InvoiceItems.Add(invoiceItem); _context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e.StackTrace); return(false); } return(true); }
public bool update(int id, InvoiceItems invoiceItem) { invoiceItem.InvoiceItemsId = id; try { _context.InvoiceItems.Update(invoiceItem); _context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e.StackTrace); return(false); } return(true); }
/// <summary> /// Generate Item list test data /// </summary> /// <param name="numberofItems"> /// Number of generated items /// </param> /// <returns> /// Item list /// </returns> public List <InvoiceItems> GenerateItemTestData(int numberofItems) { List <InvoiceItems> items = new List <InvoiceItems>(); for (int i = 1; i <= numberofItems; i++) { var invoiceItem = new InvoiceItems { Price = 10 * i, Id = i, ItemName = "Item " + i }; items.Add(invoiceItem); } return(items); }
private void btnSave_Click(object sender, EventArgs e) { Invoice invoice = new Invoice(); invoice.customerID = 0; invoice.customerName = txtCustomer.Text; invoice.qtyCount = gv.Rows.Count; invoice.amount = Convert.ToDecimal(lblTotal.Text); List <InvoiceItems> ItemsList = new List <InvoiceItems>(); for (int i = 0; i < gv.Rows.Count; i++) { InvoiceItems item = new InvoiceItems(); item.productID = Convert.ToInt32(gv.Rows[i].Cells[0].Value); item.qty = Convert.ToInt32(gv.Rows[i].Cells[2].Value); item.price = Convert.ToInt32(gv.Rows[i].Cells[3].Value); item.expiry = Convert.ToDateTime(gv.Rows[i].Cells[5].Value); //InvoiceItems item = new InvoiceItems() //{ // productID = Convert.ToInt32(gv.Rows[i].Cells[0].Value), // qty = Convert.ToInt32(gv.Rows[i].Cells[2].Value), // price = Convert.ToInt32(gv.Rows[i].Cells[3].Value), // expiry = Convert.ToDateTime(gv.Rows[i].Cells[5].Value), //}; //invoice.items.Add(new InvoiceItems() //{ // productID = Convert.ToInt32(gv.Rows[i].Cells[0].Value), // qty = Convert.ToInt32(gv.Rows[i].Cells[2].Value), // price = Convert.ToDecimal(gv.Rows[i].Cells[3].Value), // expiry = Convert.ToDateTime(gv.Rows[i].Cells[5].Value) //}); ItemsList.Add(item); } invoice.items = ItemsList; res = db.addInvoice(invoice); if (res.success) { MetroSetMessageBox.Show(this, res.message, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); gv.Rows.Clear(); lblTotal.Text = "0"; } else { MetroSetMessageBox.Show(this, res.message + " on step number : " + res.data, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
protected void GrdReturningItems_RowDeleting(object sender, GridViewDeleteEventArgs e) { //Collects current method for error tracking string method = "GrdReturningItems_RowDeleting"; object[] objPageDetails = { Session["currPage"].ToString(), method }; try { Invoice returnInvoice = IM.CallReturnCurrentInvoice(Convert.ToInt32(Request.QueryString["invoice"]), CU.location.intProvinceID, objPageDetails)[0]; lblInvalidQty.Visible = false; //Gathers index from selected line item int index = e.RowIndex; //Stores the info about the item in that index int invoiceItemReturnID = Convert.ToInt32(((Label)GrdReturningItems.Rows[index].Cells[0].FindControl("lblInvoiceItemReturnID")).Text); InvoiceItems selectedSku = IIM.ReturnSkuFromCurrentSalesUsingSKU(invoiceItemReturnID, returnInvoice.dtmInvoiceDate, CU.location.intProvinceID, objPageDetails); //add item to table and remove the added qty from current inventory IIM.DoNotReturnTheItemOnReturn(selectedSku, objPageDetails); IIM.CallRemoveQTYFromInventoryWithSKU(selectedSku.intInventoryID, selectedSku.intItemTypeID, (IIM.ReturnCurrentQuantityOfItem(selectedSku, objPageDetails) - selectedSku.intItemQuantity), objPageDetails); //deselect the indexed item GrdReturningItems.EditIndex = -1; //Check if the marked for returns cart has any items in it GrdInvoicedItems.DataSource = IIM.CallReturnInvoiceItemsFromProcessedSalesForReturn(returnInvoice.varInvoiceNumber, returnInvoice.dtmInvoiceDate, CU.location.intProvinceID, objPageDetails); GrdInvoicedItems.DataBind(); returnInvoice = IM.CallReturnCurrentInvoice(returnInvoice.intInvoiceID, CU.location.intProvinceID, objPageDetails)[0]; IM.CalculateNewInvoiceReturnTotalsToUpdate(returnInvoice, objPageDetails); GrdReturningItems.DataSource = returnInvoice.invoiceItems; GrdReturningItems.DataBind(); //recalculate the return total lblReturnSubtotalDisplay.Text = "$ " + returnInvoice.fltSubTotal.ToString("#0.00"); } //Exception catch catch (ThreadAbortException tae) { } catch (Exception ex) { //Log all info into error table ER.CallLogError(ex, CU.employee.intEmployeeID, Convert.ToString(Session["currPage"]) + "-V3.2", method, this); //Display message box MessageBoxCustom.ShowMessage("An Error has occurred and been logged. " + "If you continue to receive this message please contact " + "your system administrator.", this); } }
public ActionResult InvoiceDetails(int id) { if (Session["UserId"] != null) { List <Tbl_InvoiceItems> InvoiceItemsList = _context.Tbl_InvoiceItems.Where(x => x.InvoiceId == id).ToList(); var viewmodel = new InvoiceItems { InvoiceItem = InvoiceItemsList }; return(View(viewmodel)); } else { return(RedirectToAction("Login", "Home")); } }
public ActionResult AddInvoiceItem(int itemId, string itemName, double price, int qty) { if ( Session["InvoiceItems"] == null) { Session["InvoiceItems"] = new List<InvoiceItems>(); } List<InvoiceItems> itemList = (List<InvoiceItems>)Session["InvoiceItems"]; InvoiceItems item = new InvoiceItems { ItemID = itemId, ItemName = itemName, ItemPrice = price, Quantity = qty, SubTotal = qty * price }; itemList.Add(item); Session["InvoiceItems"] = itemList; ResponseMessage response = new ResponseMessage { Status = true, Message = "success" }; return Json(response, JsonRequestBehavior.AllowGet); }
private void Save() { var invoice = InvoiceItems.First().InvoiceID; switch (CurrentInvoiceType) { case InvoiceType.Factory: DB.UpdateInvoice(invoice, LoggedUser.ID, txtInvoiceNo.Text, txtAwbNo.Text, Convert.ToInt32(StatusDropDownList.SelectedItem.Value), Convert.ToInt32(BillToDropDownList.SelectedItem.Value), Convert.ToInt32(BankDropDownList.SelectedItem.Value), Convert.ToDateTime(txtInvoiceDate.Text).GetSQLDateString()); break; case InvoiceType.Indiman: DB.UpdateInvoice(invoice, LoggedUser.ID, null, txtAwbNo.Text, Convert.ToInt32(StatusDropDownList.SelectedItem.Value), Convert.ToInt32(BillToDropDownList.SelectedItem.Value), Convert.ToInt32(BankDropDownList.SelectedItem.Value), Convert.ToDateTime(txtInvoiceDate.Text).GetSQLDateString(), txtIndimanInvoiceNo.Text, txtIndimanInvoiceDate.Text); break; default: throw new ArgumentOutOfRangeException(); } DB.UpdateChangedInvoiceOrderDetailItemPrices(InvoiceItems); }
protected void BtnAddPurchase_Click(object sender, EventArgs e) { //Collects current method error tracking string method = "BtnAddPurchase_Click"; object[] objPageDetails = { Session["currPage"].ToString(), method }; try { Invoice receipt = IM.CallReturnCurrentPurchaseInvoice(Convert.ToInt32(Request.QueryString["receipt"]), CU.location.intProvinceID, objPageDetails)[0]; string[] inventoryInfo = ItM.CallReserveTradeInSKU(CU, objPageDetails); InvoiceItems purchItem = new InvoiceItems { intInventoryID = Convert.ToInt32(inventoryInfo[1]), varSku = inventoryInfo[0].ToString(), intItemQuantity = 1, varItemDescription = "", fltItemCost = 0.00, intInvoiceID = receipt.intInvoiceID, fltItemDiscount = 0, fltItemRefund = 0, fltItemPrice = 0, bitIsDiscountPercent = false, bitIsClubTradeIn = false, intItemTypeID = 1 }; IIM.CallInsertItemIntoSalesCart(purchItem, receipt.intTransactionTypeID, receipt.dtmInvoiceDate, CU.location.intProvinceID, objPageDetails); //Bind items in cart to grid view UpdateReceiptTotal(); } //Exception catch catch (ThreadAbortException) { } catch (Exception ex) { //Log all info into error table ER.CallLogError(ex, CU.employee.intEmployeeID, Convert.ToString(Session["currPage"]), method, this); //Display message box MessageBoxCustom.ShowMessage("An Error has occurred and been logged. " + "If you continue to receive this message please contact " + "your system administrator.", this); } }
protected void Quantity_TextChanged(object sender, EventArgs e) { List <InvoiceDetailsViewModel> invoiceProducts = GetInvoiceItemsFromGridView(); foreach (var row in invoiceProducts) { if (row.Quantity < 1) { row.Quantity = 1; MessageUserControl.ShowInfo("", "Quantity must be at least 1."); } if (row.Quantity * row.Price != row.Amount) { row.Amount = (decimal)(row.Quantity * row.Price); } } InvoiceItems.DataSource = invoiceProducts; InvoiceItems.DataBind(); CalculateTotals(); }
public async Task <ActionResult <InvoiceItems> > PostInvoiceItems(InvoiceItems invoiceItems) { _context.InvoiceItems.Add(invoiceItems); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (InvoiceItemsExists(invoiceItems.InvoiceLineId)) { return(Conflict()); } else { throw; } } return(CreatedAtAction("GetInvoiceItems", new { id = invoiceItems.InvoiceLineId }, invoiceItems)); }