/// <summary> /// Valida si un nivel de servicio se encuentra registrado /// </summary> /// <param name="t">Objeto PromedioRemanenteATM con los datos del Nivel</param> /// <returns></returns> public bool verificarPromedioRemanenteATM(ref PromedioRemanenteATM t) { bool existe = false; SqlCommand comando = _manejador.obtenerProcedimiento("SelectExistePromedioRemanenteATM"); SqlDataReader datareader = null; _manejador.agregarParametro(comando, "@numero", t.ID, SqlDbType.SmallInt); try { datareader = _manejador.ejecutarConsultaDatos(comando); if (datareader.Read()) { int id = (int)datareader["pk_ID"]; existe = id != t.ID; t.ID = id; } comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorVerificarATMDuplicado"); } return(existe); }
public frmAdministracionPromedioRemanenteATM() { InitializeComponent(); _nivel = _mantenimiento.listarPromedioRemanenteATM(); if (_nivel != null) { nudMonto.Value = _nivel.Monto; nudMontoQuincena.Value = _nivel.MontoQuincena; nudMontoDolares.Value = _nivel.MontoDolares; nudMontoDolaresQuincena.Value = _nivel.MontoQuincenaDolares; } }
/// <summary> /// Clic en el botón de guardar. /// </summary> private void btnGuardar_Click(object sender, EventArgs e) { // Verificar que se hayan seleccionado los datos try { decimal promedio = (decimal)nudMonto.Value; decimal promedio_quincea = (decimal)nudMontoQuincena.Value; decimal promedio_dolares = (decimal)nudMontoDolares.Value; decimal promedio_quincena_dolares = (decimal)nudMontoDolaresQuincena.Value; // Verificar si la nivel ya está registrada if (_nivel.ID == 0) { // Agregar la nivel if (Mensaje.mostrarMensajeConfirmacion("MensajePromedioRemanenteATMRegistro") == DialogResult.Yes) { PromedioRemanenteATM nueva = new PromedioRemanenteATM(monto: promedio, montoquincena: promedio_quincea, montodolares: promedio_dolares, montodolaresq: promedio_quincena_dolares); _mantenimiento.agregarRemanenteDescargaATM(ref nueva); Mensaje.mostrarMensaje("MensajePromedioRemanenteATMConfirmacionRegistro"); this.Close(); } } else { // Actualizar los datos de la nivel PromedioRemanenteATM copia = new PromedioRemanenteATM(monto: promedio, id: _nivel.ID, montoquincena: promedio_quincea, montodolares: promedio_dolares, montodolaresq: promedio_quincena_dolares); _mantenimiento.actualizarRemanenteATM(copia); Mensaje.mostrarMensaje("MensajePromedioRemanenteATMConfirmacionActualizacion"); this.Close(); } } catch (Excepcion ex) { ex.mostrarMensaje(); } }
/// <summary> /// Registrar un detalle de una falla /// </summary> /// <param name="s">Objeto PromedioRemanenteATM con los datos del punto de venta</param> public void agregarPromedioRemanenteATM(ref PromedioRemanenteATM p) { SqlCommand comando = _manejador.obtenerProcedimiento("InsertPromedioRemanenteATM"); _manejador.agregarParametro(comando, "@promedio_quincena", p.MontoQuincena, SqlDbType.Decimal); _manejador.agregarParametro(comando, "@promedio", p.Monto, SqlDbType.Decimal); _manejador.agregarParametro(comando, "@promedio_dolares_quincena", p.MontoQuincenaDolares, SqlDbType.Decimal); _manejador.agregarParametro(comando, "@promedio_dolares", p.MontoDolares, SqlDbType.Decimal); try { int id_nuevo = (int)_manejador.ejecutarEscalar(comando); p.ID = (int)id_nuevo; comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorPromedioRemanenteATMActualizacion"); } }
/// <summary> /// Actualizar los datos de un detalle de una falla /// </summary> /// <param name="s">Objeto PromedioRemanenteATM con los datos del punto de venta</param> public void actualizarPromedioRemanenteATM(PromedioRemanenteATM p) { SqlCommand comando = _manejador.obtenerProcedimiento("UpdatePromedioRemanenteATM"); _manejador.agregarParametro(comando, "@promedio_quincena", p.MontoQuincena, SqlDbType.Decimal); _manejador.agregarParametro(comando, "@promedio", p.Monto, SqlDbType.Decimal); _manejador.agregarParametro(comando, "@promedio_dolares_quincena", p.MontoQuincenaDolares, SqlDbType.Decimal); _manejador.agregarParametro(comando, "@promedio_dolares", p.MontoDolares, SqlDbType.Decimal); _manejador.agregarParametro(comando, "@promediodescarga", p.ID, SqlDbType.Int); try { _manejador.ejecutarEscalar(comando); comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorPromedioRemanenteATMActualizacion"); } }
/// <summary> /// Obtener los detalle de una falla . /// </summary> /// <param name="c">Falla para el cual se obtiene la lista de detalles de falla</param> public PromedioRemanenteATM obtenerPromedioRemanenteATM() { SqlCommand comando = _manejador.obtenerProcedimiento("SelectPromedioRemanenteATM"); SqlDataReader datareader = null; PromedioRemanenteATM niveles = new PromedioRemanenteATM(); try { datareader = _manejador.ejecutarConsultaDatos(comando); if (datareader.Read()) { int id = (int)datareader["ID_Promedio"]; decimal monto = (decimal)datareader["Monto"]; decimal monto_quincena = (decimal)datareader["MontoQuincena"]; decimal montodolares = (decimal)datareader["MontoDolares"]; decimal montodolares_quincena = (decimal)datareader["MontoDolaresQuincena"]; PromedioRemanenteATM punto = new PromedioRemanenteATM(id: id, monto: monto, montoquincena: monto_quincena, montodolares: montodolares, montodolaresq: montodolares_quincena); niveles = punto; } comando.Connection.Close(); return(niveles); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorDatosConexion"); } }
public frmAdministracionPromedioRemanenteATM(PromedioRemanenteATM promedio) { InitializeComponent(); }
/// <summary> /// Clic en el botón de actualizar. /// </summary> private void btnActualizar_Click(object sender, EventArgs e) { try { ATM atm = cboATM.SelectedIndex == 0 ? null : (ATM)cboATM.SelectedItem; EmpresaTransporte transportadora = !chkProgramados.Checked || cboTransportadora.SelectedIndex == 0 ? null : (EmpresaTransporte)cboTransportadora.SelectedItem; DateTime fecha = dtpFecha.Value; decimal porcentaje = nudVariacion.Value / 100; bool programados = chkProgramados.Checked; bool cargados = chkCargados.Checked; DataTable datos = _coordinacion.listarRegistrosRemanentesATMsPorDenominacion(atm, fecha, transportadora, programados, cargados); dgvRemanentes.DataSource = datos; dgvRemanentes.AutoResizeColumns(); dgvTotales.Rows.Clear(); dgvTotales.Columns.Clear(); dgvEsperados.Rows.Clear(); dgvEsperados.Columns.Clear(); if (datos.Rows.Count == 0) { return; } foreach (DataGridViewColumn columna in dgvRemanentes.Columns) { if (columna.ValueType == typeof(decimal)) { dgvTotales.Columns.Add("Total " + columna.Name, columna.HeaderText); dgvEsperados.Columns.Add("Esperado " + columna.Name, columna.HeaderText); columna.DefaultCellStyle.Format = "N2"; } } dgvTotales.Rows.Add(); dgvEsperados.Rows.Add(); foreach (DataGridViewColumn columna in dgvTotales.Columns) { decimal total = 0; decimal esperado = 0; if (columna.Index < 6) { total = (decimal)datos.Compute("Sum([" + columna.HeaderText + "])", ""); esperado = (decimal)datos.Compute("Sum([" + columna.HeaderText + "]) - " + "Sum([" + columna.HeaderText + "]) * " + porcentaje.ToString().Replace(",", "."), ""); } else if (columna.Index > 5) { //total = (decimal)datos.Compute("Sum([" + columna.HeaderText + "])", ""); //esperado = //(decimal)datos.Compute("Sum([" + columna.HeaderText + "]) - " + // "Sum([" + columna.HeaderText + "]) * " + // porcentaje.ToString().Replace(",", "."), ""); foreach (DataGridViewRow row in dgvRemanentes.Rows) { // // Se selecciona la celda del checkbox // DataGridViewCheckBoxCell cellSelecion = row.Cells["Cargado"] as DataGridViewCheckBoxCell; // // Se valida si esta checkeada // //if (Convert.ToBoolean(cellSelecion.Value)) //{ // // Se valida si el usuario ingreso un valor en la celda de pedido // // decimal pedido = 0; //if (!decimal.TryParse(Convert.ToString(row.Cells[columna.HeaderText].Value), out pedido)) // continue; // // Se realiza el calculo para la fila, asignado el total en la celda "Total" // de la misma // decimal totalFila = Convert.ToDecimal(row.Cells[columna.HeaderText].Value); //*pedido; // row.Cells["Total"].Value = totalFila; // // Se aumula el total de cada una de las filas // total += totalFila; esperado += (totalFila - (totalFila * porcentaje)); // dgvTotales[columna.Index, 0].Value = totalFila; //} } } else { total = (decimal)datos.Compute("Sum([" + columna.HeaderText + "])", ""); esperado = (decimal)datos.Compute("Sum([" + columna.HeaderText + "])", ""); } dgvTotales[columna.Index, 0].Value = total; dgvEsperados[columna.Index, 0].Value = esperado; } // Calcular la variación decimal total_descargado_colones = (decimal)dgvTotales[2, 0].Value; decimal total_descargado_dolares = (decimal)dgvTotales[3, 0].Value; decimal total_esperado_colones = (decimal)datos.Compute("Sum([Esperado CRC])", "[Descargado] = True"); decimal total_esperado_dolares = (decimal)datos.Compute("Sum([Esperado USD])", "[Descargado] = True"); decimal total_descargado_esperado_colones = (decimal)dgvEsperados[4, 0].Value; decimal total_descargado_esperado_dolares = (decimal)dgvEsperados[5, 0].Value; decimal diferencia_colones = total_descargado_colones - total_esperado_colones; decimal diferencia_dolares = total_descargado_dolares - total_esperado_dolares; decimal porcentaje_diferencia_colones = (diferencia_colones / total_esperado_colones) * 100; decimal porcentaje_diferencia_dolares = (diferencia_dolares / total_esperado_dolares) * 100; txtVariacionColones.Text = porcentaje_diferencia_colones.ToString("N2"); txtVariacionDolares.Text = porcentaje_diferencia_dolares.ToString("N2"); PromedioRemanenteATM nuevo = _mantenimiento.listarPromedioRemanenteATM(); if (chkQuincena.Checked) { if (total_descargado_esperado_colones > nuevo.MontoQuincena || total_descargado_esperado_dolares > nuevo.MontoQuincenaDolares) { lblAviso.Visible = true; } else { lblAviso.Visible = false; } } else { if (total_descargado_esperado_colones > nuevo.Monto || total_descargado_esperado_dolares > nuevo.MontoDolares) { lblAviso.Visible = true; } else { lblAviso.Visible = false; } } } catch (Excepcion ex) { ex.mostrarMensaje(); } }