project QadFinancials > class BAccountingInterface > method FillProDsEntity

Description

This method is used to generate prodataset for Entity Report.


Parameters


ohEntityoutputhandleHandle of Entity Prodataset.
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BAccountingInterface.BulidProDataSet


program code (program3/baccountinginterface.p)

assign oiReturnStatus = -98.
/* Empty tem */
empty temp-table tEntity.
empty temp-table tReport.

/* to create a temp table, due to EDI limitation */
create tReport.
assign tReport.tiReportID = 1.

/* Start querys */
<Q-1 run BusinessRelationInfo  (Start) in BBusinessRelation >
<Q-7 run AddressByAddressBusRelType  (Start) in BBusinessRelation >
<Q-8 run ContactByIDAllInfo  (Start) in BBusinessRelation >
<Q-9 run CorporateGroupPrim  (Start) in BCorporateGroup >
<Q-10 run DebtorByBusinessRelation  (Start) in BDebtor >
<Q-11 run CreditorByBusinessRelation  (Start) in BCreditor >

<Q-17 run BusinessRelationInfo (all) (Read) (NoCache)
   (input ?, (BusinessRelationID)
    output dataset tqBusinessRelationInfo) in BBusinessRelation >
for each tqBusinessRelationInfo:
    <Q-2 run AddressByAddressBusRelType (all) (Read) (NoCache)
       (input ?, (AddressTypeId)
        input ?, (AddressTypeCode)
        input tqBusinessRelationInfo.tiBusinessRelation_ID, (BusinessRelationId)
        input ?, (BusinessRelationCode)
        input ?, (AddressId)
        output dataset tqAddressByAddressBusRelType) in BBusinessRelation >
    <Q-3 run ContactByIDAllInfo (all) (Read) (NoCache)
       (input tqBusinessRelationInfo.tiBusinessRelation_ID, (BusinessRelation_ID)
        output dataset tqContactByIDAllInfo) in BBusinessRelation >
    <Q-4 run CorporateGroupPrim (all) (Read) (NoCache)
       (input tqBusinessRelationInfo.tiCorporateGroup_ID, (CorporateGroup_ID)
        input ?, (CorporateGroupCode)
        output dataset tqCorporateGroupPrim) in BCorporateGroup >
    find first tqAddressByAddressBusRelType no-error.
    find first tqContactByIDAllInfo no-error.
    find first tqCorporateGroupPrim no-error.
    <Q-5 run DebtorByBusinessRelation (all) (Read) (NoCache)
       (input ?, (CompanyId)
        input ?, (DebtorCode)
        input ?, (DebtorId)
        input tqBusinessRelationInfo.tiBusinessRelation_ID, (BusinessRelationID)
        output dataset tqDebtorByBusinessRelation) in BDebtor >
    <Q-6 run CreditorByBusinessRelation (all) (Read) (NoCache)
       (input ?, (CompanyId)
        input ?, (CreditorCode)
        input tqBusinessRelationInfo.tiBusinessRelation_ID, (BusinessRelationId)
        output dataset tqCreditorByBusinessRelation) in BCreditor >
    find first tqDebtorByBusinessRelation no-error.
    find first tqCreditorByBusinessRelation no-error.
    if available tqDebtorByBusinessRelation or available tqCreditorByBusinessRelation
    then do:
        create tEntity.
        assign
            tEntity.tcAddressCity = tqAddressByAddressBusRelType.tcAddressCity
            tEntity.tcAddressStreet = tqAddressByAddressBusRelType.tcAddressStreet1 + tqAddressByAddressBusRelType.tcAddressPostalAddress2
            tEntity.tcBusinessRelationCode = tqBusinessRelationInfo.tcBusinessRelationCode
            tEntity.tcBusinessRelationName1 = tqBusinessRelationInfo.tcBusinessRelationName1
            tEntity.tcCreditLevel = '':U
            tEntity.tiReportID = 1.
            if available tqContactByIDAllInfo
            then assign tEntity.tcContactPhone = tqContactByIDAllInfo.tcContactTelephone.
            else assign tEntity.tcContactPhone = '':U.
            if available tqCorporateGroupPrim
            then assign tEntity.tcCorperateGroupCode = tqCorporateGroupPrim.tcCorporateGroupCode.
            else assign tEntity.tcCorperateGroupCode = '':U.
    end. /* if available tqDebtorByBusinessRelation or available tqCreditorByBusinessRelation */
end. /* for each tqBusinessRelationInfo: */

/* Stop querys */
<Q-18 run BusinessRelationInfo  (Stop) in BBusinessRelation >
<Q-12 run AddressByAddressBusRelType  (Stop) in BBusinessRelation >
<Q-13 run ContactByIDAllInfo  (Stop) in BBusinessRelation >
<Q-14 run CorporateGroupPrim  (Stop) in BCorporateGroup >
<Q-15 run DebtorByBusinessRelation  (Stop) in BDebtor >
<Q-16 run CreditorByBusinessRelation  (Stop) in BCreditor >

/* Use prodataset to encapsulat thetemp-table */
create dataset ohEntity in widget-pool "non-persistent".

create buffer vhReport for table buffer tReport:handle in widget-pool "non-persistent".
create buffer vhEntity for table buffer tEntity:handle in widget-pool "non-persistent".
ohEntity:set-buffers(vhReport, vhEntity).
ohEntity:add-relation(vhReport, vhEntity, 'tiReportID,tiReportID', ?, true).


ohEntity:name = {&EXPORTREPORTCODE-WLDW}.

if oiReturnStatus = -98
then assign oiReturnStatus = 0.