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

Esta documentação detalha as validações implementadas em cada método em *ImportadorPedidos*. Em cada seção, as validações são enumeradas e, em seguida, são apresentadas 15 perguntas e respostas frequentes (FAQ) que abordam dúvidas comuns, sempre fazendo referência ao método e à validação correspondente.

---

## 1. Método: converterEnderecoUsandoCEP

### Validações do método converterEnderecoUsandoCEP

1. **Lista de Pedidos:** Verifica se a lista de pedidos não é nula e contém pelo menos um elemento.
2. **Senha da Central:** Valida a senha informada da central; se inválida, retorna erro.
3. **Identificação do Cliente:** Usa o CPF/CNPJ e senha do cliente para identificar o cliente cadastrado.
4. **CEP do Pedido:** Para cada pedido, verifica se o CEP está informado; caso contrário, retorna erro específico para o pedido.
5. **Conversão do Endereço:** Utilizado para converter o CEP em latitude, longitude e endereço formatado; se não encontrado, retorna erro.

### FAQ – converterEnderecoUsandoCEP

**Q1:** O que acontece se a lista de pedidos estiver vazia no método *converterEnderecoUsandoCEP*?  
**A1:** O método retorna um objeto de resultado com sucesso falso e a mensagem “Erro: a lista de pedidos deve conter pelo menos um elemento.”, impedindo a conversão sem pedidos.

**Q2:** Como o método *converterEnderecoUsandoCEP* valida a senha da central?  
**A2:** Ele utiliza o cadastro da Empresa para validar a senha; se a central não for identificada, retorna erro “Erro: Senha invalida.”.

**Q3:** O que ocorre se o cliente não for encontrado no método *converterEnderecoUsandoCEP*?  
**A3:** O método retorna um erro informando que o cliente com o CPF/CNPJ informado não está cadastrado, indicando o formato esperado para o CNPJ.

**Q4:** Qual a validação aplicada quanto ao CEP em cada pedido?  
**A4:** O método verifica se o CEP foi informado; se estiver ausente, retorna erro indicando “Pedido \[número\] sem o número do CEP.”

**Q5:** Como o método trata a conversão do endereço a partir do CEP?  
**A5:** Utiliza o cadastro para recuperar um objeto de endereço. Se o endereço não for encontrado, retorna erro especificando que o CEP pesquisado não gerou resultado.

**Q6:** O método *converterEnderecoUsandoCEP* permite pedidos sem CEP?  
**A6:** Não; se o CEP estiver vazio para algum pedido, o método interrompe a conversão e retorna a mensagem de erro apropriada.

**Q7:** Há alguma verificação adicional de formatação ou dados no CEP?  
**A7:** A validação se concentra em verificar se o campo CEP não está vazio, utilizando-o para recuperar dados no cadastro.

**Q8:** Qual é o retorno do método caso todos os pedidos sejam convertidos com sucesso?  
**A8:** Retorna um objeto do tipo ResultadoConversaoEnderecoPeloCEPVO com sucesso verdadeiro e uma mensagem informando quantos pedidos foram convertidos.

**Q9:** Em caso de exceção durante a conversão, qual é a resposta do método *converterEnderecoUsandoCEP*?  
**A9:** O método captura a exceção e retorna um objeto de resultado com sucesso falso e a mensagem “Erro inexperado na conversão.”

**Q10:** O que acontece se a senha da central estiver incorreta?  
**A10:** A validação falha e o método retorna “Erro: Senha invalida.” sem prosseguir para as demais etapas.

**Q11:** Como é tratado um CEP que não gera resultado no banco de dados?  
**A11:** Se o CEP pesquisado não retornar um endereço, o método lança uma mensagem de erro específica para o pedido em questão.

**Q12:** Existe validação de formato para o CEP?  
**A12:** A verificação consiste em confirmar que o CEP não está vazio; detalhes de formatação são tratados internamente pelo cadastro responsável pela conversão.

**Q13:** O método *converterEnderecoUsandoCEP* realiza validações por pedido individualmente?  
**A13:** Sim, cada pedido é validado individualmente quanto à presença do CEP e a conversão do endereço.

**Q14:** É possível converter apenas alguns pedidos e ignorar os sem CEP?  
**A14:** Não; se qualquer pedido não tiver o CEP informado, o método interrompe e retorna erro para o primeiro pedido sem CEP.

**Q15:** Quais parâmetros são obrigatórios para a execução do método *converterEnderecoUsandoCEP*?  
**A15:** São obrigatórios: uma lista de pedidos com pelo menos um elemento, CPF/CNPJ, senha do cliente e senha da central, além de cada pedido conter o CEP informado.

---

## 2. Método: importarPedidos

### Validações do método importarPedidos

1. **Lista de Pedidos:** Verifica se a lista não é nula e contém ao menos um pedido.
2. **Senha da Central:** Valida a senha da central; se inválida, retorna erro.
3. **Identificação do Cliente:** Valida o CPF/CNPJ e senha do cliente para identificar o cliente.
4. **Ponto de Interesse (POI):** Se o pedido requer cadastro de POI, o método chama a função *validarPoi* para conferir a existência e integridade dos dados do POI.
5. **Loja:** Verifica se a loja está informada e se é válida (pelo código ou nome); caso contrário, retorna erro.
6. **Número do Pedido:** Confere se o número do pedido não é nulo, não vazio e não duplicado conforme regras de data e loja.
7. **Data e Hora do Pedido:** Valida se a data e a hora do pedido estão corretas e se a hora está no formato HH:mm.
8. **Zona e Vendedor:** Valida se a zona e o vendedor estão informados e se correspondem a registros válidos.
9. **Coordenadas Geográficas:** Verifica se latitude e longitude são numéricas e estão dentro dos limites válidos.
10. **Endereço e Geocoding:** Caso não haja coordenadas, o método tenta obter geocoding a partir do endereço; se falhar, retorna erro.
11. **Horários de Entrega:** Valida se a hora inicial e final de entrega estão informadas, corretas e se a final não ocorre antes da inicial.
12. **Tempo de Atendimento:** Verifica se o tempo de atendimento foi informado e é maior que zero.
13. **Número GSM:** Se informado, o número deve estar no formato de celular.
14. **Nota Fiscal, Número de Carregamento e Lote:** Verifica o tamanho máximo permitido (até 45 dígitos) para estes campos.
15. **Data e Hora do Compromisso de Entrega:** Devem estar informados e no formato adequado.

### FAQ – importarPedidos

**Q1:** O que acontece se a lista de pedidos estiver vazia no método *importarPedidos*?  
**A1:** O método retorna um ResultadoImportacaoVO com sucesso falso e a mensagem “Erro: a lista de pedidos deve conter pelo menos um elemento.”

**Q2:** Como o método *importarPedidos* valida a senha da central?  
**A2:** Ele utiliza o cadastro da Empresa para validar a senha; se a central não for encontrada, retorna “Erro: Senha invalida.”

**Q3:** O que ocorre se o cliente não for identificado?  
**A3:** O método retorna um erro informando que o cliente com o CPF/CNPJ informado não está cadastrado, especificando o formato esperado do CNPJ.

**Q4:** Como são validados os dados do Ponto de Interesse (POI) no método *importarPedidos*?  
**A4:** Se o pedido exigir o cadastro do POI, o método chama a função *validarPoi*, que checa a presença do código, nome, descrição, grupo, raio e, em alguns casos, geocoding ou endereço.

**Q5:** Qual é a validação para a loja no método *importarPedidos*?  
**A5:** O método verifica se a loja está informada e se é encontrada (por código ou nome). Caso contrário, retorna erro solicitando o cadastro da loja.

