Пример #1
0
        public void Vender() //  Aceitar pedidos realizados pelos clientes
        {
            List <Produto> pacote = new List <Produto>();
            List <int>     ids    = new List <int>();
            bool           venda  = false;

            try{
                foreach (Cliente c in clientes) //  O processo é realizado pra cada cliente individualmente
                {
                    pacote.Clear();
                    pacote.AddRange(c.Vender(produtos));

                    if (pacote.Count > 0)
                    {
                        double[] coord = new double[2];
                        coord = c.getCoord();
                        double frete = Caminhao.CalcularDistancia(0, coord[0], 0, coord[1]) * 0.60;
                        int    dist  = (int)(Caminhao.CalcularDistancia(0, coord[0], 0, coord[1]) * 0.60);
                        ids.Clear();
                        ids.Add(0);
                        foreach (Encomenda e in encomendas)
                        {
                            ids.Add(e.getId());
                        }
                        encomendas.Add(new Encomenda(ids.Max() + 1, pacote, getClientes(c.getNome()), coefLucro, frete, dist));
                        DownEstoque(pacote); // abater do estoque o que foi vendido
                        venda = true;
                    }
                }
                if (venda)
                {
                    //OrganizarEncomendas(); //  Otimizar encomendas, organizando em ordem decrescente por lucratividade
                    Salvar();
                    Console.WriteLine("Pedidos aceitos!\nEncomendas geradas!\n");
                }
                else
                {
                    Console.WriteLine("Não há pedidos pendentes\n");
                }
            }
            catch (IndexOutOfRangeException e) {
                LogisticaException.ExceptionGrave("LE_IndexOutOfRangeException", e, "Distribuidora", "Vender");
            }
            catch (Exception e) {
                LogisticaException.ExceptionGrave("LE_ExceptionNaoTratada", e, "Distribuidora", "Vender");
            }
        }
Пример #2
0
 public double getDist(double la, double lo)
 {
     return(Caminhao.CalcularDistancia(lat, lon, la, lo));
 }