Perguntas Gatilho C6_PRCVEN

Mais
2 anos 9 meses atrás #33106 por GuiFutro
Gatilho C6_PRCVEN foi criado por GuiFutro
Bom dia,

Gostaria de uma ajuda para fazer um gatilho que dependendo do valor preenchido de um campo o sistema puxe o preço unitário de um item em uma tabela+campo e se for outro puxe de outro lugar. Desenvolvi o fonte abaixo mas ele gera um erro de type is match on +.

User function BRACALC()
Local cQuanti := M->C6_QTDVEN
Local cTipoOp := M->C5_XTO
Local cTabela := M->C5_TABELA
Local cProd := M->C6_PRODUTO
Local cCustVe := POSICIONE("DA1",1,XFILIAL("DA1")+cTabela+cProd,"DA1_PRCVEN")
Local cCustAq := POSICIONE("SB1",1,XFILIAL("SB1")+cProd,"B1_XCUSTAQ")
Local lRet :=''

Alert(cCustVe)
Alert(cCustAq)

If cTipoOp!='006' .OR. cTipo!='012'
lRet := cCustVe
ELSE
lRet := cCustAq
ENDIF

Return(lRet)

Agradeço a ajuda desde já
Guilherme Futro

Por favor Acessar ou Registrar para participar da conversa.

Mais
2 anos 9 meses atrás - 2 anos 9 meses atrás #33107 por admin
Respondido por admin no tópico Gatilho C6_PRCVEN
Criar um gatilho no C6_PRODUTO ou no C6_QTDVEN
User function BRACALC()
Local nQuanti := aCols[n,ASCAN(aHeader,{|x| AllTrim(Upper(x[2]))=="C6_QTDVEN"})]
Local cProduto:= aCols[n,ASCAN(aHeader,{|x| AllTrim(Upper(x[2]))=="C6_PRODUTO"})]
Local cTipoOp := M->C5_XTO
Local cTabela := M->C5_TABELA
Local aArea   := GetArea()
Local nCustVe := 0.00

If !cTipoOp$'006*012'
	If DA1->(dbSetOrder(1), dbSeek(xFilial("DA1")+cTabela+cProduto))
		nCustVe := DA1->DA1_PRCVEN
	Else
		nCustVe  := 0.00
	Endif
Else
	nCustVe := SB1->B1_XCUSTAQ
Endif
RestArea(aArea)
Return nCustVe
Ultima edição: 2 anos 9 meses atrás por admin.
Os seguintes usuário(s) disseram Obrigado: GuiFutro

Por favor Acessar ou Registrar para participar da conversa.

Mais
2 anos 9 meses atrás #33111 por GuiFutro
Respondido por GuiFutro no tópico Gatilho C6_PRCVEN
Obrigado pela ajuda, tive que fazer algumas modificações segue o fonte finalizado


User function BRAPRV()
Private nQuanti := aCols[n,ASCAN(aHeader,{|x| AllTrim(Upper(x[2]))=="C6_QTDVEN"})]
Private cProduto:= aCols[n,ASCAN(aHeader,{|x| AllTrim(Upper(x[2]))=="C6_PRODUTO"})]
Private cTipoOp := M->C5_XTO
Private cTabela := M->C5_TABELA
Private aArea := GetArea()
Private nCustVe := 0.00


cQuery := "SELECT ZTO_TABEL,ZTO_COD FROM ZTO010 WHERE D_E_L_E_T_='' AND ZTO_COD='"+cTipoOp+"'"
TCQuery cQuery New Alias 'CUST_TP'

If CUST_TP->ZTO_TABEL!='CT'
If DA1->(dbSetOrder(1), dbSeek(xFilial("DA1")+cTabela+cProduto))
nCustVe := DA1->DA1_PRCVEN
Else
nCustVe := 0.00
Endif
Else
IF SB1->(dbSetOrder(1), dbSeek(xFilial("SB1")+cProduto))
nCustVe := SB1->B1_XCUSTAQ
ELSE
nCustVe := 0.00
ENDIF
Endif


DbCloseArea("CUST_TP")
RestArea(aArea)

Return nCustVe

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.089 segundos
Joomla templates by a4joomla