Vai al contenuto

SWN127 - Importazione tentate vendite

Nome programma SWN127 Linkage section UTILAGPRG - Linkage comune Id processo: 127 Nome processo: TENTATE-VENDITE Tabelle principali gestite

AREA AREAGATE Direzione
COGTESBO
COGMOMAG
APCOGTESBO
APCOGMOMAG
<------

Logica generale Importazione delle bolle provenienti dalla procedura di tentata vendita su APP Esportazione Non prevista Importazione Importazione di tutti i documenti creati su app e non ancora importati Configurazioni possibili

Gruppo Parametro Note
abilita attiva-areaapp
areaapp cod-azienda
areaapp db-conn-string
areaapp agg-postgres-online

Elaborazione Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi Controllo di esecuzione A.1 - Aggiornamento KEEP-ALIVE Per il momento non lo eseguiamo: il keep-alive viene tenuto aggiornato dal thread autonomo di aglancio; se il programma venisse chiamato in "tempo reale" dal programma di gestione, non necessita comunque del keep-alive. A.2 - Apertura A.2.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: APCOGTESBO Se fallita inviare una Segnalazione critica e chiudere. Importazione aggiornamenti L'analisi qui riportata è identica a quella del programma originale SWA017 A - Importazione ddt Scorrere APCOGTESBO eseguendo una apposita query che permetta di restituire i record aggiornati dall'applicazione mobile (A_TES_AGG_APP = "A"). Per ciascun record trovato, se il campo A_TES_TIP = "I", il documento è un ddt di vendita, quindi va considerato in questa elaborazione. NB: diamo per scontato che un ddt possa essere solo inserito dall'applicazione mobile. Quindi per ciascun record procedere con * A.1 - Esame dati * A.2 - Creazione testata documento * A.3 - Creazione dettaglio documento * A.4 - Aggiornamento record origine * A.5 - Altre operazioni A.1 - Esame dati Sul record APCOGTESBO eseguire le seguenti verifiche: * Su COGTESBO esiste già un documento corrispondente al documento in elaborazione? Se si scartare il record, altrimenti proseguire con i controlli successivi: * A-TES-ANA-NONNO deve essere un cliente valido? (deve esistere su COGGEANA) * A-TES-ANA-PADRE, se significativo, deve essere un cliente valido? (deve esistere su COGGEANA) * A-TES-CAUSALE deve essere una causale valida. (deve esistere sulla tabella causali) * A-TES-DATA: l'anno relativo alla data deve corrispondere ad A-TES-ANN * A-TES-IMP-PAGATO: deve essere inferiore o uguale al totale del valore delle righe di magazzino (vedi oltre) * Se A-TES-FL-CREA-FAT = "S", controllare anche che: * A-TES-PAG sia presente nella tabella codici pagamento * A-TES-RB sia presente nella tabella tipi pagamento Poi, attraverso una query specifica, leggere tutti i record id APCOGMOMAG collegati al documento in esame; su questi: * calcolare il valore totale presente da confrontare con A-TES-IMP-PAGATO, * Controllare che esista almeno una riga poi su ciascuna riga controllare: * A-MAG-MERCE deve essere una merce valida * A-MAG-SEGNO deve essere "U" Con le eventuali segnalazioni di errore comporre un file di testo che dovrà essere allegato ad una e-mail da spedire all'indirizzo configurato in email-segnalazioni-operative NB: l'invio del messaggio deve essere inviato alla fine del processo di inserimento di un documento, perchè potrebbero esserci altre segnalazioni successive A.2 - Creazione testata documento Inserire un record su COGTESBO (nb: i dati non indicati devono essere lasciati vuoti):

Dato Provenienza
TES-MAG A_TES_MAG
TES-ANNO, TES-ANNO4 A_TES_ANN
TES-TIPOB, TES-TIPOB4 A_TES_TIP
TES-BOLLA3, TES-BOLLA4 A_TES_NUM
TES-TIPOCF A_TES_ANA_NONNO (1:1)
TES-NONNO A_TES_ANA_NONNO (2:5)
TES-PADRE A_TES_ANA_PADRE (2:5)
TES-FIGLIO 0
TES-CURA "D"
TES-AGENTE Agente trovato sull'anagrafica del "nonno"
TES-PORTO "FRANCO"
TES-RATEA A_TES_RIFLISTINO
TES-CAUSALE Causale configurata causale-ins-uscita-i
TES-DATA A_TES_DATA
TES-RAGGRUPP A_TES_RAGGR
TES-PAG1 A_TES_PAG
TES-RB A_TES_RB
TES-CURRENCY A_TES_CURRENCY
A_TES_FL_CREA_FAT
TES-FLAGDES "E"
TES-FLAGFAT Se EUTA-CB-CON-FAT (ricavato dalla causale):


