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