コード例 #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;
        }