public ActionResult Presentar(string id) { ContribuyenteInfo contribuyente = this.ContribuyenteAutenticado(); if (!string.IsNullOrEmpty(id)) { id = Utileria.Instancia.DeCodificarBase64(id); dynamic parametro = JsonConvert.DeserializeObject(id); var declaracion = new DeclaracionClasificador() { Ejercicio = parametro.ejercicio, Periodo = parametro.periodo, Rfc = contribuyente.Rfc }; var declaracionalmacenada = declaracion.DeclaracionAlmacenadaNoEnviada(); return(this.Redirect(string.Format("{0}/{1}?EsPMS={2}", ConfiguracionApp.AdaptadorCloud.RecuperarCadena("UrlPortalDyP"), ConfiguracionApp.AdaptadorCloud.RecuperarCadena("UrlPresentarDeclaracionDyP"), // "Paginas/ConfigDeclaracion.aspx", declaracionalmacenada.EncriptadosParaDyP()))); } return(View()); }
private void ImportarDatos(DeclaracionClasificador declaracion) { Dictionary <string, string> clasificadorParams = new Dictionary <string, string>(); clasificadorParams.Add(RecursoClasificador.DiferenciaValidacionCFDI, ConfiguracionApp.AdaptadorCloud.RecuperarEntero(RecursoClasificador.DiferenciaValidacionCFDI).ToString()); var idencriptado = declaracion.CodigoEncirptado(string.Empty); clasificadorParams.Add(RecursoClasificador.EjercicioParametro, declaracion.Ejercicio.ToString()); clasificadorParams.Add(RecursoClasificador.PeriodoParametro, declaracion.Periodo.ToString()); clasificadorParams.Add(RecursoClasificador.DeclaracionParametro, declaracion.Consecutivo.ToString()); clasificadorParams.Add(RecursoClasificador.ParametroVistaPrevia, idencriptado); clasificadorParams.Add(RecursoClasificador.ParametroEsPMS, declaracion.EncriptadosParaDyP()); ViewBag.parametrosClasificador = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(clasificadorParams); }
public List <string> ObtenerPlantillaObligaciones(dynamic parametro, out string formulario, out int codigoRespuesta) { List <string> plantillas = new List <string>(); string[] xmlPlantillas = null; string xmlDeclaracionTemporal = string.Empty; string xmlDeclaracionVigente = string.Empty; codigoRespuesta = (int)CodigoRespuestaGeneral.OK; string forma = "new"; string mensaje = string.Empty; try { string rfc = parametro.Rfc; long idDeclaracion = parametro.NoDeclaracion ?? 0; string xmlTemporal = string.Empty; var obligaciones = new List <string>(); if (idDeclaracion > 0) { AdministradorDeclaracionClasificador administrador = new AdministradorDeclaracionClasificador(); DeclaracionClasificador declaraClasificador = administrador.ObtenerDeclaracionPorDypLlave(parametro.Rfc.ToString(), idDeclaracion.ToString()); if (declaraClasificador != null) { parametro.DeclaracionClasificador = declaraClasificador.Consecutivo; } else { parametro.DeclaracionClasificador = 1; Exception ex = new Exception($"No encontro declaracion clasificardor: {parametro.Rfc} - {idDeclaracion}"); RegistroEvento.Error(ref ex, CodigoEvento.ErrorInfraestrucura, GetType().Name); } } #region Obtenemos la informacion del contribuyente, ya sea por Precarga, Selector, Temporal var plantillaData = new Descarga.Entities.PrecargaContribuyente() { rfc = parametro.Rfc, ejercicio = parametro.ejercicio != null?Convert.ToString(parametro.ejercicio) : null, periodo = parametro.periodo != null ? parametro.periodo : null, tipoContribuyente = parametro.TipoContribuyente, metodoAutenticacion = parametro.MetodoAutenticacion, declaracionID = idDeclaracion, reformaID = parametro.NoReforma != null ? parametro.NoReforma : null, alscEmpleado = parametro.idAlscEmpleado, rfcEmpleado = parametro.rfcEmpleado, presentaDeclaracion = parametro.presentaDeclaracion ?? false, OpcionCalculoISR = parametro.OpcionCalculoISR ?? "-1", consecutivo = parametro.DeclaracionClasificador.ToString(), MuestraCalculoISR = parametro.muestraOCISR.ToString() }; using (var prec = new Descarga.PreCarga()) { prec.DeclaracionDatos += (s, m, u) => { try { return(Consultas.Consulta.InfoDeclaracion(s, m, u)); } catch (Exception ex) { RegistraEvento.Instancia.EscribeEvento(ex); RegistroEvento.Error(ref ex, CodigoEvento.ErrorInfraestrucura, GetType().Name); return(null); } }; prec.ejecutaAccion += (p, a) => { switch (a) { case Descarga.PreCarga.accion.Totales: if (obtieneTotales != null) { return(obtieneTotales(p[0], p[1], p[2], p[3])); } break; case Descarga.PreCarga.accion.Plantillas: for (int i = 4; i <= p.Length - 1; i++) { obligaciones.Add(p[i] /*.Replace("0145", "ISR").Replace("0309", "IVA")*/); } xmlPlantillas = ServicioObtienePlantillas(p[1], p[2], p[3] ?? parametro.periodicidad.ToString(), obligaciones.ToArray()); break; case Descarga.PreCarga.accion.Complementaria: Dictionary <string, string> listaConceptos = new Dictionary <string, string>(); foreach (string c in p[3].Split('|').Where(d => !string.IsNullOrEmpty(d))) { listaConceptos.Add(c.Split(',')[0], c.Split(',')[1]); } xmlDeclaracionVigente = RecuperarXmlConceptos(listaConceptos, p[0]); break; case Descarga.PreCarga.accion.Temporal: if (RecuperaEntidadDeclaracionTemporal(p[0], p[3]) != null) { xmlTemporal = RecuperarXmlDeclaracionTemporal(p[0], p[3]); } if (!string.IsNullOrEmpty(xmlTemporal)) { forma = "tmp"; } break; } return(null); }; try { mensaje = prec.ObtenerDatosContribuyente(plantillaData, out codigoRespuesta); } catch (Exception ex) { RegistraEvento.Instancia.EscribeEvento(ex); RegistroEvento.Error(ref ex, CodigoEvento.ErrorInfraestrucura, GetType().Name); } } #endregion formulario = forma; plantillas.Add(mensaje); plantillas.Add(xmlTemporal); plantillas.Add(xmlDeclaracionVigente); if (xmlPlantillas != null) { plantillas.AddRange(xmlPlantillas); } else { plantillas.AddRange(new string[6]); } plantillas.Add(obligaciones.Count(o => o == TipoObligacion.ISR.ToDescription()).ToString().ToLower()); } catch (Exception ex) { RegistraEvento.Instancia.EscribeEvento(ex); RegistroEvento.Error(ref ex, CodigoEvento.ErrorInfraestrucura, GetType().Name); throw ex; } return(plantillas); }
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); }
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); }