Пример #1
0
        public void frmPuntoVenta_Load(object sender, EventArgs e)
        {
            textBoxRutRecep.Select();
            regWin       = regWin.getRegWin();
            empresaModel = empresaModel.getEmpresa();
            if (empresaModel.Rut == "99505200-8")
            {
                labelCita.Text = "ORDEN DE TRABAJO:";
            }
            if (empresaModel.Rut == "99505200-8")
            {
                labelSello.Text = "GUIA:";
            }

            // Cargo Datos Emisor
            empresaModel.getEmpresa();
            documento.RUTEmisor      = empresaModel.Rut;
            documento.RznSoc         = empresaModel.RazonSocial;
            documento.GiroEmis       = empresaModel.GiroEmisor;
            documento.CdgSIISucur    = empresaModel.CodigoSiiSucursal;
            documento.Telefono       = empresaModel.Telefono;
            documento.CorreoEmisor   = empresaModel.Correo;
            documento.Acteco         = empresaModel.Acteco;
            documento.DirOrigen      = empresaModel.DireccionOrigen;
            documento.CmnaOrigen     = empresaModel.ComunaOrigen;
            documento.CiudadOrigen   = empresaModel.CiudadOrigen;
            documento.DirRegionalSII = empresaModel.DirRegionalSII;
            documento.SucurEmisor    = empresaModel.sucurEmisor;
            if (regWin.itemManual == "False")
            {
                buttonBuscar.Visible = false;
            }
        }
Пример #2
0
        public void creaXml()
        {
            empresa = empresa.getEmpresa();
            X509Certificate2 cert        = FuncionesComunes.obtenerCertificado(empresa.NomCertificado);
            string           xml         = string.Empty;
            String           fch_firmado = String.Format("{0:yyyyMMdd_HHmmss}", thisDay);

            xml = "<RespuestaDTE xmlns=\"http://www.sii.cl/SiiDte\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"1.0\" xsi:schemaLocation=\"http://www.sii.cl/SiiDte RespuestaEnvioDTE_v10.xsd\">\n"
                  + "<Resultado ID=\"RecepcionEnvio\">\n"
                  + "<Caratula version=\"1.0\">"
                  + "<RutResponde>" + empresa.RutEmisor + "</RutResponde>"
                  + "<RutRecibe>88888888-8</RutRecibe>"
                  + "<IdRespuesta>1</IdRespuesta>"
                  + "<NroDetalles>2</NroDetalles>"
                  + "<TmstFirmaResp>2016-03-23T16:40:00</TmstFirmaResp>"
                  + "</Caratula>"
                  + "<RecepcionEnvio>"
                  + "<NmbEnvio>ENVIO_DTE_684852.xml</NmbEnvio>"//
                  + "<FchRecep>2014-12-04T16:39:00</FchRecep>"
                  + "<CodEnvio>1</CodEnvio>"
                  + "<EnvioDTEID>SetDoc</EnvioDTEID>"
                  + "<EstadoRecepEnv>0</EstadoRecepEnv>"
                  + "<RecepEnvGlosa>Envio Recibido Conforme</RecepEnvGlosa>"
                  + "<NroDTE>2</NroDTE>"
                  //Foreach
                  + "<RecepcionDTE>"
                  + "<TipoDTE>33</TipoDTE>"
                  + "<Folio>52099</Folio>" //TODO
                  + "<FchEmis>2016-08-26</FchEmis>"
                  + "<RUTEmisor>88888888-8</RUTEmisor>"
                  + "<RUTRecep>" + empresa.RutEmisor + "</RUTRecep>"
                  + "<MntTotal>2533</MntTotal>"
                  + "<EstadoRecepDTE>0</EstadoRecepDTE>"
                  + "<RecepDTEGlosa>DTE Aceptado OK</RecepDTEGlosa>"
                  + "</RecepcionDTE>"
                  //Fin Foreach
                  + "<RecepcionDTE>"
                  + "<TipoDTE>33</TipoDTE>"
                  + "<Folio>52100</Folio>"
                  + "<FchEmis>2013-06-21</FchEmis>"
                  + "<RUTEmisor>88888888-8</RUTEmisor>"
                  + "<RUTRecep>69507000-4</RUTRecep>"
                  + "<MntTotal>3723</MntTotal>"
                  + "<EstadoRecepDTE>3</EstadoRecepDTE>"
                  + "<RecepDTEGlosa>DTE No Recibido - Error RUT Receptor</RecepDTEGlosa>"
                  + "</RecepcionDTE>"
                  + "</RecepcionEnvio>"
                  + "</Resultado>"
                  + "</RespuestaDTE>";

            // firmo documento
            String xmlFirmado = firmador.firmarDocumento(xml, cert);
            //  xmlFirmado = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" + xmlFirmado;
            String fileNameEnvio = @"C:\AdmToSii\file\xml\proveedores\respuestaDte\NombredeArchivo" + fch_firmado + "Firmado.xml";

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileNameEnvio, false, Encoding.GetEncoding("ISO-8859-1")))
            {
                file.WriteLine(xmlFirmado);
            }
        }