TES-FL-ORD "N"
TES-FL-TRA "N"
TES-DABOLFOR TES-DATA

A.3 - Creazione righe documento Per ciascun record letto su APCOGMOMAG: * A.3.1 - COGMOMAG * A.3.2 - COGMOAGG * A.3.3 - Giacenza * A.3.4 - Movimentazione lotto merce * A.3.5 - Descrizione aggiuntiva A.3.1 - COGMOMAG creare un record su COGMOMAG (nb: i dati non indicati devono essere lasciati vuoti):

Dato Provenienza
MAG-MAG1, MAG-MAG2, MAG-MAG3, MAG-MAG5 TES-MAG
MAG-ANNO, MAG-ANNO4, MAG-ANNO6 TES-ANNO
MAG-TIPOB1, MAG-TIPOB3, MAG-TIPOB4 TES-TIPOB
MAG-BOLLA1, MAG-BOLLA2, MAG-BOLLA3, MAG-BOLLA4, MAG-BOLLA5, MAG-BOLLA6 TES-BOLLA3
MAG-PROG A_MAG_PROG
MAG-DA2, MAG-DA3, MAG-DA5 TES-DATA
MAG-MERCE3, MAG-MERCE6 A_MAG_MERCE
MAG-TIPOCF, MAG-TIPOCF6
MAG-NONNO, MAG-NONNO6
MAG-PADRE, MAG-PADRE6
MAG-FIGLIO, MAG-FIGLIO6
Dai corrispondenti campi di COGTESBO
MAG-ENTRUSC A_MAG_SEGNO
MAG-UM A_MAG_UM
MAG-QTAMAGAZ A_MAG_QTA
MAG-CURRENCY TES-CURRENCY
MAG-PRE-NO-SCO A_MAG_PRE_LOR
MAG-SCO-1 A_MAG_SCO_1
MAG-SCO-2 A_MAG_SCO_2
MAG-PREZZO A_MAG_PRE_NET
MAG-VALORE A_MAG_VALORE
MAG-COLLI A_MAG_COLLI
MAG-ALF A_MAG_IVA
MAG-COGE MER-CODCONTR trovato sull'anagrafica merci
MAG-REP Reparto trovato sull'anagrafica merci

A.3.2 - COGMOAGG Creare un record su COGMOAGG

Dato Provenienza
MOA-CHIA1 MAG-CHIAP
MOA-FL-PROMO A-MAG-FL-PROMO

A.3.3 - giacenza Aggiornare la giacenza della merce movimentata (vedi COGV50W) A.3.4 - Movimentazione lotto merce Se A-MAG-LOTTO-ESTERNO <> " ", si dovrà movimentare correttamente il lotto indicato (che potrebbe anche non esistere); quindi: Eseguire quindi: * A.3.4.1 Ricerca esistenza lotto * A.3.4.2 Aggiornamento quantità sul lotto trovato/inserito * A.3.4.3 Creazione movimento lotto A.3.4.1 - Ricerca esistenza lotto * Cercare esistenza di un record su COGMERLT usando MLT-CHIA2, impostando: * MLT-LOTTO = A-MAG-LOTTO-ESTERNO * MLT-MERCE = A-MAG-MERCE * MLT-MAG = A-MAG-MAG1 * Se il record: * Non esiste: A.3.4.1.1 - Inserimento nuovo lotto * Esiste: si dovrà creare un movimento sul lotto trovato A.3.4.1.1 - Inserimento nuovo lotto Ricerca progressivo lotto: * Cercare su COGMERLT usando MLT-CHIA1 all'indietro, impostando: * MLT-MERCE = A-MAG-MERCE * MLT-MAG = A-MAG-MAG1 * MLT-PROG = 9999 Creazione nuovo lotto: inserimento di un record su COGMERLT impostando:

Dato Provenienza
MLT-MERCE A-MAG-MERCE
MLT-MAG A-MAG-MAG1
MLT-PROG Primo progressivo disponibile su MERCE/MAG
Cercare su COGMERLT usando MLT-CHIA1 all'indietro, impostando:



MLT-LOTTO A-MAG-LOTTO-ESTERNO
MLT-PRODUTTORE AZ-FOR-INT
MLT-STATO "A"

A.3.4.2 - Aggiornamento lotto

Dato Provenienza
MLT-QTA Sottrarre MAG-QTAMAGAZ
MLT-STATO Se MLT-QTA:


A.3.4.3 - Creazione movimento lotto Inserimento di un record su COGMOVLT:

Dato Provenienza
MVL-CHIAVE-RIGA MAG-CHIAP
MVL-LOTTO-INT MLT-PROG
MVL-MERCE MAG-MERCE
MVL-SEGNO MAG-ENTRUSC
MVL-QTA MAG-QTAMAGAZ

