Histórico da Página
Exemplo de Execução Automática Solicitações de Compras - MATA110
Linha de Produto: | Protheus | ||||
Segmento: | Manufatura | ||||
Módulo: | SIGACOM | ||||
Rotina: |
| ||||
Cadastros Iniciais: | Produto, Centro de Custo, Conta Contábil, Item Contábil, Classe Valor | ||||
Tickets relacionados | 769289 | ||||
Requisito: | DMANMAT02-226 | ||||
País(es): | Todos | ||||
Banco(s) de Dados: | Todos | ||||
Tabelas Utilizadas: | SC1, SB1, SCX, AFG | ||||
Sistema(s) Operacional(is): | Todos |
ExecAuto MATA110
Descrição: | Essa rotina permite o registro de qualquer Solicitação de Compras de mercadorias na empresa. A entrada das solicitações inicia o processo de compras. | |||||||||||||||||||||||||||||||||
Sintaxe: | MATA110 - Solicitação de Compras ( [ PARAMIXB1 ] [ PARAMIXB2 ] [ PARAMIXB3 ] [ PARAMIXB4 ] [ PARAMIXB5 ] [ PARAMIXB6 ] [ PARAMIXB7 ] ) | |||||||||||||||||||||||||||||||||
Programa Fonte: | MATA110.prw | |||||||||||||||||||||||||||||||||
Retorno: | NIL | |||||||||||||||||||||||||||||||||
Parâmetros: |
|
Exemplo 1 - Teste de Inclusão, Alteração e Exclusão Simples:
#Include 'Protheus.ch'
#include "tbiconn.ch"
Local aCabSC := {}
Local aItensSC := {}
Local aLinhaC1 := {}
Local nX := 0
Local nY := 0
Local cDoc := ""
Local lOk := .T.
Local nAux := 0
Local lAuxInclui := .T.
Local lAuxAltera := .T.
Local lAuxExclui := .T.
Private lMsHelpAuto := .T.
PRIVATE lMsErroAuto := .F.
Observações: | A opção 7 (Aprovação) da rotina automática do MATA110 está disponível apenas para quem não utiliza o módulo SIGAGSP. O RDMAKE de aprovação devera conter o campo C1_APROV no cabeçalho. É necessário informar o valor desejado: "L" = Liberado Realizando dessa forma o RDMAKE, a liberação/rejeição/bloqueio será realizada sem problemas. Observação: Utilizar usuário e senha no Prepare Environment para que o campo C1_NOMAPRO seja preenchido. |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#Include 'Protheus.ch'
#include "tbiconn.ch"
User Function MyMata110()
Local aCabSC := {}
Local aItensSC := {}
Local aLinhaC1 := {}
Local nX := 0
Local nY := 0
Local cDoc := ""
Local lOk := .T.
Local nAux := 0
Local lAuxInclui := .T.
Local lAuxAltera := .T.
Local lAuxExclui := .T.
Private lMsHelpAuto := .T.
PRIVATE lMsErroAuto := .F.
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Abertura do ambiente |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
//| Abertura do ambiente |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ConOut(Repl("-",80)) |
ConOut(PadC(OemToAnsi("Teste de Inclusao, Alteracao e Exclusao de Solicitacao de Compras"),80)) |
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SC1","SB1" |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Verificacao do ambiente para teste | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
DbSelectArea("SC1") |
DbSelectArea("SB1") |
DbSetOrder(1) |
If !SB1->(MsSeek(xFilial("SB1")+"01")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar produto: 01")) |
EndIf |
If !SB1->(MsSeek(xFilial("SB1")+"02")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar produto: 02")) |
EndIf |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Inicia o teste | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
If lOk |
ConOut(OemToAnsi("Inicio: ")+Time()) |
For nY := 1 To 2 |
ConOut(PadC(OemToAnsi("Inicio Repeticao " + cValToChar(nY)),80)) |
aCabSC := {} |
aItensSC := {} |
If lAuxInclui |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Verifica numero da SC | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
cDoc := GetSXENum("SC1","C1_NUM") |
SC1->(dbSetOrder(1)) |
While SC1->(dbSeek(xFilial("SC1")+cDoc)) |
ConfirmSX8() |
cDoc := GetSXENum("SC1","C1_NUM") |
EndDo |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Monta cabecalho | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aadd(aCabSC,{"C1_NUM" ,cDoc}) |
aadd(aCabSC,{"C1_SOLICIT","Administrador"}) |
aadd(aCabSC,{"C1_EMISSAO",dDataBase}) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Monta itens | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
ConOut(OemToAnsi("Inclusao de SC com 2 itens")) |
For nX := 1 To 2 |
aLinhaC1 := {} |
aadd(aLinhaC1,{"C1_ITEM" ,StrZero(nx,len(SC1->C1_ITEM)),Nil}) |
aadd(aLinhaC1,{"C1_PRODUTO","01",Nil}) |
aadd(aLinhaC1,{"C1_QUANT" ,1 ,Nil}) |
aadd(aItensSC,aLinhaC1) |
Next nX |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Inclusao - Execução Rotina Automática | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
MSExecAuto({|x,y| mata110(x,y)},aCabSC,aItensSC) |
If !lMsErroAuto |
ConOut(OemToAnsi("Incluido com sucesso! ")+cDoc) |
Else |
ConOut(OemToAnsi("Erro na inclusao!")+cDoc) |
aErrPCAuto := GETAUTOGRLOG() |
For nAux := 1 to Len(aErrPCAuto) |
Conout(aErrPCAuto[nAux]) |
Next nAux |
EndIf |
Else |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Pega Ultima SC | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
SC1->(dbSetOrder(1)) |
SC1->(DbGoTop()) |
While SC1->(!Eof()) |
cDoc := SC1->C1_NUM |
SC1->(DbSkip()) |
EndDo |
EndIf |
If lAuxAltera |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Alteração - Monta cabecalho | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aCabSC := {} |
aadd(aCabSC,{"C1_NUM" ,cDoc}) |
aadd(aCabSC,{"C1_SOLICIT","Administrador"}) |
aadd(aCabSC,{"C1_EMISSAO",dDataBase}) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Alteração - Monta itens | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
ConOut(OemToAnsi("Alteracao de SC para 3 itens")) |
aItensSC := {} |
For nX := 1 To 3 |
aLinhaC1 := {} |
aadd(aLinhaC1,{"C1_ITEM" ,StrZero(nx,len(SC1->C1_ITEM)),Nil}) |
aadd(aLinhaC1,{"C1_PRODUTO","01",Nil}) |
aadd(aLinhaC1,{"C1_QUANT" ,1+nX ,Nil}) |
aadd(aItensSC,aLinhaC1) |
Next nX |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Alteração - Execução Rotina Automática | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
MSExecAuto({|x,y| mata110(x,y,4)},aCabSC,aItensSC) |
If !lMsErroAuto |
ConOut(OemToAnsi("Alterado com sucesso! ")+cDoc) |
Else |
ConOut(OemToAnsi("Erro na alteracao!")+cDoc) |
aErrPCAuto := GETAUTOGRLOG() |
For nAux := 1 to Len(aErrPCAuto) |
Conout(aErrPCAuto[nAux]) |
Next nAux |
EndIf |
EndIf |
If lAuxExclui |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Exclusão - Monta cabecalho | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
ConOut(OemToAnsi("Exclusao de SC")) |
aCabSC := {} |
aadd(aCabSC,{"C1_NUM" ,cDoc}) |
aadd(aCabSC,{"C1_SOLICIT","Administrador"}) |
aadd(aCabSC,{"C1_EMISSAO",dDataBase}) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Exclusão - Monta itens | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aItensSC := {} |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Exclusão - Execução Rotina Automática | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
MSExecAuto({|x,y| mata110(x,y,5)},aCabSC,aItensSC) |
If !lMsErroAuto |
ConOut(OemToAnsi("Excluido com sucesso! ")+cDoc) |
Else |
ConOut(OemToAnsi("Erro na exclusao!"+cDoc)) |
aErrPCAuto := GETAUTOGRLOG() |
For nAux := 1 to Len(aErrPCAuto) |
Conout(aErrPCAuto[nAux]) |
Next nAux |
EndIf |
EndIf |
Next nY |
ConOut(OemToAnsi("Fim : ")+Time()) |
EndIf |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Fechamento do ambiente | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
RESET ENVIRONMENT |
Return(.T.) |
Bloco de código | ||||||
---|---|---|---|---|---|---|
|
| |||||
#Include |
'Protheus.ch' |
#include "tbiconn.ch" |
User Function MyMa110_RAT() |
Local aCabSC := {} |
Local aItensSC := {} |
Local aLinhaC1 := {} |
Local nX := 0 |
Local nY := 0 |
Local cDoc := "" |
Local lOk := .T. |
Local aLinhaCX := {} |
Local aRateioCX := {} |
Local nAux := 0 |
Local lAuxInclui := .T. |
Local lAuxAltera := .T. |
Local lAuxExclui := .T. |
Private lMsErroAuto := .F. |
Private lAutoErrNoFile := .T. |
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SC1","SB1","SCX" |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Verificacao do ambiente para teste | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
DbSelectArea("SC1") |
DbSelectArea("SB1") |
DbSetOrder(1) |
If !SB1->(MsSeek(xFilial("SB1")+"01")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar produto: 01")) |
EndIf |
If !SB1->(MsSeek(xFilial("SB1")+"02")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar produto: 02")) |
EndIf |
DbSelectArea("CTT") |
DbSetOrder(1) |
If !CTT->(MsSeek(xFilial("CTT")+"CC01")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar centro de custo: CC01 (Rotina CTBA180)")) |
EndIf |
If !CTT->(MsSeek(xFilial("CTT")+"CC02")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar centro de custo: CC02 (Rotina CTBA180)")) |
EndIf |
DbSelectArea("CT1") |
DbSetOrder(1) |
If !CT1->(MsSeek(xFilial("CT1")+"CTA01")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar conta: CTA01 (Rotina CTBA020)")) |
EndIf |
If !CT1->(MsSeek(xFilial("CT1")+"CTA02")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar conta: CTA02 (Rotina CTBA020)")) |
EndIf |
/*DbSelectArea("CTD") |
DbSetOrder(1) |
If !CTD->(MsSeek(xFilial("CTD")+"IT01")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar item contabil: IT01 (Rotina CTBA180)")) |
EndIf |
If !CTD->(MsSeek(xFilial("CTD")+"IT02")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar item contabil: IT02 (Rotina CTBA180)")) |
EndIf*/ |
/*DbSelectArea("CTH") |
DbSetOrder(1) |
If !CTH->(MsSeek(xFilial("CTH")+"CV01")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar classe valor: CV01 (Rotina CTBA180)")) |
EndIf |
If !CTH->(MsSeek(xFilial("CTH")+"CV02")) |
lOk := .F. |
ConOut(OemToAnsi("Cadastrar classe valor: CV02 (Rotina CTBA180)")) |
EndIf*/ |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Inicia o teste | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
If lOk |
ConOut(OemToAnsi("Inicio: ")+Time()) |
For nY := 1 To 2 |
ConOut(PadC(OemToAnsi("Inicio Repeticao " + cValToChar(nY)),80)) |
aCabSC := {} |
aItensSC := {} |
If lAuxInclui |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Verifica numero da SC | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
cDoc := GetSXENum("SC1","C1_NUM") |
SC1->(dbSetOrder(1)) |
While SC1->(dbSeek(xFilial("SC1")+cDoc)) |
ConfirmSX8() |
cDoc := GetSXENum("SC1","C1_NUM") |
EndDo |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Monta cabecalho | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aadd(aCabSC,{"C1_NUM" ,cDoc}) |
aadd(aCabSC,{"C1_SOLICIT","Administrador"}) |
aadd(aCabSC,{"C1_EMISSAO",dDataBase}) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Monta itens | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
ConOut(OemToAnsi("Inclusao de SC com 2 itens - COM RATEIO SCX")) |
aItensSC := {} |
aRateioCX := {} |
For nX := 1 To 2 |
aLinhaC1 := {} |
aadd(aLinhaC1,{"C1_ITEM" ,StrZero(nX,len(SC1->C1_ITEM)),Nil}) |
aadd(aLinhaC1,{"C1_PRODUTO","01",Nil}) |
aadd(aLinhaC1,{"C1_QUANT" ,1 ,Nil}) |
aadd(aLinhaC1,{"C1_RATEIO" ,1 ,Nil}) |
aadd(aItensSC,aLinhaC1) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Monta itens rateio | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aAdd(aRateioCX,{StrZero(nX,len(SC1->C1_ITEM)),{}}) //Item da SC1 |
// Primeiro item do rateio |
aLinhaCX := {} |
//aAdd(aLinhaCX,{"CX_SOLICIT",cDoc,NIL}) |
aAdd(aLinhaCX,{"CX_ITEM",StrZero(1,Len(SCX->CX_ITEM)),NIL}) |
aAdd(aLinhaCX,{"CX_PERC",50,NIL}) |
aAdd(aLinhaCX,{"CX_CC","CC01",NIL}) |
aAdd(aLinhaCX,{"CX_CONTA","CTA01",NIL}) |
//aAdd(aLinhaCX,{"CX_ITEMCTA","IT01",NIL}) |
//aAdd(aLinhaCX,{"CX_CLVL","CV01",NIL}) |
aAdd(aRateioCX[nX][2],aLinhaCX) |
// Segundo item do rateio |
aLinhaCX := {} |
//aAdd(aLinhaCX,{"CX_SOLICIT",cDoc,NIL}) |
aAdd(aLinhaCX,{"CX_ITEM",StrZero(2,Len(SCX->CX_ITEM)),NIL}) |
aAdd(aLinhaCX,{"CX_PERC",50,NIL}) |
aAdd(aLinhaCX,{"CX_CC","CC02",NIL}) |
aAdd(aLinhaCX,{"CX_CONTA","CTA02",NIL}) |
//aAdd(aLinhaCX,{"CX_ITEMCTA","IT02",NIL}) |
//aAdd(aLinhaCX,{"CX_CLVL","CV02",NIL}) |
aAdd(aRateioCX[nX][2],aLinhaCX) |
Next nX |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Executa rotina automatica | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
MSExecAuto({|w,x,y,z| MATA110(w,x,y,,,z)},aCabSC,aItensSC,3,aRateioCX) |
If !lMsErroAuto |
ConOut(OemToAnsi("Incluido com sucesso! ")+cDoc) |
Else |
ConOut(OemToAnsi("Erro na inclusao!")+cDoc) |
aErrPCAuto := GETAUTOGRLOG() |
For nAux := 1 to Len(aErrPCAuto) |
Conout(aErrPCAuto[nAux]) |
Next nAux |
EndIf |
Else |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Pega Ultima SC | |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ |
SC1->(dbSetOrder(1)) |
SC1->(DbGoTop()) |
While SC1->(!Eof()) |
cDoc := SC1->C1_NUM |
SC1->(DbSkip()) |
EndDo |
EndIf |
If lAuxAltera |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Alteração - Monta cabecalho | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aCabSC := {} |
aadd(aCabSC,{"C1_NUM" ,cDoc}) |
aadd(aCabSC,{"C1_SOLICIT","Administrador"}) |
aadd(aCabSC,{"C1_EMISSAO",dDataBase}) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Alteração - Monta itens | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
ConOut(OemToAnsi("Alteracao de SC para 3 itens - COM RATEIO SCX")) |
aItensSC := {} |
aRateioCX := {} |
For nX := 1 To 3 |
aLinhaC1 := {} |
aadd(aLinhaC1,{"C1_ITEM" ,StrZero(nX,len(SC1->C1_ITEM)),Nil}) |
aadd(aLinhaC1,{"C1_PRODUTO","01",Nil}) |
aadd(aLinhaC1,{"C1_QUANT" ,1+nX ,Nil}) |
aadd(aLinhaC1,{"C1_RATEIO" ,1 ,Nil}) |
aadd(aItensSC,aLinhaC1) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Monta itens rateio | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aAdd(aRateioCX,{StrZero(nX,len(SC1->C1_ITEM)),{}}) //Item da SC1 |
// Primeiro item do rateio |
aLinhaCX := {} |
//aAdd(aLinhaCX,{"CX_SOLICIT",cDoc,NIL}) |
aAdd(aLinhaCX,{"CX_ITEM",StrZero(1,Len(SCX->CX_ITEM)),NIL}) |
aAdd(aLinhaCX,{"CX_PERC",25,NIL}) |
aAdd(aLinhaCX,{"CX_CC","CC01",NIL}) |
aAdd(aLinhaCX,{"CX_CONTA","CTA01",NIL}) |
//aAdd(aLinhaCX,{"CX_ITEMCTA","IT01",NIL}) |
//aAdd(aLinhaCX,{"CX_CLVL","CV01",NIL}) |
aAdd(aRateioCX[nX][2],aLinhaCX) |
// Segundo item do rateio |
aLinhaCX := {} |
//aAdd(aLinhaCX,{"CX_SOLICIT",cDoc,NIL}) |
aAdd(aLinhaCX,{"CX_ITEM",StrZero(2,Len(SCX->CX_ITEM)),NIL}) |
aAdd(aLinhaCX,{"CX_PERC",75,NIL}) |
aAdd(aLinhaCX,{"CX_CC","CC02",NIL}) |
aAdd(aLinhaCX,{"CX_CONTA","CTA02",NIL}) |
//aAdd(aLinhaCX,{"CX_ITEMCTA","IT02",NIL}) |
//aAdd(aLinhaCX,{"CX_CLVL","CV02",NIL}) |
aAdd(aRateioCX[nX][2],aLinhaCX) |
Next nX |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Executa rotina automatica | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
MSExecAuto({|w,x,y,z| MATA110(w,x,y,,,z)},aCabSC,aItensSC,4,aRateioCX) |
If !lMsErroAuto |
ConOut(OemToAnsi("Alterado com sucesso! ")+cDoc) |
Else |
ConOut(OemToAnsi("Erro na alteracao!")+cDoc) |
aErrPCAuto := GETAUTOGRLOG() |
For nAux := 1 to Len(aErrPCAuto) |
Conout(aErrPCAuto[nAux]) |
Next nAux |
EndIf |
EndIf |
If lAuxExclui |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Exclusão - Monta cabecalho | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
ConOut(OemToAnsi("Exclusao de SC - COM RATEIO SCX")) |
aCabSC := {} |
aadd(aCabSC,{"C1_NUM" ,cDoc}) |
aadd(aCabSC,{"C1_SOLICIT","Administrador"}) |
aadd(aCabSC,{"C1_EMISSAO",dDataBase}) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Teste de Exclusão - Monta itens | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
aItensSC := {} |
aRateioCX := {} |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
//| Executa rotina automatica | |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ |
MSExecAuto({|w,x,y,z| MATA110(w,x,y,,,z)},aCabSC,aItensSC,5,aRateioCX) |
If !lMsErroAuto |
ConOut(OemToAnsi("Excluido com sucesso! ")+cDoc)
Else
ConOut(OemToAnsi("Erro na exclusao!"+cDoc))
aErrPCAuto := GETAUTOGRLOG()
For nAux := 1 to Len(aErrPCAuto)
Conout(aErrPCAuto[nAux])
Next nAux
EndIf
EndIf
Next nY
ConOut(OemToAnsi("Fim : ")+Time())
EndIf
ConOut(OemToAnsi("Excluido com sucesso! ")+cDoc)
Else
ConOut(OemToAnsi("Erro na exclusao!"+cDoc))
aErrPCAuto := GETAUTOGRLOG()
For nAux := 1 to Len(aErrPCAuto)
Conout(aErrPCAuto[nAux])
Next nAux
EndIf
EndIf
Next nY
ConOut(OemToAnsi("Fim : ")+Time())
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Fechamento do ambiente |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
RESET ENVIRONMENT
Return |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function EXEC110()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nOpc := 7 //Aprovação
Local nTotItens := 1
Local nY := 0
Local nX := 0
Local cDoc := ""
Local nReg := 1
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" USER "ADMIN" PASSWORD "1234"
cDoc := "SC0001" //Numero da SC a ser utilizada na aprovação
SC1->(dbSeek(xFilial("SC1")+cDoc)) //Deve-se posicionar
aadd(aCabec,{"C1_FILIAL" ,xFilial("SC1")})
aadd(aCabec,{"C1_NUM" ,cDoc})
aadd(aCabec,{"C1_EMISSAO" ,dDataBase})
aadd(aCabec,{"C1_SOLICIT" ,"Administrador"})
aadd(aCabec,{"C1_APROV" ,"B"}) //Informar "L - Liberado" / "R - Rejeitado" / "B - Bloqueado"
aadd(aCabec,{"C1_ITEM" ,"0001"}) //Informar se aprovação for por Item, caso se SC inteira, não é necessário informar C1_ITEM
For nX := 1 To nTotItens
aLinha := {}
aadd(aLinha,{"C1_FILIAL" ,xFilial("SC1")})
aadd(aLinha,{"C1_ITEM" ,StrZero(nx,len(SC1->C1_ITEM)),Nil})
aadd(aLinha,{"C1_PRODUTO",PadR("01",TamSx3("C1_PRODUTO")[1]),Nil})
aadd(aLinha,{"C1_LOCAL" ,"01",Nil})
aadd(aLinha,{"C1_QUANT" ,nX,Nil})
aadd(aItens,aLinha)
Next nX
MsExecAuto({|u,v,x,y,z| MATA110(u,v,x)},aCabec,aItens,nOpc)
If !lMsErroAuto
ConOut(OemToAnsi(" Incluido SC: ")+cDoc)
Else
MostraErro()
ConOut(OemToAnsi("Erro na inclusao!"))
EndIf
Next nY
RESET ENVIRONMENT
Return |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
User Function EXEC110()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nOpc := 4
Local nTotItens := 3
Local nY := 0
Local nX := 0
Local cDoc := ""
Local nReg := 1
Local cInicio := ""
Local cTimeIni := ""
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM"
cInicio := "Inicio: " + Time()
cTimeIni := Time()
Conout(cInicio)
For nY := 1 To nReg
aCabec := {}
aItens := {}
lMsErroAuto := .F.
If nOpc == 3
cDoc := "SCTOT1"
Elseif nOpc <> 3
cDoc := "SCTOT1"
SC1->(dbSeek(xFilial("SC1")+cDoc))
Endif
aadd(aCabec,{"C1_FILIAL" ,xFilial("SC1")})
aadd(aCabec,{"C1_NUM" ,cDoc})
aadd(aCabec,{"C1_EMISSAO" ,dDataBase})
aadd(aCabec,{"C1_SOLICIT" ,"Administrador"})
For nX := 1 To nTotItens
aLinha := {}
aadd(aLinha,{"C1_FILIAL" ,xFilial("SC1")})
aadd(aLinha,{"C1_ITEM" ,StrZero(nx,len(SC1->C1_ITEM)),Nil})
If nX%2 == 0
aadd(aLinha,{"C1_PRODUTO",PadR("TT005",TamSx3("C1_PRODUTO")[1]),Nil})
aadd(aLinha,{"C1_LOCAL" ,"01",Nil})
Else
aadd(aLinha,{"C1_PRODUTO",PadR("TT006",TamSx3("C1_PRODUTO")[1]),Nil})
aadd(aLinha,{"C1_LOCAL" ,"01",Nil})
Endif
aadd(aLinha,{"C1_QUANT" ,nX,Nil})
If nOpc == 4
aAdd(aLinha,{"LINPOS","C1_ITEM" ,StrZero(nx,len(SC1->C1_ITEM))})
If StrZero(nx,len(SC1->C1_ITEM)) == "0002"
aAdd(aLinha,{"AUTDELETA","S" ,Nil})
Else
aAdd(aLinha,{"AUTDELETA","N" ,Nil})
Endif
Endif
aadd(aItens,aLinha)
Next nX
MsExecAuto({|u,v,x,y,z| MATA110(u,v,x)},aCabec,aItens,nOpc)
If !lMsErroAuto
ConOut(OemToAnsi(" Alterada SC: ")+cDoc + " - " + AllTrim(Str(nY)) + " de " + AllTrim(Str(nReg)))
Else
MostraErro()
ConOut(OemToAnsi("Erro na alteracao!"))
Exit
EndIf
Next nY
Conout(cInicio + " - Fim: " + Time() + " - Tempo total: " + ElapTime(cTimeIni,Time()))
RESET ENVIRONMENT
Return |
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#Include 'Protheus.ch'
#include "tbiconn.ch"
User Function MyMata110()
Local aCabSC := {}
Local aItensSC := {}
Local aLinhaC1 := {}
Local aProd := {"PRODTMKA2710001"}
Local aHeaderBkp := {}
Local nB1
Local nItens
Local cDoc := ""
Local lOk := .T.
Local lAuxInclui := .T.
Local lAuxAltera := .T.
Local lAuxExclui := .T.
Private lMsHelpAuto := .T.
Private lMsErroAuto := .F.
// Abertura do ambiente |
//PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" TABLES "SC1","SB1"
//Verificacao do ambiente para teste
DbSelectArea("SC1")
DbSelectArea("SB1")
DbSetOrder(1)
For nB1 := 1 To Len(aProd)
If !SB1->(MsSeek(xFilial("SB1")+PadR(aProd[nB1],TamSx3("B1_COD")[1])))
lOk := .F.
ConOut(OemToAnsi("Cadastrar produto: "+aProd[nB1]+" " ))
EndIf
Next nB1
If lOk
If lAuxInclui
aCabSC := {}
aItensSC := {}
aLinhaC1 := {}
cDoc := GetSXENum("SC1","C1_NUM")
SC1->(dbSetOrder(1))
While SC1->(dbSeek(xFilial("SC1")+cDoc))
ConfirmSX8()
cDoc := GetSXENum("SC1","C1_NUM")
EndDo
aadd(aCabSC,{"C1_NUM" ,cDoc})
aadd(aCabSC,{"C1_SOLICIT","Administrador"})
aadd(aCabSC,{"C1_EMISSAO",dDataBase})
For nItens := 1 To Len(aProd)
aLinhaC1 := {}
aadd(aLinhaC1,{"C1_ITEM" ,StrZero(nItens,Len(SC1->C1_ITEM)),Nil})
aadd(aLinhaC1,{"C1_PRODUTO",PadR(aProd[nItens],TamSx3("B1_COD")[1]),Nil})
aadd(aLinhaC1,{"C1_QUANT" ,1 ,Nil})
aadd(aItensSC,aLinhaC1)
Next nItens
////ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//Guardo o aHeader utilizado na rotina de origem e o apago posteriormente
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
aHeaderBkp := aHeader
aHeader := {}
MSExecAuto({|x,y,z| Mata110(x,y,z)},aCabSC,aItensSC,3)
////ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Restauro o aHeader da rotina de origem após a execução do MsExecAuto
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
aHeader := aHeaderBkp
If !lMsErroAuto
ConOut(OemToAnsi("Incluido com sucesso! ")+cDoc)
Else
MostraErro()
ConOut(OemToAnsi("Erro na inclusao!")+cDoc)
EndIf
EndIf
If lAuxAltera
aCabSC := {}
aItensSC := {}
aLinhaC1 := {}
cDoc := "ZC0476"
aadd(aCabSC,{"C1_NUM" ,cDoc})
aadd(aCabSC,{"C1_SOLICIT","Administrador"})
aadd(aCabSC,{"C1_EMISSAO",dDataBase})
For nItens := 1 To Len(aProd)
aLinhaC1 := {}
aadd(aLinhaC1,{"C1_ITEM" ,StrZero(nItens,Len(SC1->C1_ITEM)),Nil})
aadd(aLinhaC1,{"C1_PRODUTO",PadR(aProd[nItens],TamSx3("B1_COD")[1]),Nil})
aadd(aLinhaC1,{"C1_QUANT" ,1 ,Nil})
aadd(aItensSC,aLinhaC1)
Next nItens
////ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//Guardo o aHeader utilizado na rotina de origem e o apago posteriormente
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
aHeaderBkp := aHeader
aHeader := {}
MSExecAuto({|x,y,z| Mata110(x,y,z)},aCabSC,aItensSC,4)
////ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Restauro o aHeader da rotina de origem após a execução do MsExecAuto
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
aHeader := aHeaderBkp
If !lMsErroAuto
ConOut(OemToAnsi("Alterado com sucesso! ")+cDoc)
Else
MostraErro()
ConOut(OemToAnsi("Erro na alteracao!")+cDoc)
EndIf
EndIf
If lAuxExclui
aCabSC := {}
aItensSC := {}
aLinhaC1 := {}
cDoc := "ZC0477"
aadd(aCabSC,{"C1_NUM" ,cDoc})
aadd(aCabSC,{"C1_SOLICIT","Administrador"})
aadd(aCabSC,{"C1_EMISSAO",dDataBase})
////ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//Guardo o aHeader utilizado na rotina de origem e o apago posteriormente
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
aHeaderBkp := aHeader
aHeader := {}
MSExecAuto({|x,y,z| Mata110(x,y,z)},aCabSC,aItensSC,5)
////ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Restauro o aHeader da rotina de origem após a execução do MsExecAuto
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
aHeader := aHeaderBkp
If !lMsErroAuto
ConOut(OemToAnsi("Excluido com sucesso! ")+cDoc)
Else
MostraErro()
ConOut(OemToAnsi("Erro na exclusao!"+cDoc))
EndIf
EndIf
EndIf
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Fechamento do ambiente |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//RESET ENVIRONMENT
Return(.T.) |
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Fechamento do ambiente |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
RESET ENVIRONMENT