예제 #1
0
        /// <summary>
        /// Método principal para la consulta de los datos de una solicitud de licencia y posterior llamado a la carga de los mismos
        /// </summary>
        public static Task <int> ConsultaSolicitudesVUCE()
        {
            //int Respuesta = 1;
            string     strNumDias = ConfigurationManager.AppSettings["NUMERODIAS_ATRAS"].ToString();
            string     txtXML;
            TablaTMS   objSolLicImp;
            Serializer ser = new Serializer();

            if (ValidacionConexionBaseDatos())
            {
                ServiceTMSVUCEImpo.ServiceEntidadesTMS  wsClient   = new ServiceTMSVUCEImpo.ServiceEntidadesTMS();
                ServiceTMSVUCEImpo.RegistrosEntidad     objRecords = new ServiceTMSVUCEImpo.RegistrosEntidad();
                ServiceTMSVUCEImpo.ResultadoOperacion   objResults = new ServiceTMSVUCEImpo.ResultadoOperacion();
                ServiceTMSVUCEImpo.EntidadParametrizada objEntidad = new ServiceTMSVUCEImpo.EntidadParametrizada();

                wsClient.usuarioApp = new UsrAplicacion();
                wsClient.usuarioApp.idAppEntidad = ConfigurationManager.AppSettings["IDAPPENTIDAD"].ToString();
                wsClient.usuarioApp.idUsuario    = ConfigurationManager.AppSettings["USUARIO_APP"].ToString();
                wsClient.usuarioApp.password     = ConfigurationManager.AppSettings["PASSWORD_APP"].ToString();

                objEntidad.identificadorObjeto  = ConfigurationManager.AppSettings["IDENTIFICADOR_OBJETO"].ToString();
                objEntidad.parametros           = new Parametro[2];
                objEntidad.parametros[0]        = new Parametro();
                objEntidad.parametros[1]        = new Parametro();
                objEntidad.parametros[0].nombre = ConfigurationManager.AppSettings["PARAMETRO_1"].ToString();
                objEntidad.parametros[1].nombre = ConfigurationManager.AppSettings["PARAMETRO_2"].ToString();
                objEntidad.parametros[1].valor  = ConfigurationManager.AppSettings["IDUSUARIO"].ToString();

                try
                {
                    // Consultar en SICOQ - CE las solicitudes pendientes por cerrar
                    // ce_solicitud_importaciones.indaprobada = [ null = Sin definir, 0 = No, 1 = Si]
                    // Consultar desde n días hacia atrás [strNumDias <--- "NUMERODIAS_ATRAS"]

                    string sql_SolPendCerrar = "SELECT idsolicitud, fechacreacion, idtiposolicitud, numeroformulario FROM " + Utilidades.Configuracion.Esquema_SICOQ_WS +
                                               // Modificación del filtro para las pruebas
                                               //".CE_SOLICITUD_IMPORTACIONES WHERE indaprobada IS NULL AND numeroformulario IN ('TML-I-0235855-20191223') ORDER BY 2 ASC";
                                               ".CE_SOLICITUD_IMPORTACIONES WHERE indaprobada IS NULL AND fechacreacion > sysdate - " + strNumDias + " ORDER BY 2 ASC";

                    objDataAccess.Conectar(Utilidades.Configuracion.ConexionFactorySuite, Utilidades.Configuracion.ProveedorFactorySuite);
                    DataTable dtSolPendCerrar = objDataAccess.Consultar(sql_SolPendCerrar);
                    objDataAccess.DesConectar();
                    EventLog.WriteEntry(strAplicacion, "Inicio de Consulta de Solicitudes pendientes por cerrar.", EventLogEntryType.Information);

                    for (int i = 0; i < dtSolPendCerrar.Rows.Count; i++)
                    {
                        // Llamado a consultar el servicio de MinCIT para las Solicitudes procesadas
                        objEntidad.parametros[0].valor = dtSolPendCerrar.Rows[i].ItemArray[3].ToString();
                        objRecords = wsClient.ObtenerEntidadParametrizada(objEntidad, out objResults);

                        if (objResults.estadoOperacion == "OK")
                        {
                            txtXML = objRecords.registros.InnerXml.ToString().Replace("&lt;", "<").Replace("&gt;", ">").Replace("&amp;#x0D;", "\n").Replace("\"", "");

                            //  objSolLicImp = ser.Deserialize<TablaTMS>(objRecords.registros.InnerXml);
                            objSolLicImp = ser.Deserialize <TablaTMS>(txtXML);

                            //UTF8Encoding Encoder = new UTF8Encoding(false);
                            EventLog.WriteEntry(strAplicacion, "Consulta de solicitud " + dtSolPendCerrar.Rows[i].ItemArray[3].ToString() + " exitosa con Licencia de Importación " + objSolLicImp.NumRegLicImportacion /*Encoding.UTF8.GetString(Encoder.GetBytes(txtXML))*/, EventLogEntryType.Information);

                            // Procedemos a actualizar la solicitud de importación
                            ActualizarSolicitudImportacion(dtSolPendCerrar.Rows[i].ItemArray[0].ToString(), objSolLicImp);
                        }
                        else
                        {
                            EventLog.WriteEntry(strAplicacion, "Consulta de solicitud " + dtSolPendCerrar.Rows[i].ItemArray[3].ToString() + "  fallida [No disponible]: " + objResults.estadoOperacion + ": " + objResults.descripcion, EventLogEntryType.Error);
                        };
                    }

                    EventLog.WriteEntry(strAplicacion, "Fin de Consulta de Solicitudes pendientes por cerrar.", EventLogEntryType.Information);

                    //objDataAccess.DesConectar();
                }
                catch (Exception objException)
                {
                    EventLog.WriteEntry(strAplicacion, "Error al consultar las Solicitudes pendientes por cerrar en SICOQ: " + objException.Message + ": " + objException.InnerException, EventLogEntryType.Error);
                    objDataAccess.Conectar(Utilidades.Configuracion.ConexionFactorySuite, Utilidades.Configuracion.ProveedorFactorySuite);
                    GuardarLogErroresFS(objException);
                    objDataAccess.DesConectar();
                }

                wsClient.Dispose();
            }


            return(Task.FromResult(1));  // NumSolicitudTemporal
        }
예제 #2
0
        public RegistrosEntidad ObtenerEntidadParametrizada([System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] EntidadParametrizada entidad, [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] out ResultadoOperacion respuesta)
        {
            object[] results = this.Invoke("ObtenerEntidadParametrizada", new object[] {
                entidad
            });

            respuesta = ((ResultadoOperacion)(results[1]));
            return((RegistrosEntidad)(results[0]));
        }