/// <summary> Consulta los datos de la liquidación de una cuenta de ahorro a futuro. </summary>
        /// <param name="tstrCuenta"> Cuenta de la que se desea conocer los datos de liquidación. </param>
        /// <returns> Un objeto con los datos de la liquidacion. </returns>
        public LiquidacionAhorroaFuturo gmtdCalcularLiquidacionAhorroaFuturo(string tstrCuenta)
        {
            LiquidacionAhorroaFuturo liquidacion = new LiquidacionAhorroaFuturo();

            using (dbExequial2010DataContext ahorros = new dbExequial2010DataContext())
            {
                var query = from det in ahorros.tblAhorrosaFuturoDetalles
                            where det.bitPagada == true && det.strCuenta == tstrCuenta
                            select det;

                int intCuotasPagadas = query.ToList().Count;


                var query1 = from cue in ahorros.tblAhorrosaFuturos
                             join per in ahorros.tblAhorradores on cue.strCedulaAho equals per.strCedulaAho
                             where cue.bitAnulado == false && cue.bitLiquidada == false && cue.strCuenta == tstrCuenta
                             select new { cue.strCuenta, cue.strCedulaAho, per.strNombreAho, per.strApellido1Aho, per.strApellido2Aho, cue.bitLiquidada, cue.dtmFechaCuenta, cue.dtmFechaLiquidada, cue.fltIntereses, cue.fltPremios, cue.fltValorCuota, cue.intAno, cue.intCuotas };

                foreach (var dato in query1.ToList())
                {
                    liquidacion.decDescuento = 0;
                    liquidacion.decIntereses = Convert.ToDecimal(dato.fltIntereses);
                    liquidacion.decPorcentajeCuotasPagadas = 0;
                    liquidacion.decPremios          = Convert.ToDecimal(dato.fltPremios);
                    liquidacion.decTotalLiquidacion = 0;
                    liquidacion.decTotalRecaudado   = Convert.ToDecimal(dato.fltValorCuota) * intCuotasPagadas;
                    liquidacion.intCuotasPagadas    = intCuotasPagadas;
                    liquidacion.strAhorrador        = dato.strNombreAho + " " + dato.strApellido1Aho + " " + dato.strApellido2Aho;
                    liquidacion.strCuenta           = tstrCuenta;
                    liquidacion.strCedulaAho        = dato.strCedulaAho;
                }
                return(liquidacion);
            }
        }
        /// <summary> Registra la liquidación de una cuenta de ahorro a futuro. </summary>
        /// <param name="tstrCuenta"> Cuenta de ahorro a futuro a liquidar. </param>
        /// <returns> Un string que indica si se registro o no la liquidación. </returns>
        public string gmtdLiquidarAhorroaFuturo(LiquidacionAhorroaFuturo tobjLiquidacion)
        {
            if (tobjLiquidacion.strCuenta == null || tobjLiquidacion.strCuenta.Trim() == "")
            {
                return("- Debe de ingresar la cuenta que desea liquidar. ");
            }

            if (tobjLiquidacion.decTotalRecaudado <= 0 ||
                tobjLiquidacion.intCuotasPagadas <= 0 ||
                tobjLiquidacion.decTotalLiquidacion <= 0 ||
                tobjLiquidacion.decPorcentajeCuotasPagadas <= 0 ||
                tobjLiquidacion.strAhorrador == null ||
                tobjLiquidacion.strAhorrador == "")
            {
                if (tobjLiquidacion.strAhorrador != "")
                {
                    return("- No se han hecho abonos para liquidar esta cuenta. ");
                }
                else
                {
                    return("- Faltan datos para registrar la liquidación. ");
                }
            }

            tobjLiquidacion.log = metodos.gmtdLog("Registra la liquidación de ahorro a futuro.  " + tobjLiquidacion.strCuenta, tobjLiquidacion.strFormulario);


            return(new daoAhorrosaFuturo().gmtdLiquidarAhorroaFuturo(tobjLiquidacion));
        }
        /// <summary> Consulta los datos de una cuenta si esta esta liquidada. </summary>
        /// <param name="tstrCuenta"> Código de la cuenta a consultar. </param>
        /// <returns> Un objeto del tipo LiquidacionAhorroaFuturo. </returns>
        public LiquidacionAhorroaFuturo gmtdConsultarCuentaLiquidada(string tstrCuenta)
        {
            using (dbExequial2010DataContext cuenta = new dbExequial2010DataContext())
            {
                var query = from cue in cuenta.tblAhorrosaFuturos
                            where cue.strCuenta == tstrCuenta && cue.bitLiquidada == true && cue.bitAnulado == false
                            select cue;

                if (query.ToList().Count > 0)
                {
                    LiquidacionAhorroaFuturo cuen = new LiquidacionAhorroaFuturo();
                    foreach (var dato in query.ToList())
                    {
                        cuen.strCuenta    = tstrCuenta;
                        cuen.intCodigoEgr = (int)dato.intCodigoEgr;
                        cuen.intCodigoIng = (int)dato.intCodigoIng;
                    }
                    return(cuen);
                }
                else
                {
                    return(new LiquidacionAhorroaFuturo());
                }
            }
        }
        /// <summary> Elimina la liquidación de una cuenta de ahorro a futuro. </summary>
        /// <param name="tobjCuentaLiquidad"> Un objeto con el código de la cuenta a aliminar. </param>
        /// <returns> Un string que indica si se ejecuto o no la operación. </returns>
        public string gmtdEliminarLiquidaciondeCuenta(LiquidacionAhorroaFuturo tobjCuentaLiquidada)
        {
            if (new daoAhorrosaFuturo().gmtdConsultarCuentaLiquidada(tobjCuentaLiquidada.strCuenta).strCuenta == null)
            {
                return("- No se puede eliminar la cuenta por que no aparece liquidada. ");
            }

            LiquidacionAhorroaFuturo consulta = new daoAhorrosaFuturo().gmtdConsultarCuentaLiquidada(tobjCuentaLiquidada.strCuenta);

            tobjCuentaLiquidada.intCodigoEgr = consulta.intCodigoEgr;
            tobjCuentaLiquidada.intCodigoIng = consulta.intCodigoIng;

            tobjCuentaLiquidada.log = metodos.gmtdLog("Elimina la liquidación de ahorro a futuro.  " + tobjCuentaLiquidada.strCuenta, tobjCuentaLiquidada.strFormulario);

            return(new daoAhorrosaFuturo().gmtdEliminarLiquidaciondeCuenta(tobjCuentaLiquidada));
        }
Пример #5
0
        /// <summary> Crea un objeto del tipo aplicación de acuerdo a la información de los texbox. </summary>
        /// <returns> Un objeto del tipo aplicación. </returns>
        private LiquidacionAhorroaFuturo crearObj()
        {
            LiquidacionAhorroaFuturo ahorroaFuturo = new LiquidacionAhorroaFuturo();

            ahorroaFuturo.decDescuento = Convert.ToDecimal(this.txtDescuento.Text);
            ahorroaFuturo.decIntereses = Convert.ToDecimal(this.txtIntereses.Text);
            ahorroaFuturo.decPorcentajeCuotasPagadas = Convert.ToDecimal(this.txtPorcentajeCuotasPagadas.Text);
            ahorroaFuturo.decPremios          = Convert.ToDecimal(this.txtPremios.Text);
            ahorroaFuturo.decTotalLiquidacion = Convert.ToDecimal(this.txtTotalLiquidacion.Text);
            ahorroaFuturo.decTotalRecaudado   = Convert.ToDecimal(this.txtTotalRecaudado.Text);
            ahorroaFuturo.intCuotasaPagar     = Convert.ToInt32(this.txtCuotasaPagar.Text);
            ahorroaFuturo.intCuotasPagadas    = Convert.ToInt32(this.txtCuotasPagadas.Text);
            ahorroaFuturo.strAhorrador        = this.txtAhorrador.Text;
            ahorroaFuturo.strCuenta           = this.txtCuenta.Text;
            ahorroaFuturo.strFormulario       = this.Name;
            return(ahorroaFuturo);
        }
