protected override void SelectedIndexChanged() { var id = Convert.ToInt32(Grid.SelectedDataKey); var doc = DAOFactory.DocumentoDAO.FindById(id); var parte = new PartePersonal(doc, DAOFactory); // los usuarios publicos no pueden ver los mapas de los partes sin controlar if (WebSecurity.AuthenticatedUser.AccessLevel <= Logictracker.Types.BusinessObjects.Usuario.NivelAcceso.Public && parte.Estado == 0) { return; } var coche = DAOFactory.CocheDAO.FindById(parte.Vehiculo); Session["Location"] = coche.Linea.Id; Session["TypeMobile"] = coche.TipoCoche.Id; Session["Mobile"] = parte.Vehiculo; Session["InitialDate"] = parte.Turnos[0].AlPozoSalida; Session["FinalDate"] = parte.Turnos[parte.Turnos.Count - 1].DelPozoLlegada; if (WebSecurity.AuthenticatedUser.AccessLevel <= Logictracker.Types.BusinessObjects.Usuario.NivelAcceso.Public) { Session["LockFilters"] = true; } OpenWin("../Monitor/MonitorDeCalidad/monitorDeCalidad.aspx", "Monitor De Calidad"); }
public void SetData(Documento parte, DAOFactory daof) { __daoFactory = daof; //Coche coche = daof.CocheDAO.FindById(Convert.ToInt32(parte.Valores["Vehiculo"])); var pp = new PartePersonal(parte, DAOFactory); cocheID = pp.Vehiculo;//coche.Id; parteID = pp.Id; var dt = pp.Turnos[0].AlPozoSalida; dt = parte.Fecha.Date.Add(dt.Subtract(dt.Date)); lblFecha.Text = dt.ToDisplayDateTime().ToString("dd/MM/yyyy"); lblCodigo.Text = parte.Codigo; lblEmpresa.Text = pp.Empresa; //daof.TransportistaDAO.FindById(Convert.ToInt32(parte.Valores["Empresa"])).Descripcion; lblInterno.Text = pp.Interno; //coche.Interno; lblEquipo.Text = pp.Equipo; //parte.Valores["Equipo"].ToString(); lblSalida.Text = parte.Valores["Lugar Partida"].ToString(); lblLlegada.Text = parte.Valores["Lugar Llegada"].ToString(); lblTipoServicio.Text = pp.TipoServicio; Repeater1.DataSource = pp.Turnos; Repeater1.DataBind(); }
public IList GetData(params object[] parameters) { var aseguradora = Convert.ToInt32(parameters[0]); var locacion = Convert.ToInt32(parameters[1]); var linea = Convert.ToInt32(parameters[2]); var movil = Convert.ToInt32(parameters[3]); var equipo = Convert.ToInt32(parameters[4]); var inicio = Convert.ToDateTime(parameters[5]); var fin = Convert.ToDateTime(parameters[6]); var estado = Convert.ToInt32(parameters[7]); var usuario = WebSecurity.AuthenticatedUser.Id; IList result = new ArrayList(); var list = daoFactory.DocumentoDAO.FindParteReport(aseguradora, locacion, linea, movil, equipo, inicio, fin, estado, usuario); foreach (Documento doc in list) { var parte = new PartePersonal(doc, daoFactory); result.Add(parte); } var byEquipo = new Dictionary <string, List <PartePersonal> >(); foreach (PartePersonal parte in result) { if (!byEquipo.ContainsKey(parte.Equipo)) { byEquipo.Add(parte.Equipo, new List <PartePersonal>()); } byEquipo[parte.Equipo].Add(parte); } var transportista = daoFactory.TransportistaDAO.FindById(aseguradora); foreach (var eq in byEquipo.Keys) { var oEquipo = daoFactory.EquipoDAO.FindById(byEquipo[eq][0].IdEquipo); var tarifa = daoFactory.TarifaTransportistaDAO.GetTarifaParaCliente(transportista.Id, oEquipo.Cliente.Id); var tarifaCorto = tarifa != null ? tarifa.TarifaTramoCorto : transportista.TarifaTramoCorto; var tarifaLargo = tarifa != null ? tarifa.TarifaTramoLargo : transportista.TarifaTramoLargo; double kms = (from p in byEquipo[eq] select p.KmTotal).Sum(); var kmsc = (from p in byEquipo[eq] select p.KmTotalCalculado).Sum(); foreach (var parte in byEquipo[eq]) { parte.Importe = parte.KmTotal * (kms < 14000 ? tarifaCorto : tarifaLargo); parte.ImporteControlado = parte.KmTotalCalculado * (kmsc < 14000 ? tarifaCorto : tarifaLargo); } } return(result); }
public PartePersonalVo(PartePersonal parte) { Id = parte.Id; Codigo = parte.Codigo; Fecha = parte.Fecha.ToDisplayDateTime(); Vehiculo = parte.Interno; Equipo = parte.Equipo; Empresa = parte.Empresa; Estado = parte.Estado; TipoServicio = parte.TipoServicio; CentroCostos = parte.CentroCostos; }
public bool Superpuesto(TurnoPartePersonal turno, PartePersonal parte2) { foreach (var turno2 in parte2.Turnos) { if (turno2.AlPozoSalida <= turno.AlPozoSalida && turno2.AlPozoLlegada > turno.AlPozoSalida) { return(true); } if (turno2.AlPozoSalida <= turno.AlPozoLlegada && turno2.AlPozoLlegada > turno.AlPozoLlegada) { return(true); } if (turno2.AlPozoSalida <= turno.DelPozoSalida && turno2.AlPozoLlegada > turno.DelPozoSalida) { return(true); } if (turno2.AlPozoSalida <= turno.DelPozoLlegada && turno2.AlPozoLlegada > turno.DelPozoLlegada) { return(true); } if (turno2.DelPozoSalida <= turno.AlPozoSalida && turno2.DelPozoLlegada > turno.AlPozoSalida) { return(true); } if (turno2.DelPozoSalida <= turno.AlPozoLlegada && turno2.DelPozoLlegada > turno.AlPozoLlegada) { return(true); } if (turno2.DelPozoSalida <= turno.DelPozoSalida && turno2.DelPozoLlegada > turno.DelPozoSalida) { return(true); } if (turno2.DelPozoSalida <= turno.DelPozoLlegada && turno2.DelPozoLlegada > turno.DelPozoLlegada) { return(true); } } return(false); }
public ParteReportVo(PartePersonal parte) { Id = parte.Id; TipoServicio = parte.TipoServicio; Equipo = parte.Equipo; Fecha = parte.Fecha.ToDisplayDateTime(); Empresa = parte.Empresa; Codigo = parte.Codigo; Interno = parte.Interno; Salida = parte.Salida; Llegada = parte.Llegada; HorasReportadas = parte.Horas; HorasControladas = parte.HorasControladas; DiffHoras = parte.DiffHoras; KmTotal = parte.KmTotal; KmTotalCalculado = parte.KmTotalCalculado; DiffKmTotal = parte.DiffKmTotal; Importe = String.Format("${0:000.00}", parte.Importe); ImporteControlado = String.Format("${0:000.00}", parte.ImporteControlado); DiffImporte = String.Format("${0:000.00}", parte.DiffImporte); Estado = parte.Estado; CentroCostos = parte.CentroCostos; }
protected override void Validate(Documento doc, int idUsuario, DAOFactory daoF) { var transp = daoF.TransportistaDAO.FindById(Convert.ToInt32(doc.Valores[ParteCampos.Empresa])); var p = daoF.PeriodoDAO.GetByDate(transp.Empresa != null ? transp.Empresa.Id : -1, Fecha); if (p != null && p.Estado > 0) { throw new ApplicationException("El periodo al que pertenece este parte ya ha sido cerrado. Periodo: " + p.Descripcion); } base.Validate(doc, idUsuario, daoF); doc.ResetDictionary(); var docs = daoF.DocumentoDAO.FindByTransportistaYCodigo(Convert.ToInt32(doc.Valores[ParteCampos.Empresa]), doc.Codigo); if (docs.Count > 1 || (docs.Count == 1 && ((Documento)docs[0]).Id != doc.Id)) { throw new ApplicationException("Ya existe un parte con este codigo para la misma empresa transportista"); } var minOdometro = Int32.MaxValue; var current = new PartePersonal(doc, daoF); var lastOdometro = 0; foreach (var turno in current.Turnos) { if (turno.OdometroInicial < lastOdometro || turno.OdometroFinal < turno.OdometroInicial) { throw new ApplicationException("El valor del Odometro no puede ser menor a uno anterior"); } lastOdometro = turno.OdometroFinal; minOdometro = Math.Min(minOdometro, turno.OdometroInicial); } var idVehiculo = Convert.ToInt32(doc.Valores[ParteCampos.Vehiculo]); var last = daoF.DocumentoDAO.FindLastForVehicle(idVehiculo, current.Turnos[0].AlPozoSalida); if (last != null) { var previous = new PartePersonal(last, daoF); var prevTurnos = previous.Turnos.Where(t => t.DelPozoLlegada < current.Turnos[0].AlPozoSalida); var curTurnos = current.Turnos; var maxPrev = prevTurnos.Count() > 0 ? prevTurnos.Max(t => t.OdometroFinal) : 0; var minCur = curTurnos.Count() > 0 ? curTurnos.Min(t => t.OdometroInicial) : 0; if (minCur < maxPrev) { throw new ApplicationException("El parte " + last.Codigo + " contiene un valor de odometro mayor al actual (" + maxPrev + " > " + minCur + ")"); } } var superpuestos = daoF.DocumentoDAO.FindList(current.IdEmpresa, doc.Linea != null ? doc.Linea.Id : -1, idVehiculo, current.Turnos[0].AlPozoSalida.Subtract(TimeSpan.FromDays(3)), current.Turnos[current.Turnos.Count - 1].DelPozoLlegada.Add(TimeSpan.FromDays(3)), -1, -1, null); if (superpuestos.Count > 0) { foreach (var turno in current.Turnos) { foreach (Documento sdoc in superpuestos) { if (sdoc.Id == doc.Id) { continue; } var spar = new PartePersonal(sdoc, daoF); if (Superpuesto(turno, spar)) { throw new ApplicationException("Los horarios de este parte se superponen con los del parte " + sdoc.Codigo); } } } } }
public IList GetData(params object[] parameters) { int linea = Convert.ToInt32(parameters[0]); int aseguradora = Convert.ToInt32(parameters[1]); DateTime inicio = Convert.ToDateTime(parameters[2]); DateTime fin = Convert.ToDateTime(parameters[3]); IList result = new ArrayList(); IList list = daoFactory.DocumentoDAO.FindParteReport(linea, aseguradora, inicio, fin); foreach (Documento doc in list) { PartePersonal parte = new PartePersonal(); parte.Codigo = doc.Codigo; parte.Descripcion = doc.Descripcion; parte.Fecha = doc.Fecha; parte.Id = doc.Id; parte.Salida = getValue("Lugar Partida", doc); parte.Observaciones = getValue("Observaciones", doc); parte.Llegada = getValue("Lugar Llegada", doc); parte.KmTotal = Convert.ToInt32(getValue("Kilometraje Total", doc)); parte.Equipo = getValue("Equipo", doc); parte.Empresa = daoFactory.TransportistaDAO.FindById(Convert.ToInt32(getValue("Empresa", doc))).Descripcion; parte.Vehiculo = Convert.ToInt32(getValue("Vehiculo", doc)); parte.Turnos = new List <TurnoPartePersonal>(); string[] alPozoSalida = getValueList("Hs Salida Al Pozo", doc); string[] alPozoLlegada = getValueList("Hs Llegada Al Pozo", doc); string[] delPozoSalida = getValueList("Hs Salida Del Pozo", doc); string[] delPozoLlegada = getValueList("Hs Llegada Del Pozo", doc); string[] km = getValueList("Kilometraje", doc); string[] resp = getValueList("Responsable", doc); for (int i = 0; i < alPozoSalida.Length; i++) { TurnoPartePersonal turno = new TurnoPartePersonal(); turno.AlPozoSalida = Convert.ToDateTime(alPozoSalida[i], CultureInfo.InvariantCulture); if (alPozoLlegada.Length > i) { turno.AlPozoLlegada = Convert.ToDateTime(alPozoLlegada[i], CultureInfo.InvariantCulture); } if (delPozoSalida.Length > i) { turno.DelPozoSalida = Convert.ToDateTime(delPozoSalida[i], CultureInfo.InvariantCulture); } if (delPozoLlegada.Length > i) { turno.DelPozoLlegada = Convert.ToDateTime(delPozoLlegada[i], CultureInfo.InvariantCulture); } if (km.Length > i) { turno.Km = Convert.ToInt32(km[i]); } if (resp.Length > i) { turno.Responsable = resp[i]; } parte.Turnos.Add(turno); } parte.KmTotalCalculado = 0; foreach (TurnoPartePersonal turno in parte.Turnos) { try { parte.KmTotalCalculado += daoFactory.CocheDAO.GetDistance(parte.Vehiculo, turno.AlPozoSalida, turno.AlPozoLlegada) + daoFactory.CocheDAO.GetDistance(parte.Vehiculo, turno.DelPozoSalida, turno.DelPozoLlegada); }catch { } } result.Add(parte); } return(result); }