コード例 #1
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;
            }
        }
コード例 #2
0
        // Al hacer click en guardar
        private void btn_guardar_Click(object sender, EventArgs e)
        {
            if (ValidarObligatorios() == true)
            {
                try
                {
                    #region Datos personales de la Persona

                    oPersona.Tipo_Documento   = (Modelo_Entidades.Tipo_Documento)cmb_tiposdoc.SelectedItem;
                    oPersona.dni              = Convert.ToInt32(txt_numero.Text);
                    oPersona.nombre_apellido  = txt_nombreapellido.Text;
                    oPersona.observaciones    = txt_observaciones.Text;
                    oPersona.Tipo_Persona     = (Modelo_Entidades.Tipo_Persona)cmb_TipoPersona.SelectedItem;
                    oPersona.fecha_nacimiento = Convert.ToDateTime(txt_fechanacimiento.Text);

                    if (rbtn_masculino.Checked == true)
                    {
                        oPersona.sexo = "Masculino";
                    }

                    else
                    {
                        oPersona.sexo = "Femenino";
                    }

                    if (modo == "Alta")
                    {
                        oDireccion           = new Modelo_Entidades.Direccion();
                        oDireccion.direccion = txt_direccion.Text;
                        oDireccion.Localidad = (Modelo_Entidades.Localidad)cmb_localidades.SelectedItem;
                        oPersona.Direcciones.Add(oDireccion);
                    }

                    else
                    {
                        oDireccion           = oPersona.Direcciones.ElementAt(0);
                        oDireccion.Localidad = (Modelo_Entidades.Localidad)cmb_localidades.SelectedItem;
                        oDireccion.direccion = txt_direccion.Text;
                        oPersona.Direcciones.ElementAt(0).Equals(oDireccion);
                    }

                    oPersona.telefono     = txt_telfijo.Text;
                    oPersona.celular      = txt_celular.Text;
                    oPersona.email1       = txt_emailpricipal.Text;
                    oPersona.Estado       = cEstado.ObtenerEstadoHabilitado();
                    oPersona.clave_fiscal = txt_ClaveFiscal.Text;

                    #endregion



                    #region Contabilidad de la Persona

                    /*   if (modo == "Alta")
                     * {
                     *     // Doy de alta a la cta cte
                     *     Modelo_Entidades.CtaCte oCtaCte = new Modelo_Entidades.CtaCte();
                     *     oCtaCte.saldo = 0;
                     *     oCtaCte.Persona = oPersona.CtaCte.Movimientos;
                     *     oPersona.CtaCte = oCtaCte;
                     * }
                     */
                    #endregion



                    if (modo == "Alta")
                    {
                        cCU_GestionarPersonas.Alta(oPersona);



                        MessageBox.Show("La persona se ha registrado correctamente");
                    }

                    else
                    {
                        cCU_GestionarPersonas.Modificacion(oPersona);
                        MessageBox.Show("La persona se ha modificado correctamente");
                    }

                    this.DialogResult = DialogResult.OK;
                }

                catch (Exception Exc)
                {
                    MessageBox.Show(Exc.Message.ToString());
                }
            }
        }
