/// <summary> /// Realiza la impresión del ticket de pago /// </summary> /// <param name="EnClave">Indica si se imprimiran claves de conceptos, o no</param> /// <param name="ImprimirFirmas">Indica si se imprimiran las firmas</param> private void Imprimir(bool EnClave, bool ImprimirFirmas, int ncopia) { bool HayImpresion = false; // Instancia de la impresión PrintHelper printer = new PrintHelper(); // Obtener datos del ticket List<Entities.Get_DatosTicket> ticketdata = Entities.Get_DatosTicket.Get(Ticket.Ticket_ID); // Nueva tabla de datos DataTable dtable = new DataTable(); // Agregamos las columnas // Si es en clave if (EnClave) { // La columna como entero dtable.Columns.Add("CIUD", typeof(System.Int32)); } else { // Si no es en clave // La columna como cadena dtable.Columns.Add("CIUD", typeof(System.String)); } dtable.Columns.Add("M", typeof(System.Decimal)); dtable.Columns.Add("S", typeof(System.Decimal)); // Si hay registros en el ticket if (ticketdata.Count > 0) { Entities.Get_DatosTicket data = ticketdata[0]; // Recorrer los registros del ticket foreach (Entities.Get_DatosTicket mov in ticketdata) { // Si es clave if (EnClave) { // Ingresar el numero de la cuenta dtable.Rows.Add(mov.Cuenta_ID, mov.Abono, mov.Saldo); } else { // Ingresar la descripcion de la cuenta dtable.Rows.Add(mov.Cuenta, mov.Abono, mov.Saldo); } } // Imprimir los datos de empresa, estacion, unidad, conductor printer.PrintText(string.Format("#COPIA: {0}", ncopia)); printer.PrintCLRF(); printer.PrintText(string.Format("TID: {0} EID: {1}", data.Ticket_ID, data.Empresa_ID)); printer.PrintText(string.Format("CID: {0} ESTID: {1}", data.Conductor_ID, data.Estacion_ID)); printer.PrintText(string.Format("UID: {0} CAID: {1}", data.Unidad_ID, data.Caja_ID)); printer.PrintText(string.Format("F: {0:yyyy-MM-dd} H: {0:HH:mm:ss}", data.Fecha)); printer.PrintCLRF(); // Si no es en clave if (!EnClave) { // Imprimir numero economico y nombre del conductor printer.PrintText(string.Format("U{0}", data.NumeroEconomico)); printer.PrintText(data.Conductor.ToUpper()); } printer.PrintCLRF(); // Imprimir la tabla printer.PrintTable(dtable); printer.PrintText("$ TA: {0:N2}", Operacion.TotalAdeudos); HayImpresion = true; } // Si hay servicios if (this.ServiciosPendientes.Count > 0) { // Creamos la tabla de servicios DataTable boltable = new DataTable(); boltable.Columns.Add("B", typeof(System.String)); boltable.Columns.Add("P", typeof(System.Decimal)); foreach (Entities.ServiciosPendientesConductor spc in this.ServiciosPendientes) { boltable.Rows.Add(spc.Servicio_ID, spc.PagoConductor); } printer.PrintCLRF(); printer.PrintCLRF(); // Imprimimos la tabla de servicios printer.PrintTable(boltable); printer.PrintText("# B: {0:N0}", this.ServiciosPendientes.Count); printer.PrintText("$ B: {0:N2}", Operacion.TotalServicios); } // Si hay planillas if (this.Planillas.Count > 0) { printer.PrintCLRF(); // Obtenemos el total decimal totalPlanillas = 0; // Recorriendo la colección de planillas foreach (Entities.PlanillasFiscales planilla in Planillas) { totalPlanillas += planilla.Precio; } // Imprimimos el total printer.PrintText("PF: " + Math.Round(totalPlanillas, 2).ToString()); // Informamos que hay datos por imprimir HayImpresion = true; } // Si hay vales if (this.Vales.Count > 0) { printer.PrintCLRF(); // Obtenemos el total decimal totalVales = 0; // Recorriendo la colección foreach (Entities.ValesPrepagados vale in this.Vales) { totalVales += vale.Denominacion; } // Imprimimos el total printer.PrintText("VP: " + Math.Round(totalVales, 2).ToString()); // Informamos que hay datos por imprimir HayImpresion = true; } printer.PrintText("TPC: {0:N2}", Math.Abs(this.Operacion.Cambio)); printer.PrintLine(); // Si hay datos por imprimir if (HayImpresion) { // Imprimir firmas if (ImprimirFirmas) { printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintText("-------------------------------"); printer.PrintText("F CA"); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintText("-------------------------------"); printer.PrintText("F CO"); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintText("================================"); } LogHelper.Logger.InfoFormat("Busca ticket #{0} en Base de Datos.", Ticket.Ticket_ID); if (SICASv20.Entities.Tickets.ExisteTicketEnDB(Ticket.Ticket_ID)) { LogHelper.Logger.InfoFormat("Imprimiendo ticket #{0} - copia {1}", Ticket.Ticket_ID, ncopia); printer.Print(); LogHelper.Logger.InfoFormat("Se imprimió ticket #{0} - copia {1}", Ticket.Ticket_ID, ncopia); Entities.Tickets.InsertaBitacoraTicket(Ticket, ncopia); } else { LogHelper.Logger.InfoFormat("Ticket #{0} no encontrado en Base de Datos.", Ticket.Ticket_ID); } } }
/// <summary> /// Reimprime el ticket consultado /// </summary> private void ReimprimirTicket() { // Variable que nos indica si hemos enviado datos // a imprimir, para incluir el pie de página bool HayImpresion = false; // Instanciamos un nuevo ayudante de impresión PrintHelper printer = new PrintHelper(); // Obtenemos los datos dle ticket List<Entities.Get_DatosTicket> ticketdata = Entities.Get_DatosTicket.Get(this.Model.Ticket_ID); //////////////////////////////// // Preparamos una tabla de datos para contener los movimientos DataTable dtable = new DataTable(); dtable.Columns.Add("CIUD", typeof(System.String)); dtable.Columns.Add("M", typeof(System.Decimal)); dtable.Columns.Add("S", typeof(System.Decimal)); Entities.Get_DatosTicket data = ticketdata[0]; // Si el ticket tiene información if (ticketdata.Count > 0) { // Obtenemos el primer registro // para los datos de encabezado //Entities.Get_DatosTicket data = ticketdata[0]; // Recorremos los registros foreach (Entities.Get_DatosTicket mov in ticketdata) { // Agregamos los registros a la tabla dtable.Rows.Add(mov.Cuenta, mov.Abono, mov.Saldo); } // Imprimimos los datos de encabezado //printer.PrintText(string.Format("TID: {0} EID: {1}", data.Ticket_ID, data.Empresa_ID)); //printer.PrintText(string.Format("CID: {0} ESTID: {1}", data.Conductor_ID, data.Estacion_ID)); //printer.PrintText(string.Format("UID: {0} CAID: {1}", data.Unidad_ID, data.Caja_ID)); //printer.PrintText(string.Format("F: {0:yyyy-MM-dd} H: {0:HH:mm:ss}", data.Fecha)); printer.PrintText(string.Format("TID: {0} EID: {1}", data.FolioT, data.Empresa_ID)); printer.PrintText(string.Format("CID: {0} ESTID: {1}", data.Conductor_ID, data.Estacion_ID)); printer.PrintText(string.Format("UID: {0} CAID: {1}", data.Unidad_ID, data.Caja_ID)); printer.PrintText(string.Format("F: {0:yyyy-MM-dd} H: {0:HH:mm:ss}", data.Fecha)); printer.PrintCLRF(); if (chkUnidad.Checked == true) { printer.PrintText(string.Format("U: {0}", data.NumeroEconomico)); } if (chkNombre.Checked==true) { // printer.PrintText(data.Conductor.Replace(data.NumeroEconomico.ToString(), "").Replace("(", "").Replace(")", "")); // printer.PrintText(string.Format("U: {0}", data.NumeroEconomico)); printer.PrintText(string.Format("RS: {0}", data.RazonSocial)); printer.PrintText(string.Format("RFC: {0}", data.RFC)); printer.PrintText(string.Format("CI: {0}", data.Ticket_ID)); } printer.PrintCLRF(); // Imprimirmos la tabla printer.PrintTable(dtable); // Configuramos la variable que indica si imprimimos datos HayImpresion = true; } // Si hay datos enviado a imprimir if (HayImpresion) { // Imprimimos el pie de página printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintText("-------------------------------"); printer.PrintText("F CA"); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintText("-------------------------------"); printer.PrintText("F CO"); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintLine(); printer.PrintText("================================"); printer.PrintText("=======SECCION PARA CONDUCTOR========="); printer.PrintCLRF(); printer.PrintText(string.Format("TID: {0} EID: {1}", data.FolioT, data.Empresa_ID)); //printer.PrintText(string.Format("CID: {0} ESTID: {1}", data.Conductor_ID, data.Estacion_ID)); printer.PrintText(string.Format("UID: {0} CAID: {1}", data.Unidad_ID, data.Caja_ID)); printer.PrintText(string.Format("F: {0:yyyy-MM-dd} H: {0:HH:mm:ss}", data.Fecha)); printer.PrintCLRF(); printer.PrintText(string.Format("U: {0}", data.NumeroEconomico)); printer.PrintText(string.Format("C: {0}", data.Conductor)); printer.PrintText(string.Format("CI: {0}", data.Ticket_ID)); printer.PrintTable(dtable); printer.PrintCLRF(); printer.PrintText("================================"); printer.PrintText("================================"); //printer.PrintLine(); printer.Print(); } //////////////////////////////// } // end ReimprimirTicket