private void btnEliminarVP_Click(object sender, EventArgs e) { cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; Vacaciones.Core.VacacionesPrima vp = new Vacaciones.Core.VacacionesPrima(); if (lstvVacaciones.SelectedItems.Count > 0) { ListViewItem listItem = lstvVacaciones.SelectedItems[0]; vp.id = int.Parse(listItem.Text); vp.periodoinicio = DateTime.Parse(listItem.SubItems[1].Text); vp.periodofin = DateTime.Parse(listItem.SubItems[2].Text); } try { cnx.Open(); vh.eliminaVacacion(vp); cnx.Close(); cnx.Dispose(); muestraVacaciones(); txtDiasPagoPV.Clear(); txtDiasPendientes.Clear(); } catch { MessageBox.Show("Error: Al eliminar el registro de vacacion.", "Error"); cnx.Dispose(); } }
private void toolAplicar_Click(object sender, EventArgs e) { if (dgvCargaFaltas.Rows.Count == 0) { MessageBox.Show("No se puede aplicar verifique.", "Error"); return; } int idEmpleado = 0; bool EsAlta = false, EsReingreso = false, EsBaja = false; cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; fh = new Faltas.Core.FaltasHelper(); fh.Command = cmd; emph = new Empleados.Core.EmpleadosHelper(); emph.Command = cmd; Altas.Core.AltasHelper ah = new Altas.Core.AltasHelper(); ah.Command = cmd; Reingreso.Core.ReingresoHelper rh = new Reingreso.Core.ReingresoHelper(); rh.Command = cmd; Bajas.Core.BajasHelper bh = new Bajas.Core.BajasHelper(); bh.Command = cmd; Periodos.Core.PeriodosHelper ph = new Periodos.Core.PeriodosHelper(); ph.Command = cmd; List<Altas.Core.Altas> lstAlta; List<Reingreso.Core.Reingresos> lstReingreso; List<Bajas.Core.Bajas> lstBaja; foreach (DataGridViewRow fila in dgvCargaFaltas.Rows) { try { cnx.Open(); idEmpleado = (int)emph.obtenerIdTrabajador(fila.Cells["noempleado"].Value.ToString(), idEmpresa); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Obtener ID del empleado. \r\n \r\n" + error.Message, "Error"); return; } int idperiodo = 0; try { cnx.Open(); idperiodo = (int)emph.obtenerIdPeriodo(idEmpleado); cnx.Close(); } catch { MessageBox.Show("Error: al obtener el Id del Periodo.", "Error"); cnx.Dispose(); return; } Altas.Core.Altas alta = new Altas.Core.Altas(); alta.idempresa = GLOBALES.IDEMPRESA; alta.idtrabajador = idEmpleado; alta.periodoInicio = _inicioPeriodo.Date; alta.periodoFin = _finPeriodo.Date; Reingreso.Core.Reingresos reingreso = new Reingreso.Core.Reingresos(); reingreso.idempresa = GLOBALES.IDEMPRESA; reingreso.idtrabajador = idEmpleado; reingreso.periodoinicio = _inicioPeriodo.Date; reingreso.periodofin = _finPeriodo.Date; Bajas.Core.Bajas baja = new Bajas.Core.Bajas(); baja.idempresa = GLOBALES.IDEMPRESA; baja.idtrabajador = idEmpleado; baja.periodoinicio = _inicioPeriodo.Date; baja.periodofin = _finPeriodo.Date; lstAlta = new List<Altas.Core.Altas>(); lstReingreso = new List<Reingreso.Core.Reingresos>(); lstBaja = new List<Bajas.Core.Bajas>(); Periodos.Core.Periodos p = new Periodos.Core.Periodos(); p.idperiodo = idperiodo; int periodo = 0; try { cnx.Open(); periodo = (int)ph.DiasDePago(p); lstAlta = ah.obtenerAlta(alta); lstReingreso = rh.obtenerReingreso(reingreso); lstBaja = bh.obtenerBaja(baja); cnx.Close(); } catch { MessageBox.Show("Error: al obtener los dias de pago.", "Error"); cnx.Dispose(); return; } if (lstAlta.Count != 0) EsAlta = true; if (lstBaja.Count != 0) EsBaja = true; if (lstReingreso.Count != 0) EsReingreso = true; int falta = int.Parse(fila.Cells["faltas"].Value.ToString()); DateTime fecha = DateTime.Parse(fila.Cells["fechainicio"].Value.ToString()); if (falta > 15) falta = 15; for (int i = 0; i < falta; i++) { int existe = 0; int existeFalta = 0; int existeVacacion = 0; try { cnx.Open(); existeFalta = (int)fh.existeFalta(idEmpleado, fecha.AddDays(i).Date); cnx.Close(); } catch { MessageBox.Show("Error: Al verificar existencia de falta.", "Error"); cnx.Dispose(); return; } if (existeFalta == 0) { Incidencias.Core.IncidenciasHelper ih = new Incidencias.Core.IncidenciasHelper(); ih.Command = cmd; Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; bool FLAG_FALTAS = false; if (EsAlta) { if (fecha.AddDays(i).Date < lstAlta[0].fechaingreso.Date) { MessageBox.Show("Error: Alta del empleado: " + fila.Cells["noempleado"].Value.ToString() + ", Fecha de Ingreso = " + lstAlta[0].fechaingreso.Date.ToShortDateString() + "\r\n Fecha de la falta es menor.", "Error"); FLAG_FALTAS = true; } else FLAG_FALTAS = false; } if (EsReingreso) { if (fecha.AddDays(i).Date < lstReingreso[0].fechaingreso.Date) { MessageBox.Show("Error: Alta del empleado: " + fila.Cells["noempleado"].Value.ToString() + ", Fecha de Reingreso = " + lstReingreso[0].fechaingreso.Date.ToShortDateString() + "\r\n Fecha de la falta es menor.", "Error"); FLAG_FALTAS = true; } else FLAG_FALTAS = false; } if (EsBaja) { if (fecha.AddDays(i).Date > lstBaja[0].fecha.Date) { MessageBox.Show("Error: Alta del empleado " + fila.Cells["noempleado"].Value.ToString() + ", Fecha de Reingreso = " + lstBaja[0].fecha.Date.ToShortDateString() + "\r\n Fecha de la falta es mayor.", "Error"); FLAG_FALTAS = true; } else FLAG_FALTAS = false; } if (!FLAG_FALTAS) { try { cnx.Open(); existe = (int)ih.existeIncidenciaEnFalta(idEmpleado, fecha.AddDays(i).Date); existeVacacion = (int)vh.existeVacacionEnFalta(idEmpleado, fecha.AddDays(i).Date); cnx.Close(); } catch { MessageBox.Show("Error: Al guardar la falta.", "Error"); cnx.Dispose(); return; } if (existe == 0 && existeVacacion == 0) try { Faltas.Core.Faltas f = new Faltas.Core.Faltas(); f.idempresa = GLOBALES.IDEMPRESA; f.idtrabajador = idEmpleado; f.periodo = periodo; f.faltas = 1; f.fechainicio = DateTime.Parse(dgvCargaFaltas.Rows[0].Cells["fechainicio"].Value.ToString()); f.fechafin = DateTime.Parse(dgvCargaFaltas.Rows[0].Cells["fechafin"].Value.ToString()); f.fecha = fecha.AddDays(i).Date; cnx.Open(); fh.insertaFalta(f); cnx.Close(); } catch { MessageBox.Show("Error: Al guardar la falta.", "Error"); cnx.Dispose(); } else MessageBox.Show("La falta ingresada, se empalma con una incapacidad y/o dia de vacación del trabajador.", "Error"); } } } EsAlta = false; EsReingreso = false; EsBaja = false; } MessageBox.Show("Faltas importadas", "Confirmación"); cnx.Dispose(); dgvCargaFaltas.Rows.Clear(); }
private void btnGuardar_Click(object sender, EventArgs e) { DateTime periodoInicio, periodoFin; bool EsAlta = false, EsReingreso = false, EsBaja = false; cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; Empleados.Core.EmpleadosHelper emph = new Empleados.Core.EmpleadosHelper(); emph.Command = cmd; Altas.Core.AltasHelper ah = new Altas.Core.AltasHelper(); ah.Command = cmd; Reingreso.Core.ReingresoHelper rh = new Reingreso.Core.ReingresoHelper(); rh.Command = cmd; Bajas.Core.BajasHelper bh = new Bajas.Core.BajasHelper(); bh.Command = cmd; List<Altas.Core.Altas> lstAlta = new List<Altas.Core.Altas>(); List<Reingreso.Core.Reingresos> lstReingreso = new List<Reingreso.Core.Reingresos>(); List<Bajas.Core.Bajas> lstBaja = new List<Bajas.Core.Bajas>(); Altas.Core.Altas alta = new Altas.Core.Altas(); alta.idempresa = GLOBALES.IDEMPRESA; alta.idtrabajador = idTrabajador; alta.periodoInicio = _inicioPeriodo.Date; alta.periodoFin = _finPeriodo.Date; Reingreso.Core.Reingresos reingreso = new Reingreso.Core.Reingresos(); reingreso.idempresa = GLOBALES.IDEMPRESA; reingreso.idtrabajador = idTrabajador; reingreso.periodoinicio = _inicioPeriodo.Date; reingreso.periodofin = _finPeriodo.Date; Bajas.Core.Bajas baja = new Bajas.Core.Bajas(); baja.idempresa = GLOBALES.IDEMPRESA; baja.idtrabajador = idTrabajador; baja.periodoinicio = _inicioPeriodo.Date; baja.periodofin = _finPeriodo.Date; int idperiodo = 0; try { cnx.Open(); idperiodo = (int)emph.obtenerIdPeriodo(idTrabajador); lstAlta = ah.obtenerAlta(alta); lstReingreso = rh.obtenerReingreso(reingreso); lstBaja = bh.obtenerBaja(baja); cnx.Close(); } catch { MessageBox.Show("Error: al obtener el Id del Periodo.","Error"); cnx.Dispose(); return; } Periodos.Core.PeriodosHelper ph = new Periodos.Core.PeriodosHelper(); ph.Command = cmd; Periodos.Core.Periodos p = new Periodos.Core.Periodos(); p.idperiodo = idperiodo; int periodo = 0; try { cnx.Open(); periodo = (int)ph.DiasDePago(p); cnx.Close(); } catch { MessageBox.Show("Error: al obtener los dias de pago.", "Error"); cnx.Dispose(); return; } if (periodo == 7) { DateTime dt = dtpFecha.Value.Date; while (dt.DayOfWeek != DayOfWeek.Monday) dt = dt.AddDays(-1); periodoInicio = dt; periodoFin = dt.AddDays(6); } else { if (dtpFecha.Value.Day <= 15) { periodoInicio = new DateTime(dtpFecha.Value.Year, dtpFecha.Value.Month, 1); periodoFin = new DateTime(dtpFecha.Value.Year, dtpFecha.Value.Month, 15); } else { periodoInicio = new DateTime(dtpFecha.Value.Year, dtpFecha.Value.Month, 16); periodoFin = new DateTime(dtpFecha.Value.Year, dtpFecha.Value.Month, DateTime.DaysInMonth(dtpFecha.Value.Year, dtpFecha.Value.Month)); } } if (lstAlta.Count != 0) EsAlta = true; if (lstBaja.Count != 0) EsBaja = true; if (lstReingreso.Count != 0) EsReingreso = true; Faltas.Core.FaltasHelper fh = new Faltas.Core.FaltasHelper(); fh.Command = cmd; List<Faltas.Core.Faltas> lstFaltas = new List<Faltas.Core.Faltas>(); int faltas = int.Parse(txtFalta.Text); if (int.Parse(txtFalta.Text) > 15) faltas = 15; for (int i = 0; i < faltas; i++) { int existe = 0; int existeVacacion = 0; try { cnx.Open(); existe = (int)fh.existeFalta(idTrabajador, dtpFecha.Value.AddDays(i).Date); cnx.Close(); } catch { MessageBox.Show("Error: Al verificar existencia de falta.", "Error"); cnx.Dispose(); return; } if (existe != 0) { MessageBox.Show("Ya existe una falta con esa fecha.", "Error"); //return; } else { Incidencias.Core.IncidenciasHelper ih = new Incidencias.Core.IncidenciasHelper(); ih.Command = cmd; Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; bool FLAG_FALTAS = false; if (EsAlta) { if (dtpFecha.Value.AddDays(i).Date < lstAlta[0].fechaingreso.Date) { MessageBox.Show("Error: Alta del empleado, Fecha de Ingreso = " + lstAlta[0].fechaingreso.Date.ToShortDateString() + "\r\n Fecha de la falta es menor.", "Error"); FLAG_FALTAS = true; } else FLAG_FALTAS = false; } if (EsReingreso) { if (dtpFecha.Value.AddDays(i).Date < lstReingreso[0].fechaingreso.Date) { MessageBox.Show("Error: Alta del empleado, Fecha de Reingreso = " + lstReingreso[0].fechaingreso.Date.ToShortDateString() + "\r\n Fecha de la falta es menor.", "Error"); FLAG_FALTAS = true; } else FLAG_FALTAS = false; } if (EsBaja) { if (dtpFecha.Value.AddDays(i).Date > lstBaja[0].fecha.Date) { MessageBox.Show("Error: Alta del empleado, Fecha de Reingreso = " + lstBaja[0].fecha.Date.ToShortDateString() + "\r\n Fecha de la falta es mayor.", "Error"); FLAG_FALTAS = true; } else FLAG_FALTAS = false; } if (!FLAG_FALTAS) { try { cnx.Open(); existe = (int)ih.existeIncidenciaEnFalta(idTrabajador, dtpFecha.Value.AddDays(i).Date); existeVacacion = (int)vh.existeVacacionEnFalta(idTrabajador, dtpFecha.Value.AddDays(i).Date); cnx.Close(); } catch { MessageBox.Show("Error: Al guardar la falta.", "Error"); cnx.Dispose(); return; } if (existe == 0 && existeVacacion == 0) { Faltas.Core.Faltas falta = new Faltas.Core.Faltas(); falta.idtrabajador = idTrabajador; falta.idempresa = GLOBALES.IDEMPRESA; falta.faltas = 1; falta.fechainicio = periodoInicio.Date; falta.fechafin = periodoFin.Date; falta.fecha = dtpFecha.Value.AddDays(i).Date; falta.periodo = periodo; lstFaltas.Add(falta); } else MessageBox.Show("La falta ingresada, se empalma con una incapacidad y/o dia de vacación del trabajador.", "Error"); } } } if (lstFaltas.Count != 0) { SqlBulkCopy bulk = new SqlBulkCopy(cnx); fh.bulkCommand = bulk; DataTable dtFalta = new DataTable(); DataRow dtFilaFalta; dtFalta.Columns.Add("id", typeof(Int32)); dtFalta.Columns.Add("idtrabajador", typeof(Int32)); dtFalta.Columns.Add("idempresa", typeof(Int32)); dtFalta.Columns.Add("periodo", typeof(Int32)); dtFalta.Columns.Add("faltas", typeof(Int32)); dtFalta.Columns.Add("fechainicio", typeof(DateTime)); dtFalta.Columns.Add("fechafin", typeof(DateTime)); dtFalta.Columns.Add("fecha", typeof(DateTime)); for (int i = 0; i < lstFaltas.Count; i++) { dtFilaFalta = dtFalta.NewRow(); dtFilaFalta["id"] = i + 1; dtFilaFalta["idtrabajador"] = lstFaltas[i].idtrabajador; dtFilaFalta["idempresa"] = lstFaltas[i].idempresa; dtFilaFalta["periodo"] = lstFaltas[i].periodo; dtFilaFalta["faltas"] = lstFaltas[i].faltas; dtFilaFalta["fechainicio"] = lstFaltas[i].fechainicio; dtFilaFalta["fechafin"] = lstFaltas[i].fechafin; dtFilaFalta["fecha"] = lstFaltas[i].fecha; dtFalta.Rows.Add(dtFilaFalta); } try { cnx.Open(); fh.bulkFaltas(dtFalta, "tmpFaltas"); fh.stpFaltas(); cnx.Close(); cnx.Dispose(); muestraFaltas(); } catch (Exception error) { MessageBox.Show("Error: \r\n \r\n" + error.Message + "\r\n \r\n Error Bulk Faltas.", "Error"); } } }
private void btnGuardarVP_Click(object sender, EventArgs e) { cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; Empleados.Core.EmpleadosHelper emph = new Empleados.Core.EmpleadosHelper(); emph.Command = cmd; Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; Complementos.Core.ComplementoHelper ch = new Complementos.Core.ComplementoHelper(); ch.Command = cmd; Empleados.Core.Empleados empleado = new Empleados.Core.Empleados(); empleado.idtrabajador = idTrabajador; Complementos.Core.Complemento c = new Complementos.Core.Complemento(); c.idtrabajador = idTrabajador; c.observaciones = txtObservaciones.Text; List<Empleados.Core.Empleados> lstEmpleado = new List<Empleados.Core.Empleados>(); try { cnx.Open(); lstEmpleado = emph.obtenerEmpleado(empleado); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener la antigüedad del empleado.", "Error"); cnx.Dispose(); return; } Vacaciones.Core.DiasDerecho dd = new Vacaciones.Core.DiasDerecho(); dd.anio = lstEmpleado[0].antiguedadmod; int dias = 0; try { cnx.Open(); dias = (int)vh.diasDerecho(dd); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener los dias por derecho del empleado.", "Error"); cnx.Dispose(); return; } int existePrima = 0; int existeVacacion = 0; if (cmbConceptoVacaciones.SelectedIndex == 0) // PRIMA VACACIONAL Y VACACIONES { Vacaciones.Core.VacacionesPrima vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = idTrabajador; vp.periodoinicio = _inicioPeriodo; vp.periodofin = _finPeriodo; vp.vacacionesprima = "P"; try { cnx.Open(); existePrima = (int)vh.existeVacacionesPrima(vp); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener la existencia de prima vacacional del empleado.", "Error"); cnx.Dispose(); return; } vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = idTrabajador; vp.periodoinicio = _inicioPeriodo; vp.periodofin = _finPeriodo; vp.vacacionesprima = "V"; try { cnx.Open(); existeVacacion = (int)vh.existeVacacionesPrima(vp); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener la existencia de vacaciones del empleado.", "Error"); cnx.Dispose(); return; } //VALIDACION DE EXISTENCIA DE PRIMA VACACIONAL Y VACACIONES if (existePrima != 0 || existeVacacion != 0) { MessageBox.Show("Error: Los datos a ingresar ya existen y/o existe la Prima Vacaciona o Vacaciones.", "Error"); cnx.Dispose(); return; } else { Faltas.Core.FaltasHelper fh = new Faltas.Core.FaltasHelper(); fh.Command = cmd; Faltas.Core.Faltas falta = new Faltas.Core.Faltas(); falta.idempresa = GLOBALES.IDEMPRESA; falta.idtrabajador = idTrabajador; falta.fechainicio = _inicioPeriodo.Date; falta.fechafin = _finPeriodo.Date; int existeFaltas = 0; try { cnx.Open(); existeFaltas = (int)fh.existeFalta(falta); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener las faltas del trabajador. \r\n" + error.Message, "Error"); cnx.Dispose(); return; } int diasPagoReales = int.Parse(txtDiasPagoPV.Text) + existeFaltas; if (diasPagoReales > _periodo) { diasPagoReales = _periodo - existeFaltas; MessageBox.Show("Existen faltas del trabajador, se ajustaron las vacaciones a: " + diasPagoReales.ToString() + " dia(s).", "Información"); } else { diasPagoReales = int.Parse(txtDiasPagoPV.Text); } vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = idTrabajador; vp.idempresa = GLOBALES.IDEMPRESA; vp.periodoinicio = _inicioPeriodo; vp.periodofin = _finPeriodo; vp.diasderecho = dias; vp.diaspago = diasPagoReales; vp.diaspendientes = dias - diasPagoReales; vp.fechapago = DateTime.Now.Date; vp.fechainicio = DateTime.Now.Date; vp.fechafin = DateTime.Now.Date; vp.vacacionesprima = "P"; try { cnx.Open(); vh.insertaVacacion(vp); cnx.Close(); } catch { MessageBox.Show("Error: Al ingresar el registro de prima vacacional.", "Error"); cnx.Dispose(); return; } diasPagoReales = int.Parse(txtDiasPagoV.Text) + existeFaltas; if (diasPagoReales > _periodo) { diasPagoReales = _periodo - existeFaltas; MessageBox.Show("Existen faltas del trabajador, se ajustaron las vacaciones a: " + diasPagoReales.ToString() + " dia(s).", "Información"); } else { diasPagoReales = int.Parse(txtDiasPagoV.Text); } vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = idTrabajador; vp.idempresa = GLOBALES.IDEMPRESA; vp.periodoinicio = _inicioPeriodo; vp.periodofin = _finPeriodo; vp.diasderecho = dias; vp.diaspago = diasPagoReales; vp.diaspendientes = dias - diasPagoReales; vp.fechapago = DateTime.Now.Date; vp.fechainicio = dtpFechaInicioVacaciones.Value.Date; vp.fechafin = dtpFechaInicioVacaciones.Value.AddDays(diasPagoReales - 1); vp.vacacionesprima = "V"; try { cnx.Open(); vh.insertaVacacion(vp); cnx.Close(); cnx.Dispose(); muestraVacaciones(); } catch { MessageBox.Show("Error: Al ingresar el registro de prima vacacional.", "Error"); cnx.Dispose(); return; } } } else // SOLO PRIMA VACACIONAL { Vacaciones.Core.VacacionesPrima vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = idTrabajador; vp.periodoinicio = _inicioPeriodo; vp.periodofin = _finPeriodo; vp.vacacionesprima = "P"; try { cnx.Open(); existePrima = (int)vh.existeVacacionesPrima(vp); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener la existencia de vacaciones del empleado.", "Error"); cnx.Dispose(); return; } //VALIDACION DE EXISTENCIA DE PRIMA VACACIONAL if (existePrima != 0) { MessageBox.Show("Error: Los datos a ingresar ya existen.", "Error"); cnx.Dispose(); return; } else { Faltas.Core.FaltasHelper fh = new Faltas.Core.FaltasHelper(); fh.Command = cmd; Faltas.Core.Faltas falta = new Faltas.Core.Faltas(); falta.idempresa = GLOBALES.IDEMPRESA; falta.idtrabajador = idTrabajador; falta.fechainicio = _inicioPeriodo.Date; falta.fechafin = _finPeriodo.Date; int existeFaltas = 0; try { cnx.Open(); existeFaltas = (int)fh.existeFalta(falta); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener las faltas del trabajador. \r\n" + error.Message, "Error"); cnx.Dispose(); return; } int diasPagoReales = int.Parse(txtDiasPagoPV.Text) + existeFaltas; if (diasPagoReales > _periodo) { diasPagoReales = _periodo - existeFaltas; MessageBox.Show("Existen faltas del trabajador, se ajustaron las vacaciones a: " + diasPagoReales.ToString() + " dia(s).", "Información"); } else { diasPagoReales = int.Parse(txtDiasPagoPV.Text); } vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = idTrabajador; vp.idempresa = GLOBALES.IDEMPRESA; vp.periodoinicio = _inicioPeriodo; vp.periodofin = _finPeriodo; vp.diasderecho = dias; vp.diaspago = diasPagoReales; vp.diaspendientes = dias - diasPagoReales; vp.fechapago = DateTime.Now.Date; vp.fechainicio = DateTime.Now.Date; vp.fechafin = DateTime.Now.Date; vp.vacacionesprima = "P"; try { cnx.Open(); vh.insertaVacacion(vp); cnx.Close(); cnx.Dispose(); muestraVacaciones(); } catch { MessageBox.Show("Error: Al ingresar el registro de prima vacacional.", "Error"); cnx.Dispose(); return; } } } }
private void muestraVacaciones() { cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; Complementos.Core.ComplementoHelper comh = new Complementos.Core.ComplementoHelper(); comh.Command = cmd; Vacaciones.Core.VacacionesPrima v = new Vacaciones.Core.VacacionesPrima(); v.idtrabajador = idTrabajador; Complementos.Core.Complemento comp = new Complementos.Core.Complemento(); comp.idtrabajador = idTrabajador; List<Vacaciones.Core.VacacionesPrima> lstVacacionesPrima = new List<Vacaciones.Core.VacacionesPrima>(); try { cnx.Open(); lstVacacionesPrima = vh.obtenerVacacionesPrimaTrabajador(v); txtObservaciones.Text = comh.obtenerObservacionesTrabajador(comp).ToString(); cnx.Close(); cnx.Dispose(); } catch (Exception error) { MessageBox.Show("Error: Al obtener las Vacaciones. (Función Muestra Vacaciones.) \r\n \r\n" + error.Message, "Error"); } lstvVacaciones.Clear(); lstvVacaciones.View = View.Details; lstvVacaciones.GridLines = true; lstvVacaciones.Columns.Add("ID", 30, HorizontalAlignment.Right); lstvVacaciones.Columns.Add("Periodo Inicio", 80, HorizontalAlignment.Right); lstvVacaciones.Columns.Add("Periodo Fin", 80, HorizontalAlignment.Right); for (int i = 0; i < lstVacacionesPrima.Count; i++) { lstvVacaciones.Items.Add(lstVacacionesPrima[i].id.ToString()); lstvVacaciones.Items[i].SubItems.Add(lstVacacionesPrima[i].periodoinicio.ToShortDateString()); lstvVacaciones.Items[i].SubItems.Add(lstVacacionesPrima[i].periodofin.ToShortDateString()); } }
private void lstvVacaciones_Click(object sender, EventArgs e) { cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; List<Vacaciones.Core.VacacionesPrima> lstVacacionesPrima = new List<Vacaciones.Core.VacacionesPrima>(); if (lstvVacaciones.SelectedItems.Count > 0) { ListViewItem listItem = lstvVacaciones.SelectedItems[0]; try { cnx.Open(); lstVacacionesPrima = vh.obtenerVacacionesPrimaTrabajador(int.Parse(listItem.Text), idTrabajador, DateTime.Parse(listItem.SubItems[1].Text), DateTime.Parse(listItem.SubItems[2].Text)); cnx.Close(); cnx.Dispose(); } catch { MessageBox.Show("Error al obtener la informacion de las vacaciones.", "Error"); cnx.Dispose(); } } for (int i = 0; i < lstVacacionesPrima.Count; i++) { if (lstVacacionesPrima[i].vacacionesprima == "P") { txtDiasPagoPV.Text = lstVacacionesPrima[i].diaspago.ToString(); txtDiasPagoV.Text = "0"; cmbConceptoVacaciones.SelectedIndex = 1; } else { txtDiasPagoV.Text = lstVacacionesPrima[i].diaspago.ToString(); txtDiasPagoPV.Text = "0"; dtpFechaInicioVacaciones.Value = lstVacacionesPrima[i].fechainicio; cmbConceptoVacaciones.SelectedIndex = 0; } txtDiasPendientes.Text = lstVacacionesPrima[i].diaspendientes.ToString(); } }
private void btnAceptar_Click(object sender, EventArgs e) { int existeVacaciones = 0, existeIncapacidad = 0; int diasProporcionales = 0; int existeBaja = 0; DialogResult respuesta = MessageBox.Show("¿Desea dar de baja al empleado?","Confirmación",MessageBoxButtons.YesNo); if (respuesta == DialogResult.Yes) { //if (ausentismo) //{ // frmDiasAusentismo da = new frmDiasAusentismo(); // da.OnDiasAusentismo += da_OnDiasAusentismo; // da.ShowDialog(); //} //if (diasAusentismo == 0 && ausentismo) //{ // MessageBox.Show("El número de dias es 0 o se presionó el boton cancelar. Por favor revisar.", "Error"); // return; //} cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; PeriodoFechaAplicacion(); #region EXISTENCIA DE INCAPACIDAD Incidencias.Core.IncidenciasHelper ih = new Incidencias.Core.IncidenciasHelper(); ih.Command = cmd; Incidencias.Core.Incidencias incidencia = new Incidencias.Core.Incidencias(); incidencia.idtrabajador = _idempleado; incidencia.fechainicio = periodoInicio.Date; incidencia.fechafin = periodoFin.Date; try { cnx.Open(); existeIncapacidad = (int)ih.existeIncidenciaBaja(incidencia); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener existencia de Incapacidad.","Error"); cnx.Dispose(); return; } #endregion #region EXISTENCIA DE VACACIONES Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; Vacaciones.Core.VacacionesPrima vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = _idempleado; vp.periodoinicio = periodoInicio; vp.periodofin = periodoFin; vp.vacacionesprima = "V"; try { cnx.Open(); existeVacaciones = (int)vh.existeVacacionesPrima(vp); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener existencia de Vacaciones.", "Error"); cnx.Dispose(); return; } #endregion #region VALIDACION DE INCAPACIDAD if (existeIncapacidad != 0) { DateTime fechaInicioIncidencia; DateTime fechaFinIncidencia; try { cnx.Open(); fechaInicioIncidencia = DateTime.Parse(ih.fechaInicio(incidencia).ToString()); fechaFinIncidencia = DateTime.Parse(ih.fechaFin(incidencia).ToString()); cnx.Close(); } catch (Exception) { MessageBox.Show("Error: Al obtener las fechas de incapacidad.", "Error"); cnx.Dispose(); return; } if (dtpFechaBaja.Value.Date >= fechaInicioIncidencia.Date && dtpFechaBaja.Value.Date <= fechaFinIncidencia.Date) { MessageBox.Show("No se puede dar de baja. La fecha de baja esta entre una incapacidad.", "Error"); return; } if (dtpFechaBaja.Value.Date <= fechaInicioIncidencia.Date) { MessageBox.Show("No se puede dar de baja. Existe una incapacidad.", "Error"); return; } } #endregion #region VALIDACION DE VACACIONES if (existeVacaciones != 0) { DateTime fechaInicioVac; DateTime fechaFinVac; try { cnx.Open(); fechaInicioVac = DateTime.Parse(vh.fechaInicio(vp).ToString()); fechaFinVac = DateTime.Parse(vh.fechaFin(vp).ToString()); cnx.Close(); } catch (Exception) { MessageBox.Show("Error: Al obtener las fechas de las vacaciones.", "Error"); cnx.Dispose(); return; } if (dtpFechaBaja.Value.Date >= fechaInicioVac.Date && dtpFechaBaja.Value.Date <= fechaFinVac.Date) { MessageBox.Show("No se puede dar de baja. La fecha de baja coninciden con vacaciones.", "Error"); return; } if (dtpFechaBaja.Value.Date <= fechaInicioVac.Date) { MessageBox.Show("No se puede dar de baja. El trabajador tiene vacaciones.", "Error"); return; } } #endregion Empresas.Core.EmpresasHelper ep = new Empresas.Core.EmpresasHelper(); ep.Command = cmd; Empresas.Core.Empresas empresa = new Empresas.Core.Empresas(); empresa.idempresa = GLOBALES.IDEMPRESA; Empleados.Core.EmpleadosHelper eh = new Empleados.Core.EmpleadosHelper(); eh.Command = cmd; Empleados.Core.Empleados emp = new Empleados.Core.Empleados(); emp.idtrabajador = _idempleado; Empleados.Core.EmpleadosEstatus ee = new Empleados.Core.EmpleadosEstatus(); ee.idtrabajador = _idempleado; ee.idempresa = GLOBALES.IDEMPRESA; ee.estatus = GLOBALES.INACTIVO; Historial.Core.HistorialHelper hp = new Historial.Core.HistorialHelper(); hp.Command = cmd; Historial.Core.Historial h = new Historial.Core.Historial(); h.idtrabajador = _idempleado; h.tipomovimiento = GLOBALES.mBAJA; h.fecha_imss = dtpFechaBaja.Value; h.fecha_sistema = DateTime.Now; h.idempresa = GLOBALES.IDEMPRESA; h.motivobaja = int.Parse(cmbMotivoBaja.SelectedValue.ToString()); h.iddepartamento = 0; h.idpuesto = 0; //Ausentismo.Core.AusentismoHelper ah = new Ausentismo.Core.AusentismoHelper(); //ah.Command = cmd; //Ausentismo.Core.Ausentismo a = new Ausentismo.Core.Ausentismo(); //a.idtrabajador = _idempleado; //a.idempresa = GLOBALES.IDEMPRESA; //a.fecha_imss = dtpFechaBaja.Value; //a.dias = diasAusentismo; Bajas.Core.BajasHelper bh = new Bajas.Core.BajasHelper(); bh.Command = cmd; Bajas.Core.Bajas baja = new Bajas.Core.Bajas(); baja.idtrabajador = _idempleado; baja.idempresa = GLOBALES.IDEMPRESA; baja.motivo = int.Parse(cmbMotivoBaja.SelectedValue.ToString()); baja.fecha = dtpFechaBaja.Value.Date; //baja.diasproporcionales = (int)(dtpFechaBaja.Value.Date - periodoInicio.Date).TotalDays + 1; baja.periodoinicio = periodoInicio.Date; baja.periodofin = periodoFin.Date; baja.observaciones = txtObservaciones.Text; baja.registro = DateTime.Now; diasProporcionales = (int)(dtpFechaBaja.Value.Date - periodoInicio.Date).TotalDays + 1; if (diasProporcionales == 16) baja.diasproporcionales = diasProporcionales - 1; else baja.diasproporcionales = (int)(dtpFechaBaja.Value.Date - periodoInicio.Date).TotalDays + 1; try { cnx.Open(); existeBaja = (int)bh.existeBaja(baja); cnx.Close(); } catch (Exception) { MessageBox.Show("Error: Al verificar la existencia de la baja.", "Error"); cnx.Dispose(); return; } if (existeBaja != 0) { MessageBox.Show( string.Format("El trabajador ya cuenta con una baja en el periodo del: \r\n \r\n {0} al {1}", periodoInicio.Date.ToShortDateString(), periodoFin.Date.ToShortDateString()), "Información"); return; } bool obraCivil = false; try { cnx.Open(); obraCivil = bool.Parse(eh.esObraCivil(GLOBALES.IDEMPRESA, _idempleado).ToString()); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener dato de obra civil. \r\n \r\n" + error.Message, "Error"); return; } if (obraCivil) { nh = new CalculoNomina.Core.NominaHelper(); nh.Command = cmd; List<CalculoNomina.Core.tmpPagoNomina> lstPreNominaGuardada = new List<CalculoNomina.Core.tmpPagoNomina>(); List<CalculoNomina.Core.tmpPagoNomina> lstUltimaNomina = new List<CalculoNomina.Core.tmpPagoNomina>(); try { cnx.Open(); lstUltimaNomina = nh.obtenerUltimaNominaTrabajador(GLOBALES.IDEMPRESA, _idempleado, periodo); lstPreNominaGuardada = nh.fechaPreNominaObraCivil(GLOBALES.IDEMPRESA, _idempleado, periodoInicio, periodoFin); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener las fechas de pago. \r\n \r\n" + error.Message, "Error"); return; } if (lstUltimaNomina.Count != 0) { if (dtpFechaBaja.Value.Date >= lstUltimaNomina[0].fechainicio || dtpFechaBaja.Value.Date <= lstUltimaNomina[0].fechafin) { MessageBox.Show("La baja corresponde a un periodo cerrado.", "Información"); return; } } if (lstPreNominaGuardada.Count != 0) { if (dtpFechaBaja.Value.Date <= lstPreNominaGuardada[0].fechafin) { try { Bajas.Core.Bajas bajaTrabajador = new Bajas.Core.Bajas(); bajaTrabajador.idtrabajador = _idempleado; cnx.Open(); bh.bajaEmpleado(bajaTrabajador); nh.eliminaPreNomina(_idempleado, periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al dar baja del empleado. \r\n \r\n" + error.Message, "Error"); return; } } } } else { nh = new CalculoNomina.Core.NominaHelper(); nh.Command = cmd; List<CalculoNomina.Core.tmpPagoNomina> lstNomina = new List<CalculoNomina.Core.tmpPagoNomina>(); try { cnx.Open(); lstNomina = nh.obtenerUltimaNominaTrabajador(GLOBALES.IDEMPRESA, _idempleado, periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener las fechas de pago. \r\n \r\n" + error.Message, "Error"); return; } if (lstNomina.Count != 0) { if (dtpFechaBaja.Value.Date <= lstNomina[0].fechainicio || dtpFechaBaja.Value.Date <= lstNomina[0].fechafin) { try { Bajas.Core.Bajas bajaTrabajador = new Bajas.Core.Bajas(); bajaTrabajador.idtrabajador = _idempleado; cnx.Open(); bh.bajaEmpleado(bajaTrabajador); nh.eliminaPreNomina(_idempleado, periodo); cnx.Close(); baja.fecha = lstNomina[0].fechafin; baja.diasproporcionales = 1; MessageBox.Show("La baja corresponde a un periodo cerrado. \r\n\r\n Se dará con la fecha de termino del periodo cerrado: " + lstNomina[0].fechafin.ToShortDateString(), "Información"); } catch (Exception error) { MessageBox.Show("Error: Al dar baja del empleado. \r\n \r\n" + error.Message, "Error"); return; } } } } try { cnx.Open(); h.valor = (decimal)eh.obtenerSalarioDiarioIntegrado(emp); hp.insertarHistorial(h); //ACTUALIZA TABLA trabajadoresestatus eh.bajaEmpleado(ee); baja.registropatronal = (string)ep.obtenerRegistroPatronal(empresa); baja.nss = (string)eh.obtenerNss(emp); bh.insertaBaja(baja); //if (ausentismo) //{ // a.registropatronal = (string)ep.obtenerRegistroPatronal(empresa); // a.nss = (string)eh.obtenerNss(emp); // ah.insertaAusentismo(a); //} cnx.Close(); cnx.Dispose(); if(OnBajaEmpleado != null) OnBajaEmpleado(GLOBALES.ACTIVO); } catch (Exception error) { MessageBox.Show("Error: \r\n \r\n " + error.Message, "Error"); } MessageBox.Show("Baja exitosa.", "Información"); btnAceptar.Enabled = false; this.Dispose(); } }
private void workVacaciones_DoWork(object sender, DoWorkEventArgs e) { int idEmpleado = 0; cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; List<Vacaciones.Core.VacacionesPrima> lstMovimientos = new List<Vacaciones.Core.VacacionesPrima>(); vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; emph = new Empleados.Core.EmpleadosHelper(); emph.Command = cmd; ph = new Periodos.Core.PeriodosHelper(); ph.Command = cmd; foreach (DataGridViewRow fila in dgvCargaVacaciones.Rows) { try { cnx.Open(); idEmpleado = (int)emph.obtenerIdTrabajador(fila.Cells["noempleado"].Value.ToString(), idEmpresa); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Obtener ID del concepto. \r\n \r\n" + error.Message, "Error"); cnx.Dispose(); this.Dispose(); } Empleados.Core.Empleados empleado = new Empleados.Core.Empleados(); empleado.idtrabajador = idEmpleado; List<Empleados.Core.Empleados> lstEmpleado = new List<Empleados.Core.Empleados>(); try { cnx.Open(); lstEmpleado = emph.obtenerEmpleado(empleado); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener la antigüedad del empleado.", "Error"); cnx.Dispose(); this.Dispose(); } Vacaciones.Core.DiasDerecho dd = new Vacaciones.Core.DiasDerecho(); dd.anio = lstEmpleado[0].antiguedadmod; int dias = 0; try { cnx.Open(); dias = (int)vh.diasDerecho(dd); cnx.Close(); } catch { MessageBox.Show("Error: Al obtener los dias por derecho del empleado.", "Error"); cnx.Dispose(); return; } Faltas.Core.FaltasHelper fh = new Faltas.Core.FaltasHelper(); fh.Command = cmd; Faltas.Core.Faltas falta = new Faltas.Core.Faltas(); falta.idempresa = GLOBALES.IDEMPRESA; falta.idtrabajador = idEmpleado; falta.fechainicio = DateTime.Parse(dgvCargaVacaciones.Rows[0].Cells["inicio"].Value.ToString()); falta.fechafin = DateTime.Parse(dgvCargaVacaciones.Rows[0].Cells["fin"].Value.ToString()); int existeFaltas = 0; try { cnx.Open(); existeFaltas = (int)fh.existeFalta(falta); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener las faltas del trabajador. \r\n" + error.Message, "Error"); cnx.Dispose(); return; } int idperiodo = 0; try { cnx.Open(); idperiodo = (int)emph.obtenerIdPeriodo(idEmpleado); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener el id del periodo. \r\n" + error.Message, "Error"); cnx.Dispose(); return; } Periodos.Core.Periodos p = new Periodos.Core.Periodos(); p.idperiodo = idperiodo; int diasPeriodo = 0; try { cnx.Open(); diasPeriodo = (int)ph.DiasDePago(p); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener los dias del periodo. \r\n" + error.Message, "Error"); cnx.Dispose(); return; } int diasPagoReales = int.Parse(fila.Cells["diaspago"].Value.ToString()) + existeFaltas; if (diasPagoReales >= diasPeriodo) { diasPagoReales = diasPeriodo - existeFaltas; MessageBox.Show("Existen faltas del trabajador, se ajustarán las vacaciones.", "Información"); } else { diasPagoReales = int.Parse(fila.Cells["diaspago"].Value.ToString()); } Vacaciones.Core.VacacionesPrima vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = idEmpleado; vp.idempresa = GLOBALES.IDEMPRESA; vp.periodoinicio = DateTime.Parse(dgvCargaVacaciones.Rows[0].Cells["inicio"].Value.ToString()); vp.periodofin = DateTime.Parse(dgvCargaVacaciones.Rows[0].Cells["fin"].Value.ToString()); vp.diasderecho = dias; vp.fechapago = DateTime.Now.Date; vp.vacacionesprima = fila.Cells["concepto"].Value.ToString() == "Prima Vacacional" ? "P" : "V"; if (fila.Cells["concepto"].Value.ToString() == "Prima Vacacional") { vp.diaspago = diasPagoReales; vp.diaspendientes = dias - diasPagoReales; vp.fechainicio = DateTime.Now.Date; vp.fechafin = DateTime.Now.Date; } else { vp.diaspago = diasPagoReales; vp.diaspendientes = dias - diasPagoReales; vp.fechainicio = DateTime.Parse(fila.Cells["fechaaplicacion"].Value.ToString()); vp.fechafin = DateTime.Parse(fila.Cells["fechaaplicacion"].Value.ToString()).AddDays(diasPagoReales - 1); } lstMovimientos.Add(vp); } bulk = new SqlBulkCopy(cnx); vh.bulkCommand = bulk; DataTable dt = new DataTable(); DataRow dtFila; dt.Columns.Add("id", typeof(Int32)); dt.Columns.Add("idtrabajador", typeof(Int32)); dt.Columns.Add("idempresa", typeof(Int32)); dt.Columns.Add("periodoinicio", typeof(DateTime)); dt.Columns.Add("periodofin", typeof(DateTime)); dt.Columns.Add("diasderecho", typeof(Int32)); dt.Columns.Add("diaspago", typeof(Int32)); dt.Columns.Add("diaspendientes", typeof(Int32)); dt.Columns.Add("fechapago", typeof(DateTime)); dt.Columns.Add("vacacionesprima", typeof(String)); dt.Columns.Add("fechainicio", typeof(DateTime)); dt.Columns.Add("fechafin", typeof(DateTime)); int index = 1; for (int i = 0; i < lstMovimientos.Count; i++) { dtFila = dt.NewRow(); dtFila["id"] = i + 1; dtFila["idtrabajador"] = lstMovimientos[i].idtrabajador; dtFila["idempresa"] = lstMovimientos[i].idempresa; dtFila["periodoinicio"] = lstMovimientos[i].periodoinicio; dtFila["periodofin"] = lstMovimientos[i].periodofin; dtFila["diasderecho"] = lstMovimientos[i].diasderecho; dtFila["diaspago"] = lstMovimientos[i].diaspago; dtFila["diaspendientes"] = lstMovimientos[i].diaspendientes; dtFila["fechapago"] = lstMovimientos[i].fechapago; dtFila["vacacionesprima"] = lstMovimientos[i].vacacionesprima; dtFila["fechainicio"] = lstMovimientos[i].fechainicio; dtFila["fechafin"] = lstMovimientos[i].fechafin; dt.Rows.Add(dtFila); index++; } try { cnx.Open(); vh.bulkVacaciones(dt, "tmpVacacionesPrima"); vh.stpVacaciones(); cnx.Close(); cnx.Dispose(); } catch (Exception error) { MessageBox.Show("Error (DataTable): \r\n \r\n" + error.Message, "Error"); } }
public static List<CalculoNomina.Core.tmpPagoNomina> PERCEPCIONES(List<CalculoNomina.Core.Nomina> lstConceptosPercepciones, DateTime inicio, DateTime fin, int tipoNomina) { #region VARIABLES GLOBALES string cdn = ConfigurationManager.ConnectionStrings["cdnNomina"].ConnectionString; SqlConnection cnx = new SqlConnection(cdn); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnx; #endregion #region LISTA PARA DATOS DEL TRABAJADOR List<CalculoNomina.Core.tmpPagoNomina> lstValoresNomina; List<CalculoNomina.Core.tmpPagoNomina> lstValoresDefinitivos; #endregion #region CALCULO lstValoresNomina = new List<CalculoNomina.Core.tmpPagoNomina>(); for (int i = 0; i < lstConceptosPercepciones.Count; i++) { CalculoNomina.Core.tmpPagoNomina vn = new CalculoNomina.Core.tmpPagoNomina(); vn.idtrabajador = lstConceptosPercepciones[i].idtrabajador; vn.idempresa = GLOBALES.IDEMPRESA; vn.idconcepto = lstConceptosPercepciones[i].id; vn.noconcepto = lstConceptosPercepciones[i].noconcepto; vn.tipoconcepto = lstConceptosPercepciones[i].tipoconcepto; vn.fechainicio = inicio.Date; vn.fechafin = fin.Date; vn.guardada = false; vn.tiponomina = tipoNomina; vn.modificado = false; CalculoFormula formula = new CalculoFormula(lstConceptosPercepciones[i].idtrabajador, inicio.Date, fin.Date, lstConceptosPercepciones[i].formula); vn.cantidad = decimal.Parse(formula.calcularFormula().ToString()); CalculoFormula formulaExcento = new CalculoFormula(lstConceptosPercepciones[i].idtrabajador, inicio.Date, fin.Date, lstConceptosPercepciones[i].formulaexento); vn.exento = decimal.Parse(formulaExcento.calcularFormula().ToString()); Empleados.Core.EmpleadosHelper eh = new Empleados.Core.EmpleadosHelper(); eh.Command = cmd; cnx.Open(); int idperiodo = (int)eh.obtenerIdPeriodo(lstConceptosPercepciones[i].idtrabajador); cnx.Close(); Periodos.Core.PeriodosHelper ph = new Periodos.Core.PeriodosHelper(); ph.Command = cmd; Periodos.Core.Periodos p = new Periodos.Core.Periodos(); p.idperiodo = idperiodo; cnx.Open(); int dias = (int)ph.DiasDePago(p); cnx.Close(); Conceptos.Core.ConceptosHelper ch = new Conceptos.Core.ConceptosHelper(); ch.Command = cmd; Conceptos.Core.Conceptos c = new Conceptos.Core.Conceptos(); c.idempresa = GLOBALES.IDEMPRESA; c.noconcepto = lstConceptosPercepciones[i].noconcepto; c.tipoconcepto = lstConceptosPercepciones[i].tipoconcepto; c.periodo = dias; cnx.Open(); bool grava = (bool)ch.gravaConcepto(c); bool exenta = (bool)ch.exentaConcepto(c); cnx.Close(); if (grava && !exenta) vn.gravado = vn.cantidad; if (grava && exenta) { if (vn.cantidad <= vn.exento) { vn.exento = vn.cantidad; vn.gravado = 0; } else { vn.gravado = vn.cantidad - vn.exento; } } if (!grava && exenta) { vn.gravado = 0; vn.exento = vn.cantidad; } #region SWITCH SUELDO CERO switch (lstConceptosPercepciones[i].noconcepto) { case 1: if (vn.cantidad == 0) { vn.gravado = 0; lstValoresNomina.Add(vn); Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; Vacaciones.Core.VacacionesPrima vp = new Vacaciones.Core.VacacionesPrima(); vp.idtrabajador = lstConceptosPercepciones[i].idtrabajador; vp.idempresa = GLOBALES.IDEMPRESA; vp.periodofin = fin.Date; vp.periodoinicio = inicio.Date; vp.vacacionesprima = "V"; cnx.Open(); int diasVacaciones = (int)vh.pagoVacacionesPrima(vp); cnx.Close(); if (diasVacaciones == 0) { i++; int contadorDatosNomina = i; for (int j = i; j < lstConceptosPercepciones.Count; j++) { contadorDatosNomina = j; if (lstConceptosPercepciones[j].idtrabajador == vn.idtrabajador) { CalculoNomina.Core.tmpPagoNomina vnCero = new CalculoNomina.Core.tmpPagoNomina(); vnCero.idtrabajador = lstConceptosPercepciones[j].idtrabajador; vnCero.idempresa = GLOBALES.IDEMPRESA; vnCero.idconcepto = lstConceptosPercepciones[j].id; vnCero.noconcepto = lstConceptosPercepciones[j].noconcepto; vnCero.tipoconcepto = lstConceptosPercepciones[j].tipoconcepto; vnCero.fechainicio = inicio.Date; vnCero.fechafin = fin.Date; vnCero.guardada = false; vnCero.tiponomina = tipoNomina; vnCero.modificado = false; vnCero.cantidad = 0; vnCero.exento = 0; vnCero.gravado = 0; lstValoresNomina.Add(vnCero); } else { --contadorDatosNomina; break; } } i = contadorDatosNomina; } } else lstValoresNomina.Add(vn); break; default: lstValoresNomina.Add(vn); break; } #endregion } #endregion #region EXISTENCIA DEL CONCEPTO EN TABLA int existe = 0; CalculoNomina.Core.NominaHelper nh = new CalculoNomina.Core.NominaHelper(); nh.Command = cmd; lstValoresDefinitivos = new List<CalculoNomina.Core.tmpPagoNomina>(); for (int i = 0; i < lstValoresNomina.Count; i++) { CalculoNomina.Core.tmpPagoNomina vn = new CalculoNomina.Core.tmpPagoNomina(); vn.idtrabajador = lstValoresNomina[i].idtrabajador; vn.idempresa = GLOBALES.IDEMPRESA; vn.idconcepto = lstValoresNomina[i].idconcepto; vn.noconcepto = lstValoresNomina[i].noconcepto; vn.tipoconcepto = lstValoresNomina[i].tipoconcepto; vn.fechainicio = lstValoresNomina[i].fechainicio; vn.fechafin = lstValoresNomina[i].fechafin; vn.guardada = lstValoresNomina[i].guardada; vn.tiponomina = lstValoresNomina[i].tiponomina; vn.modificado = lstValoresNomina[i].modificado; vn.exento = lstValoresNomina[i].exento; vn.gravado = lstValoresNomina[i].gravado; vn.cantidad = lstValoresNomina[i].cantidad; cnx.Open(); existe = (int)nh.existeConcepto(vn); cnx.Close(); if (existe == 0) { lstValoresDefinitivos.Add(vn); } else { cnx.Open(); nh.actualizaConcepto(vn); cnx.Close(); } } #endregion return lstValoresDefinitivos; }
private void dgvFaltas_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (FLAGCARGA) { FLAGCARGA = false; return; } if (dgvFaltas.Columns[e.ColumnIndex].Name.ToString() == "") return; if (dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value.ToString() == "" || dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value.ToString() == "0") return; try { int.Parse(dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value.ToString()); } catch { MessageBox.Show("Dato incorrecto. SOLO NUMEROS.", "Información"); dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value = ""; return; } int existe = 0, existeVacacion = 0; int faltas = int.Parse(dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value.ToString()); DateTime fechaColumna = DateTime.Parse(dgvFaltas.Columns[e.ColumnIndex].Name.ToString()); if (faltas > 1 || faltas < 0) { MessageBox.Show("Solo se admite el valor de 1 falta por dia.", "Información"); dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value = ""; return; } cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; Incidencias.Core.IncidenciasHelper ih = new Incidencias.Core.IncidenciasHelper(); ih.Command = cmd; Vacaciones.Core.VacacionesHelper vh = new Vacaciones.Core.VacacionesHelper(); vh.Command = cmd; try { cnx.Open(); existe = (int)ih.existeIncidenciaEnFalta(int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["idtrabajadorfalta"].Value.ToString()), fechaColumna.Date); existeVacacion = (int)vh.existeVacacionEnFalta(int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["idtrabajadorfalta"].Value.ToString()), fechaColumna.Date); cnx.Close(); } catch { MessageBox.Show("Error: \r\n \r\n No se pudo verificar la incapacidad, verifique.", "Error"); dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value = ""; cnx.Dispose(); } if (existe == 0 && existeVacacion == 0) { fh = new Faltas.Core.FaltasHelper(); fh.Command = cmd; Faltas.Core.Faltas falta = new Faltas.Core.Faltas(); falta.idtrabajador = int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["idtrabajadorfalta"].Value.ToString()); falta.idempresa = GLOBALES.IDEMPRESA; falta.periodo = _periodo; falta.faltas = int.Parse(dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value.ToString()); falta.fechainicio = periodoInicio.Date; falta.fechafin = periodoFin.Date; falta.fecha = DateTime.Parse(dgvFaltas.Columns[e.ColumnIndex].Name.ToString()); try { cnx.Open(); fh.insertaFalta(falta); cnx.Close(); cnx.Dispose(); } catch { MessageBox.Show("Error: \r\n \r\n Se ingreso un valor incorrecto, verifique.", "Error"); dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value = ""; cnx.Dispose(); } } else { MessageBox.Show("La falta ingresada, se empalma con una incapacidad y/o dia de vacación del trabajador.", "Error"); dgvFaltas.Rows[e.RowIndex].Cells[dgvFaltas.Columns[e.ColumnIndex].Name.ToString()].Value = ""; } #region CODIGO COMENTADO //if (dgvFaltas.Columns[e.ColumnIndex].Name == "falta") //{ // if (int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["falta"].Value.ToString()) > _periodo) // { // MessageBox.Show("La falta ingresada es mayor al periodo. Verifique", "Error"); // dgvFaltas.Rows[e.RowIndex].Cells["falta"].Value = 0; // return; // } // if (dgvFaltas.Rows[e.RowIndex].Cells["falta"].Value.ToString() != "0") // { // if (dgvFaltas.Rows[e.RowIndex].Cells["incapacidad"].Value.ToString() != "0") // { // borraIncapacidad(e.ColumnIndex + 1, e.RowIndex); // dgvFaltas.Rows[e.RowIndex].Cells["incapacidad"].Value = 0; // } // cnx = new SqlConnection(cdn); // cmd = new SqlCommand(); // cmd.Connection = cnx; // fh = new Faltas.Core.FaltasHelper(); // fh.Command = cmd; // Faltas.Core.Faltas falta = new Faltas.Core.Faltas(); // falta.idtrabajador = int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["idtrabajadorfalta"].Value.ToString()); // falta.idempresa = GLOBALES.IDEMPRESA; // falta.periodo = _periodo; // falta.faltas = int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["falta"].Value.ToString()); // falta.fechainicio = dtpPeriodoInicio.Value.Date; // falta.fechafin = dtpPeriodoFin.Value.Date; // try // { // cnx.Open(); // fh.insertaFalta(falta); // cnx.Close(); // cnx.Dispose(); // } // catch (Exception error) // { // MessageBox.Show("Error: \r\n \r\n Se ingreso un valor incorrecto, verifique.", "Error"); // dgvFaltas.Rows[e.RowIndex].Cells["falta"].Value = 0; // cnx.Dispose(); // } // } // else // { // borraFalta(e.ColumnIndex, e.RowIndex); // } //} //if (dgvFaltas.Columns[e.ColumnIndex].Name == "incapacidad") //{ // if (int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["incapacidad"].Value.ToString()) > _periodo) // { // MessageBox.Show("La incapacidad ingresada es mayor al periodo. Verifique", "Error"); // dgvFaltas.Rows[e.RowIndex].Cells["incapacidad"].Value = 0; // return; // } // if (dgvFaltas.Rows[e.RowIndex].Cells["incapacidad"].Value.ToString() != "0") // { // if (dgvFaltas.Rows[e.RowIndex].Cells["falta"].Value.ToString() != "0") // { // borraFalta(e.ColumnIndex - 1, e.RowIndex); // dgvFaltas.Rows[e.RowIndex].Cells["falta"].Value = 0; // } // cnx = new SqlConnection(cdn); // cmd = new SqlCommand(); // cmd.Connection = cnx; // ih = new Incapacidad.Core.IncapacidadHelper(); // ih.Command = cmd; // Incapacidad.Core.Incapacidades incapacidad = new Incapacidad.Core.Incapacidades(); // incapacidad.idtrabajador = int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["idtrabajadorfalta"].Value.ToString()); // incapacidad.idempresa = GLOBALES.IDEMPRESA; // incapacidad.diasincapacidad = 0; // incapacidad.diastomados = int.Parse(dgvFaltas.Rows[e.RowIndex].Cells["incapacidad"].Value.ToString()); // incapacidad.diasrestantes = 0; // incapacidad.diasapagar = 0; // incapacidad.tipo = 0; // incapacidad.aplicada = 1; // incapacidad.consecutiva = 1; // incapacidad.fechainicio = dtpPeriodoInicio.Value.Date; // incapacidad.fechafin = dtpPeriodoFin.Value.Date; // try // { // cnx.Open(); // ih.insertaIncapacidad(incapacidad); // cnx.Close(); // cnx.Dispose(); // } // catch (Exception error) // { // MessageBox.Show("Error: \r\n \r\n Se ingreso un valor incorrecto, verifique.", "Error"); // dgvFaltas.Rows[e.RowIndex].Cells["incapacidad"].Value = 0; // cnx.Dispose(); // } // } // else // { // borraIncapacidad(e.ColumnIndex, e.RowIndex); // } //} #endregion }