Ejemplo n.º 1
0
 public List <SPuntoControl> puntosControlDeUnTrayecto(int id)
 {
     try
     {
         return(_dal.puntosControlDeUnTrayecto(id));
     }
     catch (Exception)
     {
         throw;
     }
 }
Ejemplo n.º 2
0
 public SPaquetePuntoControl entregaCliente(SPaquetePuntoControl ppc, string codigo)
 {
     try
     {
         SPaquete p = _dal.getPaquete(ppc.IdPaquete);
         if (p.CodigoConfirmacion == codigo)
         {
             var _dalPPC = new DALPaquetePuntoControl();
             var _dalPC  = new DALPuntoControl();
             var _dalT   = new DALTrayecto();
             ppc.FechaLlegada = DateTime.Now;
             ppc.Borrado      = false;
             var pclist = _dalPC.puntosControlDeUnTrayecto((int)p.IdTrayecto);
             ppc.IdPuntoControl = pclist.Max(x => (int)x.Id);
             List <SPaquetePuntoControl> ppcList = _dalPPC.getAllByPaquete((int)p.Id);
             ppcList.ForEach(x =>
             {
                 if (x.IdPuntoControl == ppc.IdPuntoControl)
                 {
                     throw new ECompartida("El paquete ya fue entregado al cliente anteriormente");
                 }
             });
             if (ppcList.Count != (pclist.Count - 1))
             {
                 throw new ECompartida("Aun falta avanzar pasos antes de poder entregar al cliente");
             }
             int tiempoEstimado = 0;
             pclist.ForEach(x =>
             {
                 if (x.Orden <= pclist.First(z => z.Id == ppc.IdPuntoControl).Orden)
                 {
                     tiempoEstimado += x.Tiempo;
                 }
             });
             int tiempoViaje = (p.FechaIngreso - ppc.FechaLlegada).Seconds;
             if ((tiempoViaje <= tiempoEstimado))
             {
                 ppc.Retraso -= (tiempoEstimado - tiempoViaje);
             }
             else
             {
                 ppc.Retraso += (tiempoViaje - tiempoEstimado);
             }
             return(_dalPPC.addPaquetePuntoControl(ppc));
         }
         throw new ECompartida("El codigo no coincide con el paquete");
     }
     catch (Exception)
     {
         throw;
     }
 }