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_UNITMEAS.CODE LIKE :E & '%'
)
AND
(AU_GOOD_UNITMEAS.AU_GOOD = :G
)
ORDER BY AU_UNITMEAS.CODE
end_sql
if (task = ptApp
end) 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
)
call TEdit
(t
)
call TSetFld
(t
,"DATE"
,crDate
)
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
)
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"
,s
,good_id
)
end
{==============================
Form_BeforeClose ===============================}
fun Form_BeforeClose()
result = 1
whouse1 = TGetFld
(t
,"FROM_WAREHOUSE"
)
whouse2 = TGetFld
(t
,"TO_WAREHOUSE"
)
whouse2_d = TGetFld
(t
,"F_TO_WAREHOUSE_DESCR"
)
whouse1 = val
(whouse1
)
whouse2 = val
(whouse2
)
if (whouse1 = 0
) or
(whouse2 = 0
) then
result = 0
call message
("You must complete both warehouses!"
)
return
endif
{..............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
if (result = 0
) then
return
endif
tevent = TGetFld
(t
,"AU_T_EVENT"
)
if (task = ptApp
end) then {...consume the previous!!}
consume_flag = message_yes_no
("Do you want Existing Quantities
to be Consumed?"
)
if (consume_flag = 1
) then
count = TRecordCount
(t_synt
)
call TFirst
(t_synt
)
k = 1
for i = 1
to count
{.............save values..................}
c_id[i] = TGetFld
(t_synt
,"AU_GOOD"
)
c_code[i] = TGetFld
(t_synt
,"F_AU_GOOD_CODE"
)
c_title[i] = TGetFld
(t_synt
,"F_AU_GOOD_TITLE"
)
c_uid[i] = TGetFld
(t_synt
,"AU_UNITMEAS"
)
c_ucode[i] = TGetFld
(t_synt
,"F_AU_UNITMEAS_CODE"
)
start_sql "*" "KOSMOS"
SELECT AU_CATEGORY_ITEM.TITLE
AS CATITLE
, AU_CATEGORY_ENT.TNAME
, AU_GOOD_TYPE.AU_GOOD_TYPE_D
, AU_GOOD.AU_GOOD
,
AU_GOOD.TITLE
, AU_GOOD.CODE
, AU_GOOD_TYPE.STYPE
, AU_GOOD.AU_POSTINGFORM
, AU_T_GOOD.DESCR
AS TDESCR
,
AU_GOOD_SUM.QUANT
, AU_GOOD_SUM.QUANT_P
, AU_WAREHOUSE.DESCR
AS WDESCR
, AU_UNITMEAS.CODE
AS UCODE
,
AU_GOOD_SUM.YA_POS
, AU_GOOD_SUM.SERIAL_NUMBER
, AU_GOOD_SUM.EXP_DATE
, AU_GOOD_SUM.LOT_NUM
,
AU_WAREHOUSE.AU_WAREHOUSE
, AU_UNITMEAS.AU_UNITMEAS
, AU_GOOD_SUM.AU_GOOD_SUM
FROM AU_CATEGORY_ITEM
RIGHT JOIN
((((((AU_GOOD
LEFT JOIN AU_GOOD_TYPE
ON AU_GOOD.AU_GOOD_TYPE = AU_GOOD_TYPE.AU_GOOD_TYPE
) LEFT JOIN AU_T_GOOD
ON AU_GOOD.AU_T_GOOD = AU_T_GOOD.AU_T_GOOD
) LEFT JOIN AU_GOOD_SUM
ON AU_GOOD.AU_GOOD = AU_GOOD_SUM.AU_GOOD
) LEFT JOIN AU_WAREHOUSE
ON AU_GOOD_SUM.AU_WAREHOUSE = AU_WAREHOUSE.AU_WAREHOUSE
) LEFT JOIN AU_UNITMEAS
ON AU_GOOD_SUM.AU_UNITMEAS = AU_UNITMEAS.AU_UNITMEAS
) LEFT JOIN AU_CATEGORY_ENT
ON AU_GOOD.AU_GOOD = AU_CATEGORY_ENT.RID
)
ON AU_CATEGORY_ITEM.AU_CATEGORY_ITEM = AU_CATEGORY_ENT.AU_CATEGORY_ITEM
WHERE ((AU_CATEGORY_ENT.TNAME='AU_GOOD'
) OR (AU_CATEGORY_ENT.TNAME IS NULL
))
AND (AU_GOOD_SUM.REC_TYPE = '2'
)
AND (AU_WAREHOUSE.AU_WAREHOUSE = :W
)
AND (AU_GOOD.AU_GOOD = :G
)
AND (AU_GOOD_SUM.QUANT > 0
)
end_sql
q1 = QueryByName
()
call TSetParam
(q1
,"G"
,c_id[i]
)
call TSetParam
(q1
,"W"
,whouse2
)
call TExecute
(q1
)
count1 = TRecordCount
(q1
)
call TFirst
(q1
)
for j=1
to count1
c_id[k] = c_id[i]
c_code[k] = c_code[i]
c_title[k] = c_title[i]
c_uid[k] = c_uid[i]
c_ucode[k] = c_ucode[i]
c_ser[k] = TGetFld
(q1
,"SERIAL_NUMBER"
)
c_lot[k] = TGetFld
(q1
,"LOT_NUM"
)
c_exp[k] = TGetFld
(q1
,"EXP_DATE"
)
c_qnt[k] = TGetFld
(q1
,"QUANT"
)
c_uid[k] = TGetFld
(q1
,"AU_UNITMEAS"
)
c_ucode[k] = TGetFld
(q1
,"UCODE"
)
k = k + 1
call TNext
(q1
)
next
call FreeEmbSQL
(q1
)
call TNext
(t_synt
)
next
count = k - 1
endif
endif
end
{================================== Form_End ==========================}
proc Form_End
( uvalue
)
if (task = ptApp
end) then
if (consume_flag = 1
) then
call OpenFormTop
("ptApp
end";"
AU_GOOD_CONSMOVE_E.FM";"WORK.AU_EVENT";1;"?=AU_EVENT"
,"ADD_GOODS"
)
fm = FByResName
("AU_GOOD_CONSMOVE_E.FM"
)
pm0 = PByName
(fm
,"AU_EVENT"
)
tm0 = TByName
(pm0
,"AU_EVENT"
)
call TEdit
(tm0
)
call TSetFld
(tm0
,"FROM_WAREHOUSE"
,whouse2
)
call TSetFld
(tm0
,"F_FROM_WAREHOUSE_DESCR"
,whouse2_d
)
call TPost
(tm0
)
pm = PByName
(fm
,"AU_KE_GOOD"
)
tm = TByName
(pm
,"AU_KE_GOOD"
)
for i = 1
to count
call TApp
end(tm
)
call TSetFld
(tm
,"AU_GOOD"
,c_id[i]
)
call TSetFld
(tm
,"F_AU_GOOD_CODE"
,c_code[i]
)
call TSetFld
(tm
,"F_AU_GOOD_TITLE"
,c_title[i]
)
call TSetFld
(tm
,"SERIAL_NUMBER"
,c_ser[i]
)
call TSetFld
(tm
,"LOT_NUM"
,c_lot[i]
)
call TSetFld
(tm
,"EXPIR_DATE"
,c_exp[i]
)
call TSetFld
(tm
,"QUANT"
,c_qnt[i]
)
call TSetFld
(tm
,"AU_UNITMEAS"
,c_uid[i]
)
call TSetFld
(tm
,"F_AU_UNITMEAS_CODE"
,c_ucode[i]
)
call TPost
(tm
)
next
call ReloadEditFields
(fm
)
endif
endif
end