Produto: | |
---|---|
Linha de Produto: | |
Segmento: | |
Módulo: | TOTVS Logística Frete Embarcador |
Função: | CDF601/CDAPI800 |
Ticket: | Não há |
Requisito/Story/Issue (informe o requisito relacionado) : | DLOGGFE-13112 |
Permitir o envio de informações específicas para a realização da simulação de frete no SIGAGFE.
Foi necessário a abertura de dois pontos upcs:
1) Criado ponto upc no programa cdf601, na procedure MessageWS que cria a mensagem que será enviada ao GFE.
Código Evento = MessageWS
Có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-epc".
Código Evento = MessageWS
Código Parâmetro = InfAdicional
Segue abaixo exemplo da utilização:
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) Criado 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:
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.
|
Outras ações/ações relacionadas
<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> |