Пример #6
0
        private void btnCalcularLiquidacion_Click(object sender, EventArgs e)
        {
            if (this.txtCuenta.Text == null || this.txtCuenta.Text.Trim() == "" || this.txtCuenta.Text == "0")
            {
                MessageBox.Show("Debe de digitar el número de la cuenta a liquidar. ", "Liquidar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            tblAhorrosaFuturo ahorro = new blAhorrosaFuturo().gmtdConsultar(this.txtCuenta.Text);

            if (ahorro.strCuenta == null)
            {
                MessageBox.Show("No se puede liquidar una cuenta que no existe. ", "Liquidar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (ahorro.bitAnulado == true)
            {
                MessageBox.Show("No se puede liquidar una cuenta anulada. ", "Liquidar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (ahorro.bitLiquidada == true)
            {
                MessageBox.Show("No se puede liquidar una cuenta liquidada. ", "Liquidar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            liquidacion = new blAhorrosaFuturo().gmtdCalcularLiquidacionAhorroaFuturo(this.txtCuenta.Text);

            liquidacion.strComputador = Environment.MachineName;
            liquidacion.strUsuario    = propiedades.strLogin;

            this.txtAhorrador.Text               = liquidacion.strAhorrador;
            this.txtCuotasPagadas.Text           = liquidacion.intCuotasPagadas.ToString();
            this.txtPorcentajeCuotasPagadas.Text = liquidacion.decPorcentajeCuotasPagadas.ToString();
            this.txtCuotasaPagar.Text            = "12";
            this.txtIntereses.Text               = liquidacion.decIntereses.ToString();
            this.txtPremios.Text          = liquidacion.decPremios.ToString();
            this.txtTotalRecaudado.Text   = liquidacion.decTotalRecaudado.ToString();
            this.txtDescuento.Text        = liquidacion.decDescuento.ToString();
            this.txtTotalLiquidacion.Text = liquidacion.decTotalLiquidacion.ToString();
        }
        /// <summary> Registra la liquidación de una cuenta de ahorro a futuro. </summary>
        /// <param name="tstrCuenta"> Cuenta de ahorro a futuro a liquidar. </param>
        /// <returns> Un string que indica si se registro o no la liquidación. </returns>
        public string gmtdLiquidarAhorroaFuturo(LiquidacionAhorroaFuturo tobjLiquidacion)
        {
            string     strResultado = "";
            string     strIngreso   = "";
            string     strEgreso    = "";
            DateTime   dtmFechaActual;
            tblEgreso  egreso  = new tblEgreso();
            tblIngreso ingreso = new tblIngreso();
            DataTable  dt      = new DataTable();

            tblEgresosAhorrosaFuturoLiquidacion egresoLiquidacionaFuturo = new tblEgresosAhorrosaFuturoLiquidacion();

            try
            {
                egresoLiquidacionaFuturo.decValorLiquidacion = tobjLiquidacion.decTotalRecaudado;
                egresoLiquidacionaFuturo.strCuenta           = tobjLiquidacion.strCuenta;
                egresoLiquidacionaFuturo.decDescuento        = tobjLiquidacion.decDescuento;

                egreso.bitRetiroAhorroaFuturoLiquidacion = true;
                egreso.decTotal      = tobjLiquidacion.decTotalRecaudado;
                egreso.dtmFechaAnu   = Convert.ToDateTime("1/1/1900");
                dtmFechaActual       = new daoUtilidadesConfiguracion().gmtdCapturarFechadelServidor();
                egreso.dtmFechaRec   = dtmFechaActual;
                egreso.strApellido   = "";
                egreso.strCedulaEgre = tobjLiquidacion.strCedulaAho;
                egreso.strFormulario = tobjLiquidacion.strFormulario;
                egreso.strLetras     = new blConfiguracion().montoenLetras(tobjLiquidacion.decTotalLiquidacion.ToString());
                egreso.strNombre     = tobjLiquidacion.strAhorrador;
                egreso.objEgresosAhorrosaFuturoLiquidacion = egresoLiquidacionaFuturo;

                if (egresoLiquidacionaFuturo.decDescuento > 0)
                {
                    tblIngresosAhorrosaFuturoMulta ingresoaFuturoMulta = new tblIngresosAhorrosaFuturoMulta();
                    ingresoaFuturoMulta.decValorMulta = tobjLiquidacion.decDescuento;
                    ingresoaFuturoMulta.strCuenta     = tobjLiquidacion.strCuenta;

                    ingreso.bitAhorroaFuturoMulta          = true;
                    ingreso.decTotalIng                    = tobjLiquidacion.decDescuento;
                    ingreso.dtmFechaAnu                    = Convert.ToDateTime("1/1/1900");
                    ingreso.dtmFechaRec                    = dtmFechaActual;
                    ingreso.strCedulaIng                   = tobjLiquidacion.strCedulaAho;
                    ingreso.strComputador                  = tobjLiquidacion.strComputador;
                    ingreso.strFormulario                  = tobjLiquidacion.strFormulario;;
                    ingreso.strLetras                      = new blConfiguracion().montoenLetras(tobjLiquidacion.decDescuento.ToString());
                    ingreso.strNombreIng                   = tobjLiquidacion.strAhorrador;
                    ingreso.strApellidoIng                 = "";
                    ingreso.strUsuario                     = tobjLiquidacion.strUsuario;
                    ingreso.objIngresosAhorrosaFuturoMulta = ingresoaFuturoMulta;
                    egreso.objIngreso                      = ingreso;
                }

                XmlDocument xml = blRecibosEgresos.SerializeServicio(egreso);

                List <SqlParameter> lstParametros = new List <SqlParameter>();
                SqlParameter        objParameter  = new SqlParameter();
                objParameter.DbType        = DbType.Xml;
                objParameter.Direction     = ParameterDirection.Input;
                objParameter.ParameterName = "xmlEgreso";
                objParameter.Value         = xml.OuterXml;
                lstParametros.Add(objParameter);

                dt = new Utilidad().ejecutarSpConeccionDB(lstParametros, Sp.spEgresoInsertar);
            }
            catch (Exception ex)
            {
                new dao().gmtdInsertarError(ex);
                return("- Ocurrió un error al Actualizar el registro");
            }

            strEgreso  = dt.Rows[0]["intCodigoEgr"].ToString();
            strIngreso = dt.Rows[0]["intCodigoIng"].ToString();

            if (egresoLiquidacionaFuturo.decDescuento > 0)
            {
                strResultado = "Se hace el registro de los siguientes recibos" + " \n " + strEgreso + " \n " + strIngreso;
            }
            else
            {
                strResultado = "Se hace el registro del siguiente egreso" + " \n " + strEgreso;
            }
            return(strResultado);
        }
        /// <summary> Elimina la liquidación de una cuenta de ahorro a futuro. </summary>
        /// <param name="tobjCuentaLiquidad"> Un objeto con el código de la cuenta a aliminar. </param>
        /// <returns> Un string que indica si se ejecuto o no la operación. </returns>
        public string gmtdEliminarLiquidaciondeCuenta(LiquidacionAhorroaFuturo tobjCuentaLiquidad)
        {
            DateTime dtmFechaActual = new blConfiguracion().gmtdCapturarFechadelServidor();
            String   strResultado;
            decimal  decValorLiquidacion = 0;
            decimal  decValorMulta       = 0;
            string   strNombre           = "";
            string   strApellido         = "";

            try
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    using (dbExequial2010DataContext reciboEgreso = new dbExequial2010DataContext())
                    {
                        tblEgreso egre_old = reciboEgreso.tblEgresos.SingleOrDefault(p => p.intCodigoEgr == tobjCuentaLiquidad.intCodigoEgr);
                        egre_old.bitAnulado  = true;
                        egre_old.dtmFechaAnu = dtmFechaActual;
                        decValorLiquidacion  = egre_old.decTotal;
                        strNombre            = egre_old.strNombre;
                        strApellido          = egre_old.strApellido;
                        reciboEgreso.tblLogdeActividades.InsertOnSubmit(metodos.gmtdLog("Elimino el egreso " + tobjCuentaLiquidad.intCodigoEgr.ToString(), "FrmAhorrosaFuturoLiquidacion"));
                        reciboEgreso.SubmitChanges();

                        #region Mvto ingreso x anular liquidación de ahorro a futuro
                        List <cuentaValores>[] cuotasValores = new blCuentaPar().gmtdCalcularValores("0001", decValorLiquidacion);
                        List <cuentaValores>   cuentasDebito = cuotasValores[0];
                        for (int a = 0; a < cuentasDebito.Count; a++)
                        {
                            reciboEgreso.tblCuentasOperacionesContabilidads.InsertOnSubmit(new blRecibosIngresos().gmtdMvtoContableIngresos(cuentasDebito[a].decValor, 0, cuentasDebito[a].strCuenta, "Recibo de ingreso x Anular liquidación de ahorro a futuro", 1, tobjCuentaLiquidad.strCedulaAho, strNombre + " " + strApellido, dtmFechaActual));
                        }
                        List <cuentaValores> cuentasCredito = cuotasValores[1];
                        for (int a = 0; a < cuentasCredito.Count; a++)
                        {
                            reciboEgreso.tblCuentasOperacionesContabilidads.InsertOnSubmit(new blRecibosIngresos().gmtdMvtoContableIngresos(cuentasCredito[a].decValor, 0, cuentasCredito[a].strCuenta, "Recibo de ingreso x Anular liquidación de ahorro a futuro", 2, tobjCuentaLiquidad.strCedulaAho, strNombre + " " + strApellido, dtmFechaActual));
                        }
                        #endregion
                    }

                    if (tobjCuentaLiquidad.intCodigoIng > 0)
                    {
                        using (dbExequial2010DataContext reciboEgreso = new dbExequial2010DataContext())
                        {
                            tblIngreso ing_old = reciboEgreso.tblIngresos.SingleOrDefault(p => p.intCodigoIng == tobjCuentaLiquidad.intCodigoIng);
                            ing_old.bitAnulado  = true;
                            ing_old.dtmFechaAnu = dtmFechaActual;
                            decValorMulta       = ing_old.decTotalIng;
                            reciboEgreso.tblLogdeActividades.InsertOnSubmit(metodos.gmtdLog("Elimino el ingreso " + tobjCuentaLiquidad.intCodigoIng.ToString(), "FrmAhorrosaFuturoLiquidacion"));
                            reciboEgreso.SubmitChanges();

                            #region Mvto egreso x anular liquidación de ahorro navideño
                            List <cuentaValores>[] cuotasValores = new blCuentaPar().gmtdCalcularValores("0001", decValorMulta);
                            List <cuentaValores>   cuentasDebito = cuotasValores[0];
                            for (int a = 0; a < cuentasDebito.Count; a++)
                            {
                                reciboEgreso.tblCuentasOperacionesContabilidads.InsertOnSubmit(new blRecibosIngresos().gmtdMvtoContableIngresos(cuentasDebito[a].decValor, 0, cuentasDebito[a].strCuenta, "Recibo de egreso x Anular liquidación de ahorro navideño", 2, tobjCuentaLiquidad.strCedulaAho, strNombre + " " + strApellido, dtmFechaActual));
                            }
                            List <cuentaValores> cuentasCredito = cuotasValores[1];
                            for (int a = 0; a < cuentasCredito.Count; a++)
                            {
                                reciboEgreso.tblCuentasOperacionesContabilidads.InsertOnSubmit(new blRecibosIngresos().gmtdMvtoContableIngresos(cuentasCredito[a].decValor, 0, cuentasCredito[a].strCuenta, "Recibo de egreso x Anular liquidación de ahorro navideño", 1, tobjCuentaLiquidad.strCedulaAho, strNombre + " " + strApellido, dtmFechaActual));
                            }
                            #endregion
                        }
                    }

                    using (dbExequial2010DataContext ahorro = new dbExequial2010DataContext())
                    {
                        tblAhorrosaFuturo aho_old = ahorro.tblAhorrosaFuturos.SingleOrDefault(p => p.strCuenta == tobjCuentaLiquidad.strCuenta);
                        aho_old.bitLiquidada      = false;
                        aho_old.dtmFechaLiquidada = Convert.ToDateTime("1900/01/01");
                        ahorro.tblLogdeActividades.InsertOnSubmit(tobjCuentaLiquidad.log);
                        ahorro.SubmitChanges();
                        strResultado = "Registro Anulado";
                    }
                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                new dao().gmtdInsertarError(ex);
                strResultado = "- Ocurrió un error al Actualizar el registro";
            }
            return(strResultado);
        }
 /// <summary> Elimina la liquidación de una cuenta de ahorro a futuro. </summary>
 /// <param name="tobjCuentaLiquidad"> Un objeto con el código de la cuenta a aliminar. </param>
 /// <returns> Un string que indica si se ejecuto o no la operación. </returns>
 public string gmtdEliminarLiquidaciondeCuenta(LiquidacionAhorroaFuturo tobjCuentaLiquidada)
 {
     return(new blAhorrosaFuturo().gmtdEliminarLiquidaciondeCuenta(tobjCuentaLiquidada));
 }
 /// <summary> Registra la liquidación de una cuenta de ahorro a futuro. </summary>
 /// <param name="tstrCuenta"> Cuenta de ahorro a futuro a liquidar. </param>
 /// <returns> Un string que indica si se registro o no la liquidación. </returns>
 public string gmtdLiquidarAhorroaFuturo(LiquidacionAhorroaFuturo tobjLiquidacion)
 {
     return(new blAhorrosaFuturo().gmtdLiquidarAhorroaFuturo(tobjLiquidacion));
 }