public ActionResult ComprobarLlave(Guid Id) { Utils util = new Utils(); GetPAC_Result pac = db.GetPAC(Id, 1).FirstOrDefault(); string Cer = Server.MapPath("~/Certificados/" + pac.RFC + "/" + pac.RFC + ".cer"); string Key = Server.MapPath("~/Certificados/" + pac.RFC + "/" + pac.RFC + ".key"); string Dir = Server.MapPath("~/Facturas/" + pac.RFC); string Factura = Dir + "/Facturas/Prueba.xml"; RVCFDI33.GeneraCFDI objCfdi = new RVCFDI33.GeneraCFDI(); objCfdi.agregarCertificado(Cer); objCfdi.agregarComprobante33("A", "6172", System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"), "01", "", 1, 0, "MXN", "1", 1.16, "I", "PUE", "39300", ""); objCfdi.agregarEmisor(pac.RFC, pac.Nombre, pac.RegimenFiscal.Trim()); objCfdi.agregarReceptor("XAXX010101000", "Cliente general", "", "", "P01"); objCfdi.agregarConcepto("01010101", "1", 1.00, "EA", "Pieza", "Producto Generica", 1.00, 1.00, 0.00); objCfdi.agregarImpuestoConceptoTraslado(1, "002", "Tasa", 0.160000, 0.16); objCfdi.agregarImpuestos(0, 0.16); objCfdi.agregarTraslado("002", "Tasa", 0.160000, 0.16); objCfdi.GeneraXML(Key, pac.ContrasenaLlave); if (objCfdi.MensajeError != "") { return(Json(new { error = "Error", Message = objCfdi.MensajeError }, JsonRequestBehavior.AllowGet)); } string XML = objCfdi.Xml.Replace("Sello=\"\"", "Sello=\"" + objCfdi.SelloEmisor + "\"").Replace(",", "."); System.IO.File.WriteAllText(Factura, XML); objCfdi.TimbrarCfdiArchivo(Factura, pac.Usuario, pac.Contrasena, "http://generacfdi.com.mx/rvltimbrado/service1.asmx", Factura.Replace("Prueba.xml", ""), "Timbrado", true); if (objCfdi.MensajeError == "") { RVCFDI33.RVCancelacion.Cancelacion obj = new RVCFDI33.RVCancelacion.Cancelacion(); string cadenaCancelacion = obj.crearXMLCancelacionCadena(Cer, Key, pac.ContrasenaLlave, objCfdi.UUID); if (obj.MensajeDeError == "") { obj.enviarCancelacionCadena(cadenaCancelacion, pac.RFC, pac.Contrasena, "http://generacfdi.com.mx/rvltimbrado/service1.asmx", true); if (obj.CodigoDeError == 0) { return(Json(new { error = "none", Message = "Se Timbro Correctamente" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { error = "error", Message = obj.CodigoDeError }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { error = "error", Message = obj.MensajeDeError }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { error = "error", Message = objCfdi.MensajeError }, JsonRequestBehavior.AllowGet)); } }
public ActionResult Cancelar(Guid Id) { try { CFDI Factura = db.GetCFDI(Id, 1).FirstOrDefault(); GetPAC_Result PAC = db.GetPAC(null, 0).Where(x => x.Id == Factura.IdProveedor).First(); RVCFDI33.RVCancelacion.Cancelacion Cancelar = new RVCFDI33.RVCancelacion.Cancelacion(); string Certificado = Server.MapPath("~/Certificados/" + PAC.RFC + "/" + PAC.RFC + ".cer"), Llave = Server.MapPath("~/Certificados/" + PAC.RFC + "/" + PAC.RFC + ".key"), Cancelacion = Server.MapPath("~/Facturas/" + PAC.RFC + "/Cancelaciones"); string cadenaCancelacion = Cancelar.crearXMLCancelacionCadena(Certificado, Llave, PAC.ContrasenaLlave, Factura.Id.ToString()); if (Cancelar.MensajeDeError == "") { //Cancelar.enviarCancelacionCadena(cadenaCancelacion, PAC.RFC, PAC.Contrasena, "http://generacfdi.com.mx/rvltimbrado/service1.asmx"); if (Cancelar.CodigoDeError == 0) { if (!System.IO.Directory.Exists(Cancelacion)) { System.IO.Directory.CreateDirectory(Cancelacion); } System.IO.File.WriteAllText(Cancelacion + "\\Cancelacion_" + Factura.Folio + ".xml", cadenaCancelacion); db.UpdateCFDI(Id, Factura.Tipo, Factura.Folio, Factura.XML, Factura.Ruta, Factura.IdCliente, Factura.IdEmpleado, Factura.IdProveedor, true); return(Json(new { error = false }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { error = "Error Al enviar la Cadena De Cancelacion", Message = Cancelar.MensajeDeError }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { error = "Error Al hacer la Cadena De Cancelacion", Message = Cancelar.MensajeDeError }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json(new { error = "error", Message = ex.Message }, JsonRequestBehavior.AllowGet)); } }