PROC002 - Nova DC-e
| Projeto/Sistema: DC-e / SIEM |
Versão do Template: 1.2 |
| Processo: PROC002 - Nova DC-e |
Versão do Documento: 1.0 |
| Responsável(eis): Luís Leite |
Data: 16/04/2026 |
1. Introdução
Essa documentação visa descrever o processo de criação da tela de preenchimento da DC-e.
2. Processo
|
Processo |
Envolvidos |
Dados de Entrada |
Dados de Saída |
| PROC001 - Listagem de DC-e | Listagem dos DC-e lançados |
|
|
| PROC002 - Nova DC-e | - |
Novos DC-e ou edição de DC-e já lançados |
DC-e cadastrado ou alterado |
| PROC003 - Gerenciador de DC-e | - |
- |
Listagem de DC-es salvas em banco |
|
PROC004 Emissão de DC-e |
- |
Envio de DC-e a SEFAZ |
Arquivo XML |
Processos Relacionados
Especificação Funcional
PROC002 - Nova DC-e:
Protótipo de Tela:
Imagem I - Protótipo de tela para o lançamento de uma nova DC-e.
Imagem II - Informações adicionais do produto.
Descrição dos Campos:
Regras de Interface:
- DC-e Num: Campo visual, deve trazer o código da DC-e em banco. Ao abrir a primeira vez ficará como zero, pois é definido após salvar.
- Data Emissão: Considerar o valor padrão como a data "hoje" do computador.
- Remetente: Por padrão bloqueado. Campo código do cadastro de clientes. Ao ser digitado o código e apertado 'Enter' o cadastro correspondente deve ser vinculado e o nome do cliente preenchido. Caso seja digitado zero e aperte o 'Enter', deve ser aberta a tela de busca de clientes. Esse campo somente será desbloqueado quando o tipo de emissor mencionado no PROC001 - Criação das configurações associadas for "Transportadora".
- Destinatário: Campo código do cadastro de clientes. Ao ser digitado o código e apertado 'Enter' o cadastro correspondente deve ser vinculado e o nome do cliente preenchido. Caso seja digitado zero e aperte o 'Enter', deve ser aberta a tela de busca de clientes.
- Produto: Campo código do cadastro de produtos. Ao ser digitado o código e apertado 'Enter' o cadastro correspondente deve ser vinculado e a descrição do produto preenchida. Caso seja digitado zero e aperte o 'Enter', deve ser aberta a tela de busca de produtos. Caso esteja configurado o controle de estoque e o produto não possua saldo, retornar o aviso em tela "Usuário sem permissão para baixar item sem estoque!"
- Informações Adicionais : o clique no Link 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". (Imagem II)
- LE: Por padrão bloqueado. Campo referente ao Local de Estoque, deve ser liberado caso esteja configurado no sistema o uso de Local de Estoque.
- Tipos de Estoque: Os controles de tipo de estoque como Validade, Grade, N. Serie, Arma devem aparecer logo abaixo da descrição do produto para o preenchimento do usuário. Comportamento padrão do sistema.
- Valor Unitario: Com o foco no valor do valor unitario, ao apertar "Enter" no teclado deve ser feitas as validações para a inserção do produto. Caso algum campo não esteja preenchido, exibir uma mensagem de aviso. Exemplo: "Erro! verifique o preenchimento dos campos obrigatórios." Caso todos os campos obrigatórios estejam preenchidos, o produto deve inserido na grid de listagem de produtos inseridos.
- Valor Total: Campo desabilitado por padrão. Realiza o calculo da Quantidade * Valor Unitário em tela.
- 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 aviso. Exemplo: "Erro! verifique o preenchimento dos campos obrigatórios." Caso todos os campos obrigatórios estejam preenchidos, o produto deve inserido na grid de listagem de produtos inseridos.
- Listagem:
- Excluir: A ação para deletar um registro inserido na listagem é na ação da tecla 'Delete' no teclado.
- Label TOTAL(R$): Deve representar a soma dos valores totais de todos os itens inseridos na listagem.
- Modalidade de Transporte: valor padrão: Transporte Próprio.
- CNPJ da Transportadora: campo desabilitado por padrão. Deve estar habilitado somente quando a modalidade de transporte selecionada for "Terceiros".
- Finalidade de Emissão: Por padrão deve ser "DC-e Normal"
- Cancelar: O clique no botão "Cancelar" deve finalizar tela.
- Confirmar: deve validar os campos de preenchimento obrigatório e caso um ou mais campos não estejam preenchidos, deve exibir uma mensagem de erro. Exemplo "Erro! verifique o preenchimento dos campos obrigatórios.". Caso a DC-e possa ser salva, exibir a mensagem "DCE salvo com código {código da DC-e}".
Regras de Negócio:
- Tipo de Emissão: o tipo de emissão deve ser armazenado no banco de acordo com a nomenclatura do manual: 1=Emissão normal (não em contingência);9=Contingência off-line da DCe.
- Adicionar Produto: Deve ser validado se o usuário possui restrição para não vender sem estoque. Caso esteja configurado para não vender sem estoque, o item não será vínculado.
- Valor Total: o valor total é calculado a partir da multiplicação entre o Valor Unitário e a Quantidade.
- Confirmar: caso o DC-e possa ser salvo, deve realizar o salvamento do registro no banco de dados. Caso seja uma edição, o registro deve ser atualizado no banco de dados. Nesse momento também deve ser realizado o fluxo de movimento do estoque.
O arquivo XML já deve ser gerado nesse momento. - 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, usar a mesma regra de validação dos outros documentos para impedir modificação no mesmo número ou registro.
Questões Técnicas:
- Deverão ser criadas novas tabelas no banco de dados para armazenamento das novas informações.
CREATE TABLE FATURAMENTO_DCE (
codigoDCe INTEGER,
data DATETIME,
responsavelEmissao INTEGER,
destinatario INTEGER,
emitente INTEGER,
valorTotal DECIMAL(13,2),
modalidadeTransporte INTEGER NOT NULL,
cnpjTerceiros TEXT(18),
observacao MEMO,
DCe_stAssinado BOOLEAN NOT NULL,
DCe_stAutorizado BOOLEAN NOT NULL,
DCe_stCancelado BOOLEAN NOT NULL,
DCe_stEnviado BOOLEAN NOT NULL,
DCe_stValidado BOOLEAN NOT NULL,
ambiente TEXT(255),
cDV LONG NOT NULL,
cMDFe LONG NOT NULL,
ArqXML TEXT(255),
chaveAcesso TEXT(255),
chaveConf TEXT(255),
serieDCe LONG NOT NULL,
procEmi LONG NOT NULL,
protAutoriza TEXT(255),
tpEmis LONG NOT NULL,
tpEmit LONG NOT NULL,
ufEmit TEXT(255),
verProc TEXT(255),
geradoEstoque BOOLEAN NOT NULL,
cteVinculado TEXT(255),
CONSTRAINT fk_dce_destinatario
FOREIGN KEY (destinatarioId) REFERENCES Cad_Cliente (Codigo),
CONSTRAINT fk_dce_emitente
FOREIGN KEY (emitenteId) REFERENCES Cad_Cliente (Codigo)
);
CREATE TABLE FATURAMENTO_DCE_ITEM (
id AUTOINCREMENT PRIMARY KEY,
produto INTEGER NOT NULL,
nomeProduto TEXT(120) NOT NULL,
informacoesAdicionais TEXT(500),
quant DECIMAL(19,10) NOT NULL,
valorCusto DECIMAL(19,4) NOT NULL,
vlTotal DECIMAL(19,2),
vlTotalLiq DECIMAL(19,2),
vlUnit DECIMAL(19,10) NOT NULL,
dceId INTEGER NOT NULL,
gradeId INTEGER,
lote TEXT(255),
validade DATETIME,
tamanho TEXT(15),
cor INTEGER,
nSerie TEXT(15)
CONSTRAINT fk_dceitem_dce
FOREIGN KEY (dceId) REFERENCES FATURAMENTO_DCE (codigoDCe),
CONSTRAINT fk_dceitem_produto
FOREIGN KEY (produtoId) REFERENCES Estoque_Itens (Codigo)
);
2. Exemplo de arquivo XML a ser salvo no path do sistema pasta /DCe/{numero do documento}/.
<DCe xmlns="http://www.portalfiscal.inf.br/dce">
<infDCe Id="DCe35260478393592000146990261404128151002399952" versao="1.00">
<ide>
<cUF>35</cUF>
<cDC>239995</cDC>
<mod>99</mod> //fixo 99
<serie>26</serie>
<nDC>140412815</nDC>
<dhEmi>2026-04-14T15:33:21-03:00</dhEmi>
<tpEmis>1</tpEmis>
<tpEmit>0</tpEmit>
<nSiteAutoriz>0</nSiteAutoriz> // fixo como 0
<cDV>2</cDV>
<tpAmb>1</tpAmb>
<verProc>verProc0</verProc>
</ide>
<emit>
<CNPJ>07587030000195</CNPJ>
<xNome>NOME DO CLIENTE</xNome>
<enderEmit>
<xLgr>RUA TESTE</xLgr>
<nro>70</nro>
<xBairro>Terra Nostra</xBairro>
<cMun>3525706</cMun>
<xMun>José Bonifácio</xMun>
<UF>SP</UF>
<CEP>15200000</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
</enderEmit>
</emit>
<Fisco>
<CNPJ>78393592000146</CNPJ>
<xOrgao>Fisco</xOrgao>
<UF>SP</UF>
</Fisco>
<dest>
<CPF>00000021892</CPF>
<xNome>Pamela</xNome>
<enderDest>
<xLgr>RUA TESTE</xLgr>
<nro>76</nro>
<xBairro>BAIRRO</xBairro>
<cMun>3525706</cMun>
<xMun>José Bonifácio</xMun>
<UF>SP</UF>
<CEP>15200000</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
</enderDest>
</dest>
<det nItem="1">
<prod>
<xProd>PRODUTO TESTE</xProd>
<qCom>1</qCom>
<vUnCom>1.00</vUnCom>
<vProd>1.00</vProd>
</prod>
</det>
<total>
<vDC>1.00</vDC>
</total>
<transp>
<modTrans>1</modTrans>
</transp>
<infAdic/>
<infDec>
<xObs1>É contribuinte de ICMS qualquer pessoa física ou jurídica, que realize, com habitualidade ou em volume que caracterize intuito comercial, operações de circulação de mercadoria ou prestações de serviços de transportes interestadual e intermunicipal e de comunicação, ainda que as operações e prestações de iniciem no exterior (Lei Complementar nº 87/96, Art. 4º)</xObs1>
<xObs2>Constitui crime contra a ordem tributária suprimir ou reduzir tributo, ou contribuição social e qualquer acessório: quando negar ou deixar de fornecer, quando obrigatório, nota fiscal ou documento equivalente, relativa a venda de mercadoria ou prestação de serviço, efetivamente realizada ou fornece-la em desacordo com a legislação. Sob pena de reclusão de 2 (dois) e 5 (cinco) anos, e multa (Lei 8.137/90, Art 1ª, V)</xObs2>
</infDec>
</infDCe>
<infDCeSupl>
<qrCodDCe>https://www.fazenda.pr.gov.br/dce/qrcode?chDCe=35260478393592000146990261404128151002399952&tpAmb=1</qrCodDCe>
<urlChave>urlChaveDCe35260478393592000146990261404128151002399952</urlChave>
</infDCeSupl>
</DCe>
©SOFTEN SISTEMAS 2026