Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Logística WMS

Linha de Produto:

Linha Protheus

Segmento:

Logística

Módulo:SIGAWMS - Gestão de Armazenagem
Função:WMSA150 - Execução de Serviços
País:Todos Países
Ticket:-
Requisito/Story/Issue (informe o requisito relacionado) :-


02. DESCRIÇÃO

Este Ponto de Entrada permite manipular as opções do menu Ações Relacionadas, da rotina WMSA150 (Execução de Serviços), tanto na inclusão como na exclusão de opções.

03. LOCALIZAÇÃO

Localizado na função MenuDef da rotina WMSA150, após a inclusão das ações padrões.

04. PARÂMETROS

NomeTipoDescriçãoObrigatório
aRotinaArrayContêm as opções de menu padrão.Sim

05. RETORNO

NomeTipoDescriçãoObrigatório
aRotinaArrayContêm as opções de menu após a modificação com inclusão e/ou exclusão de itens.Sim

06. VERSÕES

Protheus 12.1.27.

07. OBSERVAÇÃO

Todos os parâmetros são recebidos na User Function via PARAMIXB, conforme consta em Execblock / Customização.

08. EXEMPLO

------

#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOTVS.CH"
#INCLUDE "FWMVCDEF.CH"

User Function DL150MNU()
Local aRotina := ParamIxb[1]
      //A função GetMark150 está contida no WMSA150 e retorna o conteúdo que identifica quais os registros selecionados na execução atual.
      ADD OPTION aRotina TITLE "Minha Ação" ACTION "U_MyAction(GetMark150())" OPERATION 2 ACCESS 0
Return aRotina

//Função executada ao clicar no item de menu específico
User Function MyAction(cMark)
Local cAliasDCF := GetNextAlias()
Local cDocto := ''
Local cEnd := Replicate(' ', TamSX3('DCF_ENDER')[1])
Local cQry := ''

BeginSql Alias cAliasDCF
       SELECT DISTINCT DCF_DOCTO
             FROM %Table:DCF% DCF
             WHERE DCF.DCF_FILIAL = %xFilial:DCF%
             AND DCF_OK = %Exp:cMark%
             AND DCF.%NotDel%

EndSql

Do While !(cAliasDCF)→ (Eof())
      cDocto += (cAliasDCF)→ DCF_DOCTO + ', '
      (cAliasDCF)→ (dbSkip())
EndDo

(cAliasDCF)->(dbCloseArea())

If Len(cDocto) > 0
     cDocto := Substr(cDocto, 1, Len(cDocto) - 2)

   //Monta tela para permitir alterar o endereço
   DEFINE MSDIALOG oDlg TITLE 'Confirme o endereço' From 0,0 To 160,500 of oMainWnd PIXEL
   @ 25, 10 SAY 'Documentos: ' + cDocto OF oDlg PIXEL
   @ 40, 10 SAY 'Endereço: ' OF oDlg PIXEL
   @ 40, 50 MSGET cEnd OF oDlg PIXEL
   @ 60, 50 BUTTON oBtn PROMPT 'Confirmar' SIZE 040,012 OF oDlg PIXEL ACTION oDlg:End()
   oDlg:lEscClose := .F.
   ACTIVATE MSDIALOG oDlg CENTERED

  //Se informado endereço vazio nada é feito.
  //Do contrário, altera o endereço origem com o conteúdo informado em tela.
  If !Empty(cEnd)
        cQry := "UPDATE " + RetSqlName("DCF")
        cQry += " SET DCF_ENDER = '" + cEnd + "'"
        cQry += " WHERE DCF_FILIAL = '" + xFilial("DCF") + "'"
        cQry += " AND DCF_OK = '" + cMark + "'"
        cQry += " AND D_E_L_E_T_ = ''"
                If TcSQLExec(cQry) < 0
                MsgAlert('Erro na atualização via PE: ' + CRLF + TcSQLError(), 'Erro')
                EndIf

 EndIf

EndIf

Return

------