PROC002 - Nova DC-e
. Introdução
Essa documentação visa descrever o cadastro de um novo tipo de documento no GerencieAqui, a DC-e (Declaração de Conteúdo Eletrônica).
2. Processos
|
Processo |
Envolvidos |
Dados de Entrada |
Dados de Saída |
| PROC000 - Criação das Configurações Associadas | Parâmetros de configuração |
Sistema habilitado para emissão |
|
| PROC001 - Listagem de DC-e | Listagem das DC-e lançadas |
|
|
| PROC002 - Nova DC-e | - |
Novas DC-e ou edição de DC-e já lançadas |
DC-e cadastrada ou alterada |
Processos Relacionados
PROC000 - Criação das configurações associadas
Especificação Funcional
PROC002 Novo DC-e
Protótipo de Tela:
Imagem I - Protótipo de tela para o lançamento de uma nova DC-e.
Descrição dos Campos:
Regras de Interface:
1. Destinatário: placeholder: "Insira o nome do Destinatário". A partir da terceira letra digitada, deve ser exibida a lista de 10 clientes possíveis para seleção.
2. Data Emissão: valor padrão: data considera como "hoje".
3. Emitente: placeholder: "Insira o nome do Emitente". A partir da terceira letra digitada, deve ser exibida a lista de 10 clientes possíveis para seleção. Esse campo somente será renderizado quando o tipo de emissor mencionado no PROC000 - Criação das configurações associadas for "Transportadora".
5. Código de Barras: placeholder: “Insira o código de barras”. A partir da inserção ou leitura de um código de barras existente, as informações vinculadas (nome e valor unitário) ao cadastro do produto inserido deverão ser atualizadas em tela.
6. Nome: placeholder: "Insira o nome do Produto". A partir da terceira letra digitada, deve ser exibida a lista de 10 produtos possíveis para seleção.
7. Quant. Estoque: deve exibir o saldo de estoque do produto.
8. Grade: desabilitado por padrão. Deve ser habilitado somente quando um produto vinculado a uma variação for inserido. Nesse caso, o placeholder se torna "Selecione" e na combobox é possível selecionar qual a grade vinculada, Caso o produto tenha lote, deve também ser renderizado o campo (antes do valor total) de escolha do lote associado para baixa em estoque.
9. Quantidade: placeholder: 0,0.
10. Valor Unitário: placeholder: 0,0.
11. Valor Total: placeholder: 0,0. Campo desabilitado por padrão.
12. Informações Complementares
: o clique no botão deve realizar a abertura da dialog para inserção de informações complementares sobre o produto específico. O tamanho do campo é de 500 caracteres e a informação só a é salva com o clique no botão "Salvar". (O layout está antigo, seguir o novo padrão).

Imagem II - Protótipo de tela para a inserção de informações adicionais do produto.
12. Inserir: o botão inserir deve realizar a validação dos campos obrigatórios para a inserção de um produto. Caso algum campo não esteja preenchido, exibir uma mensagem de Erro (vermelha) com o campo correspondente. Exemplo: Erro! Informe [O/A CAMPO X]. Caso todos os campos obrigatórios estejam preenchidos, o produto deve inserido na grid de listagem de produtos inseridos.
13. Editar
: o clique no botão de editar dialog de edição de quantidade e valor unitário do produto inserido. A informação só a é salva com o clique no botão "Salvar". (O layout está antigo, seguir o novo padrão).

