Vai al contenuto

SWC014 - Scaricamento Movimenti Vendita Colli/Peso (Funghi) per SW-ING

Intestazione

Campo Valore
Programma SWC014
Titolo Scaricamento Mov. Vendita a Colli e Peso su SW-ING
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Magazzino/Vendite > Movimenti vendita funghi

Scopo e logica generale

SWC014 estrae i movimenti di vendita arricchiti dei dati colli/peso/tara/lotti e li scrive negli archivi BINVENCP (movimenti) e BINVENLT (lotti) utilizzati dal sistema di Business Intelligence SW-ING. E' una variante specializzata di SWC009 pensata per filiere che vendono a peso/colli (origine: Modena Funghi).

Il programma funziona in due modalita':

  • Interattiva: l'operatore inserisce il periodo da estrarre tramite maschera; al termine viene mostrato il contatore di righe lette/scritte.
  • Batch (chiamata da Aglancio): il periodo e' calcolato automaticamente in base alla configurazione (nr-mesi-bi0009); l'output e' rediretto al log di processo Aglancio tramite gesdebug.

Prima dell'elaborazione il programma cancella i record BINVENCP/BINVENLT del periodo (cancella-bin-sub-tm-cfg-bin-tipo), poi rielabora da zero.


Flusso principale

  1. Inizializzazione (apri): controllo abilitazione, lettura azienda, apertura file, lettura configurazione RNEWCONF (x99-confi, x99-src-cfg, x99-src-cfg-agl), inizializzazione connessione BI (init-bin-sub-tm-cfg-bin-tipo), setup tasti funzione.
  2. Accept parametri (modalita' interattiva): a-tm-daint-in (data inizio), a-tm-daint-fi (data fine), con supporto calendario COGS52.
  3. Calcolo automatico del periodo (modalita' Aglancio/batch): data fine = data di sistema; data inizio = data di sistema meno nr-mesi-bi0009 * 30 giorni.
  4. Elaborazione (a-elabora-conferma):
  5. Cancellazione del periodo in BINVENCP/BINVENLT.
  6. fase1: estrazione movimenti di magazzino da COGTESBO/COGMOMAG, con gestione fase righe no-merci (fase1-60/fase1-66-loop).
  7. Chiusura (fine): chiusura connessione BI, aggiornamento stato processo ARPSTPRC (solo modalita' batch).

File e tabelle acceduti

File logico Record Modalita' Uso
BINVENCP bvcp-rec I-O Archivio movimenti vendita colli/peso BI (output principale)
BINVENLT bvlt-rec I-O Archivio movimenti lotti BI (output)
COGTESBO tes-rec Input Testate documenti magazzino (chiave2: data)
COGMOMAG mag-recz Input Righe movimenti magazzino
COGCONTR con-rec Input Righe "no merci" dei documenti
COGMERCI mer-rec Input Anagrafica merci (UM, lotti)
COGMERAP map-rec Input Prezzi/aliquote IVA merce
COGMERA2 ma2-rec Input Classificazione statistica merce (ma2-tipo-stat)
COGGEANA ana-rec Input Anagrafica generale (clienti, agenti)
COGTABEL euta-rec Input Tabelle sistema (tipo 15: causali; tipo 67: aliquote IVA)
COGRACCO rac-rec Input Raccordo bolle-fatture (chiave2: bolla)
COGRACBB rbb-rec Input Raccordo bolla-bolla (per resi su fatturato, chiave2: RV+bolla)
COGTESOR tor-rec Input Testate ordini
COGRIGOR ror-rec Input Righe ordini
COGTORAG tar-rec Input Dati aggiuntivi ordine (brand, destinazione finale)
COGTESAP tsa-rec Input Testate documenti aggiuntivi (brand, grp-az-cod)
COGDESAG dag-rec Input Destinazioni agente (per righe descrittive merci)
COGMOAGG moa-rec Input Movimenti aggregati (val-fifo per resi)
COGMOAG2 moa2-rec Input Movimenti aggregati 2 (tara bancale)
COGANAPP aap-rec Input Applicazione listino (flag listino-padre)
COGSCONT scc-rec Input Sconti aggiuntivi (per tratta)
COGMOVLT mvl-rec Input Movimenti lotti
FEURTAB - Input Tabella file Eurosystem
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo modalita' batch)

Copybook inclusi

Screen Designer

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

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
binvencp.cpy / binvenlt.cpy Record BINVENCP / BINVENLT
arpstprc.cpy Record ARPSTPRC
cogazien.cpy Dati azienda
k-u10.cpy / k-personal.cpy Costanti
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy Working storage comuni
sql-decla-ws.cpy Working storage connessione SQL/BI
binvencp-sql-ws.cpy / binvenlt-sql-ws.cpy Interfaccia SQL BINVENCP/BINVENLT
arpstprc-sql-ws.cpy Interfaccia SQL ARPSTPRC

Utility

Copybook Contenuto
utilncnf.cpy Struttura parametri RNEWCONF
utilgesdebug.cpy Gestione debug/log
utilswgets.cpy Interfaccia SWGETS
utilagprg.cpy Interfaccia Aglancio processo
utilcogl61.cpy Interfaccia COGL61 (costo FIFO/PMA)
utilg31.cpy Interfaccia COGG31 (conversione UM, per Modena Funghi)
utils01.cpy Interfaccia COGS01 (listino, in linkage)
utils52.cpy Interfaccia COGS52 (calendario)
utilu09.cpy / utilu10.cpy Interfaccia COGU09 / COGU10W

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (3 chiamate: confi, src-cfg, src-cfg-agl)
COGS01 Ricerca prezzo di listino per la merce/cliente/data
COGL61 Recupero costo unitario FIFO o prezzo medio acquisto
COGG31 Conversione quantita' in UM alternativa (per Modena Funghi)
COGU09 Ricerca consegna/ordine collegato a riga di movimento
COGU10W Formattazione/arrotondamento importi
SWGETS Recupero configurazione SW-ING (stringa connessione)
DTPRG / PRGDT Conversione data <-> progressivo (calcolo periodo automatico)

Configurazione (RNEWCONF)

Lette nella chiamata x99-confi (pacchetto "C"). Le chiavi condividono il suffisso bi0009 con SWC009 (estrazione vendite generica):

# Gruppo Chiave Campo interno Descrizione
01 BINT nr-mesi-bi0009 tm-cfg-nr-mesi Numero di mesi precedenti per calcolo automatico periodo
02 BINT no-merci-bi0009 tm-cfg-no-merci "S" = estrai anche righe senza merce (da COGCONTR)
03 BINT cod-merce-bi0009 tm-cfg-merce-nm Codice merce da usare per le righe senza merce
04 gestbuonip causale-contanti-1 tm-cfg-cau-con-1 Prima causale corrispettivi (marca come fatturato)
05 gestbuonip causale-contanti-2 tm-cfg-cau-con-2 Seconda causale corrispettivi
06 BINT espl-dbase-bi0009 tm-cfg-espl-dbase Flag esplosione distinta base (presente ma non usato in SWC014)
07 BINT criterio-costo-bi0009 tm-cfg-criterio-costo Criterio costo: "PU" = FIFO, "PM" = prezzo medio, "VF" = valore fifo
08 uscite tara-bancale tm-cfg-tara-bancale "S" = recupera tara bancale da COGMOAG2

La configurazione per la connessione BI e' letta da x99-src-cfg (gruppo "abilita": bin-tipo, bin-db-path, bin-db-conn-string 1-3, bin-db-log-level).

La configurazione Aglancio e' letta da x99-src-cfg-agl (gruppo "areaapp": cod-azienda, db-log-level, AGLANCIO-ATTIVO).


Logica di business

Fase 1: estrazione movimenti di magazzino

Scansione di COGTESBO per data nel range tm-daint-in - tm-daint-fi.

Per ogni testata documento:

  1. Filtro causale: COGTABEL tipo 15. Se euta-cb-con-fat <> 'SI' il documento e' saltato (eccetto causali corrispettivi per Sgarbi).
  2. Filtro tipo CF: solo documenti verso clienti (tes-tipocf = "C").
  3. Loop righe COGMOMAG per la testata. Per ogni riga:
  4. Tipo statistico da COGMERA2 (ma2-tipo-stat): "T" = tutto, "V" = solo valore, "Q" = solo quantita'.
  5. Compila bvcp-rec con: azienda, documento, tipo doc, magazzino, data, cliente principale (tes-nonno), padre, figlio, agente, causale.
  6. Flag fatturato bvcp-fattu: "S" se tes-flagfat valorizzato, o causale corrispettivi, o tipo "P" (prima nota), o causale azienda contanti.
  7. Quantita'/valore in base a ma2-tipo-stat con segno positivo/negativo a seconda di mag-entrusc.
  8. Costo: secondo tm-cfg-criterio-costo: "PU" (COGL61 prezzo acquisto), "PM" (COGL61 prezzo medio), "VF" (COGMOAGG valore fifo).
  9. Margine: bvcp-marg-perc = (mag-valore - t-val-costo) / mag-valore * 100; bvcp-marg-val = mag-valore - t-val-costo. Inversione di segno se mag-entrusc = "E" (modifica 07/08/24).
  10. Colli/peso (se az-imballi = "SI"): nazione provenienza (default az-naz-default), peso lordo, tara unitaria.
  11. Tara bancale (se tm-cfg-tara-bancale = "S"): da COGMOAG2 (moa2-tara-bancale). Peso lordo 2 = peso lordo - tara bancale.
  12. Listino: legge COGANAPP per flag aap-fl-listino-padre (gestione triplo livello cliente-padre-figlio); chiama COGS01 con parametri opportuni per ricavare s01-pre-lis; calcola sconto come scostamento dal listino. Aggiunge tratta da COGSCONT (tipo "A").
  13. Riferimento fattura: COGRACCO chiave2; se trovato, popola bvcp-rif-fat, bvcp-data-fat, bvcp-fattu = "S".
  14. Riferimento ordine: chiamata cerca-preventivo (per documenti tes-fl-ord = "S") o cerca-ordine2 (altrimenti). Entrambi usano COGU09 + COGTESOR; estraggono anche destinazione finale da COGTORAG.
  15. Conversione UM (solo az-personal = k-personal-modena-funghi): se mer-um-alt valorizzato, chiama COGG31 convert.um.
  16. Scrittura BINVENCP (con fallback rwr).
  17. Movimenti lotti (carica-movimenti-lotti): solo se mer-lotti = "S" e az-lotti <> "N". Scan COGMOVLT su mvl-chiave-riga = mag-chiap per la merce corrente; per ogni lotto scrive BINVENLT con qta segnata in base a mvl-segno.

Fase 1bis: righe "no merci" (fase1-60)

Attiva se tm-cfg-no-merci = "S" e tm-cfg-merce-nm configurata.

Scan COGCONTR per la stessa testata. Per ogni riga con con-valore <> 0:

  • Documento = con-chiap, fatturato = "S", merce = tm-cfg-merce-nm.
  • Valore: positivo per uscite ("S"), negativo per resi ("Q"). Ulteriormente invertito se con-fl-segno = "-".
  • Quantita': default 1 con prezzo = valore, oppure con-qta/con-prezzo.
  • Stessa logica conversione UM per Modena Funghi.
  • Riferimento fattura come fase1. Scrive BINVENCP e movimenti lotti come per le righe ordinarie.

Gestione resi su fatturato (cerca-e-scala-resi, carica-reso, scala-reso, agg-r-res)

Per bolle ad uscita gia' fatturate, cerca su COGRACBB (raccordo bolla-bolla tipo "RV") i resi collegati. Per ogni reso, legge il documento di reso, lo filtra (non considera resi gia' fatturati o con causale da non fatturare) e ne scrive una riga BINVENCP separata, con calcoli analoghi alla fase1 ma con costo da COGMOAGG (moa-val-fifo). E' un meccanismo per correggere le statistiche quando un reso annulla parzialmente una vendita gia' considerata.

Avvertenze e note

  • La configurazione condivide il suffisso bi0009 con SWC009: cambi alle chiavi bint.nr-mesi-bi0009 ecc. impattano entrambi i programmi.
  • Quando mag-sco-1 = 99,99 viene normalizzato a 100 (modifica 24/11/11).
  • Per az-personal = k-personal-sgarbi le causali corrispettivi configurate sono trattate come fatturate.