]> git.llucax.com Git - z.facultad/75.10/miklolife.git/commitdiff
Unas cuantas cositas...
authorGuillermo Rugilo <guillerugilo@yahoo.com.ar>
Sun, 26 Jun 2005 23:32:02 +0000 (23:32 +0000)
committerGuillermo Rugilo <guillerugilo@yahoo.com.ar>
Sun, 26 Jun 2005 23:32:02 +0000 (23:32 +0000)
- Agrego más datos de configuracion
- Agrego el XMLSchema, a ser utilizado por la aplicación
- Avance en "Recibir y Cotejar"

demo/src/Controlador/RecibirPrestacionesController.cs
demo/src/Recursos/infoPrestaciones_schema.xsd [new file with mode: 0644]
demo/src/Reportes/InfoPrestacionesAdmin.cs
demo/src/Reportes/InfoPrestacionesReport.cs
demo/src/VSProject.csproj
demo/src/osocial.exe.config

index 2c64432f3048cc43f510d544f761ef66178faf31..c9a45fb93c23406affe43e0cf2dcebed96dc196e 100644 (file)
@@ -5,6 +5,7 @@ using System.Collections;
 \r
 using Dominio;\r
 using Dominio.Autorizaciones;\r
+using Reportes;\r
 \r
 #endregion Usings\r
 \r
@@ -28,17 +29,43 @@ namespace Controlador
                \r
                public void procesarInfoRecibida()\r
                {\r
-                       //1. Obtener todos los prestadores\r
-                       ArrayList prestadores = this.ObjectSetToArrayList( this.Db.get(new Prestador()) );\r
-\r
-                       //2. recorrer los prestadores\r
-                       foreach ( Prestador p in prestadores )\r
+                       try\r
                        {\r
-                               //Obtener archivos enviados del prestador\r
+                               //1. Obtener todos los prestadores\r
+                               ArrayList prestadores = this.ObjectSetToArrayList( this.Db.get(new Prestador()) );\r
 \r
-                       }\r
+                               InfoPrestacionesAdmin ipAdmin = new InfoPrestacionesAdmin();\r
+\r
+                               //2. recorrer los prestadores\r
+                               foreach ( Prestador p in prestadores )\r
+                               {\r
+                                       //Obtener archivos enviados del prestador\r
+                                       InfoPrestacionesReport[] informes = ipAdmin.ObtenerInfoPendiente( p );\r
                        \r
+                                       //Recorro archivo por archivo\r
+                                       foreach ( InfoPrestacionesReport ip in informes )\r
+                                       {\r
+                                               if ( (ip.ValidarFormato()) && ( ip.Cuit == p.Cuit ) )\r
+                                               {\r
+                                                       //OK\r
+                                               }\r
+                                               else\r
+                                               {\r
+                                                       //ERROR. \r
+                                                       // 1. Mover el archivo a "rechazados"\r
+                                                       // 2. Enviar mail\r
+                                               }\r
+                                       }\r
+                               }\r
 \r
+                               /*\r
+                                *                      string dir = System.Configuration.ConfigurationSettings.AppSettings["DirectorioPrestadores"];\r
+                                * */\r
+                       }\r
+                       catch ( Exception e )\r
+                       {\r
+                               Console.WriteLine( e.Message );\r
+                       }\r
                }\r
 \r
                #endregion Métodos Públicos\r
diff --git a/demo/src/Recursos/infoPrestaciones_schema.xsd b/demo/src/Recursos/infoPrestaciones_schema.xsd
new file mode 100644 (file)
index 0000000..0fb1339
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">\r
+\r
+       <xs:element name="infoPrestaciones" type="InfoPrestacionesType"/>\r
+\r
+       <xs:complexType name="InfoPrestacionesType">\r
+               <xs:sequence>\r
+                       <xs:element name="prestador" type="PrestadorType"/>\r
+                       <xs:element name="lineas" type="LineasType"/>\r
+               </xs:sequence>\r
+               <xs:attribute name="fechaEnvio" type="xs:date"/>\r
+       </xs:complexType>\r
+\r
+       <xs:complexType name="PrestadorType">\r
+               <xs:sequence>\r
+                       <xs:element name="CUIT" type="CUITType"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+\r
+       <xs:complexType name="LineasType">\r
+               <xs:sequence>\r
+                       <xs:element name="linea" type="LineaType" minOccurs="0" maxOccurs="unbounded"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+\r
+       <xs:complexType name="LineaType">\r
+               <xs:sequence>\r
+                       <xs:element name="tipoAutorizacion" type="TipoAutorizacionType"/>\r
+                       <xs:element name="codigoAfiliado" type="xs:positiveInteger"/>\r
+                       <xs:element name="codigoPrestacion" type="CodigoPrestacionType"/>\r
+                       <xs:element name="fechaRealizacion" type="xs:date"/>\r
+                       <xs:element name="porcentajeCobertura" type="PorcentajeCoberturaType"/>\r
+               </xs:sequence>\r
+               <xs:attribute name="codigoAutorizacion" type="xs:positiveInteger"/>\r
+       </xs:complexType>\r
+\r
+       <xs:simpleType name="CUITType">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:pattern value="\d{2}-\d{8}-\d{1}"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+\r
+       <xs:simpleType name="TipoAutorizacionType">\r
+               <xs:restriction base="xs:normalizedString">\r
+                       <xs:enumeration value="Manual"/>\r
+                       <xs:enumeration value="Automatica"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       \r
+       <xs:simpleType name="CodigoPrestacionType">\r
+               <xs:restriction base="xs:normalizedString">\r
+                       <xs:minLength value="1"/>\r
+                       <xs:maxLength value="8"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+\r
+       <xs:simpleType name="PorcentajeCoberturaType">\r
+               <xs:restriction base="xs:decimal">\r
+                       <xs:minInclusive value="0"/>\r
+                       <xs:maxInclusive value="100"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+\r
+</xs:schema>\r
index 2a1d646c9ac134421a5592a0916c16a8ba455487..95e7f8cee05f3af9295a658be249afd1147e1f19 100644 (file)
@@ -1,4 +1,7 @@
 using System;\r
