× Linguagem de Programação ADVPL

Perguntas Função MaFisRet "Cálculo de Impostos"

Mais
12 anos 5 meses atrás #2498 por SandroTumi
Boa tarde,

Alguém sabe quais as variáveis de retorno da função MaFisRet.
Estou fazendo um relatório para conferência de pedido e preciso dos valores dos itens abaixo:
Base Calc ICMS
VL. ICMS
Base IPI
VL. IPI
Base Subst. Trib.
Vl. Subst. Trib.
Vl. Tot. Prod.
Vl. Tot. NF
Descontos
Desc. ZFR


Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 5 meses atrás #2499 por lalberto
Segue um Exemplo:

// Posiciona-se no Pedido de Venda

If SC5->(dbSetOrder(1), dbSeek(xFilial("SC5")+_QRY2->C6_NUM))
MaFisIni(SC5->C5_CLIENTE,SC5->C5_LOJACLI,"C","N",SC5->C5_TIPOCLI,MaFisRelImp("MTR700",{"SC5","SC6"}),,,"SB1","MTR700")
Else
SC6->(dbSkip(1));Loop
Endif

If !Empty(SC6->C6_NOTA)
SC6->(dbSkip(1));Loop
Endif

If !SC9->(dbSetOrder(2), dbSeek(xFilial("SC9")+SC5->C5_CLIENTE+SC5->C5_LOJACLI+SC5->C5_NUM+SC6->C6_ITEM))
SC6->(dbSkip(1));Loop
Endif


MaFisAdd( SC6->C6_PRODUTO,;
SC6->C6_TES,;
_QRY2->C9_QTDLIB,;
SC6->C6_PRUNIT,;
SC6->C6_VALDESC,;
"",;
"",;
0,;
0,;
0,;
0,;
0,;
(_QRY2->C9_QTDLIB*SC6->C6_PRUNIT),;
0,;
0,;
0)
_nAliqIcm := MaFisRet(1,"IT_ALIQICM")
_nValIcm := MaFisRet(1,"IT_VALICM" )
_nBaseIcm := MaFisRet(1,"IT_BASEICM")
_nValIpi := MaFisRet(1,"IT_VALIPI" )
_nBaseIpi := MaFisRet(1,"IT_BASEICM")
_nValMerc := MaFisRet(1,"IT_VALMERC")
_nValSol := MaFisRet(1,"IT_VALSOL" )
_nValDesc := MaFisRet(1,"IT_DESCONTO" )
_nPrVen := MaFisRet(1,"IT_PRCUNI")

MaFisEnd()

_nQtdLibe += _QRY2->C9_QTDLIB
_nPrecoSI += Round(((SC6->C6_PRCVEN * _QRY2->C9_QTDLIB) - _nValIcm) ,2) //A410Arred((_nValMerc + _nValIpi + (_nValSol - _nValDesc)))

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 5 meses atrás #2507 por SandroTumi
Obrigado Luiz, pelo código de exemplo.

O exemplo funcionou legal, porém temos venda para a Zona Franca de Manaus e o cálculo da Base ST e da ST saem errados. No restante está OK.
Você saberia dizer quais são as variáveis que retornam desta função, pois encontrei no Superep um retorno desta função com as seguinte variáveis:
_nIcmsRet := MaFisRet(1,"LF_ICMSRET" ) \Valor da Substituição Tributária
_nBaseRet := MaFisRet(1,"LF_BASERET" ) \Base da Susbstituição Tributaria
_nDescZFM := MaFisRet(1,"NF_DESCZF" ) \Desconto Zona Franca

O que significa cada início de variável. Ex: (_IT, _LF, _NF, ...)???

Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 5 meses atrás #2509 por lalberto
Cara senão me engano IT (Item) LF (Livro Fiscal) NF (Cabeçalho da Nota)


Cara o retorno é exatamente o calculo, e vc pode sim utilizar estas novas syntax que você encontrou, eu nunca usei, mas creio que irá funcionar, agora o fato de estar calculando sua st errada pode ser alguma coisa com seu cadastro de exceção fiscal.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 5 meses atrás #2535 por SandroTumi
Consegui com o codigo abaixo, porém a única exceção é quando o pedido é para a Zona Franca de Manaus, a variável de retorno "LF_BASERET" está cálculando 7% a mais, aí o restante dos cálculos não batem. E o mais interessante é a planilha financeira do pedido mostra esses valores corretos. Alguma sugestão?? Existe algum "Pulo do Gato" para esse cálculo???

MaFisIni(SC5->C5_CLIENTE,SC5->C5_LOJACLI,"C",SC5->C5_TIPO,SC5->C5_TIPOCLI,MaFisRelImp("MTR700",{"SC5","SC6"}),,,"SB1","MTR730")

nPrcTot := (SC6->C6_QTDVEN*SC6->C6_PRCVEN)
nPrcUni := SC6->C6_PRCVEN

MaFisAdd(SC6->C6_PRODUTO,;
SC6->C6_TES,;
SC6->C6_QTDVEN,;
nPrcUni,;
SC6->C6_VALDESC,;
"",;
"",;
0,;
0,;
0,;
0,;
0,;
nPrcTot,;
0,;
0,;
0)

_nAliqIcm := MaFisRet(1,"IT_ALIQICM")
_nValIcm := MaFisRet(1,"NF_VALICM" )
_nBaseIcm := MaFisRet(1,"NF_BASEICM")
_nAliqIPI := MaFisRet(1,"IT_ALIQIPI")
_nValIpi := MaFisRet(1,"NF_VALIPI" )
_nBaseIpi := MaFisRet(1,"NF_BASEIPI")
_nValMerc := MaFisRet(1,"IT_VALMERC")
_nValSol := MaFisRet(1,"IT_VALSOL" )
_nIcmsRet := MaFisRet(1,"LF_ICMSRET")
_nBaseRet := MaFisRet(1,"LF_BASERET")
_nDescZFM := MaFisRet(1,"NF_DESCZF" )
MaFisEnd()


Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 5 meses atrás #2545 por erikditarso
Olá, alguns campos do SF3,SFT,SD1,SD2,SF2 e SF1, são gravados por este mesmo conceito.
Verifique a validação dos campos que gravam o valor do imposto que vc quer, usando a mesma ideia do programa ai em cima, só mudam as variáveis.

Seguem algumas que podem te ajudar:


IT_DESCZF - Valor do desconto na ZOna Franca do Item
IT_CRDZFM - Credito Fiscal Presumido Zona Franca de Manaus
NF_DESCZF - Valor total do Desconto da Zona Franca
NF_SUFRAMA - Valor total do Desconto da Zona Franca
LF_DESCZFR - Desconto Zona Franca de Manaus

Atc
Erik

Por favor Acessar ou Registrar para participar da conversa.

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