campo-sirio/ca/ca_3800_regole.txt

46 lines
2.5 KiB
Plaintext
Raw Normal View History

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 <20> 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' <20> < 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 <20> 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<63> <20> gi<67> 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<72> usata per il riproporzionamento degli importi <20>:
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