New form is not populated with values

There is need to show all parts of one area. I created new form PMCContractAreasDialog. When I click on specific contract line into contract form it should open new form and show all parts of one area. In sum there should be same like on contract line. But every time when I click on button form is empty. Am I missing something ?


[Form]
public class PMCContractAreasDialog extends FormRun
{

[FormObservable]
date                                currWorkingDate;

[FormObservable]
boolean                             commonAreasRead;

PMERentalObjectAreaValueCl          tmpRentalAreaCl;
PMETmpRentalObjectArea              tmpArea;


public void init ()
{
    super();

    pmcContractLine_ds.linkActive();

}

public void activate(boolean _active)
{
    PMCContractArea contractArea;
    AmountMST sumContractArea;


    pmcContractLine_ds.readCommonAreas(pmcContractLine);
    h1_h2.realValue(pmcContractLine_ds.h1_h2(pmcContractLine));
    efa.realValue(pmcContractLine_ds.efa(pmcContractLine));
    bfa.realValue(pmcContractLine_ds.bfa(pmcContractLine));
    mfa.realValue(pmcContractLine_ds.mfa(pmcContractLine));
    sumArea.realValue(h1_h2.realValue() + efa.realValue() + bfa.realValue() + mfa.realValue());

}

[DataSource]
class PMCContract
{
    public int active()
    {
        int ret;

        ret = super();

        return ret;
    }

}

[DataSource]
class PMCContractLine
{
    public int active()
    {
        int ret;

        ret = super();

        return ret;
    }

    display PMEAreaCommonBuildingSum BFA(PMCContractLine _contractLine)
    {
        if (commonAreasRead)
        {
            if (_contractLine.RentalObjectId)
            {
                return PMERentalObjectAreaCl::getRentalObjectCommonAreaBuildingSum(_contractLine.RentalObjectId, currWorkingDate, tmpArea, false);
            }
            else
            {
                return 0;
            }
        }

        return 0;
    }

    void readCommonAreas(PMCContractLine _contractLine)
    {
        if (!commonAreasRead)
        {
            if (pmcContractLine.RentalObjectId)
            {
                tmpRentalAreaCl = new PMERentalObjectAreaValueCl();

                tmpRentalAreaCl.clear();
                tmpRentalAreaCl.getRentalObjectAreas(_contractLine.RentalObjectId, PMGUser::find().currDate());
                tmpArea.setTmpData(tmpRentalAreaCl.getTempTable());

                commonAreasRead = true;
            }
        }

    }

    //BP Deviation Documented
    display PMEAreaCommonSectionSum EFA(PMCContractLine _contractLine)
    {
        if (commonAreasRead)
        {
            if (_contractLine.RentalObjectId)
            {
                return PMERentalObjectAreaCl::getRentalObjectCommonAreaSectionSum(_contractLine.RentalObjectId, currWorkingDate, tmpArea, false);
            }
            else
            {
                return 0;
            }
        }

        return 0;

    }

    //BP Deviation Documented
    display PMEAreaTotal H1_H2(PMCContractLine _contractLine)
    {
        if (commonAreasRead)
        {
            if (_contractLine.RentalObjectId)
            {
                return PMERentalObjectAreaCl::getRentalObjectMainAreaSectionSum(_contractLine.RentalObjectId, currWorkingDate, tmpArea, false);
            }
            else
            {
                return 0;
            }
        }

        return 0;        
    }

    //BP Deviation Documented
    display PMEAreaTotal MFA(PMCContractLine _contractLine)
    {
        if (commonAreasRead)
        {
            if (_contractLine.RentalObjectId)
            {
                return PMERentalObjectAreaCl::getRentalObjectCommonAreaFixedSum(_contractLine.RentalObjectId, currWorkingDate, tmpArea, false);
            }
            else
            {
                return 0;
            }
        }

        return 0;
    }

}

[DataSource]
class PMCContractArea
{
    public void delete()
    {
        super();
        this.updateLines();
    }

