Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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");
            }
        }
Ejemplo n.º 3
0
        /// <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);
            }
        }
Ejemplo n.º 4
0
        /// <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");
            }
        }
Ejemplo n.º 5
0
        /// <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");
            }
        }
Ejemplo n.º 6
0
        /// <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");
            }
        }
Ejemplo n.º 7
0
        /// <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");
            }
        }
Ejemplo n.º 8
0
        /// <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();
            }
        }
Ejemplo n.º 9
0
        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();
                }
            }
        }