public void AlterarController(Manutencao obj)
        {
            try
            {
                if (obj.Codigo == 0)
                {
                    throw new Exception("Informar o código da manutenção.");
                }
                dao.AlterarManutencaoDAO(obj.Codigo, obj.DataEntrada, obj.DataPrevistaSaida, obj.DescricaoServico, Convert.ToInt32(obj.CodVeiculo), obj.StatusManutencao);

                if (obj.StatusManutencao == Model.Enums.EnumStatusManutencao.Finalizado)
                {
                    VeiculoController veicCtrl = new VeiculoController();
                    Veiculo           ve       = veicCtrl.GetObj(new Veiculo(obj.CodVeiculo));
                    ve.DataUltimaRevisão = System.DateTime.Now;
                    ve.Status            = enumStatusVeiculo.Disponivel;

                    veicCtrl.AlterarController(ve);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public void InserirController(Manutencao obj)
        {
            try
            {
                dao.InserirManutencaoDAO(obj.DataEntrada, obj.DataPrevistaSaida, obj.DescricaoServico, Convert.ToInt32(obj.CodVeiculo), obj.StatusManutencao);


                VeiculoController veicCtrl = new VeiculoController();
                Veiculo           ve       = veicCtrl.GetObj(new Veiculo(obj.CodVeiculo));

                ve.Status = enumStatusVeiculo.Manutencao;

                veicCtrl.AlterarController(ve);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Esempio n. 3
0
        public void AlterarController(Viagem obj)
        {
            try
            {
                if (obj.CodViagem == 0)
                {
                    throw new Exception("Necessário informar código para alteração de registro.");
                }

                if (obj.DataViagem == null)
                {
                    throw new Exception("Informe a data da viagem.");
                }
                else
                {
                    DateTime.TryParse(obj.DataViagem.ToString(), out dataViagem);
                }
                if (obj.DistanciaKm == "")
                {
                    throw new Exception("Informar a quilomentragem da viagem.");
                }
                if (obj.Valor == 0)
                {
                    throw new Exception("Informe o valor da viagem.");
                }
                if (obj.Origem.Logradouro == "")
                {
                    throw new Exception("Informe o logradouro de origem, para cadastrar a viagem.");
                }
                if (obj.Origem.Bairro == "")
                {
                    throw new Exception("Informe o bairro de origem da viagem.");
                }
                if (obj.Origem.CodEstado == 0)
                {
                    throw new Exception("Informe o estado de origem.");
                }
                if (obj.Origem.CodCidade == 0)
                {
                    throw new Exception("Informe a cidade de origem da viagem.");
                }
                if (obj.Destino.CodEstado == 0)
                {
                    throw new Exception("Informe o estado de destino.");
                }
                if (obj.Destino.CodCidade == 0)
                {
                    throw new Exception("Informe a cidade de destino.");
                }
                if (obj.Cliente.Codigo == 0)
                {
                    throw new Exception("Selecione um cliente.");
                }
                else
                {
                    int.TryParse(obj.Cliente.Codigo.ToString(), out cliente);
                }

                if (obj.CodVeiculo.CodVei == 0)
                {
                    throw new Exception("Informe o veiculo que realizará a viagem.");
                }
                else
                {
                    int.TryParse(obj.CodVeiculo.CodVei.ToString(), out veiculo);
                }

                if (obj.Motorista.Codigo == 0)
                {
                    throw new Exception("Informe o motorista.");
                }
                else
                {
                    int.TryParse(obj.Motorista.Codigo.ToString(), out motorista);
                }

                if (obj.Atendente.Codigo == 0)
                {
                    throw new Exception("Selecione um atendente.");
                }
                else
                {
                    int.TryParse(obj.Atendente.Codigo.ToString(), out atendente);
                }

                if (obj.Status == 0)
                {
                    throw new Exception("Selecione o status da viagem.");
                }

                int.TryParse(obj.Origem.Numero.ToString(), out numOrigem);
                int.TryParse(obj.Destino.Numero.ToString(), out numDestino);

                dao.AlterarViagemDAO(obj.CodViagem, obj.DataViagem, obj.DistanciaKm, obj.Valor, obj.Origem.Cep, obj.Origem.Logradouro,
                                     obj.Origem.Numero, obj.ComplementoOrigem, obj.Origem.Bairro, obj.Origem.CodCidade.ToString(), obj.Origem.CodEstado.ToString(),
                                     obj.Destino.Cep, obj.Destino.Logradouro, obj.Destino.Numero, obj.ComplementoDestino, obj.Destino.Bairro,
                                     obj.Destino.CodCidade.ToString(), obj.Destino.CodEstado.ToString(), obj.Cliente.Codigo,
                                     Convert.ToInt32(obj.CodVeiculo.CodVei), obj.Motorista.Codigo, Convert.ToInt32(obj.Atendente.Codigo), (int)obj.Status);

                if (obj.Status == EnumStatusViagem.Finalizada)
                {
                    decimal           kmPosViagem, kmInicial;
                    int               distancia, kmAtual;
                    VeiculoController veiCtrl = new VeiculoController();
                    Veiculo           veic    = new Veiculo(obj.CodVeiculo.CodVei);

                    veic = veiCtrl.GetObj(veic);

                    Decimal.TryParse(veic.KmInicial, out kmInicial);
                    int.TryParse(obj.DistanciaKm, out distancia);
                    int.TryParse(veic.KmAtual, out kmAtual);

                    kmPosViagem = distancia + kmAtual;

                    veic.KmAtual = kmPosViagem.ToString();

                    if (kmPosViagem - kmInicial >= 10000)
                    {
                        veic.Status    = enumStatusVeiculo.Manutencao;
                        veic.KmInicial = veic.KmAtual;

                        ManutencaoController manuCtrl = new ManutencaoController();
                        manuCtrl.InserirController(new Manutencao(0, System.DateTime.Now, System.DateTime.Now.AddDays(5), "Veiculo manutenção preventiva", veic.CodVei, Model.Enums.EnumStatusManutencao.Aberto));
                    }

                    veiCtrl.AlterarController(veic);
                    if (veic.Status == enumStatusVeiculo.Manutencao)
                    {
                        throw new BusinessException("Veículo ultrapassou a quilometragem de manutenção preventiva e o sistema alterou o status de Veículo para Manutenção.");
                    }
                }
            }
            catch (BusinessException ex)
            {
                throw new BusinessException(ex.Message);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }