Пример #1
0
        public void procesoCarga()
        {
            // Ir al directorio del envío Unitario
            // obtener siguiente .xml
            fileAdmin file = new fileAdmin();
            String xmlName = file.nextFile(@"c:\IatFiles\file\xml\enviounitario", "*.xml");

            // deducir nombre de los PDF y del json
            String pdf = xmlName.Substring(20, xmlName.Length - 20); //no incluir la extención se debe incluir el path
            String pdft = pdf + ".pdf";
            String pdfc = pdf + "CEDIBLE.pdf";

            String json = xmlName.Substring(20, xmlName.Length - 20);

            // llamar txrReader con nombre del archivo para obtener objeto tipo Documento
            TxtReader lec = new TxtReader();
            Documento docLectura = new Documento();

            docLectura = lec.lectura(json, false,"");

            // llamar a sendInvoice conEnvio = N

            Connect conn = new Connect();
             //   conn.sendInvoice(docLectura, pdft, pdfc, xmlName,"","", "N");

            // mover archivo a carpeta de enviados
            file.mvFile(xmlName,@"c:\IatFiles\file\xml\enviounitario",@"c:\IatFiles\file\xml\envioEnviado");
        }
Пример #2
0
        public void procesoCarga()
        {
            // Ir al directorio del envío Unitario
            // obtener siguiente .xml
            fileAdmin file    = new fileAdmin();
            String    xmlName = file.nextFile(@"" + unidadDisco + ":/IatFiles/file/xml/enviounitario", "*.xml");

            // deducir nombre de los PDF y del json
            String pdf  = xmlName.Substring(20, xmlName.Length - 20); //no incluir la extención se debe incluir el path
            String pdft = pdf + ".pdf";
            String pdfc = pdf + "CEDIBLE.pdf";

            String json = xmlName.Substring(20, xmlName.Length - 20);

            // llamar txrReader con nombre del archivo para obtener objeto tipo Documento
            TxtReader lec        = new TxtReader();
            Documento docLectura = new Documento();

            docLectura = lec.lectura(json, false, "");

            // llamar a sendInvoice conEnvio = N

            Connect conn = new Connect();

            conn.sendInvoice(docLectura, pdft, pdfc, xmlName, "", "", "N");

            // mover archivo a carpeta de enviados
            file.mvFile(xmlName, @"" + unidadDisco + ":/IatFiles/file/xml/enviounitario", @"" + unidadDisco + ":/IatFiles/file/xml/envioEnviado");
        }
Пример #3
0
        public void envioMasivo()
        {
            // instancia fileadmin, para tener las herramientas para mover archivos
            fileAdmin fileAdm = new fileAdmin();

            TxtReader lec = new TxtReader();

            Documento docLectura = new Documento();

            fileAdmin file = new fileAdmin();

            Connect con = new Connect();


            String filePdft = file.nextFile(@"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/pdf", "*.pdf");


            String filexml;
            String filexmlap;
            String filePdfc;
            String fileJson;

            while (filePdft != null)
            {
                int largo = filePdft.Length - 4;
                filePdfc  = filePdft.Substring(0, largo) + "CEDIBLE.pdf";
                filexmlap = "EnvioUnit" + filePdft.Substring(3, 12) + filePdft.Substring(18, 5);
                filexml   = file.fileAprox(filexmlap, @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/file/xml/enviounitario", "*.xml");
                fileJson  = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/fileProcess/Fac_" + filePdft.Substring(18, 4) + ".json";

                docLectura = lec.lectura(fileJson, false, "");

                con.sendInvoice(docLectura, filePdft, filePdfc, filexml, "", "", "N");



                file.mvFile(filePdfc, "" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/pdf", "" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/file/pdf");
                file.mvFile(filePdft, "" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/pdf", "" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/file/pdf");

                //Sgte Documento
                filePdft = file.nextFile(@"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/pdf", "*.pdf");
            }
        }
Пример #4
0
        public LibroVenta lectura()
        {
            LibroVenta lib = new LibroVenta();


            fileAdmin file     = new fileAdmin();
            String    fileName = file.nextFile(@"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/file/", "*.json");

            if (fileName != null)
            {
                //Paso la ruta del fichero al constructor
                StreamReader objReader = new StreamReader(fileName, System.Text.Encoding.Default, true);
                objReader.ToString();
                String data = objReader.ReadToEnd();

                DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(LibroVenta));

                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));

                try
                {
                    lib = (LibroVenta)js.ReadObject(ms);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    MessageBox.Show("Error de lectura JSON" + e.Message);
                }


                objReader.Close();
                ms.Close();
                file.mvFile(fileName, "" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/file/", "" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/fileProcess/");
                return(lib);
            }
            else
            {
                return(null);
            }
        }
Пример #5
0
        public LibroCompra lectura()
        {
            LibroCompra lib = new LibroCompra();

            fileAdmin file = new fileAdmin();
            String fileName = file.nextFile(@"c:\IatFiles\file\", "*.json");

            if (fileName != null)
            {
                //Paso la ruta del fichero al constructor
                StreamReader objReader = new StreamReader(fileName, System.Text.Encoding.Default, true);
                objReader.ToString();
                String data = objReader.ReadToEnd();

                DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(LibroCompra));

                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));

                try
                {
                    lib = (LibroCompra)js.ReadObject(ms);
                }
                catch (Exception e)
                {

                    Console.WriteLine(e.Message);
                    MessageBox.Show("Error de lectura JSON" + e.Message);

                }

                objReader.Close();
                ms.Close();
                file.mvFile(fileName, "C:/IatFiles/file/librocompra/", "C:/IatFiles/fileProcess/");
                return lib;
            }
            else
            {
                return null;
            }
        }
Пример #6
0
        public string getXmlFolio(string nodo, int tipo, string rut)
        {
            string nodoValue = string.Empty;

            string caf     = string.Empty;
            string xmlCaf  = string.Empty;
            string rsa     = string.Empty;
            string line    = string.Empty;
            bool   cafline = false;
            bool   rsaline = false;

            try
            {
                fileAdmin file   = new fileAdmin();
                String    cafDir = String.Empty;

                // Elegir Caf según Rut y tipo

                switch (tipo)
                {
                case 33: cafDir = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/cafs/" + rut + @"/factura/";
                    break;

                case 61: cafDir = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/cafs/" + rut + @"/notacredito/";
                    break;

                case 56: cafDir = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/cafs/" + rut + @"/notadebito/";
                    break;

                case 52: cafDir = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/cafs/" + rut + @"/Guia/";
                    break;

                case 34: cafDir = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/cafs/" + rut + @"/facturaexenta/";
                    break;

                case 46: cafDir = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/cafs/" + rut + @"/facturacompra/";
                    break;
                }


                xmlCaf = file.nextFile(cafDir, "*.xml");

                using (StreamReader sr = new StreamReader(xmlCaf))
                {
                    while ((line = sr.ReadLine()) != null)
                    {
                        if (line == "<CAF version=\"1.0\">")
                        {
                            cafline = true;
                        }
                        if (line == "</CAF>")
                        {
                            caf    += line;
                            cafline = false;
                        }

                        if (line == "<RSASK>-----BEGIN RSA PRIVATE KEY-----")
                        {
                            rsaline = true;
                            line    = sr.ReadLine();
                        }
                        if (line == "-----END RSA PRIVATE KEY-----")
                        {
                            rsaline = false;
                        }

                        if (cafline)
                        {
                            caf += line;
                        }
                        if (rsaline)
                        {
                            rsa += line;
                        }
                    }
                    sr.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }

            if (nodo == "CAF")
            {
                nodoValue = caf;
            }
            else
            {
                nodoValue = rsa;
            }

            System.Console.WriteLine(nodoValue);

            return(nodoValue);
        }
Пример #7
0
        public Documento lectura(String fileJson, bool moveFile, String dirOrigen)
        {
            Documento doc      = new Documento();
            fileAdmin file     = new fileAdmin();
            String    fileName = String.Empty;

            if (dirOrigen == "")
            {
                dirOrigen = @"C:\AdmToFebosFiles\files";
            }


            if (fileJson == "")
            {
                fileName = file.nextFile(dirOrigen, "*.json");
            }
            else
            {
                fileName = dirOrigen + fileJson;
            }


            if (fileName != null)
            {
                StreamReader objReader = new StreamReader(fileName, System.Text.Encoding.Default, true);
                objReader.ToString();
                String data = objReader.ReadToEnd();

                DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Documento));

                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));

                try
                {
                    doc = (Documento)js.ReadObject(ms);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    MessageBox.Show("Error de lectura JSON" + e.Message);
                }

                // Datos del Emisor
                // Cargo datos en laclase Documento desde sqlite

                if (doc.RUTEmisor == null)
                {
                    try
                    {
                        SQLiteConnection myConn = new SQLiteConnection(strConn);
                        myConn.Open();

                        string           sql     = "select * from empresa";
                        SQLiteCommand    command = new SQLiteCommand(sql, myConn);
                        SQLiteDataReader reader  = command.ExecuteReader();
                        while (reader.Read())
                        {
                            doc.RUTEmisor         = reader["RutEmisor"].ToString();
                            doc.RznSoc            = reader["RznSoc"].ToString();
                            doc.GiroEmis          = reader["GiroEmis"].ToString();
                            doc.Telefono          = reader["Telefono"].ToString();
                            doc.CorreoEmisor      = reader["CorreoEmisor"].ToString();
                            doc.Acteco            = Convert.ToInt32(reader["Acteco"]);
                            doc.CdgSIISucur       = Convert.ToInt32(reader["CdgSIISucur"]);
                            doc.DirMatriz         = reader["DirMatriz"].ToString();
                            doc.CmnaOrigen        = reader["CmnaOrigen"].ToString();
                            doc.CiudadOrigen      = reader["CiudadOrigen"].ToString();
                            doc.DirOrigen         = reader["DirOrigen"].ToString();
                            doc.NombreCertificado = reader["NomCertificado"].ToString();
                            doc.SucurEmisor       = reader["SucurEmisor"].ToString();
                            doc.FchResol          = reader["FchResol"].ToString();
                            doc.RutEnvia          = reader["RutCertificado"].ToString();
                            doc.NumResol          = reader["NumResol"].ToString();
                            doc.CondEntrega       = reader["CondEntrega"].ToString();
                        }
                        myConn.Close();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR: {0}", e.ToString());
                    }
                }
                else
                {
                    try
                    {
                        SQLiteConnection myConn = new SQLiteConnection(strConn);
                        myConn.Open();

                        string           sql     = "select * from empresa where empresa.RutEmisor = '" + doc.RUTEmisor.ToString() + "'";
                        SQLiteCommand    command = new SQLiteCommand(sql, myConn);
                        SQLiteDataReader reader  = command.ExecuteReader();
                        while (reader.Read())
                        {
                            doc.Telefono          = reader["Telefono"].ToString();
                            doc.CorreoEmisor      = reader["CorreoEmisor"].ToString();
                            doc.Acteco            = Convert.ToInt32(reader["Acteco"]);
                            doc.DirRegionalSII    = reader["sucurSII"].ToString();
                            doc.DirMatriz         = reader["DirMatriz"].ToString();
                            doc.NombreCertificado = reader["NomCertificado"].ToString();
                            doc.SucurEmisor       = reader["SucurEmisor"].ToString();
                            doc.FchResol          = reader["FchResol"].ToString();
                            doc.RutEnvia          = reader["RutCertificado"].ToString();
                            doc.NumResol          = reader["NumResol"].ToString();
                            doc.CondEntrega       = reader["CondEntrega"].ToString();
                        }

                        myConn.Close();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR: {0}", e.ToString());
                    }
                }

                objReader.Close();
                ms.Close();
                if (moveFile)
                {
                    file.mvFile(fileName, dirOrigen, "C:/AdmToFebosFiles/fileProcess/");
                }

                Caf caf = new Caf();

                if (!caf.isValid(doc))
                {
                    doc = null;
                }

                if (fileJson == "")
                {
                    doc.fileName = fileName;
                }
                else
                {
                    doc.fileName = fileJson;
                }
                return(doc);
            }
            else
            {
                return(null);
            }
        }
