Ejemplo n.º 1
0
        // Armo la factura en un datagridview del expediente
        private void ArmaFacturaExpte()
        {
            // Limpio la grilla
            dgv_factura.DataSource = null;
            // LLeno el binding con los datos que traigo del movimiento deudor que generó el expediente
            oMovimiento             = cMovimiento.BuscarMovimientoPorDescExpte(oExpediente.numero);
            oMovimiento.descripcion = "Pago expediente número " + oExpediente.numero;
            BsFactura.DataSource    = oMovimiento;
            // Asigno el binding a la grilla
            dgv_factura.DataSource            = BsFactura;
            dgv_factura.Columns[0].Visible    = false;
            dgv_factura.Columns[1].HeaderText = "Concepto";
            dgv_factura.Columns[2].HeaderText = "Importe";
            dgv_factura.Columns[3].HeaderText = "Fecha de emisión";
            dgv_factura.Columns[4].Visible    = false;
            dgv_factura.Columns[5].Visible    = false;
            dgv_factura.Columns[6].HeaderText = "Nº de boleta";

            int    i    = 0;
            double suma = 0;

            while (i < dgv_factura.Rows.Count)
            {
                if (dgv_factura.Rows[i] != null)
                {
                    suma = Convert.ToDouble(dgv_factura.Rows[i].Cells[2].Value) + suma;
                }

                i++;
            }

            txt_total.Text = suma.ToString();
        }
Ejemplo n.º 2
0
        // Cuando le doy click a "Calcular"
        private void btn_calcular_Click(object sender, EventArgs e)
        {
            double suma = 0;

            if (chk_intereses.Checked == true)
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    TimeSpan dif = DateTime.Now - oMovimiento.fecha;
                    oMovimiento.importe = cCuota.ObtenerValor_Couta_Interes(cCuota.ObtenerValor_Tipo_Couta((oCuota)), dif.Days);
                    suma = oMovimiento.importe + suma;
                }
            }

            else
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    //oMovimiento.importe = cCuota.ObtenerValor_Tipo_Couta(oCuota).Valor();
                    suma = oMovimiento.importe + suma;
                }
            }

            txt_total.Text = suma.ToString();
        }
Ejemplo n.º 3
0
        // Busco el movimiento deudor de una determianda cuota
        public Modelo_Entidades.Movimiento BuscarMovimientoPorDescCuota(string desc, string año)
        {
            Modelo_Entidades.Movimiento oMovimiento = oModelo_Entidades.Movimientos.ToList().Find(delegate(Modelo_Entidades.Movimiento fMovimiento)
            {
                return(fMovimiento.descripcion.Contains(desc) && fMovimiento.descripcion.Contains(año) && fMovimiento.Tipo_Movimiento.id == 1);
            });

            return(oMovimiento);
        }
Ejemplo n.º 4
0
        // Busco el movimiento deudor de un determiando expediente
        public Modelo_Entidades.Movimiento BuscarMovimientoPorDescExpte(int numero)
        {
            Modelo_Entidades.Movimiento oMovimiento = oModelo_Entidades.Movimientos.ToList().Find(delegate(Modelo_Entidades.Movimiento fMovimiento)
            {
                return(fMovimiento.descripcion.Contains(numero.ToString()) && fMovimiento.Tipo_Movimiento.id == 1);
            });

            return(oMovimiento);
        }
Ejemplo n.º 5
0
        // Busco el movimiento deudor de una determianda cuota
        public Modelo_Entidades.Movimiento BuscarMovimientoPorCuotaYProf(string desc, int cta_cte)
        {
            Modelo_Entidades.Movimiento oMovimiento = oModelo_Entidades.Movimientos.ToList().Find(delegate(Modelo_Entidades.Movimiento fMovimiento)
            {
                return(fMovimiento.descripcion == desc && fMovimiento.Tipo_Movimiento.id == 1 && fMovimiento.CtaCte.id == cta_cte);
            });

            return(oMovimiento);
        }
Ejemplo n.º 6
0
        // Genero la cuota anual para un nuevo profesional
        private void GeneraCuotaAnual(Modelo_Entidades.Profesional oProfesional)
        {
            oCtaCte = oProfesional.CtaCte;
            Modelo_Entidades.Boleta     oBoleta     = new Modelo_Entidades.Boleta();
            Modelo_Entidades.Movimiento oMovimiento = new Modelo_Entidades.Movimiento();
            oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

            oMovimiento.fecha = DateTime.Now;

            Modelo_Entidades.Anual oAnual = new Modelo_Entidades.Anual();
            if (oProfesional.Tipo_Matricula.descripcion == "Relación de Dependencia")
            {
                oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor() * 0.7, 2); // EL PORCENTAJE ESTÁ HARKODEADO, DE TODAS FORMAS ESE ES EL VALOR QUE ANUALMENTE EL COLEGIO DISPONE
            }

            else
            {
                oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor(), 2);
            }

            oMovimiento.descripcion = "Cuota anual año " + DateTime.Now.Year.ToString();
            oAnual.descripcion      = "Cuota anual año " + DateTime.Now.Year.ToString();
            oAnual.estado           = false;
            oAnual.Profesional      = oProfesional;
            cCuota.AgregarCuota(oAnual);

            #region Audito la cuota
            oLog_Cuota.estado          = false;
            oLog_Cuota.descripcion     = "Cuota anual año " + DateTime.Now.Year.ToString();
            oLog_Cuota.Profesional_dni = oProfesional.dni;
            oLog_Cuota.usuario         = miUsuario.nombre_apellido;
            oLog_Cuota.fecha           = DateTime.Now;
            oLog_Cuota.accion          = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
            cAuditoria.AuditarCuota(oLog_Cuota);
            #endregion

            oMovimiento.fecha           = DateTime.Now;
            oMovimiento.CtaCte          = oProfesional.CtaCte;
            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
            oMovimiento.Comprobante     = oBoleta;

            cMovimiento.Alta(oMovimiento);

            oProfesional.CtaCte.Movimientos.Add(oMovimiento);

            oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);

            cCtaCte.Modificacion(oCtaCte);
        }
Ejemplo n.º 7
0
        // Busco si ya existe un movimiento y devuelvo un true, si es que existe
        public Boolean BuscarCuotaEnReciprocidadGenerada(string desc)
        {
            Modelo_Entidades.Movimiento oMovimiento = oModelo_Entidades.Movimientos.ToList().Find(delegate(Modelo_Entidades.Movimiento fMovimiento)
            {
                return(fMovimiento.descripcion == desc && fMovimiento.Tipo_Movimiento.id == 1 && fMovimiento.CtaCte.Profesional.Tipo_Matricula.descripcion == "Reciprocidad de Matrícula");
            });

            if (oMovimiento == null)
            {
                return(false);
            }

            else
            {
                return(true);
            }
        }
Ejemplo n.º 8
0
        // Cuando le doy click a "Aceptar"
        private void btn_aceptar_Click(object sender, EventArgs e)
        {
            if (chk_intereses.Checked == true)
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    TimeSpan dif = DateTime.Now - oMovimiento.fecha;
                    oMovimiento.importe = cCuota.ObtenerValor_Couta_Interes(cCuota.ObtenerValor_Tipo_Couta((oCuota)), dif.Days);
                    ListadoMovimientos.Add(oMovimiento);
                }
            }

            else
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    ListadoMovimientos.Add(oMovimiento);
                }
            }

            this.DialogResult = DialogResult.OK;
        }
Ejemplo n.º 9
0
        // Cuando le doy click a "Calcular"
        private void btn_calcular_Click(object sender, EventArgs e)
        {
            double suma = 0;

            if (chk_intereses.Checked == true)
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    TimeSpan dif = DateTime.Now - oMovimiento.fecha;
                    oMovimiento.importe = cCuota.ObtenerValor_Couta_Interes(cCuota.ObtenerValor_Tipo_Couta((oCuota)), dif.Days);
                    suma = oMovimiento.importe + suma;
                }
            }

            else
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    //oMovimiento.importe = cCuota.ObtenerValor_Tipo_Couta(oCuota).Valor();
                    suma = oMovimiento.importe + suma;
                }
            }

            txt_total.Text = suma.ToString();
        }
