public static string desadjuntar(string uuid) { string[] uui = uuid.Split(','); string mensaje = ""; int cantidad = 0; PNegocio.CargarFactura nFac = new PNegocio.CargarFactura(); try { cantidad = nFac.desvincular(listaDiferentesInstanciasg, uui); if (cantidad > 1) { mensaje = "<br> Se desadjuntaron " + cantidad + " XML/s y " + cantidad + " PDF/s. <br>"; } else { mensaje = "<br> Se desadjunto " + cantidad + " XML y " + cantidad + " PDF. <br>"; } } catch (Exception) { mensaje = "Error al quitar archivos adjuntos."; } return(mensaje); }
protected string obtener_correo() { string usuario = HttpContext.Current.User.Identity.Name; PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); string sqlstring = "select email from usuario where usuarioLog = '" + usuario + "'"; return(cf.otener_correo(sqlstring)); }
private void cargar() { PEntidades.Proveedor datProveedor = (PEntidades.Proveedor)Session["proveedor"]; if ((this.file != null) && (this.file.ContentLength > 0)) { this.filName = System.IO.Path.GetFileName(this.file.FileName); string absoluteURL = Server.MapPath("Files") + "\\" + this.filName; string ext = System.IO.Path.GetExtension(absoluteURL).ToLower(); if (ext == ".xml")//Cuando si es XML { try { HttpPostedFile file2 = file; this.xmlDoc = new System.Xml.XmlDocument(); this.xmlDoc.Load(this.file.InputStream); //string d = System.Text.Encoding.UTF8.GetString(this.file.InputStream.ToString()); //byte[] filed = null; //using (var binaryReader = new BinaryReader(file2.InputStream)) //{ // filed = binaryReader.ReadBytes(file.ContentLength); //} //string e = System.Text.Encoding.UTF8.GetString(filed); //string ot = this.xmlDoc.ToString(); //string endpoint = ""; //string[] userPass = null; this.index = buscarIndexByXBLNR(this.xmlDoc); //Para saber de que item en lista vamos a hacer la validación con SAP y SAT List <string[]> listaDiferentesInstancias = (List <string[]>)Session["listaDiferentesInstancias"]; if (this.index != "") //Cuando si se encuentra la factura { string raw = ""; if (validarSAT(this.xmlDoc)) //Cuando es válido en SAT { if (validarSAP()) //Cuando es válido en SAP { //this.file.SaveAs(absoluteURL); PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); raw = this.xmlDoc.InnerXml; //cf.setFacturascargadas(datProveedor.Liftnr, this.listFact[int.Parse(index)].XBLNR, "1", this.filName.ToString(), this.listFact[int.Parse(index)].DescripcionErrorSAP.ToString(), this.listFact[int.Parse(index)].DescripcionErrorSAT.ToString(), this.listFact[int.Parse(index)].InsidenciaPersonal, endpoint,userPass); int indexInstanciaCorrespondiente = Gen.Util.CS.Gen.buscarIndexUbicacionInstanciaCorrres(listaDiferentesInstancias, listFact[int.Parse(index)].IDINSTANCIA); // cf.setFacturascargadasNew(listFact[int.Parse(index)].BUKRS, listFact[int.Parse(index)].EBELN, listFact[int.Parse(index)].LIFNR, listFact[int.Parse(index)].DescripcionErrorSAP, listFact[int.Parse(index)].DescripcionErrorSAT, "1", listFact[int.Parse(index)].TIPO, listFact[int.Parse(index)].WERKS, listFact[int.Parse(index)].XBLNR, filName.ToString(), //listaDiferentesInstancias[indexInstanciaCorrespondiente][1].ToString().Trim(), //listaDiferentesInstancias[indexInstanciaCorrespondiente][4].Split(new Char[] { ',' }), //raw, // listFact[int.Parse(index)].uuid, // listFact[int.Parse(index)].total, // listFact[int.Parse(index)].posicion, // listFact[int.Parse(index)].BELNR, // listFact[int.Parse(index)].BWTAR, // listFact[int.Parse(index)].KSCHL //); //this.file.SaveAs(absoluteURL); this.listFact[int.Parse(index)].UrlXML = this.filName; Session["lstFacturas"] = this.listFact; } else//Cuando no es válido en SAP { PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); //cf.setFacturascargadas(datProveedor.Liftnr, this.listFact[int.Parse(index)].XBLNR, "3", this.filName.ToString(), this.listFact[int.Parse(index)].DescripcionErrorSAP.ToString(), this.listFact[int.Parse(index)].DescripcionErrorSAT.ToString(), this.listFact[int.Parse(index)].InsidenciaPersonal, endpoint, userPass); int indexInstanciaCorrespondiente = Gen.Util.CS.Gen.buscarIndexUbicacionInstanciaCorrres(listaDiferentesInstancias, listFact[int.Parse(index)].IDINSTANCIA); //cf.setFacturascargadasNew(listFact[int.Parse(index)].BUKRS, listFact[int.Parse(index)].EBELN, listFact[int.Parse(index)].LIFNR, listFact[int.Parse(index)].DescripcionErrorSAP, listFact[int.Parse(index)].DescripcionErrorSAT, "3", listFact[int.Parse(index)].TIPO, listFact[int.Parse(index)].WERKS, listFact[int.Parse(index)].XBLNR, filName.ToString(), // listaDiferentesInstancias[indexInstanciaCorrespondiente][1].ToString().Trim(), // listaDiferentesInstancias[indexInstanciaCorrespondiente][4].Split(new Char[] { ',' }), // raw, // listFact[int.Parse(index)].uuid, // listFact[int.Parse(index)].total, // listFact[int.Parse(index)].posicion, // listFact[int.Parse(index)].BELNR, // listFact[int.Parse(index)].BWTAR, // listFact[int.Parse(index)].KSCHL // ); } } else //Cuando no es válido en SAT { PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); //cf.setFacturascargadas(datProveedor.Liftnr, this.listFact[int.Parse(index)].XBLNR, "2", this.filName.ToString(), "", this.listFact[int.Parse(index)].DescripcionErrorSAT, this.listFact[int.Parse(index)].InsidenciaPersonal, endpoint, userPass); int indexInstanciaCorrespondiente = Gen.Util.CS.Gen.buscarIndexUbicacionInstanciaCorrres(listaDiferentesInstancias, listFact[int.Parse(index)].IDINSTANCIA); //cf.setFacturascargadasNew(listFact[int.Parse(index)].BUKRS, listFact[int.Parse(index)].EBELN, listFact[int.Parse(index)].LIFNR, listFact[int.Parse(index)].DescripcionErrorSAP, listFact[int.Parse(index)].DescripcionErrorSAT, "3", listFact[int.Parse(index)].TIPO, listFact[int.Parse(index)].WERKS, listFact[int.Parse(index)].XBLNR, filName.ToString(), // listaDiferentesInstancias[indexInstanciaCorrespondiente][1].ToString().Trim(), // listaDiferentesInstancias[indexInstanciaCorrespondiente][4].Split(new Char[] { ',' }), // raw, // listFact[int.Parse(index)].uuid, // listFact[int.Parse(index)].total, // listFact[int.Parse(index)].posicion, // listFact[int.Parse(index)].BELNR, // listFact[int.Parse(index)].BWTAR, // listFact[int.Parse(index)].KSCHL // ); } // Para llenar la lista con las facturas que si se encontraron. this.lstResumen.Add(this.listFact[int.Parse(index)]); Session["lstResumen"] = this.lstResumen; } else//Cuando no se encuentra la factura en la lista { string[] noEnc = new string[2]; noEnc[0] = this.filName; noEnc[1] = this.xmlDoc.GetElementsByTagName("cfdi:Comprobante")[0].Attributes["folio"].Value; this.lstNoEnc.Add(noEnc); Session["lstNoEnc"] = this.lstNoEnc; //Session["prueba"] += "Archivo:" + this.filName + ", Folio factura:" + this.xmlDoc.GetElementsByTagName("cfdi:Comprobante")[0].Attributes["folio"].Value + " -|-"; //var v = Session["prueba"]; } } catch (Exception ex) { Response.Write("Error: " + ex.Message); } } else//Cuando no es la extención .xml { this.listFact[int.Parse(index)].DescripcionErrorSAP = "N/A"; this.listFact[int.Parse(index)].DescripcionErrorSAT = "No es XML"; } } else//Cuando el Request.Files[0] biene vacio { this.listFact[int.Parse(index)].DescripcionErrorSAP = "N/A"; this.listFact[int.Parse(index)].DescripcionErrorSAT = "No es XML"; } }
private void cargar() { if ((File1.PostedFile != null) && (File1.PostedFile.ContentLength > 0) && (File2.PostedFile != null) && (File2.PostedFile.ContentLength > 0)) { string fn = System.IO.Path.GetFileName(File2.PostedFile.FileName); string SaveLocation = Server.MapPath("Files") + "\\" + fn; string nombrePdf = Path.GetFileName(SaveLocation); string extPDF = Path.GetExtension(SaveLocation).ToLower(); fn = System.IO.Path.GetFileName(File1.PostedFile.FileName); SaveLocation = Server.MapPath("Files") + "\\" + fn; string extXML = Path.GetExtension(SaveLocation).ToLower(); string tipoArchivo = ""; string extencionValidaXML = ""; string extencionValidaPDF = ""; string error = ""; string fecha_xml = ""; string referencia = ""; string impRetencion = ""; string rfc = Session["rfc"].ToString(); if (String.IsNullOrEmpty(rfc) == false) { extencionValidaXML = ".xml"; tipoArchivo = "XML"; } extencionValidaPDF = ".pdf"; extencionValidaPDF = extencionValidaPDF.ToUpper(); extPDF = extPDF.ToUpper(); extencionValidaXML = extencionValidaXML.ToUpper(); extXML = extXML.ToUpper(); if (extXML == extencionValidaXML && extPDF == extencionValidaPDF) ///////////// { byte[] rawByte = new byte[0]; byte[] rawBytePDF = new byte[0]; try { if (tipoArchivo == "XML") { this.xmlDoc = new System.Xml.XmlDocument(); this.xmlDoc.Load(File1.PostedFile.InputStream); rawByte = Encoding.UTF8.GetBytes(this.xmlDoc.InnerXml.ToString()); } //else //{ // int tam = 36; // tamaño del UUID // error = "1 " + File1.PostedFile.FileName; int fileLen; fileLen = File2.PostedFile.ContentLength; rawBytePDF = new Byte[fileLen]; File2.PostedFile.InputStream.Read(rawBytePDF, 0, fileLen); // File1.PostedFile.InputStream.Read(rawByte, 0, rawByte.Length); // Random r = new Random(); // int ramdom = r.Next(10000000, 99999999); // nombrePdf = "_PDF_" + DateTime.Now + DateTime.Now.Millisecond + "_" + ramdom; // if (nombrePdf.Length >= tam) // { // nombrePdf = nombrePdf.Substring(0, tam); // } //} List <PEntidades.FacturasXVerificar> listFact = new List <PEntidades.FacturasXVerificar>(); listFact = (List <PEntidades.FacturasXVerificar>)Session["lstFacturas2"]; List <string[]> listaDiferentesInstancias = (List <string[]>)Session["listaDiferentesInstancias"]; bool continuar = false; if (tipoArchivo == "XML") { continuar = validarSAT(ref impRetencion); } //else if (tipoArchivo == "PDF") //{ // continuar = true; //} if (continuar) { //raw = this.xmlDoc.InnerXml.ToString(); if (tipoArchivo == "XML") { continuar = validarSAP(ref fecha_xml, ref referencia, impRetencion, listFact[int.Parse(indexs[0])].XBLNR2); } //else if (tipoArchivo == "PDF") //{ // continuar = true; //} if (String.IsNullOrEmpty(impRetencion)) { impRetencion = "0"; } if (continuar) { PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); for (int i = 0; i < indexs.Length; i++) { if ((listFact[int.Parse(indexs[i])].DescripcionErrorSAP.Contains("SAP : Cargada correctamente") || tipoArchivo == "PDF") && listFact[int.Parse(indexs[i])].cantidadXML <= maxXML) { int contadorres = 0; /// condicionar tipo conexion int indexInstanciaCorrespondiente = Gen.Util.CS.Gen.buscarIndexUbicacionInstanciaCorrres(listaDiferentesInstancias, listFact[int.Parse(indexs[i])].IDINSTANCIA); //if (tipoArchivo == "PDF") //{ // error = "2"; // listFact[int.Parse(indexs[i])].uuid = nombrePdf; // listFact[int.Parse(indexs[i])].DescripcionErrorSAP = "SAP : Cargada correctamente"; // listFact[int.Parse(indexs[i])].DescripcionErrorSAT = "SAT : N/A"; //} try { error = "3"; contadorres = cf.setFacturascargadasNew(listFact[int.Parse(indexs[i])].BUKRS, obtener_correo(), listFact[int.Parse(indexs[i])].EBELN, listFact[int.Parse(indexs[i])].LIFNR, listFact[int.Parse(indexs[i])].DescripcionErrorSAP, listFact[int.Parse(indexs[i])].DescripcionErrorSAT, "1", listFact[int.Parse(indexs[i])].TIPO, listFact[int.Parse(indexs[i])].WERKS, //listFact[int.Parse(indexs[i])].XBLNR2,referencia anterior referencia, fecha_xml, fn.ToString(), listaDiferentesInstancias[indexInstanciaCorrespondiente][1].ToString().Trim(), listaDiferentesInstancias[indexInstanciaCorrespondiente][4].Split(new Char[] { ',' }), rawByte, listFact[int.Parse(indexs[i])].uuid, listFact[int.Parse(indexs[i])].total, listFact[int.Parse(indexs[i])].posicion, listFact[int.Parse(indexs[i])].BELNR, listFact[int.Parse(indexs[i])].BWTAR, listFact[int.Parse(indexs[i])].KSCHL, tipoArchivo, rawBytePDF, nombrePdf, Convert.ToDecimal(impRetencion) ); error = "4"; listFact[int.Parse(indexs[i])].UrlXML = fn; complementoMsgError = "XML: " + fn.ToString(); complementoMsgError += "</br>"; complementoMsgError += "UUID: " + listFact[int.Parse(indexs[i])].uuid; complementoMsgError += "</br>"; complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAT; complementoMsgError += "</br>"; if (contadorres != 0) { complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAP; listFact[int.Parse(indexs[i])].cantidadXML = contadorres; listFact[int.Parse(indexs[i])].consola = listFact[int.Parse(index)].DescripcionErrorSAP.Replace("SAP : ", ""); } else { listFact[int.Parse(indexs[i])].consola = "SAP: Error al guardar el " + tipoArchivo; complementoMsgError += "SAP: Error al guardar el " + tipoArchivo; } if (i == 0) { listFact[int.Parse(indexs2[i])].consola = listFact[int.Parse(indexs[i])].consola; } complementoMsgError += "</br>"; complementoMsgError += "</br>"; if (listFact[int.Parse(indexs[i])].msgVarios == "") { listFact[int.Parse(indexs[i])].esPrimerCarga = true; } else { listFact[int.Parse(indexs[i])].esPrimerCarga = false; } listFact[int.Parse(indexs[i])].msgVarios += complementoMsgError; } catch (Exception z) { listFact[int.Parse(indexs[i])].consola = "Error al momento de adjuntar el archivo al sistema SAP."; listFact[int.Parse(indexs[i])].DescripcionErrorSAP = "N/A"; listFact[int.Parse(indexs[i])].DescripcionErrorSAT = ""; listFact[int.Parse(indexs[i])].ErrorMostrar = "N/A"; } //if (contadorres != 0) //{ //} //else //{ // complementoMsgError = "XML: " + fn.ToString(); // complementoMsgError += "</br>"; // complementoMsgError += "UUID: " + listFact[int.Parse(indexs[i])].uuid; // complementoMsgError += "</br>"; // complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAT; // complementoMsgError += "</br>"; // complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAP; // complementoMsgError += "</br>"; // listFact[int.Parse(indexs[i])].consola = "Error al guardar el XML"; // listFact[int.Parse(indexs[i])].msgVarios += complementoMsgError + "Error al guardar el XML" + "</br></br>"; //} } else if (listFact[int.Parse(indexs[i])].cantidadXML > maxXML) { listFact[int.Parse(indexs[i])].consola = "Limite de archivos alcanzado"; } } //File1.PostedFile.SaveAs(SaveLocation); //this.lblConsola.Text = "Cargada correctamente "; Session["lstFacturas"] = listFact; cargarDatosTabla(); } else { PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); for (int i = 0; i < indexs.Length; i++) { if (listFact[int.Parse(indexs[i])].cantidadXML <= maxXML) { complementoMsgError = "XML: " + fn.ToString(); complementoMsgError += "</br>"; complementoMsgError += "UUID: " + listFact[int.Parse(indexs[i])].uuid; complementoMsgError += "</br>"; complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAT; complementoMsgError += "</br>"; complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAP; complementoMsgError += "</br>"; complementoMsgError += "</br>"; if (listFact[int.Parse(indexs[i])].msgVarios == "") { listFact[int.Parse(indexs[i])].esPrimerCarga = true; } else { listFact[int.Parse(indexs[i])].esPrimerCarga = false; } listFact[int.Parse(indexs[i])].msgVarios += complementoMsgError; listFact[int.Parse(indexs[i])].consola = listFact[int.Parse(indexs[i])].DescripcionErrorSAP; if (i == 0) { listFact[int.Parse(indexs2[i])].consola = listFact[int.Parse(indexs[i])].DescripcionErrorSAP; } } } cargarDatosTabla(); } } else { PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); for (int i = 0; i < indexs.Length; i++) { if (listFact[int.Parse(indexs[i])].cantidadXML <= maxXML) { listFact[int.Parse(indexs[i])].consola = listFact[int.Parse(indexs[i])].DescripcionErrorSAT; complementoMsgError += "UUID: " + listFact[int.Parse(indexs[i])].uuid; complementoMsgError += "</br>"; complementoMsgError = "XML: " + fn.ToString(); complementoMsgError += "</br>"; complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAT; complementoMsgError += "</br>"; complementoMsgError += listFact[int.Parse(indexs[i])].DescripcionErrorSAP; complementoMsgError += "</br>"; complementoMsgError += "</br>"; if (listFact[int.Parse(indexs[i])].msgVarios == "") { listFact[int.Parse(indexs[i])].esPrimerCarga = true; } else { listFact[int.Parse(indexs[i])].esPrimerCarga = false; } listFact[int.Parse(indexs[i])].msgVarios += complementoMsgError; if (i == 0) { listFact[int.Parse(indexs2[i])].consola = listFact[int.Parse(indexs[i])].DescripcionErrorSAT; } } } cargarDatosTabla(); } } catch (Exception ex) { this.lblConsola.Text = "Error al cargar el archivo verifique que el XML este generado correctamente"; //Response.Write("Error: " + ex.Message); //Nota: Exception.Message devuelve un mensaje detallado que describe la excepción actual. //Por motivos de seguridad, no se recomienda devolver Exception.Message a los usuarios finales de //entornos de producción. Sería más aconsejable poner un mensaje de error genérico. } } else { Response.Write("Seleccione un archivo que cargar."); } } else { string mesajeerr = ""; List <PEntidades.FacturasXVerificar> listFact = new List <PEntidades.FacturasXVerificar>(); listFact = (List <PEntidades.FacturasXVerificar>)Session["lstFacturas2"]; if ((extXML == extencionValidaXML) == false) { mesajeerr += "El formato del campo de achivos XML es incorrecto.</br>"; } if ((extPDF == extencionValidaPDF) == false) { mesajeerr += "El formato del campo de achivos PDF es incorrecto.</br>"; } for (int i = 0; i < indexs.Length; i++) { listFact[int.Parse(indexs[i])].DescripcionErrorSAP = "N/A"; listFact[int.Parse(indexs[i])].DescripcionErrorSAT = mesajeerr; //No es XML listFact[int.Parse(indexs[i])].consola = mesajeerr; //No es XML if (i == 0) { listFact[int.Parse(indexs2[i])].consola = listFact[int.Parse(indexs[i])].consola; } } cargarDatosTabla(); //this.lblConsola.Text = "No es un XML"; } } else { string mesajeerr = ""; if ((File1.PostedFile == null) || (File1.PostedFile.ContentLength == 0)) { mesajeerr += "Ingrese un archivo XML.</br>"; } if ((File2.PostedFile == null) || (File2.PostedFile.ContentLength == 0)) { mesajeerr += "Ingrese un archivo PDF.</br>"; } List <PEntidades.FacturasXVerificar> listFact = new List <PEntidades.FacturasXVerificar>(); listFact = (List <PEntidades.FacturasXVerificar>)Session["lstFacturas2"]; for (int i = 0; i < indexs.Length; i++) { listFact[int.Parse(indexs[i])].DescripcionErrorSAP = "N/A"; listFact[int.Parse(indexs[i])].DescripcionErrorSAT = mesajeerr; //No es XML listFact[int.Parse(indexs[i])].consola = mesajeerr; //No es XML if (i == 0) { listFact[int.Parse(indexs2[i])].consola = listFact[int.Parse(indexs[i])].consola; } } cargarDatosTabla(); //this.lblConsola.Text = "No es un XML"; } }
protected string obtenerMaxXML() { PNegocio.CargarFactura cf = new PNegocio.CargarFactura(); return(cf.getMaxXML()); }