Example #1
0
        public int cantidadDeMesesCon(FechaMensual fecha)
        {
            int acum;
            int anioAux;

            if (anio == fecha.getAnio())
            {
                return(fecha.getMes() - mes + 1);
            }
            else
            {
                anioAux = anio + 1;
                acum    = 12 - mes + 1;
                while (anioAux <= fecha.getAnio())
                {
                    if (fecha.getAnio() == anioAux)
                    {
                        acum = acum + fecha.getMes();
                    }
                    else
                    {
                        acum = acum + 12;
                    }
                    anioAux++;
                }
                return(acum);
            }
        }
Example #2
0
 public bool esMenorQue(FechaMensual fecha)
 {
     if ((anio < fecha.getAnio()) || ((anio == fecha.getAnio()) && (mes < fecha.getMes())))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #3
0
        private void validoDatos(FechaMensual desde, FechaMensual hasta)
        {
            //ME FIJO SI LA FECHA DESDE ES MENOS Q LA FECHA HASTA Y LAS FECHAS TENGAS MESES VALIDOS

            if (desde.esMensualNulo())
            {
                throw new NoValida("Fecha desde invalida");
            }
            if (hasta.esMensualNulo())
            {
                throw new NoValida("Fecha hasta invalida");
            }
            if ((!desde.esMenorQue(hasta)))
            {
                throw new NoValida("Rango de mensuales incorrecto");
            }
        }
Example #4
0
        /*public long getIdPrestador()
         * {
         *      return idPrestador;
         * }
         *
         * private void setIdPrestador(long idPrestador)
         * {
         *      this.idPrestador=idPrestador;
         * }*/

        public bool verDisponible(long idPrestador, long idBeneficiario, double monto, int mensualDesde, int mensualHasta)
        {
            string       resultado;
            int          cuotas;
            double       importe;
            FechaMensual desde = new FechaMensual(mensualDesde);
            FechaMensual hasta = new FechaMensual(mensualHasta);
            //Creo un objeto tipo novedad para reutilizar el codigo ya existente de verificacion de disponibilidad


            Novedad_Trans nov = new Novedad_Trans();

            try
            {
                //VALIDO LOS DATOS INGRESADOS
                validoDatos(desde, hasta);

                //SACO LA CANTIDAD DE CUOTAS POR LA DIFERENCIAS DE LOS MENSUALES, EN MESES
                cuotas  = desde.cantidadDeMesesCon(hasta);
                importe = monto / cuotas;

                //El metodo de verificacion de disponibilidad retorna un string informando el resultado
                resultado = nov.CtrolAlcanza(idBeneficiario, importe, idPrestador, 0);


                if (resultado == String.Empty)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (NoValida e)
            {
                //RETORNO MENSAJE DE ERROR
                log.Error(string.Format("{0}->{1} ", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod()));
                throw e;
            }
        }
Example #5
0
        public DataSet buscoNovedadesPorFechas(long idPrestador, int mensual)
        {
            Conexion      objCnn = new Conexion();
            SqlConnection objCon = new SqlConnection();

            SqlParameter[] objPar    = new SqlParameter[2];
            DataSet        novedades = new DataSet();
            FechaMensual   fecha     = new FechaMensual(mensual);

            try
            {
                if (fecha.esMensualNulo())
                {
                    throw new NoValida("Mensual incorrecto");
                }
                objCon          = objCnn.Conectar();
                objPar[0]       = new SqlParameter("@idPrestador", SqlDbType.BigInt);
                objPar[0].Value = idPrestador;
                objPar[1]       = new SqlParameter("@mensual", SqlDbType.Int);
                objPar[1].Value = mensual;

                //RETORNO UN DATASET CONTENIENDO TODAS LAS NOVEDADES ACTIVAS EN EL MENSUAL DEL PARAMETRO
                novedades = SqlHelper.ExecuteDataset(objCnn.ConectarString(), CommandType.StoredProcedure, "BuscoNovedadPorFechas_EntidadesPrivadas", objPar);
                return(novedades);
            }
            catch (NoValida e)
            {
                //RETORNO MENSAJE DE ERROR
                throw e;
            }
            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
            {
                objCon.Dispose();
                objCnn = null;
            }
        }
Example #6
0
        public void cancelarNovedad(long idPrestador, long nroDeTransaccion, long idBeneficiario, int mensualHasta)
        {
            Conexion      objCnn = new Conexion();
            SqlConnection objCon = new SqlConnection();

            SqlParameter [] objPar = new SqlParameter[1];
            FechaMensual    ultimoMensual;
            FechaMensual    hasta = new FechaMensual(mensualHasta);

            try
            {
                objCon          = objCnn.Conectar();
                objPar[0]       = new SqlParameter("@transaccion", SqlDbType.BigInt);
                objPar[0].Value = nroDeTransaccion;

                //DOY DE BAJA EL REGISTRO EN LA BASE DE DATOS
                SqlHelper.ExecuteNonQuery(objCnn.ConectarString(), CommandType.StoredProcedure, "Novedades_BAJA_EntidadesPrivadas", objPar);
                //AVERIGUO EL ULTIMO MENSUAL ACTIVO CARGADO EN LA BASE, SI NO HAY RETORNO 0
                ultimoMensual = new FechaMensual(this.ultimoMensualDeInhibicion(idPrestador, idBeneficiario));
                //LAMO AL COMTI PARA LA TRANSACCION CICS SOLO SI HAY OTRA NOVEDAD CON MENSUAL HASTA MENOR
                if (ultimoMensual.esMenorQue(hasta))
                {
                    //LAMO AL COMTI PARA DER DE BAJA EL ACTUAL
                    //ME FIJO SI HAY UN MENSUAL ANTERIOR ACTIVO CARGADO EN LA BASE
                    if (!ultimoMensual.esMensualNulo())
                    {
                        //LLAMO AL COMTI PARA DAR EL ALTA CON EL MENSUAL ULTIMOMENSUAL, ULTIMO MENSUAL ACTIVO CARGADO EN LA BASE DE DATOS
                    }
                }
            }
            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
            {
                objCon.Dispose();
                objCnn = null;
            }
        }
Example #7
0
        public String[] altaDeNovedad(long idPrestador, long idBeneficiario, double monto, int mensualDesde, int mensualHasta,
                                      string IP, string usuario)
        {
            FechaMensual desde = new FechaMensual(mensualDesde);
            FechaMensual hasta = new FechaMensual(mensualHasta);
            // ME FIJO EL ULTIMO MENSUAL DE INHIBICION CARGADO, CASO DE Q NO TENGA NINGUNO RETORNA 0
            FechaMensual  ultimoHasta = new FechaMensual(this.ultimoMensualDeInhibicion(idPrestador, idBeneficiario));
            Conexion      objCnn      = new Conexion();
            SqlConnection objCon      = new SqlConnection();

            SqlParameter [] objPar  = new SqlParameter[9];
            String[]        retorno = new String[2];
            //string MAC;

            try
            {
                //VALIDO LOS DATOS INGRESADOS
                validoDatos(desde, hasta);
                if (this.verDisponible(idPrestador, idBeneficiario, monto, mensualDesde, mensualHasta))
                {
                    //genero la mac ****FALTA*****

                    objCon          = objCnn.Conectar();
                    objPar[0]       = new SqlParameter("@IdPrestador", SqlDbType.BigInt);
                    objPar[0].Value = idPrestador;

                    objPar[1]       = new SqlParameter("@IdBeneficiario", SqlDbType.BigInt);
                    objPar[1].Value = idBeneficiario;

                    objPar[2]       = new SqlParameter("@monto", SqlDbType.Decimal);
                    objPar[2].Value = monto;

                    objPar[3]       = new SqlParameter("@desde", SqlDbType.BigInt);
                    objPar[3].Value = mensualDesde;

                    objPar[4]       = new SqlParameter("@hasta", SqlDbType.BigInt);
                    objPar[4].Value = mensualHasta;

                    objPar[5]       = new SqlParameter("@IP", SqlDbType.VarChar, 20);
                    objPar[5].Value = IP;

                    objPar[6]       = new SqlParameter("@Usuario", SqlDbType.VarChar, 50);
                    objPar[6].Value = usuario;

                    objPar[7]       = new SqlParameter("@MAC", SqlDbType.VarChar, 100);
                    objPar[7].Value = "";

                    objPar[8]           = new SqlParameter("@IdNovedad", SqlDbType.BigInt);
                    objPar[8].Direction = ParameterDirection.Output;
                    objPar[8].Value     = 0;

                    //DOY DE ALTA EL REGISTRO EN LA BASE DE DATOS
                    SqlHelper.ExecuteNonQuery(objCnn.ConectarString(), CommandType.StoredProcedure, "Novedades_A_EntidadesPrivadas", objPar);

                    //LLAMO AL COMTI PARA LA TRANSACCION CICS SOLO SI EL MENSUAL HASTA ES MAYOR AL ULTIMO MENSUAL CARGADO
                    if (ultimoHasta.esMenorQue(hasta))
                    {
                        //DOY ALTA EN EL COMTI CON EL MENSUAL Q ME VINO POR PARAMETRO
                    }

                    //RETORNO EL NUMERO DE TRANSACCION Y LA MAC
                    retorno[0] = (string)objPar[8].Value.ToString();
                    retorno[1] = (string)"";
                    return(retorno);
                }
                else
                {
                    log.Error(string.Format("{0}->{1} ", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod()));
                    throw new NoValida("Afectacion disponible insuficiente");
                }
            }
            catch (NoValida e)
            {
                //RETORNO MENSAJE DE ERROR
                log.Error(string.Format("{0}->{1} ", DateTime.Now, System.Reflection.MethodBase.GetCurrentMethod()));
                throw e;
            }
            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
            {
                objCon.Dispose();
                objCnn = null;
            }
        }