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); } }
public bool esMenorQue(FechaMensual fecha) { if ((anio < fecha.getAnio()) || ((anio == fecha.getAnio()) && (mes < fecha.getMes()))) { return(true); } else { return(false); } }
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"); } }
/*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; } }
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; } }
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; } }
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; } }