Exemple #1
0
 public PedidosPetrobras(LogicLinkFile file)
 {
     Llfile     = file;
     DaoFactory = new DAOFactory();
     Empresa    = file.Empresa;
     Linea      = file.Linea;
 }
Exemple #2
0
 public DistribucionSos(LogicLinkFile file)
 {
     Llfile     = file;
     DaoFactory = new DAOFactory();
     Empresa    = file.Empresa;
     Cliente    = DaoFactory.ClienteDAO.GetList(new[] { Empresa.Id }, new[] { -1 }).FirstOrDefault();
 }
Exemple #3
0
 public DistribucionFemsa(LogicLinkFile file)
 {
     Llfile     = file;
     DaoFactory = new DAOFactory();
     Empresa    = file.Empresa;
     Cliente    = DaoFactory.ClienteDAO.FindById(4186); // RESTO DE MERCADO
 }
 public AsignacionCodigoViaje(LogicLinkFile file)
 {
     Llfile     = file;
     DaoFactory = new DAOFactory();
     Empresa    = file.Empresa;
     Linea      = file.Linea;
 }
Exemple #5
0
 public AsignacionClienteEmpleado(LogicLinkFile file)
 {
     Llfile     = file;
     DaoFactory = new DAOFactory();
     Empresa    = file.Empresa;
     Linea      = file.Linea;
 }
 public DistribucionQuilmes(LogicLinkFile file)
 {
     Llfile     = file;
     DaoFactory = new DAOFactory();
     Empresa    = file.Empresa;
     Linea      = file.Linea;
     Cliente    = DaoFactory.ClienteDAO.FindById(4162); // MINORISTAS
 }
Exemple #7
0
        public LogicLinkFileVo(LogicLinkFile logicLinkFile)
        {
            Id         = logicLinkFile.Id;
            Empresa    = logicLinkFile.Empresa.RazonSocial;
            Base       = logicLinkFile.Linea != null ? logicLinkFile.Linea.Descripcion : string.Empty;
            ServerName = logicLinkFile.ServerName;
            FilePath   = logicLinkFile.FilePath;
            FileSource = logicLinkFile.FileSource;
            Strategy   = logicLinkFile.Strategy;
            DateAdded  = logicLinkFile.DateAdded.ToDisplayDateTime();

            if (logicLinkFile.DateProcessed == null)
            {
                DateProcessed = null;
            }
            else
            {
                DateProcessed = logicLinkFile.DateProcessed.Value.ToDisplayDateTime();
            }


            var status = string.Empty;

            switch (logicLinkFile.Status)
            {
            case LogicLinkFile.Estados.Pendiente: status = "PENDIENTE"; break;

            case LogicLinkFile.Estados.Procesado: status = "PROCESADO"; break;

            case LogicLinkFile.Estados.Procesando: status = "PROCESANDO"; break;

            case LogicLinkFile.Estados.Cancelado: status = "CANCELADO"; break;
            }
            Status = status;
            Result = logicLinkFile.Result;
        }
Exemple #8
0
        public static ViajeDistribucion Parse(LogicLinkFile file, out int rutas, out int entregas)
        {
            var distribucionSos = new DistribucionSos(file);

            return(distribucionSos.Parse(out rutas, out entregas));
        }
Exemple #9
0
 public static void Parse(LogicLinkFile file, out int rutas, out int entregas)
 {
     new DistribucionQuilmes(file).Parse(out rutas, out entregas);
 }
