Clipper On Line • Ver Tópico - CEST x MVA - função para encontrar MVA por CEST

CEST x MVA - função para encontrar MVA por CEST

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

CEST x MVA - função para encontrar MVA por CEST

Mensagempor rochinha » 11 Jun 2021 06:27

Amiguinhos,

Função simples para retornar o MVA por faixa de CEST:
FUNCTION CEST2MVA( _cest_ ) // _cest_ - parametro inteiro
   **************************************************************
   * CEST Inicial 1
   * CEST Final 2
   * MVA          3
   **************************************************************
   local aCEST2MVA := {}
   IF _cest_ <> 0
      aadd( aCEST2MVA, { 100100, 199900,65.29} )
      aadd( aCEST2MVA, { 200100, 299900,67.49} )
      aadd( aCEST2MVA, { 300100, 302500,73.63} )
      aadd( aCEST2MVA, { 500100, 500100,29.94} )
      aadd( aCEST2MVA, { 400100, 400200,94.70} )
      aadd( aCEST2MVA, { 800100, 801900,55.61} )
      aadd( aCEST2MVA, { 802000, 802300,55.61} )
      aadd( aCEST2MVA, { 801901, 801901,65.29} )
      aadd( aCEST2MVA, { 900100, 900200,83.24} )
      aadd( aCEST2MVA, { 900300, 900400,108.84} )
      aadd( aCEST2MVA, { 900500, 900500,64.06} )
      aadd( aCEST2MVA, {1000100,1008000,74.75} )
      aadd( aCEST2MVA, {1100100,1101200,75.80} )
      aadd( aCEST2MVA, {1200100,1200900,63.28} )
      aadd( aCEST2MVA, {1300100,1301600,60.35} )
      aadd( aCEST2MVA, {1400100,1401300,66.52} )
      aadd( aCEST2MVA, {1600100,1600900,78.79} )
      aadd( aCEST2MVA, {1700100,1711500,59.75} )
      aadd( aCEST2MVA, {1900100,1903300,73.90} )
      aadd( aCEST2MVA, {2000100,2006400,75.80} )
      aadd( aCEST2MVA, {2100100,2112600,53.86} )
      aadd( aCEST2MVA, {2200100,2200100,68.57} )
      aadd( aCEST2MVA, {2300100,2300200,61.78} )
      aadd( aCEST2MVA, {2400100,2400300,72.12} )
      nCEST2MVA := ascan( aCEST2MVA, { |x| _cest_>=x[1] .AND. _cest_<=x[2] } )
      IF nCEST2MVA <> 0
         return aCEST2MVA[ nCEST2MVA ][ 3 ]
      ENDIF
   ENDIF
   RETURN 0


Melhorem na se quiserem.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4339
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 593 vezes
Mens.Curtidas: 200 vezes

CEST x MVA - função para encontrar MVA por CEST

Mensagempor JoséQuintas » 11 Jun 2021 13:35

FUNCTION Cest2MVA( nCest )

   LOCAL nPos, aList := { ;   // 1=inicial, 2=final, 3=MVA
      {  100100,  199900, 65.29 }, ;
      {  200100,  299900, 67.49 }, ;
      {  300100,  302500, 73.63 }, ;
      {  500100,  500100, 29.94 }, ;
      {  400100,  400200, 94.70 }, ;
      {  800100,  801900, 55.61 }, ;
      {  802000,  802300, 55.61 }, ;
      {  801901,  801901, 65.29 }, ;
      {  900100,  900200, 83.24 }, ;
      {  900300,  900400, 108.84 }, ;
      {  900500,  900500, 64.06 }, ;
      { 1000100, 1008000, 74.75 }, ;
      { 1100100, 1101200, 75.80 }, ;
      { 1200100, 1200900, 63.28 }, ;
      { 1300100, 1301600, 60.35 }, ;
      { 1400100, 1401300, 66.52 }, ;
      { 1600100, 1600900, 78.79 }, ;
      { 1700100, 1711500, 59.75 }, ;
      { 1900100, 1903300, 73.90 }, ;
      { 2000100, 2006400, 75.80 }, ;
      { 2100100, 2112600, 53.86 }, ;
      { 2200100, 2200100, 68.57 }, ;
      { 2300100, 2300200, 61.78 }, ;
      { 2400100, 2400300, 72.12 } }
     
   IF nCest != 0   
      nPos := AScan( aList, { | Item | nCest >= Item[ 1 ] .AND. nCest <= Item[ 2 ] } )
      IF nPos != 0
         RETURN aList[ nPos, 3 ]
      ENDIF
   ENDIF
   
   RETURN 0


Um pouco mais enxuta.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16933
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 948 vezes




Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro