ASNS03 - Ricerca prezzi su merce e contratto¶
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 |
|
| ASNS03-I-CLI-ASS | 9(05) | Cliente assistito | |
| 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 NB: se la quantità usata supera quella residua, questo dato contiene sempre 0 |
|
| 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 | ||
| ASNS03-O-QTA-LIMITE | s9(07)v999 | Se la prestazione è collegata da contratto ad una quantità limite, qui viene riportata la quantità limite | |
| ASNS03-O-QTA-USATA | s9(07)v999 | Se la prestazione è collegata da contratto ad una quantità limite, qui viene riportata la quantità usata totale, anche se supera la qta limite | |
| FILLER | x(416) |
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: 1. Se ASNS03-I-CHIAMATA è significativo, ricerca prezzo sul preventivo selezionato 2. Se ASNS03-I-ID-CONTRATTO è significativo, verrà eseguito A.1 Ricerca condizioni contratto 3. 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) * Se presente il nominativo CRM, prelevare la zona da qui (informazione configurata "ass-chiam"-"info-crm-zona") * Se presente una destinazione, prelevare la zona da qui, se trovata * Se presente un cliente assistito, prelevare la zona da qui * Se presente un cliente di fatturazione, prelevare la zona da qui * Documento standard * Se presente una destinazione, prelevare la zona da qui, se trovata * Se presente un cliente assistito, prelevare la zona da qui * Se 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 Inoltre verrà restituito anche: * ASNS03-O-QTA-LIMITE = ACNR-QTA * ASNS03-O-QTA-USATA = sommatoria della quantità trovata 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. * Il 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 |
ASNS03-T-MOV¶
Tabella che conterrà il dettaglio dei movimenti usati per determinare la quantità residua Per questa tabella è necessario creare delle copy riutilizzabili in altri programmi.
| Tabella: ASNS03-T-RAGGR |
|---|
| Nome campo |
| T-ASNS03-TR-REC |
| FILLER |
| Chiavi necessarie: |
Estratto da documentazione interna ClickUp