Árvore de páginas

Função: COMA010 - Cadastro de Tabela de Preços


Versões:Microsiga Protheus 8.11 , Protheus 10
Compatível Países:Todos
Sistemas Operacionais:Todos
Compatível às Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Espanhol , Inglês


Descrição:

OBJETIVO:
Essa rotina permite cadastrar as tabelas de preços dos fornecedores que atendem à empresa. Podendo ser informados os preços e a condição de pagamento a serem praticados.

IMPORTANTE:
Quando informada a condição de pagamento, o sistema não permitirá que outra condição seja utilizada nos processos de compras (cotações e pedidos).

Programa Fonte:
COMA010.PRW
Sintaxe:

COMA010 - Cadastro de Tabela de Preços ( [ PARAMIXB1 ] [ PARAMIXB2 ] [ PARAMIXB3 ] ) --> Nil

Retorno:
Nil
    (nulo)
  • Nil
Observações:


  • Para Alteração e exclusão de um item da rotina automática deve-se utilizar LINPOS e AUTDELETA
  • Quando existir a necessidade de alterar um item especifico da Getdados, existem dois campos que podem ser utilizados, os campos são: LINPOS e AUTDELETA. O primeiro deve ser utilizado para localizar o item do aCols que sofrerá alteração, o segundo instruí a rotina automática para deletar a linha. Caso não seja utilizado o LINPOS esta função irá reconstruir todo o aCols.

Esta rotina pode ser executada via rotina automática.

Exemplos:


#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"


//EXEMPLO DE INCLUSÃO
User Function MyComa10I()
Local aCabec    := {}
Local aItens    := {}
Local cFornec   := "000001"
Local cLoja     := "01"
Local cProd     := ""
Local cNomeProd := ""
Local cCodTab   := "EXP"
Local nOpc := 3 //Inclusão
Local nX 

PRIVATE lMsErroAuto := .F.
                                      
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" TABLES "AIA","AIB"

dDataDe   := dDataBase
dDataAte  := CtoD("01/01/2030")

Begin Transaction      
    
    aCabec := {}   
    aadd(aCabec,{"AIA_CODFOR",cFornec,NIL})   
    aadd(aCabec,{"AIA_LOJFOR",cLoja,NIL}) 
    aadd(aCabec,{"AIA_CODTAB",cCodTab,NIL})   
    aadd(aCabec,{"AIA_DESCRI","TABELA DE PRECO BRASIL",NIL}) 
    aadd(aCabec,{"AIA_DATDE",dDataDe,NIL})
    aadd(aCabec,{"AIA_DATATE",dDataAte,NIL})
    
    For nX := 1 to 2
        
        aItem := {}

        If nX == 1 
            cProd := "01"
            cNomeProd := Posicione("SB1",1,xFilial("SB1")+cProd,"B1_DESC")
        ElseIf nX == 2
            cProd := "001"
            cNomeProd := Posicione("SB1",1,xFilial("SB1")+cProd,"B1_DESC")
        Endif 
        
        aadd(aItem,{"AIB_ITEM",StrZero(nX,TamSx3("AIB_ITEM")[1]) ,NIL})
        aAdd(aItem,{'AIB_CODPRO',cProd,NIL})
        aAdd(aItem,{'AIB_DESCRI',cNomeProd,NIL})
        aAdd(aItem,{'AIB_PRCCOM',10,NIL})
        aAdd(aItem,{'AIB_DATVIG',dDataBase,NIL})
        
        aAdd(aItens,aItem)
    
    Next 

    //3-Inclusão / 4-Alteração / 5-Exclusão
    MSExecAuto({|x,y,z| coma010(x,y,z)},nOpc,aCabec,aItens)     
     
    If lMsErroAuto    
        ConOut("Erro na inclusao!")
    EndIf  
                
End Transaction
     
RESET ENVIRONMENT
     
Return Nil


#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"

//EXEMPLO DE ALTERAÇÃO
User Function MyCom10A()
Local aCabec := {}
Local aItens := {}
Local cFornec := "000001"
Local cLoja := "01"
Local cProd := ""
Local cNomeProd := ""
Local cCodTab := "EXP"
Local nOpc := 4 //Alteração
Local nX 

PRIVATE lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" TABLES "AIA","AIB"

dDataDe := dDataBase
dDataAte := CtoD("01/01/2030")

