protected override void Import(List <ImportRow> rows) { var procesados = 0; var erroneos = 0; var index = 0; var start = DateTime.Now.Ticks; lblResult.Text = ""; foreach (var row in rows) { try { index++; var codComercio = GetValue(row, Fields.CodComercio.Value).Trim(); var nombreComercio = GetValue(row, Fields.NombreComercio.Value).Trim(); if (codComercio == string.Empty) { erroneos++; Log("FILA ERRONEA", index, "COD. TALLER = VACIO"); continue; } var taller = DAOFactory.TallerDAO.GetByCode(codComercio); if (taller == null) { erroneos++; Log("FILA ERRONEA", index, "TALLER INEXISTENTE: " + codComercio + " - " + nombreComercio); continue; } var nroCliente = GetValue(row, Fields.NroCliente.Value).Trim(); var razonSocial = GetValue(row, Fields.RazonSocial.Value).Trim(); if (nroCliente == string.Empty) { erroneos++; Log("FILA ERRONEA", index, "COD. CLIENTE = VACIO"); continue; } var empresa = DAOFactory.EmpresaDAO.FindByCodigo(nroCliente); if (empresa == null) { erroneos++; Log("FILA ERRONEA", index, "CLIENTE INEXISTENTE: " + nroCliente + " - " + razonSocial); continue; } var patente = GetValue(row, Fields.Patente.Value).Trim(); if (patente == string.Empty) { erroneos++; Log("FILA ERRONEA", index, "PATENTE = VACIO"); continue; } var vehiculo = DAOFactory.CocheDAO.FindByPatente(empresa.Id, patente); if (vehiculo == null) { erroneos++; Log("FILA ERRONEA", index, "VEHICULO INEXISTENTE: " + patente); continue; } var empleado = GetValue(row, Fields.Empleado.Value).Trim(); var responsable = empleado != string.Empty ? DAOFactory.EmpleadoDAO.FindByLegajo(empresa.Id, -1, empleado) : null; var descripcion = GetValue(row, Fields.Descripcion.Value).Trim(); if (descripcion == string.Empty) { erroneos++; Log("FILA ERRONEA", index, "NO EXISTE DESCRIPCION"); continue; } var solicitud = GetValue(row, Fields.Solicitud.Value).Trim(); var nroPresupuesto = GetValue(row, Fields.NroPresupuesto.Value).Trim(); var monto = GetValue(row, Fields.Monto.Value).Trim(); double valor; double.TryParse(monto, out valor); var ingresoSolicitud = GetValue(row, Fields.IngresoSolicitud.Value).Trim(); if (ingresoSolicitud == string.Empty) { erroneos++; Log("FILA ERRONEA", index, "SIN FECHA DE INGRESO DE SOLICITUD"); continue; } var dtIngresoSolicitud = DateTime.Parse(ingresoSolicitud).ToDataBaseDateTime(); var fechaTurno = GetValue(row, Fields.FechaTurno.Value).Trim(); DateTime dtFt; var dtFechaTurno = DateTime.TryParse(fechaTurno, out dtFt) ? dtFt.ToDataBaseDateTime() : (DateTime?)null; var fechaRecepcion = GetValue(row, Fields.FechaRecepcion.Value).Trim(); DateTime dtRec; var dtFechaRecepcion = DateTime.TryParse(fechaRecepcion, out dtRec) ? dtRec.ToDataBaseDateTime() : (DateTime?)null; var primerPresupuesto = GetValue(row, Fields.PrimerPresupuesto.Value).Trim(); var fechaPrimerPresupuesto = GetValue(row, Fields.FechaPrimerPresupuesto.Value).Trim(); DateTime dtPrimerPres; var dtPromerPresupuesto = DateTime.TryParse(fechaPrimerPresupuesto, out dtPrimerPres) ? dtPrimerPres.ToDataBaseDateTime() : (DateTime?)null; var fechaPresupuestada = GetValue(row, Fields.FechaPresupuestada.Value).Trim(); DateTime dtPres; var dtFechaPresupuestada = DateTime.TryParse(fechaPresupuestada, out dtPres) ? dtPres.ToDataBaseDateTime() : (DateTime?)null; var fechaRecotizacion = GetValue(row, Fields.FechaRecotizacion.Value).Trim(); DateTime dtRecot; var dtFechaRecotizacion = DateTime.TryParse(fechaRecotizacion, out dtRecot) ? dtRecot.ToDataBaseDateTime() : (DateTime?)null; var fechaVerificacion = GetValue(row, Fields.FechaVerificacion.Value).Trim(); DateTime dtVerif; var dtFechaVerificacion = DateTime.TryParse(fechaVerificacion, out dtVerif) ? dtVerif.ToDataBaseDateTime() : (DateTime?)null; var fechaAprobacion = GetValue(row, Fields.FechaAprobacion.Value).Trim(); DateTime dtAprob; var dtFechaAprobacion = DateTime.TryParse(fechaAprobacion, out dtAprob) ? dtAprob.ToDataBaseDateTime() : (DateTime?)null; var fechaTrabajoTerminado = GetValue(row, Fields.FechaTrabajoTerminado.Value).Trim(); DateTime dtTrabajoTer; var dtFechaTrabajoTerminado = DateTime.TryParse(fechaTrabajoTerminado, out dtTrabajoTer) ? dtTrabajoTer.ToDataBaseDateTime() : (DateTime?)null; var fechaEntrega = GetValue(row, Fields.FechaEntrega.Value).Trim(); DateTime dtEnt; var dtFechaEntrega = DateTime.TryParse(fechaEntrega, out dtEnt) ? dtEnt.ToDataBaseDateTime() : (DateTime?)null; var fechaTrabajoAceptado = GetValue(row, Fields.FechaTrabajoAceptado.Value).Trim(); DateTime dtTrabajoAcep; var dtFechaTrabajoAceptado = DateTime.TryParse(fechaTrabajoAceptado, out dtTrabajoAcep) ? dtTrabajoAcep.ToDataBaseDateTime() : (DateTime?)null; var estSolicitud = GetValue(row, Fields.EstadoSolicitud.Value).Trim(); if (estSolicitud == string.Empty) { erroneos++; Log("FILA ERRONEA", index, "SIN ESTADO DE SOLICITUD"); continue; } var estadoSolicitud = -1; switch (estSolicitud) { case "INGRESADA": estadoSolicitud = TicketMantenimiento.EstadosTicket.Ingresado; break; case "APROBADA": estadoSolicitud = TicketMantenimiento.EstadosTicket.Aprobado; break; case "TERMINADA": estadoSolicitud = TicketMantenimiento.EstadosTicket.Terminado; break; case "TRABAJO ACEPTADO": estadoSolicitud = TicketMantenimiento.EstadosTicket.Aceptado; break; case "TRABAJO NO ACEPTADO": estadoSolicitud = TicketMantenimiento.EstadosTicket.NoAceptado; break; case "CANCELADA": estadoSolicitud = TicketMantenimiento.EstadosTicket.Cancelado; break; default: { erroneos++; Log("FILA ERRONEA", index, "ESTADO DE SOLICITUD NO ENCONTRADO: " + estadoSolicitud); continue; } } var estPresupuesto = GetValue(row, Fields.EstadoPresupuesto.Value).Trim(); var estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.SinPresupuesto; switch (estPresupuesto) { case "TRABAJO ACEPT. CLIENTE": estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.AceptadoCliente; break; case "APROBADO": estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.Aprobado; break; case "PRESUPUESTADA": estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.Presupuestado; break; case "PEDIDO RECOTIZADO": estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.Recotizado; break; case "TRABAJO TERMINADO": estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.Terminado; break; case "VERIF. SIN APROBAR": estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.VerificadoSinAprobar; break; case "CANCELADO": estadoPresupuesto = TicketMantenimiento.EstadosPresupuesto.Cancelado; break; } var nivelComp = GetValue(row, Fields.NivelComplejidad.Value).Trim(); var nivelComplejidad = TicketMantenimiento.NivelesComplejidad.Baja; switch (nivelComp) { case "Media": nivelComplejidad = TicketMantenimiento.NivelesComplejidad.Media; break; case "Alta": nivelComplejidad = TicketMantenimiento.NivelesComplejidad.Alta; break; case "Muy Alta": nivelComplejidad = TicketMantenimiento.NivelesComplejidad.MuyAlta; break; } var ticket = GetTicket(empresa, solicitud); ticket.Taller = taller; ticket.Vehiculo = vehiculo; ticket.Empleado = responsable; ticket.Descripcion = descripcion; ticket.Presupuesto = nroPresupuesto; ticket.Monto = valor; ticket.FechaSolicitud = dtIngresoSolicitud; ticket.FechaTurno = dtFechaTurno; ticket.FechaRecepcion = dtFechaRecepcion; ticket.PrimerPresupuesto = primerPresupuesto; ticket.FechaPresupuestoOriginal = dtPromerPresupuesto; ticket.FechaPresupuestada = dtFechaPresupuestada; ticket.FechaRecotizacion = dtFechaRecotizacion; ticket.FechaVerificacion = dtFechaVerificacion; ticket.FechaAprobacion = dtFechaAprobacion; ticket.FechaTrabajoTerminado = dtFechaTrabajoTerminado; ticket.FechaEntrega = dtFechaEntrega; ticket.FechaTrabajoAceptado = dtFechaTrabajoAceptado; ticket.Estado = (short)estadoSolicitud; ticket.EstadoPresupuesto = estadoPresupuesto; ticket.NivelComplejidad = nivelComplejidad; var historia = new HistoriaTicketMantenimiento { Codigo = ticket.Codigo, Descripcion = ticket.Descripcion, Empresa = ticket.Empresa, Empleado = ticket.Empleado, Estado = ticket.Estado, EstadoPresupuesto = ticket.EstadoPresupuesto, Fecha = DateTime.UtcNow, FechaAprobacion = ticket.FechaAprobacion, FechaEntrega = ticket.FechaEntrega, FechaPresupuestada = ticket.FechaPresupuestada, FechaPresupuestoOriginal = ticket.FechaPresupuestoOriginal, FechaRecepcion = ticket.FechaRecepcion, FechaRecotizacion = ticket.FechaRecotizacion, FechaSolicitud = ticket.FechaSolicitud, FechaTrabajoAceptado = ticket.FechaTrabajoAceptado, FechaTrabajoTerminado = ticket.FechaTrabajoTerminado, FechaTurno = ticket.FechaTurno, FechaVerificacion = ticket.FechaVerificacion, Monto = ticket.Monto, NivelComplejidad = ticket.NivelComplejidad, Presupuesto = ticket.Presupuesto, PrimerPresupuesto = ticket.PrimerPresupuesto, Taller = ticket.Taller, TicketMantenimiento = ticket, Usuario = DAOFactory.UsuarioDAO.FindById(Usuario.Id), Vehiculo = ticket.Vehiculo }; ticket.Historia.Add(historia); DAOFactory.TicketMantenimientoDAO.SaveOrUpdate(ticket); procesados++; } catch (Exception) { erroneos++; Log("FILA ERRONEA", index, string.Empty); } } const int totalWidth = 200; var percent = index * 100 / rows.Count; litProgress.Text = string.Format( @"<div style='margin: auto; border: solid 1px #999999; background-color: #FFFFFF; width: {0}px; height: 10px;'> <div style='background-color: #0000AA; width: {1}px; height: 10px; font-size: 8px; color: #CCCCCC;'>{2}%</div> </div>", totalWidth, percent * totalWidth / 100, percent); lblDirs.Text = string.Format(Reporte, procesados + erroneos, rows.Count, procesados, rows.Count > 0 ? (procesados * 100.0 / rows.Count).ToString("0.00") : "0.00", erroneos, rows.Count > 0 ? (erroneos * 100.0 / rows.Count).ToString("0.00") : "0.00", TimeSpan.FromTicks(DateTime.Now.Ticks - start)); panelProgress.Visible = true; }
protected override void OnSave() { EditObject.Taller = cbTaller.Selected > 0 ? DAOFactory.TallerDAO.FindById(cbTaller.Selected) : null; if (dtInicio.SelectedDate.HasValue) { EditObject.FechaSolicitud = SecurityExtensions.ToDataBaseDateTime(dtInicio.SelectedDate.Value); } EditObject.Codigo = txtCodigo.Text; EditObject.NivelComplejidad = (short)cbNivel.Selected; EditObject.Estado = (short)cbEstado.Selected; EditObject.Empresa = cbEmpresa.Selected > 0 ? DAOFactory.EmpresaDAO.FindById(cbEmpresa.Selected) : null; EditObject.Vehiculo = cbVehiculo.Selected > 0 ? DAOFactory.CocheDAO.FindById(cbVehiculo.Selected) : null; EditObject.Empleado = cbEmpleado.Selected > 0 ? DAOFactory.EmpleadoDAO.FindById(cbEmpleado.Selected) : null; EditObject.FechaTurno = dtTurno.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtTurno.SelectedDate.Value) : (DateTime?)null; EditObject.FechaRecepcion = dtRecepcion.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtRecepcion.SelectedDate.Value) : (DateTime?)null; EditObject.FechaVerificacion = dtVerificacion.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtVerificacion.SelectedDate.Value) : (DateTime?)null; EditObject.FechaTrabajoTerminado = dtTrabajoTerminado.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtTrabajoTerminado.SelectedDate.Value) : (DateTime?)null; EditObject.FechaEntrega = dtEntrega.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtEntrega.SelectedDate.Value) : (DateTime?)null; EditObject.FechaTrabajoAceptado = dtTrabajoAceptado.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtTrabajoAceptado.SelectedDate.Value) : (DateTime?)null; EditObject.Presupuesto = txtPresupuesto.Text; double monto; double.TryParse(txtMonto.Text, out monto); EditObject.Monto = monto; EditObject.FechaPresupuestada = dtPresupuesto.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtPresupuesto.SelectedDate.Value) : (DateTime?)null; EditObject.EstadoPresupuesto = (short)cbEstadoPresupuesto.Selected; EditObject.PrimerPresupuesto = txtPrimerPresupuesto.Text; EditObject.FechaPresupuestoOriginal = dtPrimerPresupuesto.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtPrimerPresupuesto.SelectedDate.Value) : (DateTime?)null; EditObject.FechaRecotizacion = dtRecotizacion.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtRecotizacion.SelectedDate.Value) : (DateTime?)null; EditObject.FechaAprobacion = dtAprobacion.SelectedDate.HasValue ? SecurityExtensions.ToDataBaseDateTime(dtAprobacion.SelectedDate.Value) : (DateTime?)null; EditObject.Descripcion = txtDescripcion.Text; var historia = new HistoriaTicketMantenimiento { Codigo = EditObject.Codigo, Descripcion = EditObject.Descripcion, Empleado = EditObject.Empleado, Empresa = EditObject.Empresa, Estado = EditObject.Estado, EstadoPresupuesto = EditObject.EstadoPresupuesto, Fecha = DateTime.UtcNow, FechaAprobacion = EditObject.FechaAprobacion, FechaEntrega = EditObject.FechaEntrega, FechaPresupuestada = EditObject.FechaPresupuestada, FechaPresupuestoOriginal = EditObject.FechaPresupuestoOriginal, FechaRecepcion = EditObject.FechaRecepcion, FechaRecotizacion = EditObject.FechaRecotizacion, FechaSolicitud = EditObject.FechaSolicitud, FechaTrabajoAceptado = EditObject.FechaTrabajoAceptado, FechaTrabajoTerminado = EditObject.FechaTrabajoTerminado, FechaTurno = EditObject.FechaTurno, FechaVerificacion = EditObject.FechaVerificacion, Monto = EditObject.Monto, NivelComplejidad = EditObject.NivelComplejidad, Presupuesto = EditObject.Presupuesto, PrimerPresupuesto = EditObject.PrimerPresupuesto, Taller = EditObject.Taller, TicketMantenimiento = EditObject, Usuario = DAOFactory.UsuarioDAO.FindById(Usuario.Id), Vehiculo = EditObject.Vehiculo }; EditObject.Historia.Add(historia); DAOFactory.TicketMantenimientoDAO.SaveOrUpdate(EditObject); }