Posizione nel menu
Programma non a menu
Linkage section
Tipo |
Dato |
Formato |
Contenuto |
INPUT |
ASNS03-I-ID-CONTRATTO |
9(12) |
Id contratto da esaminare |
|
ASNS03-I-CLI |
9(05) |
Riferimento cliente di cui cercare il listino Quando presente conterrà sempre il cliente di fatturazione |
|
ASNS03-I-LISTINO |
9(02) |
Riferimento listino |
|
ASNS03-I-FASCIA |
9(02) |
Fascia di listino assegnata al cliente |
|
ASNS03-I-MERCE |
merce |
Codice merce di cui cercare la condizione |
|
ASNS03-I-DATA |
data |
Data di ricerca listino |
|
ASNS03-I-QTA |
s9(07)v999 |
Quantità su cui calcolare il prezzo |
|
ASNS03-I-CREA-TRS |
x(01) |
Se "S", verrà prodotto un file di transito che contiene i movimenti usati per determinare la quantità residua |
|
ASNS03-I-CHIAMATA |
9(12) |
Codice chiamata in elaborazione Se fornito, serve per cercare le condizioni presenti sul preventivo selezionato |
OUTPUT |
ASNS03-O-PREZZO-LORDO |
valore |
Prezzo lordo trovato |
|
ASNS03-O-SCONTO-1 |
s9(03)v99 |
Sconto 1 |
|
ASNS03-O-SCONTO-2 |
s9(03)v99 |
Sconto 2 |
|
ASNS03-O-PREZZO-NETTO |
valore |
Prezzo netto trovato |
|
ASNS03-O-QTA-RES |
s9(07)v999 |
Se la prestazione è collegata da contratto ad una quantità limite, qui viene riportata la quantità residua |
|
ASNS03-O-L-PREZZO-LORDO |
valore |
Dati corrispondenti a quelli sopra, ma considerando solo il listino; potranno essere usati dal prg chiamante, se necessario, quando la quantità residua non è sufficiente |
|
ASNS03-O-L-SCONTO-1 |
s9(03)v99 |
|
|
ASNS03-O-L-SCONTO-2 |
s9(03)v99 |
|
|
ASNS03-O-L-PREZZO-NETTO |
valore |
|
|
FILLER |
x(441) |
|
Logica generale
Questo programma ha due scopi principali
•Ricerca di un prezzo da applicare ad una merce su un intervento; rispetto alla semplice ricerca del listino applica, quando trovate, le condizioni del contratto indicato
•Ricerca della quantità residua rispetto alla quantità prevista dal contratto
Se richiesta la creazione del file di transito, il nome del file di transito dovrà essere "ASNS03_wo-oper".
Elaborazione
A - Ricerca prezzo
La priorità di ricerca segue questa logica:
a)Se ASNS03-I-CHIAMATA è significativo, ricerca prezzo sul preventivo selezionato
b)Se ASNS03-I-ID-CONTRATTO è significativo, verrà eseguito A.1 Ricerca condizioni contratto
c)In assenza di una condizione particolare trovata in precedenza, verrà cercato il prezzo di listino per la merce richiesta in input, usando COGS01; in questo caso i dati saranno esportati direttamente.
I dati trovati sul listino standard con la chiamata a COGS01 saranno anche esportati direttamente nei campi ASNS03-O-L-*
Particolarità
Per la gestione del listino parametrico dovrà essere passata a COGS01 anche la zona (COGS01-I-ZONA).
Questa dovrà essere cercata in funzione della provenzienza della ricerca, e degli elementi presenti:
•Chiamata di assistenza (è possibile che sia presente anche un nominativo CRM)
oSe presente il nominativo CRM, prelevare la zona da qui (informazione configurata "ass-chiam"-"info-crm-zona")
oSe presente una destinazione, prelevare la zona da qui, se trovata
oSe presente un cliente assistito, prelevare la zona da qui
oSe presente un cliente di fatturazione, prelevare la zona da qui
•Documento standard
oSe presente una destinazione, prelevare la zona da qui, se trovata
oSe presente un cliente assistito, prelevare la zona da qui
oSe presente un cliente di fatturazione, prelevare la zona da qui
A.1 - Ricerca condizioni contratto
Se richiesto, per la merce richiesta verrà eseguita una ricerca tra le condizioni del contratto (ASNCNTAR), con la seguente priorità:
1.Ricerca del codice merce esatto (es. GG/SS/12345)
2.Ricerca del gruppo/sottogruppo (es. GG/SS/0)
3.Ricerca del gruppo (es. GG/ /)
4.Ricerca del raggruppamento a cui appartiene la merce
5.Ricerca su classe merce (Merce/Servizio)
6.Ricerca generale (ACNR-MERCE = k-merce-null)
Alla prima condizione trovata, il sistema restituirà il prezzo trovato alla linkage, eseguirà A.2 Ricerca residuo e uscirà.
A.2 - Ricerca residuo
Questa parte serve per determinare la quantità movimentata su un determinato contratto per una merce. Questa analisi verrà fatta nei seguenti casi:
•Se la quantità prevista è significativa (ACNR-QTA > 0)
•Se è stata richiesta la produzione del file di transito (ASNS03-I-CREA-TRS = "S") -> questa modalità viene richiesta per poter effettuare un report dei dati elaborati, e non serve negli altri casi
Di conseguenza questa parte non sarà eseguita se non c'è quantità prevista e non è richiesta la produzione del file di transito.
Quindi, in questo caso il sistema dovrà esaminare:
•A.2.1 - Dettaglio interventi
•A.2.2 - Movimenti collegati
La quantità trovata in queste funzioni sarà detratta da ACNR-QTA e restituita in ASNS03-O-QTA-RES
NB:
•se la riga contratto non prevede una quantità predefinita, verrà restituito "9999999,999". Se invece la quantità predefinita è presente, sarà restituita l'effettiva quantità residua (0 se la quantità "usata" è superiore).
•Le condizioni prezzo/sconto trovato saranno comunque quelle indicate dal contratto: è pericoloso che questa routine restituisca, quando non c'è più quantità, il prezzo di listino, perchè se viene usata solo in consultazione potrebbe dare risultati diversi a seconda di quando viene innescata: dovrà essere il programma chiamante a occuparsi di questo problema.
oIl programma chiamante in questo caso dovrà usare i dati specifici restituiti in ASNS03-O-L-*
A.2.1 - Ricerca dettaglio interventi
Ricerca di tutti i dettagli intervento per contratto e merce: ricerca su ASNINDET con ACID-CHIA6, impostando:
Tipo |
Dato |
ACID-ID-CONTRATTO |
Contratto in input |
ACID-MERCE |
ACNR-MERCE |
La quantità ACID-QTA verrà sommata al totale usato.
Scrittura file di transito
Se richiesto dal parametro ASNS03-I-CREA-TRS, per ciascun movimento considerato scrivere un record sul file di transito:
Nome campo |
Note |
T-ASNS03-T-TIP |
"I" |
T-ASNS03-T-MOV |
ACID-ID |
T-ASNS03-T-QTA |
ACID-QTA |
T-ASNS03-T-DATA |
ACID-DATA-INT se significativo, altrimenti ACIT-INT-DATA |
A.2.2 - Ricerca dettaglio movimenti collegati
In questa fase si esaminano i ddt collegati direttamente a contratto: sono quelli collegati al contratto attraverso la tabella ASNCNDDT. Ogni record trovato corrisponde ad un ddt (ACNV-DDT).
Per ciascuno si esegue la ricerca delle righe del documento (COGMOMAG), considerando solo quelle con MAG-MERCE3 = merce in esame. Si sommerà MAG-QTAMAGAZ al totale usato.
NB: in questo momento si considerano tutti i documenti collegati al contratto come documenti di uscita.
Scrittura file di transito
Se richiesto dal parametro ASNS03-I-CREA-TRS, per ciascun movimento considerato scrivere un record sul file di transito:
Nome campo |
Note |
T-ASNS03-T-TIP |
"D" |
T-ASNS03-T-MOV |
MAG-TESTA |
T-ASNS03-T-QTA |
MAG-QTAMAGAZ |
T-ASNS03-T-DATA |
MAG-DA3 |