COGFA8 - Ricalcolo paese "Made in" degli articoli¶
Panoramica¶
Programma GUI a griglia (con modalita' batch alternativa) che ricalcola il paese di produzione "Made in" degli articoli di magazzino. Per ciascun articolo determina il paese Made in: per le distinte base (padre "P") in modalita' ricalcolo lo calcola invocando COGUAB (che analizza componenti, valori, percentuali e margini), mentre per gli articoli semplici o in modalita' "consultazione" lo legge da COGMERA3 (ma3-made-in). La griglia mostra, articolo per articolo, il Made in attuale, quello precedente ed eventuali dati di calcolo (percentuali/valori materia prima e Italia, margine). In modalita' batch (richiamato da altro programma) esegue il ricalcolo su tutti gli articoli e genera/invia via email due report: gli articoli con Made in variato (a GAPI) e quelli con Made in mancante/provvisorio (agli operatori interni).
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Vendite | Documentazioni > Ricalcolo paese 'Made in' |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file) |
| COGMERCI | Input | Anagrafica merci: scandita per individuare gli articoli da elaborare (classe, padre, tariffa) |
| COGMERA3 | I-O | Merci dati aggiuntivi: paese "Made in" attuale, precedente (ma3-made-in-prec) e provvisorio (ma3-made-in-provv); aggiornata dopo la notifica variazione |
| COGMOMAG | Input | Movimenti magazzino: ultima entrata dell'articolo (chiave k04), per report mancanti |
| COGTESBO | Input | Testate documenti: documento di ultima entrata (fornitore) |
| COGGEANA | Input | Anagrafica generale (nome fornitore) |
| COGMERFO | Input | Merci-fornitore: codice merce fornitore per il report mancanti |
| COGTABEL | Input | Nazioni (tipo 54) per descrizione/sigla ISO paese |
| t-grid-det (T-GRID-DET) | I-O | File di transito indicizzato della griglia (istanza COGTRANS k04) |
| fvariazioni | Output | Report line sequential (TSV) degli articoli con Made in variato |
| fmancanti | Output | Report line sequential (TSV) degli articoli con Made in mancante/provvisorio |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| cogfa8.select / cogfa8.fd | SELECT e File Description (generati da Screens) |
| cogfa8.wrk / cogfa8.decla / cogfa8.prc | Working storage, declaratives e procedure di I/O generati da Screens |
| cogfa8.tm | Campi modificabili della maschera (filtri) generati da Screens |
| cogfa8-01.scr | Screen section (griglia e area filtri) |
| cogfa8.imppredf-wrk / cogfa8.imppredf | Filtri predefiniti memorizzati (Ctrl-S / Ctrl-F) |
| utilcogfa8.cpy | Area di linkage util-cogfa8 (cogfa8-called, cogfa8-caller, cogfa8-ope) |
| costanti-stampaggio.cpy | Costanti dominio stampaggio/produzione |
| utilcoguab.cpy | Area per COGUAB (calcolo Made in da distinta base) |
| utilcrms06.cpy / utilcrms09.cpy | Aree per CRMS06/CRMS09 (scheda CRM: esistenza, esportazione a GAPI) |
| utilpost.cpy / utilmymail.cpy | Aree per POSTA/MyMail (invio email report) |
| l-copiaf.cpy / u-copiaf.cpy | Aree per COPIAF (copia allegato su client) |
| acucobol.def | Definizioni AcuCOBOL (es. os-is-unix) |
| k-tipi-cogtabel.cpy | Costanti tipo COGTABEL (k-euta-tipo-nazioni = 54) |
| wgrid.cpy / utilgdad.cpy | Gestione griglia e GRIDADMN |
| utile04 / utils52 / utils65 / utils68 / utils93 / utilu06 / utilu10 / utilu20 | Aree per subroutine di help/selezione |
| utilncnf.cpy / cogazien.cpy | Configurazioni (RNEWCONF) e dati azienda |
| grave / stato / stato1 / winmsg / mmmask / opengen / msgmerce | Errori, stato verbi, messaggi, maschera, apertura file, estrazione dati merce |
| cogmomag.k04 | Chiave secondaria COGMOMAG aggiunta manualmente (ricerca ultima entrata) |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Preparazione/personalizzazione (Shift-F4) della griglia |
| COGUAB | Calcolo del paese "Made in" per le distinte base (componenti, percentuali/valori materia prima e Italia, margine) |
| CRMS09 | Ricerca della scheda CRM dell'articolo ("CERCA-SCHEDA") |
| CRMS06 | Lettura informazione scheda CRM: articolo esportato a GAPI |
| POSTA / (MyMail) | Invio email dei report variazioni (a contatti "RMI" del cliente GAPI) e mancanti (agli operatori gruppo "RMI") |
| COPIAF | Copia dell'allegato dal server al client prima dell'invio |
| RNEWCONF | Configurazione ARC-OTT / PATH-APRI-FILE (percorso locale) |
| W$MENU | Menu pop-up contestuale della griglia |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Nome programma, ctr-abil, apertura file. Determina la modalita': se cogfa8-called = "COGFA8-CALLED" imposta w-dc-batch = "S" e forza l'operazione a RICALCOLA; altrimenti gira in modalita' interattiva (w-dc-batch = "N"). In modalita' interattiva abilita i tasti funzione (F3, F7 log, F8 aiuto/calendario, F9, Shift-F4, Shift-F5), crea menu pop-up, pulsanti custom (Salva/Cerca impostazione), imposta il titolo "Ricalcolo paese 'Made in'" e prepara la griglia (GRIDADMN). In modalita' batch salta tutta la parte GUI.
2. Instradamento (a4)¶
Inizializza tipo elaborazione "R" (ricalcolo). In modalita' batch: apre il transito, crea il transito ricalcolando tutti gli articoli (z-grid-det-crea-transito), genera le notifiche (z-crea-notifiche) e va a fine. In modalita' interattiva: carica il filtro predefinito e presenta i filtri.
3. Impostazione filtri (interattivo: a-tm-*)¶
Campi filtro: tipo elaborazione (tm-tip-ela: R ricalcolo / C consultazione) e articolo (a-tm-mer, COGS68). Conferma via a-richiesta-conferma.
4. Costruzione file di transito e ricalcolo (z-grid-det-crea-transito)¶
- Se e' indicato un singolo articolo, elabora solo quello;
- altrimenti
z-scorri-cogmerciscandisce COGMERCI mostrando un contatore di avanzamento a video.
z-grid-det-riempi-t-rec scarta gli articoli cancellati (mer-val = "C"). z-grid-det-riempi-campi-t-gor determina il Made in:
- per gli articoli non distinta base (mer-padre <> "P") o in modalita' consultazione: legge ma3-made-in da COGMERA3;
- per le distinte base in ricalcolo: chiama COGUAB (con log gesdebug) e ottiene paese Made in, tipo prodotto, paese/percentuale/valore materia prima, PMV, percentuale/valore Italia, margine.
Poi risolve descrizioni e sigle ISO dei paesi (attuale, precedente) via COGTABEL tipo 54 e riporta il Made in provvisorio.
5. Gestione griglia (interattivo: a-grid)¶
Ciclo di accept: uscita, Shift-F4 (GRIDADMN), Shift-F5 (export Excel), F7 (consulta il log della procedura di ricalcolo della riga, gesdebug-consulta-sub), voci pop-up. Griglia di sola consultazione.
6. Creazione notifiche (batch: z-crea-notifiche)¶
Prepara i due file TSV (fvariazioni, fmancanti) con intestazioni, poi scorre il transito (z-notifiche-esamina-riga):
- Mancante/provvisorio: se il Made in e' vuoto o provvisorio, scrive una riga in fmancanti (z-scrivi-notifica-mancante), limitatamente ai gruppi merce "PA"/"PF"/"PS", recuperando l'ultima entrata (COGMOMAG k04), il fornitore (COGTESBO/COGGEANA) e il codice merce fornitore (COGMERFO);
- Variato: se il Made in attuale differisce dal precedente ed e' valorizzato, e l'articolo risulta gia' esportato a GAPI (verifica CRMS09/CRMS06), scrive una riga in fvariazioni (z-scrivi-notifica-variazione) se e' presente il codice merce cliente; quindi aggiorna COGMERA3 azzerando il provvisorio e allineando ma3-made-in-prec al valore attuale.
z-notifiche-finalizza chiude i file e, se popolati, invia i report via email: le variazioni ai contatti "RMI" del cliente GAPI, i mancanti agli operatori del gruppo "RMI"; l'allegato viene prima copiato sul client con COPIAF.
7. Chiusura (fine / z-chiudi)¶
Annulla COGUAB e CRMS09, chiude gesdebug, chiude e cancella il file di transito, distrugge il menu, chiude la finestra ed esce.
Note tecniche¶
- Doppia modalita' (interattiva / batch): da menu apre la griglia per consultare/ricalcolare interattivamente; richiamato con
cogfa8-called = "COGFA8-CALLED"gira in batch (nessuna GUI), ricalcola tutti gli articoli e invia i report email. La modalita' e' pilotata daw-dc-batch. - Titolo di menu vs commento sorgente: l'intestazione del sorgente riporta "Consultazione dettaglio DOP" (copiato da COGFA2), ma la funzione reale e' il ricalcolo del paese "Made in" come da etichetta di menu e da titolo maschera "Ricalcolo paese 'Made in'".
- Calcolo Made in: per le distinte base (padre "P") in ricalcolo il paese e' calcolato da COGUAB; per gli altri casi e' letto da COGMERA3. Il tipo elaborazione
tm-tip-ela = "C"forza la sola lettura senza ricalcolo. - Notifiche e GAPI: la notifica di variazione parte solo per articoli gia' esportati a GAPI (CRMS09 -> CRMS06 info "esportato-a-gapi") e con codice merce cliente valorizzato; dopo la notifica COGMERA3 viene allineato (
ma3-made-in-prec= attuale, provvisorio azzerato). I mancanti sono limitati ai gruppi merce PA/PF/PS ed escludono l'articolo generico "999999999". - Report TSV: i file
madein_variazioni.txtemadein_mancanti.txtsono scritti a colonne separate da tab (x'09'), con terminatorex'0D'su Unix; vengono copiati sul client (COPIAF) e allegati alle email (POSTA/MyMail). - COGTABEL tipo 54 (nazioni) per descrizioni/sigle ISO dei paesi; chiave secondaria
cogmomag.k04aggiunta manualmente per la ricerca dell'ultima entrata. - Programma generato da Screens: struttura, griglia e I/O da
cogfa8.select/.fd/.wrk/.decla/.prce screencogfa8-01.scr; i file reportfvariazioni/fmancantisono dichiarati manualmente nel sorgente.