Пример #3
0
 private void FrmInicio_Load(object sender, EventArgs e)
 {
     funcComunes.creadirectorios();
     empresaModel         = empresaModel.getEmpresa();
     labelNmbEmpresa.Text = empresaModel.RznSoc;
     proc.StartProcessIat();
     actualizaDG();
 }
Пример #4
0
 private void cargaTextBoxs()
 {
     empresaModel                = empresaModel.getEmpresa();
     textBoxRutEmpresa.Text      = empresaModel.Rut;
     textBoxRazonSocial.Text     = empresaModel.RazonSocial;
     textBoxGiroEmisor.Text      = empresaModel.GiroEmisor;
     textBoxCodigoSucursal.Text  = empresaModel.CodigoSiiSucursal.ToString();
     textBoxTelefonoEmisor.Text  = empresaModel.Telefono;
     textBoxCorreoEmisor.Text    = empresaModel.Correo;
     textBoxActeco.Text          = empresaModel.Acteco.ToString();
     textBoxDireccionOrigen.Text = empresaModel.DireccionOrigen;
     textBoxComunaOrigen.Text    = empresaModel.ComunaOrigen;
     textBoxCiudadOrigen.Text    = empresaModel.CiudadOrigen;
 }
Пример #5
0
        public void creaXml()
        {
            empresa = empresa.getEmpresa();
            X509Certificate2 cert        = FuncionesComunes.obtenerCertificado(empresa.NomCertificado);
            string           xml         = string.Empty;
            String           fch_firmado = String.Format("{0:yyyyMMdd_HHmmss}", thisDay);

            xml =
                "<Recibo version=\"1.0\">\r\n"
                + "<DocumentoRecibo ID=\"T33\">\r\n"
                + "<TipoDoc>33</TipoDoc>\r\n"
                + "<Folio>52099</Folio>\r\n"
                + "<FchEmis>2016-08-26</FchEmis>\r\n"
                + "<RUTEmisor>88888888-8</RUTEmisor>\r\n"
                + "<RUTRecep>" + empresa.RutEmisor + "</RUTRecep>\r\n"
                + "<MntTotal>2533</MntTotal>\r\n" //TODO
                + "<Recinto>Bodega Central</Recinto>\r\n"
                + "<RutFirma>12891016-6</RutFirma>\r\n"
                + "<Declaracion>El acuse de recibo que se declara en este acto, de acuerdo a lo dispuesto en la letra b) del Art. 4, y la letra c) del Art. 5 de la Ley 19.983, acredita que la entrega de mercaderias o servicio(s) prestado(s) ha(n) sido recibido(s).</Declaracion>\r\n"
                + "<TmstFirmaRecibo>2015-03-31T11:00:00</TmstFirmaRecibo>\r\n"
                + "</DocumentoRecibo >\r\n"
                + "</Recibo>\r\n";

            String xmlMercaderia = firmador.firmarDocumento(xml, cert);


            string xmlMercaderiaFirmado = string.Empty;

            xmlMercaderiaFirmado = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" +
                                   "<EnvioRecibos xmlns=\"http://www.sii.cl/SiiDte\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" version=\"1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sii.cl/SiiDte file:///C:/schema_InterMerca/EnvioRecibos_v10.xsd\">\r\n" +
                                   "<SetRecibos ID=\"Recibo\">\r\n" +
                                   "<Caratula version=\"1.0\">\r\n" +
                                   "<RutResponde>" + empresa.RutEmisor + "</RutResponde>\r\n" +
                                   "<RutRecibe>88888888-8</RutRecibe>\r\n" +
                                   "<TmstFirmaEnv>2016-03-25T10:50:00</TmstFirmaEnv>\r\n" +
                                   "</Caratula>\r\n" +
                                   xmlMercaderia +
                                   "</SetRecibos></EnvioRecibos>\r\n";

            String xmlFirmado = firmador.firmarDocumento(xmlMercaderiaFirmado, cert);

            xmlFirmado = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" + xmlFirmado;
            String fileNameEnvio = @"C:\AdmToSii\file\xml\proveedores\respuestaDte\NombredeArchivo" + fch_firmado + "Firmado.xml";

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileNameEnvio, false, Encoding.GetEncoding("ISO-8859-1")))
            {
                file.WriteLine(xmlFirmado);
            }
        }
Пример #6
0
        private void button1_Click(object sender, EventArgs e)
        {
            string fchActual         = DateTime.Now.ToString("yyyyMMddhhmmss");
            string periodoTributario = dateTimePicker1.Value.ToString("yyyy-MM");

            empresaM = empresaM.getEmpresa();
            try
            {
                StreamWriter escribe = new StreamWriter(@"C:\AdmToSii\file\libroVenta\LibroVentas_" + empresaM.RutEmisor + "_" + fchActual + ".json");
                escribe.WriteLine("{");
                escribe.WriteLine(" \"RutEmisorLibro\": \"" + empresaM.RutEmisor + "\",");
                escribe.WriteLine(" \"RutEnvia\": \"" + empresaM.RutCertificado + "\",");
                escribe.WriteLine(" \"PeriodoTributario\": \"" + periodoTributario + "\",");
                escribe.WriteLine("	\"FchResol\": \"" + empresaM.FchResol + "\",");
                escribe.WriteLine("	\"NroResol\": " + empresaM.NumResol + ",");
                escribe.WriteLine("	\"TipoOperacion\": \"VENTA\",");
                escribe.WriteLine("	\"TipoLibro\": \"MENSUAL\",");
                escribe.WriteLine("	\"TipoEnvio\": \"TOTAL\",");
                //escribe.WriteLine("	\"FolioNotificacion\": 2,");
                escribe.WriteLine("	\"TotalesPeriodo\": [");
                // for para cargar TotalesPeriodo;
                int lineaFinalTotPeriodo = 0;
                foreach (DataRow fila in dataTable.Rows)
                {
                    escribe.WriteLine("      {");
                    escribe.WriteLine("		\"TpoDoc\": "+ fila["TipoDTE"].ToString() + ",");
                    escribe.WriteLine("		\"TotDoc\": "+ fila["CantDoc"].ToString() + ",");
                    escribe.WriteLine("		\"TotMntExe\": "+ fila["MntExe"].ToString() + ",");
                    escribe.WriteLine("		\"TotMntNeto\": "+ fila["MntNeto"].ToString() + ",");
                    escribe.WriteLine("		\"TotMntIVA\": "+ fila["IVA"].ToString() + ",");
                    escribe.WriteLine("		\"TotMntTotal\": "+ fila["MntTotal"].ToString() + "");
                    //si es la ultima sin coma

                    if (lineaFinalTotPeriodo != dataTable.Rows.Count - 1)
                    {
                        escribe.WriteLine("      },");
                        lineaFinalTotPeriodo = lineaFinalTotPeriodo + 1;
                    }
                    else
                    {
                        escribe.WriteLine("      }");
                    }
                }
                escribe.WriteLine("		],");
                //fin TotalesPeriodo
                escribe.WriteLine("	\"Detalle\": [");
                //for para cargar Detalle
                dataTable = libroCompraM.listaDocManualXFecha(new DateTime());
                int lineaFinalDetalle = 0;
                foreach (DataRow fila in dataTable.Rows)
                {
                    string fchEmis = Convert.ToDateTime(fila["FchEmis"]).ToString("yyyy-MM-dd");
                    escribe.WriteLine("      {");
                    escribe.WriteLine("		\"TpoDoc\": "+ fila["TipoDTE"] + ",");
                    escribe.WriteLine("		\"NroDoc\": "+ fila["Folio"] + ",");
                    escribe.WriteLine("		\"TpoImp\": 1,");
                    escribe.WriteLine("		\"TasaImp\": 19,");
                    escribe.WriteLine("		\"FchDoc\": \""+ fchEmis + "\",");
                    escribe.WriteLine("		\"RUTDoc\": \""+ fila["RUTEmisor"] + "\",");
                    escribe.WriteLine("		\"RznSoc\": \""+ fila["RznSoc"] + "\",");
                    escribe.WriteLine("		\"MntExe\": "+ fila["MntExe"] + ",");
                    escribe.WriteLine("		\"MntNeto\": "+ fila["MntNeto"] + ",");
                    escribe.WriteLine("		\"MntIVA\": "+ fila["IVA"] + ",");
                    escribe.WriteLine("		\"MntTotal\": "+ fila["MntTotal"] + "");
                    if (lineaFinalDetalle != dataTable.Rows.Count - 1)
                    {
                        escribe.WriteLine("      },");
                        lineaFinalDetalle = lineaFinalDetalle + 1;
                    }
                    else
                    {
                        escribe.WriteLine("      }");
                    }
                }
                escribe.WriteLine("		]");
                escribe.WriteLine("}");
                escribe.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al escribir" + ex);
            }
        }
