Vai al contenuto

COGV23 - Creazione Prezzo Medio

Intestazione

Campo Valore
Programma COGV23
Titolo Creazione Prezzo Medio Acquisto/Vendita
Posizione menu Magazzino > Controllo Magazzino > Prezzo Medio > Creazione

Scopo e logica generale

COGV23 e' un programma interattivo per il calcolo e l'aggiornamento dei prezzi medi di acquisto e vendita degli articoli. Scorre tutti i movimenti di magazzino nel periodo indicato, accumula quantita' e valore per ciascun articolo e calcola il prezzo medio ponderato. I risultati vengono memorizzati nell'archivio prezzi tramite le subroutine COGL61 (lettura) e COGL62 (scrittura).

Puo' operare su un singolo articolo o su tutto l'anagrafica merci. Supporta la stampa del dettaglio e l'esclusione delle distinte base.


Flusso principale

  1. Inizializzazione (apri): lettura azienda, apertura file, lettura configurazione RNEWCONF (x99-src-cfg), data di sistema, lettura divisa conto tramite COGU10W, configurazione tasti funzione (F1 config, F3 conferma, F8, F9), preparazione controllo merce (COGS68)
  2. Accept parametri (a4 / a-tm-ini / a-tm-fin / a-tm-data-mem / a-tm-mag-sede / a-tm-campo / a-tm-merce / a-tm-stampa / a-tm-db):
  3. Data inizio (tm-ini): con calendario COGS52W
  4. Data fine (tm-fin): con calendario, propone ultimo mese accreditato
  5. Data memorizzazione (tm-data-mem): data con cui salvare i prezzi medi
  6. Magazzino sede (tm-mag-sede): con ricerca WIN036 (F8)
  7. Tipo elaborazione (tm-campo): C=completo (acquisto+vendita)
  8. Merce (tm-merce): codice specifico o vuoto per tutte, con ricerca COGS68
  9. Stampa (tm-stampa): S/N
  10. Distinte base (tm-db): S/N
  11. Conferma (a-fine-dati): validazione, eventuale configurazione stampa (COGS54), dialog di conferma
  12. Elaborazione (a020-loop): scansione COGMERCI, per ogni merce:
  13. Esclusione servizi (classe "S") e distinte base (se richiesto)
  14. Lettura prezzi attuali tramite COGL61
  15. Calcolo prezzo medio (b-prezzi thru ex-b) nel periodo indicato
  16. Se nessun movimento nel periodo: ricerca a ritroso fino a 10 anni
  17. Scrittura prezzi medi calcolati tramite COGL62
  18. Eventuale stampa riga dettaglio
  19. Fine elaborazione (a999): chiusura stampa, ritorno a a4
  20. Chiusura (fine): chiusura file, z-99-exit-program

File e tabelle acceduti

File logico Record Modalita' Uso
COGTABEL euta-rec Input Tabelle generiche (tipo 57 = ultimo periodo accreditato)
COGMERCI mer-rec Input Anagrafica merci - scansione articoli
FLSTA riga Output File stampa (se stampa attiva)
FEURTAB feurtab Input Tabella generica Eurosystem
+ file da cogv23.select vari Input File movimenti magazzino

Copybook inclusi

Screen Designer

Copybook Contenuto
cogv23-01.scr Maschera principale
cogv23.select SELECT dei file
cogv23.fd FD dei file
cogv23.wrk Working storage maschera
cogv23.decla Declaratives (flsta)

Strutture dati e utility

Copybook Contenuto
COGFILES.CPY FD feurtab
flsta.cpy Record file stampa
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy Standard working storage
cogazien.cpy Dati azienda
utilncnf.cpy Parametri RNEWCONF
utils52.cpy Interfaccia COGS52W (calendario)
utils54.cpy Interfaccia COGS54 (gestione stampa)
utils68.cpy Interfaccia COGS68 (ricerca merce)
utilu10.cpy Gestione importi e divise
utilw36.cpy Interfaccia WIN036 (ricerca magazzino)
utilcogl61.cpy Interfaccia COGL61 (lettura prezzi)
utilcogl62.cpy Interfaccia COGL62 (scrittura prezzi)
k-u10.cpy, k-personal.cpy Costanti
wcont.cpy, wcont1.cpy Linkage section

Programmi chiamati (CALL)

Programma Scopo
COGS52W Calendario per selezione date
COGS54 Gestione stampa (apertura/chiusura)
COGS68 Ricerca merce (accept con lookup)
COGU10W Gestione importi, divise, formattazione
WIN036 Selezione magazzino (F8)
COGL61 Lettura prezzi (PMA, PMV, prezzo acquisto) per merce e data
COGL62 Scrittura prezzi medi calcolati
RNEWCONF Lettura/modifica configurazione

Configurazione (RNEWCONF)

Parametro Campo Utilizzo
Flag rimando tm-cfg-fl-rim Comportamento specifico da configurazione

Logica di business

Calcolo prezzo medio

Per ogni merce, il programma:

  1. Chiama COGL61 per leggere i prezzi attuali (PMA, PMV, prezzo acquisto) alla data fine
  2. Azzera PMA e PMV per il ricalcolo
  3. Esegue b-prezzi che scorre i movimenti nel periodo data-ini / data-fin:
  4. Accumula quantita' e valore per acquisti (totqta-acq, totval-acq)
  5. Accumula quantita' e valore per vendite (totqta-ven, totval-ven)
  6. Calcola PMA = totval-acq / totqta-acq e PMV = totval-ven / totqta-ven
  7. Se fl-ok = "N" (nessun movimento trovato), ripete la ricerca su anni precedenti (fino a 10)
  8. Chiama COGL62 per scrivere i nuovi prezzi medi, con data di memorizzazione e sede

Esclusioni

  • Merci di classe "S" (servizi) sono escluse
  • Merci padre di distinta ("P") escluse se tm-db = "N"
  • Merce fittizia "999999999" esclusa

Stampa

Se tm-stampa = "S", produce un report con intestazione "CALCOLO PREZZI MEDI" e per ogni merce: codice, descrizione, unita' di misura, prezzo unitario acquisto, prezzo medio acquisto, prezzo medio vendita.

Personalizzazione "OM"

Per az-personal = "OM": se il PMA e' a zero dopo il calcolo, ripristina il valore precedente memorizzato in w-mer-pma.

Giro annuale

Se il periodo copre l'intero anno (1/1 - 31/12), viene impostato w-fl-giro-annuale = "1" per ottimizzazioni nel calcolo.


Variabili di stato principali

Variabile Descrizione
tm-ini Data inizio periodo
tm-fin Data fine periodo
tm-data-mem Data memorizzazione prezzi
tm-mag-sede Codice magazzino sede
tm-campo Tipo elaborazione (C=completo)
tm-merce Codice merce specifica (o vuoto per tutte)
tm-stampa Flag stampa (S/N)
tm-db Flag distinte base (S/N)
totqta-acq / totval-acq Accumulatori acquisto
totqta-ven / totval-ven Accumulatori vendita
w-divisa-rif Divisa di riferimento per il periodo
w-fl-giro-annuale Flag periodo annuale completo