Ejemplo n.º 10
0
        // Liquido las OI
        private void Liquidar_OI()
        {
            // Lo 1º que hago es eliminar la liquidación anterior
            foreach (Modelo_Entidades.Liquidacion oLiq in cLiquidacion.ObtenerLiquidaciones())
            {
                if (oOI.numero == oLiq.Expediente.numero)
                {
                    cLiquidacion.EliminarLiquidacion(oLiq);
                }
            }

            #region Liquidación del OI
            // Faltaria validar los datos del OI (con un metodo)
            decimal monto_obra_definitivo = cExpediente.CalcularTotalaLiquidar_OI(nud_monto_obra_OI.Value);
            monto_obra = monto_obra_definitivo;

            if (chk_anteproyecto.Checked == true) // Verifica si esta tildado
            {
                // Liquido el anteproyecto (10%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_a = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_a.tarea = "Anteproyecto";
                NuevaLiquidacion_a.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de anteproyecto
                NuevaLiquidacion_a.importe = monto_obra;
                NuevaLiquidacion_a.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_a);
                oOI.Liquidaciones.Add(NuevaLiquidacion_a);
            }

            else
            {
                // Liquido el anteproyecto (10%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_a = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_a.tarea = "Anteproyecto";
                NuevaLiquidacion_a.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de anteproyecto
                NuevaLiquidacion_a.importe = 0;
                NuevaLiquidacion_a.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_a);
                oOI.Liquidaciones.Add(NuevaLiquidacion_a);
            }

            if (chk_proyecto_sin_anteproyecto.Checked == true) // Verifica si esta tildado
            {
                // Liquido el proyecto sin el anteproyecto (45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_b = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_b.tarea = "Proyecto sin anteproyecto";
                NuevaLiquidacion_b.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de anteproyecto
                NuevaLiquidacion_b.importe = monto_obra;
                NuevaLiquidacion_b.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_b);
                oOI.Liquidaciones.Add(NuevaLiquidacion_b);
            }

            else
            {
                // Liquido el proyecto sin el anteproyecto (45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_b = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_b.tarea = "Proyecto sin anteproyecto";
                NuevaLiquidacion_b.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de anteproyecto
                NuevaLiquidacion_b.importe = 0;
                NuevaLiquidacion_b.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_b);
                oOI.Liquidaciones.Add(NuevaLiquidacion_b);
            }

            if (chk_proyecto.Checked == true) // Verifica si esta tildado
            {
                // Liquido el proyecto (55%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_c = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_c.tarea = "Proyecto de la obra";
                NuevaLiquidacion_c.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Proyecto de la obra
                NuevaLiquidacion_c.importe = monto_obra;
                NuevaLiquidacion_c.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_c);
                oOI.Liquidaciones.Add(NuevaLiquidacion_c);
            }

            else
            {
                // Liquido el proyecto (55%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_c = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_c.tarea = "Proyecto de la obra";
                NuevaLiquidacion_c.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Proyecto de la obra
                NuevaLiquidacion_c.importe = 0;
                NuevaLiquidacion_c.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_c);
                oOI.Liquidaciones.Add(NuevaLiquidacion_c);
            }

            if (chk_conduccion_tecnica.Checked == true) // Verifica si esta tildado
            {
                // Liquido la conducción técnica (45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_d = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_d.tarea = "Conducción técnica de la obra";
                NuevaLiquidacion_d.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Conducción técnica de la obra
                NuevaLiquidacion_d.importe = monto_obra;
                NuevaLiquidacion_d.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_d);
                oOI.Liquidaciones.Add(NuevaLiquidacion_d);
            }

            else
            {
                // Liquido la conducción técnica (45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_d = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_d.tarea = "Conducción técnica de la obra";
                NuevaLiquidacion_d.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Conducción técnica de la obra
                NuevaLiquidacion_d.importe = 0;
                NuevaLiquidacion_d.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_d);
                oOI.Liquidaciones.Add(NuevaLiquidacion_d);
            }

            if (chk_administracion.Checked == true) // Verifica si esta tildado
            {
                // Liquido la Administración a cargo del comitente (13.5%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_e = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_e.tarea = "Administración a cargo del comitente";
                NuevaLiquidacion_e.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Administración a cargo del comitente
                NuevaLiquidacion_e.importe = monto_obra;
                NuevaLiquidacion_e.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_e);
                oOI.Liquidaciones.Add(NuevaLiquidacion_e);
            }

            else
            {
                // Liquido la Administración a cargo del comitente (13.5%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_e = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_e.tarea = "Administración a cargo del comitente";
                NuevaLiquidacion_e.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Administración a cargo del comitente
                NuevaLiquidacion_e.importe = 0;
                NuevaLiquidacion_e.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_e);
                oOI.Liquidaciones.Add(NuevaLiquidacion_e);
            }

            if (chk_trámites.Checked == true) // Verifica si esta tildado
            {
                // Liquido los trámites (0.2%) (es sobre el monto de obra)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_f = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_f.tarea = "Trámites";
                NuevaLiquidacion_f.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Trámites
                NuevaLiquidacion_f.importe = nud_monto_obra_OI.Value;
                NuevaLiquidacion_f.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_f);
                oOI.Liquidaciones.Add(NuevaLiquidacion_f);
            }

            else
            {
                // Liquido los trámites (0.2%) (es sobre el monto de obra)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_f = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_f.tarea = "Trámites";
                NuevaLiquidacion_f.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Trámites
                NuevaLiquidacion_f.importe = 0;
                NuevaLiquidacion_f.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_f);
                oOI.Liquidaciones.Add(NuevaLiquidacion_f);
            }

            if (chk_representacion_tecnica.Checked == true) // Verifica si esta tildado
            {
                // Liquido la representación técnica de la obra (13.5% + 45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_g = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_g.tarea = "Representación técnica de la obra";
                NuevaLiquidacion_g.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Representación técnica de la obra
                NuevaLiquidacion_g.importe = monto_obra;
                NuevaLiquidacion_g.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_g);
                oOI.Liquidaciones.Add(NuevaLiquidacion_g);
            }

            else
            {
                // Liquido la representación técnica de la obra (13.5% + 45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_g = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_g.tarea = "Representación técnica de la obra";
                NuevaLiquidacion_g.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Representación técnica de la obra
                NuevaLiquidacion_g.importe = 0;
                NuevaLiquidacion_g.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_g);
                oOI.Liquidaciones.Add(NuevaLiquidacion_g);
            }

            if (chk_direccion_de_la_obra.Checked == true) // Verifica si esta tildado
            {
                // Liquido la dirección de la obra (45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_h = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_h.tarea = "Dirección de la obra";
                NuevaLiquidacion_h.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Dirección de la obra
                NuevaLiquidacion_h.importe = monto_obra;
                NuevaLiquidacion_h.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_h);
                oOI.Liquidaciones.Add(NuevaLiquidacion_h);
            }

            else
            {
                // Liquido la dirección de la obra (45%)
                Modelo_Entidades.Liquidacion NuevaLiquidacion_h = new Modelo_Entidades.Liquidacion();
                NuevaLiquidacion_h.tarea = "Dirección de la obra";
                NuevaLiquidacion_h.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion de Dirección de la obra
                NuevaLiquidacion_h.importe = 0;
                NuevaLiquidacion_h.Expediente = oOI;
                cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_h);
                oOI.Liquidaciones.Add(NuevaLiquidacion_h);
            }
            #endregion

            // Limpio la grilla
            dgv_liquidaciones_OI.DataSource = null;
            // LLeno el binding con los datos que traigo de las entidades
            BsLiquidaciones_OI.DataSource = cExpediente.LiquidarExpediente(oOI);
            // Asigno el binding a la grilla
            dgv_liquidaciones_OI.DataSource = BsLiquidaciones_OI;
            // Asigno el binding a la grilla
            dgv_liquidaciones_OI.Columns[0].Visible = false;
            dgv_liquidaciones_OI.Columns[1].HeaderText = "Tarea";
            dgv_liquidaciones_OI.Columns[2].HeaderText = "Cantidad";
            dgv_liquidaciones_OI.Columns[3].HeaderText = "Importe";
            dgv_liquidaciones_OI.Columns[4].Visible = false;

            int i_2 = 0;
            double suma_2 = 0;
            while (i_2 < dgv_liquidaciones_OI.Rows.Count)
            {
                if (dgv_liquidaciones_OI.Rows[i_2] != null)
                {
                    suma_2 = Convert.ToDouble(dgv_liquidaciones_OI.Rows[i_2].Cells[3].Value) + suma_2;
                }

                i_2++;
            }

            txt_total_a_liquidar.Text = suma_2.ToString();
            txt_aportes_al_cie.Text = ((suma_2) * 0.05).ToString();
            txt_aportes_a_caja.Text = ((suma_2) * 0.23).ToString();
            txt_total_aportes.Text = (((suma_2) * 0.05) + ((suma_2) * 0.23)).ToString();
            InhabilitarTxts();

            #region Agregado del saldo a la cta cte del profesional
            oProfesional = ((Modelo_Entidades.Profesional)dgv_profesionales.CurrentRow.DataBoundItem);
            if (cMovimiento.BuscarMovimientoPorDescExpte(oOI.numero) != null) // quiere decir que está, por lo que se tiene que modificar
            {
                oMovimiento = cMovimiento.BuscarMovimientoPorDescExpte(oOI.numero);

                // Lo 1º es sumar el saldo anterior, para que no se siga restando
                oCtaCte = oProfesional.CtaCte;
                oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMovimiento.importe);

                // Luego, hago los 2 cambios que afectan al movimiento
                oMovimiento.fecha = DateTime.Now;
                oMovimiento.importe = ((suma_2) * 0.05);
                //oMovimiento.descripcion = "Débito del expediente número " + oOI.numero.ToString();
                //oMovimiento.CtaCte = oProfesional.CtaCte;
                //oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                //oMovimiento.Comprobante = oBoleta;

                cMovimiento.ModificarMovimiento(oMovimiento);
                //oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(((suma_2) * 0.05));
                cCtaCte.Modificacion(oCtaCte);
            }

            else
            {
                oMovimiento = new Modelo_Entidades.Movimiento();
                oBoleta = new Modelo_Entidades.Boleta();

                oMovimiento.fecha = DateTime.Now;
                oMovimiento.importe = ((suma_2) * 0.05);
                oMovimiento.descripcion = "Débito del expediente número " + oOI.numero.ToString();
                oMovimiento.CtaCte = oProfesional.CtaCte;
                oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                oMovimiento.Comprobante = oBoleta;

                cMovimiento.Alta(oMovimiento);
                oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                oCtaCte = oProfesional.CtaCte;
                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(((suma_2) * 0.05));
                cCtaCte.Modificacion(oCtaCte);
            }
            #endregion
        }