**Q6:** O que acontece se o número do pedido já estiver cadastrado?  
**A6:** Dependendo da configuração do cliente (por data ou loja), o método retorna um erro informando que o pedido já foi cadastrado.

**Q7:** Como o método *importarPedidos* valida a data e hora do pedido?  
**A7:** Verifica se a data e a hora estão informadas e se a hora está no formato HH:mm; se não, retorna erro indicando “Hora do pedido inválida.”

**Q8:** O que é verificado quanto à zona e ao vendedor do pedido?  
**A8:** O método valida se ambos estão informados e se correspondem a registros válidos no sistema; senão, retorna erro com a mensagem apropriada.

**Q9:** Quais validações são realizadas nas coordenadas geográficas?  
**A9:** São verificados se latitude e longitude estão preenchidos, se podem ser convertidos para números e se estão dentro dos limites (latitude entre –90 e 90 e longitude entre –180 e 180).

**Q10:** Como o método trata pedidos sem coordenadas mas com endereço?  
**A10:** O método tenta obter o geocoding usando o endereço (e, em alguns casos, pelo CEP) para preencher latitude e longitude; se não conseguir, retorna erro.

**Q11:** Como são validados os horários de entrega?  
**A11:** Verifica se a hora inicial e final de entrega estão informadas, no formato correto e que a hora final não seja anterior à hora inicial.

**Q12:** Qual é a validação aplicada ao tempo de atendimento?  
**A12:** O tempo de atendimento deve ser maior que zero; caso contrário, o método retorna erro indicando a necessidade de informar esse dado.

**Q13:** O número GSM é validado?  
**A13:** Sim, se o número GSM estiver informado, ele deve estar no formato de um número de celular válido; senão, ocorre erro.

**Q14:** Como são tratados os campos de Nota Fiscal, Número de Carregamento e Lote?  
**A14:** Cada um desses campos é verificado para que não ultrapasse 45 dígitos; se exceder, o método retorna um erro específico.

**Q15:** Quais os requisitos para os dados do compromisso de entrega?  
**A15:** É necessário que a data e a hora do compromisso de entrega estejam informadas e que a hora esteja no formato HH:MM, caso contrário, retorna erro.

---

## 3. Método: consultarStatusEntregaPedido

### Validações do método consultarStatusEntregaPedido

1. **Senha da Central:** Validação inicial da senha da central.
2. **Identificação do Cliente:** Verifica se o cliente existe com base no CPF/CNPJ e senha.
3. **Consulta de Itinerário:** Verifica se há um itinerário associado ao pedido e, se não houver, informa que o pedido nunca foi roteirizado.
4. **Recuperação de Erros:** Caso o itinerário seja encontrado, o método recupera os erros associados ao mesmo.

### FAQ – consultarStatusEntregaPedido

**Q1:** O que acontece se a senha da central for inválida no método *consultarStatusEntregaPedido*?  
**A1:** O método retorna um ResultadoConsultaStatusVO com sucesso falso e a mensagem “Erro: Senha invalida.”

**Q2:** Como o método valida o cliente?  
**A2:** Ele utiliza o cadastro do Cliente para identificar o cliente com CPF/CNPJ e senha; se não encontrar o cliente, retorna erro indicando que o cliente não está cadastrado.

**Q3:** O que significa se nenhum itinerário for encontrado para o pedido?  
**A3:** A mensagem “Pedido nunca foi roteirizado para entrega” é retornada, indicando que o pedido ainda não passou pelo processo de roteirização.

**Q4:** Como o método *consultarStatusEntregaPedido* lida com erros associados ao itinerário?  
**A4:** Após recuperar o itinerário, o método chama uma rotina para recuperar erros e os inclui na resposta.

**Q5:** É necessário informar todos os parâmetros para consultar o status de entrega?  
**A5:** Sim, é obrigatório informar o pedido, CPF/CNPJ, senha do cliente e senha da central.

**Q6:** Qual é o tipo de retorno quando o status é consultado com sucesso?  
**A6:** Retorna um objeto ResultadoConsultaStatusVO com sucesso verdadeiro, a mensagem “Pedido encontrado.” e o itinerário de viagem.

**Q7:** O que ocorre se ocorrer uma exceção durante a consulta do status?  
**A7:** O método captura a exceção, registra o erro e retorna um ResultadoConsultaStatusVO com sucesso falso e uma mensagem genérica de erro.

**Q8:** Posso consultar o status de qualquer pedido?  
**A8:** Sim, desde que o pedido possua um registro de itinerário ou erros de roteirização no sistema.

**Q9:** Como o método trata a conexão com o banco?  
**A9:** Ele obtém uma nova conexão por meio do FabricaConexao para cada operação de validação e consulta.

**Q10:** Qual a importância do itinerário na consulta do status de entrega?  
**A10:** O itinerário contém o histórico de status e erros que permitem identificar o estágio atual do pedido na entrega.

**Q11:** O que é necessário para que a consulta retorne “Pedido encontrado.”?  
**A11:** É necessário que exista um itinerário previamente cadastrado para o pedido e que a conexão e validação dos dados tenham sido bem-sucedidas.

**Q12:** Como é validada a conexão com o banco de dados no método?  
**A12:** O método utiliza o FabricaConexao para obter a conexão, assegurando que cada chamada aos cadastros possua conexão ativa.

**Q13:** Existe alguma validação específica do objeto “pedido”?  
**A13:** A validação se concentra na existência do itinerário relacionado ao pedido; os dados do pedido já devem estar previamente validados na etapa de importação.

**Q14:** O método pode retornar informações parciais em caso de erro?  
**A14:** Não; se ocorrer qualquer falha na validação ou consulta, o método retorna um objeto de resultado com sucesso falso e mensagem de erro.

**Q15:** Quais parâmetros devo conferir se a consulta não retornar o status esperado?  
**A15:** Verifique se o CPF/CNPJ, senha do cliente, senha da central e os dados do pedido estão corretos, pois qualquer inconsistência impedirá a consulta do itinerário.

---

## 4. Método: listarItinerariosCarregamento

### Validações do método listarItinerariosCarregamento

1. **Senha da Central:** Verifica se a senha da central é válida.
2. **Identificação do Cliente:** Confirma a existência do cliente com os dados fornecidos.
3. **Recuperação da Lista:** Utiliza o cadastro de Itinerário para recuperar a lista de itinerários com base no número de carregamento.

### FAQ – listarItinerariosCarregamento

**Q1:** Quais parâmetros são obrigatórios no método *listarItinerariosCarregamento*?  
**A1:** É necessário informar o número do carregamento, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** O que acontece se a senha da central for inválida?  
**A2:** O método retorna um ResultadoConsultaListaItinerariosVO com sucesso falso e a mensagem “Erro: Senha invalida.”

**Q3:** Como o método identifica o cliente?  
**A3:** Utiliza o cadastro do Cliente para validar o CPF/CNPJ e senha; se o cliente não for encontrado, retorna o erro correspondente.

**Q4:** Qual é o critério de busca para os itinerários?  
**A4:** A busca é feita pelo número do carregamento associado aos pedidos.

**Q5:** O que ocorre se nenhum itinerário for encontrado para o carregamento?  
**A5:** O método retorna uma lista vazia com uma mensagem de sucesso indicando que a lista foi recuperada, mas o usuário pode interpretar que não há itinerários cadastrados.

**Q6:** Posso utilizar o método para buscar itinerários de vários carregamentos?  
**A6:** Este método foi projetado para filtrar por um único número de carregamento.

