begin
select a.docdate$date from assetinv a where (a.ID = :aassetinv_id) into :minvdate;
for
select
a.id, a.committee_id
from
assetinvlists a
where
a.parent_id = :aassetinv_id
into
:assetinvlist_id, :committee_id
do begin
mincludedtypes = -1;
mresponsibleids = 0;
massetlocationids = 0;
mevidencedivisionids = 0;
mexpensesdivisionids = 0;
for
select
a.includedassettypes,
coalesce(a.responsible_id, '0000000000'),
coalesce(a.assetlocation_id, '0000000000'),
coalesce(a.evidencedivision_id, '0000000000'),
coalesce(a.expensesdivision_id, '0000000000')
from
assetinvlistrestrictions a
where
a.parent_id = :assetinvlist_id
into
:mincludedtypes,
:mresponsibleid,
:massetlocationid,
:mevidencedivisionid,
:mexpensesdivisionid
do begin
if (mresponsibleid <> '0000000000') then
begin
mresponsibleids = 1;
end
if (massetlocationid <> '0000000000') then
begin
massetlocationids = 1;
end
if (mevidencedivisionid <> '0000000000') then
begin
mevidencedivisionids = 1;
end
if (mexpensesdivisionid <> '0000000000') then
begin
mexpensesdivisionids = 1;
end
end
if (mincludedtypes in (0,1)) then
begin
/* Dlouhodoby majetek */
assetinv_id = :aassetinv_id;
smallsubcard_id = null;
assetcard_type = 0;
quantity = 1;
for
select
ac.id id,
ac.inventorynr inventorynr,
cast(ac.name as varchar(50)) name,
ac.ean ean,
ac.responsible_id responsible_id,
ac.assetlocation_id assetlocation_id,
ac.evidencedivision_id evidencedivision_id,
ac.expensesdivision_id expensesdivision_id,
ac.iscollection iscollection
from
assetcards ac
where
(ac.status = 1) and
(ac.purchasedate$date <= :minvdate) and
(ac.fileindate$date <= :minvdate) and
((:mresponsibleids = 0) or ac.responsible_id in (select responsible_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:massetlocationids = 0) or ac.assetlocation_id in (select assetlocation_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:mevidencedivisionids = 0) or ac.evidencedivision_id in (select evidencedivision_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:mexpensesdivisionids = 0) or ac.expensesdivision_id in (select expensesdivision_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id))
into
:assetcard_id,
:inventorynr,
:name,
:ean,
:responsible_id,
:assetlocation_id,
:evidencedivision_id,
:expensesdivision_id,
:iscollection
do begin
suspend;
end
end
if (mincludedtypes in (0,2)) then
begin
assetinv_id = :aassetinv_id;
assetcard_type = 1;
iscollection = 0;
/* drobny rozpis */
for
select
ac.id id,
ac2.id smallsubcard_id,
ac2.inventorynr inventorynr,
cast(ac.name as varchar(50)) name,
ac2.ean ean,
ac2.responsible_id responsible_id,
ac.assetlocation_id assetlocation_id,
ac.evidencedivision_id evidencedivision_id,
ac.expensesdivision_id expensesdivision_id,
ac2.quantity quantity
from
smallassetcards2 ac2
join smallassetcards ac on ac.id = ac2.parent_id
where
(ac.status = 0) and
(ac.purchasedate$date <= :minvdate) and
(ac.quantity > 1) and
((:mresponsibleids = 0) or ac2.responsible_id in (select responsible_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:massetlocationids = 0) or ac.assetlocation_id in (select assetlocation_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:mevidencedivisionids = 0) or ac.evidencedivision_id in (select evidencedivision_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:mexpensesdivisionids = 0) or ac.expensesdivision_id in (select expensesdivision_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id))
into
:assetcard_id,
:smallsubcard_id,
:inventorynr,
:name,
:ean,
:responsible_id,
:assetlocation_id,
:evidencedivision_id,
:expensesdivision_id,
:quantity
do begin
suspend;
end
/* drobny majetek bez rozpisu */
smallsubcard_id = null;
for
select
ac.id id,
ac.inventorynr,
cast(ac.name as varchar(50)) name,
ac.ean ean,
ac.responsible_id responsible_id,
ac.assetlocation_id assetlocation_id,
ac.evidencedivision_id evidencedivision_id,
ac.expensesdivision_id expensesdivision_id,
ac.quantity quantity
from
smallassetcards ac
where
(ac.status = 0) and
(ac.purchasedate$date <= :minvdate) and
((ac.quantity < 2) or (not exists (select id from smallassetcards2 where ac.id = smallassetcards2.parent_id))) and
((:mresponsibleids = 0) or ac.responsible_id in (select responsible_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:massetlocationids = 0) or ac.assetlocation_id in (select assetlocation_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:mevidencedivisionids = 0) or ac.evidencedivision_id in (select evidencedivision_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id)) and
((:mexpensesdivisionids = 0) or ac.expensesdivision_id in (select expensesdivision_id from assetinvlistrestrictions where assetinvlistrestrictions.parent_id = :assetinvlist_id))
into
:assetcard_id,
:inventorynr,
:name,
:ean,
:responsible_id,
:assetlocation_id,
:evidencedivision_id,
:expensesdivision_id,
:quantity
do begin
assetcard_type = 1;
assetinv_id = :aassetinv_id;
suspend;
end
end
end
end