Pular para conteúdo

Fluxo de Dados do Retira

Visao Geral

O Retira e um documento impresso utilizado pela expedicao para controle de retirada de mercadorias. Este documento exibe informacoes sobre os produtos, pedidos e dados de conferencia.

Esta documentacao descreve de onde vem os dados do "Retira" (DestinatarioRetirada) e como eles fluem pelo sistema.

Fluxo de Dados

┌─────────────────┐     ┌──────────────────────┐     ┌───────────────────┐
│     PEDIDO      │────▶│  PRE-DOCUMENTO       │────▶│  DOCUMENTO        │
│                 │     │  FISCAL              │     │  FISCAL           │
├─────────────────┤     ├──────────────────────┤     ├───────────────────┤
│ DestinatarioId  │     │ DestinatarioId       │     │ DestinatarioId    │
│ EnderecoId      │     │ EnderecoId           │     │ DestinatarioRetiradaId
│                 │     │                      │     │ DestinatarioEntregaId
└─────────────────┘     └──────────────────────┘     └───────────────────┘

Etapa 1: Pedido (Origem dos Dados)

Tela de Preenchimento

  • Area: Comercial
  • Controller: PedidoController
  • View: Areas/Comercial/Views/Pedido/Shared/_DestinatarioPartial.cshtml

Campos Preenchidos

Campo Descricao
DestinatarioId Cliente/Pessoa que esta comprando
EnderecoId Endereco do destinatario selecionado
DestinoMercadoriaId Destino da mercadoria
UsoMercadoriaId Uso da mercadoria (filtrado por CNAE)
CertificadoMercadoriaId Tipo de certificado

Como Funciona

  1. Usuario busca o destinatario por CPF/CNPJ ou Nome
  2. Seleciona o destinatario na lista
  3. Escolhe o endereco de entrega
  4. Preenche informacoes adicionais (destino, uso, certificado)

Etapa 2: Pre-Documento Fiscal (Intermediario)

Tela de Preenchimento

  • Area: Faturamento
  • Controller: PreDocumentoFiscalController
  • View: Areas/Faturamento/Views/PreDocumentoFiscal/GerarPreDocumentoFiscal.cshtml

Dados Herdados

O pre-documento fiscal herda os dados do pedido:

// PreDocumentoFiscalDto.cs
public int DestinatarioId { get; set; }
public int EnderecoId { get; set; }

Visualizacao

Os dados do destinatario sao exibidos em: Areas/Faturamento/Views/PreDocumentoFiscal/Shared/_PreDocumentoFiscalDestinatarioPartial.cshtml

Campos Somente Leitura

Na tela de pre-documento fiscal, os campos do destinatario (Codigo, Nome/Razao Social, CPF/CNPJ) sao exibidos como somente leitura. Apenas o endereco pode ser alterado se houver permissao.

Etapa 3: Documento Fiscal (Destino Final)

Criacao Automatica

Quando o documento fiscal e gerado a partir do pre-documento, o sistema copia automaticamente os dados do destinatario para tres campos:

Arquivo: src/Nelmetais.SGE.Business/Services/Fiscal/DocumentoFiscalService.cs Linhas: 2217-2225

DestinatarioId = preDocumentoFiscal.DestinatarioId,
DestinatarioEntregaId = preDocumentoFiscal.DestinatarioId,
DestinatarioRetiradaId = preDocumentoFiscal.DestinatarioId,  // RETIRA
NomeDestinatario = destinatario?.NomeRazaoSocial,
NomeDestinatarioEntrega = destinatario?.NomeRazaoSocial,
NomeDestinatarioRetirada = destinatario?.NomeRazaoSocial,    // RETIRA
EnderecoId = preDocumentoFiscal.EnderecoId,
EnderecoEntregaId = preDocumentoFiscal.EnderecoId,
EnderecoRetiradaId = preDocumentoFiscal.EnderecoId,

Modelo DocumentoFiscal

