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"); }
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"); }
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"); } }
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); } }
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; } }
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); }
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); } }
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); }
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; } }
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); } }
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; }
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); }
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; }