/// <summary> /// Verificar si existe un registro de montos remanentes para una ATM en un día específico. /// </summary> /// <param name="r">Objeto MontoRemanentesATM con los datos del monto a verificar</param> /// <returns>Valor que indica si el registro existe</returns> public bool verificarRegistroRemanentesATMCompletos(ref MontoRemanenteATM r) { bool existe = false; SqlCommand comando = _manejador_sql.obtenerProcedimiento("SelectRegistroRemanentesATMCompletos"); SqlDataReader datareader = null; _manejador_sql.agregarParametro(comando, "@atm", r.ATM, SqlDbType.SmallInt); _manejador_sql.agregarParametro(comando, "@fecha", r.FechaActual, SqlDbType.Date); try { datareader = _manejador_sql.ejecutarConsultaDatos(comando); if (datareader.Read()) { existe = true; int id = (int)datareader["pk_ID"]; // bool cargado = (bool)datareader["Cargado"]; r.ID = id; // r.Cargado = cargado; } comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorDatosConexion"); } return(existe); }
/// <summary> /// Guardar en el sistema el registro de remanentes de un ATM. /// </summary> /// <param name="r">Objeto RegistroRemanentesATM con los datos del registro</param> public void agregarRegistroRemanentesATMCompletos(ref MontoRemanenteATM r) { SqlCommand comando = _manejador_sql.obtenerProcedimiento("InsertRegistroATMsCompletos"); _manejador_sql.agregarParametro(comando, "@fk_ID_ATM", r.ID, SqlDbType.SmallInt); _manejador_sql.agregarParametro(comando, "@Fecha_Actual", r.FechaActual, SqlDbType.Date); _manejador_sql.agregarParametro(comando, "@Fecha_Ultima_Transaccion", r.FechaUltimaTransaccion, SqlDbType.Date); _manejador_sql.agregarParametro(comando, "@Localizacion", r.Localizacion, SqlDbType.NVarChar); _manejador_sql.agregarParametro(comando, "@Den_Gav1", r.Denominacion1, SqlDbType.Int); _manejador_sql.agregarParametro(comando, "@Monto_Gav1", r.Montog1, SqlDbType.Decimal); _manejador_sql.agregarParametro(comando, "@Den_Gav2", r.Denominacion2, SqlDbType.Int); _manejador_sql.agregarParametro(comando, "@Monto_Gav2", r.Montog2, SqlDbType.Decimal); _manejador_sql.agregarParametro(comando, "@Den_Gav3", r.Denominacion3, SqlDbType.Int); _manejador_sql.agregarParametro(comando, "@Monto_Gav3", r.Montog3, SqlDbType.Decimal); _manejador_sql.agregarParametro(comando, "@Den_Gav4", r.Denominacion4, SqlDbType.Int); _manejador_sql.agregarParametro(comando, "@Monto_Gav4", r.Montog4, SqlDbType.Decimal); try { _manejador_sql.ejecutarEscalar(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorRegistroRemantentesCompletos"); } }
/// <summary> /// Leer los montos remanentes por denominación de un ATM. /// </summary> private void leerCantidadRemanenteCartucho(string codigo, decimal remanente, RegistroRemanentesATM registro, byte posicion) { Denominacion denominacion = new Denominacion(codigo: codigo.ToUpper()); _mantenimiento.verificarDenominacionCodigo(ref denominacion); if (denominacion.ID_Valido) { short cantidad_remanente = (short)remanente; MontoRemanenteATM monto = new MontoRemanenteATM(denominacion, cantidad_remanente, posicion); registro.agregarMonto(monto); } }
/// <summary> /// Eliminar el monto remanente de un ATM. /// </summary> /// <param name="m">Objeto MontoRemanenteATM con los datos del monto a eliminar</param> public void eliminarMontoRemanenteATM(MontoRemanenteATM m) { SqlCommand comando = _manejador_sql.obtenerProcedimiento("DeleteMontoRemanenteATM"); _manejador_sql.agregarParametro(comando, "@monto", m.ID, SqlDbType.Int); try { _manejador_sql.ejecutarConsultaActualizacion(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorMontoRemanenteATMActualizacion"); } }
/// <summary> /// Registrar en el sistema un monto remanente de un ATM. /// </summary> /// <param name="m">Objeto MontoRemanenteATM con los datos del monto</param> /// <param name="r">Objeto RegistroRemanentesATM con los datos del registro de remanentes del ATM</param> public void agregarMontoRemanenteATM(MontoRemanenteATM m, RegistroRemanentesATM r) { SqlCommand comando = _manejador_sql.obtenerProcedimiento("InsertMontoRemanenteATM"); _manejador_sql.agregarParametro(comando, "@denominacion", m.Denominacion, SqlDbType.TinyInt); _manejador_sql.agregarParametro(comando, "@cantidad", m.Cantidad, SqlDbType.SmallInt); _manejador_sql.agregarParametro(comando, "@posicion", m.Posicion, SqlDbType.TinyInt); _manejador_sql.agregarParametro(comando, "@registro", r, SqlDbType.Int); try { m.ID = (int)_manejador_sql.ejecutarEscalar(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorMontoRemanenteATMActualizacion"); } }
/// <summary> /// Obtener los montos remanentes para un registro de montos remanentes. /// </summary> /// <param name="r">Objeto RegistroRemanentesATM con los datos del registro</param> public void obtenerMontosRegistroRemanentesATM(ref RegistroRemanentesATM r) { SqlCommand comando = _manejador_sql.obtenerProcedimiento("SelectRegistroRemanentesATMMontos"); SqlDataReader datareader = null; _manejador_sql.agregarParametro(comando, "@registro", r, SqlDbType.Int); try { datareader = _manejador_sql.ejecutarConsultaDatos(comando); while (datareader.Read()) { int id_monto = (int)datareader["ID_Monto"]; short cantidad = (short)datareader["Cantidad"]; byte posicion = (byte)datareader["Posicion"]; byte id_denominacion = (byte)datareader["ID_Denominacion"]; Monedas moneda = (Monedas)datareader["Moneda"]; decimal valor = (decimal)datareader["Valor"]; Denominacion denominacion = new Denominacion(id: id_denominacion, valor: valor, moneda: moneda); MontoRemanenteATM monto = new MontoRemanenteATM(denominacion, cantidad, posicion, id: id_monto); r.agregarMonto(monto); } comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorDatosConexion"); } }
/// <summary> /// Registra el registro de las cargas de emergencia /// </summary> /// <param name="r">Monto Remantente con cargas de Emergencia a guardar</param> public void agregarRegistroCargasdeEmergencia(ref MontoRemanenteATM r) { SqlCommand comando = _manejador_sql.obtenerProcedimiento("InsertRegistroCargasEmergencia"); _manejador_sql.agregarParametro(comando, "@fk_ID_ATM", r.ID, SqlDbType.SmallInt); _manejador_sql.agregarParametro(comando, "@FechaActual", r.FechaActual, SqlDbType.Date); _manejador_sql.agregarParametro(comando, "@FechaUltimaTransaccion", r.FechaUltimaTransaccion, SqlDbType.Date); _manejador_sql.agregarParametro(comando, "@Localizacion", r.Localizacion, SqlDbType.VarChar); _manejador_sql.agregarParametro(comando, "@DiasdeInventario", r.DiasInventario, SqlDbType.Decimal); _manejador_sql.agregarParametro(comando, "@CargadeEmergencia", r.CargaEmergencia, SqlDbType.NChar); _manejador_sql.agregarParametro(comando, "@montoTotalColones", r.MontoTotalColones, SqlDbType.Decimal); _manejador_sql.agregarParametro(comando, "@DiasInventarioRequerido", r.DiasInventarioRequerido, SqlDbType.Decimal); try { _manejador_sql.ejecutarEscalar(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorRegistroRemantentesCompletos"); } }
/// <summary> /// Leer los montos remanentes del AS400. /// </summary> private void leerRemanentesAS400() { try { _remanentes.Clear(); DataTable datos = _coordinacion.listarRemanentesATMsCompletos(); BindingList <MontoRemanenteATM> listita = new BindingList <MontoRemanenteATM>(); DateTime fecha = DateTime.Now; foreach (DataRow fila in datos.Rows) { MontoRemanenteATM monto = new MontoRemanenteATM(); monto.ATM = new CommonObjects.ATM(); // Asignar el ATM string idatm = fila["CAJLNO"].ToString(); short nuevito; nuevito = short.Parse(idatm); monto.ID = nuevito; //string valor_numero_atm = (string)fila["CAJLNO"]; //short numero_atm = short.Parse(valor_numero_atm); // Asignar las fechas actuales y de ultima transaccion decimal decimalito = (decimal)fila["CAJPFA"]; decimal decimalitofinal = (decimal)fila["CAJFUT"]; monto.Localizacion = (string)fila["CAJLOC"]; string nuevafecha = System.Convert.ToString(decimalito); string fechafinal = System.Convert.ToString(decimalitofinal); bool fechaactual = nuevafecha.Equals("0"); bool fechafinalb = fechafinal.Equals("0"); if (fechaactual != true && fechafinalb != true) { string cambio = nuevafecha.Insert(4, "/"); nuevafecha = cambio.Insert(7, "/"); cambio = fechafinal.Insert(4, "/"); fechafinal = cambio.Insert(7, "/"); } else { nuevafecha = "01/01/0001"; fechafinal = "01/01/0001"; } monto.FechaActual = Convert.ToDateTime(nuevafecha); monto.FechaUltimaTransaccion = Convert.ToDateTime(fechafinal); CommonObjects.ATM atm = new CommonObjects.ATM(numero: nuevito); _mantenimiento.obtenerDatosATM(ref atm); string codigos = (string)fila["CAJCDI"]; RegistroRemanentesATM nuevo = new RegistroRemanentesATM(atm: atm, fecha: fecha); this.leerCantidadRemanenteCartucho(codigos[0].ToString(), (decimal)fila["CAJCB1"], nuevo, 1); this.leerCantidadRemanenteCartucho(codigos[1].ToString(), (decimal)fila["CAJCB2"], nuevo, 2); this.leerCantidadRemanenteCartucho(codigos[2].ToString(), (decimal)fila["CAJCB3"], nuevo, 3); this.leerCantidadRemanenteCartucho(codigos[3].ToString(), (decimal)fila["CAJCB4"], nuevo, 4); Denominacion denominaciong1 = new Denominacion(codigo: codigos[0].ToString().ToUpper()); Denominacion denominaciong2 = new Denominacion(codigo: codigos[1].ToString().ToUpper()); Denominacion denominaciong3 = new Denominacion(codigo: codigos[2].ToString().ToUpper()); Denominacion denominaciong4 = new Denominacion(codigo: codigos[3].ToString().ToUpper()); // Obtencion de las denominaciones con sus respectivos valores. Denominacion dtotalgaveta1 = _mantenimiento.ObtenerValorDenominacionCodigo(ref denominaciong1); Denominacion dtotalgaveta2 = _mantenimiento.ObtenerValorDenominacionCodigo(ref denominaciong2); Denominacion dtotalgaveta3 = _mantenimiento.ObtenerValorDenominacionCodigo(ref denominaciong3); Denominacion dtotalgaveta4 = _mantenimiento.ObtenerValorDenominacionCodigo(ref denominaciong4); _mantenimiento.verificarDenominacionCodigo(ref denominaciong1); _mantenimiento.verificarDenominacionCodigo(ref denominaciong2); _mantenimiento.verificarDenominacionCodigo(ref denominaciong3); _mantenimiento.verificarDenominacionCodigo(ref denominaciong4); monto.Montog1 = dtotalgaveta1.Valor * (decimal)fila["CAJCB1"]; monto.Montog2 = dtotalgaveta2.Valor * (decimal)fila["CAJCB2"]; monto.Montog3 = dtotalgaveta3.Valor * (decimal)fila["CAJCB3"]; monto.Montog4 = dtotalgaveta4.Valor * (decimal)fila["CAJCB4"]; monto.Denominacion1 = Decimal.Floor(dtotalgaveta1.Valor); monto.Denominacion2 = Decimal.Floor(dtotalgaveta2.Valor); monto.Denominacion3 = Decimal.Floor(dtotalgaveta3.Valor); monto.Denominacion4 = Decimal.Floor(dtotalgaveta4.Valor); if (monto.Denominacion1 != 20) { monto.MontoTotalColones += monto.Montog1; } else { monto.MontoTotalDolares += monto.Montog1; } if (monto.Denominacion2 != 20) { monto.MontoTotalColones += monto.Montog2; } else { monto.MontoTotalDolares += monto.Montog2; } if (monto.Denominacion3 != 20) { monto.MontoTotalColones += monto.Montog3; } else { monto.MontoTotalDolares += monto.Montog3; } if (monto.Denominacion4 != 20) { monto.MontoTotalColones += monto.Montog4; } else { monto.MontoTotalDolares += monto.Montog4; } //if (denominacion.ID_Valido) //{ // short cantidad_remanente = (short)remanente; // MontoRemanenteATM monto = new MontoRemanenteATM(denominacion, cantidad_remanente, posicion); // registro.agregarMonto(monto); //} listita.Add(monto); _remanentes.Add(monto); //CommonObjects.ATM atm = new CommonObjects.ATM(numero: nuevito); //_mantenimiento.obtenerDatosATM(ref atm); //if (atm.ID_Valido) //{ // RegistroRemanentesATM nuevo = new RegistroRemanentesATM(atm: atm, fecha: fecha); // // Asignar los remanentes de los cartuchos // string codigos = (string)fila["CAJCDI"]; // this.leerCantidadRemanenteCartucho(codigos[0].ToString(), (decimal)fila["CAJCB1"], nuevo, 1); // this.leerCantidadRemanenteCartucho(codigos[1].ToString(), (decimal)fila["CAJCB2"], nuevo, 2); // this.leerCantidadRemanenteCartucho(codigos[2].ToString(), (decimal)fila["CAJCB3"], nuevo, 3); // this.leerCantidadRemanenteCartucho(codigos[3].ToString(), (decimal)fila["CAJCB4"], nuevo, 4); // _remanentes.Add(nuevo); //} } dgvMontos.DataSource = listita; } catch (Excepcion ex) { ex.mostrarMensaje(); } }
private void btnActualizar_Click(object sender, EventArgs e) { if (ValidateMonto()) { try { //CommonObjects.ATM atm = cboATM.SelectedIndex == 0 ? // null : (CommonObjects.ATM)cboATM.SelectedItem; //this.CargarDatosAS400(); //this.GuardarDatosAS400(); //this.CargarListaCargas(); //this.GuardarCargas(); ATM atm = cboATM.SelectedIndex == 0 ? null : (ATM)cboATM.SelectedItem; EmpresaTransporte transportadora = cboTransportadora.SelectedIndex == 0 ? null : (EmpresaTransporte)cboTransportadora.SelectedItem; cboMontos.Text = "10.000.000"; DateTime fecha = dtpFecha.Value; DataTable datos = _coordinacion.listarCargasEmergencia(atm, fecha, transportadora); BindingList <MontoRemanenteATM> listita = new BindingList <MontoRemanenteATM>(); Monedas moneda = (Monedas)0; BindingList <MontosRetirosATM> retiros = _coordinacion.listarMontosRetirosATMs(moneda); ArrayList a = new ArrayList(); for (int i = 0; i < datos.Rows.Count; i++) { MontoRemanenteATM monto = new MontoRemanenteATM(); monto.Denominacion = new Denominacion(); r = datos.Rows[i]; int id = Convert.ToInt32(r["fk_ID_ATM"]); Decimal total = 0; monto.Localizacion = r["Localizacion"].ToString(); monto.ID = Convert.ToInt32(r["fk_ID_ATM"]); monto.FechaActual = Convert.ToDateTime(r["Fecha_Actual"]); monto.FechaUltimaTransaccion = Convert.ToDateTime(r["Fecha_Ultima_Transaccion"]); monto.Denominacion1 = Convert.ToDecimal(r["Den_Gav1"]); monto.Denominacion2 = Convert.ToDecimal(r["Den_Gav2"]); monto.Denominacion3 = Convert.ToDecimal(r["Den_Gav3"]); monto.Denominacion4 = Convert.ToDecimal(r["Den_Gav4"]); monto.Montog1 = Convert.ToDecimal(r["Monto_Gav1"]); monto.Montog2 = Convert.ToDecimal(r["Monto_Gav2"]); monto.Montog3 = Convert.ToDecimal(r["Monto_Gav3"]); monto.Montog4 = Convert.ToDecimal(r["Monto_Gav4"]); // monto.Denominacion.Valor nos vamos= Convert.ToDecimal(r["Den_Gav2"]); if (monto.Denominacion1 != 20) { total = monto.Montog1; } if (monto.Denominacion2 != 20) { total = total + monto.Montog2; } if (monto.Denominacion3 != 20) { total = total + monto.Montog3; } if (monto.Denominacion4 != 20) { total = total + monto.Montog4; } monto.MontoTotalColones = total; DateTime ahora = new DateTime(); ahora = fecha; string annionuevo = "30/12/" + ahora.Year; string batallasantarosa = "10/04/" + ahora.Year; string trabajador = "30/04/" + ahora.Year; string anexion = "24/07/" + ahora.Year; string virgen = "01/08/" + ahora.Year; string diamadre = "14/08/" + ahora.Year; string independencia = "14/09/" + ahora.Year; string diacultura = "11/10/" + ahora.Year; string navidad = "24/12/" + ahora.Year; // string finnnio = "31/12/" + ahora.Year; DateTime sabado2 = Convert.ToDateTime("15/06/2013"); if (ahora.DayOfWeek == DayOfWeek.Saturday || ahora.Date == Convert.ToDateTime(annionuevo) || ahora.Date == Convert.ToDateTime(trabajador) || ahora.Date == Convert.ToDateTime(anexion) || ahora.Date == Convert.ToDateTime(virgen) || ahora.Date == Convert.ToDateTime(independencia) || ahora.Date == Convert.ToDateTime(batallasantarosa) || ahora.Date == Convert.ToDateTime(diamadre) || ahora.Date == Convert.ToDateTime(diacultura) || ahora.Date == Convert.ToDateTime(navidad)) { monto.DiasInventarioRequerido = 1; } else { monto.DiasInventarioRequerido = 0; } if (DateTime.Now.Hour <= 8) { monto.DiasInventarioRequerido = monto.DiasInventarioRequerido + 1; } else if (DateTime.Now.Hour <= 11) { monto.DiasInventarioRequerido = monto.DiasInventarioRequerido + (Decimal)0.8; } else if (DateTime.Now.Hour <= 13) { monto.DiasInventarioRequerido = monto.DiasInventarioRequerido + (Decimal)0.6; } else if (DateTime.Now.Hour <= 16) { monto.DiasInventarioRequerido = monto.DiasInventarioRequerido + (Decimal)0.3; } else if (DateTime.Now.Hour <= 19) { monto.DiasInventarioRequerido = monto.DiasInventarioRequerido + (Decimal)0.2; } Decimal auxiliar = Convert.ToDecimal(r["monto_dia_semana"]); if (auxiliar != 0) { try { if (((monto.MontoTotalColones - Convert.ToDecimal(txtMontoDisminucion.Text)) / Convert.ToDecimal(r["monto_dia_semana"])) < monto.DiasInventarioRequerido) { monto.CargaEmergencia = "Si"; } else { monto.CargaEmergencia = "No"; } monto.DiasInventario = (monto.MontoTotalColones - Convert.ToDecimal(txtMontoDisminucion.Text)) / Convert.ToDecimal(r["monto_dia_semana"]); } catch (Excepcion ex2) { ex2.mostrarMensaje(); } } else { monto.CargaEmergencia = "Sin Registrar"; monto.DiasInventario = 0; } a.Add(monto); } try { _coordinacion.ImportarDatosRegistroCargasEmergencia(a, fecha); } catch (Excepcion ex) { ex.mostrarMensaje(); } if (cboMontos.Text == "5.000.000") { montomaximo = 5000000; } if (cboMontos.Text == "10.000.000") { montomaximo = 10000000; } if (cboMontos.Text == "15.000.000") { montomaximo = 15000000; } if (cboMontos.Text == "20.000.000") { montomaximo = 20000000; } if (checkCarga.Checked == true) { vip = true; } else { vip = false; } DataTable resultado = _coordinacion.listarRegistrosCargasEmergencia(atm, fecha, transportadora, montomaximo, vip); dgvRemanentes.DataSource = resultado; dgvRemanentes.AutoResizeColumns(); MessageBox.Show("El proceso de cargas ha finalizado Correctamente"); } catch (Excepcion ex) { ex.mostrarMensaje(); } } }