**Q7:** Como é tratada a conexão com o banco?  
**A7:** O método obtém a conexão por meio do FabricaConexao e a repassa para os cadastros utilizados.

**Q8:** Existe tratamento de exceções no método?  
**A8:** Sim, se ocorrer alguma exceção, o método captura o erro e retorna uma mensagem genérica de falha na consulta dos itinerários.

**Q9:** O que o método retorna em caso de sucesso?  
**A9:** Um objeto ResultadoConsultaListaItinerariosVO com sucesso verdadeiro, uma mensagem de sucesso e a lista de itinerários encontrados.

**Q10:** É possível que a lista de itinerários contenha erros?  
**A10:** A função se preocupa em recuperar a lista; a eventual existência de erros nos itinerários é tratada em métodos complementares de recuperação.

**Q11:** Quais tipos de itinerários são listados?  
**A11:** São listados itinerários associados ao número de carregamento informado e pertencentes ao cliente autenticado.

**Q12:** O método realiza alguma validação sobre o formato do número de carregamento?  
**A12:** A validação principal é a existência do número; detalhes adicionais devem estar conformes ao cadastro do cliente.

**Q13:** Como é informado o usuário se não houver itinerários?  
**A13:** A mensagem de retorno será “Lista de Itinerarios recuperada com sucesso.”, porém a lista estará vazia.

**Q14:** Existe limite para o número de itinerários retornados?  
**A14:** Não há um limite explícito; todos os itinerários correspondentes são retornados.

**Q15:** Quais cadastros são utilizados na execução deste método?  
**A15:** São utilizados o cadastro da Empresa para validação, o cadastro do Cliente para identificação e o cadastro de Itinerário para a recuperação dos itinerários.

---

## 5. Método: listarItinerariosLote

### Validações do método listarItinerariosLote

1. **Senha da Central:** Verifica se a senha da central está correta.
2. **Identificação do Cliente:** Confirma se o cliente existe.
3. **Busca pelo Lote:** Recupera a lista de itinerários com base no número do lote.
4. **Validação de Lista Vazia:** Se a lista estiver vazia, atualiza a mensagem informando “Nenhuma roteirização ou itinerário encontrado.”

### FAQ – listarItinerariosLote

**Q1:** Quais dados são necessários para executar o método *listarItinerariosLote*?  
**A1:** É necessário informar o número do lote, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Como o método trata a senha da central?  
**A2:** Valida a senha utilizando o cadastro da Empresa; se inválida, retorna “Erro: Senha invalida.”

**Q3:** O que acontece se o cliente não for identificado?  
**A3:** O método retorna um erro informando que o cliente não está cadastrado.

**Q4:** Como é realizada a busca dos itinerários por lote?  
**A4:** Através do cadastro de Itinerário, filtrando pelo número do lote e associado ao cliente autenticado.

**Q5:** Qual é a mensagem retornada se nenhum itinerário for encontrado?  
**A5:** A mensagem será “Nenhuma roteirização ou itinerário encontrado.”

**Q6:** O método retorna um objeto de sucesso mesmo com a lista vazia?  
**A6:** Sim, o objeto é retornado com sucesso verdadeiro, mas com uma mensagem específica e a lista vazia.

**Q7:** Quais conexões são utilizadas na execução do método?  
**A7:** São utilizadas conexões obtidas via FabricaConexao para todos os cadastros envolvidos.

**Q8:** Existe validação sobre o formato do número do lote?  
**A8:** A validação se limita a verificar se o número foi informado; o formato deve estar conforme o cadastro do cliente.

**Q9:** Posso buscar itinerários de lotes parciais?  
**A9:** O método busca por correspondência exata do número do lote informado.

**Q10:** Qual cadastro é responsável por recuperar a lista de itinerários?  
**A10:** O cadastro de Itinerário é utilizado para essa recuperação.

**Q11:** O método realiza tratamento de exceções?  
**A11:** Sim, qualquer exceção é capturada e o método retorna uma mensagem de erro genérica.

**Q12:** É possível filtrar itinerários por mais de um lote neste método?  
**A12:** Este método aceita apenas um número de lote por chamada.

**Q13:** Como é informado o usuário se a senha estiver incorreta?  
**A13:** Retorna “Erro: Senha invalida.” sem prosseguir com a consulta.

**Q14:** O que fazer se a lista de itinerários estiver vazia?  
**A14:** O usuário deverá verificar se o número do lote está correto ou se há itinerários cadastrados para aquele lote.

**Q15:** Quais são os principais cadastros utilizados neste método?  
**A15:** São utilizados os cadastros da Empresa, Cliente e ItinerarioViagem.

---

## 6. Método: listarItinerariosRoterizado

### Validações do método listarItinerariosRoterizado

1. **Senha da Central:** Valida a senha informada.
2. **Identificação do Cliente:** Confirma se o cliente está cadastrado.
3. **Verificação da Viagem:** Verifica se existe uma viagem com o ID informado para o cliente.
4. **Recuperação dos Itinerários:** Utiliza o cadastro de Itinerário para recuperar a lista com base na viagem.
5. **Recuperação de Erros:** Chama a rotina para atualizar a lista de ocorrências (erros) para cada itinerário.

### FAQ – listarItinerariosRoterizado

**Q1:** Quais parâmetros são obrigatórios no método *listarItinerariosRoterizado*?  
**A1:** É necessário informar o ID da viagem, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** O que acontece se a senha da central for inválida?  
**A2:** O método retorna um ResultadoConsultaListaItinerariosVO com sucesso falso e a mensagem “Erro: Senha invalida.”

**Q3:** Como o método valida a existência da viagem?  
**A3:** Ele utiliza o cadastro de Viagem para recuperar a viagem com o ID informado; se não existir, retorna erro “Erro: Nao existe viagem com o identificador informado.”

**Q4:** O que é retornado se a viagem for encontrada?  
**A4:** Retorna uma lista de itinerários associados à viagem e, se houver ocorrências, estas são recuperadas e associadas a cada itinerário.

**Q5:** Como é tratada a conexão com o banco?  
**A5:** São utilizadas conexões obtidas via FabricaConexao para cada operação de validação e recuperação.

**Q6:** O que ocorre se o cliente não for identificado?  
**A6:** O método retorna erro informando que o cliente não está cadastrado.

**Q7:** Qual cadastro é responsável por recuperar os itinerários?  
**A7:** O cadastro é o responsável pela recuperação dos itinerários.

**Q8:** Como são atualizados os erros associados aos itinerários?  
**A8:** Para cada itinerário, o método chama a função de recuperação de erros e atualiza a lista de ocorrências.

**Q9:** Existe algum limite para o número de itinerários retornados?  
**A9:** Não há limite explícito; todos os itinerários associados à viagem são retornados.

**Q10:** O que acontece se ocorrer uma exceção durante a recuperação?  
**A10:** A exceção é capturada, o erro é logado e o método retorna um objeto de resultado com sucesso falso e mensagem genérica de erro.

**Q11:** O método pode ser usado para consultar itinerários de viagens finalizadas?  
**A11:** Sim, contanto que o ID da viagem esteja corretamente informado e associada ao cliente.

**Q12:** Há alguma validação específica do formato do ID da viagem?  
**A12:** A validação principal é a existência da viagem para o cliente; o formato do ID deve estar conforme o cadastro no sistema.

**Q13:** Como saber se a consulta foi realizada com sucesso?  
**A13:** O objeto retornado terá o campo “sucesso” verdadeiro e uma mensagem “Lista de Itinerarios recuperada com sucesso.”