Ejemplo n.º 11
0
        // Liquido los HM
        private void Liquidar_HM()
        {
            // Defino las variables propias del HM
            oHM.dias_de_campo = nud_dias_campo_HM.Value;
            oHM.dias_de_gabinete = nud_dias_gabinete_HM.Value;

            // Lo 1º que hago es eliminar la liquidación anterior
            foreach (Modelo_Entidades.Liquidacion oLiq in cLiquidacion.ObtenerLiquidaciones())
            {
                if (oHM.numero == oLiq.Expediente.numero)
                {
                    cLiquidacion.EliminarLiquidacion(oLiq);
                }
            }

            #region Liquidación del HM
            // Agrego las liquidaciones para que luego pueda modificar sus valores y luegos ponerlas en el datagridview según sea la solapa

            Modelo_Entidades.Liquidacion NuevaLiquidacion_4 = new Modelo_Entidades.Liquidacion();
            NuevaLiquidacion_4.tarea = "Dias de campo liquidados";
            NuevaLiquidacion_4.cantidad = nud_dias_campo_HM.Value;
            NuevaLiquidacion_4.importe = 0.7m; // Esta hardcodeado, pero hay que ponerlo para que lo puedan editar en un cuadro grande con los valores de cada una de las posibles liquidaciones de todas las tareas
            NuevaLiquidacion_4.Expediente = oHM;
            cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_4);
            oHM.Liquidaciones.Add(NuevaLiquidacion_4);

            Modelo_Entidades.Liquidacion NuevaLiquidacion_5 = new Modelo_Entidades.Liquidacion();
            NuevaLiquidacion_5.tarea = "Dias de campo liquidados";
            NuevaLiquidacion_5.cantidad = nud_dias_gabinete_HM.Value;
            NuevaLiquidacion_5.importe = 0.3m; // Esta hardcodeado, pero hay que ponerlo para que lo puedan editar en un cuadro grande con los valores de cada una de las posibles liquidaciones de todas las tareas
            NuevaLiquidacion_5.Expediente = oHM;
            cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_5);
            oHM.Liquidaciones.Add(NuevaLiquidacion_5);

            // Calculo la estrategia
            dgv_liquidaciones_HM.DataSource = cExpediente.LiquidarExpediente(oHM);

            // Finalmente muestro la grilla con los datos

            // Limpio la grilla
            dgv_liquidaciones_HM.DataSource = null;
            // LLeno el binding con los datos que traigo de las entidades
            BsLiquidaciones_HM.DataSource = oHM.Liquidaciones;
            // Asigno el binding a la grilla
            dgv_liquidaciones_HM.DataSource = BsLiquidaciones_HM;
            dgv_liquidaciones_HM.Columns[0].Visible = false;
            dgv_liquidaciones_HM.Columns[1].HeaderText = "Tarea";
            dgv_liquidaciones_HM.Columns[2].HeaderText = "Cantidad";
            dgv_liquidaciones_HM.Columns[3].HeaderText = "Importe";
            dgv_liquidaciones_HM.Columns[4].Visible = false;
            #endregion

            int i_1 = 0;
            double suma_1 = 0;
            while (i_1 < dgv_liquidaciones_HM.Rows.Count)
            {
                if (dgv_liquidaciones_HM.Rows[i_1] != null)
                {
                    suma_1 = Convert.ToDouble(dgv_liquidaciones_HM.Rows[i_1].Cells[3].Value) + suma_1;
                }

                i_1++;
            }

            txt_total_a_liquidar.Text = suma_1.ToString();
            txt_aportes_al_cie.Text = ((suma_1) * 0.05).ToString();
            txt_aportes_a_caja.Text = ((suma_1) * 0.23).ToString();
            txt_total_aportes.Text = (((suma_1) * 0.05) + ((suma_1) * 0.23)).ToString();
            InhabilitarTxts();

            #region Agregado del saldo a la cta cte del profesional
            oProfesional = (Modelo_Entidades.Profesional)dgv_profesionales.CurrentRow.DataBoundItem;
            if (cMovimiento.BuscarMovimientoPorDescExpte(oHM.numero) != null) // quiere decir que está, por lo que se tiene que modificar
            {
                oMovimiento = cMovimiento.BuscarMovimientoPorDescExpte(oHM.numero);

                // Lo 1º es sumar el saldo anterior, para que no se siga restando
                oCtaCte = oProfesional.CtaCte;
                oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMovimiento.importe);

                // Luego, hago los 2 cambios que afectan al movimiento
                oMovimiento.fecha = DateTime.Now;
                oMovimiento.importe = ((suma_1) * 0.05);
                //oMovimiento.descripcion = "Débito del expediente número " + oHM.numero.ToString();
                //oMovimiento.CtaCte = oProfesional.CtaCte;
                //oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                //oMovimiento.Comprobante = oBoleta;

                cMovimiento.ModificarMovimiento(oMovimiento);
                //oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(((suma_1) * 0.05));
                cCtaCte.Modificacion(oCtaCte);
            }

            else
            {
                oMovimiento = new Modelo_Entidades.Movimiento();
                oBoleta = new Modelo_Entidades.Boleta();

                oMovimiento.fecha = DateTime.Now;
                oMovimiento.importe = ((suma_1) * 0.05);
                oMovimiento.descripcion = "Débito del expediente número " + oHM.numero.ToString();
                oMovimiento.CtaCte = oProfesional.CtaCte;
                oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                oMovimiento.Comprobante = oBoleta;

                cMovimiento.Alta(oMovimiento);
                oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                oCtaCte = oProfesional.CtaCte;
                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(((suma_1) * 0.05));
                cCtaCte.Modificacion(oCtaCte);
            }
            #endregion
        }
Ejemplo n.º 12
0
        // Liquido las FE
        private void Liquidar_FE()
        {
            decimal coeficiente_k;

            // Lo 1º que hago es eliminar la liquidación anterior
            foreach (Modelo_Entidades.Liquidacion oLiq in cLiquidacion.ObtenerLiquidaciones())
            {
                if (oFE.numero == oLiq.Expediente.numero)
                {
                    cLiquidacion.EliminarLiquidacion(oLiq);
                }
            }

            oFE.dias_de_campo = nud_dias_campo_FE.Value;
            oFE.dias_de_gabinete = nud_dias_campo_FE.Value;
            oFE.hps = nud_num_hp_FE.Value;
            oFE.bocas = nud_num_bocas_FE.Value;
            oFE.motores = nud_num_motores_FE.Value;

            // Hago los calculos necesarios para obtener el monto de obra
            coeficiente_k = cExpediente.CalcularCoeficienteK(oFE.hps, oFE.bocas, oFE.motores);

            #region Liquidación del FE
            // Agrego las liquidaciones para que luego pueda modificar sus valores y luegos ponerlas en el datagridview según sea la solapa

            // Liquidacion con respecto a los dias de campo
            Modelo_Entidades.Liquidacion NuevaLiquidacion_1 = new Modelo_Entidades.Liquidacion();
            NuevaLiquidacion_1.tarea = "Dias de campo liquidados";
            NuevaLiquidacion_1.cantidad = nud_dias_campo_FE.Value;
            NuevaLiquidacion_1.importe = 0.4m; // Esta hardcodeado, pero hay que ponerlo para que lo puedan editar en un cuadro grande con los valores de cada una de las posibles liquidaciones de todas las tareas
            NuevaLiquidacion_1.Expediente = oFE;
            cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_1);
            oFE.Liquidaciones.Add(NuevaLiquidacion_1);

            // Liquidacion con respecto a los dias de gabinete
            Modelo_Entidades.Liquidacion NuevaLiquidacion_2 = new Modelo_Entidades.Liquidacion();
            NuevaLiquidacion_2.tarea = "Dias de campo liquidados";
            NuevaLiquidacion_2.cantidad = nud_dias_gabinete_FE.Value;
            NuevaLiquidacion_2.importe = 0.3m; // Esta hardcodeado, pero hay que ponerlo para que lo puedan editar en un cuadro grande con los valores de cada una de las posibles liquidaciones de todas las tareas
            NuevaLiquidacion_2.Expediente = oFE;
            cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_2);
            oFE.Liquidaciones.Add(NuevaLiquidacion_2);

            // Liquidación con respecto al trabajo en si
            Modelo_Entidades.Liquidacion NuevaLiquidacion_3 = new Modelo_Entidades.Liquidacion();
            NuevaLiquidacion_3.tarea = "Liquidación básica";
            NuevaLiquidacion_3.cantidad = 1; // Es siempre 1, ya que existe solo 1 liqudiacion
            NuevaLiquidacion_3.importe = (oFE.hps * coeficiente_k * 1290) + (oFE.bocas * 290); // Estan hardcodeados, pero hay que ponerlo para que lo puedan editar en un cuadro grande con los valores de cada una de las posibles liquidaciones de todas las tareas
            NuevaLiquidacion_3.Expediente = oFE;
            cLiquidacion.AgregarLiquidacion(NuevaLiquidacion_3);
            oFE.Liquidaciones.Add(NuevaLiquidacion_3);

            // Calculo la estrategia, y la derivo a la liquidación
            dgv_liquidaciones_FE.DataSource = cExpediente.LiquidarExpediente(oFE);

            // Limpio la grilla
            dgv_liquidaciones_FE.DataSource = null;
            // LLeno el binding con los datos que traigo de las entidades
            BsLiquidaciones_FE.DataSource = oFE.Liquidaciones;
            // Asigno el binding a la grilla
            dgv_liquidaciones_FE.DataSource = BsLiquidaciones_FE;
            dgv_liquidaciones_FE.Columns[0].Visible = false;
            dgv_liquidaciones_FE.Columns[1].HeaderText = "Tarea";
            dgv_liquidaciones_FE.Columns[2].HeaderText = "Cantidad";
            dgv_liquidaciones_FE.Columns[3].HeaderText = "Importe";
            dgv_liquidaciones_FE.Columns[4].Visible = false;
            #endregion

            int i = 0;
            double suma = 0;
            while (i < dgv_liquidaciones_FE.Rows.Count)
            {
                if (dgv_liquidaciones_FE.Rows[i] != null)
                {
                    suma = Convert.ToDouble(dgv_liquidaciones_FE.Rows[i].Cells[3].Value) + suma;
                }

                i++;
            }

            txt_total_a_liquidar.Text = suma.ToString();
            txt_aportes_al_cie.Text = ((suma) * 0.05).ToString();
            txt_aportes_a_caja.Text = ((suma) * 0.23).ToString();
            txt_total_aportes.Text = (((suma) * 0.05) + ((suma) * 0.23)).ToString();
            InhabilitarTxts();

            #region Agregado del saldo a la cta cte del profesional
            oProfesional = (Modelo_Entidades.Profesional)dgv_profesionales.CurrentRow.DataBoundItem;
            if (cMovimiento.BuscarMovimientoPorDescExpte(oFE.numero) != null) // quiere decir que está, por lo que se tiene que modificar
            {
                oMovimiento = cMovimiento.BuscarMovimientoPorDescExpte(oFE.numero);

                // Lo 1º es sumar el saldo anterior, para que no se siga restando
                oCtaCte = oProfesional.CtaCte;
                oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMovimiento.importe);

                // Luego, hago los 2 cambios que afectan al movimiento
                oMovimiento.fecha = DateTime.Now;
                oMovimiento.importe = ((suma) * 0.05);
                //oMovimiento.descripcion = "Débito del expediente número " + oFE.numero.ToString();
                //oMovimiento.CtaCte = oProfesional.CtaCte;
                //oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                //oMovimiento.Comprobante = oBoleta;

                cMovimiento.ModificarMovimiento(oMovimiento);
                //oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(((suma) * 0.05));
                cCtaCte.Modificacion(oCtaCte);
            }

            else
            {
                oMovimiento = new Modelo_Entidades.Movimiento();
                oBoleta = new Modelo_Entidades.Boleta();

                oMovimiento.fecha = DateTime.Now;
                oMovimiento.importe = ((suma) * 0.05);
                oMovimiento.descripcion = "Débito del expediente número " + oFE.numero.ToString();
                oMovimiento.CtaCte = oProfesional.CtaCte;
                oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                oMovimiento.Comprobante = oBoleta;

                cMovimiento.Alta(oMovimiento);
                oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                oCtaCte = oProfesional.CtaCte;
                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(((suma) * 0.05));
                cCtaCte.Modificacion(oCtaCte);
            }
            #endregion
        }
Ejemplo n.º 13
0
 // Modifico a un Movimiento
 public void ModificarMovimiento(Modelo_Entidades.Movimiento oMovimiento)
 {
     oModelo_Entidades.ApplyCurrentValues("Movimientos", oMovimiento);
     oModelo_Entidades.SaveChanges();
 }
