Vai al contenuto

COGY74 - Esportazione pre-fatturazione clienti con arrotondamento

Intestazione

Campo Valore
Programma COGY74
Sorgente cbl/cogy74.cbl (1.493 righe)
Titolo Estrazione Pre-Fatturazione clienti con arrotondamento
Tipo Interattivo (GUI, screen cogy74-01.scr)
Modulo Sistema
Posizione menu Sistema > Utility > Esportazioni > Prefatture con arrotonda (e Prefatture Net4)

L'intestazione del sorgente lo descrive come "Selezione documenti da fatturare per clienti speciali - estrazione su foglio Excel".


Scopo

Estrae in un file delimitato (poi aperto come foglio Excel) le righe dei documenti da fatturare per i clienti configurati come "speciali", producendo un tracciato di pre-fattura con arrotondamento degli importi. Il file di output e' estrai_cli_mo.csv nella directory temporanea (ext-tmp-dir), con campi separati da carattere TAB (x'09'), e al termine viene aperto tramite la subroutine GRIDTOXS.

Lo stesso sorgente serve due voci di menu, distinte dal parametro di lancio wo-parametro:

  • Prefatture con arrotonda: comportamento standard; gli importi in euro vengono arrotondati (a-mag-valore-euro rounded).
  • Prefatture Net4 (wo-parametro = "N4"): variante per il tracciato "Net4"; usa la chiave di configurazione RAGGRUPPA1 in luogo di cli-con-sconto, non arrotonda l'importo, e per il laboratorio Lori risolve il codice merce cliente tramite cogmercl/coganapp.

Tabelle e file usati

File Ruolo Chiavi/campi rilevanti
coggeana / boggeana Scansione clienti e lettura nomi anb-tipo/ana-tipo, anb-cod/ana-cod, ana-nome
cogtesbo Testate bolle da fatturare chiave 2 (tes-data, tes-chia3); tes-tipob, tes-causale, tes-nonno, tes-dst-id
cogmomag Righe movimento da esportare chiave primaria (mag-testa, mag-prog); mag-merce3, mag-pre-no-sco, mag-prezzo, mag-qtamagaz, mag-valore, mag-alf
cogmerci Descrizione e codice merce mer-chia, mer-gru, mer-sot, mer-cod, mer-descr
cogmercl Codice/descrizione merce del cliente (cmc) mcl-merce, mcl-cli, mcl-cmc, mcl-desc
cogtabel Date di fatturazione (tipo 44), causali (tipo 15) euta-tipo, euta-cod, euta-cb-fl-eu, euta-cb-cli-for, euta-cb-con-fat, euta-gg/mm/aa-1..4
cogracbb Collegamento bolla -> commessa (medico/paziente) chiave 2 (rbb-tip="CD", rbb-b-bol, rbb-pro, rbb-a-bol)
cogdesti Destinazione diversa dst-ana-tip, dst-ana-cod, dst-id, dst-rag-soc
coganapp Padre CMC (solo Net4 / lab. Lori) aap-ana-tip, aap-ana-cod, aap-padre-cmc
cogmagaz Validazione magazzino magz-tipo="M", magz-cod, magz-nome
fileasc2 File di output estrai_cli_mo.csv (line sequential) as2-rec con campi TAB-delimitati
tran-v85, cogragfa, cogrifbo, cogrresi Aree/file di appoggio (external) -

Configurazione (RNEWCONF)

In x99-confi legge dal pacchetto C un blocco di chiavi di fatturazione (gruppo FATTBATCH/FATTDESCBO/FATTURAZ), tra cui EUTA-C055-TIP-FAT, EUTA-C055-CP-CT, EUTA-C055-PERIOD, EUTA-C006-AFFOGO-RESI, SOGLIA-FATTURE-SEGNALATE.

La selezione dei clienti "speciali" avviene in a-new-commessa: per ogni cliente legge la chiave STAMPAFAT con chiave cli-con-sconto (o RAGGRUPPA1 in modalita' Net4), sudddivisione sul codice cliente (ncnf-sud-n); se il valore e' "S" il cliente rientra nell'estrazione.

Ulteriore chiave letta per cliente: CLIENTE-FILTRATO-SU-AGENTE2 (gruppo FATTBATCH, x-configurazione-bis).


Logica di elaborazione

  1. apri/a001 - apertura file, lettura azienda, apertura in output di fileasc2; lettura configurazione (x99-confi); costruzione controlli GUI.
  2. a4-a-tm-mod-uso-mag - richiesta parametri: data inizio/fine, magazzino (F8 aiuto), modo d'uso magazzino; F5 su data inizio apre la lista documenti da fatturare (COGU14).
  3. a-richiesta-conferma - calcolo anno bisestile, lettura delle 4 date di fatturazione da cogtabel tipo 44 (euta-gg/mm/aa-1..4), con segnalazione se una data e' a zero.
  4. a-elabora (dopo conferma F3):
  5. scorre i clienti (boggeana tipo cliente); per ciascuno verifica in configurazione se e' un cliente "speciale" da estrarre;
  6. per il cliente selezionato scorre le bolle (cogtesbo chiave 2) nel periodo, applicando i filtri: tipo bolla B/I/D, causale non omaggio (az-cau-oma), causale con fl-eu = "U" (uscita), cli-for = "C", con-fat = "SI";
  7. alla prima riga scrive il titolo/formato del file (crea-titolo);
  8. per ogni riga movimento con mag-pre-no-sco > 0 chiama prepara-rec-xls e scrive un record;
  9. aggiorna i contatori a video (righe movimento, clienti, bolle).
  10. prepara-rec-xls - compone la riga TAB-delimitata: lotto (vuoto), codice fornitore (tm-cfg-for), codice/descrizione merce cliente (cogmercl), 10 campi di appoggio (tra cui data consegna e codice merce composto), prezzo lordo/netto, IVA, quantita', importo (arrotondato salvo Net4), nome cliente, medico e paziente (via cogracbb -> COGZS1), riferimento DDT, codice cliente, destinazione (cogdesti).
  11. z-chiudi - chiude fileasc2 e, se ci sono dati (ok-esporta-excel), chiama GRIDTOXS (operazione apri-file) per aprire il file prodotto.

Chiamate / COPY rilevanti

Programma Scopo
RNEWCONF Lettura configurazioni di fatturazione e selezione clienti
GRIDTOXS Apertura del file estratto come foglio Excel
COGU10 / COGU10W Editing/conversione importi
COGU14 Lista documenti da fatturare (F5)
COGZS1 Recupero medico/paziente della commessa
COGS65W Aiuto/selezione cliente
COGS52 Accept date
DTPRG / PRGDT Conversione data <-> progressivo giorni
C$JUSTIFY Allineamento codice merce

COPY notevoli: utilncnf.cpy, utilzs1.cpy, utilu10.cpy, utilu14.cpy, k-personal.cpy, utils65.cpy.


Note

  • Il delimitatore effettivo del file e' il TAB (x'09', variabile k-virgola), nonostante l'estensione .csv e la scheda di flusso che lo riporta come ;.
  • La differenza tra "Prefatture con arrotonda" e "Prefatture Net4" e' tutta gestita internamente dal parametro di lancio wo-parametro = "N4": stesso eseguibile, comportamenti diversi su chiave di configurazione, arrotondamento importo e risoluzione codice merce cliente.
  • Alcune personalizzazioni sono legate a az-personal = k-personal-lab-lori (laboratorio Lori): fornitore fisso 1650, cliente merce 3935 e risoluzione del padre CMC via coganapp.

Documentazione tecnica -- creata 2026-08-07