Пример #8
0
        public String getXmlFolio(String nodo, int tipo)
        {
            string nodoValue = string.Empty;

            string caf     = string.Empty;
            string rsa     = string.Empty;
            string line    = string.Empty;
            bool   cafline = false;
            bool   rsaline = false;

            /*   Documento docu = new Documento();
             * int tipo = Convert.ToInt32(docu.TipoDTE);
             * string xmlCaf = String.Empty;*/

            try
            {
                fileAdmin file   = new fileAdmin();
                String    cafDir = String.Empty;
                switch (tipo)
                {
                case 33: cafDir = @"C:\IatFiles\cafs\factura\";

                    break;

                case 61: cafDir = @"C:\IatFiles\cafs\notacredito\";
                    break;

                case 56: cafDir = @"C:\IatFiles\cafs\notadebito\";
                    break;

                case 52: cafDir = @"C:\IatFiles\cafs\Guia\";
                    break;

                case 34: cafDir = @"C:\IatFiles\cafs\facturaexenta\";
                    break;
                }

                String xmlCaf = file.nextFile(cafDir, "*.xml");


                using (StreamReader sr = new StreamReader(xmlCaf))
                {
                    while ((line = sr.ReadLine()) != null)
                    {
                        if (line == "<CAF version=\"1.0\">")
                        {
                            cafline = true;
                        }
                        if (line == "</CAF>")
                        {
                            caf    += line;
                            cafline = false;
                        }

                        if (line == "<RSASK>-----BEGIN RSA PRIVATE KEY-----")
                        {
                            rsaline = true;
                            line    = sr.ReadLine();
                        }
                        if (line == "-----END RSA PRIVATE KEY-----")
                        {
                            rsaline = false;
                        }

                        if (cafline)
                        {
                            caf += line;
                        }
                        if (rsaline)
                        {
                            rsa += line;
                        }
                    }
                    sr.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }

            if (nodo == "CAF")
            {
                nodoValue = caf;
            }
            else
            {
                nodoValue = rsa;
            }

            System.Console.WriteLine(nodoValue);

            return(nodoValue);
        }
Пример #9
0
        public Documento lectura(String fileJson, bool moveFile, String dirOrigen)
        {
            Documento doc = new Documento();
            fileAdmin file = new fileAdmin();
            String fileName = String.Empty;

            if (dirOrigen == "")
            {
                dirOrigen = @"C:\AdmToFebosFiles\files";
            }

            if (fileJson == "")
            {
                fileName = file.nextFile(dirOrigen, "*.json");
            }
            else
            {
                fileName = dirOrigen + fileJson;
            }

            if (fileName != null)
            {
                StreamReader objReader = new StreamReader(fileName,System.Text.Encoding.Default,true);
                objReader.ToString();
                String data = objReader.ReadToEnd();

                DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Documento));

                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));

                try
                {
                    doc = (Documento)js.ReadObject(ms);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    MessageBox.Show("Error de lectura JSON"+ e.Message);
                }

                // Datos del Emisor
                // Cargo datos en laclase Documento desde sqlite

                if (doc.RUTEmisor == null)
                {
                    try
                    {

                        SQLiteConnection myConn = new SQLiteConnection(strConn);
                        myConn.Open();

                        string sql = "select * from empresa";
                        SQLiteCommand command = new SQLiteCommand(sql, myConn);
                        SQLiteDataReader reader = command.ExecuteReader();
                        while (reader.Read())
                        {

                            doc.RUTEmisor = reader["RutEmisor"].ToString();
                            doc.RznSoc = reader["RznSoc"].ToString();
                            doc.GiroEmis = reader["GiroEmis"].ToString();
                            doc.Telefono = reader["Telefono"].ToString();
                            doc.CorreoEmisor = reader["CorreoEmisor"].ToString();
                            doc.Acteco = Convert.ToInt32(reader["Acteco"]);
                            doc.CdgSIISucur = Convert.ToInt32(reader["CdgSIISucur"]);
                            doc.DirMatriz = reader["DirMatriz"].ToString();
                            doc.CmnaOrigen = reader["CmnaOrigen"].ToString();
                            doc.CiudadOrigen = reader["CiudadOrigen"].ToString();
                            doc.DirOrigen = reader["DirOrigen"].ToString();
                            doc.NombreCertificado = reader["NomCertificado"].ToString();
                            doc.SucurEmisor = reader["SucurEmisor"].ToString();
                            doc.FchResol = reader["FchResol"].ToString();
                            doc.RutEnvia = reader["RutCertificado"].ToString();
                            doc.NumResol = reader["NumResol"].ToString();
                            doc.CondEntrega = reader["CondEntrega"].ToString();

                        }
                        myConn.Close();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR: {0}", e.ToString());
                    }
                }
                else
                {
                    try
                    {

                        SQLiteConnection myConn = new SQLiteConnection(strConn);
                        myConn.Open();

                        string sql = "select * from empresa where empresa.RutEmisor = '"+ doc.RUTEmisor.ToString() +"'";
                        SQLiteCommand command = new SQLiteCommand(sql, myConn);
                        SQLiteDataReader reader = command.ExecuteReader();
                        while (reader.Read())
                        {

                            doc.Telefono = reader["Telefono"].ToString();
                            doc.CorreoEmisor = reader["CorreoEmisor"].ToString();
                            doc.Acteco = Convert.ToInt32(reader["Acteco"]);
                            doc.DirRegionalSII = reader["sucurSII"].ToString();
                            doc.DirMatriz = reader["DirMatriz"].ToString();
                            doc.NombreCertificado = reader["NomCertificado"].ToString();
                            doc.SucurEmisor = reader["SucurEmisor"].ToString();
                            doc.FchResol = reader["FchResol"].ToString();
                            doc.RutEnvia = reader["RutCertificado"].ToString();
                            doc.NumResol = reader["NumResol"].ToString();
                            doc.CondEntrega = reader["CondEntrega"].ToString();
                        }

                        myConn.Close();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR: {0}", e.ToString());
                    }
               }

                objReader.Close();
                ms.Close();
                if (moveFile)
                {
                    file.mvFile(fileName, dirOrigen, "C:/AdmToFebosFiles/fileProcess/");
                }

                Caf caf = new Caf();

                if(!caf.isValid(doc))
                {
                    doc = null;
                }

                if (fileJson == "")
                {
                    doc.fileName = fileName;
                }
                else
                {
                    doc.fileName = fileJson;
                }
                return doc;
            }
            else
            {
                return null;
            }
        }
