| Produto: | TOTVS Logística WMS |
|---|---|
| Linha de Produto: | Linha Datasul |
| Segmento: | Logística |
| Módulo: | MWM - Warehouse Management System |
| Função: | WM9084a |
| País: | Brasil |
| Ticket: | 11727206 |
| Requisito/Story/Issue (informe o requisito relacionado) : | FSWSES-2277 |
Ponto UPC para realizar a chamada do programa wm9000 através de regras específicas.
No botão OK.
1) Rowid tabela etiquetas (wm-etiqueta)
2) Código depóstico (wm-local.cod-depositoc)
3) Variável indicando se desfez a movimentação
4) Tabela temporário com os erros (RowErrors).
1) Variável lógica que indica se o específico foi executado
2) Variável lógica que indica se o processo pode ser finalizado.
12.1.31 ou superiores
/****************************************************************************************************************
** Cliente.....: Borrachas Vipal
** Programa....: wm9084a-upc.p
****************************************************************************************************************/
{include/i-epc200.i}
DEFINE INPUT PARAMETER p-ind-event AS CHARACTER NO-UNDO.
DEFINE INPUT-OUTPUT PARAMETER TABLE FOR tt-epc.
DEFINE VARIABLE htt1 AS HANDLE NO-UNDO.
DEFINE VARIABLE hQTTErro AS HANDLE NO-UNDO.
DEFINE VARIABLE hBTTErro AS HANDLE NO-UNDO.
DEFINE VARIABLE h-ErrorSequence AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE h-ErrorNumber AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE h-ErrorParameters AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE h-ErrorType AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE h-ErrorSubType AS WIDGET-HANDLE NO-UNDO.
DEFINE VARIABLE h-ErrorDescription AS WIDGET-HANDLE NO-UNDO.
DEFINE NEW GLOBAL SHARED VARIABLE h-tt-erro AS WIDGET-HANDLE NO-UNDO.
IF p-ind-event = "estornaEtiqueta" THEN DO:
FIND FIRST tt-epc
WHERE tt-epc.cod-event = p-ind-event
AND tt-epc.cod-parameter = "estornaEtiqueta" NO-ERROR.
IF AVAIL tt-epc THEN DO:
ASSIGN r-wm-etiqueta = TO-ROWID(ENTRY(1,tt-epc.val-parameter,"|"))
c-cod-deposito = ENTRY(2,tt-epc.val-parameter,"|")
l-desfez-movimento = logical(ENTRY(3,tt-epc.val-parameter,"|")).
FIND FIRST wm-etiqueta NO-LOCK
WHERE rowid(wm-etiqueta) = r-wm-etiqueta NO-ERROR.
IF NOT VALID-HANDLE(hProxy) THEN
RUN wmp/wmprx379.p PERSISTENT SET hProxy.
IF VALID-HANDLE(hProxy) THEN DO:
RUN proxyConecta IN hProxy.
IF l-desfez-movimento THEN
RUN atualizaAlocacao IN hProxy (INPUT wm-etiqueta.id-etiqueta,
INPUT c-cod-deposito).
IF RETURN-VALUE = "NOK":U THEN DO:
create tt-epc.
assign tt-epc.cod-event = p-ind-event
tt-epc.cod-parameter = "l-executa-upc"
tt-epc.val-parameter = string(YES) + "|" + STRING("NOK").
RETURN "NOK":U.
END.
FIND FIRST wm-item WHERE
wm-item.cod-item = wm-etiqueta.cod-item NO-LOCK NO-ERROR.
RUN efetuaEstorno IN hProxy (INPUT wm-etiqueta.nr-ord-prod,
INPUT (IF wm-item.ind-unid-cont = 1 THEN wm-etiqueta.qtd-item ELSE wm-etiqueta.qtd-peso)).
RUN retornaErros IN hProxy (OUTPUT TABLE tt-erro).
RUN destroy IN hProxy.
DELETE PROCEDURE hProxy NO-ERROR.
ASSIGN hProxy = ?.
END.
IF CAN-FIND (FIRST tt-erro) THEN DO:
FOR EACH tt-erro:
RUN piCreateError (INPUT tt-erro.cd-erro,
INPUT ?,
INPUT tt-erro.mensagem).
END.
FIND FIRST tt-epc
WHERE tt-epc.cod-event = p-ind-event
AND tt-epc.cod-parameter = "handle-RowErrors" NO-ERROR.
IF AVAIL tt-epc THEN DO:
ASSIGN h-tt-erro = WIDGET-HANDLE(tt-epc.val-parameter).
ASSIGN htt1 = h-tt-erro:DEFAULT-BUFFER-HANDLE.
CREATE BUFFER hBTTErro FOR TABLE htt1 BUFFER-NAME "tt-erro".
CREATE QUERY hQTTErro.
hQTTErro:SET-BUFFERS(hBTTErro).
IF VALID-HANDLE(hQTTErro) THEN
ASSIGN hQTTErro:FORWARD-ONLY = YES.
hQTTErro:QUERY-PREPARE("FOR EACH tt-erro").
hQTTErro:QUERY-OPEN.
hQTTErro:GET-FIRST.
FOR EACH RowErrors:
hBTTErro:BUFFER-CREATE().
ASSIGN h-ErrorSequence = hBTTErro:BUFFER-FIELD("ErrorSequence")
h-ErrorNumber = hBTTErro:BUFFER-FIELD("ErrorNumber")
h-ErrorParameters = hBTTErro:BUFFER-FIELD("ErrorParameters")
h-ErrorType = hBTTErro:BUFFER-FIELD("ErrorType")
h-ErrorSubType = hBTTErro:BUFFER-FIELD("ErrorSubType")
h-ErrorDescription = hBTTErro:BUFFER-FIELD("ErrorDescription").
ASSIGN h-ErrorSequence:BUFFER-VALUE = RowErrors.ErrorSequence
h-ErrorNumber:BUFFER-VALUE = RowErrors.ErrorNumber
h-ErrorParameters:BUFFER-VALUE = RowErrors.ErrorParameters
h-ErrorType:BUFFER-VALUE = RowErrors.ErrorType
h-ErrorSubType:BUFFER-VALUE = RowErrors.ErrorSubType
h-ErrorDescription:BUFFER-VALUE = RowErrors.ErrorDescription.
END.
END.
IF CAN-FIND(FIRST RowErrors
WHERE RowErrors.ErrorSubType = "ERROR") THEN DO:
create tt-epc.
assign tt-epc.cod-event = p-ind-event
tt-epc.cod-parameter = "l-executa-upc"
tt-epc.val-parameter = string(YES) + "|" + STRING("NOK").
RETURN "NOK":U.
END.
ELSE DO:
create tt-epc.
assign tt-epc.cod-event = p-ind-event
tt-epc.cod-parameter = "l-executa-upc"
tt-epc.val-parameter = string(YES) + "|" + STRING("OK").
RETURN "OK":U.
END.
END.
create tt-epc.
assign tt-epc.cod-event = p-ind-event
tt-epc.cod-parameter = "l-executa-upc"
tt-epc.val-parameter = string(YES) + "|" + STRING("").
END.
END.
RETURN "OK":U.
|