/// <summary> /// Asignar los cartuchos de una carga y determinar si el monto erra correcto. /// </summary> private void asignarCartuchos(Celda celda_monto, ref CargaATM carga) { decimal monto = 0; if ((decimal.TryParse(celda_monto.Valor, out monto) && monto > 0)) { Denominacion denominacion = _denominaciones[celda_monto.Columna]; short cantidad_total = (short)Math.Ceiling(monto / denominacion.Valor); double numero_cartuchos = (double)cantidad_total / (double)denominacion.Formulas_maximas; int cantidad_cartuchos = (int)Math.Ceiling(numero_cartuchos); short cantidad_cartucho = (short)(cantidad_total / cantidad_cartuchos); cantidad_cartucho = (short)(100 * (int)Math.Ceiling((decimal)(cantidad_cartucho / 100))); for (int contador = 0; contador < cantidad_cartuchos; contador++) { CartuchoCargaATM cartucho = new CartuchoCargaATM(movimiento: carga, cantidad_asignada: cantidad_cartucho, denominacion: denominacion); carga.agregarCartucho(cartucho); } switch (denominacion.Moneda) { case Monedas.Colones: carga.Monto_pedido_colones += monto; break; case Monedas.Dolares: carga.Monto_pedido_dolares += monto; break; } } }
/// <summary> /// Obtener los cartuchos de una carga de un ATM. /// </summary> /// <param name="a">Parámetro que indica si se mostrarán los cartuchos anulados</param> /// <param name="c">Objeto CargaATM con los datos de la carga</param> public void obtenerCartuchosCargaATM(ref CargaATM c, bool a) { SqlCommand comando = _manejador.obtenerProcedimiento("SelectCartuchosCargaATM"); SqlDataReader datareader = null; _manejador.agregarParametro(comando, "@anulado", a, SqlDbType.Bit); _manejador.agregarParametro(comando, "@carga", c, SqlDbType.Int); try { datareader = _manejador.ejecutarConsultaDatos(comando); while (datareader.Read()) { int id_cartucho_carga = (int)datareader["ID_Cartucho_Carga"]; short cantidad_asignada = (short)datareader["Cantidad_Asignada"]; short cantidad_carga = (short)datareader["Cantidad_Carga"]; short cantidad_descarga = (short)datareader["Cantidad_Descarga"]; string marchamo = datareader["Marchamo"] as string; bool anulado = (bool)datareader["Anulado"]; byte id_denominacion = (byte)datareader["ID_Denominacion"]; decimal valor = (decimal)datareader["Valor"]; Monedas moneda = (Monedas)datareader["Moneda"]; string codigo = (string)datareader["Codigo"]; string configuracion_diebold = (string)datareader["Configuracion_Diebold"]; string configuracion_opteva = (string)datareader["Configuracion_Opteva"]; byte? id_imagen = datareader["ID_Imagen"] as byte?; Denominacion denominacion = new Denominacion(id: id_denominacion, valor: valor, moneda: moneda, codigo: codigo, id_imagen: id_imagen, configuracion_diebold: configuracion_diebold, configuracion_opteva: configuracion_opteva); Cartucho cartucho = null; if (datareader["ID_Cartucho"] != DBNull.Value) { int id_cartucho = (int)datareader["ID_Cartucho"]; string numero = (string)datareader["Numero"]; TiposCartucho tipo = (TiposCartucho)datareader["Tipo"]; cartucho = new Cartucho(numero, id: id_cartucho, denominacion: denominacion, tipo: tipo); } CartuchoCargaATM cartucho_carga = new CartuchoCargaATM(denominacion, id: id_cartucho_carga, marchamo: marchamo, movimiento: c, cantidad_descarga: cantidad_descarga, cantidad_carga: cantidad_carga, cantidad_asignada: cantidad_asignada, cartucho: cartucho, anulado: anulado); c.agregarCartucho(cartucho_carga); } comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorDatosConexion"); } }
/// <summary> /// Leer el monto solicitado para un cartucho. /// </summary> private void leerMonto(Celda celda_monto, ref CargaATM carga) { decimal total = 0; if ((decimal.TryParse(celda_monto.Valor, out total) && total > 0)) { Denominacion denominacion = _denominaciones[celda_monto.Columna]; short cantidad = (short)(total / denominacion.Valor); CartuchoCargaATM cartucho = new CartuchoCargaATM(movimiento: carga, cantidad_asignada: cantidad, denominacion: denominacion); carga.agregarCartucho(cartucho); } }
/// <summary> /// Eliminar los datos de un cartucho de una carga de un ATM. /// </summary> /// <param name="c">Objeto CartuchoCargaATM con los datos del cartucho</param> public void eliminarCartuchoCargaATM(CartuchoCargaATM c) { SqlCommand comando = _manejador.obtenerProcedimiento("DeleteCartuchoCargaATM"); _manejador.agregarParametro(comando, "@cartucho", c, SqlDbType.Int); try { _manejador.ejecutarConsultaActualizacion(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorCartuchoCargaATMEliminacion"); } }
/// <summary> /// Actualizar la cantidad de fórmulas descargadas de un cartucho de una carga. /// </summary> /// <param name="c">Objeto CartuchoCargaATM con los datos del cartucho</param> public void actualizarCartuchoCargaATMCantidadDescarga(CartuchoCargaATM c) { SqlCommand comando = _manejador.obtenerProcedimiento("UpdateCartuchoCargaATMCantidadDescarga"); _manejador.agregarParametro(comando, "@cantidad_descarga", c.Cantidad_descarga, SqlDbType.SmallInt); _manejador.agregarParametro(comando, "@cartucho", c, SqlDbType.Int); try { _manejador.ejecutarConsultaActualizacion(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorCartuchoCargaATMActualizacion"); } }
/// <summary> /// Registrar en el sistema el cartucho de una carga. /// </summary> /// <param name="c">Objeto CartuchoCargaATM con los datos del cartucho</param> public void agregarCartuchoCargaATM(ref CartuchoCargaATM c) { SqlCommand comando = _manejador.obtenerProcedimiento("InsertCartuchoCargaATM"); _manejador.agregarParametro(comando, "@denominacion", c.Denominacion, SqlDbType.TinyInt); _manejador.agregarParametro(comando, "@cantidad_asignada", c.Cantidad_asignada, SqlDbType.SmallInt); _manejador.agregarParametro(comando, "@carga", c.Movimiento, SqlDbType.Int); try { c.ID = (int)_manejador.ejecutarEscalar(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorCartuchoCargaATMRegistro"); } }
/// <summary> /// Actualizar los datos de un cartucho. /// </summary private void actualizarCartucho(DataGridViewRow fila) { try { CartuchoCargaATM cartucho = (CartuchoCargaATM)fila.DataBoundItem; _coordinacion.actualizarCartuchoCargaATMCantidad(cartucho); _carga.Cartuchos = (BindingList <CartuchoCargaATM>)dgvMontosCarga.DataSource; BindingList <CargaATM> _carguita = new BindingList <CargaATM>(); _carguita.Add(_carga); _coordinacion.guardarDatosATMINFO(_carguita, "M"); } catch (Excepcion ex) { ex.mostrarMensaje(); } }
/// <summary> /// Se agregan cartuchos a la lista de cartuchos. /// </summary> private void dgvCartuchos_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { for (int contador = 0; contador < e.RowCount; contador++) { DataGridViewRow fila = dgvCartuchos.Rows[e.RowIndex + contador]; CartuchoCargaATM cartucho = (CartuchoCargaATM)fila.DataBoundItem; Denominacion denominacion = cartucho.Denominacion; ImageList lista = null; switch (_carga.Tipo) { case TiposCartucho.Opteva: lista = imlConfiguracionOpteva; break; case TiposCartucho.Diebold: lista = imlConfiguracionDiebold; break; } fila.Cells[Configuracion.Index].Value = lista.Images[(byte)denominacion.Id_imagen]; fila.Cells[Denominacion.Index].Value = imlBilletes.Images[(byte)denominacion.Id_imagen]; fila.Cells[Revisado.Index].Value = false; } }