Пример #10
0
        public Documento lectura(string fileJson, bool moveFile, string dirOrigen)
        {
            Documento doc      = new Documento();
            fileAdmin file     = new fileAdmin();
            string    fileName = String.Empty;

            if (dirOrigen == "")
            {
                dirOrigen = @"" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/file";
            }


            if (fileJson == "")
            {
                fileName = file.nextFile(dirOrigen, "*.json");
            }
            else
            {
                fileName = dirOrigen + fileJson;
            }


            if (fileName != null)
            {
                StreamReader objReader = new StreamReader(fileName, Encoding.Default, true);
                objReader.ToString();
                //Leo el json hasta el final
                string data = objReader.ReadToEnd();

                DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Documento));

                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data));

                try
                {
                    doc = (Documento)js.ReadObject(ms);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    MessageBox.Show("Error de lectura JSON" + e.Message);
                }

                // Datos del Emisor
                // Cargo datos en laclase Documento desde sqlite

                if (doc.RUTEmisor == null)
                {
                    try
                    {
                        SQLiteConnection myConn = new SQLiteConnection(strConn);
                        myConn.Open();

                        string           sql     = "select * from empresa";
                        SQLiteCommand    command = new SQLiteCommand(sql, myConn);
                        SQLiteDataReader reader  = command.ExecuteReader();
                        while (reader.Read())
                        {
                            if (doc.TipoDTE == 30)
                            {
                                doc.TipoDTE = 33;
                            }
                            doc.RUTEmisor         = reader["RutEmisor"].ToString();
                            doc.RznSoc            = reader["RznSoc"].ToString();
                            doc.GiroEmis          = reader["GiroEmis"].ToString();
                            doc.Telefono          = reader["Telefono"].ToString();
                            doc.CorreoEmisor      = reader["CorreoEmisor"].ToString();
                            doc.Acteco            = Convert.ToInt32(reader["Acteco"]);
                            doc.CdgSIISucur       = Convert.ToInt32(reader["CdgSIISucur"]);
                            doc.DirMatriz         = reader["DirMatriz"].ToString();
                            doc.CmnaOrigen        = reader["CmnaOrigen"].ToString();
                            doc.CiudadOrigen      = reader["CiudadOrigen"].ToString();
                            doc.DirOrigen         = reader["DirOrigen"].ToString();
                            doc.NombreCertificado = reader["NomCertificado"].ToString();
                            doc.SucurEmisor       = reader["SucurEmisor"].ToString();
                            doc.FchResol          = reader["FchResol"].ToString();
                            doc.RutEnvia          = reader["RutCertificado"].ToString();
                            doc.NumResol          = reader["NumResol"].ToString();
                            doc.CondEntrega       = reader["CondEntrega"].ToString();
                            doc.PrnMtoNeto        = reader["PrnMtoNeto"].ToString();
                            doc.PrnTwoCopy        = reader["PrnTwoCopy"].ToString();
                            doc.DirRegionalSII    = reader["sucurSII"].ToString();
                            if (doc.TipoDTE == 30 && doc.NumResol == "0")
                            {
                                doc.TipoDTE = 33;
                            }
                        }
                        myConn.Close();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR: {0}", e.ToString());
                    }
                }
                else
                {
                    try
                    {
                        SQLiteConnection myConn = new SQLiteConnection(strConn);
                        myConn.Open();

                        string           sql     = "select * from empresa where empresa.RutEmisor = '" + doc.RUTEmisor.ToString() + "'";
                        SQLiteCommand    command = new SQLiteCommand(sql, myConn);
                        SQLiteDataReader reader  = command.ExecuteReader();
                        while (reader.Read())
                        {
                            doc.Telefono          = reader["Telefono"].ToString();
                            doc.CorreoEmisor      = reader["CorreoEmisor"].ToString();
                            doc.Acteco            = Convert.ToInt32(reader["Acteco"]);
                            doc.DirRegionalSII    = reader["sucurSII"].ToString();
                            doc.DirMatriz         = reader["DirMatriz"].ToString();
                            doc.NombreCertificado = reader["NomCertificado"].ToString();
                            doc.SucurEmisor       = reader["SucurEmisor"].ToString();
                            doc.FchResol          = reader["FchResol"].ToString();
                            doc.RutEnvia          = reader["RutCertificado"].ToString();
                            doc.NumResol          = reader["NumResol"].ToString();
                            doc.CondEntrega       = reader["CondEntrega"].ToString();
                            doc.PrnMtoNeto        = reader["PrnMtoNeto"].ToString();
                            doc.PrnTwoCopy        = reader["PrnTwoCopy"].ToString();
                            if (doc.TipoDTE == 30 && doc.NumResol == "0")
                            {
                                doc.TipoDTE = 33;
                            }
                        }

                        myConn.Close();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR: {0}", e.ToString());
                    }
                }

                objReader.Close();
                ms.Close();
                if (moveFile)
                {
                    file.mvFile(fileName, dirOrigen, "" + Microsoft.Win32.Registry.GetValue(@"HKEY_CURRENT_USER\Iat", "unidadIat", null).ToString() + ":/IatFiles/fileProcess/");
                }

                Caf caf = new Caf();

                if (!caf.isValid(doc))
                {
                    doc = null;
                }

                if (fileJson == "")
                {
                    doc.fileName = fileName;
                }
                else
                {
                    doc.fileName = fileJson;
                }

                foreach (var dsc in doc.dscRcgGlobal)
                {
                    string valor = dsc.ValorDR.ToString("N2", CultureInfo.CreateSpecificCulture("es-ES"));
                    valor       = valor.Replace(",", ".");
                    dsc.ValorDR = Convert.ToDecimal(valor);
                }
                return(doc);
            }
            else
            {
                return(null);
            }
        }
