Wednesday, 26 April 2017

PurchaseOrderLines Report



class PurchaseOrderLinesDP extends SRSReportDataProviderBase
{
    AEIPurchaseOrderLinesTmp    purchaseOrderLinesTmp;
    TmpSysQuery                 tmpSysQuery;

}

[SRSReportDataSetAttribute(tableStr(AEIPurchaseOrderLinesTmp))]
public PurchaseOrderLinesTmp getPurchaseOrderLinesTmp()
{
    select purchaseOrderLinesTmp;
    return purchaseOrderLinesTmp;
}





[SysEntryPointAttribute]
public void processReport()
{
    Query                                           query;
    QueryRun                                        queryRun;

    PurchTable                                      purchTable;
    PurchLine                                       purchLine;
    EcoResCategory                                  ecoResCategory;
    VendPackingSlipTrans                            vendPackingSlipTrans;
    VendPackingSlipJour                             vendPackingSlipJour;
    AEGAnalysisCodeView                             analysisView;
    AEGOlapDefaultDimensionFramework                defaultDimensionView;

    query                                           = this.parmQuery();
    queryRun                                        = new QueryRun(query);

    tmpSysQuery                                     = AEISRSDynamicQuery::rangesToTmpSysQuery(this.parmQuery());

    while(queryRun.next())
    {
        purchTable                                  = queryRun.get(tableNum(PurchTable));
        purchLine                                   = queryRun.get(tableNum(PurchLine));
        ecoResCategory                              = queryRun.get(tableNum(EcoResCategory));

        purchaseOrderLinesTmp.clear();

        select firstOnly maxOf(AnalysisCodeKey) from defaultDimensionView
            where   defaultDimensionView.defaultDimension   == purchLine.DefaultDimension;

        if(defaultDimensionView.AnalysisCodeKey != 0)
        {
            select firstOnly CodeNumber from analysisView
                where analysisView.RecId              == defaultDimensionView.AnalysisCodeKey;
        }

        purchaseOrderLinesTmp.PurchaseOrder         = purchTable.PurchId;
        purchaseOrderLinesTmp.SupplierAccount       = purchTable.OrderAccount;
        purchaseOrderLinesTmp.SupplierName          = purchTable.PurchName;
        purchaseOrderLinesTmp.LineNumber            = purchLine.LineNumber;
        purchaseOrderLinesTmp.ProcurementCategory   = ecoResCategory.Name;
        purchaseOrderLinesTmp.Description           = purchLine.Name;
        purchaseOrderLinesTmp.Currency              = purchLine.CurrencyCode;
        purchaseOrderLinesTmp.LineStatus            = purchLine.PurchStatus;
        purchaseOrderLinesTmp.UnitPrice             = purchLine.PurchPrice;
        purchaseOrderLinesTmp.Quantity              = purchLine.PurchQty;
        purchaseOrderLinesTmp.LineAmount            = purchLine.LineAmount;
        purchaseOrderLinesTmp.ProjId                = purchLine.ProjId; purchaseOrderLinesTmp.A_Costcentre  = AEGFunctions::getFinancialDimensionDepartment(purchLine.DefaultDimension).Value;
        purchaseOrderLinesTmp.  AAAA       = AEGFunctions::getFinancialDimensionProfitCentreId(purchLine.DefaultDimension);
        purchaseOrderLinesTmp. BBBB = AEGFunctions::getFinancialDimensionClientId(purchLine.DefaultDimension);
        purchaseOrderLinesTmp.CCCC             = AEGFunctions::getFinancialDimensionProjectId(purchLine.DefaultDimension);
        purchaseOrderLinesTmp.DDDD            = AEGFunctions::getFinancialDimensionServiceSegmentId(purchLine.DefaultDimension);
        purchaseOrderLinesTmp.DDDDD            = AEGFunctions::getFinancialDimensionChannelId(purchLine.DefaultDimension);
        purchaseOrderLinesTmp.EEEEEEEE = AEGFunctions::getFinancialDimensionVendorId(purchLine.DefaultDimension);
        purchaseOrderLinesTmp.FFFFFFF            = analysisView.CodeNumber;
        purchaseOrderLinesTmp.SalesTaxGroup         = purchLine.TaxGroup;
        purchaseOrderLinesTmp.ItemSalesTaxGroup     = purchLine.TaxItemGroup;


        select sum(ValueMST) from vendPackingSlipTrans
            where   purchTable.PurchId      == vendPackingSlipTrans.OrigPurchid
            &&      purchLine.LineNumber    == vendPackingSlipTrans.PurchaseLineLineNumber;

        purchaseOrderLinesTmp.InvoiceRemainder  = vendPackingSlipTrans.ValueMST;

        select firstonly Remain from vendPackingSlipTrans
            where   purchTable.PurchId      == vendPackingSlipTrans.OrigPurchid
            &&      purchLine.LineNumber    == vendPackingSlipTrans.PurchaseLineLineNumber
        join RecId from vendPackingSlipJour
            order by vendPackingSlipJour.DeliveryDate Desc
            where   vendPackingSlipTrans.VendPackingSlipJour == vendPackingSlipJour.RecId;

        purchaseOrderLinesTmp.DeliveryRemainder = vendPackingSlipTrans.Remain;

        purchaseOrderLinesTmp.insert();
    }
}

No comments:

Post a Comment