Tabela de Preço Via Execauto
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Serviços | ||||
Módulo: | Faturamento | ||||
Rotina: |
| ||||
País(es): | Todos | ||||
Banco(s) de Dados: | Todos | ||||
Tabelas Utilizadas: | DA0 - Cabeçalho da tabela de preço DA1 - Itens da tabela de preço | ||||
Sistema(s) Operacional(is): | Windows / Linux |
Descrição
Executar a rotina automática de manutenção das tabelas de preço.
Tipo de execução para a rotina automática.
3 = "Incluir"
4 = "Alterar"
5 = "Excluir"
Execauto
Descrição: | Execauto de manutenção das tabelas de preço | ||||||||||||||||
Localização: | OMSA010.PRX | ||||||||||||||||
Eventos: | 3 = "Incluir" | ||||||||||||||||
Parâmetros: |
|
Exemplo:
//Obs: Este modelo de utilização é valido apenas para o release 11.8 e versões futuras.
#include "totvs.ch" #include "tbiconn.ch" #include "fwmvcdef.ch" User Function MyOMSA010() Local aCabec := {} Local aItens := {} Local aLinha := {} Local nY := 0 Local lOk := .T. PRIVATE lMsErroAuto := .F. ConOut(Repl("-",80)) //???????????????????????????????? //| Verificacao do ambiente para teste | //???????????????????????????????? dbSelectArea("SB1") dbSetOrder(1) If !SB1->(MsSeek(xFilial("SB1")+"PA001")) lOk := .F. ConOut("Cadastrar produto: PA001") EndIf If !SB1->(MsSeek(xFilial("SB1")+"PA002")) lOk := .F. ConOut("Cadastrar produto: PA002") EndIf If lOk ConOut("Inicio: "+Time()) //???????????????????????????????? //| Teste de Inclusao | //???????????????????????????????? For nY := 1 To 1 aCabec := {} aItens := {} aadd(aCabec,{"DA0_DESCRI" ,"TESTE DE TABELA",Nil}) aLinha := {} aadd(aLinha,{"DA1_ITEM","0001"}) aadd(aLinha,{"DA1_CODPRO","PA001"}) aadd(aLinha,{"DA1_PRCVEN",10,Nil}) aadd(aItens,aLinha) aLinha := {} aadd(aLinha,{"DA1_ITEM","0002"}) aadd(aLinha,{"DA1_CODPRO","PA002"}) aadd(aLinha,{"DA1_PRCVEN",10,Nil}) aadd(aItens,aLinha) MSExecAuto({|x,y,z| Omsa010(x,y,z)},aCabec,aItens,3) If !lMsErroAuto ConOut("Incluido com sucesso! ") Else ConOut("Erro na inclusao!") EndIf Next nY ConOut("Fim : "+Time()) //???????????????????????????????? //| Teste de alteracao | //???????????????????????????????? aCabec := {} aItens := {} For nY := 1 To 1 aCabec := {} aItens := {} aadd(aCabec,{"DA0_CODTAB" ,DA0->DA0_CODTAB,Nil}) aadd(aCabec,{"DA0_DESCRI" ,"TESTE DE TABELA",Nil}) aLinha := {} aadd(aLinha,{"LINPOS","DA1_ITEM","0001"}) aadd(aLinha,{"AUTDELETA","N",Nil}) aadd(aLinha,{"DA1_CODPRO","PA001"}) aadd(aLinha,{"DA1_PRCVEN",11,Nil}) aadd(aItens,aLinha) aLinha := {} aadd(aLinha,{"LINPOS","DA1_ITEM","0002"}) aadd(aLinha,{"AUTDELETA","N",Nil}) aadd(aLinha,{"DA1_CODPRO","PA002"}) aadd(aLinha,{"DA1_PRCVEN",11,Nil}) aadd(aItens,aLinha) Next nY ConOut(PadC("Teste de alteracao",80)) ConOut("Inicio: "+Time()) MSExecAuto({|x,y,z| Omsa010(x,y,z)},aCabec,aItens,4) ConOut("Fim : "+Time()) ConOut(Repl("-",80)) //???????????????????????????????? //| Teste de Exclusao | //???????????????????????????????? ConOut(PadC("Teste de exclusao",80)) ConOut("Inicio: "+Time()) MSExecAuto({|x,y,z| Omsa010(x,y,z)},aCabec,aItens,5) If !lMsErroAuto ConOut("Exclusao com sucesso! "+DA0->DA0_CODTAB) Else ConOut("Erro na exclusao!") EndIf ConOut("Fim : "+Time()) ConOut(Repl("-",80)) EndIf Return
#include "totvs.ch" #include "tbiconn.ch" #include "fwmvcdef.ch" User Function MyOMSA010() Local aCabec := {} Local aItens := {} Local aLinha := {} Local nY := 0 Local lOk := .T. PRIVATE lMsErroAuto := .F. ConOut(Repl("-",80)) ConOut(PadC("Teste de Alteração de 1 tabela de preco",80)) //???????????????????????????????? //| Verificacao do ambiente para teste | //???????????????????????????????? dbSelectArea("SB1") dbSetOrder(1) If !SB1->(MsSeek(xFilial("SB1")+"PA001")) lOk := .F. ConOut("Cadastrar produto: PA001") EndIf If !SB1->(MsSeek(xFilial("SB1")+"PA002")) lOk := .F. ConOut("Cadastrar produto: PA002") EndIf If !SB1->(MsSeek(xFilial("SB1")+"PA003")) lOk := .F. ConOut("Cadastrar produto: PA003") EndIf If lOk ConOut("Inicio: "+Time()) //???????????????????????????????? //| Teste de alteracao //| Neste exemplo serão realizadas três mudanças: //| - Incluindo condição de pagamento no cabeçalho //| - Mudando Valor do item 0001 //| - Deletando o item 0002 //???????????????????????????????? aCabec := {} aItens := {} For nY := 1 To 1 aCabec := {} aItens := {} aadd(aCabec,{"DA0_CODTAB" ,DA0->DA0_CODTAB,Nil}) aadd(aCabec,{"DA0_DESCRI" ,"TESTE DE TABELA",Nil}) aadd(aCabec,{"DA0_CONDPG" ,"001",Nil}) //Incluindo condição de pagamento no cabeçalho aLinha := {} aadd(aLinha,{"LINPOS","DA1_ITEM","0001"}) aadd(aLinha,{"AUTDELETA","N",Nil}) aadd(aLinha,{"DA1_CODPRO","PA001"}) aadd(aLinha,{"DA1_PRCVEN",50,Nil}) //Atribuindo o valor 50 para este item aadd(aItens,aLinha) aLinha := {} aadd(aLinha,{"LINPOS","DA1_ITEM","0002"}) aadd(aLinha,{"AUTDELETA","S",Nil}) //Deletando o item 0002 aadd(aItens,aLinha) Next nY ConOut(PadC("Teste de alteracao",80)) ConOut("Inicio: "+Time()) MSExecAuto({|x,y,z| Omsa010(x,y,z)},aCabec,aItens,4) ConOut("Fim : "+Time()) ConOut(Repl("-",80)) //???????????????????????????????? //| Teste de alteracao //| - Incluindo um novo item em uma tabela //???????????????????????????????? aCabec := {} aItens := {} For nY := 1 To 1 aCabec := {} aItens := {} aadd(aCabec,{"DA0_CODTAB" ,DA0->DA0_CODTAB,Nil}) aadd(aCabec,{"DA0_DESCRI" ,"TESTE DE TABELA",Nil}) aLinha := {} aadd(aLinha,{"LINPOS","DA1_ITEM","0001"}) //Caso não seja informado o LINPOS o item será sobreposto. aadd(aItens,aLinha) aLinha := {} aadd(aLinha,{"LINPOS","DA1_ITEM","0002"}) aadd(aItens,aLinha) aLinha := {} aadd(aLinha,{"DA1_ITEM","0003",Nil}) //Incluindo o item 0003 sem que os itens 0001 e 0002 sejam afetados. aadd(aLinha,{"DA1_CODPRO","PA003"}) aadd(aLinha,{"DA1_PRCVEN",100,Nil}) aadd(aItens,aLinha) Next nY ConOut(PadC("Teste de alteracao",80)) ConOut("Inicio: "+Time()) MSExecAuto({|x,y,z| Omsa010(x,y,z)},aCabec,aItens,4) ConOut("Fim : "+Time()) ConOut(Repl("-",80)) ConOut("Fim : "+Time()) ConOut(Repl("-",80)) EndIf Return