# FAQ - Webservice Integração - Importação de Despesas

###  Validações do WebMethod `consultarDespesas`

Este método realiza as seguintes validações:

1. Verificação da senha da central (obrigatória).
2. Verificação da existência do cliente com base em CPF/CNPJ, senha e ID da central.
3. Validação do formato e existência da placa do veículo (se fornecida).
4. Validação da data inicial (formato válido e existência).
5. Validação da data final (formato válido e existência).
6. Caso algum dos dados esteja incorreto, mensagens de erro específicas são retornadas.

---

### Perguntas Frequentes – WebMethod `consultarDespesas`

**1. O que acontece se a senha da central estiver incorreta no método `consultarDespesas`?**  
Será retornado um erro indicando "Senha inválida".

**2. O que significa o erro "cliente com CPF/CNPJ não cadastrado"?**  
Indica que o CPF/CNPJ informado não está registrado na central ou que a senha está incorreta.

**3. Posso omitir a placa do veículo na consulta de despesas?**  
Sim. A placa é opcional. Se não for informada, as despesas serão listadas para todos os veículos do cliente.

**4. O que acontece se eu informar a placa do veículo em um formato inválido?**  
Será retornado o erro "Veiculo de placa XXX não é válido. Informe a placa no formato XXX-NNNN".

**5. Quais formatos de data são aceitos no `consultarDespesas`?**  
Apenas o formato `yyyy-MM-dd` é aceito. Datas em outros formatos gerarão erro.

**6. O que acontece se a data inicial for inválida?**  
Será retornada a mensagem "Data inicial inválida".

**7. E se a data final estiver incorreta ou nula?**  
Será retornado erro: "Data final inválida".

**8. O método `consultarDespesas` valida o vínculo entre cliente e veículo?**  
Sim, ele valida se a placa informada está associada ao cliente autenticado.

**9. Se a placa estiver correta, mas não pertencer ao cliente, o que ocorre?**  
Será retornado erro dizendo que o veículo não é válido.

**10. O método `consultarDespesas` retorna despesas para um intervalo de datas?**  
Sim, todas as despesas entre a data inicial e final informadas são retornadas.

**11. E se não houver nenhuma despesa no intervalo?**  
O método retorna sucesso, porém com a lista de despesas vazia.

**12. O método pode lançar erro geral?**  
Sim, em casos de falhas internas, será retornado "Erro Geral do Consulta de Despesas".

**13. Preciso do CNPJ completo com formatação?**  
Sim, o método espera o CNPJ no formato `xx.xxx.xxx/xxxx-xx`.

**14. O método `consultarDespesas` valida a senha do cliente?**  
Sim, a senha do cliente é obrigatória e validada junto ao CPF/CNPJ.

**15. Posso usar CPF no lugar do CNPJ?**  
Sim, o método aceita tanto CPF quanto CNPJ, desde que válidos e cadastrados.

---

### Validações do WebMethod `importarDespesas`

Este método realiza as seguintes validações detalhadas:

1. Verificação se a lista de despesas foi enviada e contém ao menos um item.
2. Validação da senha da central.
3. Verificação da existência do cliente com CPF/CNPJ e senha.
4. Para cada despesa:
    
    
    - Condutor preenchido
    - Data preenchida e válida
    - Hora preenchida e válida
    - Nome informado
    - Odômetro &gt; 0
    - Placa do veículo informada
    - Quantidade preenchida
    - Tipo ou tipo genérico informado
    - Valor informado
    - Tipo de combustível informado se for abastecimento externo
    - Tipo de combustível compatível com o veículo
    - Quantidade de combustível dentro da capacidade do tanque
    - Odômetro e horímetro coerentes com as despesas anteriores/posteriores
    - Fornecedor com CNPJ/CPF válido, nome (caso for cadastrar), e existente ou a ser cadastrado corretamente

---

### Perguntas Frequentes – WebMethod `importarDespesas`

**1. O que acontece se a lista de despesas estiver vazia no `importarDespesas`?**  
Será retornado erro: "A lista de despesas deve conter pelo menos um elemento."

**2. Como é validado o condutor?**  
O método exige que o campo de condutor esteja preenchido em cada despesa.

**3. Preciso informar a data da despesa?**  
Sim. A data é obrigatória e deve estar no formato válido.

**4. E se a hora estiver em formato incorreto?**  
Será retornado erro: "Hora inválida da despesa X".

**5. Qual o erro se o nome da despesa estiver ausente?**  
Erro: "Informe o NOME da despesa X".

**6. Posso registrar uma despesa com odômetro igual a zero?**  
Não. O campo deve ser maior que zero para ser aceito.

**7. A placa do veículo é obrigatória na importação?**  
Sim. Deve ser informada e válida para cada despesa.

**8. O que ocorre se a quantidade for nula?**  
Será retornado erro indicando que a quantidade da despesa deve ser informada.

**9. E se eu esquecer de preencher o tipo da despesa?**  
Erro: "Informe o TIPO da despesa X".

**10. Como funciona a validação de tipo de combustível?**  
Se for abastecimento externo, o tipo de combustível deve ser informado, compatível com o veículo e dentro da capacidade do tanque.

**11. O que acontece se o tipo de combustível não for compatível?**  
Erro: "Combustível não compatível com o veículo da despesa X".

**12. O método `importarDespesas` verifica odômetro com despesas anteriores?**  
Sim. O sistema impede valores inferiores aos das despesas anteriores e superiores aos das posteriores.

**13. Posso importar despesas com fornecedor novo?**  
Sim, desde que esteja marcado para cadastrar e com CNPJ/CPF e nome preenchidos corretamente.

**14. O que acontece se o CPF ou CNPJ do fornecedor for inválido?**  
Erro: "CPF ou CNPJ inválido do Fornecedor da despesa X".

**15. O método pode lançar erro geral?**  
Sim, será retornado "Erro Geral do Importador de Despesas" com detalhes do problema.