COGM26 - Creazione Commessa Libera¶
Descrizione¶
Programma per la creazione manuale di commesse di produzione. Consente di definire la distinta base della commessa (articolo padre + componenti con quantita' e valori) e genera al salvataggio la prima nota di magazzino con lo scarico delle giacenze. Supporta l'acquisizione di dati da lettore Memowand (pistola barcode EAN).
Autore: Stefano Ruozzi - Eurosystem.
Tabelle utilizzate¶
| Tabella | Accesso | Descrizione |
|---|---|---|
| COGMERCI | Lettura | Anagrafica merci (articolo padre e componenti) |
| COGMERAP | Lettura | Prezzi di acquisto (ultimo acquisto / prezzo medio) |
| COGMAGA2 | Lettura | Magazzini |
| COGTESBO | Lettura/Scrittura | Testate documenti di magazzino (prima nota) |
| COGMOMAG | Lettura/Scrittura | Movimenti di magazzino |
| COGDBASE | Lettura/Scrittura | Distinta base |
| COGGENER | Lettura/Scrittura | Generatore numeratori documenti |
| COGTABEL | Lettura | Tabelle di configurazione |
| TRAN-S16 | Scrittura (temp) | File transitorio per generazione prima nota |
| COGMW10 | Lettura (opt) | File sequenziale Memowand (EAN + quantita') |
| FEURTAB | Lettura | Tabella file euro/percorsi |
Flusso di elaborazione¶
Inizializzazione¶
- Verifica abilitazione operatore (
ctr-abil). - Apertura file tramite
feurtab(nome fisico risolto a runtime). - Lettura dati azienda (
rd-azi). - Lettura configurazione programma (
x99-src-cfg/x99-rd-cfg): gruppo/sottogruppo merci commessa (tm-cfg-psz). - Verifica esistenza merce tecnica 99/99/99999 (necessaria per la generazione prima nota).
- Se azienda abilitata barcode (
az-bar-code = T o M), proposta acquisizione da Memowand (COGS08).
Acquisizione dati¶
Testata (paragrafo a4):
- Data commessa (proposta data di sistema).
- Magazzino (proposto magazzino principale azienda az-main-mag).
- Codice merce padre della commessa: ricerca via COGS22 (modalita' GDBA) con filtro sul gruppo merci commessa.
- Lettura distinta base esistente (a3-rd-dba): se esiste gia' una commessa per quella merce/magazzino, vengono precaricati i componenti (search-commessa).
- Scelta criterio valutazione: U = prezzo ultimo acquisto, M = prezzo medio acquisto (recuperati via subroutine COGL61).
Righe componente (paragrafo a30-a45):
- Per ogni riga: codice merce componente via COGS22, quantita' intera (col 48) e decimale (col 55).
- Verifica che il componente non sia a sua volta una commessa.
- Prezzo proposto da COGL61 in base alla scelta U/M.
- Valore riga calcolato come prezzo * quantita'.
- Visualizzazione totale commessa in divisa di conto (via UTILU10).
- Navigazione con tasti cursore / pagina; F5 cancella riga; F9 dettaglio merce (COGS07).
- Capacita' massima: 400 righe (k-max: t-size = 400).
Acquisizione da Memowand (send-scr-r):
- Lettura file sequenziale mwseq.<operatore> dalla directory temporanea.
- Ogni record contiene EAN (15 cifre) + quantita' (5 cifre).
- Ricerca merce per codice EAN (chiave secondaria cogmerci k02).
- Gestione loop multi-commessa: se il file contiene piu' commesse, il programma cicla automaticamente.
Controlli pre-salvataggio (paragrafo a90)¶
- Verifica presenza di almeno un componente (
fl-uno). - Controllo codici duplicati: scansione incrociata O(n²) su
tm-merce; in caso di duplicato, segnalazione con indicazione dei numeri di riga.
Salvataggio (paragrafi agg-dis, agg-pno)¶
agg-dis: aggiornamento/creazione distinta base su COGDBASE.agg-pno: generazione prima nota di magazzino su COGTESBO + COGMOMAG tramite file transitorio TRAN-S16 e chiamata subroutine di generazione.- Al termine: messaggio con riferimento prima nota creata (
magazzino/anno/tipo/numero).
Uscita¶
- Se modalita' Memowand con piu' commesse: ritorno automatico al ciclo (
a4). - Se elaborazione terminata (ultimo record Memowand): messaggio "Elaborazione terminata" e uscita.
- ESC con conferma: uscita diretta.
Subroutine chiamate¶
| Subroutine | Scopo |
|---|---|
| COGS08 | Dialogo acquisizione da Memowand |
| COGS21 | Selezione opzione (U/M per valutazione) |
| COGS22 | Ricerca merce con aiuto (modalita' GDBA) |
| COGS07 | Visualizzazione dettaglio merce (F9) |
| COGL61 | Calcolo prezzi di acquisto (ultimo/medio) |
| UTILU10 | Visualizzazione valori in divisa |
Note implementative¶
- Il gruppo merci riservato alle commesse e' letto dalla configurazione (
tm-cfg-psz-gru/tm-cfg-psz-sot); le merci con quel gruppo/sottogruppo sono articoli padre di commessa e non possono essere usate come componenti. - La merce 99/99/99999 e' tecnica: la sua assenza blocca il programma con messaggio esplicito.
- Il file Memowand ha path
<tmp-dir><slash>mwseq.<cod-operatore>(formato line-sequential, record 15+5 caratteri: EAN + quantita'). - Il file TRAN-S16 e' un file transitorio di supporto alla generazione prima nota; viene aperto/chiuso durante
agg-pnoe rimosso al termine. - La configurazione specifica del programma e' memorizzata su COGTABEL con chiave dedicata e gestita dai paragrafi
x99-src-cfg/x99-rd-cfg/x99-cfg-init. - Il programma e' richiamato da menu con
utils08(linkage): riceve dati Memowand pre-acquisiti in alcuni flussi.