Пример #11
0
        public bool isValid(Documento doc)
        {
            bool valid = true;

            String xmlCaf = String.Empty;
            String cafDir = String.Empty;

            fileAdmin file = new fileAdmin();

            string rut = doc.RUTEmisor;

            try
            {
                switch (doc.TipoDTE)
                {
                    case 33: cafDir = @"C:\IatFiles\cafs\" + rut + @"\factura\";
                        break;
                    case 61: cafDir = @"C:\IatFiles\cafs\" + rut + @"\notacredito\";
                        break;
                    case 56: cafDir = @"C:\IatFiles\cafs\" + rut + @"\notadebito\";
                        break;
                    case 52: cafDir = @"C:\IatFiles\cafs\" + rut + @"\Guia\";
                        break;
                    case 34: cafDir = @"C:\IatFiles\cafs\" + rut + @"\facturaexenta\";
                        break;
                }

                xmlCaf = file.nextFile(cafDir, "*.xml");

                String xml = String.Empty;

                if (xmlCaf != null)
                {
                    StreamReader objReader = new StreamReader(xmlCaf, System.Text.Encoding.Default, true);
                    objReader.ToString();
                    xml = objReader.ReadToEnd();
                }

                int start = xml.IndexOf("<TD") + 4;
                int end = xml.IndexOf("</TD>");
                int largo = end - start;

                // Valida tipo de documento
                String td = xml.Substring(start, largo);
                if (td != doc.TipoDTE.ToString()) valid = false;

                start = xml.IndexOf("<FA>") + 4;
                end = xml.IndexOf("</FA>");
                largo = end - start;
                // Valida FECHA de documento
                String fch = xml.Substring(start, largo);

                DateTime fchCaf = DateTime.ParseExact(fch, "yyyy-MM-dd",
                                       System.Globalization.CultureInfo.InvariantCulture);

                DateTime fEmis = DateTime.ParseExact(fch, "yyyy-MM-dd",
                       System.Globalization.CultureInfo.InvariantCulture);

                if (fEmis > fchCaf)
                {
                    valid = false;
                }

                start = xml.IndexOf("<D>") + 3;
                end = xml.IndexOf("</D>");
                largo = end - start;
                String d = xml.Substring(start, largo);

                start = xml.IndexOf("<H>") + 3;
                end = xml.IndexOf("</H>");
                largo = end - start;
                String h = xml.Substring(start, largo);

                // Valida Folio del documento dentro del rango CAF
                int ds = Convert.ToInt32(d);
                int hs = Convert.ToInt32(h);

                // TO DO: Descomentar esta linea para el proceso de producción
            //    if (!((folio < hs) && (folio >ds)) ) valid = false;

                // OTRAS VALIDACIONES
                if (doc.CiudadRecep == null || doc.CiudadRecep == String.Empty ) valid = false;
                if (doc.CmnaRecep == null || doc.CmnaRecep == String.Empty) valid = false;

            }
            catch (Exception e)
            {
                Console.WriteLine("The file CAF could not be read:");
                Console.WriteLine(e.Message);
            }

            return valid;
        }