コード例 #3
0
        // Al hacer click en guardar
        private void btn_guardar_Click(object sender, EventArgs e)
        {
            if (ValidarObligatorios() == true)
            {
                try
                {
                    #region Datos personales del profesional
                    oProfesional.Tipo_Documento   = (Modelo_Entidades.Tipo_Documento)cmb_tiposdoc.SelectedItem;
                    oProfesional.dni              = Convert.ToInt32(txt_numero.Text);
                    oProfesional.nombre_apellido  = txt_nombreapellido.Text;
                    oProfesional.fecha_nacimiento = Convert.ToDateTime(txt_fechanacimiento.Text);

                    if (rbtn_masculino.Checked == true)
                    {
                        oProfesional.sexo = "Masculino";
                    }

                    else
                    {
                        oProfesional.sexo = "Femenino";
                    }

                    if (modo == "Alta")
                    {
                        oDireccion           = new Modelo_Entidades.Direccion();
                        oDireccion.direccion = txt_direccion.Text;
                        oDireccion.Localidad = (Modelo_Entidades.Localidad)cmb_localidades.SelectedItem;
                        oProfesional.Direcciones.Add(oDireccion);

                        oDireccionE           = new Modelo_Entidades.Direccion();
                        oDireccionE.direccion = txt_direccion.Text;
                        oDireccionE.Localidad = (Modelo_Entidades.Localidad)cmb_localidades.SelectedItem;
                        oProfesional.Direcciones.Add(oDireccionE);
                    }

                    else
                    {
                        oDireccion           = oProfesional.Direcciones.ElementAt(0);
                        oDireccion.Localidad = (Modelo_Entidades.Localidad)cmb_localidades.SelectedItem;
                        oDireccion.direccion = txt_direccion.Text;
                        oProfesional.Direcciones.ElementAt(0).Equals(oDireccion);

                        oDireccionE           = oProfesional.Direcciones.ElementAt(1);
                        oDireccionE.Localidad = (Modelo_Entidades.Localidad)cmb_localidadesE.SelectedItem;
                        oDireccionE.direccion = txt_direccionE.Text;
                        oProfesional.Direcciones.ElementAt(1).Equals(oDireccionE);
                    }

                    oProfesional.telefono = Convert.ToInt32(txt_telfijo.Text);
                    oProfesional.celular  = Convert.ToInt32(txt_celular.Text);
                    oProfesional.email1   = txt_emailpricipal.Text;
                    oProfesional.email2   = txt_emailalternativo.Text;
                    #endregion

                    #region Matrícula del profesional

                    oProfesional.Tipo_Matricula = (Modelo_Entidades.Tipo_Matricula)cmb_tipomatricula.SelectedItem;

                    if (oProfesional.Tipo_Matricula.descripcion == "Relación de Dependencia")
                    {
                        oProfesional.lugar_trabajo = txt_lugartrabajo.Text;
                    }

                    if (oProfesional.Tipo_Matricula.descripcion == "Reciprocidad de Matrícula")
                    {
                        oProfesional.Colegio      = (Modelo_Entidades.Colegio)cmb_colegios.SelectedItem;
                        oProfesional.convenio_año = Convert.ToInt32(txt_año.Text);
                    }

                    if (modo == "Alta")
                    {
                        // Cuando se matricula, le pongo el estado no habilitado. Se va a habilitar cuando pague.
                        oProfesional.Estado = cEstado.ObtenerEstadoNoHabilitado();
                        // Doy de alta el 1º historial
                        Modelo_Entidades.Historial oHistorial = new Modelo_Entidades.Historial();
                        oHistorial.estado         = (cEstado.ObtenerEstadoHabilitado()).descripcion;
                        oHistorial.tipo_matricula = ((Modelo_Entidades.Tipo_Matricula)cmb_tipomatricula.SelectedItem).descripcion;
                        oHistorial.fecha          = DateTime.Now;
                        oHistorial.observaciones  = "Alta en el CIE del profesional";
                        oProfesional.Historiales.Add(oHistorial);
                    }
                    #endregion

                    #region Contabilidad del profesional

                    if (modo == "Alta")
                    {
                        // Doy de alta a la cta cte
                        Modelo_Entidades.CtaCte oCtaCte = new Modelo_Entidades.CtaCte();
                        oCtaCte.saldo       = 0;
                        oCtaCte.Profesional = oProfesional;
                        oProfesional.CtaCte = oCtaCte;
                    }

                    #endregion

                    #region Observaciones del profesional
                    oProfesional.observaciones    = txt_observaciones.Text;
                    oProfesional.titulo_a_mostrar = cmb_tituloamostrar.SelectedValue.ToString();
                    #endregion

                    #region Títulos del profesional

                    #endregion

                    if (modo == "Alta")
                    {
                        cProfesional.Alta(oProfesional);

                        int mes = DateTime.Now.Month;
                        if (mes == 1 || mes == 2)
                        {
                            GeneraCuotaAnual(oProfesional);
                            GeneraCuotaBimensual(oProfesional, mes);
                        }

                        else
                        {
                            GeneraCuotaBimensual(oProfesional, mes);
                        }

                        cCtaCte.Modificacion(oCtaCte);

                        MessageBox.Show("El profesional se ha agregado correctamente");
                    }

                    else
                    {
                        cProfesional.Modificacion(oProfesional);
                        MessageBox.Show("El profesional se ha modificado correctamente");
                    }

                    this.DialogResult = DialogResult.OK;
                }

                catch (Exception Exc)
                {
                    MessageBox.Show(Exc.Message.ToString());
                }
            }
        }