Posizione nel menu
Programma non a menu
Linkage section
Tipo |
Dato |
Formato |
Contenuto |
Utilizzato su (*) |
INPUT |
COGS0A-QTA |
9(07)v999 |
Quantità su cui calcolare il prezzo |
T/P |
|
COGS0A-DATA-CAMBIO |
9(08) |
Data cambio da forzare |
T/P |
|
COGS0A-CURRENCY |
x(02) |
Divisa con cui ottenere il prezzo |
T/P |
|
COGS0A-FL-SCO |
x(01) |
Tipo di ricerca sconti su cliente: •"I": Gli sconti vengono passati in input •"R": Gli sconti vengono cercati dal sistema |
T/P |
|
COGS0A-CLIENTE |
9(05) |
Cliente di fatturazione |
T/P |
|
COGS0A-MERCE |
merce |
Codice merce su cui effettuare la ricerca Solo in caso di ricerca parametrica potrà essere vuoto: in questo caso potranno essere trovati sconti di "testata" Dalla merce saranno ricavate le eventuali informazioni aggiuntive per la ricerca prezzi |
T/P |
|
COGS0A-DATA |
data |
Data di ricerca listino |
T/P |
|
COGS0A-CLIENTE-DEST |
9(05) |
Codice cliente destinatario su cui effettuare la ricerca |
T/P |
|
COGS0A-I-ZONA |
x(03) |
Codice zona su cui effettuare la ricerca E' necessario che il programma chiamante valorizzi questo campo, quando necessario |
P |
|
COGS0A-I-GRP-AZ |
x(04) |
Codice azienda gruppi su cui effettuare la ricerca |
P |
|
COGS0A-I-CLASSE |
x(02) |
Classe di ricerca listino Permette di identificare la sequenza di ricerca corretta (non ancora gestito) |
P |
|
COGS0A-I-BRAND |
x(03) |
Brand su cui effettuare la ricerca |
P |
|
COGS0A-FL-TRACKING |
x(01) |
Se vale "S" attiva la modalità di "tracking" (emette una griglia di dettaglio con la spiegazione di come è stato composto il risultato trovato) |
P |
I/O |
COGS0A-SCO-1 |
9(03)v99 |
Sconti da applicare al prezzo di listino trovato, con relativo segno: se il segno è "-" è maggiorazione In output saranno restituiti gli sconti applicati in base alla ricerca effettuata |
T/P |
|
COGS0A-SGN-1 |
x(01) |
||
|
COGS0A-SCO-2 |
9(03)v99 |
||
|
COGS0A-SGN-2 |
x(01) |
||
|
COGS0A-SCO-3 |
9(03)v99 |
||
|
COGS0A-SGN-3 |
x(01) |
||
OUTPUT |
COGS0A-O-CLIENTE-LISTINO |
9(05) |
Codice "Cliente listino" trovato |
T/P |
|
COGS0A-PRE-NET |
s9(12)v999999 |
Prezzo netto calcolato |
T/P |
|
COGS0A-PREZZO |
s9(12)v999999 |
Prezzo lordo trovato (ha le maggiorazioni applicate) |
T/P |
|
COGS0A-PREZZO-LISTINO |
s9(12)v999999 |
Prezzo di listino trovato (come COGSA0-PREZZO ma senza le maggiorazioni) |
|
|
FILLER |
x(500) |
|
|
(*) Utilizzato su:
•"T": Solo listino tradizionale
•"P": Listino parametrico
•"T/P": Tutto
Logica generale
Questo programma nasce con la necessità di gestire i listini parametrici implementati per Progresso (su logica simil-X3).
Quindi se previsto dall'apposita configurazione ancora da implementare, effettuerà la ricerca su di essi, altrimenti la effettuerà sul listino standard attraverso una apposita chiamata a COGS01.
La catena dei programmi interessati alla ricerca di un prezzo diventerà:
•ASNS03 - Ricerca prezzi su merce e contratto: se è interessata una chiamata di assistenza, in quanto permette di cercare prezzi anche su un contratto, e/o su un preventivo collegato alla chiamata
oCOGS01: ricerca su un listino "tradizionale"
▪COGS0A: per la ricerca dei prezzi di un listino parametrico
Se invece il programma non riguarda il modulo di assistenza richiamerà direttamente COGS01, che al bisogno richiama COGS0A.
Elaborazione
A - Ricerca sequenza
Potrà essere fornita una eventuale classe di ricerca, che permette di scegliere un percorso di ricerca alternativo rispetto allo standard. Se questa classe non viene fornita, si scorre direttamente la sequenza base trovata su COGLISPT.
I dati vengono caricati in una tabella in memoria, che rimane valida fino al cambio di classe: in questo caso si deve ripartire con la ricerca della sequenza.
A.1 - Identificazione parametri necessari
In base alla sequenza di ricerca listino richiesta, il sistema deve compilare un elenco di elementi di ricerca, che in parte possono essere forniti direttamente dal programma chiamante (es. articolo, cliente, zona); in parte invece devono essere ricavati dai dati passati in input: ad esempio i dati sottostanti all'articolo.
In questa fase posso anche determinare quanti e quali dei risultati posso fornire, in base a quanto abilitato nella parametrizzazione: in questo modo posso sapere se e quando interrompere il ciclo di ricerca: ovvero quando tutti gli elementi richiesti sono stati resi correnti (cioè abilitati nei singoli listini trovati fino a quel momento).
A.2 - Recupero parametri necessari
Ora, se i parametri in input sono identici all'ultima chiamata non è necessario recuperare niente, altrimenti è necessario scorrere le tabelle necessarie per mettere in linea i parametri mancanti.
B - Ricerca prezzo e sconti
Si scorrono nella sequenza programmata i vari elementi del listino.
B.1 - Esame di un listino
Per ciascuno è necessario cercare su COGLISPD il record del listino più corretto in funzione dei parametri previsti sull'elemento della sequenza: questo potrà identificare uno o più record, il cui periodo di validità corrisponde alla data di decorrenza richiesta: la presenza di più record è prevista solo quando ci sono "range di quantità" diversificati: in questo caso è necessario quindi trovare il record corrispondente alla quantità richiesta.
B.2 - Utilizzo il listino trovato
Sul listino trovato, in base alla parametrizzazione potrebbe essere presente un prezzo di listino e/o uno o più sconti/maggiorazioni: questi quindi verranno applicati se ancora non presente nell'insieme dei risultati cercati.
Quando tutti i risultati cercati sono stati trovati, posso uscire dal ciclo di ricerca e restituire i risultati al programma chiamante.
NB:
•Per il momento, se i risultati prevedono + di 3 sconti/maggiorazioni, devo affogare i rimanenti sull'ultimo.
•Le maggiorazioni verranno sempre affogate nel prezzo lordo
•Per il momento, sconti e maggiorazioni potranno essere solo percentuali
C - Tracking
Se richiesto il tracking del prezzo, verrà effettuata una chiamata a COGS0AT - Tracking listino parametrico
In questa modalità l'eventuale "debug" sul programma viene disabilitato (di fatto il tracking è una spiegazione più sintetica ma contiene più o meno le stesse informazioni).