Files correlati : Ricompilazione Demo : [ ] Commento : riportate modifiche dalla 5.0 per stampa bilancio alla data git-svn-id: svn://10.65.10.50/trunk@19054 c028cbd2-c16b-5b4b-a496-9718f37d4682
46 lines
2.5 KiB
Plaintext
Executable File
46 lines
2.5 KiB
Plaintext
Executable File
Struttura base del programma
|
|
----------------------------
|
|
ca3800.cpp : gestione maschera, creazione report ed applicazione
|
|
ca3801.cpp : gestione report a colonne variabili in base alla struttura del piano dei conti
|
|
ca3883.cpp : programma vero e proprio, con tutta la parte di calcolo
|
|
|
|
La sequenza di calcolo è la seguente:
|
|
1) calcolo del contributo dei saldi analitici alla data fine esercizio; tale data corrisponde alla fine dell'esercizio selezionato se specificata sulla
|
|
maschera, oppure alla fine dell'esercizio precedente se specificata una data inferiore (bilancio alla data)
|
|
2) calcolo del contributo (ai soli totali) dei saldi futuri; partono dell'esercizio selezionato se il campo 'alla data' è < datafine esercizio, oppure
|
|
dall'esercizio successivo se il campo 'alla data' coincide con datafine esercizio
|
|
Solo per il bilancio alla data:
|
|
3) calcolo del contributo dei movimenti analitici nel periodo di calcolo dell'esercizio selezionato
|
|
4) calcolo del contributo dei documenti non contabilizzati nello stesso periodo
|
|
5) calcolo del contributo degli ordini non evasi nello stesso periodo
|
|
|
|
|
|
Calcolo della durata della vita di una riga
|
|
-------------------------------------------
|
|
|
|
1) se il movimento è di quelli con la data fine competenza = data fine commessa di ogni riga (MOVANA.AUTOFCOMP) pone la datafinecomp della riga
|
|
= data finale della commessa sulla riga tenendo conto anche di eventuali proroghe
|
|
|
|
2) se invece il movimento ha datafinecomp autonoma, Viene letta la data di fine competenza in testata (MOVANA.DATAFCOMP) valida per ogni riga
|
|
|
|
3) se anche questa data fosse vuota -> pone la datafinecomp = datacomp (MOVANA.DATAFCOMP = MOVANA.DATACOMP) -> movimento con durata 1 giorno
|
|
|
|
4) se la datafinecomp < datainizio esercizio selezionato -> scarta la riga perchè è già espirata prima del periodo da calcolare
|
|
|
|
5) calcola la vita totale della riga = datafinecomp - datacomp + 1 (in giorni)
|
|
|
|
6) se vita_totale_riga > 1 giorno procede al riproporzionamento dell'importo
|
|
|
|
7) Calcolo della frazione di vita utile della riga
|
|
--------------------------------------------------
|
|
La frazione di vita utile della riga che verrà usata per il riproporzionamento degli importi è:
|
|
|
|
vita_frazione_riga = fine_intervallo - inizio_intervallo + 1 (in giorni)
|
|
|
|
dove:
|
|
fine_intervallo = MIN(datacalcolo sulla maschera, datafinecomp)
|
|
inizio_intervallo = MAX(data inizio esercizio selezionato, datacompetenza)
|
|
|
|
se (vita_frazione_riga > 1 AND < vita_totale_riga) si procede al riproporzionamento:
|
|
|
|
importo_riproporzionato = importo_riga * vita_frazione / vita_totale |