A.4 - Aggiornamento record origine Aggiornare il record di origine impostando:

Dato Descrizione
A_TES_AGG_APP "N"

A.5 - Altre operazioni A.5.1 - Gestione importo pagato Se A-TES-IMP-PAGATO > 0, occorre eseguire la relativa registrazione: Chiamata a COGF45, passando i parametri:

Dato Contenuto
F45-OPE "I"
F45-FL-BATCH "S"
F45-TIP "B"
F45-DOCUMENTO TES-CHIA3
F45-CURRENCY TES-CURRENCY
F45-IMP-BOL Importo totale bolla
F45-IMP-PAG A-TES-IMP-PAGATO

Se F45-ESITO = "N", aggiungere all'elenco delle segnalazioni che non è stato possibile inserire l'incasso. A.5.2 - Creazione fattura automatica Se A-TES-FL-FAT = "S", è necessario fatturare immediatamente il ddt e spedirlo al cliente. A.5.2.1 - Creazione fattura Chiamata a COGV64L passando come parametri:

Dato Contenuto
V64L-OPE "Inserimento"
V64L-DOC TES-CHIA3
V64L-SILENT-MODE "S"

All'uscita V64L-FAT conterrà il riferimento al documento creato. A.5.2.2 - Stampa fattura Eseguire il comando: set environment "printer" to w-printer dove W-PRINTER è un file definito su EXT-TMP-DIR, con nome "v64l-fat".prn In questo modo la chiamata successiva al programma di stampa fattura dovrà creare il suddetto file; quindi chiamata a COGP41:

Dato Contenuto
P41-DA-FATTURA V64L-FAT
P41-A-FATTURA V64L-FAT
P41-COPIE 1
P41-FL-ARCHIVIA "ARCHIVIA"

Quindi, testare l'esistenza del file con il nome sopra definito, usando COPIAF. Se il file non esiste segnalarlo nell'apposito documento segnalazioni. A.5.2.3 - Creazione file PDF fattura Portare il file creato sulla cartella configurata path-apri-file Dopodichè lanciare SVIEW per la conversione:

Dato Contenuto
SVIEW-OPE "CONVERTI"
SVIEW-FILE percorso completo del file portato su PATH-APRI-FILE
SVIEW-OUTPUT File di output da creare; potrà sempre essere su PATH-APRI-FILE, e chiamato ad esempio V64L-FAT (senza estensione)

Se SVIEW-ESITO = "N", segnalarlo nell'apposito documento segnalazioni. A.5.2.4 - Spedizione file PDF fattura Usando il sottoprogramma apposito per l'utilizzo del dialogo FTP, spedire il file fattura cosi' creato sul server KPN, nella cartella configurata (chiedere informazioni a Giovanni) A.5.2.5 - Aggiornamento "fattura spedita" Modificare nuovamente il record APCOGTESBO impostando

Dato Contenuto
A-TES-FATTURA-SPEDITA "S"
A-TES-NOME-FATTURA Nome del file recapitato, es. "IM20140000123.pdf"

A.5.3 - Importazione PDF e archiviazione Questa sezione va eseguita se l'azienda ha abilitato l'archiviazione ottica (AZ-ARC-OTT = "S") Usando i comandi FTP, (chiedere consulenza a Giovanni) si dovrà cercare e importare un file PFD che contiene la stampa del ddt, per poi successivamente archiviarlo come stampa del ddt A.5.3.1 - Importazione PDF Se ad esempio abbiamo importato un ddt con chiave "E2014I000123": * Origine: "radice/_DDT/E2014I000123.pdf" (tutto minuscolo) * Destinazione: _ext-tmp-dir ext-os-slash "E2014I000123.pdf" (tutto minuscolo) A.5.3.2 - Archiviazione Se la fase precedente è andata a buon fine, il docuimento deve essere archiviato, con una apposita chiamata a COGU06:

Tipo Dato Contenuto
INPUT U06-OPE "INSERISCI-FILE"
U06-FILE In percorso di destinazione del file
U06-FL-INTERNO "D"
U06-TIP-DOC "BU"
U06-DOC-COGE Chiave del documento creato con i campi separati da "/"; ad esempio: "E/2014/I/000123"
U06-DO-TIP-DOC "B.USCITA"
U06-DO-NUM-INT Come U06-DOC-COGE
U06-DO-DATA TES-DATA
U06-DO-NUM-EST ""
U06-DO-DATA-EST 0
U06-DO-ANA-TIP "C"
U06-DO-ANA-COD TES-NONNO
U06-DO-ANA-DES Ragione sociale di TES-NONNO
OUTPUT U06-ESITO Esito dell'operazione



Estratto da documentazione interna ClickUp