public ActionResult Abrir(string id) { ActionResult vista = this.View(RecursoClasificador.ParcialErrorEnPermisos); var encabezado = new EncabezadoDypClasificador(); try { ContribuyenteInfo contribuyente = this.ContribuyenteAutenticado(); // TODO: Incluir la petición desde lugar referido // this.PeticionDesdeLugarReferido() : if (!string.IsNullOrEmpty(id) && contribuyente.Espms) { DeclaracionClasificador declaracion = DeclaracionClasificadorComplementos.ObtenerDeclaracionDedeUrl(id); var encriptador = new Sat.DyP.Herramientas.Encripcion.Encripcion(); var limpio = encriptador.DesencriptaCadena(id, Sat.DyP.Herramientas.Encripcion.TipoEncripcion.Base64URL); this.ImportarDatos(declaracion); if (contribuyente.Rfc == declaracion.Rfc) { declaracion.ActualizarDeclaracionPorAbrirDeclaracion(); var pago = new DeterminacionPagoDyP(); var respuesta = pago.ConsultarOpcPagoISREnClasificador(declaracion.Ejercicio, declaracion.Rfc); bool ocisr = string.IsNullOrEmpty(respuesta); var idencriptado = declaracion.CodigoEncirptado(contribuyente.Token); encabezado = declaracion.ObtenerEncabezado(); /********************************************************************************************************************/ var parameters = new Dictionary <int, Dictionary <string, string> >(); string IdDeclaracion = limpio.Split(',').Where(i => i.Contains("idd")).FirstOrDefault().Split(':')[1]; string IdReforma = limpio.Split(',').Where(i => i.Contains("ref")).FirstOrDefault().Split(':')[1]; //if (limpio.Split(',').Where(i => i.Contains("redi")).FirstOrDefault() == null) //{ // vista = Redirect("VistaPrevia/" + encriptador.EncriptaCadena("r:" + declaracion.Rfc + ",idd:" + IdDeclaracion + ",ref:" + IdReforma + "redi:0", Sat.DyP.Herramientas.Encripcion.TipoEncripcion.Base64URL)); //} //else //{ parameters.Add(0, new Dictionary <string, string>() { { "NoReforma", IdReforma }, { "OpcionCalculoISR", ocisr ? "-1" : respuesta } }); parameters.Add(1, new Dictionary <string, string>() { { "NoDeclaracion", IdDeclaracion }, { "presentaDeclaracion", "true" }, { "muestraOCISR", ocisr ? "1" : "0" } }); /********************************************************************************************************************/ this.ViewBag.Info = declaracion.ParametrosVistaPrevia(parameters); ViewBag.idencriptado = idencriptado; vista = View("VistaPrevia"); //} } } } catch (Exception ex) { RegistroEvento.Error(ref ex, CodigoEvento.ErrorNegocio, RecursoClasificador.ErrorEnAutenticacion, null, null, origen: RecursoClasificador.ClasificadorOrigen); } TempData[TEMP_DATA_ENCABEZADO] = encabezado; return(vista); }
string preparaDeclaracionProvisional(string xmlDeclaracion, string rfc, string idDeclaracion, DeclaracionTemporal temporal, out string mensaje) { string uriBlob = string.Empty; mensaje = string.Empty; try { TransformadorSATMessage procesaMensaje = new TransformadorSATMessage(); RespuestaServicioDyP respuestaProceso = procesaMensaje.EnviarMensajeSAT(xmlDeclaracion, idDeclaracion, rfc); if (respuestaProceso.Procesado) { if (string.IsNullOrEmpty(new DeterminacionPagoDyP().ConsultarOpcPagoISREnClasificador(temporal.Ejercicio, rfc))) { /*Apartado para determinar si el contribuyente seleccionó ingreso menos gasto o coeficiente de utilidad en el formulario de ISR*/ try { XDocument xdocTmp = XDocument.Parse(xmlDeclaracion); var nodoISR = xdocTmp.XPathSelectElement("//*[local-name()='modeloDatos']/*[local-name()='entidad' and @tipo='SAT_DETERMINACION_IMPUESTO' and @claveimpuesto='" + TipoObligacion.ISR.ToDescription() + "']/*[local-name()='propiedad' and @claveinformativa='OCISR']"); if (nodoISR != null) { string misr = nodoISR.Value == "1" ? "CU" : "IG"; var pago = new DeterminacionPagoDyP(); pago.AgregarOpcPagoISR(temporal.Ejercicio, rfc, misr); pago.MarcarComoCerrada(temporal.Ejercicio, rfc); } } catch (Exception _ex) { RegistraEvento.Instancia.EscribeEvento(_ex); RegistroEvento.Error(ref _ex, CodigoEvento.ErrorDatos, GetType().Name); } } uriBlob = respuestaProceso.PDF; var declaraProvisional = new DeclaracionProvisional { rfc = rfc, ejercicio = temporal.Ejercicio, idDeclaracion = idDeclaracion, NoReforma = temporal.VersionReforma, periodicidad = temporal.Periodicidad, periodicidadDescripcion = temporal.PeriodicidadDescripcion, periodo = temporal.Periodo, tipoDeclaracion = temporal.TipoDeclaracion, tipoDeclaracionDescripcion = temporal.TipoDeclaracionDescripcion, periodoDescripcion = temporal.PeriodoDescripcion, tipoComplementaria = temporal.TipoComplementaria, tipoComplementariaDescripcion = temporal.TipoComplementariaDescripcion, }; uriBlob = AlmacenarDeclaracionProvisional(declaraProvisional, xmlDeclaracion, respuestaProceso.XmlMessage, respuestaProceso.PDF, respuestaProceso.HTML); EliminarDeclaracionTemporal(rfc, idDeclaracion); using (AdministradorEnvioDeclaracionConceptos administrador = new AdministradorEnvioDeclaracionConceptos()) { try { administrador.EnviarMensaje(rfc, idDeclaracion); } catch (Exception ex) { RegistroEvento.Error(ref ex, CodigoEvento.ErrorNegocio, "Generacion del mensaje de recepción de declaracion."); } } try { using (var administrador = new AdministradorDeclaracionClasificador()) { //var declaracionClasificador = administrador.ObtenerDeclaracionPorDypLlave(rfc, idDeclaracion); //declaracionClasificador.EstadoActual = (int)Sat.DyP.Clasificador.Entidades.Enumeraciones.EstadoDeclaracion.Enviada; //administrador.AgregarActualizarDeclaracion(declaracionClasificador); // var declaracionAlmacenada = DeclaracionClasificadorComplementos.MarcarComoDeclaracionEnviada(rfc, idDeclaracion, temporal.VersionReforma); if (declaracionAlmacenada != null) { administrador.EncolarCfdisReportes(declaracionAlmacenada.RowKey); } } } catch (Exception ex) { RegistroEvento.Error(ref ex, CodigoEvento.ErrorNegocio, "Marcar como enviada y crear petición para worker de datos."); } } else { mensaje = respuestaProceso.Mensaje + respuestaProceso.PDF; } } catch (Exception ex) { throw ex; } return(uriBlob); }
public ActionResult AbrirEmpleado(string id) { ActionResult vista = this.View(RecursoClasificador.ParcialErrorEnPermisos); var declaracion = new DeclaracionClasificador(); string limpio = string.Empty; try { if (ConfiguracionApp.AdaptadorCloud.RecuperarBoolean("IsPortalEmpleado")) { var empleado = this.ObtieneInfoEmpleado(); var encriptador = new Sat.DyP.Herramientas.Encripcion.Encripcion(); var datosEntrada = encriptador.DesencriptaCadena(id, Sat.DyP.Herramientas.Encripcion.TipoEncripcion.Base64URL); if (!string.IsNullOrEmpty(datosEntrada)) { var configs = datosEntrada.Split(',').Where(x => x.Contains("re:")).FirstOrDefault(); var rfcContribuyente = datosEntrada.Split(',').Where(x => x.Contains("r:")).FirstOrDefault(); var rfcEmpleado = string.Empty; if (!string.IsNullOrEmpty(configs)) { rfcEmpleado = configs.Replace("re:", string.Empty); rfcContribuyente = !string.IsNullOrEmpty(rfcContribuyente) ? rfcContribuyente.Replace("r:", string.Empty) : rfcEmpleado; // Llamada desde empleado if (rfcEmpleado == empleado.Rfc) { bool contribuyenteValido = this.ObtieneInfoContribuyenteEmpleado(rfcContribuyente); if (contribuyenteValido) { ContribuyenteInfo contribuyente = MemberCache.Instancia.UsuarioActual; if (!string.IsNullOrEmpty(id) && contribuyente.Espms) { declaracion = DeclaracionClasificadorComplementos.ObtenerDeclaracionDedeUrl(id); var declaracionTemporal = declaracion.ActualizarDeclaracionPorAbrirDeclaracion(); if (contribuyente.Rfc == declaracion.Rfc) { var idencriptado = declaracionTemporal.CodigoDeterminacionEncirptado(string.Empty); vista = Redirect(string.Format(RecursoClasificador.UrlDeterminacion, idencriptado)); } else { var ex = new Exception("Rfc no es el mismo"); RegistroEvento.Error(ref ex, CodigoEvento.ErrorNegocio, RecursoClasificador.ErrorEnAutenticacion, limpio, null, origen: System.Reflection.MethodBase.GetCurrentMethod().Name); } } else { var ex = new Exception("Intento entrar"); RegistroEvento.Error(ref ex, CodigoEvento.ErrorNegocio, RecursoClasificador.ErrorEnAutenticacion, limpio, null, origen: System.Reflection.MethodBase.GetCurrentMethod().Name); } } } } } } } catch (Exception ex) { RegistroEvento.Error(ref ex, CodigoEvento.ErrorNegocio, RecursoClasificador.ErrorEnAutenticacion, null, null, origen: System.Reflection.MethodBase.GetCurrentMethod().Name); } return(vista); }