**Q14:** Quais informações adicionais podem ser encontradas nos itinerários?  
**A14:** Além dos dados do pedido, os itinerários podem conter a lista de ocorrências (erros) associadas.

**Q15:** É necessário tratar manualmente os erros de itinerários após a consulta?  
**A15:** Não; o método já recupera e associa os erros a cada itinerário automaticamente.

---

## 7. Método: listarPoIRoterizado

### Validações do método listarPoIRoterizado

1. **Senha da Central:** Valida a senha informada.
2. **Identificação do Cliente:** Confirma se o cliente está cadastrado.
3. **Verificação da Viagem:** Confirma a existência da viagem com o ID informado.
4. **Recuperação dos Itinerários:** Obtém os itinerários da viagem.
5. **Extração de POIs:** A partir dos itinerários, extrai os pontos de interesse (POI) sem repetições.

### FAQ – listarPoIRoterizado

**Q1:** Quais parâmetros são necessários para o método *listarPoIRoterizado*?  
**A1:** É preciso informar o ID da viagem, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** O que acontece se a senha da central for inválida?  
**A2:** O método retorna um ResultadoConsultaListaPoIRoteirizadosVO com sucesso falso e a mensagem “Erro: Senha invalida.”

**Q3:** Como o método valida a existência da viagem?  
**A3:** Utiliza o cadastro de Viagem para recuperar a viagem com o ID informado; se não for encontrada, retorna erro.

**Q4:** Como são extraídos os POIs dos itinerários?  
**A4:** O método percorre a lista de itinerários e, para cada novo POI (não repetido), adiciona-o à lista final.

**Q5:** O que é retornado se nenhum POI for encontrado?  
**A5:** Se a lista de itinerários estiver vazia ou não houver POIs distintos, a lista retornada ficará vazia.

**Q6:** Qual é a importância do campo “idPontoInteresse” nesta consulta?  
**A6:** Ele é utilizado para identificar e evitar a duplicação dos pontos de interesse na lista final.

**Q7:** O que ocorre se o cliente não for identificado?  
**A7:** O método retorna erro informando que o cliente não está cadastrado.

**Q8:** Existe alguma validação adicional quanto aos dados dos itinerários?  
**A8:** A validação foca na existência dos itinerários e na extração única dos POIs.

**Q9:** Como é tratada a conexão com o banco neste método?  
**A9:** A conexão é obtida via FabricaConexao e utilizada nos cadastros de Empresa, Cliente e Viagem.

**Q10:** Quais mensagens de erro podem ser retornadas neste método?  
**A10:** Podem ocorrer mensagens “Erro: Senha invalida.”, “Erro: cliente com CPF/CNPJ ... nao cadastrado.” ou “Erro: Nao existe viagem com o identificador informado.”

**Q11:** Posso usar este método para verificar se um POI já foi roteirizado?  
**A11:** Sim, ele retorna os pontos de interesse que já foram associados a itinerários de uma viagem.

**Q12:** O método lida com duplicatas de POI?  
**A12:** Sim, a lógica compara o ID dos POIs para garantir que cada ponto seja listado apenas uma vez.

**Q13:** Qual cadastro é utilizado para recuperar os itinerários?  
**A13:** O cadastro do ItinerarioViagem é utilizado para obter a lista de itinerários.

**Q14:** O método retorna informações adicionais sobre cada POI?  
**A14:** Retorna os dados básicos do POI, como o ID e o código, conforme extraídos dos itinerários.

**Q15:** Como saber se a operação foi realizada com sucesso?  
**A15:** O objeto retornado terá o campo “sucesso” verdadeiro e a mensagem “Lista de Pontos de Interesse recuperada com sucesso.”

---

## 8. Método: listarPedidosPorStatus

### Validações do método listarPedidosPorStatus

1. **Senha da Central:** Verifica se a senha informada é válida.
2. **Identificação do Cliente:** Confirma se o cliente está cadastrado.
3. **Filtragem por Status:** Utiliza o cadastro de Pedidos para recuperar a lista de pedidos com o status informado.

### FAQ – listarPedidosPorStatus

**Q1:** Quais parâmetros são obrigatórios no método *listarPedidosPorStatus*?  
**A1:** É necessário informar o status do pedido, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Como é validada a senha da central?  
**A2:** Através do cadastro da Empresa; se inválida, retorna “Erro: Senha invalida.”

**Q3:** O que acontece se o cliente não for identificado?  
**A3:** O método retorna erro informando que o cliente com o CPF/CNPJ informado não está cadastrado.

**Q4:** Qual é o critério de filtragem para os pedidos?  
**A4:** A filtragem é feita com base no status do pedido (por exemplo, VENDA\_FINALIZADA).

**Q5:** O método pode retornar uma lista vazia?  
**A5:** Sim, se nenhum pedido corresponder ao status informado, a lista retornada ficará vazia.

**Q6:** Qual cadastro é utilizado para recuperar os pedidos?  
**A6:** O método utiliza o cadastro de PedidosRotas para listar os pedidos conforme o status.

**Q7:** Existe tratamento para exceções durante a consulta?  
**A7:** Sim, exceções são capturadas e o método retorna um resultado com sucesso falso e uma mensagem de erro.

**Q8:** Como é informado o usuário se a operação for bem-sucedida?  
**A8:** O método retorna um objeto com sucesso verdadeiro e a mensagem “Lista de Pedidos recuperada com sucesso.”

**Q9:** O status informado é case sensitive?  
**A9:** O status deve ser informado conforme definido na enumeração StatusPedido do sistema.

**Q10:** É possível filtrar pedidos por múltiplos status com este método?  
**A10:** Este método aceita apenas um status por chamada.

**Q11:** Como o método lida com conexões ao banco?  
**A11:** Ele obtém conexões via FabricaConexao para os cadastros de Empresa, Cliente e Pedidos.

**Q12:** Posso usar este método para monitorar o andamento dos pedidos?  
**A12:** Sim, ele é ideal para recuperar pedidos em um status específico e monitorar sua evolução.

**Q13:** O que devo fazer se nenhum pedido for retornado?  
**A13:** Verifique se o status informado está correto e se há pedidos cadastrados com aquele status.

**Q14:** Qual a utilidade deste método para o cliente?  
**A14:** Ele permite ao cliente acompanhar a situação dos seus pedidos, filtrando por status como “VENDA\_FINALIZADA”, entre outros.

**Q15:** Quais são os possíveis status que podem ser consultados?  
**A15:** Os status são definidos na enumeração StatusPedido e podem incluir VENDA\_FINALIZADA, LIBERADO\_PARA\_SEPARACAO, NAO\_ENTREGUE, etc.

---

## 9. Método: alterarStatusVendaFinalizadoParaLiberadoSeparacao

### Validações do método alterarStatusVendaFinalizadoParaLiberadoSeparacao

1. **Validação de Acesso:** Verifica se a senha da central e os dados do cliente estão corretos.
2. **Status Atual:** Confirma que o status do pedido está como VENDA\_FINALIZADA.
3. **Chamada à Fachada:** Encaminha a alteração de status para o GerenciadorPedidosFachada, que realiza as validações internas.

### FAQ – alterarStatusVendaFinalizadoParaLiberadoSeparacao

**Q1:** Quais parâmetros são obrigatórios no método *alterarStatusVendaFinalizadoParaLiberadoSeparacao*?  
**A1:** É preciso informar a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** O que acontece se a senha da central for inválida?  
**A2:** O método retorna um ResultadoAlteracaoStatusPedidosVO com sucesso falso e a mensagem “Erro: Senha invalida.”