Ejemplo n.º 14
0
 // Elimino a un Movimiento
 public void Baja(Modelo_Entidades.Movimiento oMovimiento)
 {
     oModelo_Entidades.DeleteObject(oMovimiento);
     oModelo_Entidades.SaveChanges();
 }
Ejemplo n.º 15
0
        // Cuando le doy a imprimir, también cobro la matrícula. Por ahora solo la cobra. No se realizó la impresión de la factura
        private void btn_imprimir_Click(object sender, EventArgs e)
        {
            switch (concepto)
            {
                case "Cuota":
                    #region Cobro de cuota
                    oCtaCte = miProfesional.CtaCte;
                    Modelo_Entidades.Auditoria_Cuota oLog_Cuota;

                    if (ListaCuotas.Count == 0)
                    {
                        MessageBox.Show("Debe seleccionar al menos 1 cuota para cobrar");
                    }

                    else
                    {
                        foreach (Modelo_Entidades.Cuota oCuo in ListaCuotas)
                        {
                            #region Audito la cuota
                    oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();
                    oLog_Cuota.estado = false;
                    oLog_Cuota.descripcion = oCuo.descripcion;
                    oLog_Cuota.Profesional_dni = oCuo.Profesional.dni;
                    oLog_Cuota.usuario = miUsuario.nombre_apellido;
                    oLog_Cuota.fecha = DateTime.Now;
                    oLog_Cuota.accion = "Modificación de cuota al profesional " + oCuo.Profesional.nombre_apellido;
                    cAuditoria.AuditarCuota(oLog_Cuota);
                    #endregion

                            oCuo.estado = true;
                        }

                        // 1º Creo un una nueva factura
                        oFactura = new Modelo_Entidades.Factura();

                        int i = 0;
                        double suma = 0;

                        // 2º Cargo los datos de la factura
                        oFactura.cantidad = 1;
                        oFactura.descripcion = "Pago de cuotas";
                        oFactura.precio_unitario = 1;

                        foreach (Modelo_Entidades.Movimiento oMov in ListaMovimientos) // Acá saldo a cada movimiento que genero la cuota, con otro movimiento igual, pero con distinto tipo y le coloco la misma factura
                        {
                            oMovimiento = new Modelo_Entidades.Movimiento();
                            oMovimiento.fecha = DateTime.Now;
                            oMovimiento.importe = oMov.importe;
                            oMovimiento.descripcion = oMov.descripcion;
                            oMovimiento.CtaCte = miProfesional.CtaCte;
                            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Acreedor();

                            while (i < dgv_factura.Rows.Count)
                            {
                                if (dgv_factura.Rows[i] != null)
                                {
                                    suma = Convert.ToDouble(dgv_factura.Rows[i].Cells[2].Value) + suma;
                                }

                                i++;
                            }

                            oFactura.importe = Convert.ToDecimal(suma);
                            oFactura.total = Convert.ToDecimal(suma);

                            oMovimiento.Comprobante = oFactura;
                            cMovimiento.Alta(oMovimiento);

                            oFactura.Movimientos.Add(oMovimiento);
                            miProfesional.CtaCte.Movimientos.Add(oMovimiento);

                            oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMov.importe);
                            //miProfesional.CtaCte.saldo = miProfesional.CtaCte.saldo + Convert.ToDecimal(oMov.importe); // Sumo al saldo, cuando el profesional termina de pagar

                            // Elimino todos los movimientos bimensuales del año que le cobré
                            string año = oMov.descripcion.Substring(oMov.descripcion.Length - Math.Min(4, oMov.descripcion.Length));
                            if (oMov.descripcion.Contains("anual") == true) // Quiere decir que pagó la cuota anual
                            {
                                foreach (Modelo_Entidades.Movimiento oMovi in cMovimiento.ObtenerMovimientos())
                                {
                                    if (oMovi.descripcion.Contains("/") && oMovi.descripcion.Contains(año) && oMovi.CtaCte.id == miProfesional.CtaCte.id) // Pregunto por las cuotas de ese año que pagó
                                    {
                                        //miProfesional.CtaCte.saldo = miProfesional.CtaCte.saldo + Convert.ToDecimal(oMovi.importe);
                                        Modelo_Entidades.Cuota CuotaAEliminar = cCuota.ObtenerCuota(oMovi.descripcion, miProfesional.dni);

                                        if (CuotaAEliminar != null) // Solo resto cuando elimino la cuota
                                        {
                                            #region Audito la cuota
                                            oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();
                                            oLog_Cuota.estado = false;
                                            oLog_Cuota.descripcion = CuotaAEliminar.descripcion;
                                            oLog_Cuota.Profesional_dni = CuotaAEliminar.Profesional.dni;
                                            oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                            oLog_Cuota.fecha = DateTime.Now;
                                            oLog_Cuota.accion = "Eliminacíón de cuota bimensual al profesional " + CuotaAEliminar.Profesional.nombre_apellido;
                                            cAuditoria.AuditarCuota(oLog_Cuota);
                                            #endregion

                                            oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMovi.importe); // Sumo al saldo, ya que le estoy anulando la cuota
                                            cCuota.EliminarCuota(CuotaAEliminar); // Entonces debo eliminar las cuotas de ese año
                                        }

                                        cCtaCte.Modificacion(oCtaCte);
                                    }
                                }
                            }

                            else
                            {
                                Modelo_Entidades.Cuota CuotaAEliminar = cCuota.ObtenerCuota(("Cuota anual año " + año), miProfesional.dni);

                                if (CuotaAEliminar != null) // Solo resto cuando elimino la cuota
                                {
                                    double valor = (cMovimiento.BuscarMovimientoPorCuotaYProf("Cuota anual año " + año, miProfesional.CtaCte.id).importe);

                                    #region Audito la cuota
                                    oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();
                                    oLog_Cuota.estado = false;
                                    oLog_Cuota.descripcion = CuotaAEliminar.descripcion;
                                    oLog_Cuota.Profesional_dni = CuotaAEliminar.Profesional.dni;
                                    oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                    oLog_Cuota.fecha = DateTime.Now;
                                    oLog_Cuota.accion = "Eliminacíón de cuota anual al profesional " + CuotaAEliminar.Profesional.nombre_apellido;
                                    cAuditoria.AuditarCuota(oLog_Cuota);
                                    #endregion

                                    oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(valor); // Sumo al saldo, ya que le estoy anulando la cuota
                                    cCuota.EliminarCuota(CuotaAEliminar); // Entonces debo eliminar las cuotas de ese año
                                }

                                cCtaCte.Modificacion(oCtaCte);
                            }
                        }

                        // Después de cobrarle hago la verificación de si 1º no tiene deudas de otros años y 2º si tiene paga la 1º o la cuota anual del año en curso

                        // El mayor es por los intereses. Además se podría colocar que  el saldo debe ser mayor o igual a 0, pero el colegio no lo toma como requisito (&& miProfesional.CtaCte.saldo >= 0)
                        if (((cCuota.ObtenerSiElProfPago(miProfesional, ("Cuota " + "1" + "/" + DateTime.Now.Year.ToString()), DateTime.Now.Year.ToString())) == true))
                        {
                            miProfesional.Estado = cEstado.ObtenerEstadoHabilitado();
                            cProfesional.Modificacion(miProfesional);
                        }

                        txt_total.Text = suma.ToString();

                        FormularioImpresionRecibo = new FrmImprimirRecibo(oFactura.id);
                        DialogResult DrLogin = FormularioImpresionRecibo.ShowDialog();

                        this.Close();
                    }
            #endregion
                    break;
                case "Expediente":
                    #region Cobro de expediente

                    // Cambio el estado del expediente a pagado
                    oExpediente.estado = "Pagado";
                    oExpediente.fecha_pago = DateTime.Now;
                    oCtaCte = miProfesional.CtaCte;

                    // 1º Creo un una nueva factura
                    oFactura = new Modelo_Entidades.Factura();

                    int i_1 = 0;
                    double suma_1 = 0;

                    // 2º Cargo los datos de la factura
                    oFactura.cantidad = 1;
                    oFactura.descripcion = "Pago de expediente";
                    oFactura.precio_unitario = 1;

                    Modelo_Entidades.Movimiento oMovi_expte = new Modelo_Entidades.Movimiento();
                    oMovi_expte.fecha = DateTime.Now;
                    oMovi_expte.importe = oMovimiento.importe;
                    oMovi_expte.descripcion = "Pago expediente número " + oExpediente.numero;
                    oMovi_expte.CtaCte = miProfesional.CtaCte;
                    oMovi_expte.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Acreedor();

                    while (i_1 < dgv_factura.Rows.Count)
                    {
                        if (dgv_factura.Rows[i_1] != null)
                        {
                            suma_1 = Convert.ToDouble(dgv_factura.Rows[i_1].Cells[2].Value) + suma_1;
                        }

                        i_1++;
                    }

                    oFactura.importe = Convert.ToDecimal(suma_1);
                    oFactura.total = Convert.ToDecimal(suma_1);

                    oMovi_expte.Comprobante = oFactura;
                    cMovimiento.Alta(oMovi_expte);

                    oFactura.Movimientos.Add(oMovi_expte);
                    miProfesional.CtaCte.Movimientos.Add(oMovi_expte);

                    oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMovi_expte.importe);

                    FormularioImpresionRecibo = new FrmImprimirRecibo(oFactura.id);
                    DialogResult DrLogin_1 = FormularioImpresionRecibo.ShowDialog();

                    this.Close();
                    #endregion
                    break;
            }
        }
Ejemplo n.º 16
0
        // Cuando le doy click a "Aceptar"
        private void btn_aceptar_Click(object sender, EventArgs e)
        {
            if (chk_intereses.Checked == true)
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    TimeSpan dif = DateTime.Now - oMovimiento.fecha;
                    oMovimiento.importe = cCuota.ObtenerValor_Couta_Interes(cCuota.ObtenerValor_Tipo_Couta((oCuota)), dif.Days);
                    ListadoMovimientos.Add(oMovimiento);
                }
            }

            else
            {
                foreach (Modelo_Entidades.Cuota oCuota in ListadoCuotas)
                {
                    oMovimiento = cMovimiento.BuscarMovimientoPorCuotaYProf(oCuota.descripcion, miProfesional.CtaCte.id);
                    ListadoMovimientos.Add(oMovimiento);
                }
            }

            this.DialogResult = DialogResult.OK;
        }
