sexta-feira, 28 de dezembro de 2018

json protheus visual code

Abaixo, modelo Json ( user settings ), utilizado no Visual Code Versão 1.24.1.




{ "editor.fontFamily": "Consolas, 'MS Linedraw', monospace", "files.encoding": "windows1252", "advpl.selectedEnvironment": "PROT14DB2", "advpl.environments": [ { "smartClientPath": "C:\\protheus\\PROT14DB2\\bin\\smartclient\\", "environment": "PROT14DB2", "serverVersion": "131227A", "server": "XXX9999", "port": "5089", "user": "admin", "passwordCipher": "MHNLNG5pRzhsOUcyMjNid0xvS3B4NDJBQTJSeHF3eXRJWXZtU0hDcTBxK21Kamk1NThjbHJhaTh4Ti9uM0VabnNQa3AxeFd1VDNtSklJR1Z6MlU2RGkxWG9Cc3FFZEhsdk1DQ1NDdTZ6Q1A1Wk92Q0dnR05PMHZndHRqaVIwMUM=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" }, { "smartClientPath": "C:\\protheus\\P11V1\\protheus\\bin\\smartclient\\", "environment": "PROTP11", "serverVersion": "131227A", "server": "XXX9999", "port": "5090", "user": "admin", "passwordCipher": "MHNLNG5pRzhsOUcyMjNid0xvS3B4NDJBQTJSeHF3eXRJWXZtU0hDcTBxK21Kamk1NThjbHJhaTh4Ti9uM0VabnNQa3AxeFd1VDNtSklJR1Z6MlU2RGkxWG9Cc3FFZEhsdk1DQ1NDdTZ6Q1A1Wk92Q0dnR05PMHZndHRqaVIwMUM=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" } , { "smartClientPath": "C:\\protheus\\P12Mnt-PROT\\bin\\smartclient\\", "environment": "P12117MNTPROTDB", "serverVersion": "170117A", "server": "XXX9999", "port": "5091", "user": "admin", "passwordCipher": "WTJBcStTdWd0ekYwWDk4ZjB6VGJ1dnVHOEdkT094QlZyRE0vL3M2Zm51WTNBWWxnclVHZ2dlakF2SUIrZ1QvQXV1aHBVSEN6ZEEyOXk1cmRFWlZPWGQrU1VBY0pGNmg3K3ZORDRVRWplN3IwRHJ1LzBzbi9hSmEwdkFEak9sbUM=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" } , { "smartClientPath": "C:\\protheus\\EXTRATORSQL\\bin\\smartclient\\", "environment": "EXTRATORSQL", "serverVersion": "131227A", "server": "XXX9999", "port": "5092", "user": "admin", "passwordCipher": "d2kvM2FGNzkxQmI3Z0E0SHUwaFdHNW5CNzZjWm51by9yTUoyZHVkby96Nm5CaWk4eGU1Zjlhc3dQVmhpMjNSUFVOaHIxTERKSGRXc1dxNkg5OThlbzlURjVLU0lONldyUnZwdjczVG9nVlM5WTA4Szc4Sm5kVXJYdTNnTGlnT0Q=", "includeList": "C:\\protheus\\INCLUDES\\PROTHEUS\\", "language": "PORTUGUESE", "rpoType": "TOP" } ], "advpl.startProgram": "SIGAFAT", "advpl.authorization_generation": "20180101", "advpl.authorization_validation": "20190101", "advpl.authorization_permission": "1", "advpl.authorization_code": "XXXXXXXXXXXXXXXXXXXXXXXXX", "advpl.compileFolderRegex": ".*\\.(prw|prx|apw|aph|tres|png|bmp|tres)", "advpl.pathPatchBuild": "C:\\protheus\\patch\\", "advpl.debug_multiThread": false, "advpl.debug_ignoreSourceNotFound": true, "advpl.debug_showTables": true, "advpl.debug_showPrivates": true, "advpl.debug_showPublic": true, "advpl.debug_showStatics": true, "workbench.colorTheme": "Visual Studio Dark", "mssql.connections": [ { "server": "XXX9999", "database": "XXXXXXX", "authenticationType": "Integrated", "profileName": "sa", "password": "XXX" } ], "git.ignoreMissingGitWarning": true, "explorer.confirmDelete": false }


quarta-feira, 12 de dezembro de 2018

execAuto Documento Entrada MATA103

Abaixo um exemplo de fonte execAuto Documento Entrada MATA103
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

/* execAuto Doc Entrada */

User Function ExecAu103()

Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local aColsCC := {}
Local aCodRet := {}
Local nX := 0
Local nY := 0
Local cDoc := ""
Local lOk := .T.
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.

