Ejemplo n.º 1
0
    public string GenerarTicket(bool esVtaTaller)
    {
        iTextSharp.text.Font fuenteT  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 8, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
        iTextSharp.text.Font fuenteB  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 6, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
        iTextSharp.text.Font fuenteBb = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 10, iTextSharp.text.Font.BOLD, BaseColor.RED);
        iTextSharp.text.Font fuente   = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 10, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
        iTextSharp.text.Font fuenteS  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 5, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
        iTextSharp.text.Font fuente6  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 9, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);

        // Crear documento
        Document documento = new Document(iTextSharp.text.PageSize.LETTER);

        documento.AddTitle("Ticket de Compra");
        documento.AddCreator("E-PuntoVenta");

        string ruta    = HttpContext.Current.Server.MapPath("~/Tickets");
        string archivo = ruta + "\\Ticket_" + _pv.ToString() + "_" + _ticket.ToString() + ".pdf";

        //si no existe la carpeta temporal la creamos
        if (!(Directory.Exists(ruta)))
        {
            Directory.CreateDirectory(ruta);
        }


        if (archivo.Trim() != "")
        {
            FileInfo info = new FileInfo(archivo);
            if (info.Exists)
            {
                info.Delete();
            }

            FileStream file = new FileStream(archivo,
                                             FileMode.OpenOrCreate,
                                             FileAccess.ReadWrite,
                                             FileShare.ReadWrite);
            PdfWriter.GetInstance(documento, file);
            // Abrir documento.
            documento.Open();

            //Insertar logo o imagen
            string rutaLogo            = HttpContext.Current.Server.MapPath("~/img/logo.png");
            iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(rutaLogo);
            logo.ScaleToFit(100, 50);
            logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT;

            PdfPTable enc1 = new PdfPTable(3);
            enc1.DefaultCell.Border = 0;
            enc1.WidthPercentage    = 100f;
            int[] enc1cellwidth = { 20, 40, 40 };
            enc1.SetWidths(enc1cellwidth);


            PdfPCell img1 = new PdfPCell(logo);
            img1.Border = 0;
            img1.HorizontalAlignment = Element.ALIGN_CENTER;
            enc1.AddCell(img1);


            PdfPCell enca = new PdfPCell(new Phrase("\n CASA STUDIO EUROPA SA DE CV \n BLEND CENTER DESIGN \n AVENIDA DE LAS PALMAS 520 \n PISO 1 LOCAL 102 \n TEL 55-5281-5381  / 4623", fuente));
            enca.HorizontalAlignment = Element.ALIGN_CENTER;

            enca.Border = 0;
            enc1.AddCell(enca);


            ImprimeTicket imp = new ImprimeTicket();
            imp.ticketc = _ticket;
            object[] camposcab = detTicket.obtieneenca(_ticket);
            DateTime fechav;

            if (Convert.ToBoolean(camposcab[0]))
            {
                DataSet datos = (DataSet)camposcab[1];


                foreach (DataRow fila in datos.Tables[0].Rows)
                {
                    fechav = Convert.ToDateTime(fila[0]);

                    PdfPCell enca2 = new PdfPCell(new Phrase("\n\n Fecha: " + Convert.ToDateTime(fechav).ToString("dd/MM/yyyy") + "\n Ejecutivo: \n Email: ", fuente6));
                    enca2.HorizontalAlignment = Element.ALIGN_LEFT;
                    enca2.Border = 0;
                    enc1.AddCell(enca2);
                }
            }

            documento.Add(enc1);
            documento.Add(new Paragraph(" "));

            PdfPTable enc2 = new PdfPTable(1);
            enc2.DefaultCell.Border = 0;
            enc2.WidthPercentage    = 100f;
            int[] enc2cellwidth = { 50 };
            enc2.SetWidths(enc2cellwidth);

            PdfPCell enca3 = new PdfPCell(new Phrase("Nombre del Cliente:" + _cliente + " \n Telefono :  \n Celular : \n Email:" + _correo + " \n", fuente6));
            enca3.HorizontalAlignment = Element.ALIGN_LEFT;
            enca3.Border = 0;
            enc2.AddCell(enca3);

            documento.Add(enc2);


            string noOrden   = "";
            string nomTaller = "";
            string folio     = "";
            string cliente   = "";
            if (esVtaTaller)
            {
                object[] datosVtaTaller = detTicket.datosVtaTaller();
                DataSet  valVtaTaller   = (DataSet)datosVtaTaller[1];
                foreach (DataRow f in valVtaTaller.Tables[0].Rows)
                {
                    folio     = f[0].ToString();
                    noOrden   = f[1].ToString();
                    nomTaller = f[2].ToString();
                    cliente   = f[3].ToString();
                }
            }

            object[] datosTicket = detTicket.datosTicket();
            if (Convert.ToBoolean(datosTicket[0]))
            {
                DataSet              valores = (DataSet)datosTicket[1];
                DateTime             fecha;
                iTextSharp.text.Font _standardFont = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 13, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
                foreach (DataRow fila in valores.Tables[0].Rows)
                {
                    try
                    {
                        fecha  = Convert.ToDateTime(fila[0].ToString() + " " + fila[1].ToString());
                        _fecha = fecha.ToString("yyyy-MM-dd");
                        _hora  = fecha.ToString("HH:mm:ss");
                    }
                    catch (Exception)
                    {
                        _fecha = fila[0].ToString();
                        _hora  = fila[1].ToString().Substring(0, 10);
                    }

                    _usuario       = fila[3].ToString();
                    _forma         = fila[8].ToString();
                    _refe          = fila[9].ToString();
                    _ban           = fila[11].ToString();
                    _sub           = Convert.ToDecimal(fila[4].ToString());
                    _iva           = Convert.ToDecimal(fila[5].ToString());
                    _tot           = Convert.ToDecimal(fila[6].ToString());
                    _porc_dctoGral = Convert.ToDecimal(fila[13].ToString()) / 100;
                    _montoDecto    = Convert.ToDecimal(fila[14].ToString());
                    _porcIva       = Convert.ToDecimal(fila[7].ToString());
                    _notasTicket   = fila[12].ToString();
                    try { _esVtaCredito = bool.Parse(fila[15].ToString()); } catch (Exception) { _esVtaCredito = false; }
                    Encabezado(documento);

                    if (esVtaTaller)
                    {
                        Paragraph vtaTall = new Paragraph("Folio: " + folio.Trim() + " - Orden: " + noOrden + " - Cliente: " + cliente + " - Taller: " + nomTaller, fuente);
                        vtaTall.Alignment = Element.ALIGN_CENTER;
                        documento.Add(vtaTall);
                    }

                    Paragraph aten = new Paragraph("Atendio: " + _usuario.ToString(), fuente);
                    aten.Alignment = Element.ALIGN_CENTER;
                    documento.Add(aten);

                    if (_esVtaCredito)
                    {
                        Paragraph vtaCred = new Paragraph("-Venta a Crédito-", fuente);
                        vtaCred.Alignment = Element.ALIGN_CENTER;
                        documento.Add(vtaCred);
                    }

                    Paragraph pag = new Paragraph("Forma Pago: " + _forma.ToString(), fuente);
                    pag.Alignment = Element.ALIGN_CENTER;
                    documento.Add(pag);
                    if (_forma != "Efectivo" && _forma != "")
                    {
                        /*Paragraph refe = new Paragraph("Referencia Pago: " + _refe.ToString(), fuente);
                         * refe.Alignment = Element.ALIGN_CENTER;
                         * documento.Add(refe);*/
                        Paragraph banc = new Paragraph("Banco: " + _ban.ToString(), fuente);
                        banc.Alignment = Element.ALIGN_CENTER;
                        documento.Add(banc);
                    }
                }


                documento.AddCreationDate();
                documento.Add(new Paragraph(" "));
                documento.Add(new Paragraph(" "));
                ProductosTicket(documento);

                Paragraph lin = new Paragraph("--------------------------------------------------------", fuente);
                lin.Alignment = Element.ALIGN_CENTER;
                //documento.Add(lin);
                Paragraph subtotal = new Paragraph("ESTOY ENTERADO Y ACEPTO LAS OBSERVACIONES Y CLAUSULAS MENCIONADAS ", fuenteBb);
                subtotal.Alignment = Element.ALIGN_CENTER;

                Paragraph liva = new Paragraph("", fuenteB);
                liva.Alignment = Element.ALIGN_CENTER;

                documento.Add(new Paragraph(" "));
                documento.Add(new Paragraph(" "));
                Paragraph ltotal = new Paragraph("", fuenteT);
                ltotal.Alignment = Element.ALIGN_CENTER;
                Paragraph dctoGral = new Paragraph("__________________________________________________________________________", fuenteT);
                dctoGral.Alignment = Element.ALIGN_CENTER;
                documento.Add(dctoGral);
                documento.Add(subtotal);
                documento.Add(liva);
                documento.Add(ltotal);

                Pagos pagosTicket = new Pagos();
                pagosTicket.ticket = _ticket;
                pagosTicket.caja   = _caja;
                pagosTicket.punto  = _pv;
                pagosTicket.obtienePagos();
                object[] datosTpagos = pagosTicket.retorno;
                if (Convert.ToBoolean(datosTpagos[0]))
                {
                    DataSet infoPago = (DataSet)datosTpagos[1];
                    foreach (DataRow fila in infoPago.Tables[0].Rows)
                    {
                        Paragraph pagf = new Paragraph("", fuente);
                        pagf.Alignment = Element.ALIGN_CENTER;
                        documento.Add(pagf);

                        /*if (fila[0].ToString() != "E")
                         * {
                         *  Paragraph refef = new Paragraph( "T.: "+fila[5]+  " Referencia Pago: " + fila[7].ToString(), fuente);
                         *  refef.Alignment = Element.ALIGN_CENTER;
                         *  documento.Add(refef);
                         * }*/

                        Paragraph lpago = new Paragraph("", fuenteB);
                        lpago.Alignment = Element.ALIGN_CENTER;
                        documento.Add(lpago);
                        Paragraph lcambio = new Paragraph("", fuente);
                        lcambio.Alignment = Element.ALIGN_CENTER;
                        documento.Add(lcambio);
                    }
                }

                documento.Add(new Paragraph(" "));
                //importe con letra
                ConvertirNumerosLetras conversion = new ConvertirNumerosLetras();
                conversion.IMporte = (_tot + _iva).ToString();
                string    textoLetras  = conversion.enletras();
                Paragraph importeLetra = new Paragraph("", fuente);
                importeLetra.Alignment = Element.ALIGN_CENTER;
                documento.Add(importeLetra);

                if (_notasTicket != "")
                {
                    documento.Add(new Paragraph(" "));
                    Paragraph notTi = new Paragraph("", fuente);
                    notTi.Alignment = Element.ALIGN_CENTER;
                    documento.Add(notTi);
                    documento.Add(new Paragraph(" "));
                    Paragraph notTciket = new Paragraph("", fuenteS);
                    notTciket.Alignment = Element.ALIGN_CENTER;
                    documento.Add(notTciket);
                }

                documento.Add(new Paragraph(" "));
                Paragraph not = new Paragraph(_notas, fuenteS);
                not.Alignment = Element.ALIGN_CENTER;
                documento.Add(not);
            }
            documento.Close();
        }
        return(archivo);
    }
