Fórum [OT] Dicas de um Sistema de contas a receber. #324029

22/06/2006

0

Olá Senhores, estou desenvolvendo um sistema, onde um dos módulos é o de
´Contas a receber´. É a primeira vez que desenvolve esse tipo de módulo
e gostaria de obter algumas dicas de quem ja desenvolveu algo desse tipo.
De imediato, eu pensei no seguinte:

TB_CONTAS_RECEBER
Campo           - Tipo    - Descrição
---------------------------
Código          - Inteiro - Sequencial
Codigo Cliente  - Inteiro - Código do cliente da tabela de cliente
Código Servico  - Inteiro - Código do tipo de servico
Data Vencimento - Data    - Data do vencimento escolhido pelo cliente,
                            padrão 30/xx
Desconto        - inteiro - Desconto caso tenha nessa cobrança,
                            o valor da cobrança e o desconto padrão
                            existirá no cadastro de tipo de servico.

TB_CONTAS_RECEBER_PENDENTES
Código          - Inteiro - Sequencial
Codigo Cobranca - Inteiro - Código da tabela tb_contas_receber
Data cadastro   - Date    - Data que a cobrança foi gerada
Status          - Char    - Satus da cobrança (Vencida, Aguardando)



uma rotina, executada todo mes, alimentará a tabela tb_contas_receber_pendentes
de acordo com os cadastros da tabela tb_contas_receber

estaria faltando algo?? há algo desnecessário? alguma dica pro desenvolvimento
desse módulo?

qualquer coisa será bem vinda :)


abraço.


Otto

Otto

Responder

Posts

22/06/2006

Adriano Santos

[b:ee3821e1da]oTTo[/b:ee3821e1da], trabalhei muitos anos com sistema de contas à receber e pagar. Em momento algum criei mais de uma tabela para controlar isso. Era tudo feito em uma única tabela, por exemplo:

TB_RECEBER

Codigo - Inteiro - Auto Numérico
Codigo_Cliente - Inteiro
Descricao_da_Conta - String - Descrição do que se referente a conta/recebimento.
Data_Entrada - TimeStamp - Formato completo
Data_Vencimento - TimeStamp - Formato completo
Data_Pagamento - TimeStamp - O cara pode pagar atrasado, então seu cliente poder querer um histórico de atrasos, juros e mora.
Codigo_Conta - Inteiro - Um numero do documento
Juros - Double -
Mora - Double -
Valor_Real - Double
Valor_Pago - Pra saber se o cara pagou a menos ou a mais (com juros)

STATUS - String(1)

E mais alguns campos que não me recordo. O Status é o mais importante pra mim, pois eu mudo o status de acordo com o momento/situação por exemplo:

A - ABERTO
B - BAIXADO
E - EXCLUIDO
S - ESTORNADO

E outros que vc pode criar. Acho isso interessante, pq vc pode trabalhar com uma série de filtros em cima o Status e ainda pode preparar o sistema para receber arquivo TXT de bancos de maneira mais prática.

Contas à receber e pagar tem que ser o mais simples possível.
Se quiser, eu tenho um software que comecei a fazer pro meu pai, mas parei o desenvolvimento. Já tem uma série de rotinas, não todas mas vc pode analizar como eu fiz. É só dar um toque.


Responder

Gostei + 0

22/06/2006

Otto

Olá Adriano, obrigado pela resposta, tive boas idéias com tudo isso que voce falou, obrigado novamente..

gostaria sim, de dar uma olhada nesse seu sistema pra ter mais idéias sobre o desenvolvimento do meu, se possivel, poderia enviar-me por email?

-> otto3d@gmail.com

obrigado.. abraço :)


Responder

Gostei + 0

22/06/2006

Adriano Santos

Sim posso cara, mas novamente te falo> tah incompleto pq parei o desenvolvimento. Devem ter uma série de bugs, mas o conceito acho que dah pra vc ter uma boa idéia.

Está em Delphi 7.0 com Firebird.
Só tenho o projeto em casa, me passa um email em artes@doiscliques.com só pra eu lembrar, e qdo chegar eu compacto e deixo no meu FTP ai vc pega blz?


Responder

Gostei + 0

22/06/2006

Adriano Santos

Pessoal, vamos organizar isso aki pra não virar um ´manda pra mim´, ´opa, pra mim tb´, ´ow tb quero´, vou disponibilizar o link aqui neste tópico e a galera baixa ok? Se não minha caixa postal vai encher de msgsss....

