/// <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);
				}
			}
		}
Exemple #2
0
        /// <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