**Q3:** Como é verificado o status atual do pedido?  
**A3:** A validação é realizada internamente pelo GerenciadorPedidosFachada, que confirma que o status atual é VENDA\_FINALIZADA.

**Q4:** Qual o novo status aplicado pelo método?  
**A4:** O método altera o status de VENDA\_FINALIZADA para LIBERADO\_PARA\_SEPARACAO.

**Q5:** O que ocorre se o pedido não estiver com o status VENDA\_FINALIZADA?  
**A5:** O GerenciadorPedidosFachada deverá identificar a inconsistência e retornar um erro apropriado.

**Q6:** O método altera o status de todos os pedidos da lista?  
**A6:** Sim, todos os pedidos contidos na lista que estiverem com o status correto serão alterados.

**Q7:** Quais validações de acesso são realizadas?  
**A7:** São validados a senha da central e a identificação do cliente, conforme nos métodos anteriores.

**Q8:** Se ocorrer um erro na alteração, qual é a mensagem retornada?  
**A8:** Em caso de exceção, o método retorna “Erro geral : alterarStatusVendaFinalizadoParaLiberadoSeparacao.”

**Q9:** O método realiza alterações parciais ou tudo ou nada?  
**A9:** A alteração é realizada para todos os pedidos que cumpram a validação; se houver erro em algum, geralmente a transação é abortada.

**Q10:** Como o GerenciadorPedidosFachada é utilizado neste método?  
**A10:** Ele é instanciado e chamado para executar a alteração do status, centralizando a lógica de negócios.

**Q11:** Existe alguma validação quanto à lista de pedidos?  
**A11:** Sim, a lista não pode ser nula e deve conter pelo menos um pedido.

**Q12:** Posso usar este método para alterar pedidos com status diferente?  
**A12:** Não, este método é específico para alterar de VENDA\_FINALIZADA para LIBERADO\_PARA\_SEPARACAO.

**Q13:** Quais cadastros são invocados durante a alteração?  
**A13:** A alteração é realizada pela fachada (GerenciadorPedidosFachada), que internamente utiliza os cadastros de pedidos.

**Q14:** Qual é o retorno esperado em caso de sucesso?  
**A14:** Um ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem confirmando a atualização do status.

**Q15:** É possível acompanhar quais pedidos foram alterados?  
**A15:** O retorno inclui informações sobre a quantidade de pedidos atualizados, permitindo a verificação da operação.

---

## 10. Método: alterarStatusLiberadoSeparacaParaEmSeparacao

### Validações do método alterarStatusLiberadoSeparacaParaEmSeparacao

1. **Acesso e Cliente:** Valida senha da central e identificação do cliente.
2. **Status Atual:** Confirma que o status atual é LIBERADO\_PARA\_SEPARACAO.
3. **Parametro Compromisso:** Verifica se o parâmetro compromissoSeparacao foi informado corretamente.
4. **Chamada à Fachada:** Encaminha a alteração para o GerenciadorPedidosFachada, que realiza a mudança para EM\_SEPARACAO.

### FAQ – alterarStatusLiberadoSeparacaParaEmSeparacao

**Q1:** Quais parâmetros são obrigatórios no método *alterarStatusLiberadoSeparacaParaEmSeparacao*?  
**A1:** São necessários a lista de pedidos, o compromisso de separação, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** O que acontece se o parâmetro compromissoSeparacao estiver ausente?  
**A2:** O método pode retornar erro ou falhar na alteração, pois esse parâmetro é necessário para a alteração de status.

**Q3:** Qual o status atual exigido para a alteração neste método?  
**A3:** Os pedidos devem estar com o status LIBERADO\_PARA\_SEPARACAO.

**Q4:** Qual o novo status que será aplicado?  
**A4:** O status dos pedidos será alterado para EM\_SEPARACAO.

**Q5:** Como é verificada a senha da central?  
**A5:** Por meio do cadastro da Empresa; se inválida, o método retorna “Erro: Senha invalida.”

**Q6:** O que acontece se o cliente não for identificado?  
**A6:** O método retorna erro informando que o cliente não está cadastrado.

**Q7:** A alteração é realizada individualmente para cada pedido?  
**A7:** Sim, a alteração é aplicada a cada pedido na lista que passar nas validações.

**Q8:** Como o GerenciadorPedidosFachada atua neste método?  
**A8:** Ele recebe os parâmetros e efetua a alteração de status, realizando as validações internas necessárias.

**Q9:** O que acontece se algum pedido não estiver no status esperado?  
**A9:** O GerenciadorPedidosFachada deverá retornar um erro para o(s) pedido(s) que não atenderem ao status atual exigido.

**Q10:** Qual é o retorno do método em caso de sucesso?  
**A10:** Um objeto ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e uma mensagem informando a alteração para EM\_SEPARACAO.

**Q11:** Como é tratada uma exceção durante o processo?  
**A11:** Se ocorrer uma exceção, o método captura o erro e retorna “Erro geral : alterarStatusLiberadoSeparacaParaEmSeparacao.”

**Q12:** O método permite alterar apenas pedidos com status LIBERADO\_PARA\_SEPARACAO?  
**A12:** Sim, a alteração só ocorre se o status atual for o esperado.

**Q13:** Quais validações de acesso são realizadas?  
**A13:** São verificadas a senha da central e a existência do cliente com base nos dados fornecidos.

**Q14:** Posso usar este método para alterar pedidos sem compromisso de separação?  
**A14:** Não, o parâmetro compromissoSeparacao é obrigatório para a transição para EM\_SEPARACAO.

**Q15:** Onde posso acompanhar os pedidos atualizados?  
**A15:** O retorno do método informa quantos pedidos foram atualizados, permitindo a verificação da operação.

---

## 11. Método: alterarStatusEmSeparacaoParaSeparados

### Validações do método alterarStatusEmSeparacaoParaSeparados

1. **Acesso e Cliente:** Valida a senha da central e identifica o cliente.
2. **Status Atual:** Verifica se o status atual é EM\_SEPARACAO.
3. **Chamada à Fachada:** Encaminha para o GerenciadorPedidosFachada para alterar o status para SEPARADOS.

### FAQ – alterarStatusEmSeparacaoParaSeparados

**Q1:** Quais parâmetros são obrigatórios no método *alterarStatusEmSeparacaoParaSeparados*?  
**A1:** É necessário informar a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status esperado dos pedidos para esta alteração?  
**A2:** Os pedidos devem estar no status EM\_SEPARACAO.

**Q3:** Qual o novo status aplicado por este método?  
**A3:** O status será alterado para SEPARADOS.

**Q4:** Como é validada a senha da central?  
**A4:** Através do cadastro da Empresa; se a senha for inválida, retorna “Erro: Senha invalida.”

**Q5:** O que ocorre se o cliente não for encontrado?  
**A5:** O método retorna erro informando que o cliente não está cadastrado.

**Q6:** Como a alteração de status é processada?  
**A6:** O GerenciadorPedidosFachada realiza a alteração após confirmar que os pedidos estão com o status EM\_SEPARACAO.

**Q7:** É possível que apenas alguns pedidos sejam alterados?  
**A7:** A alteração é aplicada a todos os pedidos que cumpram as validações; caso algum não esteja no status correto, a transação poderá ser abortada.

**Q8:** Qual é o retorno em caso de sucesso?  
**A8:** Retorna um ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e uma mensagem confirmando a alteração para SEPARADOS.

