// Obtener si el profesional pagó la cuota anual de ese año o la cuota que se le está queriendo generar para que no se la generen public bool ObtenerSiElProfPago(Modelo_Entidades.Profesional oProfesional, string cuota, string año) { Modelo_Entidades.Cuota oCuota = oModelo_Entidades.Cuotas.ToList().Find(delegate(Modelo_Entidades.Cuota fCuota) { if (fCuota.descripcion.Contains(cuota) || fCuota.descripcion.Contains("Cuota anual año " + año) == true) { if (fCuota.Profesional == oProfesional) { if (fCuota.estado == true) { return(true); // Si encuentra la cuota quiere decir que pagó, devuelvo un true y no la cobro, ya que quiere decir que encontró una cuota que cumple con todas las condiciones del where (es decir, que el profesional pagó la cuota anual o la bimensual que se está generando) } } } return(false); }); if (oCuota == null) { return(false); } else { return(true); } }
// Obtengo una cuota dado un profesional y la descripción public Modelo_Entidades.Cuota ObtenerCuota(string desc, int dni) { Modelo_Entidades.Cuota oCuota = oModelo_Entidades.Cuotas.ToList().Find(delegate(Modelo_Entidades.Cuota fCuota) { return(fCuota.descripcion == desc && fCuota.Profesional.dni == dni); }); return(oCuota); }
// Declaro el método que va a devolver el valor de una cuota según lo que le esté pidiendo public Modelo_Entidades.Cuota ObtenerValor_Tipo_Couta(Modelo_Entidades.Cuota oCuota) { if (oCuota.GetType().ToString() == "Modelo_Entidades.Anual") // Si es anual la "decoro" con un descuento { cuotacalaculada = new Modelo_Entidades.Descuento_Anual(oCuota); } else // Sino, devuelvo el valor normal de una cuota { cuotacalaculada = oCuota; } return(cuotacalaculada); }
// Agrego o desagrego cuotas al profesional, para luego cobrarlas private void chk_cuotas_ItemCheck(object sender, ItemCheckEventArgs e) { // Lo 1º que hago, es agregar o no las cuotas a la lista Modelo_Entidades.Cuota oCuot = (Modelo_Entidades.Cuota)chk_cuotas.SelectedItem; if (e.NewValue == CheckState.Checked) { ListadoCuotas.Add(oCuot); } else { ListadoCuotas.Remove(oCuot); } }
// Declaro el método que va a devolver el valor de una cuota con los intereses aplicados public double ObtenerValor_Couta_Interes(Modelo_Entidades.Cuota oCuota, int dias) { cuotacalaculada = new Modelo_Entidades.Con_Recargo(oCuota, dias); return(cuotacalaculada.Valor()); }
// Modifico un Cuota public void ModificarCuota(Modelo_Entidades.Cuota oCuota) { oModelo_Entidades.ApplyCurrentValues("Cuotas", oCuota); }
// Agrego un Cuota public void AgregarCuota(Modelo_Entidades.Cuota oCuota) { oModelo_Entidades.AddToCuotas(oCuota); oModelo_Entidades.SaveChanges(); }
// Elimino a un Cuota public void EliminarCuota(Modelo_Entidades.Cuota oCuota) { oModelo_Entidades.DeleteObject(oCuota); oModelo_Entidades.SaveChanges(); }
// Declaro el método que va a devolver el valor de una cuota según lo que le esté pidiendo public Modelo_Entidades.Cuota ObtenerValor_Tipo_Couta(Modelo_Entidades.Cuota oCuota) { if (oCuota.GetType().ToString() == "Modelo_Entidades.Anual") // Si es anual la "decoro" con un descuento { cuotacalaculada = new Modelo_Entidades.Descuento_Anual(oCuota); } else // Sino, devuelvo el valor normal de una cuota { cuotacalaculada = oCuota; } return cuotacalaculada; }
// Declaro el método que va a devolver el valor de una cuota con los intereses aplicados public double ObtenerValor_Couta_Interes(Modelo_Entidades.Cuota oCuota, int dias) { cuotacalaculada = new Modelo_Entidades.Con_Recargo(oCuota, dias); return cuotacalaculada.Valor(); }
// 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; } }