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); }
// dandole de parámetro el numero de envio, busca si existe el envio. Si existe, // busca las etapas de envio a partir de ese objeto, para procesarse luego. // Si no existe el envio, devuelve una lista vacia. public List <EtapaEnvio> RastrearEnvio(int pNroEnvio) { Envio envioEncontrado = BuscarEnvio(pNroEnvio); List <EtapaEnvio> listaEtapas = new List <EtapaEnvio>(); if (envioEncontrado != null) { listaEtapas = envioEncontrado.EtapasDelEnvio; } return(listaEtapas); }
public decimal FacturadoEntreFechas(List <Envio> listaEnvios) { decimal facturado = 0; for (int i = 0; i < this.listaEnvios.Count; i++) { Envio aux = this.listaEnvios[i]; facturado = facturado + aux.Precio; } return(facturado); }
/*Agrega un envio a la lista de envios que tiene el cliente */ public void AgregarEnvio(Envio pEnvio) { // me aseguro que no sea admin, que no puede tener envios if (this.esAdmin == false) { if (enviosCliente == null) { enviosCliente = new List <Envio>(); } enviosCliente.Add(pEnvio); } }
//Mostrar los envios de un cliente entre dos fechas dadas y mostrar el total facturado hasta ese momento public List <Envio> EnviosFacturados(List <Envio> listaEnvios, DateTime pFechaIni, DateTime pFechaFin) { int i = 0; List <Envio> listaAux = new List <Envio>(); while (i < this.listaEnvios.Count) { Envio aux = this.listaEnvios[i]; if (aux.FechaEnvio >= pFechaIni && aux.FechaEnvio < pFechaFin) { listaAux.Add(aux); } i++; } return(listaAux); }
/*Segun un cliente y un precio, listar todos los envios de ese cliente que superen el precio dado * Le paso una lista de todos los envios del cliente*/ public List <Envio> EnviosSegunPrecio(List <Envio> listaEnvios, decimal pPrecio) { int i = 0; List <Envio> listaAux = new List <Envio>(); while (i < this.listaEnvios.Count) { Envio aux = this.listaEnvios[i]; if (aux.Precio > pPrecio) { listaAux.Add(aux); } i++; } return(listaAux); }
/*Solo los envios que esten para entregar o entregados, ordenados por fecha de entrega descendente * Recibe lista de todos los envios de un cliente*/ public List <Envio> EnviosYaEntregados(List <Envio> listaEnvios) { int i = 0; List <Envio> listaAux = new List <Envio>(); while (i < this.listaEnvios.Count) { Envio aux = this.listaEnvios[i]; if (aux.Estado == Envio.EstadoEnvios.Para_entregar || aux.Estado == Envio.EstadoEnvios.Entregado) { listaAux.Add(aux); } i++; } return(listaAux); }
//Todos los envios de un cliente public List <Envio> EnviosDeCli(string pCi) { int i = 0; List <Envio> listaAux = new List <Envio>(); while (i < this.listaEnvios.Count) { Envio aux = this.listaEnvios[i]; if (aux.Cliente.Ci == pCi) { listaAux.Add(aux); } i++; } return(listaAux); }
/*Listar todos los envíos que tienen estado ‘en tránsito’ y más de 5 días de enviados ordenados por * fecha de ingreso del envío ascendente y luego por documento del cliente descendente*/ public List <Envio> EnviosEnTransito(List <Envio> listaEnvios) { int i = 0; List <Envio> listaAux = new List <Envio>(); while (i < this.listaEnvios.Count) { Envio aux = this.listaEnvios[i]; DateTime fechaActual = DateTime.Today; if (aux.Estado == Envio.EstadoEnvios.En_transito && (aux.FechaEnvio.CompareTo(fechaActual) <= 5)) { listaAux.Add(aux); } i++; } return(listaAux); }
public bool ExisteEnvio(int pNroEnvio) { bool encontre = false; int i = 0; while (i < this.listaEnvios.Count && !encontre) { Envio aux = this.listaEnvios[i]; if (aux.NroEnvio == pNroEnvio) { encontre = true; } i++; } return(encontre); }
/*Dado un Nro de envio se recorre la lista de envios para buscarlo. Retorna Envio encontrado o null*/ public Envio BuscarEnvio(int pId) { Envio aux = null; int i = 0; if (this.listaEnvios != null) { while (i < this.listaEnvios.Count && aux == null) { Envio env = this.listaEnvios[i]; if (env.NroEnvio == pId) { aux = env; } i++; } } return(aux); }
public Envio BuscarEnvio(int pNroEnvio) { Envio buscado = null; bool encontre = false; int i = 0; while (i < this.listaEnvios.Count && !encontre) { Envio aux = this.listaEnvios[i]; if (aux.NroEnvio == pNroEnvio) { buscado = aux; encontre = true; } i++; } return(buscado); }
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); } } }
public string BuscarClienteParaUnEnvio(int pNroEnvio) // <<<<<--------- { string idCliente = ""; Envio pEnvio = this.BuscarEnvio(pNroEnvio); if (this.listaClientes != null) { foreach (Usuario cli in this.listaClientes) { if (cli.EnviosCliente != null) { foreach (Envio env in cli.EnviosCliente) { if (env.NroEnvio == pEnvio.NroEnvio) { idCliente = cli.Documento; } } } } } return(idCliente); }