Ejemplo n.º 17
0
        // Cuando le doy click a generar la cuota
        private void btn_generar_Click(object sender, EventArgs e)
        {
            FrmImprimirBoleta FormularioImpresionBoleta;
            Modelo_Entidades.CtaCte oCtaCte;
            Modelo_Entidades.Boleta oBoleta;
            Modelo_Entidades.Movimiento oMovimiento;
            Modelo_Entidades.Anual oAnual;
            Modelo_Entidades.Bimensual oBimensual;

            Modelo_Entidades.Auditoria_Cuota oLog_Cuota;

            if (ValidarDatos())
            {
                string tipo_de_cuota = cmb_tipo_matricula.SelectedItem.ToString();

                #region Generación de cuota anual
                if (rbtn_anual.Checked == true) // genero la anual y la 1º
                {
                    switch (tipo_de_cuota)
                    {
                        case ("Normal"):

                            foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesNormales())
                            {
                                oCtaCte = oProfesional.CtaCte;
                                oBoleta = new Modelo_Entidades.Boleta();
                                oMovimiento = new Modelo_Entidades.Movimiento();
                                oAnual = new Modelo_Entidades.Anual();
                                oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

                                oMovimiento.fecha = DateTime.Now;
                                oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor(), 2);
                                oMovimiento.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oAnual.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oAnual.estado = false;
                                oAnual.Profesional = oProfesional;
                                cCuota.AgregarCuota(oAnual);

                                #region Audito la cuota
                                oLog_Cuota.estado = false;
                                oLog_Cuota.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oLog_Cuota.Profesional_dni = oProfesional.dni;
                                oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                oLog_Cuota.fecha = DateTime.Now;
                                oLog_Cuota.accion = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
                                cAuditoria.AuditarCuota(oLog_Cuota);
                                #endregion

                                oMovimiento.CtaCte = oProfesional.CtaCte;
                                oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                oMovimiento.Comprobante = oBoleta;

                                cMovimiento.Alta(oMovimiento);

                                oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                cCtaCte.Modificacion(oCtaCte);
                            }

                            FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "Cuota anual año " + nud_año.Value.ToString(), 1);
                            DialogResult DrLogin = FormularioImpresionBoleta.ShowDialog();

                            break;

                        case ("Relación de Dependencia"):

                            foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnRelacionDeDependencia())
                            {
                                oCtaCte = oProfesional.CtaCte;
                                oBoleta = new Modelo_Entidades.Boleta();
                                oMovimiento = new Modelo_Entidades.Movimiento();
                                oAnual = new Modelo_Entidades.Anual();
                                oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

                                oMovimiento.fecha = DateTime.Now;
                                oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor() * 0.7, 2); // EL PORCENTAJE ESTÁ HARKODEADO, DE TODAS FORMAS ESE ES EL VALOR QUE ANUALMENTE EL COLEGIO DISPONE
                                oMovimiento.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oAnual.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oAnual.estado = false;
                                oAnual.Profesional = oProfesional;
                                cCuota.AgregarCuota(oAnual);

                                #region Audito la cuota
                                oLog_Cuota.estado = false;
                                oLog_Cuota.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oLog_Cuota.Profesional_dni = oProfesional.dni;
                                oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                oLog_Cuota.fecha = DateTime.Now;
                                oLog_Cuota.accion = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
                                cAuditoria.AuditarCuota(oLog_Cuota);
                                #endregion

                                oMovimiento.CtaCte = oProfesional.CtaCte;
                                oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                oMovimiento.Comprobante = oBoleta;

                                cMovimiento.Alta(oMovimiento);

                                oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                cCtaCte.Modificacion(oCtaCte);
                            }

                            FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "anual", 2);
                            DialogResult DrLogin1 = FormularioImpresionBoleta.ShowDialog();

                            break;

                        case ("Reciprocidad de Matrícula"):

                            foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnReciprocidadDeMatricula())
                            {
                                oCtaCte = oProfesional.CtaCte;
                                oBoleta = new Modelo_Entidades.Boleta();
                                oMovimiento = new Modelo_Entidades.Movimiento();
                                oAnual = new Modelo_Entidades.Anual();
                                oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

                                oMovimiento.fecha = DateTime.Now;
                                oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor(), 2);
                                oMovimiento.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oAnual.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oAnual.estado = false;
                                oAnual.Profesional = oProfesional;
                                cCuota.AgregarCuota(oAnual);

                                #region Audito la cuota
                                oLog_Cuota.estado = false;
                                oLog_Cuota.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                                oLog_Cuota.Profesional_dni = oProfesional.dni;
                                oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                oLog_Cuota.fecha = DateTime.Now;
                                oLog_Cuota.accion = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
                                cAuditoria.AuditarCuota(oLog_Cuota);
                                #endregion

                                oMovimiento.CtaCte = oProfesional.CtaCte;
                                oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                oMovimiento.Comprobante = oBoleta;

                                cMovimiento.Alta(oMovimiento);

                                oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                cCtaCte.Modificacion(oCtaCte);
                            }

                            FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "anual", 3);
                            DialogResult DrLogin2 = FormularioImpresionBoleta.ShowDialog();

                            break;
                    }
                }
                #endregion

                #region Generación de cuota bimensual
                if (rbtn_bimensual.Checked == true)
                {
                    switch (tipo_de_cuota)
                    {
                        case ("Normal"):

                            foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesNormales())
                            {
                                oCtaCte = oProfesional.CtaCte;
                                oBoleta = new Modelo_Entidades.Boleta();
                                oMovimiento = new Modelo_Entidades.Movimiento();
                                oBimensual = new Modelo_Entidades.Bimensual();
                                oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

                                if (cCuota.ObtenerSiElProfPago(oProfesional, "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString(), nud_año.Value.ToString()) == false)
                                {
                                    oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
                                    oMovimiento.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oBimensual.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oBimensual.estado = false;
                                    oBimensual.Profesional = oProfesional;
                                    cCuota.AgregarCuota(oBimensual);

                                    #region Audito la cuota
                                    oLog_Cuota.estado = false;
                                    oLog_Cuota.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oLog_Cuota.Profesional_dni = oProfesional.dni;
                                    oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                    oLog_Cuota.fecha = DateTime.Now;
                                    oLog_Cuota.accion = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
                                    cAuditoria.AuditarCuota(oLog_Cuota);
                                    #endregion

                                    oMovimiento.fecha = DateTime.Now;
                                    oMovimiento.CtaCte = oProfesional.CtaCte;
                                    oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                    oMovimiento.Comprobante = oBoleta;

                                    cMovimiento.Alta(oMovimiento);

                                    oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                    oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                    cCtaCte.Modificacion(oCtaCte);
                                }
                            }

                            FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "/", 1);
                            DialogResult DrLogin = FormularioImpresionBoleta.ShowDialog();

                            break;

                        case ("Relación de Dependencia"):

                            foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnRelacionDeDependencia())
                            {
                                // Esto verifica si el profesional pagó la anual, no la genere las cuotas bimensuales y el que esté en relación de dependencia, la 5° y 6° cuota no las pague
                                if (cCuota.ObtenerSiElProfPago(oProfesional, "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString(), nud_año.Value.ToString()) == false)
                                {
                                    oCtaCte = oProfesional.CtaCte;
                                    oBoleta = new Modelo_Entidades.Boleta();
                                    oMovimiento = new Modelo_Entidades.Movimiento();
                                    oBimensual = new Modelo_Entidades.Bimensual();
                                    oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

                                    if (nud_cuontas_numeros.Value.ToString() != "5" || nud_cuontas_numeros.Value.ToString() != "6")
                                    {
                                        oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
                                        oMovimiento.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                        oBimensual.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                        oBimensual.estado = false;
                                        oBimensual.Profesional = oProfesional;
                                        cCuota.AgregarCuota(oBimensual);

                                        #region Audito la cuota
                                        oLog_Cuota.estado = false;
                                        oLog_Cuota.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                        oLog_Cuota.Profesional_dni = oProfesional.dni;
                                        oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                        oLog_Cuota.fecha = DateTime.Now;
                                        oLog_Cuota.accion = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
                                        cAuditoria.AuditarCuota(oLog_Cuota);
                                        #endregion

                                        oMovimiento.fecha = DateTime.Now;
                                        oMovimiento.CtaCte = oProfesional.CtaCte;
                                        oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                        oMovimiento.Comprobante = oBoleta;

                                        cMovimiento.Alta(oMovimiento);

                                        oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                        oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                        cCtaCte.Modificacion(oCtaCte);
                                    }
                                }
                            }

                            FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "/", 2);
                            DialogResult DrLogin1 = FormularioImpresionBoleta.ShowDialog();
                            break;

                        case ("Reciprocidad de Matrícula"):

                            foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnReciprocidadDeMatricula())
                            {
                                // Esto verifica si el profesional pagó la anual, no la genere las cuotas bimensuales y el que esté en relación de dependencia, la 5° y 6° cuota no las pague
                                if (cCuota.ObtenerSiElProfPago(oProfesional, "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString(), nud_año.Value.ToString()) == false)
                                {
                                    oCtaCte = oProfesional.CtaCte;
                                    oBoleta = new Modelo_Entidades.Boleta();
                                    oMovimiento = new Modelo_Entidades.Movimiento();
                                    oBimensual = new Modelo_Entidades.Bimensual();
                                    oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

                                    if (nud_cuontas_numeros.Value.ToString() != "5" || nud_cuontas_numeros.Value.ToString() != "6")
                                    {
                                        oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
                                        oMovimiento.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                        oBimensual.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                        oBimensual.estado = false;
                                        oBimensual.Profesional = oProfesional;
                                        cCuota.AgregarCuota(oBimensual);

                                        #region Audito la cuota
                                        oLog_Cuota.estado = false;
                                        oLog_Cuota.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                        oLog_Cuota.Profesional_dni = oProfesional.dni;
                                        oLog_Cuota.usuario = miUsuario.nombre_apellido;
                                        oLog_Cuota.fecha = DateTime.Now;
                                        oLog_Cuota.accion = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
                                        cAuditoria.AuditarCuota(oLog_Cuota);
                                        #endregion

                                        oMovimiento.fecha = DateTime.Now;
                                        oMovimiento.CtaCte = oProfesional.CtaCte;
                                        oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                        oMovimiento.Comprobante = oBoleta;

                                        cMovimiento.Alta(oMovimiento);

                                        oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                        oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                        cCtaCte.Modificacion(oCtaCte);
                                    }
                                }
                            }

                            FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "/", 3);
                            DialogResult DrLogin2 = FormularioImpresionBoleta.ShowDialog();
                            break;
                    }
                }
            # endregion

            }

            this.Close();
        }
