protected void btn_desinscribir_Click(object sender, EventArgs e) { if (gv_profesionales.SelectedRow != null) { prof_dni = gv_profesionales.SelectedRow.Cells[1].Text; oProfesional = cProfesional.ObtenerProfesional(Convert.ToInt32(prof_dni)); foreach (Modelo_Entidades.Clase oClase in cClase.ObtenerClasesPorCurso(Convert.ToInt32(curso_id))) { oAsistencia = cAsistencia.ObtenerAsistenciaPorProfyCurso(Convert.ToInt32(prof_dni), Convert.ToInt32(curso_id)); cAsistencia.EliminarAsistencia(oAsistencia); } curso_id = Request.QueryString["parametro1"]; oCurso = cCurso.ObtenerCurso(Convert.ToInt32(curso_id)); oCurso.asistentes = oCurso.asistentes - 1; cCurso.ModificarCurso(oCurso); lb_inscripcion.Visible = true; lb_inscripcion.Text = "El profesional se ha desinscripto exitosamente y la desinscricion se ha restado a los asistentes del curso"; } else { lb_mensaje.Visible = true; lb_mensaje.Text = "DEBE SELECCIONAR UN PROFESIONAL"; } }
// Cuando le doy un check a "Matriculado" private void chk_matriculado_CheckedChanged(object sender, EventArgs e) { if (chk_matriculado.Checked == true) { // Lo primero que hago es crear un formulario de selccion de profesionales, así que instancio las variables FrmSeleccionProfesionales FormularioSeleccionProfesionales = new FrmSeleccionProfesionales(miUsuario); DialogResult DrLogin = FormularioSeleccionProfesionales.ShowDialog(); // Despues pregunto si el formulario dio Ok. En caso de que no, vuelvo if (DrLogin != DialogResult.OK) { return; } miProfesional = FormularioSeleccionProfesionales.ProfesionalElegido; txt_profesional.Text = miProfesional.nombre_apellido; btn_cobrar_cuotas.Enabled = true; btn_cobrar_expediente.Enabled = true; } else { return; } }
protected void btn_inscribir_Click(object sender, EventArgs e) { if (gv_profesionales.SelectedRow != null) { prof_dni = gv_profesionales.SelectedRow.Cells[1].Text; oProfesional = cProfesional.ObtenerProfesional(Convert.ToInt32(prof_dni)); // Inscribo al profesional en todas las clases de un curso dado foreach (Modelo_Entidades.Clase oClase in cClase.ObtenerClasesPorCurso(Convert.ToInt32(curso_id))) { oAsistencia = new Modelo_Entidades.Asistencia(); oAsistencia.presente = false; oAsistencia.Profesional = oProfesional; oAsistencia.Clase = oClase; cAsistencia.AgregarAsistencia(oAsistencia); } curso_id = Request.QueryString["parametro1"]; oCurso = cCurso.ObtenerCurso(Convert.ToInt32(curso_id)); oCurso.asistentes = oCurso.asistentes + 1; cCurso.ModificarCurso(oCurso); lb_inscripcion.Visible = true; lb_inscripcion.Text = "El profesional se ha inscripto exitosamente y la inscricion se ha sumado a los asistentes del curso"; } else { lb_mensaje.Visible = true; lb_mensaje.Text = "DEBE SELECCIONAR UN PROFESIONAL"; } }
// Declaro como publico al constructor public FrmProfesional(string fModo, Modelo_Entidades.Profesional miProfesional, Modelo_Entidades.Usuario oUsuario) { InitializeComponent(); // Inicializo a las controladoras cProfesional = Controladora.cProfesional.ObtenerInstancia(); cGrupo = Controladora.cGrupo.ObtenerInstancia(); cTipo_Documento = Controladora.cTipo_Documento.ObtenerInstancia(); cProvincia = Controladora.cProvincia.ObtenerInstancia(); cLocalidad = Controladora.cLocalidad.ObtenerInstancia(); cEstado = Controladora.cEstado.ObtenerInstancia(); cTipo_Matricula = Controladora.cTipo_Matricula.ObtenerInstancia(); cColegio = Controladora.cColegio.ObtenerInstancia(); cTitulo = Controladora.cTitulo.ObtenerInstancia(); cTipo_Certificado = Controladora.cTipo_Certificado.ObtenerInstancia(); cMatricula = Controladora.cMatricula.ObtenerInstancia(); cVerificacion = Controladora.cVerificacion.ObtenerInstancia(); cMovimiento = Controladora.cMovimiento.ObtenerInstancia(); cCtaCte = Controladora.cCtaCte.ObtenerInstancia(); cCuota = Controladora.cCuota.ObtenerInstancia(); cExpediente = Controladora.cExpediente.ObtenerInstancia(); cTipo_Movimiento = Controladora.cTipo_Movimiento.ObtenerInstancia(); cAuditoria = Controladora.cAuditoria.ObtenerInstancia(); modo = fModo; oProfesional = miProfesional; miUsuario = oUsuario; }
// 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); } }
// Obtener los expedientes de que estan aprobados (y listos para cobrar) public List <Modelo_Entidades.Expediente> BuscarExpedientesAprobados(Modelo_Entidades.Profesional oProfesional) { var Consulta = from oExpediente in oModelo_Entidades.Expedientes.ToList() where oExpediente.estado == "Aprobado" && oExpediente.Profesionales.Contains(oProfesional) select oExpediente; return((List <Modelo_Entidades.Expediente>)Consulta.ToList()); }
// Obtener los titulos de un profesional public List <Modelo_Entidades.Titulo> BuscarTitulosPorProf(Modelo_Entidades.Profesional oProfesional) { var Consulta = from oMatricula in oModelo_Entidades.Matriculas.ToList() where oMatricula.Profesional == oProfesional select oMatricula.Legajo_Academico.Titulo; return((List <Modelo_Entidades.Titulo>)Consulta.ToList()); }
// Constructor del formulario public FrmSeleccionCuotas(Modelo_Entidades.Profesional oProfesional) { InitializeComponent(); // Inicializo las controladoras cMovimiento = Controladora.cMovimiento.ObtenerInstancia(); cCtaCte = Controladora.cCtaCte.ObtenerInstancia(); cCuota = Controladora.cCuota.ObtenerInstancia(); miProfesional = oProfesional; }
// Obtengo un profesional dado su dni public Modelo_Entidades.Profesional ObtenerProfesional(int dni) { Modelo_Entidades.Profesional oProfesional = oModelo_Entidades.Profesionales.ToList().Find(delegate(Modelo_Entidades.Profesional fProfesional) { return(fProfesional.dni == dni); }); return(oProfesional); }
// Declaro al formulario como público y le asigno el método "Obtener Instancia" para poder llamarlo desde el formulario principal public static FrmSeleccionExpedientes ObtenerInstancia(Modelo_Entidades.Profesional oProfesional) { if (instancia == null) { instancia = new FrmSeleccionExpedientes(oProfesional); } if (instancia.IsDisposed) { instancia = new FrmSeleccionExpedientes(oProfesional); } return(instancia); }
// 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); }
// Metodo de filtrado para todos los exoedientes public List <Modelo_Entidades.Expediente> FiltrarExpedientes(string profesional, string comitente, string obra, string tarea) { // Declaro las variables a utilizar en este método Controladora.cProfesional cProfesional; cProfesional = Controladora.cProfesional.ObtenerInstancia(); // 1º busco al profesional Modelo_Entidades.Profesional oProfesional = cProfesional.ObtenerProfesional(Convert.ToInt32(profesional)); var Consulta = from oExpediente in oModelo_Entidades.Expedientes.ToList() select oExpediente; if (profesional != "0") { Consulta = Consulta.Where(oExpediente => oExpediente.Profesionales.Contains(oProfesional)); } if (comitente != "0") { Consulta = Consulta.Where(oExpediente => oExpediente.Comitente.razon_social.Contains(comitente)); } if (obra != "0") { switch (obra) { case ("Obras de Ingenieria"): Consulta = Consulta.Where(oExpediente => oExpediente.GetType().ToString() == "Modelo_Entidades.OI"); break; case ("Fuerza Electromotriz"): Consulta = Consulta.Where(oExpediente => oExpediente.GetType().ToString() == "Modelo_Entidades.FE"); break; case ("Honorario Mínimo"): Consulta = Consulta.Where(oExpediente => oExpediente.GetType().ToString() == "Modelo_Entidades.HM"); break; } } if (tarea != "0") { Consulta = Consulta.Where(oExpediente => oExpediente.Tarea.descripcion.Contains(tarea)); } return((List <Modelo_Entidades.Expediente>)Consulta.ToList()); }
// Valido que un profesional no exista public Boolean ValidarProfesional(int prof_dni) { Modelo_Entidades.Profesional oProfesional = oModelo_Entidades.Profesionales.ToList().Find(delegate(Modelo_Entidades.Profesional fProfesional) { return(fProfesional.dni == prof_dni); }); if (oProfesional == null) { return(true); } else { return(false); } }
// Obtener si el profesional tiene un título o no public bool ObtenerSiElProfTieneTit(Modelo_Entidades.Profesional oProfesional, int tit_id, int uni_id) { Modelo_Entidades.Matricula oMatricula = oModelo_Entidades.Matriculas.ToList().Find(delegate(Modelo_Entidades.Matricula fMatricula) { return(fMatricula.Legajo_Academico.Titulo.Universidad.id == uni_id && fMatricula.Legajo_Academico.Titulo.id == tit_id && fMatricula.Profesional == oProfesional); }); if (oMatricula == null) { return(true); // Sino la encontró, devuelvo un true y la cargo } else { return(false); // Si la encontró, devuelvo un false y no la cargo } }
// 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 }
// Al hacer click en "filtrar" private void btn_filtrar_Click(object sender, EventArgs e) { string VarCombo_Obras; string VarCombo_Tareas; string nya_profesional; string nya_comitente; if (cmb_obra.SelectedItem == null) { VarCombo_Obras = "0"; } else { VarCombo_Obras = cmb_obra.SelectedItem.ToString(); } if (cmb_descripcion_tarea.SelectedItem == null) { VarCombo_Tareas = "0"; } else { VarCombo_Tareas = ((Modelo_Entidades.Tarea)cmb_descripcion_tarea.SelectedItem).descripcion; } if (txt_profesional.Text == "") { nya_profesional = "0"; } else { Modelo_Entidades.Profesional oProf = cProfesional.ObtenerProfesional(Convert.ToInt32(txt_profesional.Text)); if (oProf != null) { nya_profesional = txt_profesional.Text; } else { nya_profesional = "0"; MessageBox.Show("El profesional no registra ningún expediente"); } } if (txt_nya_comitente.Text == "") { nya_comitente = "0"; } else { nya_comitente = txt_nya_comitente.Text; } BsExpedientes.DataSource = cExpediente.FiltrarExpedientes(nya_profesional, nya_comitente, VarCombo_Obras, VarCombo_Tareas); dgv_datos.DataSource = BsExpedientes; dgv_datos.Columns[0].HeaderText = "Número"; dgv_datos.Columns[1].HeaderText = "Estado"; dgv_datos.Columns[2].Visible = false; dgv_datos.Columns[3].Visible = false; dgv_datos.Columns[4].HeaderText = "Aportes definitivos"; dgv_datos.Columns[5].Visible = false; dgv_datos.Columns[6].Visible = false; dgv_datos.Columns[7].Visible = false; dgv_datos.Columns[8].Visible = false; dgv_datos.Columns[9].Visible = false; }
// Cuando se incializa el formulario public FrmSeleccionExpedientes(Modelo_Entidades.Profesional oProfesional) { InitializeComponent(); cExpediente = Controladora.cExpediente.ObtenerInstancia(); miProfesional = oProfesional; }
// Declaro como publico al constructor public FrmMatriculas(string fmodo, Modelo_Entidades.Matricula fMatricula, Modelo_Entidades.Profesional fProfesional) { InitializeComponent(); // Creo las controladoras a usar en el formulario cUniversidad = Controladora.cUniversidad.ObtenerInstancia(); cTitulo = Controladora.cTitulo.ObtenerInstancia(); cPlan = Controladora.cPlan.ObtenerInstancia(); cVerificacion = Controladora.cVerificacion.ObtenerInstancia(); cMatricula = Controladora.cMatricula.ObtenerInstancia(); cLegajo_Academico = Controladora.cLegajo_Academico.ObtenerInstancia(); modo = fmodo; oMatricula = fMatricula; oLegajo_Academico = fMatricula.Legajo_Academico; oProfesional = fProfesional; if (modo != "Alta") { cmb_universidad.SelectedItem = oLegajo_Academico.Titulo.Universidad; cmb_titulos.SelectedItem = oLegajo_Academico.Titulo; cmb_planes.SelectedItem = oLegajo_Academico.Plan; if (oMatricula.certificado == true) { rbtn_certificado.Checked = true; } else { rbtn_diploma.Checked = true; } txt_fechadoc.Text = oMatricula.fecha_doc.ToString(); if (oMatricula.incumbencia == true) { chk_incumbencias.Checked = true; } else { chk_incumbencias.Checked = false; } if (oMatricula.plan == true) { chk_plan.Checked = true; } else { chk_plan.Checked = false; } if (oMatricula.analitico == true) { chk_analitico.Checked = true; } else { chk_analitico.Checked = false; } } else { oLegajo_Academico = new Modelo_Entidades.Legajo_Academico(); } }
protected void Page_Load(object sender, EventArgs e) { lb_mensaje.Visible = false; lb_inscripcion.Visible = false; lb_curso.Visible = false; lb_profesionales_inscriptos.Visible = false; curso_id = Request.QueryString["parametro1"]; accion = Request.QueryString["parametro2"]; comision_id = Request.QueryString["parametro3"]; cProfesional = Controladora.cProfesional.ObtenerInstancia(); cAsistencia = Controladora.cAsistencia.ObtenerInstancia(); cClase = Controladora.cClase.ObtenerInstancia(); cCurso = Controladora.cCurso.ObtenerInstancia(); if (accion == "Inscripcion") { lb_mensaje2.Text = "Aquí puede visualizar si los profesionales se encuentran habilitados (color verde), o No Habilitados o tiene suspendida la matrícula (color rojo)"; btn_desinscribir.Visible = false; btn_asentar_asistencia.Visible = false; gv_profesionales.DataSource = cProfesional.ObtenerProfesionales(); gv_profesionales.DataBind(); for (int i = 0; gv_profesionales.Rows.Count > i; i++) { Modelo_Entidades.Profesional oProf = cProfesional.ObtenerProfesional((Convert.ToInt32(gv_profesionales.Rows[i].Cells[1].Text))); if (oProf.Estado.descripcion == "Habilitado") { gv_profesionales.Rows[i].Cells[0].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[1].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[2].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[3].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[4].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[5].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[6].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[7].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[8].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[9].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[10].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[11].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[12].BackColor = Color.LightGreen; } if (oProf.Estado.descripcion == "No Habilitado" || oProf.Estado.descripcion == "Baja") { gv_profesionales.Rows[i].Cells[0].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[1].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[2].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[3].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[4].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[5].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[6].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[7].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[8].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[9].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[10].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[11].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[12].BackColor = Color.LightCoral; } } } else { lb_mensaje2.Text = "Aquí puede visualizar si los profesionales han asistido más de un 75% a la clase (color verde), entre un 50 y un 75% (color amarillo) y menos de un 50% (color rojo)"; lb_profesionales_inscriptos.Visible = true; lb_curso.Visible = true; oCurso = cCurso.ObtenerCurso(Convert.ToInt32(curso_id)); lb_curso.Text = oCurso.descripcion; oClase = cClase.Obtener1ClasePorCurso(Convert.ToInt32(curso_id)); gv_profesionales.DataSource = cProfesional.ObtenerProfesionalesPorCurso(oClase.id); gv_profesionales.DataBind(); for (int i = 0; gv_profesionales.Rows.Count > i; i++) { Modelo_Entidades.Profesional oProf = cProfesional.ObtenerProfesional((Convert.ToInt32(gv_profesionales.Rows[i].Cells[1].Text))); List <Modelo_Entidades.Asistencia> ListaAsistencias = cAsistencia.ObtenerAsistenciasPorCursoyProfesional(oProf.dni, Convert.ToInt32(curso_id)); int asitencias = ListaAsistencias.Count; List <Modelo_Entidades.Clase> ListaClases = cClase.ObtenerClasesPorCurso(Convert.ToInt32(curso_id)); int clases = ListaClases.Count; double resultado = (asitencias * 100) / clases; if (resultado >= 75) { gv_profesionales.Rows[i].Cells[0].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[1].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[2].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[3].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[4].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[5].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[6].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[7].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[8].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[9].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[10].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[11].BackColor = Color.LightGreen; gv_profesionales.Rows[i].Cells[12].BackColor = Color.LightGreen; } if (50 <= resultado && resultado < 75) { gv_profesionales.Rows[i].Cells[0].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[1].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[2].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[3].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[4].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[5].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[6].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[7].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[8].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[9].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[10].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[11].BackColor = Color.Yellow; gv_profesionales.Rows[i].Cells[12].BackColor = Color.Yellow; } if (resultado < 50) { gv_profesionales.Rows[i].Cells[0].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[1].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[2].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[3].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[4].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[5].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[6].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[7].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[8].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[9].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[10].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[11].BackColor = Color.LightCoral; gv_profesionales.Rows[i].Cells[12].BackColor = Color.LightCoral; } } if (accion == "Asistencia") { btn_inscribir.Visible = false; btn_desinscribir.Visible = false; } if (accion == "Inscripcion") { btn_asentar_asistencia.Visible = false; btn_desinscribir.Visible = false; } if (accion == "Desinscripcion") { btn_inscribir.Visible = false; btn_asentar_asistencia.Visible = false; } if (accion == "Ver") { btn_inscribir.Visible = false; btn_desinscribir.Visible = false; btn_asentar_asistencia.Visible = false; } } gv_profesionales.HeaderRow.Cells[0].Text = "Selección"; gv_profesionales.HeaderRow.Cells[1].Text = "DNI"; gv_profesionales.HeaderRow.Cells[2].Text = "Nombre y Apellido"; gv_profesionales.HeaderRow.Cells[5].Text = "Teléfono"; gv_profesionales.HeaderRow.Cells[6].Text = "Celular"; gv_profesionales.HeaderRow.Cells[7].Text = "Email 1"; gv_profesionales.HeaderRow.Cells[8].Text = "Email 2"; }
// 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 }
// Dar de alta a un nuevo profesional public void Alta(Modelo_Entidades.Profesional oProfesional) { oModelo_Entidades.AddToProfesionales(oProfesional); oModelo_Entidades.SaveChanges(); }
// 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); }
// 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 }
// Modificar a un profesional public void Modificacion(Modelo_Entidades.Profesional oProfesional) { oModelo_Entidades.ApplyCurrentValues("Profesionales", oProfesional); oModelo_Entidades.SaveChanges(); }
// Cuando le doy click a "Agregar" private void btn_agregar_Click(object sender, EventArgs e) { string eleccion = lb_tipo_expediente.Text; // Lo primero que hago es crear un formulario de Login, así que instancio las variables FrmSeleccionProfesionales FormularioProfesionales = new FrmSeleccionProfesionales(oUsuario); DialogResult DrLogin = FormularioProfesionales.ShowDialog(); // Finalmente, agrego o no el comitente al expediente if (DrLogin != DialogResult.OK) { return; } else { oProfesional = FormularioProfesionales.ProfesionalElegido; if (oProfesional.Estado.descripcion == "No Habilitado" || oProfesional.Estado.descripcion == "Baja") { MessageBox.Show("El profesional no se encuentra habilitado para realizar el expediente"); } else { switch (eleccion) { case ("Obras de Ingenieria"): oOI.Profesionales.Add(oProfesional); // Limpio la grilla dgv_profesionales.DataSource = null; // Asigno el binding a la grilla dgv_profesionales.DataSource = oOI.Profesionales; ArmaProefesionales(); break; case ("Fuerza Electromotriz"): oFE.Profesionales.Add(oProfesional); // Limpio la grilla dgv_profesionales.DataSource = null; // Asigno el binding a la grilla dgv_profesionales.DataSource = oFE.Profesionales; ArmaProefesionales(); break; case ("Honorario Mínimo"): oHM.Profesionales.Add(oProfesional); // Limpio la grilla dgv_profesionales.DataSource = null; // Asigno el binding a la grilla dgv_profesionales.DataSource = oHM.Profesionales; ArmaProefesionales(); break; } } } }
// Cuando le doy click a "Quitar" private void btn_quitar_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("¿Está seguro que desea quitar al profesional?", "Expediente", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { string eleccion = lb_tipo_expediente.Text; // Finalmente, agrego el comitente al expediente oProfesional = (Modelo_Entidades.Profesional)dgv_profesionales.CurrentRow.DataBoundItem; switch (eleccion) { case ("Obras de Ingenieria"): oOI.Profesionales.Remove(oProfesional); // Limpio la grilla dgv_profesionales.DataSource = null; // Asigno el binding a la grilla dgv_profesionales.DataSource = oOI.Profesionales; ArmaProefesionales(); break; case ("Fuerza Electromotriz"): oFE.Profesionales.Remove(oProfesional); // Limpio la grilla dgv_profesionales.DataSource = null; // Asigno el binding a la grilla dgv_profesionales.DataSource = oFE.Profesionales; ArmaProefesionales(); break; case ("Honorario Mínimo"): oHM.Profesionales.Remove(oProfesional); // Limpio la grilla dgv_profesionales.DataSource = null; // Asigno el binding a la grilla dgv_profesionales.DataSource = oHM.Profesionales; ArmaProefesionales(); break; } } else { return; } }
// Armo el formulario (si no es una alta) private void ArmaFormulario(Modelo_Entidades.Profesional oProfesional) { // Sección de datos del profesional lb_estado_def.Text = oProfesional.Estado.descripcion; txt_numero.Text = oProfesional.dni.ToString(); txt_nombreapellido.Text = oProfesional.nombre_apellido; txt_fechanacimiento.Text = oProfesional.fecha_nacimiento.ToString(); if (oProfesional.sexo == "Masculino") { rbtn_masculino.Checked = true; } else { rbtn_femenino.Checked = true; } txt_direccion.Text = oProfesional.Direcciones.ElementAt(0).direccion; txt_cp.Text = oProfesional.Direcciones.ElementAt(0).Localidad.cp.ToString(); txt_direccionE.Text = oProfesional.Direcciones.ElementAt(1).direccion; txt_cp.Text = oProfesional.Direcciones.ElementAt(1).Localidad.cp.ToString(); cmb_tiposdoc.SelectedItem = oProfesional.Tipo_Documento; cmb_provincias.SelectedItem = oProfesional.Direcciones.ElementAt(0).Localidad.Provincia; cmb_localidades.SelectedItem = oProfesional.Direcciones.ElementAt(0).Localidad; cmb_provinciasE.SelectedItem = oProfesional.Direcciones.ElementAt(1).Localidad.Provincia; cmb_localidadesE.SelectedItem = oProfesional.Direcciones.ElementAt(1).Localidad; if (oProfesional.Direcciones.ElementAt(0).Localidad.Provincia == oProfesional.Direcciones.ElementAt(1).Localidad.Provincia&& oProfesional.Direcciones.ElementAt(0).Localidad == oProfesional.Direcciones.ElementAt(1).Localidad&& oProfesional.Direcciones.ElementAt(0).direccion == oProfesional.Direcciones.ElementAt(1).direccion) { chk_mismolugar.Checked = true; } else { chk_mismolugar.Checked = false; } txt_telfijo.Text = oProfesional.telefono.ToString(); txt_celular.Text = oProfesional.celular.ToString(); txt_emailpricipal.Text = oProfesional.email1; txt_emailalternativo.Text = oProfesional.email2; // Sección de datos de la matrícula del profesional cmb_tipomatricula.SelectedItem = oProfesional.Tipo_Matricula; switch (oProfesional.Tipo_Matricula.descripcion) { case ("Relación de Dependencia"): { txt_lugartrabajo.Text = oProfesional.lugar_trabajo; break; } case ("Convenio"): { cmb_colegios.SelectedItem = oProfesional.Colegio; txt_año.Text = oProfesional.convenio_año.ToString(); break; } } // Sección de las observaciones del profesional lb_titulo_que_se_muestra.Text = oProfesional.titulo_a_mostrar; txt_observaciones.Text = oProfesional.observaciones; }