PurchaseInvoice Report

Purchase Invoice Report:

Contract Class:

[ DataContractAttribute]
public class INC_PurchaseInvoiceContract
{
    VendInvoiceId           vendinvoiceId;
}
-------------------------
[DataMemberAttribute("VendInvocieId")]
public VendInvoiceId parmVendInvoiceId(VendInvoiceId _vendinvoiceId = vendinvoiceId)
{
    vendinvoiceId = _vendinvoiceId;

    return vendinvoiceId;
}
---------------------------------

RDP Class:

[SRSReportParameterAttribute(classstr(INC_PurchaseInvoiceContract))]
public class INC_PurchaseInvoiceDP extends SrsReportDataProviderPreProcessTempDB
{
    INC_PurchaseInvoiceContract         contract;
    INC_PurchaseInvoiceHeaderTmp        header;
    INC_PurchaseInvoiceLineTmp          lines;
    VendInvoiceId                       vendinvoiceid;
    VendInvoiceJour                     vendinvoicejour;
    VendInvoiceTrans                    vendinvoicetrans;

}
------------------------------
[SRSReportDataSetAttribute('INC_PurchaseInvoiceHeaderTmp')]
public INC_PurchaseInvoiceHeaderTmp getINC_PurchaseInvoiceHeaderTmp()
{
    select  header;
    return  header;
}

[SRSReportDataSetAttribute('INC_PurchaseInvoiceLineTmp')]
public INC_PurchaseInvoiceLineTmp getINC_PurchaseInvoiceLineTmp()
{
    select  lines;
    return  lines;
}
------------------------------------------
public void processReport()
{
    contract        = this.parmDataContract();
    vendinvoiceid   = contract.parmVendInvoiceId();

    this.setHeader(vendinvoiceid);
    this.setLine(vendinvoiceid);
}
------------------------------------------
public void setHeader(VendInvoiceId _invoiceid)
{
    UserInfo            userInfo;
    VendInvoiceTrans    vendinvoicetranslocal;
    select firstOnly userInfo where userInfo.id ==  curUserId();
    select vendinvoicejour
            where vendinvoicejour.InvoiceId == _invoiceid;
    select vendinvoicetranslocal where vendinvoicetranslocal.InvoiceId == vendinvoicejour.InvoiceId;
    header.VendorCode           =   vendinvoicejour.OrderAccount;
    header.VendorName           =   vendinvoicejour.vendName();
    header.VendorDoc            =   vendinvoicejour.InvoiceId;
    header.InvoiceDate          =   vendinvoicejour.InvoiceDate;
    header.PO                   =   vendinvoicejour.PurchId;
    header.PrintedBy            =   UserInfo.name;
    header.Prepared             =   PurchTable::find(vendinvoicejour.PurchId).createdBy;
    header.PostedBy             =   vendinvoicejour.createdBy;
    header.PostedDate           =   DateTimeUtil::date(DateTimeUtil::applyTimeZoneOffset(vendinvoicejour.createdDateTime, DateTimeUtil::getUserPreferredTimeZone()));
    header.Approved             =   '';
    header.CompanyImage         =   FormLetter::companyLogo();
    header.Invoiceid            =   vendinvoicejour.InternalInvoiceId;
    header.GRN                  =   VendPackingSlipTrans::findInventTransId_RU(vendinvoicetranslocal.InventTransId).PackingSlipId;
    header.insert();
}
-----------------------------------
public void setLine(VendInvoiceId   _invoiceid)
{
    while select vendinvoicetrans
                 where vendinvoicetrans.InvoiceId == _invoiceid
    {
        lines.ItemId                = vendinvoicetrans.ItemId;
        lines.ItemDescription       = vendinvoicetrans.Name;
        lines.Qty                   = vendinvoicetrans.Qty;
        lines.PurchPrice            = vendinvoicetrans.PurchPrice;
        lines.LineTotal             = vendinvoicetrans.lineAmountInclTax();
        lines.Tax                   = VendInvoiceJour::findFromVendInvoiceTrans(vendinvoicetrans.PurchID,vendinvoicetrans.InvoiceId,vendinvoicetrans.InvoiceDate,vendinvoicetrans.numberSequenceGroup,vendinvoicetrans.InternalInvoiceId).SumTax;
        lines.insert();
    }
}
------------------------------------

Controller Class:

public class INC_PurchaseInvoiceController extends SrsReportRunController
{

}
----------------------------
public static void main(Args _args)
{
    INC_PurchaseInvoiceController      controller = new INC_PurchaseInvoiceController();
    VendInvoiceJour                    vendInvoiceJour;

    vendInvoiceJour = _args.record() as VendInvoiceJour;

    controller.parmArgs(_args);
    controller.parmReportName(ssrsReportStr(INC_PurchaseInvoice, INC_PurchaseInvoiceReport));
    controller.parmShowDialog(false);
    controller.startOperation();
}
-------------------------------
protected void prePromptModifyContract()
{
    VendInvoiceJour                 vendInvoiceJour;
    INC_PurchaseInvoiceContract        contract;

    if (this.parmArgs() && this.parmArgs().record())
    {
      contract              =   this.parmReportContract().parmRdpContract() as INC_PurchaseInvoiceContract;
      vendInvoiceJour       =   this.parmArgs().record();

      contract.parmVendInvoiceId(vendInvoiceJour.InvoiceId);
    }
}
-----------------------------------

Comments

Popular posts from this blog

We will follow the following steps in the AX development.

Need to provide “ItemId lookup” based on "ItemType" field, which selected while creating SalesOrder

How to retrieve multiple selected records from Grid using X++