Exemple #10
0
        public void ProcessArchivo(LogicLinkFile archivo)
        {
            archivo.Status = LogicLinkFile.Estados.Procesando;
            DaoFactory.LogicLinkFileDAO.SaveOrUpdate(archivo);

            using (var transaction = SmartTransaction.BeginTransaction())
            {
                try
                {
                    STrace.Trace(Component, "Procesando con Estrategia: " + archivo.Strategy);
                    var rutas               = 0;
                    var entregas            = 0;
                    var clientes            = 0;
                    var asignaciones        = 0;
                    var result              = string.Empty;
                    var observaciones       = string.Empty;
                    ViajeDistribucion viaje = null;

                    switch (archivo.Strategy)
                    {
                    case LogicLinkFile.Estrategias.DistribucionFemsa:
                        DistribucionFemsa.Parse(archivo, out rutas, out entregas);
                        _update = true;
                        result  = string.Format("Archivo procesado exitosamente. Rutas: {0} - Entregas: {1}", rutas, entregas);
                        break;

                    case LogicLinkFile.Estrategias.DistribucionQuilmes:
                        DistribucionQuilmes.Parse(archivo, out rutas, out entregas, out observaciones);
                        _update = true;
                        result  = string.Format("Archivo procesado exitosamente. Rutas: {0} - Entregas: {1}", rutas, entregas);
                        if (observaciones != string.Empty)
                        {
                            result = result + " (" + observaciones + ")";
                        }
                        break;

                    case LogicLinkFile.Estrategias.DistribucionMusimundo:
                        DistribucionMusimundo.Parse(archivo, out rutas, out entregas, out observaciones);
                        _update = true;
                        result  = string.Format("Archivo procesado exitosamente. Rutas: {0} - Entregas: {1}", rutas, entregas);
                        if (observaciones != string.Empty)
                        {
                            result = result + " (" + observaciones + ")";
                        }
                        break;

                    case LogicLinkFile.Estrategias.DistribucionBrinks:
                        //DistribucionBrinks.Parse(archivo, out rutas, out entregas);
                        break;

                    case LogicLinkFile.Estrategias.DistribucionSos:
                        viaje  = DistribucionSos.Parse(archivo, out rutas, out entregas);
                        result = string.Format("Archivo procesado exitosamente. Rutas: {0} - Entregas: {1}", rutas, entregas);
                        break;

                    case LogicLinkFile.Estrategias.DistribucionReginaldLee:
                        DistribucionReginaldLee.Parse(archivo, out rutas, out entregas);
                        _update = true;
                        result  = string.Format("Archivo procesado exitosamente. Rutas: {0} - Entregas: {1}", rutas, entregas);
                        break;

                    case LogicLinkFile.Estrategias.DistribucionCCU:
                        var extension = GetFileName(archivo.FilePath);
                        switch (extension)
                        {
                        case "Rutas.xlsx":
                            DistribucionCCU.ParseRutas(archivo, out rutas, out entregas, out observaciones);
                            _update = true;
                            result  = string.Format("Archivo procesado exitosamente. Rutas: {0} - Entregas: {1}", rutas, entregas);
                            break;

                        case "Clientes.xlsx":
                            DistribucionCCU.ParseClientes(archivo, out clientes);
                            result = string.Format("Archivo procesado exitosamente. Clientes: {0}", clientes);
                            break;

                        case "Asigno.xlsx":
                            DistribucionCCU.ParseAsignaciones(archivo, out asignaciones, out observaciones);
                            result = string.Format("Archivo procesado exitosamente. Asignaciones: {0}", asignaciones);
                            break;

                        default:
                            result = string.Format("Extensión '" + extension + "' no válida.");
                            break;
                        }
                        break;

                    case LogicLinkFile.Estrategias.PedidosPetrobras:
                        var pedidos = 0;
                        PedidosPetrobras.Parse(archivo, out pedidos, out observaciones);
                        result = string.Format("Archivo procesado exitosamente. Pedidos: {0}", pedidos);
                        if (observaciones != string.Empty)
                        {
                            result = result + " (" + observaciones + ")";
                        }
                        break;

                    case LogicLinkFile.Estrategias.AsignacionClienteEmpleado:
                        var asignados = 0;
                        AsignacionClienteEmpleado.Parse(archivo, out asignados, out observaciones);
                        result = string.Format("Archivo procesado exitosamente. Asignados: {0}", asignados);
                        if (observaciones != string.Empty)
                        {
                            result = result + " (" + observaciones + ")";
                        }
                        break;

                    case LogicLinkFile.Estrategias.AsignacionCodigoViaje:
                        var viajes = 0;
                        AsignacionCodigoViaje.Parse(archivo, out viajes, out observaciones);
                        result = string.Format("Archivo procesado exitosamente. Viajes: {0}", viajes);
                        if (observaciones != string.Empty)
                        {
                            result = result + " (" + observaciones + ")";
                        }
                        break;
                    }

                    archivo.Status        = LogicLinkFile.Estados.Procesado;
                    archivo.DateProcessed = DateTime.UtcNow;
                    archivo.Result        = result;
                    DaoFactory.LogicLinkFileDAO.SaveOrUpdate(archivo);

                    transaction.Commit();

                    if (archivo.Strategy == LogicLinkFile.Estrategias.DistribucionSos)
                    {
                        if (viaje != null)
                        {
                            foreach (var detalle in viaje.Detalles)
                            {
                                if (detalle.PuntoEntrega != null && detalle.PuntoEntrega.ReferenciaGeografica != null)
                                {
                                    _update = true;
                                }
                            }

                            if (viaje.Vehiculo != null && viaje.Estado == ViajeDistribucion.Estados.Pendiente)
                            {
                                var tieneViajeEnCurso = DaoFactory.ViajeDistribucionDAO.FindEnCurso(viaje.Vehiculo) != null;
                                if (!tieneViajeEnCurso)
                                {
                                    //var ciclo = new CicloLogisticoDistribucion(viaje, DaoFactory,
                                    //    new MessageSaver(DaoFactory));
                                    //var evento = new InitEvent(DateTime.UtcNow);
                                    //ciclo.ProcessEvent(evento);
                                }
                                if (viaje.Vehiculo.Dispositivo != null)
                                {
                                    var msg   = new StringBuilder();
                                    var desde = viaje.Detalles[1].ReferenciaGeografica;
                                    var hasta = viaje.Detalles[2].ReferenciaGeografica;
                                    msg.Append("Viaje: " + viaje.Codigo);
                                    msg.Append("<br>Desde: " + GeocoderHelper.GetDescripcionEsquinaMasCercana(desde.Latitude, desde.Longitude));
                                    msg.Append("<br>Hasta: " + GeocoderHelper.GetDescripcionEsquinaMasCercana(hasta.Latitude, hasta.Longitude));

                                    var message = MessageSender.CreateSubmitTextMessage(viaje.Vehiculo.Dispositivo, new MessageSaver(DaoFactory));
                                    message.AddMessageText(msg.ToString());
                                    message.Send();

                                    //STrace.Trace(Component, "Ruta Aceptada: " + MessageCode.RutaAceptada.ToString());
                                    //STrace.Trace(Component, "Ruta Rechazada: " + MessageCode.RutaRechazada.ToString());

                                    //var msgText = "Acepta la asignacion del servicio <br><b>" + viaje.Codigo + "</b>?";
                                    //var replies = new[] { Convert.ToUInt32(MessageCode.RutaAceptada.ToString()),
                                    //                      Convert.ToUInt32(MessageCode.RutaRechazada.ToString()) };
                                    //message = MessageSender.CreateSubmitCannedResponsesTextMessage(viaje.Vehiculo.Dispositivo, new MessageSaver(DaoFactory));
                                    //message.AddMessageText(msgText)
                                    //       .AddTextMessageId(Convert.ToUInt32(viaje.Id))
                                    //       .AddCannedResponses(replies)
                                    //       .AddAckEvent(MessageCode.GarminCannedMessageReceived.GetMessageCode());

                                    //message.Send();
                                }
                            }
                        }
                    }

                    STrace.Trace(Component, result);
                }
                catch (Exception ex)
                {
                    AddError(ex);
                    transaction.Rollback();
                    ClearData();

                    archivo.Status = LogicLinkFile.Estados.Cancelado;
                    var result = "Archivo procesado erroneamente. Exception: " + ex.Message;
                    archivo.Result = result;
                    DaoFactory.LogicLinkFileDAO.SaveOrUpdate(archivo);

                    STrace.Trace(Component, result);
                }
                finally
                {
                    ClearData();
                }
            }
        }