    public void write()
    {
        super();
        this.updateLines();

    }

    void updateLines()
    {
        ;
        PMCContractArea::updateLineAreas(pmcContractArea.ContractId, pmcContractArea.RentalObjectId);
    }

}

}


The best approach to understand what’s going on in your code is using the debugger.

If you want to discuss your implementation, it would be good to explain what you’re trying to achieve. I don’t understand why your form have form datasource that you never bind to controls (at least it’s not shown above) and you’re trying to populate controls manually from code. You use display methods, but again you don’t bind controls to them; you just call them directly. Then no capabilities of display methods will be used and things like FormObservable attributes will have no effect.

Also, the active() method on form, that should update the controls, isn’t called at all.

And there are other questions… I suggest you start by reviewing your overall architecture. Maybe you should first how to design this behavior, if you’re not familiar with D365FO.

Hello Martin,

Thank you on your response. So this is what is need to be done:

There is form with contract lines:

There is button Areas. When user click on button Areas it should be opened DialogOnly form:

So when the user presses the button on the contract line, I have the contract line buffer to this dialog form. After that I will implement the methods for that values.

Do you have some suggestion how to do this ?

Where does the list of areas come from? Is it something constant, as your code suggests, because you have these options hard-coded there?

Or are they defined in PMCContractArea table, as your datasource suggests?

How do you calculate the values? You didn’t show us the content of methods like getRentalObjectCommonAreaBuildingSum().

List of areas are constant. Content of all methods are in class.

