0
Good morning. I have the function below that returns the ICMS ST value for a field, only the value is returning zeroed. Someone could help me. Thanks.
#INCLUDE "protheus.ch"
#INCLUDE "rwmake.ch"
#INCLUDE "topconn.ch"
#include "TbiConn.ch"
#include "TbiCode.ch"
#DEFINE ENTER Chr(13)+Chr(10)
user function CaIcmsRt()
Local _aArea := GetArea()
Local _aArC5 := SC5->(GetArea())
Local _aArC6 := SC6->(GetArea())
Local _cPedOri := SC5->C5_NUM
Local _nRecSC5 := SC5->(Recno())
Local _nRecSC6 := SC5->(Recno())
IF !(INCLUI .OR. ALTERA)
RETURN
ENDIF
_cCliente := SC5->C5_CLIENTE
_cLoja := SC5->C5_LOJACLI
_cTipo := IIf( SC5->C5_TIPO $ 'DB',"F","C")
_aATransp := {"",""}
MaFisSave()
MaFisEnd()
MaFisIni( _cCliente,; // 1-Codigo Cliente/Fornecedor
_cLoja,; // 2-Loja do Cliente/Fornecedor
_cTipo,; // 3-C:Cliente , F:Fornecedor
SC5->C5_TIPO,; // 4-Tipo da NF
SC5->C5_TIPOCLI,; // 5-Tipo do Cliente/Fornecedor
Nil,;
Nil,;
Nil,;
Nil,;
"MATA461",;
Nil,;
Nil,;
Nil,;
Nil,;
Nil,;
Nil,;
Nil,;
_aATransp)
DbSelectArea('SC6');SC6->(DbGoTop());SC6->(DbSetOrder(1));SC6->
(DbSeek(xFilial('SC6')+SC5->C5_NUM))
DbSelectArea('SB1');SB1->(DbSetOrder(1));SB1->(DbSeek(xFilial('SB1')+ SC6-
>C6_PRODUTO ))
DbSelectArea('SF4');SF4->(DbSetOrder(1));SF4->(DbSeek(xFilial('SF4')+ SC6-
>C6_TES ))
_cProduto := SC6->C6_PRODUTO
MatGrdPrRf(@_cProduto)
_cCodFis := SC6->C6_CF
_cClsFis := SC6->C6_CLASFIS
//Agrega os itens para a funcao fiscal
MaFisAdd( _cProduto,; // 1-Codigo do Produto ( Obrigatorio )
SC6->C6_TES,; // 2-Codigo do TES ( Opcional )
SC6->C6_QTDVEN,; // 3-Quantidade ( Obrigatorio )
SC6->C6_PRCVEN,; // 4-Preco Unitario ( Obrigatorio )
0,; // 5-Valor do Desconto ( Opcional )
"",; // 6-Numero da NF Original ( Devolucao/Benef )
"",; // 7-Serie da NF Original ( Devolucao/Benef )
0,; // 8-RecNo da NF Original no arq SD1/SD2
0,; // 9-Valor do Frete do Item ( Opcional )
0,; // 10-Valor da Despesa do item ( Opcional )
0,; // 11-Valor do Seguro do item ( Opcional )
0,; // 12-Valor do Frete Autonomo ( Opcional )
SC6->C6_VALOR,; // 13-Valor da Mercadoria ( Obrigatorio )
0,; // 14-Valor da Embalagem ( Opiconal )
,; // 15
,; // 16
,; // 17 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
0,; // 18-Despesas nao tributadas - Portugal
0,; // 19-Tara - Portugal
_cCodFis,; // 20-CFO
,; // 21-Array para o calculo do IVA Ajustado (opcional)
,; // 22-Codigo Retencao - Equador
0,; // 23-Valor Abatimento ISS
,; // 24-Lote Produto
,; // 25-Sub-Lote Produto
,;
,;
_cClsFis ) // 28-Classificação fiscal IT_CLASFIS
//VALOR UNITARIO DO ICMS SUBSTITUICAO TRIBUTARIA_________
_nNFUnST := MaFisRet(1,"IT_VALSOL" )
//GRAVACAO DE INFORMACOES NO ITEM DO PEDIDO
IF SC6->(FieldPos("C6_XICMSRT")) > 0
Replace SC6->C6_XICMSRT With _nNFUnST
ENDIF
//VALOR TOTAL DO ICMS SUBSTITUICAO TRIBUTARIA
_nNFTotST := MaFisRet(,"NF_VALSOL")
DbSelectArea('SC6');SC6->(DbGoTo(_nRecSC6))
RestArea(_aArC6)
RestArea(_aArC5)
RestArea(_aArea)
Return
you don’t need to define what is returned? line
return
has nothing– rLinhares
Thanks for the attention, but the variable that receives the value this zeroed that would be this line -> _nNFUnST := Mafisret(1,"IT_VALSOL" )...
– Junior Guerreiro