DUVIDA C/TABELAS

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

ROMARIO
Usuário Nível 1
Usuário Nível 1
Mensagens: 35
Registrado em: 06 Jul 2004 11:25
Localização: AGUDO - RS

DUVIDA C/TABELAS

Mensagem por ROMARIO »

Pessoal, tenho dúvida com tabelas c/validade. A tabela (IRenda, por exemplo) vale de 01/2000 até 12/2003. A partir de 01/2004 muda as alíquotas etc. Ocorre que às vezes preciso usar uma tabela antiga, para recolher atrasados etc. Coloquei esta dúvida aqui no fórum dias atrás. Responderam que deveria colocar um campo com data, sem maiores detalhes, por isso estou de volta. Se possível um exemplo.

Hoje faço assim:

Do while !IRE->(eof())
If Valor >= IRE->FxIni .and. Valor <= IRE->FxFin
Aliq:= IRE->Aliq
etc.....
Endif
Enddo

Ou seja, apenas seleciono as faixa sem considerar se a tabela é a correta.
Como devo fazer ???

Obrigado.
Kebe
Usuário Nível 1
Usuário Nível 1
Mensagens: 37
Registrado em: 22 Set 2003 14:37

Confuso!!!

Mensagem por Kebe »

Achei sua colocação meio confusa!!!
Poderia explicar melhor o seu problema ?
ROMARIO
Usuário Nível 1
Usuário Nível 1
Mensagens: 35
Registrado em: 06 Jul 2004 11:25
Localização: AGUDO - RS

Mensagem por ROMARIO »

Explicando melhor.

Tenho uma tabela(Imp.Renda) com os seguintes campos:

Fxa, ValIni, ValFin, Aliq, Desc.
01 0,00 1.215,00 0.00 0,00
02 1215,01 2.900,00 15,0 220,00.

Obs.: São valores hipotéticos.

Esta é a tabela atual (08/2004) do meu sistema, com a qual realizo calculos:

Se porventura, em 09/2004 muda a tabela (aliquotas, valores, cria-se novas faixa, novos descontos etc.), mas eu preciso ficar com as duas tabelas em uso, pois sempre tem alguem que recolhe IR com atraso. Supomos que estejamos em 11/2004 e preciso realizar um calculo com a tabela de 08/2004 ??? O meu sistema precisa identificar qual das tabelas usar. Como faço isso ??

Preciso de uma idéia.

Obrigado
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

..fiz um programa uma vez quebra galho pruns fiscais federais...rs...qm diria..mas fiz...usava uma porrada de aliquotas..os caras...faziam fiscalização de lojas de carros importados.....era sobre ressarcimento de icms....tinha um esquema desse de aliquotas...com validade...
na época eu fiz um banco....onde eu cadastrava as aliquotasd....
por exemplo...a nota tinha sido emitida tal dia...eu abria esse banco...via em qual periodo de validade ela se encontrava e ai...jogava a aliquota pra cálculo...
banco aliquota...
codigo valor data_ini data_fim ...
Mas pelo q entendi....vc usa uma faixa de aliquotas...q naum existe data e sim valores...valor inicial e final....
Pq vc naum cria um campo mes...caractere de 6 ....onde vc cadastraria o mês referente...ae ficaria assim..

Código: Selecionar todos

  mes       faixa   val_ini   val_fim      aliquota  des
  082004      01         0,00     1215,00     1,12     2,00
  082004      02    1215,01     3000,00     2,25    40,00   
ae qdo o cliente for utiliza a base de aliquota do mes de agosto ele "tando" em novembro....se no seu sistema existir alguma informação...q de pra vc saber qual tabela de qual mes utilizar...um informação q relacione....basta dar um seek....levantando somente as aliquotas daquele mes...senaum cria um campo de tam caractere 6...e coloca um get...pro cliente digitar qual tabela ele....qr...
Será q o q entendi ta certo...rs...ta tarde e to com sono...hehhhee


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




spereira
Usuário Nível 2
Usuário Nível 2
Mensagens: 85
Registrado em: 19 Jul 2004 11:42
Localização: Porto - Portugal

Mensagem por spereira »

Romário,

Faça como o colega Dudu_XBase disse. Crie um campo na sua tabela que informe o período, mas tem de ser no formato aaaamm (aaaa = ano, mm = mês).
A partir daí basta vc saber qual o período que se quer pegar as alíquotas e dar um SEEK na tabela.
Para ordenar terá que criar o índice com o campo PERÍODO.

Com isto vc usará apenas uma tabela com vários períodos.

Espero ter sido claro. Qualquer coisa pergunta.
lima
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Jul 2004 08:49

Mensagem por lima »

Caro colega;

Aproveitando a ideia do Dudu, crie o campo vigência com inicio e final, assim vc não precisa todo mes ficar atualizando a tabela, ex:-

vigencia vigencia faixa vlr_inicio vlr_final aliquota redutor
inicio final

200406 200407 01 0,00 10,00 2% 10,00

200408 200410 01 1,00 10,00 1 % 0,00
200408 200410 02 10,01 20,00 2 % 10,00


com isso, a manutenção na tabela é mínima,

espero ter ajudado

até +

Lima :cool:
Responder