Esempio n. 1
0
        /// <summary>
        /// Actualiza la secuencia para el parametro dado
        /// </summary>
        /// <param name="idsecuencia">Tipo de secuencia a actualizar</param>
        /// <returns>ID de la secuencia generada</returns>
        public int UpdateSecuencia(string idsecuencia)
        {
            int    ret        = 0;
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            try
            {
                ret = Convert.ToInt32(Dwh <int> .ExecuteScalar(
                                          this.db,
                                          Queries.Kinacu.UpdateSequence,
                                          new Dictionary <string, object>()
                {
                    { "@paramValue", idsecuencia }
                },
                                          this.databaseTransaction));
            }
            catch (Exception ex)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Exception(ex));
            }

            return(ret);
        }
Esempio n. 2
0
        /// <summary>
        /// Obtiene la información de una cuenta corriente
        /// </summary>
        /// <param name="agenciaId">ID de la agencia</param>
        /// <returns>Un objeto <c>InfoCuentaCorriente</c> que contiene la información de la cuenta corriente</returns>
        public InfoCuentaCorriente GetInfoCuentaCorriente(int agenciaId)
        {
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            InfoCuentaCorriente ret = null;

            try
            {
                ret = Dwh <InfoCuentaCorriente> .ExecuteSingle(
                    this.db,
                    Queries.Kinacu.GetInfoCuentaCorriente,
                    new Dictionary <string, object>()
                {
                    { "@id", agenciaId }
                },
                    this.databaseTransaction);
            }
            catch (Exception ex)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Exception(ex));
            }

            if (ret.Id == 0)
            {
                ret = null;
            }

            return(ret);
        }
Esempio n. 3
0
        /// <summary>
        /// Obtiene la información del depósito pendiente de BD
        /// </summary>
        /// <param name="id">ID del depósito</param>
        /// <returns>Un objeto <c>InfoDeposito</c> que contiene la información del depósito</returns>
        public InfoDeposito GetInfoDepositoPendiente(int id)
        {
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            InfoDeposito ret = null;

            try
            {
                ret = Dwh <InfoDeposito> .ExecuteSingle(
                    this.db,
                    Queries.Kinacu.GetInfoDeposito,
                    new Dictionary <string, object>()
                {
                    { "@id", id },
                    { "@estado", "PE" }
                },
                    this.databaseTransaction);
            }
            catch (Exception ex)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Exception(ex));
            }

            if (ret.Id == 0)
            {
                ret = null;
            }

            return(ret);
        }
Esempio n. 4
0
        /// <summary>
        /// Inserta un movimiento de auditoria en las tablas de Kinacu
        /// </summary>
        /// <param name="idUsuario">ID usuario</param>
        /// <param name="idUsuarioSup">ID usuario superior</param>
        /// <param name="comentario">Comentario auditoria</param>
        /// <param name="codigo">Código que relaciona la auditoria con el registro</param>
        /// <param name="dominio">Tipo de auditoria</param>
        /// <param name="subdominio">Subtipo de auditoria</param>
        /// <param name="code">Codigo error de retorno</param>
        /// <returns>ID del registro de auditoria creado</returns>
        public int InsertarMovimientoAuditoria(int idUsuario, int?idUsuarioSup, string comentario, int codigo, string dominio, string subdominio)
        {
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            int ret = 0;

            int idMovimiento = this.UpdateSecuencia(Core.cons.SecuenciaAuditoria);

            if (idMovimiento == 0)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName));
                return(ret);
            }

            Logger.CheckPointHigh(() => TagValue.New().MethodName(methodName).Message("INSERT INTO KcrTransaccion Start"));

            try
            {
                object usrIdSuperior = DBNull.Value;
                if (idUsuarioSup.HasValue)
                {
                    usrIdSuperior = idUsuarioSup.Value;
                }

                Dwh <int> .ExecuteNonQuery(
                    this.db,
                    Queries.Kinacu.InsertAuditoria,
                    new Dictionary <string, object>()
                {
                    { "@traId", idMovimiento },
                    { "@usrId", idUsuario },
                    { "@traComentario", comentario },
                    { "@usrIdSuperior", usrIdSuperior },
                    { "@iCodigo", codigo },
                    { "@traDominio", dominio },
                    { "@traSubdominio", subdominio }
                },
                    this.databaseTransaction);

                ret = idMovimiento;
            }
            catch (Exception ex)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Exception(ex));
            }

            Logger.CheckPointHigh(() => TagValue.New().MethodName(methodName).Message("INSERT INTO KcrTransaccion End"));
            return(ret);
        }