Пример #7
0
        private DocumentoModel cargaDocumento(int tipo, int codCAf)
        {
            try
            {
                EmpresaModel empresa = new EmpresaModel();
                empresa.getEmpresa();

                documento.TipoDTE = tipo; // cod pedido TODO
                if (tipo == 802)
                {
                    documento.Folio = folio.getUltimoFolioPedido();
                }
                else
                {
                    documento.Folio = folio.getUltimoFolio(codCAf);
                }
                // Cargo Datos Emisor
                documento.RUTEmisor    = empresa.Rut;
                documento.RznSoc       = empresa.RazonSocial;
                documento.GiroEmis     = empresa.GiroEmisor;
                documento.CdgSIISucur  = empresa.CodigoSiiSucursal;
                documento.Telefono     = empresa.Telefono;
                documento.CorreoEmisor = empresa.Correo;
                documento.Acteco       = empresa.Acteco;
                documento.DirOrigen    = empresa.DireccionOrigen;
                documento.CmnaOrigen   = empresa.ComunaOrigen;
                documento.CiudadOrigen = empresa.CiudadOrigen;
                // Datos Receptor
                documento.RUTRecep    = this.textBoxRutRecep.Text;
                documento.RznSocRecep = this.labelRznSocRecep.Text;
                documento.GiroRecep   = this.labelGiroRecep.Text;
                documento.DirRecep    = this.labelDireccionRecep.Text;
                documento.CmnaRecep   = this.labelComunaRecep.Text;
                documento.CiudadRecep = this.labelCiudadRecep.Text;
                documento.TelRecep    = this.labelTelefonoRecep.Text;
                documento.FchEmis     = DateTime.Today.ToString("yyyy-MM-dd");
                List <Detalle> detalles = new List <Detalle>();
                //cargo detalle doc
                for (int i = 0; i < dtgwDetalle.RowCount; i++)
                {
                    Detalle detalle = new Detalle();
                    detalle.NroLinDet      = Convert.ToInt32(this.dtgwDetalle.Rows[i].Cells[1].Value);
                    detalle.TpoCodigo      = "PLU";
                    detalle.VlrCodigo      = this.dtgwDetalle.Rows[i].Cells[2].Value.ToString();
                    detalle.NmbItem        = this.dtgwDetalle.Rows[i].Cells[3].Value.ToString();
                    detalle.PrcItem        = Convert.ToDecimal(this.dtgwDetalle.Rows[i].Cells[4].Value.ToString());
                    detalle.PrcBruItem     = Convert.ToDecimal(this.dtgwDetalle.Rows[i].Cells[5].Value.ToString().Replace(".", ""));
                    detalle.QtyItem        = Convert.ToInt32(this.dtgwDetalle.Rows[i].Cells[6].Value);
                    detalle.DescuentoPct   = Convert.ToInt32(this.dtgwDetalle.Rows[i].Cells[7].Value);
                    detalle.DescuentoMonto = Convert.ToInt32(this.dtgwDetalle.Rows[i].Cells[8].Value.ToString().Replace(".", ""));
                    detalle.MontoItem      = Convert.ToInt32(this.dtgwDetalle.Rows[i].Cells[9].Value.ToString().Replace(".", ""));
                    detalle.MontoBruItem   = Convert.ToInt32(this.dtgwDetalle.Rows[i].Cells[10].Value.ToString().Replace(".", ""));
                    if (this.dtgwDetalle.Rows[n].Cells[11].Value.ToString() == "True")
                    {
                        detalle.IndExe    = "1";
                        detalle.MontoItem = Convert.ToInt32(this.dtgwDetalle.Rows[i].Cells[10].Value.ToString().Replace(".", ""));
                        detalle.PrcItem   = Convert.ToDecimal(this.dtgwDetalle.Rows[i].Cells[5].Value.ToString().Replace(".", ""));
                    }
                    detalles.Add(detalle);
                }
                //Cargo los descuentos globales
                if (textBoxDctoGlobal.Text != "0")//|| textBoxDctoGlobal.Text != "")
                {
                    descuentoGlobal.NroLinDR = 1;
                    descuentoGlobal.TpoMov   = "D";
                    descuentoGlobal.GlosaDR  = "";
                    descuentoGlobal.TpoValor = "%";
                    descuentoGlobal.ValorDR  = Convert.ToDecimal(textBoxDctoGlobal.Text);
                    descuentoGlobal.IndExeDR = 0;
                }
                else
                {
                    descuentoGlobal.NroLinDR = 0;
                    descuentoGlobal.TpoMov   = "";
                    descuentoGlobal.GlosaDR  = "";
                    descuentoGlobal.TpoValor = "";
                    descuentoGlobal.ValorDR  = 0;
                    descuentoGlobal.IndExeDR = 0;
                }
                descuentosGlobales.Add(descuentoGlobal);
                documento.detalle      = detalles;
                documento.TasaIVA      = 19;
                documento.MntExe       = Convert.ToInt32(labelMtoExento.Text.ToString().Replace(".", ""));
                documento.dscRcgGlobal = descuentosGlobales;
                documento.MntNeto      = Convert.ToInt32(labelSubTotal.Text.ToString().Replace(".", ""));
                documento.IVA          = Convert.ToInt32(labelIva.Text.ToString().Replace(".", ""));
                documento.MntTotal     = Convert.ToInt32(labelMtoTotal.Text.ToString().Replace(".", ""));
                return(documento);
            }
            catch (Exception e)
            {
                return(documento);
            }
        }