**Q9:** O método trata exceções?  
**A9:** Sim, exceções são capturadas e o método retorna “Erro geral : alterarStatusEmSeparacaoParaSeparados.”

**Q10:** É possível alterar o status se o pedido não estiver em EM\_SEPARACAO?  
**A10:** Não, o método só altera pedidos que estejam no status EM\_SEPARACAO.

**Q11:** Quais cadastros são invocados na alteração?  
**A11:** A operação é realizada internamente pelo GerenciadorPedidosFachada, que utiliza os cadastros de pedidos.

**Q12:** Há alguma validação sobre a lista de pedidos?  
**A12:** Sim, a lista deve conter pelo menos um pedido, caso contrário, a operação não é realizada.

**Q13:** Como é informada a quantidade de pedidos atualizados?  
**A13:** O retorno do método inclui a quantidade de pedidos que tiveram o status alterado.

**Q14:** O que devo fazer se a alteração não ocorrer?  
**A14:** Verifique se os pedidos estão no status correto e se os parâmetros de acesso (senha, CPF/CNPJ) estão corretos.

**Q15:** Posso usar este método para monitorar a separação dos pedidos?  
**A15:** Sim, ele é utilizado para marcar os pedidos que passaram da etapa de separação para o status SEPARADOS.

---

## 12. Método: alterarStatusSeparadosParaLiberadosRoteirizacao

### Validações do método alterarStatusSeparadosParaLiberadosRoteirizacao

1. **Acesso e Cliente:** Verifica senha da central e identificação do cliente.
2. **Status Atual:** Confirma que os pedidos estão com status SEPARADOS.
3. **Chamada à Fachada:** Encaminha para o GerenciadorPedidosFachada que altera o status para LIBERADOS\_PARA\_ROTEIRIZACAO.

### FAQ – alterarStatusSeparadosParaLiberadosRoteirizacao

**Q1:** Quais parâmetros são obrigatórios no método *alterarStatusSeparadosParaLiberadosRoteirizacao*?  
**A1:** É necessário informar a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status atual exigido para esta alteração?  
**A2:** Os pedidos devem estar no status SEPARADOS.

**Q3:** Qual o novo status aplicado?  
**A3:** O status será alterado para LIBERADOS\_PARA\_ROTEIRIZACAO.

**Q4:** Como é validada a senha da central?  
**A4:** A senha é verificada via cadastro da Empresa; se estiver incorreta, retorna “Erro: Senha invalida.”

**Q5:** O que ocorre se o cliente não for identificado?  
**A5:** Retorna erro informando que o cliente não está cadastrado.

**Q6:** Como é executada a alteração de status?  
**A6:** Por meio do GerenciadorPedidosFachada, que valida o status atual e efetua a mudança.

**Q7:** O método processa todos os pedidos da lista?  
**A7:** Sim, desde que todos os pedidos estejam no status SEPARADOS.

**Q8:** Qual é o retorno em caso de sucesso?  
**A8:** Um objeto ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem informando a alteração.

**Q9:** E se algum pedido não estiver no status SEPARADOS?  
**A9:** A alteração não será efetuada para aquele pedido e o método poderá retornar erro para a transação.

**Q10:** Como são tratadas exceções?  
**A10:** Exceções são capturadas e o método retorna “Erro geral : alterarStatusSeparadosParaLiberadosRoteirizacao.”

**Q11:** O método altera o status individualmente ou em lote?  
**A11:** A alteração é aplicada em lote a todos os pedidos que cumpram as condições.

**Q12:** Posso reexecutar o método caso a alteração falhe?  
**A12:** Sim, desde que os pedidos estejam novamente com o status SEPARADOS e os parâmetros de acesso estejam corretos.

**Q13:** Quais cadastro são utilizados durante a operação?  
**A13:** A operação é realizada pela fachada que utiliza internamente os cadastros relacionados aos pedidos.

**Q14:** Como posso confirmar a quantidade de pedidos alterados?  
**A14:** O retorno do método informa quantos pedidos tiveram seu status atualizado.

**Q15:** Este método pode ser usado para integrar com outros sistemas de roteirização?  
**A15:** Sim, ao liberar os pedidos para roteirização, o sistema permite que outras integrações processem a rota de entrega.

---

## 13. Método: alterarStatusNaoEntreguesParaLiberadoSeparacao

### Validações do método alterarStatusNaoEntreguesParaLiberadoSeparacao

1. **Acesso e Cliente:** Valida a senha da central e identifica o cliente.
2. **Status Atual:** Verifica se os pedidos estão com status NAO\_ENTREGUE.
3. **Chamada à Fachada:** Encaminha para o GerenciadorPedidosFachada, que altera o status para LIBERADO\_PARA\_SEPARACAO.

### FAQ – alterarStatusNaoEntreguesParaLiberadoSeparacao

**Q1:** Quais parâmetros são necessários no método *alterarStatusNaoEntreguesParaLiberadoSeparacao*?  
**A1:** É obrigatório informar a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status atual exigido para a alteração?  
**A2:** Os pedidos devem estar com o status NAO\_ENTREGUE.

**Q3:** Qual o novo status que será aplicado?  
**A3:** O novo status será LIBERADO\_PARA\_SEPARACAO.

**Q4:** Como é validada a senha da central?  
**A4:** Utilizando o cadastro da Empresa; se a senha estiver incorreta, retorna “Erro: Senha invalida.”

**Q5:** O que ocorre se o cliente não for identificado?  
**A5:** O método retorna erro informando que o cliente não está cadastrado.

**Q6:** Qual é o papel do GerenciadorPedidosFachada neste método?  
**A6:** Ele centraliza a lógica de alteração, validando o status atual e efetuando a mudança.

**Q7:** Se algum pedido não estiver com status NAO\_ENTREGUE, o que acontece?  
**A7:** A alteração só será efetuada para os pedidos que cumpram a condição; os demais gerarão erro.

**Q8:** Qual o retorno em caso de sucesso?  
**A8:** Um objeto ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem confirmando a atualização.

**Q9:** Como são tratadas exceções?  
**A9:** Em caso de exceção, o método retorna “Erro geral : alterarStatusNaoEntreguesParaLiberadoSeparacao.”

**Q10:** A alteração é feita individualmente ou em lote?  
**A10:** A alteração é aplicada em lote para todos os pedidos válidos na lista.

**Q11:** É possível reexecutar a operação se ocorrer um erro?  
**A11:** Sim, desde que os pedidos estejam corretamente com o status NAO\_ENTREGUE e os dados de acesso estejam corretos.

**Q12:** Quais cadastros são utilizados na alteração?  
**A12:** A alteração é realizada pela fachada, que utiliza os cadastros de pedidos conforme necessário.

**Q13:** O método permite acompanhar quantos pedidos foram atualizados?  
**A13:** Sim, o retorno inclui a quantidade de pedidos que tiveram seu status alterado.

**Q14:** Existe alguma verificação especial para a lista de pedidos?  
**A14:** Sim, a lista não pode ser nula e deve conter ao menos um pedido.

**Q15:** Como posso confirmar se a alteração foi realizada corretamente?  
**A15:** Verifique a mensagem de retorno e a quantidade de pedidos atualizados informados no objeto de resultado.

---

## 14. Método: alterarStatusNaoEntreguesParaLiberadoRoteirizacao

### Validações do método alterarStatusNaoEntreguesParaLiberadoRoteirizacao

