int anchoTotal; // Para calcular el ancho total de la grilla public ImpresorDePlanillas(PlanillaHorariaBE planillaHoraria, DataGridView dataGridView, FormGeneral formGeneral) { this.dataGridView = dataGridView; this.formGeneral = formGeneral; printDocument.PrintPage += PrintDocument_PrintPage; printDocument.BeginPrint += PrintDocument_BeginPrint; datosPlanilla = new Dictionary <string, string> { { "lblNumeroPlanilla", planillaHoraria.Id.ToString() }, { "lblChofer", planillaHoraria.Chofer.Nombre }, { "lblRecorrido", planillaHoraria.Recorrido.ToString() }, { "lblFecha", planillaHoraria.Fecha.ToString("dd/MM/yyyy") }, { "lblCoche", formGeneral.ObtenerLeyenda("valInterno") + " " + planillaHoraria.Vehiculo.NumeroInterno + " (" + planillaHoraria.Vehiculo.Patente + ")" }, }; columnasAImprimir = new List <string> { "colOrigen", "colHoraSalida", "colDestino", "colHoraEstimadaLlegada", "colHoraRealLlegada", "colCompletado", "colDensidadPasajeros" }; }
private void DividirEnDosTurnos() { // Cada planilla generada hay que dividirla en dos turnos de 10 hs cada una. // Esto es porque a las 10 hs termina la jornada laboral de los choferes y vienen otros. List <PlanillaHorariaBE> planillasDivididas = new List <PlanillaHorariaBE>(); foreach (PlanillaHorariaBE planilla in _planillasGeneradas) { List <ViajeBE> viajesPrimerTurno = planilla.Viajes.Where(v => v.HoraSalida.Hour < 14).ToList(); List <ViajeBE> viajesSegundoTurno = planilla.Viajes.Where(v => v.HoraSalida.Hour >= 14).ToList(); // Se deja como está la planilla de la colección, pero con los viajes del primer turno planilla.Viajes = viajesPrimerTurno; planillasDivididas.Add(planilla); // Se crea una planilla igual pero con los viajes del segundo turno PlanillaHorariaBE planillaSegundoTurno = new PlanillaHorariaBE { Fecha = planilla.Fecha, Recorrido = planilla.Recorrido, Vehiculo = planilla.Vehiculo, Viajes = viajesSegundoTurno }; planillasDivididas.Add(planillaSegundoTurno); } // Sobreescribo la colección de planillas horarias _planillasGeneradas = planillasDivididas; }
private static void Guardar(PlanillaHorariaBE planillaHoraria) { PlanillaHorariaDAL.Guardar(planillaHoraria); // Guardo todos los viajes foreach (ViajeBE viaje in planillaHoraria.Viajes) { Viaje.Guardar(viaje, planillaHoraria); } }
public static void GuardarViajes(PlanillaHorariaBE planillaHoraria) { foreach (ViajeBE viaje in planillaHoraria.Viajes) { Viaje.Guardar(viaje, planillaHoraria); } Viaje.RecalcularDVV(); Bitacora.Loguear("Se actualizaron los viajes de la planilla N° " + planillaHoraria.Id); }
public static List <ViajeBE> ObtenerPorPlanilla(PlanillaHorariaBE planilla) { List <ViajeBE> viajes = ViajeDAL.ObtenerPorPlanillaHoraria(planilla.Id); foreach (ViajeBE viaje in viajes) { viaje.TerminalOrigen = viaje.EsIda ? planilla.Recorrido?.TerminalInicio : planilla.Recorrido?.TerminalFin; viaje.TerminalDestino = viaje.EsIda ? planilla.Recorrido?.TerminalFin : planilla.Recorrido?.TerminalInicio; } return(viajes); }
private void DgvResultadoBusqueda_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridView grid = (DataGridView)sender; if (grid.Columns[e.ColumnIndex] is DataGridViewButtonColumn & e.RowIndex >= 0) { // Se clickeó en un botón de Detalle PlanillaHorariaBE planilla = (grid.Rows[e.RowIndex].DataBoundItem as GridItem).Planilla; DetalleDePlanillaForm detalleDePlanillaForm = new DetalleDePlanillaForm(planilla) { MdiParent = MdiParent }; detalleDePlanillaForm.Show(); } }
public static void Guardar(PlanillaHorariaBE planillaHoraria) { string query = "INSERT INTO planilla_horaria (chofer_id, coche_id, recorrido_id, fecha, dvh) " + "OUTPUT INSERTED.id VALUES (@choferId, @cocheId, @recorridoId, @fecha, 0)"; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@choferId", planillaHoraria.Chofer.Id), new SqlParameter("@cocheId", planillaHoraria.Vehiculo.Id), new SqlParameter("@recorridoId", planillaHoraria.Recorrido.Id), new SqlParameter("@fecha", planillaHoraria.Fecha) }; planillaHoraria.Id = SqlHelper.Insertar(query, parameters); string registro = string.Format("{0}{1}{2}{3}{4}", planillaHoraria.Id, planillaHoraria.Chofer.Id, planillaHoraria.Vehiculo.Id, planillaHoraria.Recorrido.Id, planillaHoraria.Fecha.ToString("yyyyMMdd")); int dvh = DigitoVerificadorDAL.CalcularDV(registro); DigitoVerificadorDAL.ActualizarDVH("planilla_horaria", dvh, planillaHoraria.Id); }
public static void Guardar(ViajeBE viaje, PlanillaHorariaBE planillaHoraria) { ViajeDAL.Guardar(viaje, planillaHoraria.Id); }
public DetalleDePlanillaForm(PlanillaHorariaBE planillaHoraria) { InitializeComponent(); this.planillaHoraria = planillaHoraria; }
private void GenerarViajesYPlanillas(CalculoDeRecorrido calcRecorrido) { // Una vez que termino con el cálculo de cada intervalo genero viajes // El primer viaje del día es a las 4 AM DateTime inicioProximoViaje = new DateTime(1, 1, 1, 4, 0, 0); RecorridoBE recorrido = calcRecorrido.Recorrido; int descansoChoferes = int.Parse(ConfigurationManager.AppSettings["descansoChoferes"]); foreach (int intervalo in calcRecorrido.FrecuenciaPorIntervalo.Keys) { while (inicioProximoViaje.Hour - inicioProximoViaje.Hour % 2 == intervalo) { ViajeBE viajeIda = new ViajeBE { HoraSalida = inicioProximoViaje, HoraEstimadaLlegada = inicioProximoViaje.Add(calcRecorrido.DuracionPorIntervalo[intervalo]), EsIda = true, TerminalOrigen = recorrido.TerminalInicio, TerminalDestino = recorrido.TerminalFin }; // Busco la planilla cuyo último viaje termine en la terminal de salida antes de que // salga este micro (más el descanso de los choferes) PlanillaHorariaBE planillaIda = _planillasGeneradas.Where(p => p.Recorrido == recorrido && p.Viajes.Last().TerminalDestino == recorrido.TerminalInicio && p.Viajes.Last().HoraEstimadaLlegada.AddMinutes(descansoChoferes) < inicioProximoViaje).FirstOrDefault(); if (planillaIda == null) { planillaIda = new PlanillaHorariaBE { Fecha = _fechaAGenerar, Recorrido = recorrido, Viajes = new List <ViajeBE>() }; _planillasGeneradas.Add(planillaIda); } planillaIda.Viajes.Add(viajeIda); // Hago lo mismo con el viaje de vuelta ViajeBE viajeVuelta = new ViajeBE { HoraSalida = inicioProximoViaje, HoraEstimadaLlegada = inicioProximoViaje.Add(calcRecorrido.DuracionPorIntervalo[intervalo]), EsIda = false, TerminalOrigen = recorrido.TerminalFin, TerminalDestino = recorrido.TerminalInicio, }; PlanillaHorariaBE planillaVuelta = _planillasGeneradas.Where(p => p.Recorrido == recorrido && p.Viajes.Last().TerminalDestino == recorrido.TerminalFin && p.Viajes.Last().HoraEstimadaLlegada.AddMinutes(descansoChoferes) < inicioProximoViaje).FirstOrDefault(); if (planillaVuelta == null) { planillaVuelta = new PlanillaHorariaBE { Fecha = _fechaAGenerar, Recorrido = recorrido, Viajes = new List <ViajeBE>() }; _planillasGeneradas.Add(planillaVuelta); } planillaVuelta.Viajes.Add(viajeVuelta); inicioProximoViaje = inicioProximoViaje.AddMinutes(calcRecorrido.FrecuenciaPorIntervalo[intervalo]); } } }