// 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(); }
// 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; } }