Vai al contenuto

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