Title : Product Transfer
Toolbars
call BrowseEditDelete()
call CloseForm(True)
call CloseForm(False)
Buttons
Fields
(AU_KE_GOOD.QUANT)
(AU_UNITMEAS.CODE)
(AU_KE_GOOD.SERIAL_NUMBER)
(AU_KE_GOOD.LOT_NUM)
(AU_GOOD_CODE.DESCR)
(AU_GOOD_CODE.CODE)
Date (AU_EVENT.DATE)
Event Type (AU_T_EVENT.DESCR)
Supplier (AU_BUSINESS.TITLE)
To Location (AU_WAREHOUSE.DESCR)
Num (AU_EVENT.NUMBER)
AutoScript
lib
{================================== Form_Start ==============================}
proc Form_Start()
f = TopForm()
task = FormTask(f)
p = PByName(f,"AU_EVENT")
t = TByName(p,"AU_EVENT")
p_synt = PByName(f,"AU_KE_GOOD")
t_synt = TByName(p_synt,"AU_KE_GOOD")
call SetCaption("Product Transfer")
{......................................selection lists..............}
start_sql "DESCR_SEL" "KOSMOS"
SELECT AU_T_EVENT.DESCR, AU_T_EVENT.AU_T_EVENT
FROM AU_KEVENT INNER JOIN AU_T_EVENT
ON AU_KEVENT.AU_KEVENT = AU_T_EVENT.KEVENT1
WHERE (AU_T_EVENT.KEVENT1=2)
AND (AU_T_EVENT.MOVE_GOODS_FLAG = '1')
AND (AU_T_EVENT.DESCR LIKE :E & '%')
ORDER BY AU_T_EVENT.DESCR
end_sql
start_sql "UOM_SEL" "KOSMOS"
SELECT AU_UNITMEAS.CODE, AU_UNITMEAS.AU_UNITMEAS
FROM AU_GOOD_UNITMEAS INNER JOIN AU_UNITMEAS
ON AU_GOOD_UNITMEAS.AU_UNITMEAS = AU_UNITMEAS.AU_UNITMEAS
WHERE (AU_GOOD_UNITMEAS.AU_GOOD = :G)
AND (AU_UNITMEAS.CODE LIKE :E & '%')
ORDER BY AU_UNITMEAS.CODE
end_sql
start_sql "GOOD_SEL_CODE" "KOSMOS"
SELECT AU_GOOD_CODE.CODE, AU_GOOD_CODE.DESCR, AU_GOOD.AU_GOOD,
AU_GOOD_CODE.AU_GOOD_CODE
FROM AU_GOOD_CODE INNER JOIN AU_GOOD ON AU_GOOD_CODE.AU_GOOD = AU_GOOD.AU_GOOD
WHERE (AU_GOOD_CODE.CODE LIKE :E & '%')
AND (AU_GOOD_CODE.AU_BUSINESS = :B)
ORDER BY AU_GOOD_CODE.CODE
end_sql
start_sql "GOOD_SEL_TITLE" "KOSMOS"
SELECT AU_GOOD_CODE.DESCR, AU_GOOD_CODE.CODE, AU_GOOD.AU_GOOD,
AU_GOOD_CODE.AU_GOOD_CODE
FROM AU_GOOD_CODE INNER JOIN AU_GOOD ON AU_GOOD_CODE.AU_GOOD = AU_GOOD.AU_GOOD
WHERE (AU_GOOD_CODE.DESCR LIKE :E & '%')
AND (AU_GOOD_CODE.AU_BUSINESS = :B)
ORDER BY AU_GOOD_CODE.DESCR
end_sql
if (task = ptAppend) then
str = SelectFrom("SELECT AU_T_EVENT, DESCR, CODE FROM AU_T_EVENT WHERE (CODE='AU_INTMOVE')")
tevent = GetSQLSelectItem(str,1)
tevent_descr = GetSQLSelectItem(str,2)
tevent_code = GetSQLSelectItem(str,3)
mode = __params[6]
pevent = __params[7] {.......production order}
if (mode = "PORDER1_MODE") then
start_sql "*" "KOSMOS"
SELECT * FROM AU_KE_GOOD
WHERE (AU_EVENT = :EV)
AND (COEF = -1)
end_sql
endif
if (mode = "PORDER2_MODE") then
start_sql "*" "KOSMOS"
SELECT * FROM AU_KE_GOOD
WHERE (AU_EVENT = :EV)
AND (COEF = 1)
end_sql
endif
q = QueryByName()
call TSetParam(q,"EV",pevent)
call TExecute(q)
count = TRecordCount(q)
call TFirst(q)
for i = 1 to count
eidh0 = TGetFld(q,"AU_GOOD")
eidh0_d = LookUpId("AU_GOOD",eidh0,"TITLE")
eidh0_c = LookUpId("AU_GOOD",eidh0,"CODE")
if (mode = "PORDER1_MODE") then
posot = TGetFld(q,"QUANT2")
endif
if (mode = "PORDER2_MODE") then
posot = TGetFld(q,"QUANT")
endif
mm = TGetFld(q,"AU_UNITMEAS")
mm_c = LookUpId("AU_UNITMEAS",mm,"CODE")
whouse = TGetFld(q,"WAREHOUSE")
call TAppend(t_synt)
call TSetFld(t_synt,"AU_GOOD",eidh0)
call TSetFld(t_synt,"F_AU_GOOD_TITLE",eidh0_d)
call TSetFld(t_synt,"F_AU_GOOD_CODE",eidh0_c)
call TSetFld(t_synt,"QUANT",posot)
call TSetFld(t_synt,"AU_UNITMEAS",mm)
call TSetFld(t_synt,"F_AU_UNITMEAS_CODE",mm_c)
call TPost(t_synt)
call TNext(q)
next
call FreeEmbSQL(q)
call TEdit(t)
call TSetFld(t,"AU_T_EVENT",tevent)
call TSetFld(t,"F_AU_T_EVENT_CODE",tevent_code)
call TSetFld(t,"F_AU_T_EVENT_DESCR",tevent_descr)
call TSetFld(t,"EVENT_E",pevent)
if (mode = "PORDER1_MODE") then
call TSetFld(t,"TO_WAREHOUSE",whouse)
descr = LookUpId("AU_WAREHOUSE",whouse,"DESCR")
call TSetFld(t,"F_TO_WAREHOUSE_DESCR",descr)
endif
if (mode = "PORDER2_MODE") then
call TSetFld(t,"FROM_WAREHOUSE",whouse)
descr = LookUpId("AU_WAREHOUSE",whouse,"DESCR")
call TSetFld(t,"F_FROM_WAREHOUSE_DESCR",descr)
endif
call TPost(t)
call ReLoadEditFields(f)
endif
end
proc Select_DESCR_SEL_Params()
s = GetEditedText()
call ParamsEmbSQL("DESCR_SEL";s)
end
proc Select_UOM_SEL_Params()
good_id = TGetFld(t_synt,"AU_GOOD")
s = GetEditedText()
call ParamsEmbSQL("UOM_SEL",good_id,s)
end
proc Select_GOOD_SEL_TITLE_Params()
bus_id = TGetFld(t,"BUSINESS_FROM")
bus_id = val(bus_id)
if (bus_id = 0) then
call message("Select Supplier!")
return
endif
s = GetEditedText()
call ParamsEmbSQL("GOOD_SEL_TITLE",s,bus_id)
end
proc Select_GOOD_SEL_CODE_Params()
bus_id = TGetFld(t,"BUSINESS_FROM")
bus_id = val(bus_id)
if (bus_id = 0) then
call message("Select Supplier!")
return
endif
s = GetEditedText()
call ParamsEmbSQL("GOOD_SEL_CODE",s,bus_id)
end
{=================================== quant_exit ==================================}
proc quant_exit()
synt_id = TGetFld(t,"AU_PROD_FORM")
eposot = TGetFld(t,"QUANT")
eposot0 = LookUpId("AU_PROD_FORM",synt_id,"PQUANT")
start_sql "*" "KOSMOS"
SELECT * FROM AU_PROD_FORM_GOOD
WHERE (AU_PROD_FORM = :F)
end_sql
q = QueryByName()
call TSetParam(q,"F",synt_id)
call TExecute(q)
count_synt = TRecordCount(q)
call TFirst(q)
for i = 1 to count_synt
eidh0 = TGetFld(q,"AU_GOOD")
descr = LookUpId("AU_GOOD",eidh0,"TITLE")
unit_id = TGetFld(q,"AU_UNITMEAS")
unit_descr = LookUpId("AU_UNITMEAS",unit_id,"DESCR")
spc0 = TGetFld(q,"SPC")
spc = spc0 * eposot / eposot0
call TAppend(t_synt)
call TSetFld(t_synt,"AU_GOOD",eidh0)
call TSetFld(t_synt,"F_AU_GOOD_TITLE",descr)
call TSetFld(t_synt,"AU_UNITMEAS",unit_id)
call TSetFld(t_synt,"F_AU_UNITMEAS_DESCR",unit_descr)
call TSetFld(t_synt,"QUANT",spc)
call TSetFld(t_synt,"COEF","-1")
call TPost(t_synt)
call TNext(q)
next
call FreeEmbSQL(q)
eidh0 = LookUpId("AU_PROD_FORM",synt_id,"AU_GOOD")
descr = LookUpId("AU_GOOD",eidh0,"TITLE")
unit_id = TGetFld(t,"AU_UNITMEAS")
unit_descr = LookUpId("AU_UNITMEAS",unit_id,"DESCR")
call TAppend(t_synt)
call TSetFld(t_synt,"AU_GOOD",eidh0)
call TSetFld(t_synt,"F_AU_GOOD_TITLE",descr)
call TSetFld(t_synt,"AU_UNITMEAS",unit_id)
call TSetFld(t_synt,"F_AU_UNITMEAS_DESCR",unit_descr)
call TSetFld(t_synt,"QUANT",eposot)
call TSetFld(t_synt,"COEF","1")
call TPost(t_synt)
call ReLoadEditFields(f)
end
{============================== Form_BeforeClose ===============================}
fun Form_BeforeClose()
result = 1
{..............check for au_ke_good valitity}
count = TRecordCount(t_synt)
call TFirst(t_synt)
for i = 1 to count
id = TGetFld(t_synt,"AU_GOOD")
id = val(id)
if (id = 0) then
call message("Line ",i," misses good!")
result = 0
endif
qnt = TGetFld(t_synt,"QUANT")
qnt = val(qnt)
if (qnt = 0) then
call message("Line ",i," misses quantity!")
result = 0
endif
id = TGetFld(t_synt,"AU_UNITMEAS")
id = val(id)
if (id = 0) then
call message("Line ",i," misses unit!")
result = 0
endif
call TNext(t_synt)
next
end