//| Abertura do ambiente
ConOut(Repl("-",80))
ConOut(PadC("Teste de Inclusao de 1000 documentos de entrada com 20 itens cada",80))

//| Verificacao do ambiente para teste
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"000000000000003")) //Verificar a exist?cia do produto
lOk := .F.
ConOut("Cadastrar produto: 000000000000003")
EndIf

//dbSelectArea("SF4")
//dbSetOrder(1)
//If !SF4->(MsSeek(xFilial("SF4")+"001")) //Verificar a exist?cia do tes
// lOk := .F.
// ConOut("Cadastrar TES: 001")
//EndIf

//dbSelectArea("SE4")
//dbSetOrder(1)
//If !SE4->(MsSeek(xFilial("SE4")+"001")) //Verificar a exist?cia do condi?o de pagamento
// lOk := .F.
//ConOut("Cadastrar condicao de pagamento: 001")
//EndIf

dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+"00000201")) //Verificar a exist?cia do fornecedor
lOk := .F.
ConOut("Cadastrar fornecedor: 00000201 ")
EndIf

If lOk
ConOut("Inicio: "+Time())
//????????????????????????????????
//| Verifica o ?timo documento valido para um fornecedor |
//????????????????????????????????
//dbSelectArea("SF1")
//dbSetOrder(2)
//MsSeek(xFilial("SF1")+"0000001Z",.T.)
//dbSkip(-1)
cDoc := "000001000"//SF1->F1_DOC

For nY := 1 To 3000 //Altere para a quantidade desejada
aCabec := {}
aItens := {}

If Empty(cDoc)
cDoc := StrZero(1,Len(SD1->D1_DOC))
Else
cDoc := Soma1(cDoc)
EndIf

//ExpA1 - Array contendo os dados do cabe?lho da Nota Fiscal de Entrada.
aadd(aCabec,{"F1_TIPO" , "N" , Nil})
aadd(aCabec,{"F1_FORMUL" , " " , Nil})
aadd(aCabec,{"F1_DOC" , cDoc , Nil})
aadd(aCabec,{"F1_SERIE" , "001" , Nil})
aadd(aCabec,{"F1_EMISSAO" , stod('20181206') , Nil})
aadd(aCabec,{"F1_DESPESA" , 0 , Nil})
aadd(aCabec,{"F1_FORNECE" , "000001" , Nil})
aadd(aCabec,{"F1_LOJA" , '01', Nil})
aadd(aCabec,{"F1_ESPECIE" , "SPED" , Nil})
aadd(aCabec,{"F1_COND" , "001" , Nil})
aadd(aCabec,{"F1_DESCONT" , 0 , Nil})
aadd(aCabec,{"F1_SEGURO" , 0 , Nil})
aadd(aCabec,{"F1_FRETE" , 0 , Nil})
aadd(aCabec,{"F1_VALMERC" , 100 , Nil})
aadd(aCabec,{"F1_VALBRUT" , 100 , Nil})
aadd(aCabec,{"F1_MOEDA" , 1 , Nil})
aadd(aCabec,{"F1_TXMOEDA" , 0 , Nil})
aadd(aCabec,{"F1_STATUS" , "A" , Nil})

//ExpA2- Array contendo os itens da Nota Fiscal de Entrada.
For nX := 1 To 1 //Altere para a quantidade desejada
aLinha := {}
aadd(aLinha,{"D1_COD" , "000000000000003" , Nil})
aadd(aLinha,{"D1_UM" , "CX" , Nil})
aadd(aLinha,{"D1_QUANT" , 1 , Nil})
aadd(aLinha,{"D1_VUNIT" , 5000 , Nil})
aadd(aLinha,{"D1_TOTAL" , 5000 , Nil})
aadd(aLinha,{"D1_TES" , "001" , Nil})
aadd(aLinha,{"D1_SEGURO" , 0 , Nil})
aadd(aLinha,{"D1_VALFRE" , 0 , Nil})
aadd(aLinha,{"D1_DESPESA" , 0 , Nil})
aadd(aLinha,{"AUTDELETA" , "N" , Nil}) // Incluir sempre no ?timo elemento do array de cada item

aadd(aItens,aLinha)
Next nX

MATA103(aCabec,aItens,3,,,,,/*aColsCC*/,,,/*aCodRet*/) //ExpN1 - Op?o desejada: 3-Inclus?; 4-Altera?o ; 5-Exclus?

If !lMsErroAuto
ConOut("Incluido com sucesso! "+cDoc)
Else
MostraErro()
ConOut("Erro na inclusao!")
EndIf
Next nY
ConOut("Fim : "+Time())
EndIf

Return