Exemplo n.º 1
0
        private void CargarDatosMoratoria()
        {
            FacturasImplement oFacturasImplement = new FacturasImplement();
            CalculosConvenio oCalculosConvenio = new CalculosConvenio();

            _ConveniosNoCancelados = oCalculosConvenio.ObtenerImporteConvenioAdeudado(_idSocio);

            DataTable dtFacturas = oFacturasImplement.GetByIdSocioSinConvenioDT(_idSocio, 1, 1);
            txtFactAdeudadasMora.Text = dtFacturas.Rows.Count.ToString();
            Decimal valorTotalSinInteres = 0;
            Decimal valorInteresesMora = 0;
            foreach (DataRow dr in dtFacturas.Rows)
            {
                #region <Control Valores Vacios>
                decimal Neto = 0;
                decimal IVA = 0;
                decimal Cobrado = 0;
                decimal Recargo=0;
                decimal IVARecargo = 0;

                if (dr["Neto"] == null | dr["Neto"].ToString() == "")
                    Neto = 0;
                else
                    Neto = decimal.Parse(dr["Neto"].ToString());
                if (dr["IVA"] == null | dr["IVA"].ToString() == "")
                    IVA = 0;
                else
                    IVA = decimal.Parse(dr["IVA"].ToString());
                if (dr["Cobrado"] == null | dr["Cobrado"].ToString() == "")
                    Cobrado = 0;
                else
                    Cobrado = decimal.Parse(dr["Cobrado"].ToString());

                if (dr["Recargo"] == null | dr["Recargo"].ToString() == "")
                    Recargo = 0;
                else
                    Recargo = decimal.Parse(dr["Recargo"].ToString());
                if (dr["IVARecargo"] == null | dr["IVARecargo"].ToString() == "")
                    IVARecargo = 0;
                else
                    IVARecargo = decimal.Parse(dr["IVARecargo"].ToString());

                #endregion

                valorTotalSinInteres = valorTotalSinInteres + (Neto + IVA - Cobrado);
                valorInteresesMora = valorInteresesMora + (Recargo + IVARecargo);
            }

            Decimal ImporteTotalSinInteresMora =valorTotalSinInteres + _ConveniosNoCancelados;
            txtTotalSinInteresMora.Text =ImporteTotalSinInteresMora.ToString();
            Decimal ImporteInteresesMora = valorInteresesMora;
            txtImporteInteresesMora.Text = ImporteInteresesMora.ToString();
            txtTotalMoratoria.Text = (ImporteTotalSinInteresMora + ImporteInteresesMora).ToString();
            txtCuotasAbonadasMora.Text = "1";
            txtDescPagoContadoMora.Text = "5%";
            txtCantMaxCuotasMora.Text = "-";

            facturas oFacturas = new facturas();
            oFacturas = oFacturasImplement.GetUltimaFactura(_idSocio);
            DataTable oFacturasDetallesDT = new DataTable();
            FacturasDetallesImplement oFacturasDetallesImplements = new FacturasDetallesImplement();
            oFacturasDetallesDT = oFacturasDetallesImplements.GetAllByIdFacturaDT(oFacturas.id_factura);
            decimal valorUltimaFactura =0;
            foreach(DataRow dr in oFacturasDetallesDT.Rows)
            {
                int _idConcepto = int.Parse(dr["id_concepto"].ToString());
                if(_idConcepto==1 | _idConcepto==2 | _idConcepto==3 |_idConcepto==8)
                {
                    valorUltimaFactura = valorUltimaFactura + decimal.Parse(dr["importe"].ToString());
                }
            }

            decimal valorMinimoCuota = Math.Round((valorUltimaFactura / 2), 2);
            txtValorMinimoCuotaMora.Text=valorMinimoCuota.ToString();

            int maxCantCuotas = (int)((ImporteTotalSinInteresMora + ImporteInteresesMora) / valorMinimoCuota);
            //Pregunto por si la moratoria tiene limitacion, si no la tiene cambio la cant max de cuotas por minimo monto
            //por la max cant de cuotas por moratoria directamente

            MoratoriasImplement oMoratoriasImplement = new MoratoriasImplement();
            DataTable cuotasDT = new DataTable();
            DateTime fechaConv = dtpFechaConvenio.Value;

            cuotasDT = oMoratoriasImplement.GetTablaCuotasConvenioMoratoria(maxCantCuotas, fechaConv, ImporteTotalSinInteresMora, ImporteInteresesMora);
            txtCantMaxCuotasMora.Text = cuotasDT.Rows.Count.ToString();//esta tabla trae la cantidad de cuotas previendo limitacion con valor minimo

            dgvCuotasMora.DataSource = cuotasDT;
        }