Esempio n. 5
0
        /// <summary>
        /// Obtiene la información del depósito pendiente de BD
        /// </summary>
        /// <param name="id">ID del depósito</param>
        /// <returns>Un objeto <c>InfoDeposito</c> que contiene la información del depósito</returns>
        public InfoAgente GetInfoAgente(int?id, string login = null)
        {
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            InfoAgente ret = null;

            try
            {
                string query      = string.Empty;
                object idParam    = DBNull.Value;
                object loginParam = DBNull.Value;

                if (id != null && id.HasValue)
                {
                    query   = Queries.Kinacu.GetInfoAgenteById;
                    idParam = id.Value;
                }
                else
                {
                    query = Queries.Kinacu.GetInfoAgenteByLogin;
                }

                if (!string.IsNullOrEmpty(login))
                {
                    loginParam = login;
                }

                ret = Dwh <InfoAgente> .ExecuteSingle(
                    this.db,
                    query,
                    new Dictionary <string, object>()
                {
                    { "@id", idParam },
                    { "@login", loginParam }
                },
                    this.databaseTransaction);
            }
            catch (Exception ex)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Exception(ex));
            }

            if (ret.BranchId == 0)
            {
                ret = null;
            }

            return(ret);
        }
Esempio n. 6
0
        /// <summary>
        /// Crea un movimiento de cuenta corriente con los datos especificados
        /// </summary>
        /// <param name="idAgencia">Id de la agencia</param>
        /// <param name="monto">Monto del movimiento</param>
        /// <param name="comentario">Comentario de creación</param>
        /// <param name="asignacionProducto">Es una asignación sí/no</param>
        /// <param name="ttrId">ID tipo de movimiento cuenta corriente</param>
        /// <returns>Un <c>int</c> que contiene el ID de la transacción creada en <c>KfnCuentaCorrienteMovimiento</c></returns>
        public int CrearMovimientoCuentaCorriente(int idAgencia, decimal monto, string comentario, bool asignacionProducto, int ttrId = 1000)
        {
            string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name);

            int ret = 0;

            InfoCuentaCorriente cuentaCorriente = this.GetInfoCuentaCorriente(idAgencia);

            if (cuentaCorriente == null)
            {
                return(ret);
            }

            try
            {
                Dictionary <string, object> qp = new Dictionary <string, object>()
                {
                    { "@ctaId", cuentaCorriente.Id },
                    { "@ageId", idAgencia },
                    { "@ctaSaldo", cuentaCorriente.Saldo },
                    { "@depMonto", monto },
                    { "@limiteCredito", cuentaCorriente.LimiteCredito }
                };

                if (Dwh <int> .ExecuteNonQuery(this.db, asignacionProducto ? Queries.Kinacu.UpdateCuentaCorrienteRestaLimiteCredito : Queries.Kinacu.UpdateCuentaCorriente, qp, this.databaseTransaction) == 0)
                {
                    Logger.ErrorHigh(() => TagValue.New()
                                     .MethodName(methodName)
                                     .Message("Parametros")
                                     .Tag("CtaId").Value(cuentaCorriente.Id)
                                     .Tag("AgeId").Value(idAgencia)
                                     .Tag("CtaSaldo").Value(cuentaCorriente.Saldo.ToString(CultureInfo.InvariantCulture))
                                     .Tag("Monto").Value(monto.ToString(CultureInfo.InvariantCulture))
                                     .Tag("LimiteCredito").Value(cuentaCorriente.LimiteCredito.ToString(CultureInfo.InvariantCulture)));
                    return(ret);
                }
            }
            catch (Exception ex)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Exception(ex));
                return(ret);
            }

            int idMovimientoCtaCorriente = this.UpdateSecuencia(Core.cons.SecuenciaMovimientoCuentaCorriente);

            if (idMovimientoCtaCorriente == 0)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Message("NO SE PUDO LEER LA SECUENCIA DEL CTACTEMOVIMIENTO"));
                return(ret);
            }

            Logger.CheckPointHigh(() => TagValue.New().MethodName(methodName).Message("INSERT INTO KfnCuentaCorrienteMovimiento Start"));

            try
            {
                if (asignacionProducto)
                {
                    cuentaCorriente = this.GetInfoCuentaCorriente(idAgencia);
                }

                if (Dwh <int> .ExecuteNonQuery(
                        this.db,
                        Queries.Kinacu.InsertMovimientoCuentaCorriente,
                        new Dictionary <string, object>()
                {
                    { "@traId", idMovimientoCtaCorriente },
                    { "@ctaId", cuentaCorriente.Id },
                    { "@ctaSaldo", asignacionProducto ? (cuentaCorriente.Saldo + monto) : cuentaCorriente.Saldo },
                    { "@depMonto", asignacionProducto ? (monto * -1) : monto },
                    { "@sComentario", comentario },
                    { "@ttrId", ttrId }
                },
                        this.databaseTransaction) == 0)
                {
                    throw new Exception();
                }

                ret = idMovimientoCtaCorriente;
            }
            catch (Exception ex)
            {
                Logger.ExceptionLow(() => TagValue.New()
                                    .MethodName(methodName)
                                    .Exception(ex));
                return(ret);
            }

            Logger.CheckPointHigh(() => TagValue.New().MethodName(methodName).Message("INSERT INTO KfnCuentaCorrienteMovimiento End"));
            return(ret);
        }