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); }
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); }
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); } } }
//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); }