× Linguagem de Programação ADVPL

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

Mais
12 anos 9 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 9 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 9 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 9 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 9 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.

Mais
11 anos 6 dias atrás #22185 por HFelicio
Boa tarde Sandro!

Estou com o mesmo problema que você citou abaixo:
"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???"

Consegui resolver? Caso positivo, você pode me passar o fonte?

Att.,

Henrique Almeida

Por favor Acessar ou Registrar para participar da conversa.

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