Пример #12
0
        public bool isValid(Documento doc)
        {
            bool valid = true;

            String xmlCaf = String.Empty;
            String cafDir = String.Empty;

            fileAdmin file = new fileAdmin();

            string rut = doc.RUTEmisor;

            try
            {
                switch (doc.TipoDTE)
                {
                case 33: cafDir = @"C:\IatFiles\cafs\" + rut + @"\factura\";
                    break;

                case 61: cafDir = @"C:\IatFiles\cafs\" + rut + @"\notacredito\";
                    break;

                case 56: cafDir = @"C:\IatFiles\cafs\" + rut + @"\notadebito\";
                    break;

                case 52: cafDir = @"C:\IatFiles\cafs\" + rut + @"\Guia\";
                    break;

                case 34: cafDir = @"C:\IatFiles\cafs\" + rut + @"\facturaexenta\";
                    break;
                }

                xmlCaf = file.nextFile(cafDir, "*.xml");

                String xml = String.Empty;

                if (xmlCaf != null)
                {
                    StreamReader objReader = new StreamReader(xmlCaf, System.Text.Encoding.Default, true);
                    objReader.ToString();
                    xml = objReader.ReadToEnd();
                }


                int start = xml.IndexOf("<TD") + 4;
                int end   = xml.IndexOf("</TD>");
                int largo = end - start;

                // Valida tipo de documento
                String td = xml.Substring(start, largo);
                if (td != doc.TipoDTE.ToString())
                {
                    valid = false;
                }


                start = xml.IndexOf("<FA>") + 4;
                end   = xml.IndexOf("</FA>");
                largo = end - start;
                // Valida FECHA de documento
                String fch = xml.Substring(start, largo);

                DateTime fchCaf = DateTime.ParseExact(fch, "yyyy-MM-dd",
                                                      System.Globalization.CultureInfo.InvariantCulture);

                DateTime fEmis = DateTime.ParseExact(fch, "yyyy-MM-dd",
                                                     System.Globalization.CultureInfo.InvariantCulture);

                if (fEmis > fchCaf)
                {
                    valid = false;
                }


                start = xml.IndexOf("<D>") + 3;
                end   = xml.IndexOf("</D>");
                largo = end - start;
                String d = xml.Substring(start, largo);

                start = xml.IndexOf("<H>") + 3;
                end   = xml.IndexOf("</H>");
                largo = end - start;
                String h = xml.Substring(start, largo);


                // Valida Folio del documento dentro del rango CAF
                int ds = Convert.ToInt32(d);
                int hs = Convert.ToInt32(h);

                // TO DO: Descomentar esta linea para el proceso de producción
                //    if (!((folio < hs) && (folio >ds)) ) valid = false;


                // OTRAS VALIDACIONES
                if (doc.CiudadRecep == null || doc.CiudadRecep == String.Empty)
                {
                    valid = false;
                }
                if (doc.CmnaRecep == null || doc.CmnaRecep == String.Empty)
                {
                    valid = false;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("The file CAF could not be read:");
                Console.WriteLine(e.Message);
            }


            return(valid);
        }
Пример #13
0
        public String getXmlFolio(String nodo, int tipo)
        {
            string nodoValue = string.Empty;

            string caf = string.Empty;
            string rsa = string.Empty;
            string line = string.Empty;
            bool cafline = false;
            bool rsaline = false;
            /*   Documento docu = new Documento();
               int tipo = Convert.ToInt32(docu.TipoDTE);
               string xmlCaf = String.Empty;*/

            try
            {
                fileAdmin file = new fileAdmin();
                String cafDir = String.Empty;
                switch (tipo)
                {
                    case 33: cafDir = @"C:\IatFiles\cafs\factura\";

                        break;
                    case 61: cafDir = @"C:\IatFiles\cafs\notacredito\";
                        break;
                    case 56: cafDir = @"C:\IatFiles\cafs\notadebito\";
                        break;
                    case 52: cafDir = @"C:\IatFiles\cafs\Guia\";
                        break;
                    case 34: cafDir = @"C:\IatFiles\cafs\facturaexenta\";
                        break;
                }

               String xmlCaf = file.nextFile(cafDir, "*.xml");

                using (StreamReader sr = new StreamReader(xmlCaf))
                {

                    while ((line = sr.ReadLine()) != null)
                    {
                        if (line == "<CAF version=\"1.0\">") cafline = true;
                        if (line == "</CAF>")
                        {
                            caf += line;
                            cafline = false;
                        }

                        if (line == "<RSASK>-----BEGIN RSA PRIVATE KEY-----")
                        {
                            rsaline = true;
                            line = sr.ReadLine();
                        }
                        if (line == "-----END RSA PRIVATE KEY-----") rsaline = false;

                        if (cafline) caf += line;
                        if (rsaline) rsa += line;
                    }
                    sr.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }

            if (nodo == "CAF") { nodoValue = caf; } else { nodoValue = rsa; }

            System.Console.WriteLine(nodoValue);

            return nodoValue;
        }