No vídeo de hoje, vamos demonstrar em como abrir a tela do Pedido de Compra já com os dados preenchidos para inclusão de informações.
A dúvida de hoje, nos perguntaram, se seria possível montar a tela de Pedido de Compras com os dados já pré informados e o usuário só analisar e clicar em confirmar.
Pensando nisso, montamos um exemplo, onde vamos mostrar como através do ExecAuto da MATA121 usar a parametrização dessa rotina chamada lWhenGet que serve para abrir a tela para informarmos os dados.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas TLPP
#Include "tlpp-core.th"
//Declaração da namespace
Namespace custom.terminal.youtube
/*/{Protheus.doc} User Function video0178
Função para abrir o pedido de compra já preenchido
@type Function
@author Atilio
@since 15/08/2024
@example custom.terminal.youtube.u_video0178()
/*/
User Function video0178()
Local aArea := FWGetArea() As Array
Local cSupplierId := "F00001" As Character
Local cSupplierStore := "01" As Character
Local cPaymentCondition := "C01" As Character
Local dDate := Date() As Date
Local nCurrent := 0 As Numeric
Local aProducts := {} As Array
Local aSC7Header := {} As Array
Local aTempLine := {} As Array
Local aSC7Lines := {} As Array
Local cCurrentItem := Replicate("0", TamSX3("C7_ITEM")[1]) As Character
Private lMsErroAuto := .F. As Logical
//Adiciona alguns produtos
aAdd(aProducts, {"F0001", 2, 1.99})
aAdd(aProducts, {"F0003", 7, 5.99})
//Cabeçalho do pedido de compras
aSC7Header := {;
{"C7_FILIAL" , cFilAnt , Nil},;
{"C7_FORNECE" , cSupplierId , Nil},;
{"C7_LOJA" , cSupplierStore , Nil},;
{"C7_COND" , cPaymentCondition , Nil},;
{"C7_EMISSAO" , dDate , Nil},;
{'C7_MOEDA' , 1 , Nil},;
{"C7_CONTATO" , "" , Nil},;
{"C7_FILENT" , cFilAnt , Nil},;
{"C7_TIPO" , "1" , Nil},;
{'C7_TXMOEDA' , 0 , Nil};
}
//Percorre os produtos
For nCurrent := 1 To Len(aProducts)
cCurrentItem := Soma1(cCurrentItem)
aTempLine := {}
aAdd(aTempLine, {"C7_ITEM" , cCurrentItem , Nil} )
aAdd(aTempLine, {"C7_PRODUTO" , aProducts[nCurrent][1] , Nil} )
aAdd(aTempLine, {"C7_QUANT" , aProducts[nCurrent][2] , Nil} )
aAdd(aTempLine, {"C7_PRECO" , aProducts[nCurrent][3] , Nil} )
aAdd(aTempLine, {"C7_TOTAL" , aProducts[nCurrent][2] * aProducts[nCurrent][3] , Nil} )
aAdd(aSC7Lines, aClone(aTempLine))
Next
//Inicia o controle de transações
Begin Transaction
//Aciona a criação do pedido de compras
MSExecAuto({|v, x, y, z, w| MATA120(v, x, y, z, w) }, ;
1,; //nFuncao = 1 - Ped. Compra; 2 - Aut. Entrega
aSC7Header,; //xAutoCab = Campos do Cabeçalho
aSC7Lines,; //xAutoItens = Campos dos Itens
3,; //nOpcAuto = 3 - Inclusão; 4 - Alteração; 5 - Exclusão
.T.; //lWhenGet = .T. abre a tela; .F. faz a operação sem abrir a tela
)
//Se houve falha
If lMsErroAuto
MostraErro()
DisarmTransaction()
//Senão, exibe a mensagem
Else
FWAlertSuccess("Pedido " + SC7->C7_NUM + " incluido com sucesso!", "Sucesso")
EndIf
End Transaction
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.