Ejemplo n.º 18
0
        // Genero la cuota anual para un nuevo profesional
        private void GeneraCuotaAnual(Modelo_Entidades.Profesional oProfesional)
        {
            oCtaCte = oProfesional.CtaCte;
            Modelo_Entidades.Boleta oBoleta = new Modelo_Entidades.Boleta();
            Modelo_Entidades.Movimiento oMovimiento = new Modelo_Entidades.Movimiento();
            oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

            oMovimiento.fecha = DateTime.Now;

            Modelo_Entidades.Anual oAnual = new Modelo_Entidades.Anual();
            if (oProfesional.Tipo_Matricula.descripcion == "Relación de Dependencia")
            {
                oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor() * 0.7, 2); // EL PORCENTAJE ESTÁ HARKODEADO, DE TODAS FORMAS ESE ES EL VALOR QUE ANUALMENTE EL COLEGIO DISPONE
            }

            else
            {
                oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor(), 2);
            }

            oMovimiento.descripcion = "Cuota anual año " + DateTime.Now.Year.ToString();
            oAnual.descripcion = "Cuota anual año " + DateTime.Now.Year.ToString();
            oAnual.estado = false;
            oAnual.Profesional = oProfesional;
            cCuota.AgregarCuota(oAnual);

            #region Audito la cuota
            oLog_Cuota.estado = false;
            oLog_Cuota.descripcion = "Cuota anual año " + DateTime.Now.Year.ToString();
            oLog_Cuota.Profesional_dni = oProfesional.dni;
            oLog_Cuota.usuario = miUsuario.nombre_apellido;
            oLog_Cuota.fecha = DateTime.Now;
            oLog_Cuota.accion = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
            cAuditoria.AuditarCuota(oLog_Cuota);
            #endregion

            oMovimiento.fecha = DateTime.Now;
            oMovimiento.CtaCte = oProfesional.CtaCte;
            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
            oMovimiento.Comprobante = oBoleta;

            cMovimiento.Alta(oMovimiento);

            oProfesional.CtaCte.Movimientos.Add(oMovimiento);

            oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);

            cCtaCte.Modificacion(oCtaCte);
        }
Ejemplo n.º 19
0
        // Cuando le doy a imprimir, también cobro la matrícula. Por ahora solo la cobra. No se realizó la impresión de la factura
        private void btn_imprimir_Click(object sender, EventArgs e)
        {
            switch (concepto)
            {
            case "Cuota":
                #region Cobro de cuota
                oCtaCte = miProfesional.CtaCte;
                Modelo_Entidades.Auditoria_Cuota oLog_Cuota;

                if (ListaCuotas.Count == 0)
                {
                    MessageBox.Show("Debe seleccionar al menos 1 cuota para cobrar");
                }

                else
                {
                    foreach (Modelo_Entidades.Cuota oCuo in ListaCuotas)
                    {
                        #region Audito la cuota
                        oLog_Cuota                 = new Modelo_Entidades.Auditoria_Cuota();
                        oLog_Cuota.estado          = false;
                        oLog_Cuota.descripcion     = oCuo.descripcion;
                        oLog_Cuota.Profesional_dni = oCuo.Profesional.dni;
                        oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                        oLog_Cuota.fecha           = DateTime.Now;
                        oLog_Cuota.accion          = "Modificación de cuota al profesional " + oCuo.Profesional.nombre_apellido;
                        cAuditoria.AuditarCuota(oLog_Cuota);
                        #endregion

                        oCuo.estado = true;
                    }

                    // 1º Creo un una nueva factura
                    oFactura = new Modelo_Entidades.Factura();

                    int    i    = 0;
                    double suma = 0;

                    // 2º Cargo los datos de la factura
                    oFactura.cantidad        = 1;
                    oFactura.descripcion     = "Pago de cuotas";
                    oFactura.precio_unitario = 1;

                    foreach (Modelo_Entidades.Movimiento oMov in ListaMovimientos)     // Acá saldo a cada movimiento que genero la cuota, con otro movimiento igual, pero con distinto tipo y le coloco la misma factura
                    {
                        oMovimiento                 = new Modelo_Entidades.Movimiento();
                        oMovimiento.fecha           = DateTime.Now;
                        oMovimiento.importe         = oMov.importe;
                        oMovimiento.descripcion     = oMov.descripcion;
                        oMovimiento.CtaCte          = miProfesional.CtaCte;
                        oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Acreedor();

                        while (i < dgv_factura.Rows.Count)
                        {
                            if (dgv_factura.Rows[i] != null)
                            {
                                suma = Convert.ToDouble(dgv_factura.Rows[i].Cells[2].Value) + suma;
                            }

                            i++;
                        }

                        oFactura.importe = Convert.ToDecimal(suma);
                        oFactura.total   = Convert.ToDecimal(suma);

                        oMovimiento.Comprobante = oFactura;
                        cMovimiento.Alta(oMovimiento);

                        oFactura.Movimientos.Add(oMovimiento);
                        miProfesional.CtaCte.Movimientos.Add(oMovimiento);

                        oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMov.importe);
                        //miProfesional.CtaCte.saldo = miProfesional.CtaCte.saldo + Convert.ToDecimal(oMov.importe); // Sumo al saldo, cuando el profesional termina de pagar

                        // Elimino todos los movimientos bimensuales del año que le cobré
                        string año = oMov.descripcion.Substring(oMov.descripcion.Length - Math.Min(4, oMov.descripcion.Length));
                        if (oMov.descripcion.Contains("anual") == true)     // Quiere decir que pagó la cuota anual
                        {
                            foreach (Modelo_Entidades.Movimiento oMovi in cMovimiento.ObtenerMovimientos())
                            {
                                if (oMovi.descripcion.Contains("/") && oMovi.descripcion.Contains(año) && oMovi.CtaCte.id == miProfesional.CtaCte.id)     // Pregunto por las cuotas de ese año que pagó
                                {
                                    //miProfesional.CtaCte.saldo = miProfesional.CtaCte.saldo + Convert.ToDecimal(oMovi.importe);
                                    Modelo_Entidades.Cuota CuotaAEliminar = cCuota.ObtenerCuota(oMovi.descripcion, miProfesional.dni);

                                    if (CuotaAEliminar != null)     // Solo resto cuando elimino la cuota
                                    {
                                        #region Audito la cuota
                                        oLog_Cuota                 = new Modelo_Entidades.Auditoria_Cuota();
                                        oLog_Cuota.estado          = false;
                                        oLog_Cuota.descripcion     = CuotaAEliminar.descripcion;
                                        oLog_Cuota.Profesional_dni = CuotaAEliminar.Profesional.dni;
                                        oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                                        oLog_Cuota.fecha           = DateTime.Now;
                                        oLog_Cuota.accion          = "Eliminacíón de cuota bimensual al profesional " + CuotaAEliminar.Profesional.nombre_apellido;
                                        cAuditoria.AuditarCuota(oLog_Cuota);
                                        #endregion

                                        oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMovi.importe); // Sumo al saldo, ya que le estoy anulando la cuota
                                        cCuota.EliminarCuota(CuotaAEliminar);                             // Entonces debo eliminar las cuotas de ese año
                                    }

                                    cCtaCte.Modificacion(oCtaCte);
                                }
                            }
                        }

                        else
                        {
                            Modelo_Entidades.Cuota CuotaAEliminar = cCuota.ObtenerCuota(("Cuota anual año " + año), miProfesional.dni);

                            if (CuotaAEliminar != null)     // Solo resto cuando elimino la cuota
                            {
                                double valor = (cMovimiento.BuscarMovimientoPorCuotaYProf("Cuota anual año " + año, miProfesional.CtaCte.id).importe);

                                #region Audito la cuota
                                oLog_Cuota                 = new Modelo_Entidades.Auditoria_Cuota();
                                oLog_Cuota.estado          = false;
                                oLog_Cuota.descripcion     = CuotaAEliminar.descripcion;
                                oLog_Cuota.Profesional_dni = CuotaAEliminar.Profesional.dni;
                                oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                                oLog_Cuota.fecha           = DateTime.Now;
                                oLog_Cuota.accion          = "Eliminacíón de cuota anual al profesional " + CuotaAEliminar.Profesional.nombre_apellido;
                                cAuditoria.AuditarCuota(oLog_Cuota);
                                #endregion

                                oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(valor); // Sumo al saldo, ya que le estoy anulando la cuota
                                cCuota.EliminarCuota(CuotaAEliminar);                     // Entonces debo eliminar las cuotas de ese año
                            }

                            cCtaCte.Modificacion(oCtaCte);
                        }
                    }

                    // Después de cobrarle hago la verificación de si 1º no tiene deudas de otros años y 2º si tiene paga la 1º o la cuota anual del año en curso

                    // El mayor es por los intereses. Además se podría colocar que  el saldo debe ser mayor o igual a 0, pero el colegio no lo toma como requisito (&& miProfesional.CtaCte.saldo >= 0)
                    if (((cCuota.ObtenerSiElProfPago(miProfesional, ("Cuota " + "1" + "/" + DateTime.Now.Year.ToString()), DateTime.Now.Year.ToString())) == true))
                    {
                        miProfesional.Estado = cEstado.ObtenerEstadoHabilitado();
                        cProfesional.Modificacion(miProfesional);
                    }

                    txt_total.Text = suma.ToString();

                    FormularioImpresionRecibo = new FrmImprimirRecibo(oFactura.id);
                    DialogResult DrLogin = FormularioImpresionRecibo.ShowDialog();

                    this.Close();
                }
                #endregion
                break;

            case "Expediente":
                #region Cobro de expediente

                // Cambio el estado del expediente a pagado
                oExpediente.estado     = "Pagado";
                oExpediente.fecha_pago = DateTime.Now;
                oCtaCte = miProfesional.CtaCte;

                // 1º Creo un una nueva factura
                oFactura = new Modelo_Entidades.Factura();

                int    i_1    = 0;
                double suma_1 = 0;

                // 2º Cargo los datos de la factura
                oFactura.cantidad        = 1;
                oFactura.descripcion     = "Pago de expediente";
                oFactura.precio_unitario = 1;

                Modelo_Entidades.Movimiento oMovi_expte = new Modelo_Entidades.Movimiento();
                oMovi_expte.fecha           = DateTime.Now;
                oMovi_expte.importe         = oMovimiento.importe;
                oMovi_expte.descripcion     = "Pago expediente número " + oExpediente.numero;
                oMovi_expte.CtaCte          = miProfesional.CtaCte;
                oMovi_expte.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Acreedor();

                while (i_1 < dgv_factura.Rows.Count)
                {
                    if (dgv_factura.Rows[i_1] != null)
                    {
                        suma_1 = Convert.ToDouble(dgv_factura.Rows[i_1].Cells[2].Value) + suma_1;
                    }

                    i_1++;
                }

                oFactura.importe = Convert.ToDecimal(suma_1);
                oFactura.total   = Convert.ToDecimal(suma_1);

                oMovi_expte.Comprobante = oFactura;
                cMovimiento.Alta(oMovi_expte);

                oFactura.Movimientos.Add(oMovi_expte);
                miProfesional.CtaCte.Movimientos.Add(oMovi_expte);

                oCtaCte.saldo = oCtaCte.saldo + Convert.ToDecimal(oMovi_expte.importe);

                FormularioImpresionRecibo = new FrmImprimirRecibo(oFactura.id);
                DialogResult DrLogin_1 = FormularioImpresionRecibo.ShowDialog();

                this.Close();
                #endregion
                break;
            }
        }
