Ejemplo n.º 1
0
 private async void MethodLoadDetalle()
 {
     await Task.Factory.StartNew(() =>
     {
         try
         {
             var vrCollectionESGR_VentaCuenta = new BSGR_VentaCuenta().GetCollectionESGR_VentaCuenta(ESGR_Venta.IdVenta);
             Application.Current.Dispatcher.Invoke(() =>
             {
                 vrCollectionESGR_VentaCuenta.ToList().ForEach(x =>
                 {
                     var vrCollectionVentaDetalle = new BSGR_VentaDetalle().GetCollectionVentaDetalle(ESGR_Venta.IdVenta);
                     x.JsonDetalle      = JsonConvert.SerializeObject(vrCollectionVentaDetalle);
                     decimal dmlImporte = vrCollectionVentaDetalle.Where(z => z.ESGR_VentaCuenta.IdCuenta == x.IdCuenta).Sum(y => y.Precio *y.CantidadPagar);
                     dmlImporte         = (dmlImporte + x.Adicional - x.Descuento);
                     CollectionESGR_VentaDetalle.Add(new ESGR_VentaDetalle()
                     {
                         ESGR_VentaCuenta = x, Importe = dmlImporte
                     });
                 });
                 MethodCalcular();
             });
         }
         catch (Exception ex)
         {
             CmpMessageBox.Show(SGRMessage.AdministratorVenta, ex.Message, CmpButton.Aceptar);
         }
     });
 }
 private void MethodLoadDetail()
 {
     try
     {
         if (ESGR_AperturaCierreCaja.Opcion != "I")
         {
             var vrListDetalle = new BSGR_VentaDetalle().GetCollectionVentaDetalle(0, ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja.ToString()).ToList();
             var vrCollection_AperturaCierreCajaDetalle = new BSGR_AperturaCierreCaja().CollectionESGR_AperturaCierreCajaDetalle(ESGR_AperturaCierreCaja).ToList();
             Application.Current.Dispatcher.Invoke(() =>
             {
                 ColletionMDSGR_AperturaCajaDetalle.Clear();
                 var CollectionESGR_Moneda    = new CmpObservableCollection <ESGR_Moneda>(new BSGR_Moneda().GetCollectionMoneda());
                 var CollectionESGR_MedioPago = new CmpObservableCollection <ESGR_MedioPago>(new BSGR_MedioPago().GetCollectionMedioPago());
                 vrCollection_AperturaCierreCajaDetalle.ForEach(x =>
                 {
                     var vrSelectMoneda    = CollectionESGR_Moneda.FirstOrDefault(y => y.CodMoneda == x.ESGR_Moneda.CodMoneda);
                     var vrSelectMedioPago = CollectionESGR_MedioPago.FirstOrDefault(y => y.IdMedioPago == x.ESGR_MedioPago.IdMedioPago);
                     var vrDetalle         = vrListDetalle.Where(z => z.ESGR_VentaCuenta.ESGR_MedioPago.IdMedioPago == x.ESGR_MedioPago.IdMedioPago && z.ESGR_VentaCuenta.ESGR_Moneda.CodMoneda == x.ESGR_Moneda.CodMoneda);
                     ColletionMDSGR_AperturaCajaDetalle.Add(new MDSGR_AperturaCierreCajaDetalle()
                     {
                         Item = x.Item,
                         CollectionESGR_Moneda    = CollectionESGR_Moneda,
                         CollectionESGR_MedioPago = CollectionESGR_MedioPago,
                         SelectedESGR_Moneda      = vrSelectMoneda,
                         SelectedESGR_MedioPago   = vrSelectMedioPago,
                         ESGR_Moneda   = x.ESGR_Moneda,
                         Monto_Inicio  = x.Monto_Inicio,
                         Monto_Sistema = vrDetalle.Sum(y => y.Importe) - x.Monto_Inicio + vrDetalle.Sum(y => y.ESGR_VentaCuenta.Adicional) - vrDetalle.Sum(y => y.ESGR_VentaCuenta.Descuento),
                         Monto_Cierre  = x.Monto_Cierre,
                         DiferExceso   = x.DiferExceso
                     });
                 });
             });
         }
     }
     catch (Exception ex)
     {
         CmpMessageBox.Show(SGRMessage.AdministracionAperturaCierreCaja, ex.Message, CmpButton.Aceptar);
     }
 }
 private void MethodImprimir(string Titulo)
 {
     try
     {
         var vrVentaMedioPago  = new BSGR_VentaCuenta().GetReportVentaMedioPago(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja);
         var vrVentaCategoria  = new BSGR_VentaDetalle().GetReportVentaCategoria(ESGR_AperturaCierreCaja.IdAperturaCierreCaja);
         var vrVentaPedidoTipo = new BSGR_VentaCuenta().GetReportVentaPedidoTipo(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja);
         var vrVentaFormaPago  = new BSGR_VentaCuenta().GetReportVentaFormaPago(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja);
         var vrMovimientoCaja  = new BSGR_MovimientoCaja().GetReportMovimientoCaja(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja);
         var vrTotalDescuentos = new BSGR_VentaCuenta().GetTotalAdicionalDescuentos(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja, "GetTotalDescuento");
         var vrTotalAdicional  = new BSGR_VentaCuenta().GetTotalAdicionalDescuentos(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja, "GetTotalAdicional");
         var vrTotalPorEstado  = new BSGR_Estado().GetReportCollectionEstado(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja);
         var vrTotalPorPedido  = new BSGR_Venta().GetTotalPorPedido(ESGR_AperturaCierreCaja.ESGR_Caja.IdCaja);
         Thread.Sleep(2000);
         CrearTicket ticket = new CrearTicket();
         ticket.TextoCentro(SGRVariables.ESGR_Usuario.ESGR_Empresa.RazonSocial);
         ticket.TextoIzquierda("RUC: " + SGRVariables.ESGR_Usuario.ESGR_Empresa.Ruc);
         ticket.TextoIzquierda(SGRVariables.ESGR_Usuario.ESGR_Empresa.DireccionFiscal);
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoCentro(Titulo.ToUpper());
         ticket.TextoIzquierda("Corte de " + ESGR_AperturaCierreCaja.ESGR_Caja.Descripcion);
         ticket.TextoIzquierda("DEL " + ESGR_AperturaCierreCaja.FechaApertura.ToString().ToUpper());
         ticket.TextoIzquierda(" AL " + ESGR_AperturaCierreCaja.FechaCierre.ToString().ToUpper());
         ticket.lineasIgual();
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoCentro(ESGR_AperturaCierreCaja.ESGR_Caja.Descripcion);
         decimal dmlSaldoFinal = 0;
         vrVentaMedioPago.ToList().ForEach(x =>
         {
             ticket.TextoTriple("+ " + x.ESGR_MedioPago.MedioPago, ": " + x.ESGR_Moneda.Simbolo, x.Total.ToString("N3"));
             dmlSaldoFinal += x.Total;
         });
         vrMovimientoCaja.ToList().ForEach(x =>
         {
             ticket.TextoTriple(((x.ESGR_Motivo.Campo.Trim() == "ING") ? "+ " : "- ") + x.ESGR_Motivo.Motivo, ": " + x.ESGR_Moneda.Simbolo, x.Total.ToString("N3"));
             dmlSaldoFinal += ((x.ESGR_Motivo.Campo.Trim() == "ING") ? x.Total : (-1) * x.Total);
         });
         ticket.TextoExtremosAlineados(string.Empty, "________________");
         ticket.TextoTriple("=  SALDO FINAL", ": " + vrMovimientoCaja.FirstOrDefault().ESGR_Moneda.Simbolo, dmlSaldoFinal.ToString("N3"));
         ticket.TextoTriple("EFECTIVO FINAL", ": " + ColletionMDSGR_AperturaCajaDetalle.FirstOrDefault().SelectedESGR_Moneda.Simbolo, ColletionMDSGR_AperturaCajaDetalle.Sum(x => x.Monto_Cierre).ToString("N3"));
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoCentro("FORMA DE PAGO VENTA");
         vrVentaFormaPago.ToList().ForEach(x => ticket.TextoTriple(x.ESGR_MedioPago.ESGR_FormaPago.FormaPago, ": " + x.ESGR_Moneda.Simbolo, x.Total.ToString("N3")));
         ticket.TextoIzquierda(string.Empty);
         ticket.lineasIgual();
         ticket.TextoCentro("VENTAS (INCLUYE IMPUESTO)");
         ticket.TextoCentro("POR CATEGORIA");
         vrVentaCategoria.ToList().ForEach(x =>
         {
             ticket.TextoTriple(x.ESGR_Producto.ESGR_ProductoSubCategoria.ESGR_ProductoCategoria.Categoria, ": " + x.ESGR_VentaCuenta.ESGR_Moneda.Simbolo, x.Importe.ToString("N3"));
         });
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoCentro("POR TIPO DE SERVICIO");
         decimal dmlSubTotal = 0;
         vrVentaPedidoTipo.ToList().ForEach(x =>
         {
             ticket.TextoTriple(x.ESGR_Venta.ESGR_Pedido.ESGR_PedidoTipo.PedidoTipo, ": " + x.ESGR_Moneda.Simbolo, x.Total.ToString("N3"));
             dmlSubTotal += x.Total;
         });
         ticket.TextoExtremosAlineados(string.Empty, "________________");
         string strSimbolo = vrVentaPedidoTipo.FirstOrDefault().ESGR_Moneda.Simbolo;
         ticket.TextoTriple(" SUBTOTAL", ": " + strSimbolo, dmlSubTotal.ToString("N3"));
         ticket.TextoTriple("+ADICIONAL", ": " + strSimbolo, vrTotalAdicional.ToString("N3"));
         ticket.TextoTriple("-DESCUENTOS", ": " + strSimbolo, vrTotalDescuentos.ToString("N3"));
         decimal dmlVentaNeta = (dmlSubTotal - vrTotalDescuentos + vrTotalAdicional);
         ticket.TextoTriple(" VENTA NETA", ": " + strSimbolo, dmlVentaNeta.ToString("N3"));
         ticket.TextoExtremosAlineados(string.Empty, "________________");
         dmlVentaNeta = dmlVentaNeta / ((SGRVariables.ESGR_Retencion.IGV / 100) + 1);
         ticket.TextoTriple("VENTA     (" + SGRVariables.ESGR_Retencion.IGV.ToString("N2") + "%)", ": " + strSimbolo, dmlVentaNeta.ToString("N3"));
         decimal dmlImpuesto = dmlVentaNeta * (SGRVariables.ESGR_Retencion.IGV / 100);
         ticket.TextoTriple("IMPUESTO  (" + SGRVariables.ESGR_Retencion.IGV.ToString("N2") + "%)", ": " + strSimbolo, dmlImpuesto.ToString("N3"));
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoTriple("IMPUESTO TOTAL", ": " + strSimbolo, dmlImpuesto.ToString("N3"));
         ticket.TextoExtremosAlineados(string.Empty, "________________");
         ticket.TextoTriple("VENTA CON IMP.", ": " + strSimbolo, (dmlVentaNeta + dmlImpuesto).ToString("N3"));
         ticket.TextoExtremosAlineados(string.Empty, "================");
         ticket.TextoIzquierda(string.Empty);
         ticket.lineasIgual();
         #region OPCIONAL
         //ticket.TextoExtremosAliniados("CUENTAS NORMALES", ": 0");
         //ticket.TextoExtremosAliniados("CUENTAS CANCELADOS", ": 0");
         //ticket.TextoExtremosAliniados("CUENTAS CON DESCUENTO", ": 0");
         //ticket.TextoExtremosAliniados("CUENTAS CON CORTESIA", ": 0");
         //ticket.TextoExtremosAliniados("CUENTA PROMEDIO", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("CONSUMO PROMEDIO", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("COMENSALES", ": 0");
         //ticket.TextoExtremosAliniados("PROPINAS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("CARGOS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("DESCUENTO MONEDERO", ": S/. 0.000");
         //ticket.TextoExtremos("FOLIO INICIAL", "828");
         //ticket.TextoExtremos("FOLIO FINAL", "890");
         //ticket.TextoExtremosAliniados("CORTESIA ALIMENTOS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("CORTESIA BEBIDAS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("CORTESIA OTROS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados(string.Empty, "________________");
         //ticket.TextoExtremosAliniados("TOTAL CORTESIAS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("DESCUENTO ALIMENTOS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("DESCUENTO BEBIDAS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados("DESCUENTO OTROS", ": S/. 0.000");
         //ticket.TextoExtremosAliniados(string.Empty, "________________");
         //ticket.TextoExtremosAliniados("TOTAL DESCUENTOS", ": S/. 0.000");
         #endregion
         ticket.TextoCentro("REPORTE DE PEDIDOS");
         ticket.lineasAsteriscos();
         ticket.TextoTriple("FOLIO INICIAL", ": ", vrTotalPorPedido.FirstOrDefault().ESGR_Pedido.IdPedido.ToString("00000#"));
         ticket.TextoTriple("FOLIO FINAL", ": ", vrTotalPorPedido.LastOrDefault().ESGR_Pedido.IdPedido.ToString("00000#"));
         ticket.TextoTriple("COMENSALES APROX.", ": ", vrTotalPorPedido.Sum(x => x.ESGR_Pedido.Cubierto).ToString("00#"));
         vrTotalPorEstado.ToList().ForEach(x => ticket.TextoTriple(x.Estado, ": ", x.Total.ToString("00#")));
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoCentro("DECLARACION DE CAJERO");
         decimal dmlTotalCajero = 0;
         ColletionMDSGR_AperturaCajaDetalle.FirstOrDefault().CollectionESGR_MedioPago.ToList().ForEach(x =>
         {
             var dml = ColletionMDSGR_AperturaCajaDetalle.FirstOrDefault(y => y.SelectedESGR_MedioPago.IdMedioPago == x.IdMedioPago);
             ticket.TextoTriple(x.MedioPago, ": " + strSimbolo, ((dml == null) ? "0.000" : dml.Monto_Cierre.ToString("N3")));
             dmlTotalCajero += (dml == null) ? 0 : dml.Monto_Cierre;
         });
         ticket.TextoExtremosAlineados(string.Empty, "________________");
         ticket.TextoTriple("TOTAL", ": " + strSimbolo, dmlTotalCajero.ToString("N3"));
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoIzquierda("SOBRANTE(+) O FALTANTE(-): ");
         decimal dmlCierre = dmlTotalCajero - (dmlVentaNeta + dmlImpuesto);
         ticket.TextoDerecha(strSimbolo + " " + ((dmlCierre < 0) ? string.Empty : "+") + dmlCierre.ToString("N3"));
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoExtremosAlineados("_________________", "_________________");
         ticket.TextoExtremosAlineados("     GERENTE", "     CAJERO");
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoIzquierda(string.Empty);
         ticket.TextoCentro(SGRMessage.TitleMessage.ToUpper());
         ticket.TextoIzquierda(string.Empty);
         //Application.Current.Dispatcher.Invoke(() =>
         //{
         ticket.ImprimirTicket(SGRVariables.ImpresoraCaja);
         //});
     }
     catch (Exception)
     {
         throw;
     }
 }