Desvinculação de Contrato x Fatura
DesvinculacaoContratoXFatura
Rotina do módulo Financeiro, dentro do submenu “Comex”, que permite desvincular faturas (títulos a receber) que estavam vinculadas a um contrato de câmbio.
Visão Geral
Rotina do módulo Financeiro, dentro do submenu “Comex”, que permite desvincular faturas (títulos a receber) que estavam vinculadas a um contrato de câmbio. A desvinculação não apaga o vínculo original: o sistema registra uma nova operação de desvinculação, com o valor correspondente, mantendo o histórico completo de vinculações e desvinculações de cada fatura ao contrato.
Endpoints
GET /DesvinculacaoContratoXFatura/ListarTitulos
Lista os títulos (faturas) elegíveis para desvinculação de um contrato de câmbio, aplicando filtro de busca opcional.
Permissão: ação somente leitura sem entrada própria — coberta pela permissão de acesso à rotina “EditViewDeDesvinculacaoDeContratoXFatura” (ID 1588).
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| extGrid | ConfiguracaoDeGrid | Sim | Paginação/ordenação da grid (página inicial, quantidade de registros) |
| codigoContrato | string | Sim | Código/ID do contrato de câmbio cujas faturas vinculadas serão listadas |
| valorDeConsulta | string | Não | Texto livre para filtro adicional sobre as faturas |
“` GET /DesvinculacaoContratoXFatura/ListarTitulos?codigoContrato=000004461&valorDeConsulta= “`
“`json { “total”: 2, “rows”: [ { “IdDaFatura”: “…”, “ValorVinculadoMoeda”: 0 } ] } “`
POST /DesvinculacaoContratoXFatura/Salvar
Ação principal: recebe uma ou mais faturas a desvincular de um contrato de câmbio e registra a desvinculação.
Permissão: “DesvinculacaoContratoXFatura/Salvar” (ID 3057)
Parâmetros:
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| dto | DTODeContratoCambio | Sim | Objeto contendo o ID do contrato e a lista de faturas (Faturas) a desvincular, cada uma com IdDaFatura e ValorVinculadoMoeda |
“` POST /DesvinculacaoContratoXFatura/Salvar { “ID”: “000004461”, “Faturas”: [ { “IdDaFatura”: “000012345”, “ValorVinculadoMoeda”: 1500.00 } ] } “`
“`json { “success”: true, “retorno”: { “codigoContrato”: “000004461”, “valorMoeda”: 50000.00, “valorVinculado”: 30000.00, “valorSaldo”: 20000.00, “faturas”: [ { “IdDaFatura”: “000012345”, “ValorVinculado”: 1500.00 } ] } } “`
Se a lista de faturas informada (dto.Faturas) estiver vazia ou nula, a ação não executa nenhuma desvinculação e retorna erro (ver Regras de Negócio).
POST /DesvinculacaoContratoXFatura/Imprimir
Ação de suporte à impressão do comprovante de câmbio: garante que existe, na pasta de documentos do cliente, uma cópia do modelo de relatório “ComprovanteCambio.rpt” (Crystal Reports), copiando o modelo padrão caso ainda não exista. Não altera nenhum dado de negócio.
Permissão: “DesvinculacaoContratoXFatura/Imprimir” (ID 3058)
Parâmetros: nenhum.
“` POST /DesvinculacaoContratoXFatura/Imprimir “`
“`json { “success”: true } “`
Modelos de Dados
DTODeContratoCambio (parâmetro de Salvar)
| Campo | Tipo | Descrição |
|---|---|---|
| ID | string | Código do contrato de câmbio |
| Faturas | List\<DTODeContratoFatura\> | Lista de faturas a desvincular |
DTODeContratoFatura (item de Faturas)
| Campo | Tipo | Descrição |
|---|---|---|
| IdDaFatura | string | Código do título/fatura a ser desvinculado |
| ValorVinculado | decimal | Valor a desvincular, na moeda de origem |
| ValorVinculadoMoeda | decimal | Valor a desvincular, convertido na moeda do contrato |
Retorno de Salvar (composição)
| Campo | Origem | Descrição |
|---|---|---|
| codigoContrato | ProjecaoDeContratoFatura.NumeroDoContrato | Número do contrato de câmbio |
| valorMoeda | ProjecaoDeContratoFatura.ValorContratoMoeda | Valor total do contrato na moeda |
| valorVinculado | ProjecaoDeContratoFatura.ValorVinculadoMoeda | Valor total ainda vinculado ao contrato após a operação |
| valorSaldo | ProjecaoDeContratoFatura.Saldo | Saldo disponível do contrato |
| faturas | ProjecaoDeContratoFaturaTitulo (lista) | Faturas vinculadas ao contrato, filtradas pelas faturas informadas na requisição |
Regras de Negócio
A ação Salvar é implementada por “IServicoDeContratosCambio.DesvincularFaturas”, em ATAK.ServicoDeAplicacao.Implementacao\Exportacao\ContratosCambio\ServicoDeContratoCambio.cs.
- Nenhuma fatura informada: se dto.Faturas estiver vazio ou nulo, a operação não é executada.
- Contrato não encontrado: se o contrato indicado por dto.ID não existir na base, a operação não é executada.
- Para cada fatura informada, o sistema localiza o título (fatura) correspondente. Se não for encontrado:
- Se a fatura possuir valor a vincular informado (ValorVinculadoMoeda > 0), o sistema valida, nesta ordem:
- O documento da fatura deve ser do tipo “FAT” (Fatura). Caso contrário:Mensagem exibida: “Não foi possível obter Fatura. Apenas faturas do documento FAT podem ser vinculadas. Fatura incorreta : {0}. Informe faturas do documento FAT para operação.”
- A fatura deve possuir moeda cadastrada. Caso contrário:Mensagem exibida: “Não foi possível obter Fatura. Fatura {0} Não possui moeda. Informe fatura que possui moeda ou edite a fatura desejada.”
- O valor a vincular não pode ser maior que o valor do título. Caso contrário:Mensagem exibida: “Não foi possível obter Fatura. Valor a vincular da Fatura {0} é maior que o valor do título. Informe valor a vincular que não seje maior que o valor do títulos.”
- A moeda da fatura deve ser igual à moeda do contrato de câmbio. Caso contrário:Mensagem exibida: “Não foi possível obter Fatura. Moeda da fatura {0} é diferente da moeda do contrato. Moeda do contrato : {1} Moeda da fatura : {2}. Infome moeda da fatura igual a moeda do contrato.”
- O sistema soma o valor já vinculado à fatura em outras operações (considerando vinculações menos desvinculações já registradas) e valida que o total, somado ao valor desta operação, não ultrapasse o valor do título. Caso contrário:Mensagem exibida: “Não foi possível validar valor da fatura. Valor informado para Fatura {0} ultrapassa o valor do título, Saldo disponível : {1} – {2}. Informe um valor para fatura que não ultrapasse o valor do título.”
- Se a fatura NÃO possuir valor a vincular informado (ValorVinculadoMoeda ausente/zero):
- Validação do valor a desvincular: o sistema localiza o vínculo original (registro com Operacao = Vinculação) da fatura com o contrato e valida que o valor informado para desvincular não é maior que o valor originalmente vinculado. Caso contrário:
- Efeito da desvinculação: passadas todas as validações, para cada fatura o sistema adiciona um novo registro de ContratoFatura ao contrato, com Operacao = Desvinculacao e o valor informado (o registro original de vinculação não é removido — o histórico é mantido por soma de operações). Em seguida, a transação é persistida (“GerenciadorDeUnidadeDeTrabalho.Corrente.Commit()”).
- Se nenhuma fatura for informada na requisição do controller (Salvar) — nível de controller, antes mesmo de chamar o serviço:
- Composição da resposta: após a desvinculação, o sistema consulta novamente o contrato (valor total, valor vinculado, saldo) e a lista de faturas vinculadas ao contrato (considerando vinculações e desvinculações já registradas) para retornar ao usuário o estado atualizado.
Permissões
Acesso à rotina: “EditViewDeDesvinculacaoDeContratoXFatura” (ID 1588) — submenu do menu “Comex” (ID 1585, Financeiro)
| Ação | Permissão | ID |
|---|---|---|
| Salvar | “DesvinculacaoContratoXFatura/Salvar” | 3057 |
| Imprimir | “DesvinculacaoContratoXFatura/Imprimir” | 3058 |
| ListarTitulos (leitura) | coberta por “EditViewDeDesvinculacaoDeContratoXFatura” | — |