Elias, peguei seu email. Fique no aguardo.


Responder

Gostei + 0

22/06/2006

Adriano Santos

Ae galera, como prometido podem baixar. Só não vão compilar pq tem componente de terceiro. Os componentes de acesso são os MDO, tem um esquema para suportar skins com o VclSkin e alguns componentes que eu desenvolvi.

A base e o script da base estão juntas no arquivo .zip.

Abraço

http://www.doiscliques.com/pub/softgraf.zip


Responder

Gostei + 0

23/06/2006

Weber

Basicamente é a tabela do Adriano mesmo e mais algumas tabelas que são interessantes (eu faço assim)

Tabela baixa:
codigo_recpag
codigo_baixa
valor_baixa
valor_juros
data_baixa
bla bla bla

A tabela acima vai ser util quando determinado cliente efetua varias baixas para um mesmo lançamento, é o que chamamos de baixa parcial, utilizando esta tabela será possivel identificar em que datas e valores determinada conta foi baixada.

Tabela Caixa
codigos_recpag e de baixa
Tipo (dinheiro, cheque, cartao, etc)
Numero do cheque
Banco
Agencia
Valor
bla bla bla

Tabela Caixa será utilizada para informar como o recebimento foi feito, se em dinheiro ou cheque por exemplo, ou parte em dinheiro e parte em cheque, está tabela é meio caminho andado para o controle de conta corrente.

Na minha tabela recpag existe um campo que eu chamo de valor pago e outro campo que eu chamo de valor pendente.
O campo valor pago é feito por uma trigger que pega a soma dos resultado da tabela baixa, tendo o valor pago na tabela principal fica fácil para listar em relatorios. O campo valor pendente é um campo computed by que é o valor original + juros + multa - desconto - valor pago, em todas as telas eu apresento para o usuário sempre o valor pendente


Responder

Gostei + 0

23/06/2006

Adriano Santos

Basicamente é a tabela do Adriano mesmo e mais algumas tabelas que são interessantes (eu faço assim) Tabela baixa: codigo_recpag codigo_baixa valor_baixa valor_juros data_baixa bla bla bla A tabela acima vai ser util quando determinado cliente efetua varias baixas para um mesmo lançamento, é o que chamamos de baixa parcial, utilizando esta tabela será possivel identificar em que datas e valores determinada conta foi baixada. Tabela Caixa codigos_recpag e de baixa Tipo (dinheiro, cheque, cartao, etc) Numero do cheque Banco Agencia Valor bla bla bla Tabela Caixa será utilizada para informar como o recebimento foi feito, se em dinheiro ou cheque por exemplo, ou parte em dinheiro e parte em cheque, está tabela é meio caminho andado para o controle de conta corrente. Na minha tabela recpag existe um campo que eu chamo de valor pago e outro campo que eu chamo de valor pendente. O campo valor pago é feito por uma trigger que pega a soma dos resultado da tabela baixa, tendo o valor pago na tabela principal fica fácil para listar em relatorios. O campo valor pendente é um campo computed by que é o valor original + juros + multa - desconto - valor pago, em todas as telas eu apresento para o usuário sempre o valor pendente


Weber, seu esquema parece que enriquesse ainda mais o que costumo fazer. Você usa também algum esquema para Centro de Custos?

Tipo, tenho duas tabelas (neste sistema que passei pra galera não fiz) CentroCusto e SubCentroCustos mais ou menos assim:

[quote:9d656eef39=´TABELA CENTRO DE CUSTOS´]
CAMPO          |TIPO        |DESCRICAO
CODIGO         |INTEGER     |UM AUTO NUMÉRICO DA VIDA
DESCRICAO      |VARCHAR     |DESCRIÇÃO DO CENTRO DE CUSTOS

[/quote:9d656eef39]


[quote:9d656eef39=´TABELA SUB CENTRO DE CUSTOS´]

CAMPO          |TIPO        |DESCRICAO
CODIGO         |INTEGER     |UM AUTO NUMÉRICO DA VIDA
CODIGO_CENTRO  |INTEGER     |CODIGO DO CENTRO DE CUSTOS (VINCULO)
DESCRICAO      |VARCHAR     |DESCRIÇÃO DO SUB CENTRO DE CUSTOS

[/quote:9d656eef39]

Repare que é algo bem simples. Toda vez que o usuário vai cadastrar um novo contas à pagar/receber ele é obrigado a alocar isso em um centro de custos. Então imagina a situação:

[quote:9d656eef39=´Compras do Mês (Financeiro)´]

[*] 10 caixas de canetas.
[*] 01 novo computador.
[*] Despesas com Office-Boy.
[*] Produtos de limpeza.
[*] Gasolina do carro do chefe.
[*] Serviço de internet
[*] Telefone
[*] Água
[*] Aluguel
[*] Mensalidade Seguro

[/quote:9d656eef39]

Cada compra será um registro da tabela ContasPagar. Sendo que cada uma irá entrar em um centro-custos, veja:

[quote:9d656eef39=´Centros de Custos no sistema´]
ESCRITÓRIO
    OFFICE-BOY
    PAPELARIA
    INFORMÁTICA
    GASOLINA/ÁLCOOL
    DIVERSOS
DESPESAS FIXAS
    VEÍCULOS
    ALUGUEIS
    INFORMÁTICA
    DIVERSOS

[/quote:9d656eef39]


[quote:9d656eef39=´Onde cada despesa será lançada???´]

    [*] 10 caixas de canetas             = Escritório     >> Papelaria
    [*] 01 novo computador               = Escritório     >> Informática
    [*] Despesas com Office-Boy          = Escritório     >> Office-boy
    [*] Produtos de limpeza              = Escritório     >> Diversos
    [*] Gasolina do carro do chefe       = Escritório     >> Gasolina/Alcoól
    [*] Serviço de internet              = Dispesas Fixas >> Informática
    [*] Telefone                         = Dispesas Fixas >> Diversos
    [*] Água                             = Dispesas Fixas >> Diversos
    [*] Aluguel                          = Dispesas Fixas >> Alugueis
    [*] Mensalidade Seguro               = Dispesas Fixas >> Veículos


[/quote:9d656eef39]

Daí nas tabelas contas à receber e contas à pagar eu coloco dois campos para dizer o CentroCustos e SubCentro custos. Imagina agora seu cliente dizendo assim:

Pow, como que eu sei quanto gastei em PAPELARIA no mês tal?
Pow, como que eu sei quanto gastei em DESPESAS FIXAS no mês tal?

Isso pode ser aplicado também no contas a receber. Cada vez que o cara lança algo, ele vai lançar no centro de custos que pode ser:

[quote:9d656eef39=´Centros de Custos no sistema´]
VENDAS
    VENDAS NO ESTADO
    VENDAS FORA DO ESTADO
    VENDAS COM CARTÃO
    VENDAS À VISTA

[/quote:9d656eef39]


Aqui eu chutei, tava sem inspiração já, hehe, mas o nosso cliente fica a vontade para criar qualquer centro de custo tanto para controlar o que entra quanto para o que sai. Os relatórios ficam mamão com açucar.

[quote:9d656eef39=´Tudo que gastei em papelaria´]
  SELECT * FROM CONTAS_PAGAR WHERE CENTRO_CUSTO=:CENTRO_CUSTO AND SUB_CENTRO=:SUB_CENTRO   

[/quote:9d656eef39]


Responder

Gostei + 0

23/06/2006

Weber

Minha tabela de centro de custo tem esta estrutura.

plc_codigo varchar(8 )
plc_descricao varchar(100)

o cadastro fica mais ou menos assim:

2. . => DESPESAS
2.01. => ADMINISTRATIVA
2.01.001 => TELEFONE FIXO

Como eu utilizo firebird ficou facil montar uma view que traz corretamente na tela cada nivel que eu chamo de nivel1 nivel2 e nivel3, o usuario sempre informa na tela do sistema o nivel3 no caso 02.01.001

Para ligar isto ao RECPAG existe uma tabela que grava os planos de conta (centro de custo), esta tabela grava somente os codigos de ligacao e o valor, lembrando que o usuario pode ter planos de contas diferentes para um mesmo contas a pagar ou receber. Dando um exemplo pratico, minha empresa tem clientes de SISTEMA, HOST e MANUTENÇÃO porém um unico contrato e consequentemente um unico RECEBER, é o plano de contas que me diz quanto de que.
Na tela eu faço o controle do valor total do RECPAG manualmente, ou seja, o edit valortotal é readonly=false.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar