Title : Purchase Receive
Toolbars
call BrowseEditInsert()
call BrowseEditDoVKUp(fld_id,fld_val,key)
call BrowseEditDoVKDown(fld_id,fld_val,key)
call BrowseEditInsertSame()
call BrowseEditDelete()
call CloseForm(True)
call CloseForm(False)
Buttons
Fields
(AU_UNITMEAS.CODE)
(AU_KE_GOOD.SERIAL_NUMBER)
(AU_KE_GOOD.EXPIR_DATE)
(AU_KE_GOOD.DISCOUNT)
(AU_GOOD_CODE.CODE)
(AU_GOOD_CODE.DESCR)
(AU_KE_GOOD.LOT_NUM)
(AU_KE_GOOD.ORDER_CLOSE_FLAG)
(AU_KE_GOOD.QUANT)
(AU_KE_GOOD.PRICE)
(AU_KE_GOOD.VAT_PC)
(AU_KE_GOOD.AMOUNT)
(AU_KE_GOOD.VAT)
Currency (AU_CURRENCY.CCODE)
Total Net Value (AU_EVENT.AMOUNT)
VAT (AU_EVENT.VAT)
Total (AU_EVENT.TOTAL_AMOUNT)
Date (AU_EVENT.DATE)
Number (AU_EVENT.NUMBER)
Event Type (AU_T_EVENT.DESCR)
Supplier (AU_BUSINESS.TITLE)
To Warehouse (AU_WAREHOUSE.DESCR)
Budget (AU_EVENT.BUDGET_FLAG)
AutoScript
lib
proc Form_Start()
f = TopForm()
ft = FormTask(f)
pe = PByName(f,"AU_EVENT")
te = TByName(pe,"AU_EVENT")
pg = PByName(f,"AU_KE_GOOD")
tg = TByName(pg,"AU_KE_GOOD")
pevent = __params[6] {.......παραγγελια προς προμηθευτη}
{......................set fixed values for this minimal parastatiko!!!........}
if (ft = ptAppend) then
str = SelectFrom("SELECT AU_T_EVENT, DESCR FROM AU_T_EVENT WHERE (CODE='AU_INVOICE')")
tevent = GetSQLSelectItem(str,1)
tevent_descr = GetSQLSelectItem(str,2)
sql = strcatln("SELECT AU_CURRENCY.AU_CURRENCY, AU_CURRENCY.CCODE")
sql = strcatln(sql,"FROM AU_COMPANY INNER JOIN AU_CURRENCY ON AU_COMPANY.AU_CURRENCY = AU_CURRENCY.AU_CURRENCY")
str = SelectFrom(sql)
cur_id = GetSQLSelectItem(str,1)
cur_code = GetSQLSelectItem(str,2)
sql = strcatln("SELECT AU_WAREHOUSE.AU_WAREHOUSE, AU_WAREHOUSE.DESCR")
sql = strcatln(sql,"FROM AU_COMPANY INNER JOIN AU_WAREHOUSE ON AU_COMPANY.AU_WAREHOUSE = AU_WAREHOUSE.AU_WAREHOUSE")
str = SelectFrom(sql)
wh_id = GetSQLSelectItem(str,1)
wh_name = GetSQLSelectItem(str,2)
call TEdit(te)
call TSetFld(te,"DATE",crDate)
call TSetFld(te,"AU_T_EVENT",tevent)
call TSetFld(te,"F_AU_T_EVENT_DESCR",tevent_descr)
call TSetFld(te,"AU_CURRENCY",cur_id)
call TSetFld(te,"F_AU_CURRENCY_CCODE",cur_code)
call TSetFld(te,"TO_WAREHOUSE",wh_id)
call TSetFld(te,"F_TO_WAREHOUSE_DESCR",wh_name)
call TSetFld(te,"EVENT_E",pevent)
pros_id = LookUpId("AU_EVENT",pevent,"BUSINESS_FROM")
pros_d = LookUpId("AU_BUSINESS",pros_id,"TITLE")
call TSetFld(te,"BUSINESS_FROM",pros_id)
call TSetFld(te,"F_BUSINESS_FROM_TITLE",pros_d)
call TPost(te)
start_sql "*" "KOSMOS"
SELECT AU_KE_GOOD.*, AU_GOOD_CODE.DESCR AS DESCR1, AU_GOOD_CODE.CODE,
AU_EVENT_PURCH.QUANT2 AS Q2, AU_EVENT_PURCH.QUANT1, AU_EVENT_PURCH.QUANT2
FROM (AU_GOOD_CODE INNER JOIN AU_KE_GOOD
ON AU_GOOD_CODE.AU_GOOD_CODE = AU_KE_GOOD.AU_GOOD_CODE)
INNER JOIN AU_EVENT_PURCH ON AU_GOOD_CODE.AU_GOOD = AU_EVENT_PURCH.AU_GOOD
WHERE (AU_KE_GOOD.AU_EVENT = :EV)
AND (AU_EVENT_PURCH.DONE_FLAG = '0')
AND (AU_EVENT_PURCH.ORDER_EVENT = :EV1)
end_sql
q = QueryByName()
call TSetParam(q,"EV",pevent)
call TSetParam(q,"EV1",pevent)
call TExecute(q)
count = TRecordCount(q)
call TFirst(q)
for i = 1 to count
eidh0 = TGetFld(q,"AU_GOOD")
eidh0cid = TGetFld(q,"AU_GOOD_CODE")
eidh0_d = TGetFld(q,"DESCR1")
eidh0_c = TGetFld(q,"CODE")
posot2 = TGetFld(q,"Q2")
price = TGetFld(q,"PRICE")
amount = TGetFld(q,"AMOUNT")
mm = TGetFld(q,"AU_UNITMEAS")
mm_c = LookUpId("AU_UNITMEAS",mm,"CODE")
call TAppend(tg)
call TSetFld(tg,"EVENT_ORDER",pevent)
call TSetFld(tg,"AU_GOOD",eidh0)
call TSetFld(tg,"AU_GOOD_CODE",eidh0cid)
call TSetFld(tg,"F_AU_GOOD_CODE_DESCR",eidh0_d)
call TSetFld(tg,"F_AU_GOOD_CODE_CODE",eidh0_c)
call TSetFld(tg,"QUANT",posot2)
call TSetFld(tg,"PRICE",price)
call TSetFld(tg,"AMOUNT",amount)
call TSetFld(tg,"AU_UNITMEAS",mm)
call TSetFld(tg,"F_AU_UNITMEAS_CODE",mm_c)
call TPost(tg)
call TNext(q)
next
call FreeEmbSQL(q)
call ReLoadEditFields(f)
endif
if (ft = ptEdit) then
{...................................all items must belong to the same order!!!}
event_id = TGetFld(te,"AU_EVENT")
pevent = SelectFrom("SELECT EVENT_ORDER FROM AU_KE_GOOD WHERE (AU_EVENT=",event_id,") AND (EVENT_ORDER > 0)")
endif
call SetCaption("Goods Receipt")
end
proc posot_exit()
line = TRecNo(tg)
line = line - 1
posot = TGetFld(tg,"QUANT")
timi = TGetFld(tg,"PRICE")
ekpt = TGetFld(tg,"DISCOUNT")
vat_pc = TGetFld(tg,"VAT_PC")
axia = posot*timi - posot * timi*ekpt/100
vat = axia*vat_pc/100
amount = axia
call TEdit(tg)
call TSetFld(tg,"AMOUNT",amount)
call TSetFld(tg,"VAT",vat)
call TPost(tg)
call ReLoadEditFields(f;pg;line)
call ReLoadEditFields(f)
end
{============================== get_total ================================}
fun get_total()
rcount = TRecordCount(tg)
recno = TRecNo(tg)
total = 0
call TFirst(tg)
for i = 1 to rcount
am = TGetFld(tg,"AMOUNT")
vat = TGetFld(tg,"VAT")
total = total + am + vat
call TNext(tg)
next
call TGotoCurRow(tg,recno)
result = total
end
{============================== get_amount ================================}
fun get_amount()
rcount = TRecordCount(tg)
recno = TRecNo(tg)
total = 0
call TFirst(tg)
for i = 1 to rcount
am = TGetFld(tg,"AMOUNT")
total = total + am
call TNext(tg)
next
call TGotoCurRow(tg,recno)
result = total
end
{============================== get_vat ================================}
fun get_vat()
rcount = TRecordCount(tg)
recno = TRecNo(tg)
total = 0
call TFirst(tg)
for i = 1 to rcount
vat = TGetFld(tg,"VAT")
total = total + vat
call TNext(tg)
next
call TGotoCurRow(tg,recno)
result = total
end
{============================== set_discount ================================}
proc set_discount()
disc = TGetFld(t,"DISCOUNT")
rcount = TRecordCount(tg)
call TFirst(tg)
for i = 1 to rcount
posot = TGetFld(tg,"QUANT")
timi = TGetFld(tg,"PRICE")
fpa = TGetFld(tg,"VAT_PC")
axia = posot*timi -posot * timi*disc/100
` axia = axia
call TEdit(tg)
call TSetFld(tg,"DISCOUNT",disc)
call TSetFld(tg,"AMOUNT",axia)
call TPost(tg)
call TNext(tg)
next
call ReLoadEditFields(f)
end
fun get_date()
result = iif(AU_EVENT!DATE<>"", AU_EVENT!DATE, crDate)
end
{============================ Form_OnSelect ===========================}
proc Form_OnSelect (tname, fldname, str, tt, oldstr, sq )
if (tname = "AU_GOOD_CODE") then
good_id = SelectFrom("SELECT AU_GOOD FROM AU_GOOD_CODE WHERE (AU_GOOD_CODE=",str,")")
call TEdit(tt)
call TSetFld(tt,"AU_GOOD",good_id)
call TPost(tt)
call ReLoadEditFields(f)
endif
end
{============================== Form_BeforeClose ==========================}
fun Form_BeforeClose()
result = 1
count = TRecordCount(tg)
call TFirst(tg)
pevent = val(pevent) {....in case of additional quantity later on }
{....at event s modification}
if (pevent = 0) then
pevent = TGetFld(tg,"EVENT_ORDER") {...check the first row}
endif
for i = 1 to count
if (pevent > 0) then
call TEdit(tg)
call TSetFld(tg,"EVENT_ORDER",pevent)
call TPost(tg)
endif
done_flag = TGetFld(tg,"ORDER_CLOSE_FLAG")
done_flag = val(done_flag)
if (done_flag = 0) then
start_sql "*" "KOSMOS"
SELECT AU_GOOD_CODE.DESCR, AU_GOOD_CODE.CODE, AU_EVENT_PURCH.QUANT2
FROM (AU_GOOD_CODE INNER JOIN AU_KE_GOOD
ON AU_GOOD_CODE.AU_GOOD_CODE = AU_KE_GOOD.AU_GOOD_CODE)
INNER JOIN AU_EVENT_PURCH ON AU_GOOD_CODE.AU_GOOD = AU_EVENT_PURCH.AU_GOOD
WHERE (AU_KE_GOOD.AU_EVENT = :EV)
AND (AU_EVENT_PURCH.DONE_FLAG = '0')
AND (AU_EVENT_PURCH.ORDER_EVENT = :EV1)
end_sql
q = QueryByName()
call TSetParam(q,"EV",pevent)
call TSetParam(q,"EV1",pevent)
call TExecute(q)
call TFirst(q)
quant_req = TGetFld(q,"QUANT2")
quant_ev = TGetFld(tg,"QUANT")
res = quant_req - quant_ev
call FreeEmbSQL(q)
if (res >= 0) then
flag = message_yes_no("Keep order open?")
if (flag = 0) then
call TEdit(tg)
call TSetFld(tg,"ORDER_CLOSE_FLAG",1)
call TPost(tg)
call ReLoadEditFields(f)
endif
endif
endif
call TNext(tg)
next
return
f = TopForm()
fname = GetResName(f)
tev = TGetFld(tg;"AU_T_EVENT")
diak = LookUp("AU_T_EVENT";"AU_T_EVENT";tev;"DIAK_AXION";"")
rcount = TRecordCount(tg)
call TFirst(tg)
for i = 1 to rcount
eid = TGetFld(tg;"AU_GOOD")
pos = TGetFld(tg;"QUANT")
axi = TGetFld(tg;"AMOUNT")
if (eid = 0) then
call message("Move without Good!")
result = 0
return
endif
if (pos = 0) then
call message("Move without Quantity!")
result = 0
return
endif
if (diak = 1) then
if (axi = 0) then
call message("Move without Amount!")
result = 0
return
endif
endif
call TNext(tg)
next
endif
end