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:
- Parametri: codice distinta, codice cliente, numero copie, flag note, divisa
- Configurazione: lettura configurazione per esclusione prestazioni (
tm-cfg-psz-gru/sot) - Selezione stampante: tramite COGS54
- Stampa: ripetuta per il numero di copie indicato (b-stampa eseguita
tm-copvolte)
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 conmer-padre = "P" - Cliente (
tm-cli): deve esistere in COGGEANA con tipo cliente; recuperaana-riflistinoeana-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:
- Stampa testata con: prodotto (codice + descrizione), divisa, cliente (codice + ragione sociale)
- Scansione COGDBASE per i componenti della distinta (
dba-gru/sot/cod) - Per ogni componente:
- Esclusione prestazioni: salta se
dba-gru-f/sot-f = tm-cfg-psz-gru/sot - Esclusione merce speciale: salta se
mer-chia = "999999999" - Legge il componente da COGMERCI
- Chiama
COGS01per ottenere prezzo di vendita da listino con sconto cliente (passandos01-fascia) - Formatta prezzo e importo tramite
COGU10W - Calcola importo e accumula in
tot-importo - Stampa riga con descrizione, quantita', prezzo, sconto, importo
- A fine distinta (b-50): stampa riga costo totale
- 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.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpyutils50.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.