Ejemplo n.º 20
0
        // Genero la cuota bimensual para un nuevo profesional
        private void GeneraCuotaBimensual(Modelo_Entidades.Profesional oProfesional, int mes)
        {
            int numero = mes;
            switch (numero)
            {
                case 1:
                    numero = 1;
                    break;
                case 2:
                    numero = 1;
                    break;
                case 3:
                    numero = 2;
                    break;
                case 4:
                    numero = 2;
                    break;
                case 5:
                    numero = 3;
                    break;
                case 6:
                    numero = 3;
                    break;
                case 7:
                    numero = 4;
                    break;
                case 8:
                    numero = 4;
                    break;
                case 9:
                    numero = 5;
                    break;
                case 10:
                    numero = 5;
                    break;
                case 11:
                    numero = 6;
                    break;
                case 12:
                    numero = 6;
                    break;
            }

            oCtaCte = oProfesional.CtaCte;
            Modelo_Entidades.Boleta oBoleta = new Modelo_Entidades.Boleta();
            Modelo_Entidades.Movimiento oMovimiento = new Modelo_Entidades.Movimiento();
            oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

            oMovimiento.fecha = DateTime.Now;

            Modelo_Entidades.Bimensual oBimensual = new Modelo_Entidades.Bimensual();
            // Esto verifica si el profesional pagó la anual, no la genere las cuotas bimensuales y el que esté en relación de dependencia, la 5° y 6° cuota no las pague

            oMovimiento.importe = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
            oMovimiento.descripcion = "Cuota " + numero.ToString() + "/" + DateTime.Now.Year.ToString();
            oBimensual.descripcion = "Cuota " + numero.ToString() + "/" + DateTime.Now.Year.ToString();
            oBimensual.estado = false;
            oBimensual.Profesional = oProfesional;
            cCuota.AgregarCuota(oBimensual);

            #region Audito la cuota
            oLog_Cuota.estado = false;
            oLog_Cuota.descripcion = "Cuota " + numero.ToString() + "/" + DateTime.Now.Year.ToString();
            oLog_Cuota.Profesional_dni = oProfesional.dni;
            oLog_Cuota.usuario = miUsuario.nombre_apellido;
            oLog_Cuota.fecha = DateTime.Now;
            oLog_Cuota.accion = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
            cAuditoria.AuditarCuota(oLog_Cuota);
            #endregion

            oMovimiento.fecha = DateTime.Now;
            oMovimiento.CtaCte = oProfesional.CtaCte;
            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
            oMovimiento.Comprobante = oBoleta;

            cMovimiento.Alta(oMovimiento);

            oProfesional.CtaCte.Movimientos.Add(oMovimiento);

            oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
        }
Ejemplo n.º 21
0
        // Armo la factura en un datagridview del expediente
        private void ArmaFacturaExpte()
        {
            // Limpio la grilla
            dgv_factura.DataSource = null;
            // LLeno el binding con los datos que traigo del movimiento deudor que generó el expediente
            oMovimiento = cMovimiento.BuscarMovimientoPorDescExpte(oExpediente.numero);
            oMovimiento.descripcion = "Pago expediente número " + oExpediente.numero;
            BsFactura.DataSource = oMovimiento;
            // Asigno el binding a la grilla
            dgv_factura.DataSource = BsFactura;
            dgv_factura.Columns[0].Visible = false;
            dgv_factura.Columns[1].HeaderText = "Concepto";
            dgv_factura.Columns[2].HeaderText = "Importe";
            dgv_factura.Columns[3].HeaderText = "Fecha de emisión";
            dgv_factura.Columns[4].Visible = false;
            dgv_factura.Columns[5].Visible = false;
            dgv_factura.Columns[6].HeaderText = "Nº de boleta";

            int i = 0;
            double suma = 0;
            while (i < dgv_factura.Rows.Count)
            {
                if (dgv_factura.Rows[i] != null)
                {
                    suma = Convert.ToDouble(dgv_factura.Rows[i].Cells[2].Value) + suma;
                }

                i++;
            }

            txt_total.Text = suma.ToString();
        }
Ejemplo n.º 22
0
 // Dar de alta a un nuevo movimiento
 public void Alta(Modelo_Entidades.Movimiento oMovimiento)
 {
     oModelo_Entidades.AddToMovimientos(oMovimiento);
     oModelo_Entidades.SaveChanges();
 }
