Histórico da Página
01. DADOS GERAIS
Produto: |
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
|
| |||||
Segmento: |
| ||||
---|---|---|---|---|---|
Módulo: | TOTVS |
Frete Embarcador - Gestão de Frete Embarcador (SIGAGFE) | |
Função: | CDF601/CDAPI800 - Integração Datasul x GFE |
---|---|
Ticket: |
- | |
Requisito/Story/Issue (informe o requisito relacionado) : | DLOGGFE-13112 |
---|
02. SITUAÇÃO/REQUISITO
Permitir o envio de informações específicas para a realização da simulação de frete no SIGAGFE.
03. SOLUÇÃO
Foi necessário a abertura de dois pontos upcsUPCs:
1)
...
Gerado ponto
...
UPC no programa cdf601, na procedure MessageWS que
...
gera a mensagem que será enviada ao GFE.
- Código Evento =
...
- MessageWSCódigo Parâmetro = nota-fiscal-tr
- Valor Parâmetro = handle da tabela temporária tt-nota-fiscal-tr.
Caso o específico identifique informações específicas que devem ser enviadas para integração, deverá retornar na tabela temporária "tt tt-epc".
- Código Evento = MessageWS
- Código Parâmetro = InfAdicional
...
Segue abaixo exemplo da utilização:
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
IF p-ind-event = "MessageWs":U THEN DO: |
...
FIND FIRST tt-epc NO-LOCK |
...
WHERE tt-epc.cod-event = p-ind-event |
...
AND tt-epc.cod-parameter = "nota-fiscal-tr":U NO-ERROR. |
...
IF AVAIL tt-epc THEN DO: |
...
ASSIGN htt1 = WIDGET-HANDLE(tt-epc.val-parameter) NO-ERROR. |
...
IF ERROR-STATUS:ERROR |
...
THEN NEXT. CREATE BUFFER hBTTNotaFiscalTR FOR TABLE htt1 BUFFER-NAME "tt-nota-fiscal-tr". |
...
CREATE QUERY hQTTNotaFiscalTR. hQTTNotaFiscalTR:SET-BUFFERS(hBTTNotaFiscalTR). |
...
IF VALID-HANDLE(hQTTNotaFiscalTR) |
...
THEN ASSIGN hQTTNotaFiscalTR:FORWARD-ONLY = YES. |
...
hQTTNotaFiscalTR:QUERY-PREPARE("FOR EACH tt-nota-fiscal-tr"). |
...
hQTTNotaFiscalTR:QUERY-OPEN. |
...
hQTTNotaFiscalTR:GET-FIRST. |
...
DO WHILE NOT(hQTTNotaFiscalTR:QUERY-OFF-END): |
...
ASSIGN h-nota-fiscal-tr-char-1 = hBTTNotaFiscalTR:BUFFER-FIELD("char-1"). |
...
CREATE tt-epc. |
...
ASSIGN tt-epc.cod-event = p-ind-event |
...
tt-epc.cod-parameter = "InfAdicional" |
...
tt-epc.val-parameter = h-nota-fiscal-tr-char-1:BUFFER-VALUE. |
...
hQTTNotaFiscalTR:GET-NEXT. |
...
END. |
...
END. |
...
END. |
2)
...
Gerado ponto
...
UPC no programa
...
CDAPI800, na procedure pi-grava-simulacao.
- Código Evento = after-create-simul-nota-fisc
- Código Parâmetro = handle-tt-notas-gerradas
- Valor Parâmetro = handle da tabela temporária tt-notas-geradas
Não é retornada nenhuma informação ao programa cdapi800.
Segue abaixo exemplo da utilização:
Bloco de código | ||||
---|---|---|---|---|
| ||||
IF p-ind-event = "after-create-simul-nota-fisc" THEN DO: |
...
FIND FIRST tt-epc |
...
WHERE tt-epc.cod-event = "after-create-simul-nota-fisc" |
...
AND tt-epc.cod-parameter = "handle-tt-notas-geradas" NO-LOCK NO-ERROR. |
...
IF AVAIL tt-epc THEN DO: |
...
ASSIGN htt1 = WIDGET-HANDLE(tt-epc.val-parameter) NO-ERROR. |
...
IF ERROR-STATUS:ERROR |
...
THEN NEXT. CREATE BUFFER hBTTNotasGeradas FOR TABLE htt1 BUFFER-NAME "tt-notas-geradas". |
...
CREATE QUERY hQTTNotasGeradas. hQTTNotasGeradas:SET-BUFFERS(hBTTNotasGeradas). |
...
IF VALID-HANDLE(hQTTNotasGeradas) |
...
THEN ASSIGN hQTTNotasGeradas:FORWARD-ONLY = YES. |
...
hQTTNotasGeradas:QUERY-PREPARE("FOR EACH tt-notas-geradas"). |
...
hQTTNotasGeradas:QUERY-OPEN. |
...
hQTTNotasGeradas:GET-FIRST. |
...
DO WHILE NOT(hQTTNotasGeradas:QUERY-OFF-END): |
...
ASSIGN h-rw-nota-fiscal = hBTTNotasGeradas:BUFFER-FIELD("rw-nota-fiscal"). |
...
FIND FIRST nota-fiscal EXCLUSIVE-LOCK |
...
WHERE rowid(nota-fiscal) = h-rw-nota-fiscal:BUFFER-VALUE NO-ERROR. |
...
IF AVAIL nota-fiscal THEN DO: |
...
ASSIGN i-c = |
...
0 cDesObs = "". |
...
FOR EACH simul-nota-fisc NO-LOCK |
...
WHERE simul-nota-fisc.cod-estab = nota-fiscal.cod-estabel |
...
AND simul-nota-fisc.cod-ser-nf = nota-fiscal.serie |
...
AND simul-nota-fisc.cod-nota-fisc = nota-fiscal.nr-nota-fis |
...
: ASSIGN i-aux = |
...
1 n-valor-pedagio = 0. |
...
DO i-cont = 1 to 8: |
...
IF TRIM(SUBSTRING(simul-nota-fisc.cod-livre-3,i-aux,20)) <> '' AND trim(SUBSTRING(simul-nota-fisc.cod-livre-3,i-aux + 20,15)) <> '' |
...
THEN /*IF TRIM(SUBSTRING(simul-nota-fisc.cod-livre-3,i-aux,20)) = "PEDAGIO" THEN*/ |
...
IF TRIM(SUBSTRING(simul-nota-fisc.cod-livre-3,i-aux,20)) MATCHES ("*PEDAGIO*") |
...
THEN ASSIGN n-valor-pedagio = decimal(SUBSTRING(simul-nota-fisc.cod-livre-3,i-aux + 20,15)). |
...
ASSIGN i-aux = i-aux + 35. |
...
END. |
...
ASSIGN i-c = i-c + 1. |
...
FIND FIRST transporte NO-LOCK |
...
WHERE transporte.cgc = simul-nota-fisc.cod-cgc-clien NO-ERROR. |
...
IF AVAIL transporte THEN DO: ASSIGN c-nome = transporte.nome-abrev. |
...
END. |
...
IF i-c = 1 THEN DO: |
...
ASSIGN cDesObs = "Transportador: " + c-nome + " Valor do Frete: " + STRING(simul-nota-fisc.val-combin-clien). |
...
END. |
...
IF i-c > 1 THEN DO: |
...
ASSIGN cDesObs = cDesObs + "Transportador: " + c-nome + " Valor do Frete: " + STRING(simul-nota-fisc.val-combin-clien). |
...
END. |
...
IF n-valor-pedagio <> 0 THEN DO: |
...
ASSIGN cDesObs = cDesObs + "Valor do Ped gio: " + STRING(n-valor-pedagio). |
...
END. |
...
END. |
...
IF not nota-fiscal.observ-nota MATCHES "*" + cDesObs + "*" THEN DO: |
...
ASSIGN nota-fiscal.observ-nota = nota-fiscal.observ-nota + cDesObs. |
...
END. |
...
END. |
...
hQTTNotasGeradas:GET-NEXT. |
...
END. |
...
END. |
...
Totvs custom tabs box |
---|
Passo 01, Passo 02, Passo 03, Passo |
04
...
default | yes |
---|---|
referencia | passo1 |
...
default | no |
---|---|
referencia | passo2 |
...
. DEMAIS INFORMAÇÕES
...
Não se aplica.
05. ASSUNTOS RELACIONADOS
- MessageWS - Permite Enviar informações complementares para a simulação de frete SIGAGFE
- after-create-simul-nota-fisc - Permite efetuar gravação de informações específicas retornadas pela Simulação GFE
Templatedocumentos |
---|
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas