public ReceiptTicketBuilder(OrderData order, IRestAPI api)
 {
     this.order = order;
     this.api   = api;
     ticket     = new TicketDocument("OpenCart QuickAdmin: Ticket", 8, TicketLen)
     {
         Logo            = Properties.Resources.OpenCart_32px,
         PrinterSettings = new PrinterSettings()
     };
 }
 public TicketReceiptBuilder(Folio folio, ICollection <Issue> issues, ISettingsModel settingsModel)
 {
     this.folio  = folio;
     this.issues = issues;
     ticket      = new TicketDocument("Servitec: ticket de recepción", 8, 45 - 7)
     {
         Logo            = Properties.Resources.logotipo,
         PrinterSettings = new PrinterSettings()
         {
             PrinterName = settingsModel.PRINT_printer
         }
     };
 }
 public TicketDeliveredBuilder(Folio folio, Detail detail, ISettingsModel settingsModel)
 {
     this.folio  = folio;
     this.detail = detail;
     ticket      = new TicketDocument("Servitec: ticket de entrega", 8, 45 - 7)
     {
         Logo            = Properties.Resources.logotipo,
         PrinterSettings = new PrinterSettings()
         {
             PrinterName = settingsModel.PRINT_printer
         }
     };
 }
Пример #4
0
        public static void PrintTicket(string document_name, PrinterSettings settings, OrderDataModel order, int font_size = 8)
        {
            TicketDocument ticket = new TicketDocument(document_name, font_size, TicketLen)
            {
                Logo = Properties.Resources.logotipo
            };

            ticket.PrinterSettings = settings;

            BuildHeader(ticket);
            BuildBody(ticket, order);
            BuildFooter(ticket);

            ticket.Print();
        }
Пример #5
0
 private static void BuildFooter(TicketDocument ticket)
 {
     ticket.TextLocationMode = TextTicketLocation.Footer;
     ticket.Text[TextTicketLocation.Footer].Font = new Font(FontFamily.GenericMonospace.Name, 7, FontStyle.Regular);
     string[] terms = new string[]
     {
         "*Toda garantía o reparación de equipos de almacenamiento, aplica respecto a daño físico y no sobre la información contenida.",
         "*El cliente tendrá un plazo máximo de 5 días hábiles para recoger su equipo, posteriores a la notificación de que el mismo se encuentre listo. Después del plazo, no nos hacemos responsables de equipos no reclamados.",
         "*Toda reparación dentro del período de garantía, se encuentra sujeta a los términos que la póliza marque.",
         "*De ser necesario el envío por paquetería dentro o fuera de la zona metropolitana, el cliente cubrirá los gastos que éste genere.",
         "*El cliente se hace responsable de que la información presentada en el documento es correcta y accepta los términos y condiciones en el mismo."
     };
     foreach (string tc in terms)
     {
         ticket.LeftText(tc);
     }
 }
Пример #6
0
        private static void BuildHeader(TicketDocument ticket)
        {
            string[] header = new string[]
            {
                "Rosalio Barajas Amezquita",
                "R.F.C. BAAR820625AH9",
                "Av. de los Normalistas 564, Colinas de La Normal, 44270 Guadalajara, Jal.",
                "Tel: (33) 3854-54-63 Ext 4",
                "E-mail: [email protected]",
                "www.tecnomarketing.com.mx",
                "Horario: L-V. De 9-14 hrs y 16-19 hrs",
                "Sábados de 9 a 14 hrs"
            };
            foreach (string ht in header)
            {
                ticket.CenterText(ht);
            }

            ticket.Separator(TicketSeparator.Dash);
        }
Пример #7
0
        private static void BuildBody(TicketDocument ticket, OrderDataModel order)
        {
            CustomerModel customer = order.Customer;

            ticket.TextLocationMode = TextTicketLocation.Body;
            ticket.SideText("Fecha de expedición:", DateTime.Today.ToShortDateString());
            ticket.SideText("Fecha de venta:", order.DateAdded.ToShortDateString());
            ticket.SideText("Folio:", $"#{order.ID}");
            ticket.Separator(TicketSeparator.Dash);

            // Cliente
            ticket.CenterText("[Datos del cliente]");
            ticket.LeftText($"Nombre: {customer.Firstname} {customer.Lastname}");
            if (!string.IsNullOrWhiteSpace(customer.Email))
            {
                ticket.LeftText($"Email: {customer.Email}");
            }

            ticket.Separator(TicketSeparator.Asterisk);

            // Venta
            ticket.CenterText("[Datos de venta]");
            ticket.SideText("Método de pago:", order.PaymentMethod.ToString());
            ticket.SideText("Método de envío:", order.ShippingMethod.ToString());
            ticket.Separator(TicketSeparator.Blank);
            ticket.Separator(TicketSeparator.Dash);
            ticket.LeftText("Producto\tP/U\tCant\tTotal");
            ticket.Separator(TicketSeparator.Dash);

            // Productos
            StringBuilder serials    = new StringBuilder();
            bool          hasSerials = false;

            foreach (OrderProductModel op in order.Cart)
            {
                string prod = (op.Name.Length < 8) ? op.Name.PadRight(8) : op.Name.Substring(0, 8);

                ticket.LeftText($"-{prod}\t${op.Price:#.##}\t{op.Quantity}\t${op.Total:#.##}");

                if (op.SerialNumbers.Count() > 0)
                {
                    hasSerials = true;
                    foreach (ProductSerialModel serial in op.SerialNumbers)
                    {
                        serials
                        .Append($"-{prod} {serial.SerialNumber}"
                                .PadRight(TicketLen))
                        .Append($"{serial.DateStart.ToShortDateString()} {serial.DateEnd.ToShortDateString()}"
                                .PadRight(TicketLen));
                    }
                }
            }
            if (hasSerials)
            {
                ticket.Separator(TicketSeparator.Dash);
                // Serials
                ticket.CenterText("# Serie | Garantía");
                ticket.Separator(TicketSeparator.Blank);
                ticket.LeftText(serials.ToString());
            }

            ticket.Separator(TicketSeparator.Dash);

            // Totales
            var orderTotals = order.OrderTotals.OrderBy(o => o.SortOrder);

            foreach (OrderTotalModel ot in orderTotals)
            {
                ticket.RightText($"{ot.Title}: {((ot.Value != 0) ? $"{ot.Value:#.##}" : "N/A")}");
            }
            ticket.RightText($"IVA: 16%");
            ticket.Separator(TicketSeparator.Dash);
        }