示例#1
0
        public static List <NovedadDocumentacion> Traer_Documentacion_X_Estado(ConsultaBatch.enum_ConsultaBatch_NombreConsulta nombreConsulta,
                                                                               long idPrestador, DateTime?Fecha_Recepcion_desde, DateTime?Fecha_Recepcion_hasta, int?idEstado_documentacion,
                                                                               long?id_Novedad, long?id_Beneficiario,
                                                                               bool generaArchivo, bool generadoAdmin, out string rutaArchivoSal)
        {
            string rutaArchivo   = string.Empty;
            string nombreArchivo = string.Empty;

            rutaArchivoSal = string.Empty;
            string        msgRta        = string.Empty;
            ConsultaBatch consultaBatch = new ConsultaBatch();

            consultaBatch.IDPrestador            = idPrestador;
            consultaBatch.NombreConsulta         = nombreConsulta;
            consultaBatch.NroBeneficio           = id_Beneficiario.HasValue ? id_Beneficiario.Value : 0;
            consultaBatch.FechaDesde             = Fecha_Recepcion_desde;
            consultaBatch.FechaHasta             = Fecha_Recepcion_hasta;
            consultaBatch.GeneradoAdmin          = generadoAdmin;
            consultaBatch.IdEstado_Documentacion = idEstado_documentacion;
            consultaBatch.Idnovedad = id_Novedad;

            try
            {
                if (generaArchivo == true)
                {
                    /*idPrestador, nombreConsulta.ToString(), 0,
                    *                                         0, string.Empty, 0,
                    *                                         0, id_Beneficiario, Fecha_Recepcion_desde, Fecha_Recepcion_hasta, generadoAdmin,
                    *                                         null, null, null, null, null, idEstado_documentacion, null, null, id_Novedad,
                    *                                         false, false, null, null, null, null, null*/
                    msgRta = ConsultasBatchDAO.ExisteConsulta(consultaBatch);
                    if (!string.IsNullOrEmpty(msgRta))
                    {
                        throw new ApplicationException("MSG_ERROR" + msgRta + "FIN_MSG_ERROR");
                    }
                }

                List <NovedadDocumentacion> listNovedades = Traer_Documentacion(idPrestador, Fecha_Recepcion_desde, Fecha_Recepcion_hasta,
                                                                                idEstado_documentacion, id_Novedad, id_Beneficiario);

                if (listNovedades.Count > 0 && generaArchivo)
                {
                    int maxCantidad = Settings.MaxCantidadRegistros();

                    if (listNovedades.Count >= maxCantidad || generaArchivo)
                    {
                        nombreArchivo  = Utilidades.GeneraNombreArchivo(nombreConsulta.ToString(), idPrestador, out rutaArchivo);
                        rutaArchivoSal = Path.Combine(rutaArchivo, nombreArchivo);
                        StreamWriter sw        = new StreamWriter(rutaArchivoSal, false, Encoding.UTF8);
                        string       separador = Settings.DelimitadorCampo();

                        foreach (NovedadDocumentacion oNovedad in listNovedades)
                        {
                            StringBuilder linea = new StringBuilder();

                            linea.Append(oNovedad.IdNovedad.ToString() + separador);
                            linea.Append(oNovedad.unBeneficiario.IdBeneficiario.ToString() + separador);

                            if (nombreConsulta == ConsultaBatch.enum_ConsultaBatch_NombreConsulta.NOVEDADES_DOCUMENTACION)
                            {
                                linea.Append(oNovedad.unBeneficiario.Cuil.ToString() + separador);
                            }

                            linea.Append(oNovedad.unBeneficiario.ApellidoNombre.ToString().Trim() + separador);
                            linea.Append(oNovedad.Estado.DescEstado.ToString() + separador);
                            linea.Append((oNovedad.Fecha_Recepcion.HasValue ? oNovedad.Fecha_Recepcion.Value.ToString("dd/MM/yyyy") : string.Empty) + separador);

                            if (nombreConsulta == ConsultaBatch.enum_ConsultaBatch_NombreConsulta.NOVEDADES_DOCUMENTACION)
                            {
                                linea.Append(oNovedad.Cant_Cuotas.ToString() + separador);
                                linea.Append(oNovedad.NroCaja.ToString());
                            }
                            else
                            {
                                linea.Append(oNovedad.Cant_Cuotas.ToString());
                            }

                            sw.WriteLine(linea.ToString());
                        }
                        sw.Close();

                        Utilidades.ComprimirArchivo(rutaArchivo, nombreArchivo);
                        Utilidades.BorrarArchivo(rutaArchivoSal);
                        nombreArchivo = nombreArchivo + ".zip";
                        consultaBatch.RutaArchGenerado = rutaArchivo;
                        consultaBatch.NomArchGenerado  = nombreArchivo;
                        consultaBatch.FechaGenera      = DateTime.Now;
                        consultaBatch.Vigente          = true;

                        msgRta = ConsultasBatchDAO.AltaNuevaConsulta(consultaBatch);
                        if (!string.IsNullOrEmpty(msgRta))
                        {
                            msgRta = "MSG_ERROR" + msgRta + "FIN_MSG_ERROR";
                            throw new ApplicationException(msgRta);
                        }

                        /* Se instacia el objeto para que no muestre los
                         * registros y pueda ver solo el archivo generado. */
                        listNovedades = new List <NovedadDocumentacion>();
                    }
                }

                return(listNovedades);
            }
            catch (SqlException errsql)
            {
                log.Error(string.Format("{0}->{1}->Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), errsql.Source, errsql.Message));

                if (errsql.Number == -2)
                {
                    nombreArchivo = Utilidades.GeneraNombreArchivo(nombreConsulta.ToString(), idPrestador, out rutaArchivo);
                    consultaBatch.RutaArchGenerado = rutaArchivo;
                    consultaBatch.NomArchGenerado  = nombreArchivo;
                    consultaBatch.FechaGenera      = DateTime.MinValue;
                    consultaBatch.Vigente          = false;

                    msgRta = ConsultasBatchDAO.AltaNuevaConsulta(consultaBatch);

                    throw new ApplicationException("MSG_ERROR Generando el archivo. Reingrese a la consulta en unos minutos.FIN_MSG_ERROR");
                }
                else
                {
                    throw errsql;
                }
            }
            catch (ApplicationException apperr)
            {
                log.Error(string.Format("{0}->{1}->Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), apperr.Source, apperr.Message));
                throw new ApplicationException(apperr.Message);
            }
            catch (Exception err)
            {
                log.Error(string.Format("{0}->{1}->Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), err.Source, err.Message));
                throw err;
            }
        }
示例#2
0
        public static List <Novedad> NovedadHistorica_Trae(byte opcionBusqueda, byte opcion, long prestador,
                                                           long benefCuil, byte tipoConc, int conCopp, string fecCierre,
                                                           bool generaArchivo, bool generadoAdmin, out string rutaArchivoSal)
        {
            string rutaArchivo   = string.Empty;
            string nombreArchivo = string.Empty;

            rutaArchivoSal = string.Empty;
            string msgRta = string.Empty;

            ConsultaBatch consultaBatch = new ConsultaBatch();

            consultaBatch.NombreConsulta        = ConsultaBatch.enum_ConsultaBatch_NombreConsulta.NOVEDADESLIQUIDADAS;
            consultaBatch.IDPrestador           = prestador;
            consultaBatch.CriterioBusqueda      = opcionBusqueda;
            consultaBatch.OpcionBusqueda        = opcion;
            consultaBatch.PeriodoCons           = fecCierre.ToString();
            consultaBatch.UnConceptoLiquidacion = new ConceptoLiquidacion(conCopp, string.Empty, new TipoConcepto(tipoConc, string.Empty));
            consultaBatch.NroBeneficio          = benefCuil;
            consultaBatch.GeneradoAdmin         = generadoAdmin;
            consultaBatch.FechaDesde            = consultaBatch.FechaHasta = null;

            try
            {
                if (opcion != 1 || generaArchivo == true)
                {
                    msgRta = ConsultasBatchDAO.ExisteConsulta(consultaBatch);
                    if (!string.IsNullOrEmpty(msgRta))
                    {
                        throw new ApplicationException("MSG_ERROR" + msgRta + "FIN_MSG_ERROR");
                    }
                }

                List <Novedad> listNovedades = NovedadHistorica_Trae_Consulta(opcionBusqueda, opcion, prestador,
                                                                              benefCuil, tipoConc, conCopp, fecCierre);

                //if ((ds.Tables[0].Rows.Count != 0) && (opcion != 1 || GeneraArchivo == true))
                if (listNovedades.Count > 0 && (opcion != 1 || generaArchivo == true))
                {
                    int maxCantidad = Settings.MaxCantidadRegistros();

                    if (listNovedades.Count >= maxCantidad || generaArchivo == true)
                    {
                        nombreArchivo  = Utilidades.GeneraNombreArchivo(consultaBatch.NombreConsulta.ToString(), prestador, out rutaArchivo);
                        rutaArchivoSal = Path.Combine(rutaArchivo, nombreArchivo);

                        StreamWriter sw        = new StreamWriter(rutaArchivoSal, false, System.Text.Encoding.UTF8);
                        string       separador = Settings.DelimitadorCampo();

                        foreach (Novedad oNovedad in listNovedades)
                        {
                            StringBuilder linea = new StringBuilder();

                            linea.Append(oNovedad.IdNovedad.ToString() + separador);
                            linea.Append(oNovedad.UnBeneficiario.IdBeneficiario.ToString() + separador);
                            linea.Append(oNovedad.UnBeneficiario.ApellidoNombre.ToString() + separador);
                            linea.Append(oNovedad.FechaNovedad.ToString("dd/MM/yyyy HH:mm:ss") + separador);
                            linea.Append(oNovedad.UnTipoConcepto.IdTipoConcepto.ToString() + separador);
                            linea.Append(oNovedad.UnTipoConcepto.DescTipoConcepto.ToString() + separador);
                            linea.Append(oNovedad.UnConceptoLiquidacion.CodConceptoLiq.ToString() + separador);
                            linea.Append(oNovedad.UnConceptoLiquidacion.DescConceptoLiq.ToString() + separador);
                            linea.Append(oNovedad.ImporteTotal.ToString().Replace(",", ".") + separador);
                            linea.Append(oNovedad.CantidadCuotas.ToString() + separador);
                            linea.Append(oNovedad.Porcentaje.ToString().Replace(",", ".") + separador);
                            linea.Append(oNovedad.ImporteCuota.ToString().Replace(",", ".") + separador);
                            linea.Append(oNovedad.NroCuotaLiquidada.ToString() + separador);
                            linea.Append(oNovedad.ImporteALiquidar.ToString() + separador);
                            linea.Append(oNovedad.ImporteLiquidado.ToString() + separador);
                            linea.Append(oNovedad.Comprobante.ToString() + separador);
                            linea.Append(oNovedad.MAC.ToString() + separador);
                            linea.Append(oNovedad.UnAuditoria.Usuario.ToString());
                            linea.Append(oNovedad.Stock.ToString());

                            sw.WriteLine(linea.ToString());
                        }
                        sw.Close();

                        Utilidades.ComprimirArchivo(rutaArchivo, nombreArchivo);
                        Utilidades.BorrarArchivo(rutaArchivoSal);
                        nombreArchivo = nombreArchivo + ".zip";
                        consultaBatch.RutaArchGenerado = rutaArchivo;
                        consultaBatch.NomArchGenerado  = nombreArchivo;
                        consultaBatch.FechaGenera      = DateTime.Now;
                        consultaBatch.Vigente          = true;

                        msgRta = ConsultasBatchDAO.AltaNuevaConsulta(consultaBatch);

                        if (!string.IsNullOrEmpty(msgRta))
                        {
                            msgRta = "MSG_ERROR" + msgRta + "FIN_MSG_ERROR";
                            throw new ApplicationException(msgRta);
                        }

                        /* Se instacia el objeto para que no muestre los
                         * registros y pueda ver solo el archivo generado. */
                        listNovedades = new List <Novedad>();
                    }
                }

                return(listNovedades);
            }
            catch (SqlException errsql)
            {
                log.Error(string.Format("{0}->{1}->Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), errsql.Source, errsql.Message));

                if (errsql.Number == -2)
                {
                    nombreArchivo = Utilidades.GeneraNombreArchivo(consultaBatch.NombreConsulta.ToString(), prestador, out rutaArchivo);
                    consultaBatch.NomArchGenerado  = nombreArchivo;
                    consultaBatch.RutaArchGenerado = rutaArchivo;
                    consultaBatch.FechaGenera      = DateTime.MinValue;
                    consultaBatch.Vigente          = false;

                    msgRta = ConsultasBatchDAO.AltaNuevaConsulta(consultaBatch);

                    throw new ApplicationException("MSG_ERROR Generando el archivo. Reingrese a la consulta en unos minutos.FIN_MSG_ERROR");
                }
                else
                {
                    throw errsql;
                }
            }
            catch (ApplicationException apperr)
            {
                log.Error(string.Format("{0}->{1}->Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), apperr.Source, apperr.Message));
                throw new ApplicationException(apperr.Message);
            }
            catch (Exception err)
            {
                log.Error(string.Format("{0}->{1}->Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), err.Source, err.Message));
                throw err;
            }
            finally
            {
            }
        }
示例#3
0
        public static List <NovedadCaratulada> Novedades_Caratuladas_Traer(ConsultaBatch.enum_ConsultaBatch_NombreConsulta nombreConsulta,
                                                                           long idPrestador, DateTime?Fecha_Recepcion_desde, DateTime?Fecha_Recepcion_hasta, enum_EstadoCaratulacion?idEstado,
                                                                           int conErrores, long?id_Beneficiario,
                                                                           bool generaArchivo, bool generadoAdmin, out string rutaArchivoSal)
        {
            string rutaArchivo   = string.Empty;
            string nombreArchivo = string.Empty;

            rutaArchivoSal = string.Empty;
            string        msgRta        = string.Empty;
            ConsultaBatch consultaBatch = new ConsultaBatch();

            consultaBatch.IDPrestador            = idPrestador;
            consultaBatch.NombreConsulta         = nombreConsulta;
            consultaBatch.NroBeneficio           = id_Beneficiario.HasValue ? id_Beneficiario.Value : 0;
            consultaBatch.FechaDesde             = Fecha_Recepcion_desde;
            consultaBatch.FechaHasta             = Fecha_Recepcion_hasta;
            consultaBatch.GeneradoAdmin          = generadoAdmin;
            consultaBatch.IdEstado_Documentacion = (int?)idEstado;

            try
            {
                if (generaArchivo == true)
                {
                    msgRta = ConsultasBatchDAO.ExisteConsulta(consultaBatch);
                    if (!string.IsNullOrEmpty(msgRta))
                    {
                        throw new ApplicationException("MSG_ERROR" + msgRta + "FIN_MSG_ERROR");
                    }
                }

                List <NovedadCaratulada> listNovedades = Traer_Caratulacion(idPrestador, Fecha_Recepcion_desde, Fecha_Recepcion_hasta, conErrores, id_Beneficiario, (int?)idEstado);

                if (listNovedades.Count > 0 && generaArchivo)
                {
                    int maxCantidad = Settings.MaxCantidadRegistros();

                    if (listNovedades.Count >= maxCantidad || generaArchivo)
                    {
                        nombreArchivo  = Utilidades.GeneraNombreArchivo(nombreConsulta.ToString(), idPrestador, out rutaArchivo);
                        rutaArchivoSal = Path.Combine(rutaArchivo, nombreArchivo);
                        StreamWriter sw        = new StreamWriter(rutaArchivoSal, false, Encoding.UTF8);
                        string       separador = Settings.DelimitadorCampo();

                        foreach (NovedadCaratulada oNovedad in listNovedades)
                        {
                            StringBuilder linea = new StringBuilder();

                            linea.Append(oNovedad.NroExpediente.ToString() + separador);
                            linea.Append(oNovedad.novedad.IdNovedad.ToString() + separador);
                            linea.Append(oNovedad.FInicioAfjp.ToString() + separador);
                            linea.Append(oNovedad.novedad.UnConceptoLiquidacion.CodConceptoLiq.ToString() + separador);
                            linea.Append(oNovedad.novedad.UnBeneficiario.IdBeneficiario.ToString() + separador);
                            linea.Append(oNovedad.novedad.UnBeneficiario.ApellidoNombre.ToString() + separador);
                            linea.Append(oNovedad.novedad.FechaNovedad.ToString() + separador);
                            linea.Append(oNovedad.Error.ToString() + separador);
                            linea.Append(oNovedad.idEstadoCaratulacion.ToString());

                            sw.WriteLine(linea.ToString());
                        }
                        sw.Close();

                        Utilidades.ComprimirArchivo(rutaArchivo, nombreArchivo);
                        Utilidades.BorrarArchivo(rutaArchivoSal);
                        nombreArchivo = nombreArchivo + ".zip";

                        consultaBatch.OpcionBusqueda   = byte.Parse(conErrores.ToString());
                        consultaBatch.RutaArchGenerado = rutaArchivo;
                        consultaBatch.NomArchGenerado  = nombreArchivo;
                        consultaBatch.FechaGenera      = DateTime.Now;
                        consultaBatch.Vigente          = true;

                        //  conErrores.HasValue? conErrores.Value ? 1 : 0 : 2 --> el valor=2 es para cuando seleccione todos en el combo 'Con errores'
                        msgRta = ConsultasBatchDAO.AltaNuevaConsulta(consultaBatch);
                        if (!string.IsNullOrEmpty(msgRta))
                        {
                            msgRta = "MSG_ERROR" + msgRta + "FIN_MSG_ERROR";
                            throw new ApplicationException(msgRta);
                        }

                        /* Se instacia el objeto para que no muestre los
                         * registros y pueda ver solo el archivo generado. */
                        listNovedades = new List <NovedadCaratulada>();
                    }
                }

                return(listNovedades);
            }
            catch (SqlException errsql)
            {
                if (errsql.Number == -2)
                {
                    // timeout
                    log.Error(string.Format("{0}->{1}-> Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), errsql.Source, errsql.Message));
                    nombreArchivo = Utilidades.GeneraNombreArchivo(nombreConsulta.ToString(), idPrestador, out rutaArchivo);
                    consultaBatch.OpcionBusqueda   = byte.Parse(conErrores.ToString());
                    consultaBatch.NomArchGenerado  = nombreArchivo;
                    consultaBatch.RutaArchGenerado = rutaArchivo;
                    consultaBatch.FechaGenera      = DateTime.MinValue;
                    consultaBatch.Vigente          = false;

                    msgRta = ConsultasBatchDAO.AltaNuevaConsulta(consultaBatch);

                    throw new ApplicationException("MSG_ERROR Generando el archivo. Reingrese a la consulta en unos minutos.FIN_MSG_ERROR");
                }
                else
                {
                    throw errsql;
                }
            }
            catch (ApplicationException apperr)
            {
                throw new ApplicationException(apperr.Message);
            }
            catch (Exception ex)
            {
                log.Error(string.Format("{0}->{1}-> Error:{2}->{3}", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod(), ex.Source, ex.Message));
                throw ex;
            }
        }