+using Dominio.Autorizaciones;\r
+using System.IO;\r
+using System.Configuration;\r
 \r
 namespace Reportes\r
 {\r
@@ -15,5 +18,59 @@ namespace Reportes
                }\r
 \r
                #endregion Constructores\r
+\r
+               #region Métodos Públicos\r
+\r
+               /// <summary>\r
+               /// Crea una lista de objetos InfoPrestacionesReport a partir de los archivos enviados por el\r
+               /// Prestador que están en su directorio asociado\r
+               /// </summary>\r
+               /// <param name="p">Prestador del cual se desea obtener sus informes enviados</param>\r
+               /// <returns>Lista de informes enviados por el prestador</returns>\r
+               public InfoPrestacionesReport[] ObtenerInfoPendiente( Prestador p )\r
+               {\r
+                       InfoPrestacionesReport[] informes = null;\r
+\r
+                       try\r
+                       {\r
+                               DirectoryInfo dir = this.ObtenerDirectorio( p );\r
+                               \r
+                               FileInfo[] archivos = dir.GetFiles( "*.xml" );\r
+                               \r
+                               foreach ( FileInfo arch in archivos )\r
+                               {\r
+                                       \r
+                               }\r
+                       }\r
+                       catch\r
+                       {\r
+                               throw;\r
+                       }\r
+\r
+                       return informes;\r
+               }\r
+\r
+\r
+               #endregion Métodos Públicos\r
+\r
+               private DirectoryInfo ObtenerDirectorio( Prestador p )\r
+               {\r
+                       string currentDir = Directory.GetCurrentDirectory();\r
+               \r
+                       string dirPrestadores = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPrestadores"] );\r
+                       if ( ! Directory.Exists(dirPrestadores) )\r
+                       {\r
+                               Directory.CreateDirectory( dirPrestadores );\r
+                       }\r
+\r
+                       string dirPrestador = Path.Combine( dirPrestadores, p.Cuit );\r
+                       if ( ! Directory.Exists(dirPrestador) )\r
+                       {\r
+                               Directory.CreateDirectory( dirPrestador );\r
+                       }\r
+\r
+                       return new DirectoryInfo( dirPrestador );\r
+               }\r
+\r
        }\r
 }\r
index fd33f82e6b7c5292eb34ea861d66a8cdb8a8d77f..280249c6d003f2077dd128ff7b3537cb1c4cc676 100644 (file)
@@ -15,5 +15,31 @@ namespace Reportes
                }\r
 \r
                #endregion Constructores\r
+\r
+               #region Campos Privados\r
+\r
+               private string _cuit;\r
+\r
+               #endregion Campos Privados\r
+\r
+               #region Propiedades Públicas\r
+               \r
+               public string Cuit\r
+               {\r
+                       get { return this._cuit; }\r
+                       set { this._cuit = value; }\r
+               }\r
+\r
+               #endregion Propiedades Públicas\r
+\r
+               #region Métodos públicos\r
+\r
+               public bool ValidarFormato()\r
+               {\r
+\r
+                       return true;\r
+               }\r
+\r
+               #endregion Métodos públicos\r
        }\r
 }\r
index 7e02b535e0bfa595a9769edfc3654db1e5382bd1..3d12231bef74b8aae97980303daf39e413f819e5 100644 (file)
                     SubType = "Code"\r
                     BuildAction = "Compile"\r
                 />\r
+                <File\r
+                    RelPath = "Recursos\infoPrestaciones_schema.xsd"\r
+                    BuildAction = "Content"\r
+                />\r
+                <File\r
+                    RelPath = "Recursos\infoPrestaciones_schema.xsx"\r
+                    DependentUpon = "infoPrestaciones_schema.xsd"\r
+                    BuildAction = "None"\r
+                />\r
                 <File\r
                     RelPath = "Reportes\InfoPrestacionesAdmin.cs"\r
                     SubType = "Code"\r
index f1d05fa557c90efed5b90caee8303f022d103c8e..414a22947700e005663c06463c7b97ff3b06f1fd 100644 (file)
                        son procesados -->\r
         <add key="DirectorioProcesamiento" value="Procesamiento" />  <!-- Relativo al dir donde corre el exe -->\r
         \r
+        <!-- Directorio donde se encuentran recursos utilizados por la aplicación, por ejemplo\r
+                       los schemas de validación de los informes -->\r
+        <add key="DirectorioRecursos" value="Recursos" />  <!-- Relativo al dir donde corre el exe -->\r
+        \r
     </appSettings>\r
     \r
 </configuration>\r