Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

A finalidade deste documento é exemplificar como a Solicitação ao Armazém pode ser feita de forma automática através de MsExecAuto (rotina automática) ou MVC (a partir do release 12.1.17 Outubro/2017).

É obrigatório o produto estar cadastrado na tabela SB1 (descrição genérica de produto).

03. MsExecAuto


Função:MATA105
Parâmetros:
NomeTipoDescriçãoObrigatório
xReservCabArrayCampos a serem preenchidos do cabeçalho.x
xReservItensArrayCampos a serem preenchidos do item.x
nOpcAutoNumérico

Operação da rotina onde:

3 - Inclusão

4 - Alteração

5 - Exclusão


x
xRatSAArrayCampos a serem preenchidos dos itens de rateio


04. EXEMPLO


Exemplo de Inclusão de Solicitação ao Armazém com item de Rateio

#Include "protheus.ch"
#Include "rwmake.ch"
#Include "tbiconn.ch"

User Function MyMata105()


Local aAuto := {}
Local aCab := {}
Local aLinha := {}
Local alista := {{'PA001', 1000, "OBSERVACAO DO PRODUTO", .T.}} //Produto Utilizado
Local aRateio := {{'01', {{{"GS_PERC",100,},{'GS_CC', ' CC000008',},{'GS_CONTA', ' 1110210 ',},{'GS_ITEMCTA', '0000000 ',}, {'GS_CLVL','000000100',} }}}}
Local nX
Local nOpcAuto := 3
Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "EST" TABLES "SCP", "SGS"

//Cabecalho a Incluir
aadd(aCab,{GetSxeNum("SCP","CP_NUM"),,dtoc(dDataBase)}) //Cabecalho


Dbselectarea("SB1")
Dbsetorder(1)

For nX := 1 to len(alista) step 2
aLinha := {}

SB1->(DbSeek(xFilial("SB1")+PadR(alista[nX][1], tamsx3('CP_PRODUTO') [1])))

aadd(aLinha,{"CP_ITEM",'0'+cvaltochar(nX),Nil})
aadd(aLinha,{"CP_PRODUTO", SB1->B1_COD, Nil})
aadd(aLinha,{"CP_UM", SB1->B1_UM, Nil})
aadd(aLinha,{"CP_QUANT", alista[nX][2], Nil})

If !Empty(SB1->B1_SEGUM)
aadd(aLinha,{"CP_SEGUM", SB1->B1_SEGUM, Nil})
aadd(aLinha,{"CP_QTSEGUM", (alista[nX][2]*SB1->B1_CONV),Nil})
EndIf
aadd(aLinha,{"CP_DATPRF", dDataBase, Nil})
aadd(aLinha,{"CP_LOCAL", SB1->B1_LOCPAD, Nil})
aadd(aLinha,{"CP_OBS", alista[nX][3], Nil})

aAdd(aAuto,aLinha)

Next nX

MSExecAuto({|x,y,z,a| mata105(x,y,z,a)},aCab,aAuto,nOpcAuto,aRateio)

if lMsErroAuto
MostraErro()
EndIf

RESET ENVIRONMENT

Return




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;
}
</style>