From ad14ee69cc0a9253f352b642dfd714edee438d9a Mon Sep 17 00:00:00 2001 From: Guillermo Rugilo Date: Sun, 26 Jun 2005 23:32:02 +0000 Subject: [PATCH] =?utf8?q?Unas=20cuantas=20cositas...=20-=20Agrego=20m?= =?utf8?q?=C3=A1s=20datos=20de=20configuracion=20-=20Agrego=20el=20XMLSche?= =?utf8?q?ma,=20a=20ser=20utilizado=20por=20la=20aplicaci=C3=B3n=20-=20Ava?= =?utf8?q?nce=20en=20"Recibir=20y=20Cotejar"?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../RecibirPrestacionesController.cs | 41 ++++++++++-- demo/src/Recursos/infoPrestaciones_schema.xsd | 64 +++++++++++++++++++ demo/src/Reportes/InfoPrestacionesAdmin.cs | 57 +++++++++++++++++ demo/src/Reportes/InfoPrestacionesReport.cs | 26 ++++++++ demo/src/VSProject.csproj | 9 +++ demo/src/osocial.exe.config | 4 ++ 6 files changed, 194 insertions(+), 7 deletions(-) create mode 100644 demo/src/Recursos/infoPrestaciones_schema.xsd diff --git a/demo/src/Controlador/RecibirPrestacionesController.cs b/demo/src/Controlador/RecibirPrestacionesController.cs index 2c64432..c9a45fb 100644 --- a/demo/src/Controlador/RecibirPrestacionesController.cs +++ b/demo/src/Controlador/RecibirPrestacionesController.cs @@ -5,6 +5,7 @@ using System.Collections; using Dominio; using Dominio.Autorizaciones; +using Reportes; #endregion Usings @@ -28,17 +29,43 @@ namespace Controlador public void procesarInfoRecibida() { - //1. Obtener todos los prestadores - ArrayList prestadores = this.ObjectSetToArrayList( this.Db.get(new Prestador()) ); - - //2. recorrer los prestadores - foreach ( Prestador p in prestadores ) + try { - //Obtener archivos enviados del prestador + //1. Obtener todos los prestadores + ArrayList prestadores = this.ObjectSetToArrayList( this.Db.get(new Prestador()) ); - } + InfoPrestacionesAdmin ipAdmin = new InfoPrestacionesAdmin(); + + //2. recorrer los prestadores + foreach ( Prestador p in prestadores ) + { + //Obtener archivos enviados del prestador + InfoPrestacionesReport[] informes = ipAdmin.ObtenerInfoPendiente( p ); + //Recorro archivo por archivo + foreach ( InfoPrestacionesReport ip in informes ) + { + if ( (ip.ValidarFormato()) && ( ip.Cuit == p.Cuit ) ) + { + //OK + } + else + { + //ERROR. + // 1. Mover el archivo a "rechazados" + // 2. Enviar mail + } + } + } + /* + * string dir = System.Configuration.ConfigurationSettings.AppSettings["DirectorioPrestadores"]; + * */ + } + catch ( Exception e ) + { + Console.WriteLine( e.Message ); + } } #endregion Métodos Públicos diff --git a/demo/src/Recursos/infoPrestaciones_schema.xsd b/demo/src/Recursos/infoPrestaciones_schema.xsd new file mode 100644 index 0000000..0fb1339 --- /dev/null +++ b/demo/src/Recursos/infoPrestaciones_schema.xsd @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/src/Reportes/InfoPrestacionesAdmin.cs b/demo/src/Reportes/InfoPrestacionesAdmin.cs index 2a1d646..95e7f8c 100644 --- a/demo/src/Reportes/InfoPrestacionesAdmin.cs +++ b/demo/src/Reportes/InfoPrestacionesAdmin.cs @@ -1,4 +1,7 @@ using System; +using Dominio.Autorizaciones; +using System.IO; +using System.Configuration; namespace Reportes { @@ -15,5 +18,59 @@ namespace Reportes } #endregion Constructores + + #region Métodos Públicos + + /// + /// Crea una lista de objetos InfoPrestacionesReport a partir de los archivos enviados por el + /// Prestador que están en su directorio asociado + /// + /// Prestador del cual se desea obtener sus informes enviados + /// Lista de informes enviados por el prestador + public InfoPrestacionesReport[] ObtenerInfoPendiente( Prestador p ) + { + InfoPrestacionesReport[] informes = null; + + try + { + DirectoryInfo dir = this.ObtenerDirectorio( p ); + + FileInfo[] archivos = dir.GetFiles( "*.xml" ); + + foreach ( FileInfo arch in archivos ) + { + + } + } + catch + { + throw; + } + + return informes; + } + + + #endregion Métodos Públicos + + private DirectoryInfo ObtenerDirectorio( Prestador p ) + { + string currentDir = Directory.GetCurrentDirectory(); + + string dirPrestadores = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPrestadores"] ); + if ( ! Directory.Exists(dirPrestadores) ) + { + Directory.CreateDirectory( dirPrestadores ); + } + + string dirPrestador = Path.Combine( dirPrestadores, p.Cuit ); + if ( ! Directory.Exists(dirPrestador) ) + { + Directory.CreateDirectory( dirPrestador ); + } + + return new DirectoryInfo( dirPrestador ); + } + } } diff --git a/demo/src/Reportes/InfoPrestacionesReport.cs b/demo/src/Reportes/InfoPrestacionesReport.cs index fd33f82..280249c 100644 --- a/demo/src/Reportes/InfoPrestacionesReport.cs +++ b/demo/src/Reportes/InfoPrestacionesReport.cs @@ -15,5 +15,31 @@ namespace Reportes } #endregion Constructores + + #region Campos Privados + + private string _cuit; + + #endregion Campos Privados + + #region Propiedades Públicas + + public string Cuit + { + get { return this._cuit; } + set { this._cuit = value; } + } + + #endregion Propiedades Públicas + + #region Métodos públicos + + public bool ValidarFormato() + { + + return true; + } + + #endregion Métodos públicos } } diff --git a/demo/src/VSProject.csproj b/demo/src/VSProject.csproj index 7e02b53..3d12231 100644 --- a/demo/src/VSProject.csproj +++ b/demo/src/VSProject.csproj @@ -253,6 +253,15 @@ SubType = "Code" BuildAction = "Compile" /> + + + + + -- 2.43.0