1. **Acesso e Cliente:** Valida senha da central e identificação do cliente.
2. **Status Atual:** Confirma que os pedidos estão com status NAO\_ENTREGUE.
3. **Chamada à Fachada:** Encaminha para o GerenciadorPedidosFachada que altera o status para LIBERADOS\_PARA\_ROTEIRIZACAO.

### FAQ – alterarStatusNaoEntreguesParaLiberadoRoteirizacao

**Q1:** Quais parâmetros são necessários no método *alterarStatusNaoEntreguesParaLiberadoRoteirizacao*?  
**A1:** É necessário fornecer a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status atual exigido para a alteração?  
**A2:** Os pedidos devem estar com o status NAO\_ENTREGUE.

**Q3:** Qual o novo status aplicado por este método?  
**A3:** O status será alterado para LIBERADOS\_PARA\_ROTEIRIZACAO.

**Q4:** Como é validada a senha da central?  
**A4:** A senha é validada utilizando o cadastro da Empresa; se inválida, retorna “Erro: Senha invalida.”

**Q5:** O que ocorre se o cliente não for identificado?  
**A5:** O método retorna erro indicando que o cliente não está cadastrado.

**Q6:** Qual é o papel do GerenciadorPedidosFachada neste processo?  
**A6:** Ele é responsável por validar o status atual e realizar a alteração para LIBERADOS\_PARA\_ROTEIRIZACAO.

**Q7:** Se algum pedido não estiver com status NAO\_ENTREGUE, o que acontece?  
**A7:** Apenas os pedidos com status NAO\_ENTREGUE serão alterados; os demais serão ignorados ou geram erro.

**Q8:** Qual é o retorno do método em caso de sucesso?  
**A8:** Um objeto ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem confirmando a atualização.

**Q9:** Como o método lida com exceções?  
**A9:** Se ocorrer uma exceção, o método captura e retorna “Erro geral : alterarStatusNaoEntreguesParaLiberadoRoteirizacao.”

**Q10:** A operação é aplicada a cada pedido individualmente?  
**A10:** A alteração é feita em lote para todos os pedidos que atendam às condições.

**Q11:** Quais validações de acesso são realizadas?  
**A11:** São validadas a senha da central e a identificação do cliente.

**Q12:** O método permite reexecutar a alteração se houver erro?  
**A12:** Sim, desde que os pedidos estejam com o status correto e os parâmetros estejam corretos.

**Q13:** Quais cadastros são utilizados nesta operação?  
**A13:** A operação é realizada pela fachada, que utiliza internamente os cadastros de pedidos.

**Q14:** É possível acompanhar quantos pedidos foram atualizados?  
**A14:** Sim, o objeto de resultado informa a quantidade de pedidos alterados.

**Q15:** Qual a principal diferença entre este método e o anterior de não entregues para separação?  
**A15:** A diferença está no status de destino: este método altera para LIBERADOS\_PARA\_ROTEIRIZACAO, enquanto o outro altera para LIBERADO\_PARA\_SEPARACAO.

---

## 15. Método: cancelar\_LiberadoRoteirizacao

### Validações do método cancelar\_LiberadoRoteirizacao

1. **Acesso e Cliente:** Valida a senha da central e identifica o cliente.
2. **Status Atual:** Verifica que os pedidos estão com status LIBERADOS\_PARA\_ROTEIRIZACAO.
3. **Chamada à Fachada:** Chama o GerenciadorPedidosFachada para reverter o status para SEPARADOS.

### FAQ – cancelar\_LiberadoRoteirizacao

**Q1:** Quais parâmetros são obrigatórios no método *cancelar\_LiberadoRoteirizacao*?  
**A1:** É necessário fornecer a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status atual esperado para cancelar a roteirização?  
**A2:** Os pedidos devem estar com status LIBERADOS\_PARA\_ROTEIRIZACAO.

**Q3:** Qual o novo status definido pelo cancelamento?  
**A3:** O status é revertido para SEPARADOS.

**Q4:** Como é validada a senha da central?  
**A4:** Utilizando o cadastro da Empresa; se a senha estiver errada, retorna “Erro: Senha invalida.”

**Q5:** O que acontece se o cliente não for identificado?  
**A5:** O método retorna erro indicando que o cliente não está cadastrado.

**Q6:** Qual o papel do GerenciadorPedidosFachada nesta operação?  
**A6:** Ele é chamado para efetuar a alteração de status de LIBERADOS\_PARA\_ROTEIRIZACAO para SEPARADOS.

**Q7:** Se algum pedido não estiver no status LIBERADOS\_PARA\_ROTEIRIZACAO, o que ocorre?  
**A7:** Apenas os pedidos com o status esperado serão alterados; os demais gerarão erro ou serão ignorados.

**Q8:** Qual é o retorno esperado em caso de sucesso?  
**A8:** Um ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem informando a reversão do status.

**Q9:** Como são tratadas exceções neste método?  
**A9:** Exceções são capturadas e o método retorna “Erro geral : cancelar\_LiberadoRoteirizacao.”

**Q10:** O método realiza a alteração em lote?  
**A10:** Sim, a alteração é aplicada a todos os pedidos que atendam às condições de status.

**Q11:** Quais cadastros são envolvidos na alteração?  
**A11:** A operação é realizada pela fachada que utiliza internamente os cadastros de pedidos.

**Q12:** É possível reexecutar o cancelamento se ocorrer erro?  
**A12:** Sim, contanto que os pedidos estejam novamente no status LIBERADOS\_PARA\_ROTEIRIZACAO e os parâmetros estejam corretos.

**Q13:** Como saber quantos pedidos foram afetados?  
**A13:** O objeto de resultado informa a quantidade de pedidos atualizados.

**Q14:** Existe alguma validação adicional para a lista de pedidos?  
**A14:** A lista não pode ser nula e deve conter pelo menos um pedido, caso contrário a operação não é realizada.

**Q15:** Para que situação o método *cancelar\_LiberadoRoteirizacao* deve ser usado?  
**A15:** Ele é utilizado para reverter a liberação para roteirização, retornando os pedidos para o status SEPARADOS.

---

## 16. Método: cancelar\_Separados

### Validações do método cancelar\_Separados

1. **Acesso e Cliente:** Valida a senha da central e identifica o cliente.
2. **Status Atual:** Verifica que os pedidos estão com status SEPARADOS.
3. **Chamada à Fachada:** Chama o GerenciadorPedidosFachada para alterar o status para EM\_SEPARACAO.

### FAQ – cancelar\_Separados

**Q1:** Quais parâmetros são obrigatórios no método *cancelar\_Separados*?  
**A1:** É necessário informar a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status atual dos pedidos para que o cancelamento seja aplicado?  
**A2:** Os pedidos devem estar com status SEPARADOS.

**Q3:** Qual novo status é definido ao cancelar a separação?  
**A3:** O status será alterado para EM\_SEPARACAO.

**Q4:** Como é validada a senha da central?  
**A4:** Através do cadastro da Empresa; se inválida, retorna “Erro: Senha invalida.”

**Q5:** O que acontece se o cliente não for identificado?  
**A5:** O método retorna um erro informando que o cliente não está cadastrado.

**Q6:** Qual é o papel do GerenciadorPedidosFachada neste cancelamento?  
**A6:** Ele processa a alteração de status, revertendo de SEPARADOS para EM\_SEPARACAO.

**Q7:** O método altera todos os pedidos da lista?  
**A7:** Sim, desde que os pedidos estejam com o status SEPARADOS.

**Q8:** Qual o retorno em caso de sucesso?  
**A8:** Um objeto ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem informando a alteração.

**Q9:** Como são tratadas exceções?  
**A9:** Exceções são capturadas e o método retorna “Erro geral : cancelar\_Separados.”