Begin Transaction 

aCabec := {} 
aadd(aCabec,{"AIA_CODFOR",cFornec,NIL}) 
aadd(aCabec,{"AIA_LOJFOR",cLoja,NIL}) 
aadd(aCabec,{"AIA_CODTAB",cCodTab,NIL}) 
aadd(aCabec,{"AIA_DESCRI","TABELA DE PRECO BRASIL",NIL}) 
aadd(aCabec,{"AIA_DATDE",dDataDe,NIL})
aadd(aCabec,{"AIA_DATATE",dDataAte,NIL})

For nX := 1 to 2

aItem := {}

If nX == 1 
cProd := "01"
cNomeProd := Posicione("SB1",1,xFilial("SB1")+cProd,"B1_DESC")
ElseIf nX == 2
cProd := "001"
cNomeProd := Posicione("SB1",1,xFilial("SB1")+cProd,"B1_DESC")
Endif 

if nX == 1 
//Alterando preço do Item 0001
aAdd(aItem,{"LINPOS","AIB_ITEM" ,"0001"})
aAdd(aItem,{"AUTDELETA","N" ,Nil})

aAdd(aItem,{'AIB_CODPRO',cProd,NIL})
aAdd(aItem,{'AIB_DESCRI',cNomeProd,NIL})
aAdd(aItem,{'AIB_DATVIG',dDataBase,NIL})
aAdd(aItem,{'AIB_PRCCOM',20,NIL})

elseif nX == 2 
//Excluindo o Item 0002
aAdd(aItem,{"LINPOS","AIB_ITEM" ,"0002"})
aAdd(aItem,{"AUTDELETA","S", NIL})

aAdd(aItem,{'AIB_CODPRO',cProd,NIL})
aAdd(aItem,{'AIB_DESCRI',cNomeProd,NIL})
aAdd(aItem,{'AIB_DATVIG',dDataBase,NIL})
aAdd(aItem,{'AIB_PRCCOM',10,NIL})
endif 

aAdd(aItens,aItem)

Next 

//3-Inclusão / 4-Alteração / 5-Exclusão
MSExecAuto({|x,y,z| coma010(x,y,z)},nOpc,aCabec,aItens) 

If lMsErroAuto 
ConOut("Erro na alteração!")
EndIf 

End Transaction

RESET ENVIRONMENT

Return Nil

#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"

//EXEMPLO DE EXCLUSÃO
User Function MyCom10E()
Local aCabec := {}
Local aItens := {}
Local cFornec := "000001"
Local cLoja := "01"
Local cCodTab := "EXP"
Local nOpc := 5 //Exclusão 

PRIVATE lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" TABLES "AIA","AIB"

dDataDe := dDataBase
dDataAte := CtoD("01/01/2030")

Begin Transaction 

aCabec := {} 
aadd(aCabec,{"AIA_CODFOR",cFornec,NIL}) 
aadd(aCabec,{"AIA_LOJFOR",cLoja,NIL}) 
aadd(aCabec,{"AIA_CODTAB",cCodTab,NIL}) 
aadd(aCabec,{"AIA_DESCRI","TABELA DE PRECO BRASIL",NIL}) 
aadd(aCabec,{"AIA_DATDE",dDataDe,NIL})
aadd(aCabec,{"AIA_DATATE",dDataAte,NIL})

aItem := {}
aadd(aItem,{"AIB_CODFOR",cFornec ,NIL})
aAdd(aItem,{'AIB_LOJFOR',cLoja,NIL})
aAdd(aItem,{'AIB_CODTAB',cCodTab,NIL})

aAdd(aItens,aItem)

//3-Inclusão / 4-Alteração / 5-Exclusão
MSExecAuto({|x,y,z| coma010(x,y,z)},nOpc,aCabec,aItens) 

If lMsErroAuto 
ConOut("Erro na exclusão!")
EndIf 

End Transaction

RESET ENVIRONMENT

Return Nil



Parâmetros:



Nome

Tipo

Descrição

Default

Obrigatório

Referência

nOpc

Numérico

Opção escolhida: 3-Inclusão ; 4-Alteração ; 5-Exclusão










aCabec 

Vetor

Array contendo o cabeçalho da Tabela de Preços










aItens

Vetor

Array contendo o ítens da Tabela de Preços