コード例 #1
0
        public bool EnvioEntregado(int pNroEnvio, Oficina pOficina, DateTime pFechaRec, DateTime pFechaSal, string pNombreRec, string pFotoFirma)
        {
            bool  valido   = true;
            Envio nuevoEnv = this.BuscarEnvio(pNroEnvio);


            if (pFechaRec != null && pFechaSal != null && pNombreRec != "" && pFotoFirma != "" && nuevoEnv != null &&
                nuevoEnv.Recorrido.Status == Dominio.Envio.EstadoEnvios.Para_entregar)
            {
                if (nuevoEnv is Documento)
                {
                    Documento docAux = nuevoEnv as Documento;
                    if (docAux.EsLegal)
                    {
                        if (docAux.NombreReceptor != pNombreRec)
                        {
                            valido = false;
                        }
                    }
                }
                if (valido)
                {
                    nuevoEnv.Recorrido.Status         = Envio.EstadoEnvios.Entregado;
                    nuevoEnv.Recorrido.FechaRecepcion = pFechaRec;
                    nuevoEnv.Recorrido.FechaSalida    = pFechaSal;
                    nuevoEnv.Recorrido.Oficina        = pOficina;
                    nuevoEnv.NombreReceptor           = pNombreRec;
                    nuevoEnv.FirmaReceptor            = pFotoFirma;

                    Recorrido recNuevo = new Recorrido(nuevoEnv.Recorrido.Status, nuevoEnv.Recorrido.Oficina, nuevoEnv.Recorrido.FechaRecepcion, nuevoEnv.Recorrido.FechaSalida);
                    nuevoEnv.ListaRecorrido.Add(recNuevo);
                }
            }
            return(valido);
        }
コード例 #2
0
        public bool OficinaYaIngresada(Oficina pOfi)
        {
            bool encontre = false;

            int i = 0;

            while (i < this.ListaRecorrido.Count && !encontre)
            {
                Recorrido aux = this.ListaRecorrido[i];

                if (aux.NroOficina == pOfi.NroOficina)
                {
                    encontre = true;
                }
                i++;
            }
            return(encontre);
        }
コード例 #3
0
        public void ModificarEstado(int pNroEnvio, Oficina pOfiActual, DateTime pFechaRec, DateTime pFechaSal)
        {
            Envio nuevoEnv = this.BuscarEnvio(pNroEnvio);

            //Si encuentro oficina y envio
            if (nuevoEnv != null && pOfiActual != null)
            {
                //Si la oficina actual no es la de origen ni la final
                if (pOfiActual.NroOficina != nuevoEnv.NroOfiOrig.NroOficina && pOfiActual.NroOficina != nuevoEnv.NroOfiFinal.NroOficina)
                {
                    //Si el estatus no es "entregado" o "para entregar"
                    if (nuevoEnv.Recorrido.Status != Dominio.Envio.EstadoEnvios.Entregado && nuevoEnv.Recorrido.Status != Dominio.Envio.EstadoEnvios.Para_entregar)
                    {
                        nuevoEnv.Estado                   = Envio.EstadoEnvios.En_transito;
                        nuevoEnv.Recorrido.Status         = Envio.EstadoEnvios.En_transito;
                        nuevoEnv.Recorrido.Oficina        = pOfiActual;
                        nuevoEnv.Recorrido.FechaRecepcion = pFechaRec;
                        nuevoEnv.Recorrido.FechaSalida    = pFechaSal;

                        Recorrido recNuevo = new Recorrido(nuevoEnv.Recorrido.Status, nuevoEnv.Recorrido.Oficina, nuevoEnv.Recorrido.FechaRecepcion,
                                                           nuevoEnv.Recorrido.FechaSalida);
                        nuevoEnv.ListaRecorrido.Add(recNuevo);
                    }
                }
                //Si la oficina actual es igual al nro de oficina final y ya no esta entregada o en para entregar, cambiar estado a "Para entregar"
                else if (pOfiActual.NroOficina == nuevoEnv.NroOfiFinal.NroOficina && nuevoEnv.Recorrido.Status != Dominio.Envio.EstadoEnvios.Entregado &&
                         nuevoEnv.Recorrido.Status != Dominio.Envio.EstadoEnvios.Para_entregar)
                {
                    nuevoEnv.Estado                   = Envio.EstadoEnvios.Para_entregar;
                    nuevoEnv.Recorrido.Status         = Envio.EstadoEnvios.Para_entregar;
                    nuevoEnv.Recorrido.Oficina        = pOfiActual;
                    nuevoEnv.Recorrido.FechaRecepcion = pFechaRec;
                    nuevoEnv.Recorrido.FechaSalida    = pFechaSal;

                    Recorrido recNuevo = new Recorrido(nuevoEnv.Recorrido.Status, nuevoEnv.Recorrido.Oficina, nuevoEnv.Recorrido.FechaRecepcion,
                                                       nuevoEnv.Recorrido.FechaSalida);
                    nuevoEnv.ListaRecorrido.Add(recNuevo);
                }
            }
        }
コード例 #4
0
        //Constructor cuando se esta registrando el envio (aun no sabe la firma, ni fechaRecepcion, ni nombreReceptor)
        //Tampoco le paso el status, porque status cuando inicializa = "En origen"
        public Envio(decimal pPrecio, DateTime pFechaEnvio, Cliente pCliente, Usuario pAdmin, Destinatario pDestinatario,
                     Direccion pDirOrigen, Oficina pNroOfiOrig, Oficina pNroOfiFinal)
        {
            //al ultimo numero que traigo (Envio.ultimoNroEnvio) le sumo uno y lo cargo en nroEnvio
            this.nroEnvio       = Envio.ultNroEnvio + 1;
            Envio.ultNroEnvio   = nroEnvio;
            this.precio         = pPrecio;
            this.fechaEnvio     = pFechaEnvio;
            this.cliente        = pCliente;
            this.admin          = pAdmin;
            this.destinatiario  = pDestinatario;
            this.nombreReceptor = pDestinatario.NombreDest;
            this.dirOrigen      = pDirOrigen;
            this.estado         = EstadoEnvios.En_origen;
            this.nroOfiOrig     = pNroOfiOrig;
            this.nroOfiFinal    = pNroOfiFinal;
            this.listaRecorrido = new List <Recorrido>();  //Cada envio genera una nueva lista con sus recorridos
            this.recorrido      = new Recorrido(pNroOfiOrig, pFechaEnvio);
            Recorrido recAux = new Recorrido(pNroOfiOrig, pFechaEnvio);

            this.listaRecorrido.Add(recAux);
        }