**Q10:** É possível cancelar apenas alguns pedidos?  
**A10:** A alteração é aplicada em lote, porém somente os pedidos com status SEPARADOS serão afetados.

**Q11:** Quais cadastros são utilizados nesta operação?  
**A11:** A operação utiliza a fachada, que invoca os cadastros de pedidos conforme necessário.

**Q12:** Posso reexecutar o cancelamento se houver erro?  
**A12:** Sim, desde que os pedidos estejam no status SEPARADOS e os parâmetros estejam corretos.

**Q13:** Como confirmar a quantidade de pedidos alterados?  
**A13:** O objeto de resultado informa quantos pedidos tiveram seu status modificado.

**Q14:** Há alguma validação especial para a lista de pedidos?  
**A14:** A lista deve ser não nula e conter pelo menos um pedido.

**Q15:** Qual é o cenário de uso do método *cancelar\_Separados*?  
**A15:** Ele é usado para reverter pedidos que já foram marcados como SEPARADOS, retornando-os para o status EM\_SEPARACAO.

---

## 17. Método: cancelar\_EmSeparacao

### Validações do método cancelar\_EmSeparacao

1. **Acesso e Cliente:** Valida a senha da central e identifica o cliente.
2. **Status Atual:** Verifica que os pedidos estão com status EM\_SEPARACAO.
3. **Chamada à Fachada:** Chama o GerenciadorPedidosFachada para alterar o status para LIBERADO\_PARA\_SEPARACAO.

### FAQ – cancelar\_EmSeparacao

**Q1:** Quais parâmetros são obrigatórios no método *cancelar\_EmSeparacao*?  
**A1:** É necessário informar a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status atual exigido para este cancelamento?  
**A2:** Os pedidos devem estar com status EM\_SEPARACAO.

**Q3:** Qual é o novo status aplicado?  
**A3:** O status é revertido para LIBERADO\_PARA\_SEPARACAO.

**Q4:** Como o método valida a senha da central?  
**A4:** Utilizando o cadastro da Empresa; se a senha for inválida, retorna “Erro: Senha invalida.”

**Q5:** O que ocorre se o cliente não for identificado?  
**A5:** Retorna erro informando que o cliente não está cadastrado.

**Q6:** Qual a função do GerenciadorPedidosFachada aqui?  
**A6:** Ele executa a alteração de status, revertendo de EM\_SEPARACAO para LIBERADO\_PARA\_SEPARACAO.

**Q7:** O método opera em lote?  
**A7:** Sim, ele altera o status de todos os pedidos na lista que atendem à condição.

**Q8:** Qual é o retorno em caso de sucesso?  
**A8:** Um ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem confirmando a alteração.

**Q9:** Como são tratadas exceções?  
**A9:** Exceções são capturadas e o método retorna “Erro geral : cancelar\_EmSeparacao.”

**Q10:** O que fazer se algum pedido não estiver no status EM\_SEPARACAO?  
**A10:** Somente os pedidos com o status correto serão alterados; os demais gerarão erro.

**Q11:** Quais cadastros são utilizados na operação?  
**A11:** A operação é feita pela fachada que utiliza os cadastros de pedidos conforme necessário.

**Q12:** É possível reexecutar o cancelamento se ocorrer erro?  
**A12:** Sim, contanto que os pedidos estejam novamente no status EM\_SEPARACAO e os parâmetros estejam corretos.

**Q13:** Como confirmar quantos pedidos foram alterados?  
**A13:** O objeto de resultado informa a quantidade de pedidos atualizados.

**Q14:** Há alguma verificação extra na lista de pedidos?  
**A14:** Sim, a lista não pode ser nula e deve conter pelo menos um pedido.

**Q15:** Qual cenário de uso se aplica ao método *cancelar\_EmSeparacao*?  
**A15:** Ele é usado para reverter a operação de separação, retornando os pedidos para LIBERADO\_PARA\_SEPARACAO.

---

## 18. Método: cancelar\_LiberadosSeparacao

### Validações do método cancelar\_LiberadosSeparacao

1. **Acesso e Cliente:** Verifica a senha da central e identifica o cliente.
2. **Status Atual:** Confirma que os pedidos estão com status LIBERADO\_PARA\_SEPARACAO.
3. **Chamada à Fachada:** Chama o GerenciadorPedidosFachada para alterar o status para VENDA\_FINALIZADA.

### FAQ – cancelar\_LiberadosSeparacao

**Q1:** Quais parâmetros são obrigatórios no método *cancelar\_LiberadosSeparacao*?  
**A1:** São necessários a lista de pedidos, CPF/CNPJ, senha do cliente e senha da central.

**Q2:** Qual o status atual exigido para o cancelamento?  
**A2:** Os pedidos devem estar com status LIBERADO\_PARA\_SEPARACAO.

**Q3:** Qual o novo status após o cancelamento?  
**A3:** O status será alterado para VENDA\_FINALIZADA.

**Q4:** Como o método valida a senha da central?  
**A4:** A senha é validada pelo cadastro da Empresa; se estiver errada, retorna “Erro: Senha invalida.”

**Q5:** O que acontece se o cliente não for identificado?  
**A5:** O método retorna um erro indicando que o cliente não está cadastrado.

**Q6:** Qual a função do GerenciadorPedidosFachada neste método?  
**A6:** Ele executa a alteração do status de LIBERADO\_PARA\_SEPARACAO para VENDA\_FINALIZADA.

**Q7:** O método altera o status de todos os pedidos da lista?  
**A7:** Sim, desde que todos os pedidos estejam com o status LIBERADO\_PARA\_SEPARACAO.

**Q8:** Qual é o retorno em caso de sucesso?  
**A8:** Um objeto ResultadoAlteracaoStatusPedidosVO com sucesso verdadeiro e mensagem informando a alteração.

**Q9:** Como são tratadas exceções neste método?  
**A9:** Exceções são capturadas e o método retorna “Erro geral : cancelar\_LiberadosSeparacao.”

**Q10:** É possível cancelar parcialmente os pedidos?  
**A10:** Apenas os pedidos que estiverem com o status correto serão alterados; os demais serão ignorados ou causarão erro.

**Q11:** Quais cadastros são utilizados na operação?  
**A11:** A operação utiliza a fachada, que invoca os cadastros de pedidos conforme necessário.

**Q12:** Posso reexecutar o cancelamento se ocorrer erro?  
**A12:** Sim, contanto que os pedidos estejam novamente no status LIBERADO\_PARA\_SEPARACAO e os parâmetros estejam corretos.

**Q13:** Como saber quantos pedidos foram atualizados?  
**A13:** O objeto de resultado retorna a quantidade de pedidos cujo status foi modificado.

**Q14:** Há alguma verificação específica para a lista de pedidos?  
**A14:** A lista deve ser não nula e conter ao menos um pedido, ou a operação não será realizada.

**Q15:** Qual é o cenário de uso do método *cancelar\_LiberadosSeparacao*?  
**A15:** Este método é usado para cancelar a liberação para separação, revertendo os pedidos para o status VENDA\_FINALIZADA.

---

# Considerações Finais

Cada método WebService da classe *ImportadorPedidos* segue um padrão de validação de acesso (senha da central e identificação do cliente) antes de executar a lógica específica de cada operação – seja conversão de CEP, importação de pedidos, consulta de status, listagens ou alterações de status. As FAQs aqui apresentadas visam responder dúvidas comuns sobre as validações, parâmetros obrigatórios e comportamentos esperados de cada método.