Function that returns Icms St ADVPL

Asked

Viewed 360 times

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

  • Thanks for the attention, but the variable that receives the value this zeroed that would be this line -> _nNFUnST := Mafisret(1,"IT_VALSOL" )...

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.