Ejemplo n.º 23
0
        // Cuando le doy click a generar la cuota
        private void btn_generar_Click(object sender, EventArgs e)
        {
            FrmImprimirBoleta FormularioImpresionBoleta;

            Modelo_Entidades.CtaCte     oCtaCte;
            Modelo_Entidades.Boleta     oBoleta;
            Modelo_Entidades.Movimiento oMovimiento;
            Modelo_Entidades.Anual      oAnual;
            Modelo_Entidades.Bimensual  oBimensual;

            Modelo_Entidades.Auditoria_Cuota oLog_Cuota;

            if (ValidarDatos())
            {
                string tipo_de_cuota = cmb_tipo_matricula.SelectedItem.ToString();

                #region Generación de cuota anual
                if (rbtn_anual.Checked == true) // genero la anual y la 1º
                {
                    switch (tipo_de_cuota)
                    {
                    case ("Normal"):

                        foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesNormales())
                        {
                            oCtaCte     = oProfesional.CtaCte;
                            oBoleta     = new Modelo_Entidades.Boleta();
                            oMovimiento = new Modelo_Entidades.Movimiento();
                            oAnual      = new Modelo_Entidades.Anual();
                            oLog_Cuota  = new Modelo_Entidades.Auditoria_Cuota();

                            oMovimiento.fecha       = DateTime.Now;
                            oMovimiento.importe     = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor(), 2);
                            oMovimiento.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                            oAnual.descripcion      = "Cuota anual año " + nud_año.Value.ToString();
                            oAnual.estado           = false;
                            oAnual.Profesional      = oProfesional;
                            cCuota.AgregarCuota(oAnual);

                            #region Audito la cuota
                            oLog_Cuota.estado          = false;
                            oLog_Cuota.descripcion     = "Cuota anual año " + nud_año.Value.ToString();
                            oLog_Cuota.Profesional_dni = oProfesional.dni;
                            oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                            oLog_Cuota.fecha           = DateTime.Now;
                            oLog_Cuota.accion          = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
                            cAuditoria.AuditarCuota(oLog_Cuota);
                            #endregion

                            oMovimiento.CtaCte          = oProfesional.CtaCte;
                            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                            oMovimiento.Comprobante     = oBoleta;

                            cMovimiento.Alta(oMovimiento);

                            oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                            oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                            cCtaCte.Modificacion(oCtaCte);
                        }

                        FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "Cuota anual año " + nud_año.Value.ToString(), 1);
                        DialogResult DrLogin = FormularioImpresionBoleta.ShowDialog();

                        break;

                    case ("Relación de Dependencia"):

                        foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnRelacionDeDependencia())
                        {
                            oCtaCte     = oProfesional.CtaCte;
                            oBoleta     = new Modelo_Entidades.Boleta();
                            oMovimiento = new Modelo_Entidades.Movimiento();
                            oAnual      = new Modelo_Entidades.Anual();
                            oLog_Cuota  = new Modelo_Entidades.Auditoria_Cuota();

                            oMovimiento.fecha       = DateTime.Now;
                            oMovimiento.importe     = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor() * 0.7, 2); // EL PORCENTAJE ESTÁ HARKODEADO, DE TODAS FORMAS ESE ES EL VALOR QUE ANUALMENTE EL COLEGIO DISPONE
                            oMovimiento.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                            oAnual.descripcion      = "Cuota anual año " + nud_año.Value.ToString();
                            oAnual.estado           = false;
                            oAnual.Profesional      = oProfesional;
                            cCuota.AgregarCuota(oAnual);

                            #region Audito la cuota
                            oLog_Cuota.estado          = false;
                            oLog_Cuota.descripcion     = "Cuota anual año " + nud_año.Value.ToString();
                            oLog_Cuota.Profesional_dni = oProfesional.dni;
                            oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                            oLog_Cuota.fecha           = DateTime.Now;
                            oLog_Cuota.accion          = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
                            cAuditoria.AuditarCuota(oLog_Cuota);
                            #endregion

                            oMovimiento.CtaCte          = oProfesional.CtaCte;
                            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                            oMovimiento.Comprobante     = oBoleta;

                            cMovimiento.Alta(oMovimiento);

                            oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                            oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                            cCtaCte.Modificacion(oCtaCte);
                        }

                        FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "anual", 2);
                        DialogResult DrLogin1 = FormularioImpresionBoleta.ShowDialog();

                        break;

                    case ("Reciprocidad de Matrícula"):

                        foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnReciprocidadDeMatricula())
                        {
                            oCtaCte     = oProfesional.CtaCte;
                            oBoleta     = new Modelo_Entidades.Boleta();
                            oMovimiento = new Modelo_Entidades.Movimiento();
                            oAnual      = new Modelo_Entidades.Anual();
                            oLog_Cuota  = new Modelo_Entidades.Auditoria_Cuota();

                            oMovimiento.fecha       = DateTime.Now;
                            oMovimiento.importe     = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oAnual).Valor(), 2);
                            oMovimiento.descripcion = "Cuota anual año " + nud_año.Value.ToString();
                            oAnual.descripcion      = "Cuota anual año " + nud_año.Value.ToString();
                            oAnual.estado           = false;
                            oAnual.Profesional      = oProfesional;
                            cCuota.AgregarCuota(oAnual);

                            #region Audito la cuota
                            oLog_Cuota.estado          = false;
                            oLog_Cuota.descripcion     = "Cuota anual año " + nud_año.Value.ToString();
                            oLog_Cuota.Profesional_dni = oProfesional.dni;
                            oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                            oLog_Cuota.fecha           = DateTime.Now;
                            oLog_Cuota.accion          = "Agregado de cuota anual al profesional " + oProfesional.nombre_apellido;
                            cAuditoria.AuditarCuota(oLog_Cuota);
                            #endregion

                            oMovimiento.CtaCte          = oProfesional.CtaCte;
                            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                            oMovimiento.Comprobante     = oBoleta;

                            cMovimiento.Alta(oMovimiento);

                            oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                            oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                            cCtaCte.Modificacion(oCtaCte);
                        }

                        FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "anual", 3);
                        DialogResult DrLogin2 = FormularioImpresionBoleta.ShowDialog();

                        break;
                    }
                }
                #endregion

                #region Generación de cuota bimensual
                if (rbtn_bimensual.Checked == true)
                {
                    switch (tipo_de_cuota)
                    {
                    case ("Normal"):

                        foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesNormales())
                        {
                            oCtaCte     = oProfesional.CtaCte;
                            oBoleta     = new Modelo_Entidades.Boleta();
                            oMovimiento = new Modelo_Entidades.Movimiento();
                            oBimensual  = new Modelo_Entidades.Bimensual();
                            oLog_Cuota  = new Modelo_Entidades.Auditoria_Cuota();

                            if (cCuota.ObtenerSiElProfPago(oProfesional, "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString(), nud_año.Value.ToString()) == false)
                            {
                                oMovimiento.importe     = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
                                oMovimiento.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                oBimensual.descripcion  = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                oBimensual.estado       = false;
                                oBimensual.Profesional  = oProfesional;
                                cCuota.AgregarCuota(oBimensual);

                                #region Audito la cuota
                                oLog_Cuota.estado          = false;
                                oLog_Cuota.descripcion     = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                oLog_Cuota.Profesional_dni = oProfesional.dni;
                                oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                                oLog_Cuota.fecha           = DateTime.Now;
                                oLog_Cuota.accion          = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
                                cAuditoria.AuditarCuota(oLog_Cuota);
                                #endregion

                                oMovimiento.fecha           = DateTime.Now;
                                oMovimiento.CtaCte          = oProfesional.CtaCte;
                                oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                oMovimiento.Comprobante     = oBoleta;

                                cMovimiento.Alta(oMovimiento);

                                oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                cCtaCte.Modificacion(oCtaCte);
                            }
                        }

                        FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "/", 1);
                        DialogResult DrLogin = FormularioImpresionBoleta.ShowDialog();

                        break;

                    case ("Relación de Dependencia"):

                        foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnRelacionDeDependencia())
                        {
                            // Esto verifica si el profesional pagó la anual, no la genere las cuotas bimensuales y el que esté en relación de dependencia, la 5° y 6° cuota no las pague
                            if (cCuota.ObtenerSiElProfPago(oProfesional, "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString(), nud_año.Value.ToString()) == false)
                            {
                                oCtaCte     = oProfesional.CtaCte;
                                oBoleta     = new Modelo_Entidades.Boleta();
                                oMovimiento = new Modelo_Entidades.Movimiento();
                                oBimensual  = new Modelo_Entidades.Bimensual();
                                oLog_Cuota  = new Modelo_Entidades.Auditoria_Cuota();

                                if (nud_cuontas_numeros.Value.ToString() != "5" || nud_cuontas_numeros.Value.ToString() != "6")
                                {
                                    oMovimiento.importe     = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
                                    oMovimiento.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oBimensual.descripcion  = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oBimensual.estado       = false;
                                    oBimensual.Profesional  = oProfesional;
                                    cCuota.AgregarCuota(oBimensual);

                                    #region Audito la cuota
                                    oLog_Cuota.estado          = false;
                                    oLog_Cuota.descripcion     = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oLog_Cuota.Profesional_dni = oProfesional.dni;
                                    oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                                    oLog_Cuota.fecha           = DateTime.Now;
                                    oLog_Cuota.accion          = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
                                    cAuditoria.AuditarCuota(oLog_Cuota);
                                    #endregion

                                    oMovimiento.fecha           = DateTime.Now;
                                    oMovimiento.CtaCte          = oProfesional.CtaCte;
                                    oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                    oMovimiento.Comprobante     = oBoleta;

                                    cMovimiento.Alta(oMovimiento);

                                    oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                    oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                    cCtaCte.Modificacion(oCtaCte);
                                }
                            }
                        }

                        FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "/", 2);
                        DialogResult DrLogin1 = FormularioImpresionBoleta.ShowDialog();
                        break;

                    case ("Reciprocidad de Matrícula"):

                        foreach (Modelo_Entidades.Profesional oProfesional in cProfesional.ObtenerProfesionalesEnReciprocidadDeMatricula())
                        {
                            // Esto verifica si el profesional pagó la anual, no la genere las cuotas bimensuales y el que esté en relación de dependencia, la 5° y 6° cuota no las pague
                            if (cCuota.ObtenerSiElProfPago(oProfesional, "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString(), nud_año.Value.ToString()) == false)
                            {
                                oCtaCte     = oProfesional.CtaCte;
                                oBoleta     = new Modelo_Entidades.Boleta();
                                oMovimiento = new Modelo_Entidades.Movimiento();
                                oBimensual  = new Modelo_Entidades.Bimensual();
                                oLog_Cuota  = new Modelo_Entidades.Auditoria_Cuota();

                                if (nud_cuontas_numeros.Value.ToString() != "5" || nud_cuontas_numeros.Value.ToString() != "6")
                                {
                                    oMovimiento.importe     = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
                                    oMovimiento.descripcion = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oBimensual.descripcion  = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oBimensual.estado       = false;
                                    oBimensual.Profesional  = oProfesional;
                                    cCuota.AgregarCuota(oBimensual);

                                    #region Audito la cuota
                                    oLog_Cuota.estado          = false;
                                    oLog_Cuota.descripcion     = "Cuota " + nud_cuontas_numeros.Value.ToString() + "/" + nud_año.Value.ToString();
                                    oLog_Cuota.Profesional_dni = oProfesional.dni;
                                    oLog_Cuota.usuario         = miUsuario.nombre_apellido;
                                    oLog_Cuota.fecha           = DateTime.Now;
                                    oLog_Cuota.accion          = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
                                    cAuditoria.AuditarCuota(oLog_Cuota);
                                    #endregion

                                    oMovimiento.fecha           = DateTime.Now;
                                    oMovimiento.CtaCte          = oProfesional.CtaCte;
                                    oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
                                    oMovimiento.Comprobante     = oBoleta;

                                    cMovimiento.Alta(oMovimiento);

                                    oProfesional.CtaCte.Movimientos.Add(oMovimiento);

                                    oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
                                    cCtaCte.Modificacion(oCtaCte);
                                }
                            }
                        }

                        FormularioImpresionBoleta = new FrmImprimirBoleta(cCuota.ObtenerCuotas().First().id, cCuota.ObtenerCuotas().Last().id, "/", 3);
                        DialogResult DrLogin2 = FormularioImpresionBoleta.ShowDialog();
                        break;
                    }
                }
                # endregion
            }

            this.Close();
        }
Ejemplo n.º 24
0
        // Genero la cuota bimensual para un nuevo profesional
        private void GeneraCuotaBimensual(Modelo_Entidades.Profesional oProfesional, int mes)
        {
            int numero = mes;

            switch (numero)
            {
            case 1:
                numero = 1;
                break;

            case 2:
                numero = 1;
                break;

            case 3:
                numero = 2;
                break;

            case 4:
                numero = 2;
                break;

            case 5:
                numero = 3;
                break;

            case 6:
                numero = 3;
                break;

            case 7:
                numero = 4;
                break;

            case 8:
                numero = 4;
                break;

            case 9:
                numero = 5;
                break;

            case 10:
                numero = 5;
                break;

            case 11:
                numero = 6;
                break;

            case 12:
                numero = 6;
                break;
            }

            oCtaCte = oProfesional.CtaCte;
            Modelo_Entidades.Boleta     oBoleta     = new Modelo_Entidades.Boleta();
            Modelo_Entidades.Movimiento oMovimiento = new Modelo_Entidades.Movimiento();
            oLog_Cuota = new Modelo_Entidades.Auditoria_Cuota();

            oMovimiento.fecha = DateTime.Now;

            Modelo_Entidades.Bimensual oBimensual = new Modelo_Entidades.Bimensual();
            // Esto verifica si el profesional pagó la anual, no la genere las cuotas bimensuales y el que esté en relación de dependencia, la 5° y 6° cuota no las pague

            oMovimiento.importe     = Math.Round(cCuota.ObtenerValor_Tipo_Couta(oBimensual).Valor(), 2);
            oMovimiento.descripcion = "Cuota " + numero.ToString() + "/" + DateTime.Now.Year.ToString();
            oBimensual.descripcion  = "Cuota " + numero.ToString() + "/" + DateTime.Now.Year.ToString();
            oBimensual.estado       = false;
            oBimensual.Profesional  = oProfesional;
            cCuota.AgregarCuota(oBimensual);

            #region Audito la cuota
            oLog_Cuota.estado          = false;
            oLog_Cuota.descripcion     = "Cuota " + numero.ToString() + "/" + DateTime.Now.Year.ToString();
            oLog_Cuota.Profesional_dni = oProfesional.dni;
            oLog_Cuota.usuario         = miUsuario.nombre_apellido;
            oLog_Cuota.fecha           = DateTime.Now;
            oLog_Cuota.accion          = "Agregado de cuota bimensual al profesional " + oProfesional.nombre_apellido;
            cAuditoria.AuditarCuota(oLog_Cuota);
            #endregion

            oMovimiento.fecha           = DateTime.Now;
            oMovimiento.CtaCte          = oProfesional.CtaCte;
            oMovimiento.Tipo_Movimiento = cTipo_Movimiento.ObtenerMov_Deudor();
            oMovimiento.Comprobante     = oBoleta;

            cMovimiento.Alta(oMovimiento);

            oProfesional.CtaCte.Movimientos.Add(oMovimiento);

            oCtaCte.saldo = oCtaCte.saldo - Convert.ToDecimal(oMovimiento.importe);
        }