Imagem III - Protótipo de tela para a edição dos valores do produto.
14. Excluir
: o clique no botão deve exibir a mensagem de confirmação "Você realmente deseja excluir este produto?" Caso sim, o produto deve ser removido da grid. Caso não, nada deverá ser feito,
15. Modalidade de Transporte: valor padrão: Próprio.
16. CNPJ da Transportadora: campo desabilitado por padrão. Deve estar habilitado somente quando a modalidade de transporte selecionada for "Terceiros".
17. Total dos Produtos: exibe o somatório total de todos os produtos inseridos.
18. Total da DC-e: exibe o somatório total de todos os produtos inseridos (total da DC-e).
19. Voltar: o clique no botão "Voltar" deve retornar a página de listagem.
20. Novo: o clique no botão deve recarregar a página iniciando uma nova DC-e, descartando alterações feitas.
21. Excluir: o clique no botão deve exibir uma mensagem de confirmação "Você realmente deseja excluir essa DC-e?" Caso não, nada a fazer. Caso sim e o documento puder ser excluido, retornar para a tela de listagem.
22. Salvar Rascunho: deve validar os campos de preenchimento obrigatório e caso um ou mais campos não estejam preenchidos, deve exibir uma mensagem de erro para cada um, assinalando a necessidade de preenchimento. Exemplo "Erro! O campo [X] é de preenchimento obrigatório!". Caso a DC-e possa ser salva, exibir a mensagem de sucesso (verde) "Salvo com sucesso" e manter o usuário na mesma página.
23. Salvar: deve validar os campos de preenchimento obrigatório e caso um ou mais campos não estejam preenchidos, deve exibir uma mensagem de erro para cada um, assinalando a necessidade de preenchimento. Exemplo "Erro! O campo [X] é de preenchimento obrigatório!". Caso a DC-e possa ser salva, exibir a mensagem de sucesso (verde) "Salvo com sucesso" e redirecionar o usuário para a tela de listagem.
Regras de Negócio:
1. Valor Total: o valor total é calculado a partir da multiplicação entre o Valor Unitário e a Quantidade.
2. Excluir: deve validar se o DC-e pode ser excluido e realizar a exclusão do registro no banco de dados, caso sim.
3. Salvar Rascunho: caso o DC-e possa ser salvo, deve realizar o salvamento do registro no banco de dados.
4. Salvar: caso o DC-e possa ser salvo, deve realizar o salvamento do registro no banco de dados.
5. O fluxo de numeração da DC-e deverá seguir o que já existe para os outros documentos fiscais. Para evitar duas pessoas numerando o mesmo documento ao mesmo tempo, usa-se a chave de conferência para vincular o registro das tabelas "dce" e "dceempresa". A numeração deverá seguir sempre a última numeração inserida e as configurações de numeração (seguindo também a regra dos outros documentos fiscais para validação da próxima numeração).
Questões Técnicas:
Deverão ser criadas novas tabelas no banco de dados para armazenamento das novas informações.
CREATE TABLE `dce` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`criacaoHorario` bigint(20) NOT NULL,
`criacaoUsuario` int(11) NOT NULL,
`data` bigint(20) NOT NULL,
`ultimoHorario` bigint(20) DEFAULT NULL,
`ultimoUsuario` int(11) DEFAULT NULL,
`usuarioId` bigint(20) NOT NULL,
`empresaId` bigint(20) DEFAULT NULL,
`responsavelEmissao` int(1) DEFAULT NULL,
`destinatarioId` bigint(20) DEFAULT NULL,
`emitenteId` bigint(20) DEFAULT NULL,
`valorTotal` decimal(13,2) DEFAULT NULL,
`valorTotalLiquido` decimal(13,2) DEFAULT NULL,
`modalidadeTransporte` int(1) NOT NULL DEFAULT 0,
`cnpjTerceiros` varchar(18) DEFAULT NULL,
`observacao` varchar(5000) DEFAULT NULL,
`DCe_stAssinado` bit(1) NOT NULL DEFAULT b'0',
`DCe_stAutorizado` bit(1) NOT NULL DEFAULT b'0',
`DCe_stCancelado` bit(1) NOT NULL DEFAULT b'0',
`DCe_stEnviado` bit(1) NOT NULL DEFAULT b'0',
`DCe_stValidado` bit(1) NOT NULL DEFAULT b'0',
`ambiente` varchar(255) DEFAULT NULL,
`cDV` int(11) NOT NULL,
`cMDFe` int(11) NOT NULL,
`caminhoArquivoXML` varchar(255) DEFAULT NULL,
`chaveAcesso` varchar(255) DEFAULT NULL,
`chaveConf` varchar(255) DEFAULT NULL,
`modelo` int(11) NOT NULL,
`numeroDCe` int(11) NOT NULL,
`procEmi` int(11) NOT NULL,
`protAutoriza` varchar(255) DEFAULT NULL,
`serie` int(11) NOT NULL,
`tpEmis` int(11) NOT NULL,
`tpEmit` int(11) NOT NULL,
`ufEmit` varchar(255) DEFAULT NULL,
`verProc` varchar(255) DEFAULT NULL,
`geradoEstoque` bit(1) NOT NULL DEFAULT b'0',
`cteVinculado` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
);
// destinatarioId e emitenteId são ambas fk com a tabela de cliente
CREATE TABLE `dceitem` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`criacaoHorario` bigint(20) NOT NULL,
`criacaoUsuario` int(11) NOT NULL,
`ultimoHorario` bigint(20) DEFAULT NULL,
`ultimoUsuario` int(11) DEFAULT NULL,
`informacoesAdicionais` varchar(500) DEFAULT NULL,
`quant` decimal(19,10) NOT NULL,
`vlTotal` decimal(19,2) DEFAULT NULL,
`vlTotalLiq` decimal(19,2) DEFAULT NULL,
`vlUnit` decimal(19,10) NOT NULL,
`produtoId` bigint(20) NOT NULL,
`nomeProduto` varchar(120) NOT NULL,
`dceId` bigint(20) NOT NULL,
`gradeId` bigint(20) DEFAULT NULL,
`tabelaPreco` varchar(100) DEFAULT NULL,
`valorCusto` decimal(19,4) NOT NULL DEFAULT 0.0000,
`tipovariacao` varchar(255) DEFAULT NULL,
`variacaoEstoque` bigint(20) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`)
);
//produtoId é fk com a tabela de produto, gradeId com as variações (em que também é realizado o controle do lote)
CREATE TABLE `dceempresa` (
`serie` int(11) NOT NULL,
`ndce` int(11) NOT NULL,
`empresaId` bigint(20) NOT NULL,
`chaveConf` varchar(255) DEFAULT NULL,
PRIMARY KEY (`serie`,`ndce`,`empresaId`),
)
// cada numeração de cada série é única para cada empresa
A DC-e está disponível nas três variações do GerencieAqui, então os temas devem ser considerados nas emissões.
©SOFTEN SISTEMAS 2026

No Comments