private void HoRaSGeneraDaSEScalaFOn_Detach(HoRaSGeneraDaSEScalaFOn entity) { entity.EmPleadOs = null; }
private void HoRaSGeneraDaSEScalaFOn_Detach(HoRaSGeneraDaSEScalaFOn entity) { entity.SERVicIoS = null; }
private void HoRaSGeneraDaSEScalaFOn_Attach(HoRaSGeneraDaSEScalaFOn entity) { entity.EmPleadOs = this; }
private void agregarFuncionario_Click(object sender, EventArgs e) { try { ControlDiarioAgregarFuncionario cdaf = new ControlDiarioAgregarFuncionario(DateTime.Parse(mtFecha.Text)); DialogResult res = cdaf.ShowDialog(this); if (res == DialogResult.OK) { EmPleadOs emp = cdaf.funcionario; DateTime fechaCorresponde = DateTime.Parse(mtFecha.Text); DateTime horaInicio = cdaf.HoraInicio; DateTime horaFin = cdaf.HoraFin; string ACargoDe = cdaf.ACargoDe; // Genero una nueva HoraGeneradasEscalafon HoRaSGeneraDaSEScalaFOn hgeNew = new HoRaSGeneraDaSEScalaFOn(); hgeNew.FechaCorrespondiente = fechaCorresponde; hgeNew.HoraEntrada = horaInicio; hgeNew.HoraSalida = horaFin; if (ACargoDe == "Empresa") hgeNew.AcArgoDeLaEmpresa = 1; hgeNew.NroEmpleado = emp.NroEmpleado; hgeNew.NumeroCliente = cliente.NumeroCliente; hgeNew.NumeroServicio = servicio.NumeroServicio; hgeNew.DiaHoraLlamadaAntesHoraEntrada = hgeNew.HoraEntrada.Subtract(TimeSpan.FromHours(2)); //hgeNew.Descanso = 0; // Chequeamos que no se solapen hs. //sistema.aplicarControlesAltaHoraGeneradaEscalafon(fechaCorresponde, hgeNew); cdaf.MotivoCambio.EmPleadOs = emp; cdaf.MotivoCambio.FechaCorresponde = fechaCorresponde; cdaf.MotivoCambio.FechaCambio = DateTime.Now; cdaf.MotivoCambio.NumeroCliente = cliente.NumeroCliente; cdaf.MotivoCambio.NumeroServicio = servicio.NumeroServicio; long idHGE = ControladorClientesServicios.getInstance().agregarEmpleadoControlDiario(fechaCorresponde, hgeNew, cdaf.MotivoCambio); hgeNew.IDHorasGeneradasEscalafon = idHGE; listaFuncsCargados.Add(idHGE, hgeNew); int num = dgvHoras.Rows.Add(); dgvHoras.Rows[num].Cells["IdHorasGeneradasEscalafon"].Value = hgeNew.IDHorasGeneradasEscalafon; dgvHoras.Rows[num].Cells["NroEmpleado"].Value = hgeNew.NroEmpleado; dgvHoras.Rows[num].Cells["Funcionario"].Value = emp.Nombre + " " + emp.Apellido; dgvHoras.Rows[num].Cells["HoraEntrada"].Value = hgeNew.HoraEntrada.ToString("HH:mm"); dgvHoras.Rows[num].Cells["HoraSalida"].Value = hgeNew.HoraSalida.ToString("HH:mm"); } } catch (Exception ex) { MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void HoRaSGeneraDaSEScalaFOn_Attach(HoRaSGeneraDaSEScalaFOn entity) { entity.SERVicIoS = this; }
private void cambiarHora(bool cambiarEntrada, string texto) { ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Iniciando..."); long idhge = int.Parse(dgvHoras.SelectedRows[0].Cells["IDHorasGeneradasEscalafon"].Value.ToString()); int idFuncSeleccionado = (int)listaFuncsCargados[idhge].NroEmpleado; string nombreFunc = dgvHoras.SelectedRows[0].Cells["Funcionario"].Value.ToString(); DateTime horaini = listaFuncsCargados[idhge].HoraEntrada; DateTime horafin = listaFuncsCargados[idhge].HoraSalida; CambiarHoraFuncionario changeHourForm = new CambiarHoraFuncionario(idFuncSeleccionado, nombreFunc, texto, horaini, horafin, cambiarEntrada); DialogResult dg = changeHourForm.ShowDialog(this); if (dg == DialogResult.OK) { ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "DialogResult.OK"); // Chequeamos que no existan los horarios solapados. HoRaSGeneraDaSEScalaFOn hstemp = new HoRaSGeneraDaSEScalaFOn(); hstemp.NroEmpleado = listaFuncsCargados[idhge].NroEmpleado; if (cambiarEntrada) { hstemp.HoraEntrada = changeHourForm.getFechaHoraNueva(); hstemp.HoraSalida = listaFuncsCargados[idhge].HoraSalida; } else { hstemp.HoraEntrada = listaFuncsCargados[idhge].HoraEntrada; hstemp.HoraSalida = changeHourForm.getFechaHoraNueva(); } try { ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Antes sistema.aplicarControlesAltaHoraGeneradaEscalafon"); sistema.aplicarControlesAltaHoraGeneradaEscalafon(listaFuncsCargados[idhge].FechaCorrespondiente, idhge, hstemp); ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues de sistema.aplicarControlesAltaHoraGeneradaEscalafon"); MotivoCambioDiarioForm mcdf = new MotivoCambioDiarioForm(DateTime.Parse(mtFecha.Text)); dg = mcdf.ShowDialog(this); ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues de showDialog"); if (dg == DialogResult.OK) { int numFila = dgvHoras.SelectedRows[0].Index; //long idhge = (long)dgvHoras.Rows[numFila].Cells["IdHorasGeneradasEscalafon"].Value; //int nroEmp = (int)listaFuncsCargados[idhge].NroEmpleado; ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Antes de changeHourForm.getFechaHoraNueva()"); DateTime FechaHoraNueva = changeHourForm.getFechaHoraNueva(); mcdf.motivoCambio.NroEmpleado = listaFuncsCargados[idhge].NroEmpleado; mcdf.motivoCambio.NumeroCliente = uint.Parse(ucCliente.ClienteNRO); mcdf.motivoCambio.NumeroServicio = servicio.NumeroServicio; ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues de mcdf.motivoCambio.NumeroServicio = servicio.NumeroServicio;"); //DateTime DateNueva = DateTime.Parse(mtFecha.Text + " " + HoraNueva); ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Antes datos.cambiarHoraFuncionarioControlDiario"); datos.cambiarHoraFuncionarioControlDiario(idhge, (int)listaFuncsCargados[idhge].NroEmpleado, FechaHoraNueva, cambiarEntrada, mcdf.motivoCambio); ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Despues datos.cambiarHoraFuncionarioControlDiario"); if (cambiarEntrada) { listaFuncsCargados[idhge].HoraEntrada = FechaHoraNueva; dgvHoras.Rows[numFila].Cells["HoraEntrada"].Value = FechaHoraNueva.ToString("HH:mm"); } else { listaFuncsCargados[idhge].HoraSalida = FechaHoraNueva; dgvHoras.Rows[numFila].Cells["HoraSalida"].Value = FechaHoraNueva.ToString("HH:mm"); } TimeSpan ts = new TimeSpan(listaFuncsCargados[idhge].HoraSalida.Ticks - listaFuncsCargados[idhge].HoraEntrada.Ticks); dgvHoras.Rows[numFila].Cells["TotalHs"].Value = impHora(ts); aplicarFormatoCeldaHora(numFila, listaFuncsCargados[idhge].HoraEntrada, listaFuncsCargados[idhge].HoraSalida); } } catch (Exception ex) { throw ex; } ControladorUtilidades.writeToLog(this.Name, "cambiarHora", "Fin."); } }
private void cambiarFuncionario_Click(object sender, EventArgs e) { try { ControladorUtilidades.writeToLog(this.Name, "cambiarFuncionario_Click", "Inicia metodo"); MotIVOsCamBiosDiARioS motivoCambio = null; int idFuncSeleccionado = int.Parse(dgvHoras.SelectedRows[0].Cells["NroEmpleado"].Value.ToString() ); string nombreFunc = dgvHoras.SelectedRows[0].Cells["Funcionario"].Value.ToString(); DateTime fecha = DateTime.Parse(mtFecha.Text); ControlDiarioCambiarFuncionario change = new ControlDiarioCambiarFuncionario(idFuncSeleccionado,nombreFunc, fecha); ControladorUtilidades.writeToLog(this.Name, "cambiarFuncionario_Click", "Antes de ShowDialog ControlDiarioCambiarFuncionario"); DialogResult dg = change.ShowDialog(this); if (dg == DialogResult.OK) { ControladorUtilidades.writeToLog(this.Name, "cambiarFuncionario_Click", "DialogResult OK"); int numFila = dgvHoras.SelectedRows[0].Index; long idhge = (long)dgvHoras.Rows[numFila].Cells["IdHorasGeneradasEscalafon"].Value; // Chequeamos que no existan los horarios solapados. HoRaSGeneraDaSEScalaFOn hstemp = new HoRaSGeneraDaSEScalaFOn(); hstemp.NroEmpleado = change.FuncionarioNuevo.NroEmpleado; hstemp.HoraEntrada = listaFuncsCargados[idhge].HoraEntrada; hstemp.HoraSalida = listaFuncsCargados[idhge].HoraSalida; try { ControladorUtilidades.writeToLog(this.Name, "cambiarFuncionario_Click", "Antes de sistema.AplicarControlesAltaHoraGeneradaEscalafon"); sistema.aplicarControlesAltaHoraGeneradaEscalafon(listaFuncsCargados[idhge].FechaCorrespondiente, hstemp); ControladorUtilidades.writeToLog(this.Name, "cambiarFuncionario_Click", "Despues de sistema.AplicarControlesAltaHoraGeneradaEscalafon"); // MotivoCambioDiarioForm mcdf = new MotivoCambioDiarioForm(DateTime.Parse(mtFecha.Text)); dg = mcdf.ShowDialog(this); if (dg == DialogResult.OK) { motivoCambio = mcdf.motivoCambio; //motivoCambio.IDHorasGeneradasEscalafon = idhge; motivoCambio.NumeroCliente = uint.Parse(ucCliente.ClienteNRO); motivoCambio.NroEmpleado = (uint)idFuncSeleccionado; motivoCambio.NumeroServicio = servicio.NumeroServicio; datos.cambiarFuncionarioControlDiario(idhge, (int)change.FuncionarioNuevo.NroEmpleado, motivoCambio); listaFuncsCargados[idhge].NroEmpleado = change.FuncionarioNuevo.NroEmpleado; dgvHoras.Rows[numFila].Cells["NroEmpleado"].Value = change.FuncionarioNuevo.NroEmpleado; dgvHoras.Rows[numFila].Cells["Funcionario"].Value = change.FuncionarioNuevo.Nombre + " " + change.FuncionarioNuevo.Apellido; } } catch (Exception ex) { throw ex; } ControladorUtilidades.writeToLog(this.Name, "cambiarFuncionario_Click", "Fin."); } }catch(Exception ex) { MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Aplica controles pero no teniendo en cuenta la linea IdHoraGeneradaActual de HorasGeneradas /// </summary> /// <param name="FechaCorrespondiente"></param> /// <param name="IdHoraGeneradaActual"></param> /// <param name="HoraGeneradaTemp"></param> public void aplicarControlesAltaHoraGeneradaEscalafon(DateTime FechaCorrespondiente, long IdHoraGeneradaActual, HoRaSGeneraDaSEScalaFOn HoraGeneradaTemp) { try { List<HoRaSGeneraDaSEScalaFOn> horarios = datos.obtenerHorasGeneradasEscalafonEmpleado(HoraGeneradaTemp.NroEmpleado,FechaCorrespondiente); foreach (HoRaSGeneraDaSEScalaFOn linea in horarios) { if (linea.IDHorasGeneradasEscalafon != IdHoraGeneradaActual) { //DayOfWeek day = (DayOfWeek) DayOfWeek.Parse(typeof(DayOfWeek), h.DiA, true); if (HorariosSolapados(HoraGeneradaTemp.HoraEntrada, HoraGeneradaTemp.HoraSalida, linea.HoraEntrada, linea.HoraSalida)) throw new Exception("Error de solapamiento de horarios. (" + HoraGeneradaTemp.HoraEntrada.ToLongTimeString() + "-" + HoraGeneradaTemp.HoraSalida.ToLongTimeString() + ") con " + "(Cliente: " + linea.NumeroCliente + " - Servicio: " + linea.NumeroServicio + ". Hs: " + linea.HoraEntrada.ToLongTimeString() + " - " + linea.HoraSalida.ToLongTimeString() + "). Dia: " + FechaCorrespondiente.ToShortDateString()); } } } catch (Exception ex) { throw ex; } }
/// <summary> /// Agrega un nuevo funcionario con un horario determinado a un HorasGeneradasEscalafon de un cliente servicio de un dia determinado aplicando los controles necesarios para su alta. /// </summary> /// <param name="fechaCorresponde">La fechaCorrespondiente a la que se va a dar el alta</param> /// <param name="horaGeneradaEscalafon">La horaGeneradaEscalafon a dar de alta sin el Identificador y el Motivo.</param> /// <param name="motivoCambio">El MotivoCambioDiario correspondiente al motivo del cambio.</param> /// <returns>El Identificador del alta de HorarioEscalafonEmpleado</returns> public long agregarEmpleadoControlDiario(DateTime fechaCorresponde, HoRaSGeneraDaSEScalaFOn horaGeneradaEscalafon, MotIVOsCamBiosDiARioS motivoCambio) { try { aplicarControlesAltaHoraGeneradaEscalafon(fechaCorresponde, horaGeneradaEscalafon); long ret = datos.agregarEmpleadoHoraGeneradaEscalafon(horaGeneradaEscalafon, motivoCambio); return ret; }catch(Exception ex) { throw ex; } }
public void generarHorasDiaServicio(int NumeroCliente, int NumeroServicio, DateTime Fecha, bool ForzarGeneracion) { try { if (Fecha.Date.CompareTo(DateTime.Today) <= 0) { throw new GenerarHorasDiaException("La fecha a generar debe ser mayor a hoy. " + DateTime.Today.ToShortDateString()); } List<HoRaSGeneraDaSEScalaFOn> listaHoras = datos.obtenerHorasGeneradasServicio(NumeroCliente, NumeroServicio, Fecha); if (listaHoras.Count != 0 && !ForzarGeneracion) { throw new YaExistenHorasGeneradasParaLaFechaException("Existen HorasGeneradas del Cliente: " + NumeroCliente + " - Servicio: " + NumeroServicio + " en la Fecha: " + Fecha.ToShortDateString()); }else { SERVicIoS serv = datos.obtenerServicioCliente(NumeroCliente, NumeroServicio); EScalaFOn escalafon = datos.obtenerEscalafon(CalcNroContrato(NumeroCliente,NumeroServicio)); HoRaSGeneraDaSEScalaFOn hge; foreach(EScalaFOneMpLeadO esc in escalafon.EScalaFOneMpLeadO) { // Chequeamos que el empleado no este durante ningun evento en el EventoHistorialEmpleado en esta fecha if (datos.empleadoTieneEventosHistorialEnFecha((int)esc.NroEmpleado, Fecha)) throw new GenerarHorasDiaException("El empleado " + esc.NroEmpleado + " tiene eventos en el Historial en la Ficha del empleado para la Fecha: " + Fecha.ToShortDateString()); hge = new HoRaSGeneraDaSEScalaFOn(); hge.FechaCorrespondiente = Fecha; int i=0; while (!nombreDiasInglesAEspanol(Fecha.DayOfWeek.ToString()).Equals(esc.HoRaRioEScalaFOn[i].DiA)) { i++; } if (esc.HoRaRioEScalaFOn[i].TipoDia == 0) // Si el dia es Laborable { hge.Descanso = 0; hge.HoraEntrada = DateTime.Parse(Fecha.ToShortDateString() + " " + esc.HoRaRioEScalaFOn[i].HoRaInI); hge.HoraSalida = DateTime.Parse(Fecha.ToShortDateString() + " " + esc.HoRaRioEScalaFOn[i].HoRaFIn); if (hge.HoraSalida < hge.HoraEntrada) hge.HoraSalida = hge.HoraSalida.AddDays(1.0); hge.NroEmpleado = esc.NroEmpleado; hge.NumeroCliente = escalafon.NumeroCliente; hge.NumeroServicio = escalafon.NumeroServicio; hge.DiaHoraLlamadaAntesHoraEntrada = hge.HoraEntrada.AddHours(-(double)esc.HsLlamadaAntesHoraInicio); if (esc.AcArgoDe == "Empresa") hge.AcArgoDeLaEmpresa = 1; listaHorasGeneradas.Add(hge); } else if (esc.HoRaRioEScalaFOn[i].TipoDia == 2) { hge.Descanso = 1; hge.NroEmpleado = esc.NroEmpleado; hge.NumeroCliente = escalafon.NumeroCliente; hge.NumeroServicio = escalafon.NumeroServicio; listaHorasGeneradas.Add(hge); } } } } catch(YaExistenHorasGeneradasParaLaFechaException y) { throw; } catch (Exception e) { throw new GenerarHorasDiaException("Error en la generacion de horas. Cliente: " + NumeroCliente + " - Servicio: "+NumeroServicio + " - Fecha: " + Fecha.ToShortDateString() + "\n"+e.Message); } }