/// <summary> En este metodo tomamos los datos mostrados en el informe y se convierte en un objeto de dominio
        /// para que se puedan lamacenar los intereses.
        /// </summary>
        /// <param name="ttbl"> datable con los datos a procesar. </param>
        private void contruirGuardar(DataTable ttbl)
        {
            ahorroCadtCausacion = new List <tblAhorrosCdtsCausacion>();

            for (int a = 0; a < ttbl.Rows.Count; a++)
            {
                tblAhorrosCdtsCausacion causacion = new tblAhorrosCdtsCausacion();
                causacion.intNumeroCdt      = Convert.ToInt32(ttbl.Rows[a]["intNumeroCdt"]);
                causacion.dtmFechaCausacion = Convert.ToDateTime(ttbl.Rows[a]["dtmFechaCausacion"]);
                causacion.decMonto          = Convert.ToDecimal(ttbl.Rows[a]["decMontoCdt"]);
                causacion.decInteresCdt     = Convert.ToDecimal(ttbl.Rows[a]["decInteresesCdt"]);
                causacion.intDias           = Convert.ToInt32(ttbl.Rows[a]["intDias"]);
                causacion.decDiario         = Convert.ToDecimal(ttbl.Rows[a]["decDiario"]);
                causacion.decValorCausacion = Convert.ToDecimal(ttbl.Rows[a]["decValorCausacion"]);
                causacion.strFormulario     = "frmAhorrosCdtCausacion";
                ahorroCadtCausacion.Add(causacion);
            }
        }
        /// <summary> Consulta los datos de una causación. </summary>
        /// <param name="tintCdt"> Cdt al que se le va a causar la causación. </param>
        /// <returns> Un objeto del tipo tblAhorrosCdt. </returns>
        public tblAhorrosCdtsCausacion gmtdCalcularCausacionCdt(Int32 tintCdt)
        {
            tblAhorrosCdt cdt = new daoAhorrosCdt().gmtdConsultarCdt(tintCdt);

            tblAhorrosCdtsCausacion causacion = new tblAhorrosCdtsCausacion();

            causacion.dtmFechaCausacion = DateTime.Now;
            causacion.decDiario         = cdt.decMontoCdt * ((cdt.decInteresMensualCdt / 30) / 100);
            causacion.decInteresCdt     = cdt.decInteresesCdt;
            causacion.intDias           = DateTime.Now.Date.Day;
            if (causacion.intDias > 30)
            {
                causacion.intDias = 30;
            }
            causacion.decValorCausacion = causacion.intDias * causacion.decDiario;
            causacion.decMonto          = cdt.decMontoCdt;
            causacion.intNumeroCdt      = cdt.intNumeroCdt;

            return(causacion);
        }
        /// <summary> Consulta si para un determinado año y mes hay causación para un cdt. </summary>
        /// <param name="tintCdt"> Cdt al que se le va a causar la causación. </param>
        /// <returns> un valor que indica si hay causación registrada para un Cdt en una año - mes  determinado. </returns>
        public bool gmtdConsultarExistenciaCausacionCdt(Int32 tintCdt)
        {
            tblAhorrosCdtsCausacion causacion = new tblAhorrosCdtsCausacion();

            using (dbExequial2010DataContext ahorros = new dbExequial2010DataContext())
            {
                var query = from det in ahorros.tblAhorrosCdtsCausacions
                            where det.bitAnulado == false && det.dtmFechaCausacion.Year == DateTime.Now.Year && det.dtmFechaCausacion.Month == DateTime.Now.Month && det.intNumeroCdt == tintCdt
                            select det;

                if (query.ToList().Count > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
 /// <summary> Inserta una causación a un cdt si no existe para una determinada fecha. </summary>
 /// <param name="tintCdt"> El cdt a causar.</param>
 /// <returns> Un valor que indica si la causación para el cdt en la fecha actual ya existe. </returns>
 public bool gmtdInsertarCausacionIndividual(int tintCdt)
 {
     if (!this.gmtdConsultarExistenciaCausacionCdt(tintCdt))
     {
         tblAhorrosCdtsCausacion causacion = this.gmtdCalcularCausacionCdt(tintCdt);
         causacion.strFormulario = "liquidar CDT.";
         List <tblAhorrosCdtsCausacion> lstCausaciones = new List <tblAhorrosCdtsCausacion>();
         lstCausaciones.Add(causacion);
         if (this.gmtdInsertar(lstCausaciones).Substring(0, 1) == "-")
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
     else
     {
         return(true);
     }
 }