Árvore de páginas

Produto:

Protheus.

Ocorrência:

M185FGR: Responsável por gerar as requisições usando o Movimentos Modelo 2.

Passo a passo:

Localização: Function A185GeraAut() - Responsável por gerar as requisições usando o Movimentos Modelo 2 (No F12 da rotina MATA185, selecionar na pergunta Baixar Por? → Toda a Pre-Req)

Em que ponto: Ponto de Entrada no final do processo de baixa total das pré-requisições, após o controle de transação.

Programa fonte: MATA185.PRX

SintaxeM185FGR ( [ PARAMIXB[1] ], [ PARAMIXB[2] ] ) --> Nil

Parâmetro:

NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB[1]LógicoÍndice se gerou movimentação interna / Baixa da Requisição


PARAMIXB[2]VetorArray contendo alguns dados das requisições (SD3)


Retorno:

Nil(nulo)

  • Nil

Exemplo:

M185FGR
#INCLUDE 'TOTVS.ch'

/*/{Protheus.doc} User Function M185FGR
    Ponto de Entrada no final do processo de baixa total das pre-requisições, 
    após o controle de transação.
    @type  Function
    @author TOTVS

    //Estrutura de aDados
    aDados[01] - Item 01 - SD3
    aDados[nX, 01] - Marca de seleção
    aDados[nX, 02] - Numero da SA
    aDados[nX, 03] - Item da SA
    aDados[nX, 04] - Produto
    aDados[nX, 05] - Descricao do Produto
    aDados[nX, 06] - Armazem
    aDados[nX, 07] - UM
    aDados[nX, 08] - Qtd. a Requisitar (Formato Carácter)
    aDados[nX, 09] - Qtd. a Requisitar
    aDados[nX, 10] - Centro de Custo
    aDados[nX, 11] - 2a.UM
    aDados[nX, 12] - Qtd. 2a.UM
    aDados[nX, 13] - Ordem de Produção
    aDados[nX, 14] - Conta Contábil
    aDados[nX, 15] - Item Contábil
    aDados[nX, 16] - Classe Valor
    aDados[nX, 17] - Projeto
    aDados[nX, 18] - Nr. da OS
    aDados[nX, 19] - Tarefa
    aDados[nX] - Item x - SD3
    /*/
User Function M185FGR()
    Local aArea     := GetArea()
    Local aAreaSCP  := SCP->(GetArea())
    Local aAreas    := {aAreaSCP, aArea}
    Local lRet      := ParamIXB[1]
    Local aDados    := ParamIXB[2]
    Local nX        := 0

    If !lRet //Se a gravação não foi efetuada
        Return
    EndIf

    SCP->(DbSetOrder(1)) //CP_FILIAL+CP_NUM+CP_ITEM+DTOS(CP_EMISSAO)
    For nX := 1  To Len(aDados)
        If !aDados[nX, 1] //Item não marcado para geração da requisição
            Loop
        EndIf
        If SCP->(DbSeek(FWxFilial('SCP')+aDados[nX,2]+aDados[nX,3]))
            If RecLock('SCP', .F.)
                SCP->CP_OBS := 'Req. gerada em '+(DToC(dDataBase))
                SCP->(MsUnlock())
            EndIf
        EndIf
    Next nX

    AEval(aAreas, {|x| RestArea(x)})
Return

Observações: