Vai al contenuto

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

  1. Verifica abilitazione operatore (ctr-abil).
  2. Apertura file tramite feurtab (nome fisico risolto a runtime).
  3. Lettura dati azienda (rd-azi).
  4. Lettura configurazione programma (x99-src-cfg / x99-rd-cfg): gruppo/sottogruppo merci commessa (tm-cfg-psz).
  5. Verifica esistenza merce tecnica 99/99/99999 (necessaria per la generazione prima nota).
  6. 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-pno e 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.