Fluxo de Caixa - Medicina do Trabalho

Pessoal, tenho dúvidas contábil, sobre a seguinte situação:

Contas a Receber:

existem três tipos de contratos
1º Até “X” Funcionários
2º Fixo + Excedentes
3º Por funcionários

o que significa os contratos
1º significa que os exames clinicos no mês podem ser realizados até X funcionarios, passou disso cobra a parte por funcionario
2º significa que a empresa paga um valor fixo por mês até “X” funcionários, passou disso ele paga o excedente porém tem uma valor diferenciado
3º Significa que ele paga por exames clinicos realizados no mês por funcionários

Todo o exame adicional tem um custo que é cobrado do cliente no mês que os exames são realizados
Ex: contratando você, você tem um exame de audiometria para fazer, este exame é cobrado a parte em minha mensalidade

Contas a pagar:

pensando no sistema:
O médico da labour recebe por exames realizados 15,00 reais
por exemplo: se o médico fez 60 exames no dia, neste dia ele faturou 60x15,00
do exame clínico é somente isso.
Do exame complementar, ele tem várias clinicas que fazem e essas clinicas cada uma tem um valor diferente para cada exame
existem aproximadamente 60 exames
Assim que o paciente faz o exame clinico o médico marca os complementares
o paciente vai e faz os complementares
dai no final do dia, precisamos saber quais exames foram realizados no mês corrente pelas clínicias e quanto cada uma vai receber dele ou melhor dizendo, quando ele vai pagar para cada clinica

Isso encerra os exames complementares

outras contas a pagar:

por exemplo ele compra da bit a manutenção preventiva ele tem que lançar essa conta no contas a pagar
mais uma situação:
ele pode comprar uma impressora na bit em 5x ele tem que lançar a conta em 5 parcelas para pagar a cada 28 ou 30 dias, porém esses dias podem variar de acordo com a compra
tb tem aquelas contas fixas como agua, luz e energia que precisam ser lançados no contas a pagar, blz?
agora tem um detalhe
o contas a receber e contas a pagar poderão ser creditados ou retirados de 5 contas bancárias, 2 contas no bradesco,uma no itau, banco do brasil e caixa economica federal

Esse encerra o contas a pagar

Isso encerra o fluxo de caixa completo

Como eu construo o banco de dados e como elaboro a aplicação para aceitarem as compras e vendas parceladas?

Espero que alguém consiga me ajudar.

Grato,

Tiago Sanches

Então pessoal, estou estudando bastante aqui, mas não tenho o ponto de partida no scriptcase, alguém pode me dar uma força?

em delphi eu poderia usar assim:

procedure TFormEmiteDuplicata.btnGerarClick(Sender: TObject);
var
intParcelas,intContador,intFatura,intPosicao,IntInteiro,intDecimal: integer;
wrdDia,wrdMes,wrdAno: word;
strFatura,strDuplicata,strAno,strParteInt,strParteDec,strExtensoInt,strExtensoDec,strValor: string;
dtVencimento:tDateTime;
dblValorDuplicata,dblValortotal1,dblValorTotal2,dblValorDiferenca: double;
begin
dtVencimento:= strtodate(mskprimeirovencimento.Text);
Decodedate(date,wrdAno,wrdMes,wrddia);
strAno := inttostr(wrdAno);
strano := copy(strAno,3,2);
intParcelas := strtoInt(trim(mskParcelas.Text));
dblValorTotal1 := strtofloat(trim(fldValorTotal.Caption));
dblValorduplicata:= strtofloat(format(’%12.2f’,[dblValortotal1/intParcelas]));
dblValorTotal2 := dblValorDuplicata * intParcelas;
dblValorTotal2 := strtofloat(format(’%12.2f’,[dblValorTotal2]));
dblvalorDiferenca:= dblValorTotal1 - dblValorTotal2;

IBStoredProc1.Prepare;
IBStoredProc1.ExecProc;
intFatura:= IBStoredProc1.Params[0].AsInteger;
strFatura:= inttostr(intFatura);
strFatura:= strZero(strFatura,4)+'/'+strAno;
tblDuplicatas.Open;
for intContador := 1 to intParcelas do
begin
    strDuplicata := inttostr(intfatura);
    strDuplicata := strZero(strDuplicata,4)+strAno+trim(inttostr(intContador));

    tblDuplicatas.Append;
    tblduplicatasID.AsInteger:= intContador;
    tblDuplicatasNumeroFatura.AsString:= strFatura;
    tblDuplicatasNumeroDuplicata.AsString:= strDuplicata;
    tblDuplicatasDataVencimento.AsDateTime:= dtVencimento;
    if intContador = intParcelas then
        tblDuplicatasValor.AsFloat:= dblvalorDuplicata+dblvalordiferenca
        else
           tblDuplicatasValor.AsFloat:= dblValorDuplicata;

    strValor := trim(format('%12.2f',[tblDuplicatasValor.AsFloat]));
    intPosicao:= Pos(',',strValor);
    strParteInt := copy(strValor,1,intPosicao-1);
    strParteDec := copy(strValor,intPosicao+1,2);
    intInteiro := strtoInt(strParteInt);
    intDecimal := strtoInt(strParteDec);
    if intDecimal > 0 then
       strExtensodec := ','+extenso(intDecimal)+' CENTAVOS.'
       else
       strExtensoDec:= '.';
    if intInteiro > 1 then
        strExtensoInt := extenso(intInteiro)+' REAIS'
        else
           strExtensoInt := Extenso(intInteiro)+' REAL';
    tblDuplicatasVALOREXTENSO.AsString:= strExtensoInt+ strextensodec;
    tblDuplicatas.Post;
    IBTransaction1.CommitRetaining;
    dtVencimento:= dtVencimento + 30;
end;

end;

mas no script case, devo partir de onde?

companheiro isso tudo da pra fazer atraves da clausura where de uma sql

Coema eu vi um post seu em 2008 que você estava fazendo a mesma coisa que estou fazendo, você pode me dar uma luz de como fazer?

Eu tenho uma aplicação mestre que coloco os dados e uma aplicação detalhe que coloco as parcelas e os vencimentos, como faço para alimentar a tabela detalhe atravéz da tabela mestre?

Sou novato no scriptcase… se poder me ajudar te agradeço muito…

Obrigado pela resposta.

Tiago Sanches

Não sei se ajuda, veja este post no blog scripcase: http://www.scriptcaseblog.com.br/processamento-de-dados-partir-de-formulario-do-tipo-controle-utilizando-macros-de-consulta-e-insercao-base-de-dados/

Bem prejudicado esse post: 2011.

Não vi o ano, foi por impulso!

Mas a vontade de ajudar é muito valorizada.