ASNS17 - Operazioni su contratti a scalare¶
Posizione nel menu Programma non a menu Linkage section
| Tipo | Dato | Formato | Contenuto |
|---|---|---|---|
| INPUT | ASNS17-OPE | x(20) | Vedi argomenti successivi |
| ASNS17-CONTRATTO | 9(12) | ID contratto | |
| ASNS17-CREA-DETTAGLIO | x(01) | Deve essere creato il file di dettaglio? S/N | |
| OUTPUT | ASNS17-MODO-SCALARE | Restituisce se il contratto è a scalare: |
|
| ASNS17-MONTE-ORE | 9(04) | Monte ore previsto | |
| ASNS17-MONTE-VALORE | 9(12)v999999 | Monte valore previsto | |
| ASNS17-USO-ORE | 9(04) | Monte ore utilizzato | |
| ASNS17-USO-VALORE | 9(12)v999999 | Monte valore utilizzato | |
| ASNS17-RESIDUO-ORE | 9(04) | Monte ore residuo | |
| ASNS17-RESIDUO-VALORE | 9(12)v999999 | Monte valore residuo | |
| ASNS17-NOME-FILE | x(150) | Nome del file di dettaglio generato, se richiesto | |
| FILLER | x(349) |
Logica generale Lo scopo principale del programma è di calcolare i dati riepilogativi di ore/valore per un contratto a scalare, e restituire i dati al programma chiamante. Elaborazione L'elaborazione cambia a seconda dell'operazione richiesta.
Operazione: CERCA-RESIDUO¶
Descrizione Riceve in input un contratto e restituisce i dati di sintesi relativi alla gestione "a scalare", quando previsto. Chiamata standard
| Tipo | Dato | Contenuto |
|---|---|---|
| INPUT | ASNS17-OPE | "CERCA-RESIDUO" |
| ASNS17-CONTRATTO | ID contratto | |
| ASNS17-CREA-DETTAGLIO | S/N a seconda dell'esigenza (Default "N") |
|
| OUTPUT | ASNS17-MODO-SCALARE | Restituisce se il contratto è a scalare: |
| ASNS17-MONTE-ORE | Monte ore previsto | |
| ASNS17-MONTE-VALORE | Monte valore previsto | |
| ASNS17-USO-ORE | Monte ore utilizzato | |
| ASNS17-USO-VALORE | Monte valore utilizzato | |
| ASNS17-RESIDUO-ORE | Monte ore residuo | |
| ASNS17-RESIDUO-VALORE | Monte valore residuo | |
| ASNS17-ESITO | Esito | |
| ASNS17-MSG | messaggio inputput | |
| ASNS17-NOME-FILE | Nome del file di dettaglio generato | |
Elaborazione In questa modalità gli eventuali messaggi non dovranno essere visibili, ma passati all'esterno. Leggere la testata contratto ASNCNTE2: qui si trova il flag che permette di riconoscere un contratto a scalare: ACN2-TIPO-SCALARE, che può essere restituito direttamente su ASNS17-MODO-SCALARE.ù Quindi, se è vuoto, uscire con tutti gli altri dati = 0. Altrimenti procedere come segue Ricerca prestazioni "a scalare" Preparare una tabella interna al programma che conterrà tutte le prestazioni indicati nel contratto che sono incluse nel monte ore/valore: sono tutte le prestazioni indicate in ASNCNTAR, dove ACNR-FL-SCALARE = "S". Ricerca interventi collegati a contratto Scorrere ASNCHTES usando ACHT-CHIA2, per tutte le chiamate collegate al contratto in esame. Per ciascuna chiamata cercare tutti gli interventi chiusi (ricerca su ASNINTES usando ACIT-CHIA2): sono quelli con ACIT-STATO = "C" -> gli interventi pre-chiusi non sono ancora considerati nel monte ore/valore. Per ciascun intervento valido scorrere le prestazioni: scansione su ASNINDET per tutte le righe collegate all'intervento con ACID-TIP = "P"; per ciascuna leggere anche ASNINDE2 e considerare solo le righe con ACID2-MONTE-APPLICATO = "S" (sono le righe su cui è stato effettivamente calcolato e applicato il contratto a scalare); quindi calcolare: * Se il contratto è a "monte ore" (ACN2-TIPO-SCALARE = "Q"): sommare ACID-QTA a ASNS17-USO-ORE * Se il contratto è a "monte valore" (ACN2-TIPO-SCALARE = "V"): sommare ACID2-MONTE-VALORE a ASNS17-USO-VALORE Alla fine del procedimento quindi si dovrà restituire al programma chiamante i seguenti dati:
| Dato | Contenuto |
|---|---|
| ASNS17-MODO-SCALARE | ACN2-TIPO-SCALARE |
| Se il contratto è a "Monte ore": | |
| ASNS17-MONTE-ORE | ACN2-QTA-SCALARE |
| ASNS17-USO-ORE | Totale ore calcolate |
| ASNS17-RESIDUO-ORE | ASNS17-MONTE-ORE - ASNS17-USO-ORE |
| Se il contratto è a "Monte valore": | |
| ASNS17-MONTE-VALORE | ACNT-IMPORTO |
| ASNS17-USO-VALORE | Totale valore calcolato |
| ASNS17-RESIDUO-VALORE | ASNS17-MONTE-VALORE - ASNS17-USO-VALORE |
Quindi dopo aver determinato le quantità scaricate (evase) per ciascuna riga, esportare il residuo sulla tabella di linkage. Creazione file di dettaglio Se richiesto (ASNS17-CREA-DETTAGLIO = "S"), creare un file di transito in EXT-TMP-DIR, con il tracciato descritto in ASNS17-T-MOV.
| Nome campo | Note |
|---|---|
| "I" | |
| ACID-CHIA1 | |
| ACID-MERCE | |
| ACID-QTA | |
| ACID2-MONTE-VALORE | |
| Data chiusura intervento |
ASNS17-T-MOV¶
Tabella che conterrà il dettaglio dei movimenti considerati nel calcolo monte ore/valore per un contratto Per questa tabella è necessario creare delle copy riutilizzabili in altri programmi.
| Tabella: ASNS17-T-MOV |
|---|
| Nome campo |
| T-ASNS17-REC |
| FILLER |
| Chiavi necessarie: |
Estratto da documentazione interna ClickUp