/// <summary> /// Initialize current instance /// </summary> /// <param name="window">Owner window</param> /// <param name="sale">Sale to do payment</param> /// <param name="model">Data model</param> public PaymentsSale(Window window, Sale sale, LeposWPFModel model) { this.Model = model; this.Sale = sale; this.Owner = window; InitializeComponent(); }
//Venta public static void TicketVenta(Sale sale, String clientName) { Company empresa = CompanyHelper.currentCompany; Ticket ticket = getTicket(clientName); ticket.AddHeaderLine(empresa.Name); ticket.AddHeaderLine(empresa.Description); ticket.AddHeaderLine(empresa.Address); ticket.AddSubHeaderLine("Venta # " + sale.ID); ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString()); foreach (var row in sale.SaleProducts) { String cantidad = row.Quantity+""; String descripcion =row.Product.Description; double precio = row.Price; ticket.AddItem(cantidad, descripcion, precio.ToString("C")); } double total = sale.Total; double descuento = 1.0 - (sale.Discount/ 100.0); double subtotal = sale.Total / descuento; double siva; double iva = 0; int ivaconf = sale.IVAType; switch (ivaconf) { case 1: subtotal = sale.Total / descuento; siva = subtotal * descuento; iva = total / 1.16 * 0.16; break; case 2: subtotal = (sale.Total / 1.16) / descuento; iva = total / 1.16 * 0.16; break; } String tipo = !sale.IsCredit ? "Contado" : "Crédito"; ticket.AddTotal("Tipo Venta", tipo); ticket.AddTotal("SUBTOTAL", subtotal.ToString("C")); ticket.AddTotal("% Descuento", sale.Discount.ToString()); if(ivaconf!=0) ticket.AddTotal("IVA", iva.ToString("C")); ticket.AddTotal("TOTAL", sale.Total.ToString("C")); ticket.AddTotal("", ""); ticket.AddFooterLine("VUELVA PRONTO"); printTicket(ref ticket); }
//AbonoVenta public static void TicketAbonoVentaCredito(SalePayment abono, Sale venta, Double deuda, String clientName) { Company empresa = CompanyHelper.currentCompany; Ticket ticket = getTicket(clientName); ticket.AddSubHeaderLine("Venta # " + venta.ID); ticket.AddSubHeaderLine("Abono # " + abono.ID); ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString()); ticket.AddTotal("Total Venta", venta.Total.ToString("C")); ticket.AddTotal("Deuda:", deuda.ToString("C")); ticket.AddTotal("Abono:", abono.Payment.ToString("C")); ticket.AddTotal("Saldo:", (deuda-abono.Payment).ToString("C")); ticket.AddTotal("", ""); ticket.AddFooterLine("VUELVA PRONTO"); printTicket(ref ticket); }
//Venta public static void TicketVenta(DataGridView dgvVenta, Sale venta, String recibo, String cambio, String clientName) { Company empresa = CompanyHelper.currentCompany; Ticket ticket = getTicket(clientName); ticket.AddSubHeaderLine("Venta # " + venta.ID); ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString()); foreach(DataGridViewRow row in dgvVenta.Rows) { String cantidad = row.Cells[2].Value.ToString(); String descripcion = row.Cells[1].Value.ToString(); double precio = double.Parse(row.Cells[3].Value.ToString()); ticket.AddItem(cantidad, descripcion, precio.ToString("C")); } double total = venta.Total; double descuento = 1.0 - (venta.Discount / 100.0); double subtotal = venta.Total / descuento; double siva; double iva = 0; int ivaconf = venta.IVAType; switch (ivaconf) { case 1: siva = subtotal * descuento; iva = total / 1.16 * 0.16; break; case 2: subtotal = (venta.Total / 1.16) / descuento; iva = total / 1.16 * 0.16; break; } String tipo = !venta.IsCredit ? "Contado" : "Crédito"; ticket.AddTotal("Tipo Venta", tipo); ticket.AddTotal("SUBTOTAL", subtotal.ToString("C")); ticket.AddTotal("% Descuento", venta.Discount.ToString()); if (ivaconf != 0) ticket.AddTotal("IVA", iva.ToString("C")); if (!venta.IsCredit) { ticket.AddTotal("TOTAL", venta.Total.ToString("C")); ticket.AddTotal("Recibo", double.Parse(recibo).ToString("C")); ticket.AddTotal("Cambio", cambio); } else { ticket.AddTotal("Adeudo", venta.Total.ToString("C")); ticket.AddHeaderLine("Fecha Máxima de Pago"); DateTime fechaVenta = DateTime.Now; DateTime fc = fechaVenta.AddDays(venta.CreditDays); ticket.AddHeaderLine(fc.ToString()); } ticket.AddTotal("", ""); ticket.AddFooterLine("VUELVA PRONTO"); printTicket(ref ticket); }
/// <summary> /// Initialize current instance /// </summary> /// <param name="window">Owner window</param> /// <param name="sale">Sale to display values</param> public SaleDetail(Window window, Sale sale) { this.Owner = window; this.sale = sale; InitializeComponent(); }
/// <summary> /// Create sale /// </summary> /// <param name="isCredit">Flag that indicates whether is a credi sale or not</param> /// <param name="creditDays">Number of credit days</param> internal void doSale(Boolean isCredit, int creditDays) { Sale sale = new Sale(); dynamic selectedClient = clientComboBox.SelectedItem; sale.CreditDays = creditDays; sale.Client_ID = selectedClient.ID; sale.Date = DateTime.Now; sale.Discount = discountIntegerUpDown.Value.Value; sale.IsCredit = isCredit; sale.IVAType = CompanyHelper.currentCompany.IVAType; sale.Total = Total; sale.SubTotal = SubTotal; sale.User_ID = UserHelper.loggedUser.ID; sale.IsWholeSale = wholesaleCheckBox.IsChecked.Value; model.Sales.Add(sale); model.SaveChanges(); for (int x = 0; x < saleDataGrid.Items.Count; x++) { dynamic product = saleDataGrid.Items[x]; var Product_ID = DataGridHelper.getTextDG(saleDataGrid, x, 0); var quantity = double.Parse(DataGridHelper.getTextDG(saleDataGrid, x, 2)); //Update quantity record var mappedProduct = model.Products.Where(a => a.ID == Product_ID).FirstOrDefault(); if (mappedProduct != null) mappedProduct.Quantity -= quantity; var price = wholesaleCheckBox.IsChecked.Value ? product.WholeSalePrice : product.Price; sale.SaleProducts.Add(new SaleProduct { Sale_ID = sale.ID, Product_ID = Product_ID, Price = price, Quantity = quantity }); } model.SaveChanges(); if (ticketCheckBox.IsChecked.Value) { //do ticket shit String clientName = selectedClient.Name; TicketPOS.TicketVenta(sale, clientName); } displayText("La venta se ha guardado satisfactoriamente"); resetSale(); }