public void procesoContingencia()
        {
            while (!_shouldStop)
            {

             //   Thread.Sleep(60000); // Duerme 10 minutos
                Thread.Sleep(120000);
                Console.WriteLine("ProcessContingencia thread: working...");

                Connect conn = new Connect();
                Log log = new Log();
                String ping = String.Empty;

                String envunit = String.Empty;
                String pdft = String.Empty;
                String pdfc = String.Empty;
                String jsonName = String.Empty;
                String filecliente = String.Empty;
                String filefactura = String.Empty;

                if (ping == "{\"status\":\"Ok\"}")
                {

                    ReenvioSql reenv = new ReenvioSql();
                    // saco el nombres de los archivos  json, enviomasivo.xml pdfT y pdfC

                    List<String> listaReenvio = new List<string>();

                    listaReenvio = reenv.sgteReenvio();
                    // cargo clase Documento
                    Documento doc = new Documento();
                    TxtReader json = new TxtReader();

                    int i = 0;
                    foreach (var reenvio in listaReenvio)
                    {
                        i++;
                        switch (i)
                        {
                            case 1:
                                {
                                    doc = json.lectura(reenvio, false, @"c:\IatFiles\fileprocess\");
                                    jsonName = reenvio;
                                }
                                break;
                            case 2: envunit = reenvio;
                                break;
                            case 3: pdft = reenvio;
                                break;
                            case 4: pdfc = reenvio;
                                break;
                            case 5: filecliente = reenvio;
                                break;
                            case 6: filefactura = reenvio;
                                break;

                        }
                    }
                    // llamo clase connect para reenviar
                    if (listaReenvio.Count() > 0)
                    {

                       // conn.sendInvoice(doc, pdft, pdfc, envunit,filecliente,filefactura, "S");

                        // Cambio estado del registro de reenvio
                        reenv.cambioEstadoReenvio("PROCESADO", jsonName);
                    }
                }
                else
                {
                    log.addLog("ERROR Proceso Contingencia Ping no responde Json:" + jsonName , "ERROR");
                }
            }
        }
Beispiel #2
0
        private void button13_Click(object sender, EventArgs e)
        {
            Log l = new Log();

            if (ldb.creaDB())
            {
                l.addLog("Creacion de DB", "OK");
                MessageBox.Show("Base de Datos Se ha creado con Exito");
            }
            else
            {
                MessageBox.Show("Base de datos ya Existe");
            }

            l.verLog();
        }
Beispiel #3
0
        public String doc_to_xmlSii(Documento doc, String TED, String fch)
        {
            String dte = "<DTE version=\"1.0\">\n" +
                      "<Documento ID=\"F" + doc.Folio + "T" + doc.TipoDTE + "\">\n";

            String tipodespacho = "<TipoDespacho>" + doc.TipoDespacho + "</TipoDespacho>\n";
            if (doc.TipoDespacho == 0)
                tipodespacho = "";

            String indtraslado = "<IndTraslado>" + doc.IndTraslado + "</IndTraslado>\n";
            if (doc.IndTraslado == 0)
                indtraslado = "";

            String encabezado = "<Encabezado>\n" +
                "<IdDoc> \n" +
                    "<TipoDTE>" + doc.TipoDTE + "</TipoDTE>\n" +
                    "<Folio>" + doc.Folio + "</Folio> \n" +
                    "<FchEmis>" + doc.FchEmis + "</FchEmis>\n" +
                    tipodespacho +
                    indtraslado +
                "</IdDoc>\n";

            String emisor = "<Emisor>\n" +
                    "<RUTEmisor>" + doc.RUTEmisor + "</RUTEmisor>\n" +
                    "<RznSoc>" + doc.RznSoc + "</RznSoc>\n" +
                    "<GiroEmis>" + doc.GiroEmis + "</GiroEmis>\n" +
                    "<Acteco>" + doc.Acteco + "</Acteco>\n" +
                    "<CdgSIISucur>" + doc.CdgSIISucur + "</CdgSIISucur>\n" +
                    "<DirOrigen>" + doc.DirOrigen + "</DirOrigen>\n" +
                    "<CmnaOrigen>" + doc.CmnaOrigen + "</CmnaOrigen>\n" +
                    "<CiudadOrigen>" + doc.CiudadOrigen + "</CiudadOrigen>\n" +
                    "</Emisor>\n";

            String receptor = "<Receptor>\n" +
                    "<RUTRecep>" + doc.RUTRecep + "</RUTRecep>\n" +
                    "<RznSocRecep>" + doc.RznSocRecep + "</RznSocRecep>\n" +
                    "<GiroRecep>" + doc.GiroRecep + "</GiroRecep>\n" +
                    "<DirRecep>" + doc.DirRecep + "</DirRecep>\n" +
                    "<CmnaRecep>" + doc.CmnaRecep + "</CmnaRecep>\n" +
                    "<CiudadRecep>" + doc.CiudadRecep + "</CiudadRecep>\n" +
                "</Receptor>\n";

            String impreten = String.Empty;
            string impretenes = String.Empty;

            foreach (var imp in doc.imptoReten)
            {

                impreten = "<ImptoReten>\n" +
                "<TipoImp>" + imp.TipoImp + "</TipoImp>\n" +
                "<TasaImp>" + imp.TasaImp + "</TasaImp>\n" +
                "<MontoImp>" + imp.MontoImp + "</MontoImp>\n" +
                "</ImptoReten>\n";

                if (imp.TipoImp == "")
                    impreten = "";

                impretenes += impreten;
            }

            String mntneto = "<MntNeto>" + doc.MntNeto + "</MntNeto>\n";
            if (doc.MntNeto == 0)
                mntneto = "";
            String mntexe = "<MntExe>" + doc.MntExe + "</MntExe>\n";
            if (doc.MntExe == 0)
                mntexe = "";
            String tasaiva = "<TasaIVA>" + doc.TasaIVA + "</TasaIVA>\n";
            if (doc.TasaIVA == 0)
                tasaiva = "";
            String iva = "<IVA>" + doc.IVA + "</IVA>\n";
            if (doc.IVA == 0)
                iva = "";

            String totales = "<Totales>\n" +
                     mntneto +
                     mntexe +
                     tasaiva +
                     iva +
                    impretenes +
                     "<MntTotal>" + doc.MntTotal + "</MntTotal>\n" +
                 "</Totales>\n";
            String finencabezado = "</Encabezado>\n";

            //arma encabezado en documento
            String documento = dte + encabezado + emisor + receptor + totales + finencabezado;

            // for para crear detalles y agregarlos al documento
            String detalle;
            String firstNmbItem = String.Empty;
            int i = 0;

            foreach (var det in doc.detalle)
            {
                String indexe = "<IndExe>" + det.IndExe + "</IndExe>\n";
                if (det.IndExe == "0")
                    indexe = "";

                String qtyitem = "<QtyItem>" + det.QtyItem + "</QtyItem>\n";
                if (det.QtyItem == 0)
                    qtyitem = "";

                String unmditem = "<UnmdItem>" + det.UnmdItem + "</UnmdItem>\n";
                if (det.UnmdItem == "")
                    unmditem = "";

                String prcitem = "<PrcItem>" + det.PrcItem + "</PrcItem>\n";
                if (det.PrcItem == 0)
                    prcitem = "";

                //agrego el punto de float

                String conpunto = det.DescuentoPct.ToString("N1");

                String descuentopct = "<DescuentoPct>" + conpunto + "</DescuentoPct>\n";
                if (det.DescuentoPct == 0)
                    descuentopct = "";

                String descuentomonto = "<DescuentoMonto>" + det.DescuentoMonto + "</DescuentoMonto>\n";
                if (det.DescuentoMonto == 0)
                    descuentomonto = "";

                String codimpadic = "<CodImpAdic>" + det.CodImpAdic + "</CodImpAdic>\n";
                if (det.CodImpAdic == "" || det.CodImpAdic == "0")
                    codimpadic = "";

                String nmbItem = det.NmbItem.Replace("&", "&amp;");

                detalle = "<Detalle>\n" +
                "<NroLinDet>" + det.NroLinDet + "</NroLinDet>\n" +
                "<CdgItem>\n" +
                "<TpoCodigo>" + det.TpoCodigo + "</TpoCodigo>\n" +
                "<VlrCodigo>" + det.VlrCodigo + "</VlrCodigo>\n" +
                "</CdgItem>\n" +
                indexe +
                "<NmbItem>" + nmbItem + "</NmbItem>\n" +
                 qtyitem +
                 unmditem +
                 prcitem +
                 descuentopct +
                 descuentomonto +
                 codimpadic +
                "<MontoItem>" + det.MontoItem + "</MontoItem>\n" +
                "</Detalle>\n";

                documento = documento + detalle;
                if (i == 0) firstNmbItem = nmbItem;
                i++;
            }

            // for para crear descuento global y agregarlas al documento

            String descuentoglobal = String.Empty;

            foreach (var desglo in doc.dscRcgGlobal)
            {
                String nrolindr = "<NroLinDR>" + desglo.NroLinDR + "</NroLinDR>\n";
                if (desglo.NroLinDR == 0)
                    nrolindr = "";
                String tpomov = "<TpoMov>" + desglo.TpoMov + "</TpoMov>\n";
                if (desglo.TpoMov == "")
                    tpomov = "";
                String glosadr = "<GlosaDR>" + desglo.GlosaDR + "</GlosaDR>\n";
                if (desglo.GlosaDR == "")
                    glosadr = "";
                String tpovalor = "<TpoValor>" + desglo.TpoValor + "</TpoValor>\n";
                if (desglo.TpoValor == "")
                    tpovalor = "";
                String valordr = "<ValorDR>" + desglo.ValorDR + "</ValorDR>\n";
                if (desglo.ValorDR == 0)
                    valordr = "";

                descuentoglobal = "<DscRcgGlobal>\n" +
                    nrolindr +
                    tpomov +
                    glosadr +
                    tpovalor +
                    valordr +
                    "</DscRcgGlobal>\n";
                if (desglo.NroLinDR == 0)
                    descuentoglobal = "";

                documento = documento + descuentoglobal;
            }

            // for para crear referencias y agregarlas al documento
            String referencia;

            foreach (var refe in doc.Referencia)
            {
                String indglobal = "<IndGlobal>" + refe.IndGlobal + "</IndGlobal>\n";
                if (refe.IndGlobal == 0)
                    indglobal = "";
                String rutotr = "<RUTOtr>" + refe.RUTOtr + "</RUTOtr>\n";
                if (refe.RUTOtr == "")
                    rutotr = "";
                String codref = "<CodRef>" + refe.CodRef + "</CodRef>\n";
                if (refe.CodRef == 0)
                    codref = "";

                referencia = "<Referencia>\n" +
                  "<NroLinRef>" + refe.NroLinRef + "</NroLinRef>\n" +
                  "<TpoDocRef>" + refe.TpoDocRef + "</TpoDocRef>\n" +
                  indglobal +
                  "<FolioRef>" + refe.FolioRef + "</FolioRef>\n" +
                   rutotr +
                    // "<IdAdicOtr>" + refe.IdAdicOtr +  "</IdAdicOtr> \n" +
                  "<FchRef>" + refe.FchRef + "</FchRef>\n" +
                    codref +
                  "<RazonRef>" + refe.RazonRef + "</RazonRef>\n" +
                "</Referencia>\n";
                if (refe.NroLinRef == 0)

                    referencia = "";

                documento = documento + referencia;
            }

            String fechaFirma = "<TmstFirma>" + fch + "</TmstFirma>\r\n";
            String findocumenro = "</Documento>\r\n";

            String findte = "</DTE>\r\n";

            documento = documento + TED + fechaFirma + findocumenro + findte;

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

            String signDte = firmarDocumento(documento, cert);

            Log log = new Log();
            log.addLog("XML generado y firmado TipoDTE :" + doc.TipoDTE + " Folio :" + doc.Folio, "OK");
            return signDte;
        }