====== pears.IQacDocumentOutstandingAmount ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."IQacDocumentOutstandingAmount" IS
{create function IQacDocumentOutstandingAmount
/* Application Maintained Function / Procedure - DO NOT EDIT*/
(in DocID char(8),in CutoffDate date)
returns decimal(12,2)
begin
declare rv decimal(12,2);
declare amt decimal(12,2);
declare fuldate date;
set amt=0.0;
set rv=0.0;
select first amount,fullyallocated into amt,fuldate from iqacdocument where documentid = DocID;
if cutoffdate is null then // We want the current state
if fuldate is not null then // The document is fully allocated
return 0.0
end if;
select sum(AllocatedAmount) into rv from iqacallocation where allocateddocumentid = DocID;
set rv=isnull(amt,0.0)-isnull(rv,0.0)
else
if fuldate is not null then // The document is now fully allocated
if fuldate <= cutoffdate then // The document was fully allocated at the cut off date
return 0.0
end if
end if;
select sum(AllocatedAmount) into rv from iqacallocation where allocateddocumentid = DocID and allocationdate <= cutoffdate;
set rv=isnull(amt,0.0)-isnull(rv,0.0)
end if;
return rv
end
}