[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:2cf46d4e-f362-4c61-9551-c60314fba49a:type=text&text=class%20PmeRentalObjectAreaCl%0D%0A%7B%0D%0A%20%20%20%20PMETmpRentalAreaLookup%20%20tmpAreaLookup%3B%0D%0A%20%20%20%20%0D%0A%0D%0A%20%20%20%20public%20PMETmpRentalAreaLookup%20clear%28%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Clear%2C%20empty%20the%20table%0D%0A%20%20%20%20%20%20%20%20delete_from%20tmpAreaLookup%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20return%20tmpAreaLookup%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20public%20PMETmpRentalAreaLookup%20getRentalObjectAvailableAreaListOutdoor%28PMERentalObjectId%20_rentalObjectId%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PMEGroundId%20_groundId%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PMECurrDate%20_curDate%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20PMEParcel%20parcel%3B%0D%0A%20%20%20%20%20%20%20%20PMEAreaOutdoor%20areaOutdoor%3B%0D%0A%20%20%20%20%20%20%20%20PMERentalValue%20%20%20%20%20%20%20%20%20%20nAvailableArea%3B%20%20%20%20%20%2F%2F%20Areas%0D%0A%20%20%20%20%20%20%20%20PMERentalValue%20%20%20%20%20%20%20%20%20%20nTotalArea%3B%0D%0A%20%20%20%20%20%20%20%20PMERentalValue%20%20%20%20%20%20%20%20%20%20nUsedArea%3B%0D%0A%20%20%20%20%20%20%20%20PMEQuantityValue%20%20%20%20%20%20%20%20nTotalQuantity%3B%20%20%20%20%20%2F%2F%20Quantities%0D%0A%20%20%20%20%20%20%20%20PMEQuantityUsed%20%20%20%20%20%20%20%20%20nUsedQuantity%3B%0D%0A%20%20%20%20%20%20%20%20PMEQuantityAvailable%20%20%20%20nAvailableQuantity%3B%0D%0A%20%20%20%20%20%20%20%20PMCContract%20%20%20%20%20%20%20%20%20%20%20%20%20contract%3B%0D%0A%20%20%20%20%20%20%20%20PMCContractLine%20%20%20%20%20%20%20%20%20contractLine%3B%0D%0A%20%20%20%20%20%20%20%20PMERentalObjectArea%20%20%20%20%20rentalObjectArea%3B%0D%0A%20%20%20%20%20%20%20%20container%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conContractLst%3B%0D%0A%20%20%20%20%20%20%20%20container%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conRentalObjLst%3B%0D%0A%20%20%20%20%20%20%20%20int%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20i%20%3D%200%2C%20n%3D%200%3B%0D%0A%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20while%20select%20groundId%2C%20parcelId%2C%20RecId%2C%20name%20from%20parcel%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20where%20parcel.validFrom%20%3C%3D%20_curDate%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20parcel.validTo%20%3E%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20parcel.groundId%20%3D%3D%20_groundId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20join%20areaOutdoor%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20where%20areaOutdoor.Parcel%20%3D%3D%20parcel.RecId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20areaOutdoor.ValidFrom%20%3C%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20areaOutdoor.ValidTo%20%3E%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nTotalArea%20%3D%20areaOutdoor.AreaValue%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nTotalQuantity%20%3D%20areaOutdoor.Quantity%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nUsedArea%20%3D%20PMERentalObjectAreaCl%3A%3AgetAreaLineUsedArea%28areaOutdoor.AreaLine%2C%20_curDate%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nUsedQuantity%20%3D%20PMERentalObjectAreaCl%3A%3AgetAreaLineUsedQuantity%28areaOutdoor.AreaLine%2C%20_curDate%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nAvailableArea%20%3D%20nTotalArea%20-%20nUsedArea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nAvailableQuantity%20%3D%20nTotalQuantity%20-%20nUsedQuantity%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20TODO%20calculations%20of%20areavalue%20and%20areaquantity%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.initValue%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.ZoneName%20%3D%20parcel.name%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areaLine%20%3D%20areaOutdoor.AreaLine%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.rentalObjectId%20%3D%20_rentalObjectId%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areatype%20%3D%20areaOutdoor.Areatype%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areaObjectType%20%3D%20PMEObjectType%3A%3AParcel%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Areas%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areaValue%20%3D%20nTotalArea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areaUsed%20%3D%20nUsedArea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areaAvailable%20%3D%20nAvailableArea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areaSelected%20%3D%20nAvailableArea%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Quantities%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.quantityValue%20%3D%20areaOutdoor.Quantity%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.quantityUsed%20%3D%20nUsedQuantity%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.quantityAvailable%20%3D%20nAvailableQuantity%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.unit%20%3D%20PMEAreaType%3A%3Afind%28tmpAreaLookup.areatype%29.Unit%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.validFrom%20%3D%20areaOutdoor.ValidFrom%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.validTo%20%3D%20areaOutdoor.ValidTo%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20while%20select%20validtimestate%28_curDate%29%20RentalObjectId%20from%20rentalObjectArea%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20where%20rentalObjectArea.areaLine%20%3D%3D%20areaOutdoor.AreaLine%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20outer%20join%20ContractId%2C%20RentalObjectId%20from%20contractLine%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20where%20contractLine.RentalObjectId%20%3D%3D%20rentalObjectArea.rentalObjectId%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20contract%20%3D%20PMCContract%3A%3Afind%28contractLine.ContractId%29%3B%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21conFind%28conContractLst%2C%20contractLine.ContractId%29%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20i%2B%2B%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conContractLst%20%3D%20conIns%28conContractLst%2C%20i%2C%20contractLine.ContractId%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21conFind%28conRentalObjLst%2C%20contractLine.RentalObjectId%29%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20n%2B%2B%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conRentalObjLst%20%3D%20conIns%28conRentalObjLst%2C%20n%2C%20contractLine.RentalObjectId%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.dispContractId%20%3D%20con2Str%28conContractLst%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.dispRentalObjectId%20%3D%20con2Str%28conRentalObjLst%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20conContractLst%20%3D%20conNull%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20conRentalObjLst%20%3D%20conNull%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.insert%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20return%20tmpAreaLookup%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20public%20PMETmpRentalAreaLookup%20getRentObjectAvailableAreaList%28PMERentalObjectId%20_rentalObjectId%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PMEBuildingId%20_buildingId%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PMECurrDate%20_curDate%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20boolean%20bShowNotAvailArea%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20boolean%20bShowCommonAreas%20%3D%20true%29%0D%0A%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20PMEAreaIndoor%20%20%20%20%20%20%20%20%20%20%20area%3B%0D%0A%20%20%20%20%20%20%20%20PMCContractLine%20%20%20%20%20%20%20%20%20contractLine%3B%0D%0A%20%20%20%20%20%20%20%20PMERentalObjectArea%20%20%20%20%20rentalObjectArea%3B%0D%0A%20%20%20%20%20%20%20%20PMCContract%20%20%20%20%20%20%20%20%20%20%20%20%20contract%3B%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20PMERentalValue%20%20%20%20%20%20%20%20%20%20nAvailableArea%3B%20%20%20%20%20%2F%2F%20Areas%0D%0A%20%20%20%20%20%20%20%20PMERentalValue%20%20%20%20%20%20%20%20%20%20nTotalArea%3B%0D%0A%20%20%20%20%20%20%20%20PMERentalValue%20%20%20%20%20%20%20%20%20%20nUsedArea%3B%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20PMEQuantityValue%20%20%20%20%20%20%20%20nTotalQuantity%3B%20%20%20%20%20%2F%2F%20Quantities%0D%0A%20%20%20%20%20%20%20%20PMEQuantityUsed%20%20%20%20%20%20%20%20%20nUsedQuantity%3B%0D%0A%20%20%20%20%20%20%20%20PMEQuantityAvailable%20%20%20%20nAvailableQuantity%3B%0D%0A%20%20%20%20%20%20%20%20PMESection%20%20%20%20%20%20%20%20%20%20%20%20%20%20section%3B%0D%0A%20%20%20%20%20%20%20%20PMEZone%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20zone%3B%0D%0A%20%20%20%20%20%20%20%20container%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conContractLst%3B%0D%0A%20%20%20%20%20%20%20%20container%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conRentalObjLst%3B%0D%0A%20%20%20%20%20%20%20%20boolean%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20iAvailable%20%3D%20false%3B%0D%0A%20%0D%0A%0D%0A%20%20%20%20%20%20%20%20while%20select%20buildingId%2C%20SectionId%20from%20section%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20where%20section.validFrom%20%3C%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20section.validTo%20%3E%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20section.buildingId%20%3D%3D%20_buildingId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20join%20RecId%2C%20name%20from%20zone%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20where%20zone.buildingId%20%3D%3D%20section.buildingId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20zone.sectionId%20%3D%3D%20section.sectionId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20zone.validFrom%20%3C%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20zone.validTo%20%3E%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20join%20area%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20where%20area.Zone%20%3D%3D%20zone.RecId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20area.ValidFrom%20%3C%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20area.ValidTo%20%3E%3D%20_curDate%0D%0A%20%20%20%20%20%20%20%20%7B%20%20%20%20%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Zone%20Name%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.ZoneName%20%3D%20zone.name%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Total%20area%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nTotalArea%20%3D%20area.AreaValue%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Total%20quantity%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nTotalQuantity%20%3D%20area.Quantity%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Used%20area%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nUsedArea%20%3D%20PMERentalObjectAreaCl%3A%3AgetAreaLineUsedArea%28area.AreaLine%2C%20_curDate%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Used%20quantity%20%28%3D%20disp%20quantity%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nUsedQuantity%20%3D%20PMERentalObjectAreaCl%3A%3AgetAreaLineUsedQuantity%28area.AreaLine%2C%20_curDate%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Available%20area%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nAvailableArea%20%3D%20nTotalArea%20-%20nUsedArea%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20nAvailableQuantity%20%3D%20nTotalQuantity%20-%20nUsedQuantity%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20iAvailable%20%3D%20false%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Show%20EFA%2C%20BFA%2C%20NA%3F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28area.AreaSelector%20%3D%3D%20PMEAreaSelector%3A%3ACommonAreaBuilding%20%7C%7C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20area.AreaSelector%20%3D%3D%20PMEAreaSelector%3A%3ACommonAreaSection%29%2F%2F%7C%20%20area.areaSelector%20%3D%3D%20PMEAreaSelector%3A%3AUnavailableArea%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20iAvailable%20%3D%20bShowCommonAreas%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Available%20area%20or%20quantity%20%3F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20iAvailable%20%3D%20nAvailableArea%20%3E%200.0%20%7C%7C%20nAvailableQuantity%20%3E%200.0%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Floating%20H2%3F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21iAvailable%20%26%26%20area.AreaSelector%20%3D%3D%20PMEAreaSelector%3A%3ASecondaryArea%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Defined%20as%20%22Floating%22%20H2%3F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20select%20count%28RecId%29%20from%20rentalObjectArea%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20where%20%28rentalObjectArea.RentalObjectId%20%21%3D%20_rentalObjectId%29%20%26%26%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28rentalObjectArea.AreaLine%20%3D%3D%20area.AreaLine%29%20%26%26%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28%28rentalObjectArea.ValidFrom%20%3C%3D%20_curDate%20%7C%7C%20%28%21rentalObjectArea.ValidFrom%29%20%7C%7C%20%28%21_curDate%29%29%20%26%26%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28rentalObjectArea.ValidTo%20%20%20%3E%3D%20_curDate%20%7C%7C%20%28%21rentalObjectArea.ValidTo%29%29%29%20%26%26%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rentalObjectArea.SecondaryAreaFixed%20%3D%3D%20PMESecondaryAreaFixedId%3A%3ANo%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Show%20H2%20in%20available%20list%3F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20iAvailable%20%3D%20rentalObjectArea.RecId%20%3E%200%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28bShowNotAvailArea%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28area.AreaSelector%20%3D%3D%20PMEAreaSelector%3A%3ACommonAreaBuilding%20%7C%7C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20area.AreaSelector%20%3D%3D%20PMEAreaSelector%3A%3ACommonAreaSection%29%2F%2F%7C%20%20area.areaSelector%20%3D%3D%20PMEAreaSelector%3A%3AUnavailableArea%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20iAvailable%20%3D%20iAvailable%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20iAvailable%20%3D%20true%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28iAvailable%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.initValue%28%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.RentalObjectId%20%20%3D%20_rentalObjectId%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.Areatype%20%20%20%20%20%20%20%20%3D%20area.Areatype%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.AreaLine%20%20%20%20%20%20%20%20%3D%20area.AreaLine%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.areaObjectType%20%20%3D%20PMEObjectType%3A%3AZone%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.AreaSelector%20%20%20%20%3D%20area.AreaSelector%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Areas%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.AreaValue%20%20%20%20%20%20%20%3D%20nTotalArea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.AreaUsed%20%20%20%20%20%20%20%20%3D%20nUsedArea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.AreaAvailable%20%20%20%3D%20nAvailableArea%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.AreaSelected%20%20%20%20%3D%20nAvailableArea%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Quantities%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.QuantityValue%20%20%20%20%20%3D%20area.Quantity%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.QuantityUsed%20%20%20%20%20%20%3D%20nUsedQuantity%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.QuantityAvailable%20%3D%20nAvailableQuantity%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.Unit%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20PMEAreaType%3A%3Afind%28tmpAreaLookup.areatype%29.Unit%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.QuantitySelected%20%3D%20nAvailableQuantity%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.ValidFrom%20%20%20%20%20%20%20%20%20%3D%20area.ValidFrom%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.ValidTo%20%20%20%20%20%20%20%20%20%20%20%3D%20area.ValidTo%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20while%20select%20RentalObjectId%20from%20rentalObjectArea%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20where%20rentalObjectArea.AreaLine%20%3D%3D%20area.AreaLine%20%26%26%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28%28rentalObjectArea.ValidFrom%20%3C%3D%20_curDate%20%7C%7C%20%28%21rentalObjectArea.ValidFrom%29%20%7C%7C%20%28%21_curDate%29%29%20%26%26%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28rentalObjectArea.ValidTo%20%20%20%3E%3D%20_curDate%20%7C%7C%20%28%21rentalObjectArea.ValidTo%29%29%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20outer%20join%20contractLine%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20where%20contractLine.RentalObjectId%20%3D%3D%20rentalObjectArea.RentalObjectId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20contract%20%3D%20%20PMCContract%3A%3Afind%28contractLine.ContractId%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28contractLine%20%26%26%20%28%28contractLine.ValidFrom%20%3C%3D%20_curDate%20%7C%7C%20%28%21contractLine.ValidFrom%29%20%7C%7C%20%28%21_curDate%29%29%20%26%26%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28contractLine.ValidTo%20%20%20%3E%3D%20_curDate%20%7C%7C%20%28%21contractLine.ValidTo%29%29%29%20%26%26%20contract.ContractStatus%20%21%3D%20PMCContractStatus%3A%3AClosed%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21conFind%28conContractLst%2C%20contractLine.ContractId%29%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conContractLst%20%3D%20conIns%28conContractLst%2C%201%2C%20contractLine.ContractId%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21conFind%28conRentalObjLst%2C%20contractLine.RentalObjectId%29%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conRentalObjLst%20%3D%20conIns%28conRentalObjLst%2C%201%2C%20contractLine.RentalObjectId%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.DispContractId%20%3D%20con2Str%28conContractLst%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conContractLst%20%3D%20conNull%28%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.DispRentalObjectId%20%3D%20con2Str%28conRentalObjLst%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conRentalObjLst%20%3D%20conNull%28%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28area.ValidFrom%20%3C%20tmpAreaLookup.ValidFrom%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.ValidFrom%20%3D%20area.ValidFrom%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28area.ValidTo%20%3E%20tmpAreaLookup.ValidTo%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.ValidTo%20%3D%20area.ValidTo%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmpAreaLookup.insert%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20return%20tmpAreaLookup%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20public%20void%20setTmpTable%28PMETmpRentalAreaLookup%20_tmpTable%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20tmpAreaLookup%20%3D%20_tmpTable%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20private%20void%20getContractValues%28PMEAreaFields%20_areaFields%2C%20PMERentalObjectArea%20_rentalObjectArea%2C%20PMEAreaIndoor%20_area%2C%20PMECurrDate%20_currDate%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20PMCContractLine%20%20%20%20%20contractLine%3B%0D%0A%20%20%20%20%20%20%20%20PMCContractId%20%20%20%20%20%20%20currContractId%20%3D%20%22%22%3B%0D%0A%20%20%20%20%20%20%20%20PMEAreaValue%20%20%20%20%20%20%20%20areaContract%20%3D%200.0%3B%0D%0A%20%20%20%20%20%20%20%20PMEQuantityContract%20qtyContract%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20while%20select%20validtimestate%28_currDate%29%20ContractId%20from%20contractLine%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20order%20by%20ContractId%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20where%20contractLine.RentalObjectId%20%3D%3D%20_rentalObjectArea.RentalObjectId%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28currContractId%20%21%3D%20contractLine.ContractId%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_rentalObjectArea.RentalQty%20%21%3D%200%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20areaContract%20%2B%3D%20%20_area.getQuantityAreaValue%28_rentalObjectArea.RentalQty%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20qtyContract%20%2B%3D%20_rentalObjectArea.RentalQty%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%2F%2F%20Area%20value%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20areaContract%20%2B%3D%20%20_rentalObjectArea.AreaValue%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20currContractId%20%3D%20contractLine.ContractId%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20_areaFields.areaContract%28areaContract%29%3B%0D%0A%20%20%20%20%20%20%20%20_areaFields.quantityContract%28qtyContract%29%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20static%20PMEAreaFields%20getAreaLineFields%28PMEAreaLine%20_areaLine%2C%20PMECurrDate%20_currDate%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Return%20sum%20of%20used%20area%20for%20a%20given%20areaLine%20%28%3Ddisp%20area%20for%20a%20given%20date%29%0D%0A%20%20%20%20%20%20%20%20PMERentalObjectArea%20rentArea%3B%0D%0A%20%20%20%20%20%20%20%20PMEAreaValue%20%20%20%20%20%20%20%20areaValue%20%3D%200.0%3B%20%2F%2F%20Sum%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20PMEAreaIndoor%20%20%20%20%20%20%20area%3B%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20PMEAreaFields%20%20%20%20%20%20%20areaFields%3B%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20PMEQuantityUsed%20%20%20%20%20qtyUsed%3B%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20PMERentalObjectAreaCl%20rentalObjectAreaCl%20%3D%20new%20PMERentalObjectAreaCl%28%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20areaFields%20%3D%20new%20PMEAreaFields%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20EFA%2C%20BFA%0D%0A%20%20%20%20%20%20%20%20if%20%28_areaLine%20%3C%200%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20areaFields.areaContract%280%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20areaFields.areaUsed%280%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20areaFields.quantityContract%280%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20areaFields.quantityUsed%280%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20areaFields%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Sum%20up%0D%0A%20%20%20%20%20%20%20%20while%20select%20validtimestate%28_currDate%29%20AreaLine%2C%20RentalQty%2C%20AreaValue%2C%20RentalObjectId%20from%20rentArea%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20where%20rentArea.AreaLine%20%3D%3D%20_areaLine%20%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20area%20%3D%20PMEAreaIndoor%3A%3Afind%28rentArea.AreaLine%2C%20_currDate%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Get%20area%20by%20quantity%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28rentArea.RentalQty%20%21%3D%200%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20areaValue%20%2B%3D%20%20area.getQuantityAreaValue%28rentArea.RentalQty%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20qtyUsed%20%2B%3D%20rentArea.RentalQty%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20%20%20%20%2F%2F%20Area%20value%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20areaValue%20%2B%3D%20%20rentArea.AreaValue%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Get%20contract%20value%20and%20contract%20qty%20%28updates%20areaFields%29%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20rentalObjectAreaCl.getContractvalues%28areaFields%2C%20rentArea%2C%20area%2C%20_currDate%29%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20areaFields.areaUsed%28areaValue%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20areaFields.quantityUsed%28qtyUsed%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20return%20areaFields%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20static%20PMEAreaValue%20getAreaLineTotalAreaEx%28PMEAreaLine%20_areaLine%2C%20PMEAreaSelector%20_areaSelector%2C%20PMECurrDate%20_curDate%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Return%20total%20defined%20area%20for%20a%20given%20areaLine.%0D%0A%20%20%20%20%20%20%20%20PMEAreaValue%20%20%20%20%20%20%20%20%20areaValue%3B%0D%0A%20%20%20%20%20%20%20%20%3B%0D%0A%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20if%20%28_areaLine%20%3C%200%20%7C%7C%20_areaSelector%20%3D%3D%20PMEAreaSelector%3A%3ACommonAreaBuilding%20%7C%7C%20_areaSelector%20%3D%3D%20PMEAreaSelector%3A%3ACommonAreaSection%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20areaValue%20%3D%20PMERentalObjectAreaCl%3A%3AgetCommonTotalAreaEx%28_areaLine%2C%20_areaSelector%2C%20_curDate%29%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20else%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20H1%2CH2%2CH0%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20areaValue%20%3D%20PMEAreaCl%3A%3AgetAreaLineTotalArea%28_areaLine%2C%20_curDate%29%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20return%20areaValue%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20static%20PMEAreaUsed%20getAreaLineUsedArea%28PMEAreaLine%20_areaLine%2C%20PMECurrDate%20_currDate%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Return%20sum%20of%20used%20area%20for%20a%20given%20areaLine%20%28%3Ddisp%20area%20for%20a%20given%20date%29%0D%0A%20%20%20%20%20%20%20%20PMERentalObjectArea%20rentArea%3B%0D%0A%20%20%20%20%20%20%20%20PMEAreaValue%20%20%20%20%20%20%20%20areaValue%20%3D%200.0%3B%20%2F%2F%20Sum%0D%0A%20%20%20%20%20%20%20%20PMEAreaHelper%20%20%20%20%20%20%20areaHelper%3B%0D%0A%20%20%20%20%20%20%20%20%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20EFA%2C%20BFA%0D%0A%20%20%20%20%20%20%20%20if%20%28_areaLine%20%3C%200%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20areaHelper%20%3D%20PMEAreaHelper%3A%3AnewFromAreaLine%28_areaLine%2C%20_currDate%29%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20if%20%28%21areaHelper%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20throw%20error%20%28strFmt%28%22%40PME%3AErrorConstructArea%22%2C%20_areaLine%29%29%3B%0D%0A%20%20%20%20%20%20%

I would hide all the calculation in a class. Input will a contract line, output those five calculated values. It might work like this:

PmeRentalObjectAreaSum areaSum = PmeRentalObjectAreaSum::newFromContractLine(pmcContractLine);
areaSum.calcSum();
real bfaArea = areaSum.bfa();
real mcaArea = areaSum.mca();

Then you need to display the result in a form. You could use a temporary table, but it might be unnecessary amount of work in this case. Setting the values from code should suffice.

A question is whether you want to design your own form, or whether you can’t simply use a dialog. Your implementation will look very different depending on which solution you choose.

If you keep your current form, the logic there will look like this:

bfa.realValue(areaSum.bfa());
mfa.realValue(areaSum.mca());
...

That’s it. You can throw away the remaining code in your form.

Note that your queries inside PmeRentalObjectAreaCl are horribly wasteful. You should use the aggregation function called SUM() to summarize values already in database instead of fetching all records to the application and calculating the sum there. If your conditions are met by 1000 records, you’ll make 1000 requests to database (instead of just one) and transfer much more data than the single number you’re interested in.

It would be very beneficial for you if you started working in a team where senior developers would review your code. If it’s not possible, you’ll have to spend more time learning object-oriented programming, SQL and D365FO.

And just one question: from where comes PmeRentalObjectAreaSum and newFromContractLine ?

Project and code are pretty much obsolete and I just came into middle of project. Not written by me :slight_smile:

That would be code you would write. I said I would hide all the calculation logic in a class and the snippet was to demonstrate how such a class could be used.

It could be implemented like this:

class PmeRentalObjectAreaSum
{
    PmcContractLine contractLine;
    real bfaSum;
    real mcaSum;

    protected void new()
    {
    }
    
    public static PmeRentalObjectAreaSum newFromContractLine(PmcContractLine _contractLine)
    {
        PmeRentalObjectAreaSum areaSum = new PmeRentalObjectAreaSum();
        areaSum.parmContractLine(_contractLine);
        return areaSum;
    }
    
    public static PmcContractLine parmContractLine(PmcContractLine _contractLine = contractLine)
    {
        contractLine = _contractLine;
        return contractLine;
    }
    
    public void calcSum()
    {
        // ... validation or anything else needed ...
        bfaSum = this.calcBfaSum();
        mcaSum = this.calcMcaSum();
    }
    
    protected real calcBfaSum()
    {
        // calculate
    }
    
    protected real calcMcaSum()
    {
        // calculate
    }
    
    public real bfa()
    {
        return bfa;
    }
    
    public real mca()
    {
        return mca;
    }    
}

Thank you.