ASNS07 -- Subroutine calcolo costi/ricavi chiamata Assistenza¶
Sorgente: cbl/asns07.cbl | Tipo: Subroutine (CALL) | Program-ID: ASNS07
Scopo¶
ASNS07 calcola i costi e ricavi associati a una chiamata di assistenza (asnintes) componendo i dati derivati da:
- Documenti di magazzino collegati alla chiamata (uscite materiali, entrate, restituzioni)
- Ordini di vendita / acquisto collegati
- Bolle di consegna a fornitore per le lavorazioni esterne
- Documenti del processo di riparazione (
asnchrip,asnchrid)
Viene invocato dai programmi di consultazione/stampa chiamata (es. ASN140, ASN541, area engineering).
Logica di elaborazione¶
Blocchi principali¶
| Paragrafo | Funzione |
|---|---|
b-dettaglio-chiamata |
Punto di ingresso: calcola tutti i documenti collegati alla chiamata |
b-altri-documenti-chiamata |
Ricerca documenti aggiuntivi (note, bolle separate) |
b21-espandi-bolle-da-processo-rip |
(nuova 2026-06-04) Aggiunge i costi delle bolle di restituzione del processo riparazione |
b-esamina-documento-magazzino |
Esamina un singolo documento e ne aggiunge costi/ricavi |
b-aggiungi-costo-b-valore-uni / b-aggiungi-ddt-costo / b-aggiungi-ddt-ricavo |
Aggregatori di costo e ricavo |
Ricerca costi lavorazioni esterne (TASK-4869, b21)¶
Per le chiamate di laboratorio con processo di riparazione (asnchrip), aggiunge i costi delle restituzioni dai fornitori di lavorazione esterna -- analoga alla funzione "espandi bolle da processo riparazione" gia' presente in COGMA3.
Scan:
- Posiziona su
ASNCHRIP(testata processo riparazione) chiave 2 conasns07-chiamata. - Per ogni record del processo, cerca su
ASNCHRID(dettaglio) il record conarpd-prog = 40(DDT restituzione). - I progressivi 10/20/30 (buoni prelievo, DDT consegna, ordini riparazione) sono saltati: i primi due non sono valorizzati, il terzo e' gia' considerato altrove.
- Per ciascun DDT di restituzione trovato, invoca
b-esamina-documento-magazzinocon flagb21-fl-processo-rip = "S".
Comportamento speciale con b21-fl-processo-rip = "S":
- Anche se il documento di magazzino ha segno "E" (entrata), il calcolo lo tratta come "U" (uscita) -- e' un costo di lavorazione esterna.
- Non vengono generati ricavi (saltata la chiamata a
b-aggiungi-ddt-ricavo). - Il valore unitario usato per il costo e'
mag-prezzo(prezzo della riga magazzino), non quello derivato dal calcolo standard.
File e tabelle (principali)¶
| File | Uso |
|---|---|
| ASNINTES | Testata chiamata |
| ASNINTRI | Righe chiamata |
| ASNCHRIP | Processo riparazione (testata) -- chiave 2: id chiamata |
| ASNCHRID | Processo riparazione (dettaglio) |
| COGTESMG | Testata magazzino |
| COGRIGMG | Righe magazzino |
| COGMOAGG | Movimenti aggregati (costi/ricavi) |
| COGTABEL | Tabelle generiche (tipi causale) |
| COGRACBB | Raccordo bolle (chiave 2) |
Copybook chiave aggiunte¶
asnchrip.k02-- chiave per scan processo riparazione per chiamataasnchrid.k02-- chiave per scan dettaglio processo
Configurazioni¶
tm-cfg-ricavo-sempre: se "S", genera sempre il ricavo (salta il controlloeuta-cb-con-fat).
Storico modifiche¶
| Build | Descrizione |
|---|---|
| 2026/0604 | TASK-4869: aggiunta ricerca costi delle lavorazioni esterne tramite scan del processo riparazione (b21-espandi-bolle-da-processo-rip). Per le bolle di restituzione (arpd-prog = 40) anche le entrate vengono trattate come costo. Aggiunto flag b21-fl-processo-rip. Aggiunti copy "asnchrip.k02" e copy "asnchrid.k02". Aggiunto guard if w-verbo-invalido initialize euta-rec end-if dopo lettura COGTABEL. |