Arquivo: src/Nelmetais.SGE.Business/Models/Fiscal/DocumentoFiscal.cs

Campo Tipo Descricao
DestinatarioRetiradaId int? FK para Pessoa que retira
DestinatarioRetirada Pessoa? Navegacao para entidade Pessoa
NomeDestinatarioRetirada string? Nome da pessoa que retira
EnderecoRetiradaId int? FK para Endereco de retirada
EnderecoRetirada Endereco? Navegacao para entidade Endereco

Impressao do Retira

Localizacao

  • Area: Faturamento
  • Controller: NfSaidaController
  • Action: ImprimirRetira
  • View: Areas/Faturamento/Views/NfSaida/ImprimirRetira.cshtml

Acesso

O botao "Retiras" esta disponivel na lista de NF Saida:

Arquivo: Areas/Faturamento/Views/NfSaida/Index.cshtml (linha 74)

<a class="dropdown-item" target="_blank"
   asp-action="ImprimirRetira" asp-route-id="@item.Id">Retiras</a>

Conteudo do Documento

O documento "Retira" exibe:

  1. Cabecalho da Empresa
  2. Nome da empresa
  3. Natureza da operacao
  4. Endereco e telefone

  5. Dados dos Produtos

  6. Codigo do produto
  7. Descricao
  8. Unidade
  9. Peso em KG

  10. Informacoes Adicionais

  11. Numero do pedido
  12. Nome do vendedor
  13. Dados adicionais
  14. Zona de entrega

  15. Assinaturas

  16. Conferencia Faturamento
  17. Conferencia Expedicao
  18. Responsavel Expedicao

Arquivos Relacionados

Models

Arquivo Descricao
Business/Models/Fiscal/DocumentoFiscal.cs Entidade principal com campos de retirada
Business/Models/Cadastros/Pessoa.cs Entidade Pessoa referenciada
Business/Dtos/Fiscal/PreDocumentoFiscalDto.cs DTO do pre-documento

Views

Arquivo Descricao
WebApp/Areas/Comercial/Views/Pedido/Shared/_DestinatarioPartial.cshtml Formulario de destinatario no pedido
WebApp/Areas/Faturamento/Views/PreDocumentoFiscal/Shared/_PreDocumentoFiscalDestinatarioPartial.cshtml Visualizacao no pre-documento
WebApp/Areas/Faturamento/Views/NfSaida/ImprimirRetira.cshtml Template de impressao

Services

Arquivo Descricao
Business/Services/Fiscal/DocumentoFiscalService.cs Logica de criacao do documento fiscal

Repositories

Arquivo Descricao
Data/Repositories/Comercial/PedidoRepository.cs Metodo ObterPedidoPreDocumentoFiscal
Data/Repositories/Fiscal/DocumentoFiscalRepository.cs Acesso a dados do documento fiscal

Consideracoes Importantes

Dados Automaticos

Os dados do "Retira" (DestinatarioRetirada) sao preenchidos automaticamente pelo sistema. Nao existe uma tela especifica para editar esses dados de forma independente.

Origem Unica

O DestinatarioRetirada e sempre uma copia do Destinatario do pedido. Se for necessario um destinatario de retirada diferente, seria necessario implementar uma nova funcionalidade.

Diagrama de Entidades

┌─────────────────────────────────────────────────────────────┐
│                    DocumentoFiscal                          │
├─────────────────────────────────────────────────────────────┤
│ DestinatarioId ──────────────────────┐                      │
│ DestinatarioRetiradaId ──────────────┼──▶ Pessoa            │
│ DestinatarioEntregaId ───────────────┘                      │
│                                                             │
│ EnderecoId ──────────────────────────┐                      │
│ EnderecoRetiradaId ──────────────────┼──▶ Endereco          │
│ EnderecoEntregaId ───────────────────┘                      │
│                                                             │
│ NomeDestinatario                                            │
│ NomeDestinatarioRetirada                                    │
│ NomeDestinatarioEntrega                                     │
└─────────────────────────────────────────────────────────────┘