SCOMA040.PRW
Monitor de Recebimento XML / NF-e - rotina específica Shark
Dados da customização
Analista responsável: Wagner Mobile Costa (rotina original) / Manutenções por Jonathan Torioni, Rafael Rondon e demais analistas
Especificação da customização
Rotina específica do sistema de compras Shark responsável por acompanhar e tratar o recebimento de documentos fiscais via XML (NF-e, CT-e, NFS-e, veículos e chassi). Atua sobre a tabela SZG (Monitor de Documentos Eletrônicos) oferecendo recursos de visualização, liberação/rejeição manual, consulta SEFAZ pela chave, desmembramento de notas, controle fiscal multi-CFOP, manutenção de chassi, geração de pré-nota (SF1), revalidação de regras fiscais, exportação do XML e auditoria de consultas via tabela LEGBRANCA (tratamento da rejeição 656 - Consumo Indevido).
Especificação de tabelas e índices
- SZG - Monitor de documentos eletrônicos (cabeçalho dos XMLs recebidos).
- SZ1 - Cabeçalho/financeiro relacionado ao XML.
- SZ2 - Itens do XML.
- SZA - Amarração de pedidos x notas.
- SZP - Cadastro de CNPJ x ID_ENT (TSS).
- RZB - Histórico/observações do monitor.
- SF1 / SD1 / SE2 - Documentos de entrada gerados após a liberação.
- SC7 - Pedidos de compra (validação de saldo).
- SPED001 / LEGBRANCA - Tabelas externas (SQL direto) utilizadas para identificar o ID_ENT do TSS e para auditoria das consultas SEFAZ.
Especificação de parâmetros
- ES_USRXMLI - Lista de usuários com permissão para alterar dados do XML de importação.
- ES_USRXML - Lista de usuários com permissão para alterar dados de XML de CT-e.
- ES_NEWCONS - Define o uso da nova rotina de consulta SEFAZ (
U_SCNewConsSe). - ES_QTDMEMO - Tamanho máximo do memo de observações.
- ES_XMLVIST - Quando
.T.filtra somente XML vistados pelo operador fiscal. - ES_XBXPCNF - Controla a baixa do pedido de compra na entrada da NF.
- ES_ESTQZER - Define se subtrai
C7_QTDACLAdo saldo disponível do pedido. - ES_OPTRANS - Operação default utilizada na transferência.
- ES_OPEERCN - Operação default de garantia.
- ES_MQESTFI - Indica uso do estoque financiado pela fábrica.
- ES_EMPVFUND - Empresas com tratamento de fundo de investimento.
- ES_MQVFCI - Habilita validação do FCI.
- ES_LOCACAO - Habilita tratamento de locação.
- ES_GRPVEI - Grupos de produtos considerados veículo.
- ES_DIASDUP - Dias limite para duplicidade de vencimento.
- ES_OPSAENT - Habilita alteração da operação de saída x entrada.
- ES_OPEGARC - Operação de garantia para validação de chassis.
- ES_NFSELOK - Habilita ok obrigatório para NFS-e.
- ES_LIBMNA - Libera consulta SEFAZ mesmo fora de produção.
- ES_AUDLEG - Habilita auditoria/gravação na tabela
LEGBRANCA(rejeição 656 - Consumo Indevido). - ES_PRZCEL / ES_PRZCEL2 / ES_TRVNFS / ES_DTLIBCE - Controles de trava de SPED/CTE/NFS-e.
- MV_SPEDURL - URL do TSS para consumo dos webservices SEFAZ.
- MV_RESTNFE - Bloqueio NFE x pedido de compra.
Grupo de perguntas: SC040BRW (filtros do browse, ajustado em runtime via AjustaPerg/PutSx1).
Especificação das funções
-
U_SCOMA040 - Rotina principal. Monta o
aRotina, ajusta perguntas, abre a tabelaSZGe inicia o browse do monitor. -
MenuDef - Estática que retorna o
aRotinado browse com as operações disponíveis (Visualizar, Liberar, Rejeitar, Consultar SEFAZ, Histórico Fiscal, etc.). -
U_SC030Mnt - Monta a tela de visualização dos dados do XML, com folders de cabeçalho, itens, financeiro e observações.
-
U_SC030Sef - Realiza a consulta SEFAZ via
U_SCNewConsSee a atualização viaU_SCUpdZgSefaz. -
U_SC030Vld - Revalida a situação do documento em relação a compras/fiscal.
-
U_SC030RNF - Confirma o recebimento (gera SF1) após validações fiscais e bloqueio do fornecedor (
A1_MSBLQL/A2_MSBLQL). -
U_SC030Lib - Trata o aceite ou rejeição da divergência da NF (1 = libera, 2 = rejeita) com justificativa.
-
U_SC030Ob2 / U_SC030Obs - Telas e gravação das anotações (
RZB) realizadas pelos usuários durante a análise. -
U_SC030Cmp / U_SC030Fis / U_SC030Itm - Manutenções específicas de campos, fiscal e itens.
-
U_SC030Leg / U_SC030Flt / SC040LEGX - Definição e filtragem das legendas (vistado, divergência, etc.).
-
U_XmlDfPCOP - Define o CFOP/operação default da nota a partir do grupo tributário/grupo de produto.
-
U_XmlOpObg - Obriga uma operação específica de acordo com a regra.
-
U_XmlGetOp - Retorna a operação fiscal cabível para o item baseado em
Z2_CFOP,B1_TIPO,cGrTribe regras específicas (4108, 9710, 10178, garantia). -
U_CodProd - Localiza o código do produto a partir do CNPJ do fornecedor, loja e código no fornecedor.
-
WNZ2_COD / WNZ2_OPER / WNZ2_TES / WNZ2_NCM / WNZ2_CHASSI / WNZ2_NUMPC - Gatilhos de campos do XML.
-
U_CodForn - Localiza o código do fornecedor a partir do CNPJ/CPF/inscrição.
-
U_FCViewImp / U_FRetStSF - Visualização e retorno do status do SEFAZ.
-
U_SC30Mail - Envia e-mail com as informações do XML para análise.
-
U_SC040LDP / U_SC040TDP - Lançamento/tratamento do pedido durante a liberação.
-
U_SC040XML - Exporta o XML para diretório informado.
-
U_SC040LOK / U_SC040TOK - Validações de OK/Tudo OK do browse.
-
U_SC040CMP / U_XMLCHASSI / U_SC40MUCH - Manutenção de chassi/múltiplos chassis.
-
U_SC40CLOK / U_SC40CTOK - Validações específicas para chassis.
-
U_SC040Tipo - Alterna o tipo de nota controlado pela Static
cNF040Tipo(P=Produtos, D=Documentos, V=Veículos). -
U_SCNewConsSe - Consulta a chave da NF-e no SEFAZ via
TWsdlManagerapontando paraMV_SPEDURL. QuandoES_AUDLEGestá habilitado integra-se com a tabelaLEGBRANCAchamandoU_CON656,U_STMPLEG,U_INS656eU_STMPUPDpara evitar a rejeição 656. -
U_SCGetIdEnt - Retorna o
ID_ENTdo TSS para o CNPJ informado, consultando a tabelaSPED001(com schema diferente por empresa) comJOINemSZP. -
U_SCUpdZgSefaz - Atualiza na
SZGo resultado da consulta SEFAZ retornada porU_SCNewConsSe. -
U_SC040Chk / U_SC2DUPREF - Validações de cabeçalho da NF e duplicidade.
-
U_LibCeL / U_LibdiaCel - Liberação de trava do celular (controle SPED/CTE).
-
U_ChkSaldoPed - Verifica o saldo do pedido de compra.
A rotina utiliza diversas tabelas SQL diretas (SIGA_SPEDSK.SPED001, SIGA_SPEDPRD.SPED001, LEGBRANCA) por meio de TcSqlExec e MpSysOpenQuery. As tabelas estão fora do dicionário Protheus.
A integração com o controle de rejeição 656 (consumo indevido) é feita exclusivamente dentro de U_SCNewConsSe. Quando ES_AUDLEG = .F. o comportamento da consulta SEFAZ é o original.