Vai al contenuto

PSW006 - Importazione documenti da tablet

Nome programma PSW006 Linkage section Programma richiamabile da menu o da LANCIO.COB Logica generale DB APP Incassettamento Questo programma cerca sul db di frontiera con l'APP tablet l'esistenza di documenti modificati e importa le modifica. Se il documento modificato è una "pre-bolla" (tes-tipo = "B"), la dovrà trasformare in bolla di tipo: * "I": se esistono già documenti "I" per la data del documento * "D": se non esistono ancora documenti "I" per la data del documento

Quando viene effettuata una trasformazione il documento originale di tipo "B" viene aggiornato forzando una causale apposita configurata "pre-bolla" che: * Non è considerata in fatturazione * Non è considerata in giacenza Inoltre, sul db di frontiera i riferimenti alla pre-bolla saranno cambiati con il documento definitivo creato. Il programma è residente, quindi non esce alla fine del ciclo, ma ad ogni ciclo attende qualche secondo poi ritenta, introducendo un controllo collegato ad AGLANCIO in modo che si possa spegnere da "remoto". Il programma non ha interfaccia, come per tutti gli altri programmi da gestire attraverso AGLANCIO Configurazioni possibili

Gruppo Parametro Note
abilita attiva-areaapp
areaapp cod-azienda
areaapp db-conn-string
areaapp agg-postgres-online
dbfront db-conn-string
past cau-bdc-trasformato

Elaborazione Questo programma non deve aggiornare il keep-alive sul C00000, quindi nemmeno aprire il db relativo. B - Ciclo principale Se la causale cau-bdc-trasformato non è stata impostata, mandare un errore critico e terminare l'elaborazione Eseguire una query su PSWDOCTES: SELECT * FROM pswdoctes WHERE p_dtes_azienda = codice azienda AND p_dtes_agg_app = 'S' Ogni record restituito è un documento da aggiornare/trasformare. Al termine del ciclo, * Test sull'esistenza del file "fspegni", vedi AGLANCIO: e il file esiste uscire. * Attesa di 5 secondi e si ricomincia. B.1 - Documento da aggiornare Il documento in esame dovrà essere aggiornato; quindi, loop sulle righe del documento partendo da PSWDOCDET, impostando:

Dato Contenuto
P-DDET-AZIENDA P-DTES-AZIENDA
P-DDET-DTES-TIP P-DTES-TIP
P-DDET-DTES-KEY P-DTES-KEY

Considerare solo le righe dove P-DDET-FL-PESATO = 'S'; per ora l'unica informazione da aggiornare è la quantità B.1.4 - Aggiornamento PSWDOCTES aggiorniamo il record PSWDOCTES relativo al documento: se verra' eseguita la trasformazione del record da pre-bolla a bolla, il dato sara' gia' aggiornato anche per il nuovo documento 'clonato'

Dato Contenuto
P-DTES-AGG-APP "N"

B.1.1 - Riga documento da aggiornare La riga documento va aggiornata se: * L'articolo è "a peso variabile" * La riga è stata "pesata" (non incassettata) In questo caso: Leggere la riga documento su COGMOMAG; * se P-DDET-QTA-DOC = 0: cancellare la riga * se P-DDET-QTA-DOC <> MAG-QTAMAGAZ aggiornare la riga:

COGMOMAG

Dato Contenuto
MAG-QTAMAGAZ P-DTES-QTA-DOC
MAG-VALORE Ricalcolare il valore in base alla nuova quantità. come in COGV50W

COGMOAGG

Dato Contenuto
MOA-ALT-QTA P-DTES-QTA-DOC
  • Se P-DDET-QTA-DOC < MAG-QTAMAGAZ, aggiungere una descrizione aggiuntiva "Mancanti ... pezzi"
  • Se P-DDET-QTA-DOC = 0, aggiungere una descrizione aggiuntiva all'ultima riga valida: "Prodotto .... mancante" B.2 - Documento da trasformare Al termine del ciclo di aggiornamento, se il documento:
  • è una pre-bolla (TES-TIPOB = 'B')
  • è completo (P-DTES-STATO-PREP = 'C') è necessario trasformarla in DDT Il nuovo documento dovrà avere TES-TIPOB:
  • "I": se esistono già documenti "I" per la data del documento
  • "D": se non esistono ancora documenti "I" per la data del documento B.2.1 - Numerazione Cercare la numerazione del nuovo documento, in base al nuovo tipo (vedi COGV50W) B.2.2 - Clonazione documento Quindi per tutte le tabelle che compongono il documento, cercare i record per il documento originale e usando delle tabelle clone se necessario inserire i record nuovi. Segnalare errore critico in caso di errore. Le tabelle interessate sono:
TABELLA Record
COGTESBO 1
COGTESAP 1
COGMOMAG "N"
COGMOAGG "N"
COGMOAG2 "N"
COGDESAG "N"
COGDESOR 1
COGMOVLT "N"

B.2.3 - "Sterilizzazione" pre-bolla Sul documento "pre-bolla" originale, si modifica la causale impostando quella configurata in cau-bdc-trasformato Questa operazione rende la pre-bolla innocua, in quanto non aggiorna la giacenza e non va in fatturazione. B.2.3.1 - Modifica documento su DBF Il documento va sostituito sul dbf con quello definitivo, effettuando specifiche query sulle tabelle interessate

TABELLA Query
PSWDOCTES UPDATE pswdoctes
SET p_dtes_tip = 'D', p_dtes_key = chiave_ddt
WHERE p_dtes_azienda = azienda AND
p_dtes_tip = tipo_prebolla AND
p_dtes_key = chiave_prebolla
PSWDOCDET UPDATE pswdocdet
SET p_ddet_dtes_tip = 'D', p_ddet_dtes_key = chiave_ddt
WHERE p_ddet_azienda = azienda AND
p_ddet_dtes_tip = tipo_prebolla AND
p_ddet_dtes_key = chiave_prebolla
PSWDOCCONFTES UPDATE pswdocconftes
SET p_dct_dtes_tip = 'D', p_dct_dtes_key = chiave_ddt
WHERE p_dct_azienda = azienda AND
p_dct_dtes_tip = tipo_prebolla AND
p_dct_dtes_key = chiave_prebolla
PSWDOCCONFDET UPDATE pswdocconfdet
SET p_dcd_dtes_tip = 'D', p_dcd_dtes_key = chiave_ddt
WHERE p_dcd_azienda = azienda AND
p_dcd_dtes_tip = tipo_prebolla AND
p_dcd_dtes_key = chiave_prebolla

B.3 - Stampa del documento Se il documento aggiornato è completo, si dovrà innescare la stampa del ddt. UPDATE 17/06/2025 La stampa di un documento dovrà essere effettuata quando un ddt: * Ha almeno un prodotto "a peso variabile" * Tutti i prodotti "a peso variabile" sono stati pesati *
Spostato nella fase B.1.4 : B.4 - Aggiornamento PSWDOCTES Infine aggiorniamo il record PSWDOCTES relativo al documento: se abbiamo eseguito la trasformazione del record da pre-bolla a bolla, sarà quello creato

Dato Contenuto
P-DTES-AGG-APP "N"

Estratto da documentazione interna ClickUp