X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/5dcdc142187069476c648c3ee2dbb1a00aaf202e..1a14964592379a39d96bc84c53db779507d12415:/demo/src/Reportes/PrestacionesRealizadasReport.cs diff --git a/demo/src/Reportes/PrestacionesRealizadasReport.cs b/demo/src/Reportes/PrestacionesRealizadasReport.cs index 2f7cb0b..ca1372f 100644 --- a/demo/src/Reportes/PrestacionesRealizadasReport.cs +++ b/demo/src/Reportes/PrestacionesRealizadasReport.cs @@ -1,4 +1,12 @@ using System; +using System.Collections; +using System.Xml; +using Dominio.Autorizaciones; +using Dominio.Afiliados; +using com.db4o; +using System.Configuration; +using System.IO; + namespace Reportes { @@ -11,8 +19,179 @@ namespace Reportes public PrestacionesRealizadasReport() { + XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null); + xmlDoc.AppendChild(xmlDeclaration); + + XmlElement root = this.xmlDoc.CreateElement( "informeAprRechazos" ); + root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) ); + + root.AppendChild( xmlDoc.CreateElement( "lineas" ) ); + + xmlDoc.AppendChild( root ); } #endregion Constructores + + private XmlDocument xmlDoc = new XmlDocument(); + + #region Metodos publicos + + public void AgregarInfo( Prestador p, DateTime fechaRecepcionInfo, LineaInfoPrestacionesReport lineaIp ) + { + //LINEA + XmlElement elemLinea = this.xmlDoc.CreateElement( "linea" ); + elemLinea.SetAttribute( "codigoAutorizacion", lineaIp.CodigoAutorizacion.ToString() ); + elemLinea.SetAttribute( "aprobada", lineaIp.Aprobada.ToString().ToLower() ); + + //tipoAutorizacion + XmlElement elemTipoAut = this.xmlDoc.CreateElement( "tipoAutorizacion" ); + elemTipoAut.InnerText = lineaIp.TipoAutorizacion; + elemLinea.AppendChild( elemTipoAut ); + + //prestador + XmlElement elemPrestador = this.xmlDoc.CreateElement( "prestador" ); + XmlElement elemCuit = this.xmlDoc.CreateElement( "CUIT" ); + elemCuit.InnerText = p.Cuit.ToString().Trim(); + elemPrestador.AppendChild( elemCuit ); + XmlElement elemNombrePrestador = this.xmlDoc.CreateElement( "nombre" ); + elemNombrePrestador.InnerText = p.Nombre.ToString().Trim(); + elemPrestador.AppendChild( elemNombrePrestador ); + + elemLinea.AppendChild( elemPrestador ); + + //codigoPrestacion + XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" ); + elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim(); + elemLinea.AppendChild( elemCodPrestacion ); + + //codigoAfiliado + XmlElement elemCodAfiliado = this.xmlDoc.CreateElement( "codigoAfiliado" ); + elemCodAfiliado.InnerText = lineaIp.CodigoAfiliado.ToString().Trim(); + elemLinea.AppendChild( elemCodAfiliado ); + + //porcentajeCoberturaReclamado + XmlElement elemPorcentajeReclamado = this.xmlDoc.CreateElement( "porcentajeCoberturaReclamado" ); + elemPorcentajeReclamado.InnerText = lineaIp.PorcentajeCobertura.ToString().Trim(); + elemLinea.AppendChild( elemPorcentajeReclamado ); + + //Campos a completar si es que la autorizacion existe en el sistema + if ( lineaIp.ExisteAutorizacion ) + { + Autorizacion a = this.getAutorizacion( lineaIp.CodigoAutorizacion ); + + //porcentajeCoberturaReal + XmlElement elemPorcentajeReal = this.xmlDoc.CreateElement( "porcentajeCoberturaReal" ); + elemPorcentajeReal.InnerText = a.PorcentajeCobertura.ToString().Trim(); + elemLinea.AppendChild( elemPorcentajeReal ); + + //fechaAprobacion + XmlElement elemFechaAprobacion = this.xmlDoc.CreateElement( "fechaAprobacion" ); + elemFechaAprobacion.InnerText = a.FechaSolicitud.ToString( "yyyy-MM-dd" ); + elemLinea.AppendChild( elemFechaAprobacion ); + + //fechaVencimiento + XmlElement elemFechaVencimiento = this.xmlDoc.CreateElement( "fechaVencimiento" ); + elemFechaVencimiento.InnerText = a.FechaVencimiento.ToString( "yyyy-MM-dd" ); + elemLinea.AppendChild( elemFechaVencimiento ); + } + + //fechaRealizacion + XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" ); + elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" ); + elemLinea.AppendChild( elemFechaRealizacion ); + + //fechaRecepcionInfo + XmlElement elemFechaRecepcionInfo = this.xmlDoc.CreateElement( "fechaRecepcionInfo" ); + elemFechaRecepcionInfo.InnerText = fechaRecepcionInfo.ToString( "yyyy-MM-dd" ); + elemLinea.AppendChild( elemFechaRecepcionInfo ); + + if ( ! lineaIp.Aprobada ) + { + //motivoRechazo + XmlElement elemMotivoRechazo = this.xmlDoc.CreateElement( "motivoRechazo" ); + elemMotivoRechazo.InnerText = lineaIp.MotivoRechazo.Trim(); + elemLinea.AppendChild( elemMotivoRechazo ); + } + + //AgregoLINEA + XmlElement lineas = xmlDoc.DocumentElement["lineas"]; + lineas.AppendChild( elemLinea ); + } + + public override string ToString() + { + return xmlDoc.OuterXml; + } + + public void Serializar() + { + string currentDir = Directory.GetCurrentDirectory(); + string dirPagos = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPagos"] ); + if ( ! Directory.Exists(dirPagos) ) + { + Directory.CreateDirectory( dirPagos ); + } + + int secuencia = 0; + + string baseFileName = "rp_" + DateTime.Now.ToString("yyyy-MM-dd") + "_"; + string pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml" ); + + while ( File.Exists(pathName) ) + { + secuencia += 1; + pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml"); + } + + XmlTextWriter writer = new XmlTextWriter( pathName, null ); + writer.Formatting = Formatting.Indented; + this.xmlDoc.Save(writer); + } + + #endregion Metodos publicos + + #region Metodos privados + + private Autorizacion getAutorizacion( int codigo ) + { + this.db = com.db4o.Db4o.openFile("os.yap"); + + ArrayList al = new ArrayList(); + + al = this.ObjectSetToArrayList( db.get( new AutorizacionManual(codigo) ) ); + Autorizacion a = ( (al.Count == 0)? null : al[0] ) as AutorizacionManual; + + if ( a == null ) + { + al = this.ObjectSetToArrayList( db.get( new AutorizacionAutomatica(codigo) ) ); + a = ( (al.Count == 0)? null : al[0] ) as AutorizacionAutomatica; + } + + this.db.close(); + this.db = null; + + return a; + } + + #endregion Metodos privados + + #region DB + private com.db4o.ObjectContainer db = null; + + private ArrayList ObjectSetToArrayList (ObjectSet result) + { + ArrayList lst = new ArrayList (); + Object s; + if (result == null) + return lst; + + while ((s = result.next ()) != null) + { + lst.Add (s); + } + return lst; + } + + #endregion DB } }