Όταν θέλουμε να ακυρώσουμε παραστατικό που περιλαμβάνει είδη με παρτίδες ή να δημιουργήσουμε δελτίο επιστροφής ακολουθούμε τη παρακάτω διαδικασία:
- Ανοίγουμε το τιμολόγιο που θέλουμε να ακυρώσουμε
- Επιλέγουμε τις παρτίδες του είδους που θέλουμε να επιστρέψουμε και πατάμε αποσύνδεση από παρτίδες
- Ακυρώνουμε κανονικά το παραστατικό αντιγράφοντας πχ. σε ειδικο ακυρωτικό, δελτίο επιστροφής ή πιστωτικό. Έτσι τα είδη αφαιρούνται από την αποθήκη
Καλό είναι να επιλέξουμε τα παραστατικά που εισάγουμε τα εμπορεύματα στις ρυθμίσεις της EMDI
Αυτόματη αποσύνδεση από παρτίδες
Κατά την έκδοση Δελτίου επιστροφής υπάρχει η δυνατότητα αυτόματης αποσύνδεσης των ειδών από τις παρτίδες. Απαραίτητη προϋπόθεση είναι να έχει επιλεγεί και θέση/lot στη κάθε γραμμή του είδους.
Για τη λειτουργία αυτή κάνουμε επικόλληση το παρακάτω κώδικα στις ρυθμίσεις στο αντίστοιχο παραστατικό
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
-- doc -- -- doc -- execute block as declare i int = 0; declare main_doc_prodid int; declare main_doc_lineid int; declare main_doc_position varchar(1000); declare doc_related varchar(1000); begin doc_related=(select "Sxetika" from "pvlhseis" pvlin where "Aa"=:aa); while (i < 150) do begin if ((select count(ppl."Aa") from "pvlhseis" ppl,"grammes" ggr,"eidhpar" eid where ggr."Aapar"=ppl."Aa" and eid."Aa"=ppl."Parastatiko" and (ppl."Sxetiko"=:aa or doc_abbreviation(eid."Parastatiko",coalesce( ppl."Seira",'')||'#'||ppl."Ariumospar")=:doc_related) )>:i) then begin main_doc_prodid=(select first 1 skip (:i) ggr."Eidos" from "pvlhseis" ppl,"grammes" ggr,"eidhpar" eid, "kinhseis" kin where kin."Grammh"=ggr."Aa" and ggr."Aapar"=ppl."Aa" and eid."Aa"=ppl."Parastatiko" and (ppl."Sxetiko"=:aa or doc_abbreviation(eid."Parastatiko",coalesce( ppl."Seira",'')||'#'||ppl."Ariumospar")=:doc_related) ); main_doc_lineid=(select first 1 skip (:i) ggr."Aa" from "pvlhseis" ppl,"grammes" ggr,"eidhpar" eid, "kinhseis" kin where kin."Grammh"=ggr."Aa" and ggr."Aapar"=ppl."Aa" and eid."Aa"=ppl."Parastatiko" and (ppl."Sxetiko"=:aa or doc_abbreviation(eid."Parastatiko",coalesce( ppl."Seira",'')||'#'||ppl."Ariumospar")=:doc_related) ); main_doc_position=(select first 1 skip (:i) kin."Uesh" from "pvlhseis" ppl,"grammes" ggr,"eidhpar" eid, "kinhseis" kin where kin."Grammh"=ggr."Aa" and ggr."Aapar"=ppl."Aa" and eid."Aa"=ppl."Parastatiko" and (ppl."Sxetiko"=:aa or doc_abbreviation(eid."Parastatiko",coalesce( ppl."Seira",'')||'#'||ppl."Ariumospar")=:doc_related) ); if (:main_doc_prodid in (select ggr."Eidos" from "grammes" ggr where ggr."Aapar"=:aa)) then begin update "stockperdocline" stdl set stdl."Quantity"= (select grg."Posothta" from "grammes" grg where grg."Aa"=stdl."RelID") - (select sum(ggr."Posothta") from "grammes" ggr,"kinhseis" kks where ggr."Aa"=kks."Grammh" and ggr."Aapar"=:aa and ggr."Eidos"=:main_doc_prodid and kks."Uesh"=:main_doc_position ) where stdl."RelID"=:main_doc_lineid; end end else suspend; i = i + 1; end end -- doc-eof -- -- client -- select "pelates"."custom2" im_cust1, "pelates"."custom3" im_cust2, "pelates"."custom4" im_cust3, "pelates"."custom5" im_cust4 from "pelates" where "pelates"."Aa"=:cl -- client-eof -- |