Exemple #11
0
 public static void Parse(LogicLinkFile file, out int rutas, out int entregas)
 {
     new DistribucionReginaldLee(file).Parse(out rutas, out entregas);
 }
 public static void Parse(LogicLinkFile file, out int viajes, out string observaciones)
 {
     new AsignacionCodigoViaje(file).Parse(out viajes, out observaciones);
 }
Exemple #13
0
 public static void ParseClientes(LogicLinkFile file, out int clientes)
 {
     new DistribucionCCU(file).ParseClientes(out clientes);
 }
Exemple #14
0
 public static Dictionary <int, List <int> > ParseRutas(LogicLinkFile file, out int rutas, out int entregas, out string observaciones)
 {
     new DistribucionCCU(file).ParseRutas(out rutas, out entregas, out observaciones);
     return(EmpresasLineas);
 }
Exemple #15
0
        private const int IdClienteDefault            = 4738; // SIN ASIGNAR

        public static void Parse(LogicLinkFile file, out int pedidos, out string observaciones)
        {
            new PedidosPetrobras(file).Parse(out pedidos, out observaciones);
        }
Exemple #16
0
 public static void Parse(LogicLinkFile file, out int puntos, out string observaciones)
 {
     new AsignacionClienteEmpleado(file).Parse(out puntos, out observaciones);
 }
Exemple #17
0
 public static void ParseAsignaciones(LogicLinkFile file, out int rutas, out string observaciones)
 {
     new DistribucionCCU(file).ParseAsignaciones(out rutas, out observaciones);
 }
 public static void Parse(LogicLinkFile file, out int rutas, out int entregas, out string observaciones)
 {
     new DistribucionMusimundo(file).Parse(out rutas, out entregas, out observaciones);
 }