Vai al contenuto

COGP56 - Valorizzazione x Vendita

Scopo

Stampa la distinta base di un singolo prodotto valorizzata con i prezzi di vendita applicati a un determinato cliente. Considera listino, fascia sconto e divisa per calcolare il costo di ogni componente dal punto di vista commerciale.

Struttura

Programma standalone di stampa con maschera GUI (mmmask.cpy). Flusso:

  1. Parametri: codice distinta, codice cliente, numero copie, flag note, divisa
  2. Configurazione: lettura configurazione per esclusione prestazioni (tm-cfg-psz-gru/sot)
  3. Selezione stampante: tramite COGS54
  4. Stampa: ripetuta per il numero di copie indicato (b-stampa eseguita tm-cop volte)

Tabelle/File utilizzati

Tabella Accesso Descrizione
COGMERCI Lettura Anagrafica merci - validazione distinta e lettura componenti
COGDBASE Lettura Distinta base - elenco componenti
COGGEANA Lettura Anagrafica clienti - validazione cliente, listino e fascia
FEURTAB Configurazione Tabella configurazioni standard

Logica di elaborazione

Validazione input

  • Distinta (tm-merce): deve esistere in COGMERCI con mer-padre = "P"
  • Cliente (tm-cli): deve esistere in COGGEANA con tipo cliente; recupera ana-riflistino e ana-fascia. Se listino fuori range 1-5, forza listino 1 (soglia ridotta da 99 a 5 il 2026-05-22 per allineamento al numero effettivo di listini in uso)
  • Copie (tm-cop): deve essere maggiore di zero

Ciclo stampa (b-stampa)

Eseguito tm-cop volte. Per ogni copia:

  1. Stampa testata con: prodotto (codice + descrizione), divisa, cliente (codice + ragione sociale)
  2. Scansione COGDBASE per i componenti della distinta (dba-gru/sot/cod)
  3. Per ogni componente:
  4. Esclusione prestazioni: salta se dba-gru-f/sot-f = tm-cfg-psz-gru/sot
  5. Esclusione merce speciale: salta se mer-chia = "999999999"
  6. Legge il componente da COGMERCI
  7. Chiama COGS01 per ottenere prezzo di vendita da listino con sconto cliente (passando s01-fascia)
  8. Formatta prezzo e importo tramite COGU10W
  9. Calcola importo e accumula in tot-importo
  10. Stampa riga con descrizione, quantita', prezzo, sconto, importo
  11. A fine distinta (b-50): stampa riga costo totale
  12. Se richieste note (tm-note = "S"): stampa note (c2-note)

Configurazione (x99-src-cfg / x99-rd-cfg)

Legge la configurazione per determinare il gruppo/sottogruppo da escludere come "prestazioni" (tm-cfg-psz-gru/sot).

Chiamate a sottoprogrammi

Programma Scopo
COGS01 Recupero prezzo di vendita da listino cliente
COGS50 Formattazione descrizione merce per stampa
COGS54 Gestione stampante
COGS65W Gestione campo cliente con ricerca
COGS68W Gestione campo merce con ricerca avanzata
COGU10W Conversione valuta, arrotondamento e formattazione importi

COPY utilizzate

File/Select

  • feurtab.fd, cogp56.select, cogp56.fd, flsta.fd, flsta.cpy

Working storage

  • cogp56.wrk, k-u10.cpy
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • utils50.cpy, utils54.cpy, utils65.cpy, utils68.cpy, utilu10.cpy, utilncnf.cpy

Linkage

  • wcont.cpy, util021.cpy, utils01.cpy, wcont1.cpy

Screen

  • cogp56-01.scr

Procedure

  • cogp56.prc, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy

Note

  • L'identificativo cursore divisa e' DSVV (Distinta Stampa Valorizzata per Vendita).
  • Il formato stampa usa 78 colonne (s54-chr-stampa = 78).
  • I codici C17/CRE nella stampa sono comandi colore per evidenziare le righe descrizione merce.
  • La sezione "spese generali" (calc_spese_gen, control_merce) e' commentata nel sorgente (marcata con *>*), era un meccanismo per aggiungere merci "spese generali" calcolate come percentuale del totale.
  • La divisa viene impostata automaticamente sulla divisa del conto (recuperata da COGU10W con "GetDivisaConto").
  • Il prezzo di vendita passa attraverso COGS01 che gestisce listino, fascia e sconti del cliente.