Como salvar uma posição de estoque mensal via sistema

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Ricardo Sales Ribeiro
Usuário Nível 3
Usuário Nível 3
Mensagens: 279
Registrado em: 13 Jul 2004 18:06
Localização: Fortaleza-Ceara

Como salvar uma posição de estoque mensal via sistema

Mensagem por Ricardo Sales Ribeiro »

Ola amigos

Estou precisando de ajuda, tenho um cliente q quer q eu salve via sistema uma posição de balanço todo final de mes, em arquivo, automaticamente sem a interferencia do cliente, apenas ao abrir o sistema no inicio do mes seja executada uma rotina q faça isso.

Como fazer
Obrigado antecipadamente.

Um grande abraço
Ricardo Sales
Fortaleza-Ce
lodara53@yahoo.com.br
lodara53@hotmail.com
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

A primeira idéia que vem na cabeça quando pensamos em guardar mensalmente os dados. É copiar os dados para outro arquivo cujo nome de arquivo esteja composto pela nomenclatura exemplo: BAL0507.DBF, onde BAL (balanço) 05 (é o mês) e 07 (é o ano).

Então é só copiar: COPY TO ("BAL0507.DBF")

E você terá um arquivo DBF com o nome do mês/ano que designaria o mês a que pertence. Boa sorte colega !.

Um clip-abraço :)Pos
Avatar do usuário
Ricardo Sales Ribeiro
Usuário Nível 3
Usuário Nível 3
Mensagens: 279
Registrado em: 13 Jul 2004 18:06
Localização: Fortaleza-Ceara

Mensagem por Ricardo Sales Ribeiro »

Valeu meu amigo, agora como executar este comando via sistema, no final ou inicio de cada mes automaticamente sem a intervenção do usuário, para q não se esqueça, no caso manual.
Ricardo Sales
Fortaleza-Ce
lodara53@yahoo.com.br
lodara53@hotmail.com
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Vc pode programar as tarefas do windows para executar a cópia ou pode colocar um gatilho no sistema para que quando o usuário entrar no sistema após uma determinada data seja executada a cópia. Após o disparo e a cópia feita, gere o novo gatilho, gravando a próxima data de backup.

Eu usei a opção do windows.
Boa sorte.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

A sua sugestão também é válida GVC, mas terias que fazer tratamento de fechamento de arquivos para manutenção, pois imagino que depois de copiados dos dados, os registros copiados deveriam serem deletados do BD principal.

Olha, eu ja acho mais certo, mais prático RE-ESTRUTURAR sua base de dados, para que ABRA e GRAVE sempre já nesses arquivo já desdobrados DIRETAMENTE. No teu caso Ricardo, você acha que teria algum impedimento ?.

Não sei, mas era uma questão a ser pensada. Porque o usuário que utiliza essa aplicação de balanço, sabe a data em questão e o sistema iria abrir o arquivo com nome já pre-definido. Mas se tiver que fazer uma pesquisa do tipo globalizada, isto é, independente de data... aí complica...

Nos conte Ricardo se seu aplicativo é um sistema de contabilidade e se haveria essa necessidade de pesquisa que não seja por DATA.

Um clip-abraço :)Pos
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Ricardo,

Acho que o seu "...salve via sistema uma posição de balanço todo final de mes, em arquivo..." não ficou claro.

Confirme primeiro com o seu cliente o que ele quer: é só um BALANÇO mensal de vendas, estoques etc. (o que vai ser só um relatório de algumas folhas) ou ele quer uma cópia da base de dados?
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Em qq caso, é só criar um gatilho: a cada acesso, o EXE vai checar a data do último relatório e, se for o caso, atualizá-lo.

Vc pode guardar a data do último relatório em um DBF, TXT etc. No exemplo abaixo, está no GATILHO.dbf.

Código: Selecionar todos

