Vai al contenuto

ASN05E - Fatturazione contratti a licenze

Sorgente: cbl/asn05e.cbl | Tipo: Programma interattivo a menu

Menu: Assist 2.0 > Archivi > Contratti > Fatturazione contratti a licenze


Scopo

Estrae e fattura i ratei dei contratti con fatturazione "a matricola", limitatamente alle matricole del tipo configurato come "licenze software" (ass-contr / tipo-mtr-licenze-sw). Per ogni contratto/cliente/periodo seleziona le righe di rateo o variazione presenti sulla tabella movimenti di fatturazione (ASNMTF) e le porta in griglia per la generazione dei documenti.

Posizionamento

  • Variante del giro standard di fatturazione contratti Assist 2.0
  • Si distingue da ASN05/ASN05A perche' opera solo sulle matricole di tipo "licenze software"
  • Genera documenti di magazzino tramite COGS26 con causali distinte vendita/reso

Configurazioni RNEWCONF

Gruppo Chiave Effetto
ass-contr tipo-mtr-licenze-sw Codice tipo matricola che identifica le licenze software (filtro principale)
assist magaz-cliente Magazzino del cliente per i documenti generati
assist magaz-vendita Magazzino di vendita
assist cau-vendita Causale documento per le righe di fatturazione
assist cau-reso-licenze Causale documento per i resi (variazioni in diminuzione)
progcogv51 iva-agevolata-data-descr Descrizione IVA agevolata applicata sui documenti

Logica di calcolo giorni (g2-calcola-giorni)

Il paragrafo calcola il numero di giorni da fatturare (amtf-giorni) a partire dalle date del movimento, scorrendo giorno per giorno tramite DTPRG / PRGDT. La logica:

  1. Conta i giorni dall'inizio del periodo alla data fine, accumulando mesi completi (b5-mesi-comp * 30) e giorni residui (b5-giorni-comp)
  2. Applica un arrotondamento "a periodo intero" quando il totale giorni risulta inferiore di 1 unita' alle soglie standard: 29 → 30, 89 → 90, 179 → 180, 359 → 360

L'arrotondamento serve a fatturare un periodo intero (mese, trimestre, semestre, anno) quando lo scorrimento giorno per giorno produce un risultato di 1 inferiore al periodo nominale per effetto dei mesi corti (febbraio, mesi da 30 giorni).

Storico modifiche

2026-06-09 - Estensione arrotondamento giorni a periodi senza data sottoscrizione

In precedenza l'arrotondamento 29/89/179/359 → +1 era applicato solo se acnb-data-sotscr not = zero (presenza data sottoscrizione del contratto). Esteso a due ulteriori punti del paragrafo:

  • Dopo il blocco di chiusura periodo (b5-data = amtf-data-fine), fuori dalla guardia su acnb-data-sotscr, prima del salto a g2-calc-gg-999
  • All'interno del loop principale g2-calc-gg-10-loop, sui giorni accumulati di passaggio

L'effetto operativo e' che i periodi che generavano un totale "scaglionato" di 29/89/179/359 giorni vengono ora sempre arrotondati al periodo intero, indipendentemente dalla presenza della data di sottoscrizione del contratto.

File principali

File Uso
ASNCNTES, ASNCNRIG Testata e righe contratti
ASNMTF Movimenti di fatturazione (righe ratei/variazioni)
ASNMTR Matricole
COGGEANA Anagrafica clienti (fatturazione + assistito)
COGMERCI / COGMERAP Anagrafica merci collegate
COGCNF Lettura configurazioni di gruppo

Programmi chiamati

Programma Scopo
DTPRG / PRGDT Conversione data <-> giorni progressivi
COGS26 Creazione documenti di magazzino (testata + righe)
RNEWCONF Lettura configurazioni di gruppo