Vai al contenuto

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:

  1. Posiziona su ASNCHRIP (testata processo riparazione) chiave 2 con asns07-chiamata.
  2. Per ogni record del processo, cerca su ASNCHRID (dettaglio) il record con arpd-prog = 40 (DDT restituzione).
  3. 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.
  4. Per ciascun DDT di restituzione trovato, invoca b-esamina-documento-magazzino con flag b21-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 chiamata
  • asnchrid.k02 -- chiave per scan dettaglio processo

Configurazioni

  • tm-cfg-ricavo-sempre: se "S", genera sempre il ricavo (salta il controllo euta-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.