*... início do EXE
use gatilho
a=ultimo
if ((!empty(a)) .and. month(a)#month(date()))
  balanco()
endi
repl ultimo with date()
sele gatilho
use
*...

function balanco
* cria o balanço desejado pelo seu cliente
* ...
retu
Editado pela última vez por Eolo em 30 Mai 2007 09:55, em um total de 1 vez.
Avatar do usuário
JLF
Usuário Nível 2
Usuário Nível 2
Mensagens: 78
Registrado em: 21 Jul 2005 12:52
Localização: Sao Paulo

Mensagem por JLF »

Bom Dia Amigos,

Ricardo pelo que entendi, e sofro desse problema, pois sou contador, e tenho um cliente que sempre esqueçe de no primeiro dia de cada mês puxar os Estoques.

Quando eu programava fazia uma checagem para segurança do sistema e claro para que o cliente não parace de pagar a mensalidade..rssss

Era tipo assim, toda vez que o sistema era carregado ele checava a data e a comparava com uma que eu deixava "escondida" e já antes de 10 dias do vencimento gerava a informação..FALTAM X DIAS PARA VENCER SUA LICENÇA...

Você poderia gerar essa checagem logo no inicio da chamada do seu programa e ai ela geraria as rotinas pré-programadas.

Espero ter ajudado....Abraços
JLF - relembrando bons tempos
Clipper 5.3 - Blinker 7
gransoft
Usuário Nível 3
Usuário Nível 3
Mensagens: 321
Registrado em: 06 Jul 2004 17:48
Localização: UBERLÂNDIA-MG
Contato:

Balanço ou Registro de Inventário?

Mensagem por gransoft »

UBERLÂNDIA-MG, 30 de maio de 2007.

Prezado Ricardo,

Balanço ou Registro de Inventário? Dá na mesma ?!

No decorrer da atividade de Desenvolvimento de Aplicativos Fiscais, nos são apresentadas as mais diversas solicitações, que, com criatividade, acabaremos por achar uma solução conveniente.

No caso de Estoques, a forma que eu encontrei foi determinar um PERÍODO para os lançamentos, no caso, ANUAL, e PADRONIZAR uma ficha, contendo entre diversas outras informações,

SALDO ANTERIOR, DATA ANTERIOR
ENTRADAS, DATA ENTRADA
SAIDAS, DATA SAIDA
SALDO ATUAL, DATA ATUAL

e partindo da premissa de que o SALDO ANTERIOR é EXATAMENTE a contagem física das mercadorias, o tal Balanço/Inventário realizado em 31 de Dezembro do exercício anterior, teremos o saldo inicial, entradas, saídas e o saldo atual em qualquer tempo, tal como o custo médio das mercadorias. Pode-se elaborar Demonstrativos/Extratos/Kardex e balanços facilmente desta forma.

No mês de março, poderemos remeter os dados referentes ao movimento de Entradas e Saídas do mês de fevereiro, e o Registro de Inventário OBRIGATÓRIO ao SINTEGRA, o tal Registro Tipo 74, apenas informando as quantidades do SALDO ANTERIOR. Neste caso, os saldos devem ser referentes ao exercício anterior, e não o saldo atual.

Agora imagine o FISCO com informações de saldos anteriores, compras, vendas ... Numa Diligência Fiscal, qualquer quantidade a maior e não documentada, será considerada compra sem documentação fiscal. E qualquer quantidade a menor e sem documentação, venda sem CF ou NF...

Atenciosamente,
Janis Peters Grants.
Avatar do usuário
Ricardo Sales Ribeiro
Usuário Nível 3
Usuário Nível 3
Mensagens: 279
Registrado em: 13 Jul 2004 18:06
Localização: Fortaleza-Ceara

Mensagem por Ricardo Sales Ribeiro »

Ola galera
Agradeço demais pelas sugestões, a minha necessidade, ou melhor da cliente, é como o amigo contador comentou, eu tenho q gerar um balanco mensal e guarda-lo em arquivo, e esse arquivo, segundo a cliente, ela quer ter acesso, numa consulta q busque só esse arquivo, o nome seria tb o surgerido aqui tipo bal0507.dbf ou seja balanco em maio de 2007.

A cópia do arquivo original gerando um arquivo com esse nome, de acordo com o mes e ano, é o ideal, consultar tb esse arquivo não é problema, a minha preocupação é o sistema fazer automaticamente, sem por exemplo q eu tenha q programar sempre uma data de balanço, eu pensei assim, eu já guardo uma data diariamente em arquivo, poderia testar da seguinte forma, se o Mes e ano atual for diferente do Mes a Ano anterior, o sistema então faria uma copia do arquivo com o mes e ano novo ok. Agora tem um problema, exemplo isso se faria sempre no inicio de cada mes, mudou o mes o sistema detectaria e copiaria ok, agora se for tipo 1o. de Junho, a posição do estoque seria de 31 de maio correto, aí o sistema geraria um arquivo tipo Bal0607.dbf já q estou no mes de junho, só q a posição seria de 31 de maio. E aí como resolver isso.
Eu poderia subtrair do mes em -1 e geraria com o nome do mes anterior, ou seja em 1o. de junho geraria mes de maio Bal0507.Dbf. e como faria com o dezembro?

A cliente é muito desligada, tanto ela como as funcionarias, sempre esquecem de gerar o balanço mensal, por isso preciso colocar automático, e sem eu ter q ficar atualizando datas.

Obrigado
Ricardo Sales
Fortaleza-Ce
lodara53@yahoo.com.br
lodara53@hotmail.com
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Vc pode:
- colocar um gatilho de data;
- quando o usuário entrar no sistema, verifique a data
- se a data disparar o gatilho, coloque uma tela de aviso para o usuário.
- essa tela aparece até o usuário fazer o fechamento mensal.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Mensagem por filizola »

quando abrir o executavel

use databal (arquivo contento o ultimo dia do mes do balanco)
* dentro deste arquivo tem um campo chamado data
dbgobottom()

* aqui pegamos o ultimo dia do mes anterior atraves da data do sistema
datbas=ctod("01/"+strzero(month(date(),2,0)+"/"+;
strzero(year(date(),2,0)-1

if datbas<>data
rotinabal(datbas)
endif


*----------------------------
function rotinabal(datab)

* faça a rotina para copiar para o arquivo mes e ano
* ex : bal0507
arqtemp="bal"+subs(dtoc(datab),4,2)+subs(dtoc(datab),7,2)
use arquivo (arquivo de onde virá o balanco)
copy to &arqtemp. for blablablabla
sele databal
appe blan
repla data with datab
close data
return


veja se te ajuda
"Um passo a frente, e já não estará mais no mesmo lugar..."
Avatar do usuário
Ricardo Sales Ribeiro
Usuário Nível 3
Usuário Nível 3
Mensagens: 279
Registrado em: 13 Jul 2004 18:06
Localização: Fortaleza-Ceara

Mensagem por Ricardo Sales Ribeiro »

Valeu galera!

A ajuda de vcs foi importante, agora é só eu implementar minha rotina e testar, acredito q dê certo.

Obrigado
Ricardo Sales
Fortaleza-Ce
lodara53@yahoo.com.br
lodara53@hotmail.com
Responder