Пример #8
0
        public void DoProcessIat()
        {
            PrinterModel        print       = new PrinterModel();
            List <PrinterModel> printerList = print.printerList();

            if (printerList.Count == 0)
            {
                //MessageBox.Show(@"No hay impresoras configuradas, se usará DefaultPrinter");
            }

            int i = 0;
            int j = 0;


            while (!_shouldStop)
            {
                Console.WriteLine("ProcessIat thread: working...");

                Thread.Sleep(5000);

                i++;

                String paquete        = String.Empty;
                String dirCurrentFile = String.Empty;
                String Impresora      = String.Empty;

                // instancia fileadmin, para tener las herramientas para mover archivos
                fileAdmin fileAdm = new fileAdmin();

                // inatancia txt_reader
                TxtReaderModel lec = new TxtReaderModel();

                DocumentoModel   docLectura = new DocumentoModel();
                FuncionesComunes fc         = new FuncionesComunes();

                if (printerList.Count == 0)
                {
                    dirCurrentFile = @"C:\AdmToSii\file";
                    Impresora      = fc.GetDefaultPrinter();
                }
                else
                {
                    PrinterModel printDir = printerList.ElementAt(j);
                    dirCurrentFile = printDir.directory;
                    Impresora      = printDir.printerName;
                }
                Console.WriteLine("Buscando Json en " + dirCurrentFile);
                j++;


                // Ejecuta metodo de txt_reader que llena y obtienen Clase Documento
                docLectura = lec.lectura("", false, dirCurrentFile);

                xmlPaquete xml = new xmlPaquete();

                List <int> tipos = new List <int>();

                DateTime thisDay = DateTime.Now;
                String   fch     = String.Format("{0:yyyy-MM-ddTHH:mm:ss}", thisDay);
                String   fchName = String.Format("{0:yyyyMMddTHHmmss}", thisDay);

                LogModel log = new LogModel();

                String firsRut = String.Empty;
                empresa = empresa.getEmpresa();


                if (docLectura != null)
                {
                    docLectura.estado = "PREVIO";
                    new DocumentoModel().save(docLectura);
                    // Proceso de ReImpresión
                    // ir a directorio procesados y buscar el archivo docLectura.filename
                    if (System.IO.File.Exists(@"C:\AdmToSii\fileprocess\" + docLectura.fileName)) // si ya existe, reimprimir
                    {
                        if (empresa.PrnThermal == "True")
                        {
                            String    fileNameXML = @"DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_";
                            fileAdmin f           = new fileAdmin();

                            String fileXml = f.fileAprox(fileNameXML, @"C:/AdmToSii/file/xml/", "*.xml");

                            if (fileXml != null)
                            {
                                new ReimpThermal().reimp(docLectura, fileXml, Impresora);
                            }
                        }
                        else
                        {
                            String fileNamePDFRePrint = @"C:/AdmToSii/file/pdf/PRINT_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + ".pdf";

                            if (System.IO.File.Exists(fileNamePDFRePrint))
                            {
                                fc.printPdf(fileNamePDFRePrint, Impresora);
                            }
                        }
                        fileAdm.mvFile(docLectura.fileName, dirCurrentFile, @"C:\AdmToSii\fileprocess\");
                    }
                    else // si no procesar
                    {
                        fileAdm.mvFile(docLectura.fileName, dirCurrentFile, @"C:\AdmToSii\fileprocess\");

                        log.addLog("Inicio proceso TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");
                        tipos.Add(docLectura.TipoDTE);

                        String TimbreElec = xml.ted_to_xmlSii(docLectura, fch);
                        log.addLog("Crea Timbre TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                        String docXmlSign = xml.doc_to_xmlSii(docLectura, TimbreElec, fch);
                        log.addLog("Crea XML Envio TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                        // Guarda DTE xml
                        String DTE         = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" + docXmlSign;
                        String fileNameXML = @"C:/AdmToSii/file/xml/DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + ".xml";
                        using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileNameXML, false, Encoding.GetEncoding("ISO-8859-1")))
                        {
                            file.WriteLine(docXmlSign);
                        }


                        //-----------------------------------------------------------------THERMAL--------------------------------------------------------------

                        if (empresa.PrnThermal == "True")
                        {
                            try
                            {
                                for (int copies = 0; copies < 3; copies++)
                                {
                                    Thermal thermal = new Thermal();
                                    thermal.doc    = docLectura;
                                    thermal.dd     = TimbreElec;
                                    thermal.copias = copies;
                                    if (docLectura.PrnTwoCopy == "True")
                                    {
                                        copies = 1;
                                    }
                                    docLectura.PrnTwoCopy = "False";
                                    if (copies == 2)
                                    {
                                        if (docLectura.TipoDTE == 33 || docLectura.TipoDTE == 34)
                                        {
                                            thermal.tipoCopia = "CEDIBLE";
                                        }
                                        if (docLectura.TipoDTE == 52)
                                        {
                                            thermal.tipoCopia = "CEDIBLE CON SU FACTURA";
                                        }

                                        if (docLectura.TipoDTE == 61)
                                        {
                                            break;
                                        }
                                    }
                                    //
                                    PrintDocument pd = new PrintDocument();
                                    pd.DefaultPageSettings.PaperSize = new PaperSize("", 284, 1800);
                                    pd.PrintPage += new PrintPageEventHandler(thermal.OpenThermal);
                                    pd.PrinterSettings.PrinterName = Impresora;
                                    Console.WriteLine(pd.ToString());
                                    pd.Print();
                                }

                                Pdf docpdf = new Pdf();

                                String fileNamePDF = @"C:/AdmToSii/file/pdf/DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + ".pdf";
                                docpdf.OpenPdf(TimbreElec, docLectura, fileNamePDF, " ");
                                log.addLog("Crea PDF Trib TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                                String fileNamePDFCed = @"C:/AdmToSii/file/pdf/DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + "CEDIBLE.pdf";

                                if (docLectura.TipoDTE == 33 || docLectura.TipoDTE == 34)
                                {
                                    docpdf.OpenPdf(TimbreElec, docLectura, fileNamePDFCed, "CEDIBLE");
                                }

                                if (docLectura.TipoDTE == 52)
                                {
                                    docpdf.OpenPdf(TimbreElec, docLectura, fileNamePDFCed, "CEDIBLE CON SU FACTURA");
                                }
                                log.addLog("Crea PDF C TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");
                                log.addLog("IMPRIME TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                                // Agrega el DTE timbrado al paquete

                                paquete = paquete + docXmlSign;

                                //Estrae el rut del emisor de la primera factura del paquete
                                if (i == 0)
                                {
                                    firsRut = docLectura.RUTEmisor;
                                }
                                i++;



                                // Firma Paquete unitario
                                String envioCliente = xml.creaEnvio(paquete, docLectura.RUTEmisor, docLectura.RUTRecep, tipos, docLectura.RutEnvia, docLectura.FchResol, docLectura.RUTRecep, docLectura.NumResol);

                                String envioSII = xml.creaEnvio(paquete, docLectura.RUTEmisor, docLectura.RUTRecep, tipos, docLectura.RutEnvia, docLectura.FchResol, "", docLectura.NumResol);

                                X509Certificate2 cert = FuncionesComunes.obtenerCertificado(docLectura.NombreCertificado);

                                String enviox509SII     = xml.firmarDocumento(envioSII, cert);
                                String enviox509Cliente = xml.firmarDocumento(envioCliente, cert);

                                log.addLog("FIRMA ENVIO TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                                enviox509SII     = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" + enviox509SII;
                                enviox509Cliente = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" + enviox509Cliente;


                                String fileNameEnvioSII = @"C:/AdmToSii/file/xml/enviounitario/EnvioUnit_" + docLectura.RUTEmisor + "_" + docLectura.Folio + "_" + fchName + ".xml";

                                String fileNameEnvioCliente = @"C:/AdmToSii/file/xml/enviounitario/EnvioUnitCliente_" + docLectura.RUTEmisor + "_" + docLectura.Folio + "_" + fchName + ".xml";

                                using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileNameEnvioSII, false, Encoding.GetEncoding("ISO-8859-1")))
                                {
                                    file.WriteLine(enviox509SII);
                                }

                                using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileNameEnvioCliente, false, Encoding.GetEncoding("ISO-8859-1")))
                                {
                                    file.WriteLine(enviox509Cliente);
                                }
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("" + ex);
                            }
                            finally
                            {
                            }
                        }
                        else
                        {
                            Pdf docpdf = new Pdf();

                            String fileNamePDF = @"C:/AdmToSii/file/pdf/DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + ".pdf";
                            docpdf.OpenPdf(TimbreElec, docLectura, fileNamePDF, " ");
                            log.addLog("Crea PDF Trib TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                            String fileNamePDFCed = @"C:/AdmToSii/file/pdf/DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + "CEDIBLE.pdf";

                            if (docLectura.TipoDTE == 33 || docLectura.TipoDTE == 34)
                            {
                                docpdf.OpenPdf(TimbreElec, docLectura, fileNamePDFCed, "CEDIBLE");
                            }

                            if (docLectura.TipoDTE == 52)
                            {
                                docpdf.OpenPdf(TimbreElec, docLectura, fileNamePDFCed, "CEDIBLE CON SU FACTURA");
                            }
                            log.addLog("Crea PDF C TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                            // para otro tipo de impresion
                            // FuncionesComunes f = new FuncionesComunes();
                            // f.PrintDocument(@"CutePDF Writer", @"C:/AdmToSii/file/pdf/DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + ".pdf");

                            //Imprime pdf

                            String fileNamePDFPrint = @"C:/AdmToSii/file/pdf/PRINT_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + ".pdf";
                            docpdf.OpenPdfPrint(TimbreElec, docLectura, fileNamePDFPrint);
                            log.addLog("Crea PDF PRINT TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");



                            fc.printPdf(fileNamePDFPrint, Impresora);

                            log.addLog("IMPRIME TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                            // Agrega el DTE timbrado al paquete

                            paquete = paquete + docXmlSign;

                            //Estrae el rut del emisor de la primera factura del paquete
                            if (i == 0)
                            {
                                firsRut = docLectura.RUTEmisor;
                            }
                            i++;



                            // Firma Paquete unitario
                            String envioCliente = xml.creaEnvio(paquete, docLectura.RUTEmisor, docLectura.RUTRecep, tipos, docLectura.RutEnvia, docLectura.FchResol, docLectura.RUTRecep, docLectura.NumResol);

                            String envioSII = xml.creaEnvio(paquete, docLectura.RUTEmisor, docLectura.RUTRecep, tipos, docLectura.RutEnvia, docLectura.FchResol, "", docLectura.NumResol);

                            X509Certificate2 cert = FuncionesComunes.obtenerCertificado(docLectura.NombreCertificado);

                            String enviox509SII     = xml.firmarDocumento(envioSII, cert);
                            String enviox509Cliente = xml.firmarDocumento(envioCliente, cert);

                            log.addLog("FIRMA ENVIO TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");

                            enviox509SII     = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" + enviox509SII;
                            enviox509Cliente = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n" + enviox509Cliente;


                            String fileNameEnvioSII = @"C:/AdmToSii/file/xml/enviounitario/EnvioUnit_" + docLectura.RUTEmisor + "_" + docLectura.Folio + "_" + fchName + ".xml";

                            String fileNameEnvioCliente = @"C:/AdmToSii/file/xml/enviounitario/EnvioUnitCliente_" + docLectura.RUTEmisor + "_" + docLectura.Folio + "_" + fchName + ".xml";

                            using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileNameEnvioSII, false, Encoding.GetEncoding("ISO-8859-1")))
                            {
                                file.WriteLine(enviox509SII);
                            }

                            using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileNameEnvioCliente, false, Encoding.GetEncoding("ISO-8859-1")))
                            {
                                file.WriteLine(enviox509Cliente);
                            }
                        }



                        // *************  Envía json a server
                        //Connect conn = new Connect();
                        String trib = @"DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + ".pdf";
                        String envU = @"EnvioUnit_" + docLectura.RUTEmisor + "_" + docLectura.Folio + "_" + fchName + ".xml";
                        String envC = @"EnvioUnitCliente_" + docLectura.RUTEmisor + "_" + docLectura.Folio + "_" + fchName + ".xml";
                        String envF = @"DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + ".xml";
                        String ced  = String.Empty;
                        if (docLectura.TipoDTE != 61 && docLectura.TipoDTE != 56)
                        {
                            ced = @"DTE_" + docLectura.RUTEmisor + "_" + docLectura.TipoDTE + "_" + docLectura.Folio + "_" + fchName + "CEDIBLE.pdf";
                        }

                        // Envia al SII

                        string recepcionDteXml = conSii.send(docLectura.RutEnvia, docLectura.RUTEmisor, envU);
                        envioM.tipoDte         = docLectura.TipoDTE;
                        envioM.folio           = docLectura.Folio;
                        envioM.fchEmis         = DateTime.Parse(docLectura.FchEmis);
                        envioM.mntTotal        = docLectura.MntTotal;
                        envioM.CdgSIISucur     = docLectura.CdgSIISucur;
                        envioM.estado          = funcComunes.getStatus(recepcionDteXml);
                        envioM.envioXml        = envU;
                        envioM.recepcionDteXml = recepcionDteXml;
                        envioM.trackId         = funcComunes.getTrackId(recepcionDteXml);
                        envioM.save(envioM);


                        //envia documentos al core
                        //conn.sendInvoice(docLectura, trib, ced, envU, envC, envF, "S");
                        // *************  Envía json a server
                        //log.addLog("Envia CORE TipoDTE :" + docLectura.TipoDTE + " Folio :" + docLectura.Folio, "OK");
                        // ************  Crea regsitro del ultimo dte
                        // UltimoDteSqlModel uDTE = new UltimoDteSqlModel();
                        //uDTE.addUltmoDte(docLectura);
                    }
                }
                if (j == printerList.Count())
                {
                    j = 0;
                }
                fileAdm.buscaXmlProveedor();
            }
            Console.WriteLine("ProcessIat thread: terminating gracefully.");
        }