Ejemplo n.º 2
0
    public string GenerarTicket(bool esVtaTaller)
    {
        iTextSharp.text.Font fuenteT  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 8, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
        iTextSharp.text.Font fuenteB  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 6, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
        iTextSharp.text.Font fuenteBb = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 10, iTextSharp.text.Font.BOLD, BaseColor.RED);
        iTextSharp.text.Font fuente   = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 10, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
        iTextSharp.text.Font fuenteS  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 5, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
        iTextSharp.text.Font fuente6  = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 9, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);

        // Crear documento
        Document documento = new Document(iTextSharp.text.PageSize.LETTER);

        documento.AddTitle("Ticket de Compra");
        documento.AddCreator("E-PuntoVenta");

        string ruta    = HttpContext.Current.Server.MapPath("~/Tickets");
        string archivo = ruta + "\\Ticket_" + _pv.ToString() + "_" + _ticket.ToString() + ".pdf";

        //si no existe la carpeta temporal la creamos
        if (!(Directory.Exists(ruta)))
        {
            Directory.CreateDirectory(ruta);
        }


        if (archivo.Trim() != "")
        {
            FileInfo info = new FileInfo(archivo);
            if (info.Exists)
            {
                info.Delete();
            }

            FileStream file = new FileStream(archivo,
                                             FileMode.OpenOrCreate,
                                             FileAccess.ReadWrite,
                                             FileShare.ReadWrite);
            PdfWriter.GetInstance(documento, file);
            // Abrir documento.
            documento.Open();

            //Insertar logo o imagen
            string rutaLogo            = HttpContext.Current.Server.MapPath("~/img/logo.png");
            iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(rutaLogo);
            logo.ScaleToFit(100, 50);
            logo.Alignment = iTextSharp.text.Image.ALIGN_LEFT;

            PdfPTable enc1 = new PdfPTable(3);
            enc1.DefaultCell.Border = 0;
            enc1.WidthPercentage    = 100f;
            int[] enc1cellwidth = { 20, 40, 40 };
            enc1.SetWidths(enc1cellwidth);


            PdfPCell img1 = new PdfPCell(logo);
            img1.Border = 0;
            img1.HorizontalAlignment = Element.ALIGN_CENTER;
            enc1.AddCell(img1);


            PdfPCell enca = new PdfPCell(new Phrase("\n COMERCIALIZADORA \n BURGOS MAGALLANES \n S. DE R.L. DE C.V. \n ", fuente));
            enca.HorizontalAlignment = Element.ALIGN_CENTER;

            enca.Border = 0;
            enc1.AddCell(enca);


            ImprimeTicket imp = new ImprimeTicket();
            imp.ticketc = _ticket;
            object[] camposcab = detTicket.obtieneenca(_ticket);
            DateTime fechav;

            if (Convert.ToBoolean(camposcab[0]))
            {
                DataSet datos = (DataSet)camposcab[1];


                foreach (DataRow fila in datos.Tables[0].Rows)
                {
                    fechav = Convert.ToDateTime(fila[0]);

                    PdfPCell enca2 = new PdfPCell(new Phrase("\n\n REMISION No." + _ticket + "    \n Requisicion : " + _requi.ToUpper() + "\n Entrada : " + _entrada.ToUpper(), fuente6));
                    enca2.HorizontalAlignment = Element.ALIGN_LEFT;
                    enca2.Border = 0;
                    enc1.AddCell(enca2);
                }
            }

            documento.Add(enc1);
            documento.Add(new Paragraph(" "));

            PdfPTable enc2 = new PdfPTable(1);
            enc2.DefaultCell.Border = 0;
            enc2.WidthPercentage    = 100f;
            int[] enc2cellwidth = { 50 };
            enc2.SetWidths(enc2cellwidth);

            PdfPCell enca3 = new PdfPCell(new Phrase("Cliente:   GOBIERNO DEL DISTRITO FEDERAL / SUBSECRETARIA DEL SISTEMA PENITENCIARIO \n                PLAZAS DE LA CONSTITUCION S/N CENTRO DE LA CIUDAD DE MEXICO C.P. 06000 AREA 1 \n                DISTRITO FEDERAL GDF-971205-4NA", fuente6));
            enca3.HorizontalAlignment = Element.ALIGN_LEFT;
            enca3.Border = 0;
            enc2.AddCell(enca3);



            documento.Add(enc2);


            string noOrden   = "";
            string nomTaller = "";
            string folio     = "";
            string cliente   = "";
            if (esVtaTaller)
            {
                object[] datosVtaTaller = detTicket.datosVtaTaller();
                DataSet  valVtaTaller   = (DataSet)datosVtaTaller[1];
                foreach (DataRow f in valVtaTaller.Tables[0].Rows)
                {
                    folio     = f[0].ToString();
                    noOrden   = f[1].ToString();
                    nomTaller = f[2].ToString();
                    cliente   = f[3].ToString();
                }
            }

            object[] datosTicket = detTicket.datosTicket();
            if (Convert.ToBoolean(datosTicket[0]))
            {
                DataSet              valores = (DataSet)datosTicket[1];
                DateTime             fecha;
                iTextSharp.text.Font _standardFont = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 13, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
                foreach (DataRow fila in valores.Tables[0].Rows)
                {
                    try
                    {
                        fecha  = Convert.ToDateTime(fila[0].ToString() + " " + fila[1].ToString());
                        _fecha = fecha.ToString("yyyy-MM-dd");
                        _hora  = fecha.ToString("HH:mm:ss");
                    }
                    catch (Exception)
                    {
                        _fecha = fila[0].ToString();
                        _hora  = fila[1].ToString().Substring(0, 10);
                    }

                    _usuario       = fila[3].ToString();
                    _forma         = fila[8].ToString();
                    _refe          = fila[9].ToString();
                    _ban           = fila[11].ToString();
                    _sub           = Convert.ToDecimal(fila[4].ToString());
                    _iva           = Convert.ToDecimal(fila[5].ToString());
                    _tot           = Convert.ToDecimal(fila[6].ToString());
                    _porc_dctoGral = Convert.ToDecimal(fila[13].ToString()) / 100;
                    _montoDecto    = Convert.ToDecimal(fila[14].ToString());
                    _porcIva       = Convert.ToDecimal(fila[7].ToString());
                    _notasTicket   = fila[12].ToString();
                    try { _esVtaCredito = bool.Parse(fila[15].ToString()); } catch (Exception) { _esVtaCredito = false; }
                    Encabezado(documento);

                    if (esVtaTaller)
                    {
                        Paragraph vtaTall = new Paragraph("Folio: " + folio.Trim() + " - Orden: " + noOrden + " - Cliente: " + cliente + " - Taller: " + nomTaller, fuente);
                        vtaTall.Alignment = Element.ALIGN_CENTER;
                        documento.Add(vtaTall);
                    }

                    Paragraph aten = new Paragraph("Atendio: " + _usuario.ToString(), fuente);
                    aten.Alignment = Element.ALIGN_CENTER;
                    documento.Add(aten);

                    if (_esVtaCredito)
                    {
                        Paragraph vtaCred = new Paragraph("-Venta a Crédito-", fuente);
                        vtaCred.Alignment = Element.ALIGN_CENTER;
                        documento.Add(vtaCred);
                    }

                    Paragraph pag = new Paragraph("Forma Pago: " + _forma.ToString(), fuente);
                    pag.Alignment = Element.ALIGN_CENTER;
                    documento.Add(pag);
                    if (_forma != "Efectivo" && _forma != "")
                    {
                        /*Paragraph refe = new Paragraph("Referencia Pago: " + _refe.ToString(), fuente);
                         * refe.Alignment = Element.ALIGN_CENTER;
                         * documento.Add(refe);*/
                        Paragraph banc = new Paragraph("Banco: " + _ban.ToString(), fuente);
                        banc.Alignment = Element.ALIGN_CENTER;
                        documento.Add(banc);
                    }
                }


                documento.AddCreationDate();
                documento.Add(new Paragraph(" "));
                documento.Add(new Paragraph(" "));
                ProductosTicket(documento);

                Paragraph lin = new Paragraph("", fuente);
                lin.Alignment = Element.ALIGN_CENTER;
                //documento.Add(lin);
                Paragraph subtotal = new Paragraph(" ", fuenteBb);
                subtotal.Alignment = Element.ALIGN_CENTER;

                Paragraph liva = new Paragraph("", fuenteB);
                liva.Alignment = Element.ALIGN_CENTER;

                documento.Add(new Paragraph(" "));
                documento.Add(new Paragraph(" "));
                Paragraph ltotal = new Paragraph("", fuenteT);
                ltotal.Alignment = Element.ALIGN_CENTER;
                Paragraph dctoGral = new Paragraph("HUEHUETAN MZA. 171 LOTE 14 COL. HEROES DE PADIERNA 14200 TLALPAN DISTRITO FEDERAL RFC. CMB140917L5A", fuenteT);
                dctoGral.Alignment = Element.ALIGN_CENTER;
                documento.Add(dctoGral);
                documento.Add(subtotal);
                documento.Add(liva);
                documento.Add(ltotal);

                Pagos pagosTicket = new Pagos();
                pagosTicket.ticket = _ticket;
                pagosTicket.caja   = _caja;
                pagosTicket.punto  = _pv;
                pagosTicket.obtienePagos();
                object[] datosTpagos = pagosTicket.retorno;
                if (Convert.ToBoolean(datosTpagos[0]))
                {
                    DataSet infoPago = (DataSet)datosTpagos[1];
                    foreach (DataRow fila in infoPago.Tables[0].Rows)
                    {
                        Paragraph pagf = new Paragraph("", fuente);
                        pagf.Alignment = Element.ALIGN_CENTER;
                        documento.Add(pagf);

                        /*if (fila[0].ToString() != "E")
                         * {
                         *  Paragraph refef = new Paragraph( "T.: "+fila[5]+  " Referencia Pago: " + fila[7].ToString(), fuente);
                         *  refef.Alignment = Element.ALIGN_CENTER;
                         *  documento.Add(refef);
                         * }*/

                        Paragraph lpago = new Paragraph("", fuenteB);
                        lpago.Alignment = Element.ALIGN_CENTER;
                        documento.Add(lpago);
                        Paragraph lcambio = new Paragraph("", fuente);
                        lcambio.Alignment = Element.ALIGN_CENTER;
                        documento.Add(lcambio);
                    }
                }

                documento.Add(new Paragraph(" "));
                //importe con letra
                ConvertirNumerosLetras conversion = new ConvertirNumerosLetras();
                conversion.IMporte = (_tot + _iva).ToString();
                string    textoLetras  = conversion.enletras();
                Paragraph importeLetra = new Paragraph("", fuente);
                importeLetra.Alignment = Element.ALIGN_CENTER;
                documento.Add(importeLetra);

                if (_notasTicket != "")
                {
                    documento.Add(new Paragraph(" "));
                    Paragraph notTi = new Paragraph("", fuente);
                    notTi.Alignment = Element.ALIGN_CENTER;
                    documento.Add(notTi);
                    documento.Add(new Paragraph(" "));
                    Paragraph notTciket = new Paragraph("", fuenteS);
                    notTciket.Alignment = Element.ALIGN_CENTER;
                    documento.Add(notTciket);
                }

                documento.Add(new Paragraph(" "));
                Paragraph not = new Paragraph(_notas, fuenteS);
                not.Alignment = Element.ALIGN_CENTER;
                documento.Add(not);
            }
            documento.Close();
        }
        return(archivo);
    }