Choise Report Design X++ :
public
boolean fetch()
{
    boolean ret;
    Str    
Lebl, Lebay;
    Int    
I = 1, II = 1;
    Amount 
_UMuka, _Uang, _UMukaCUR;
    Voucher                 _Voucher;
    ItemGroupId             _ItemGroup;
    container               _Cont;
    GG_FPJVoucher           _GG_FPJVoucher,_GG_FPJVoucherOffSet;
    CustInvoiceLine         _CustInvoiceLine;
    CustInvoiceTable        _CustInvoiceTable;
    CustInvoiceJour         _CustInvoiceJour;
    CustInvoiceTrans        _CustInvoiceTrans, _CustInvoiceTrans1;
    InventTable             _InvTable, _InvTable1;
    CustSettlement          _CustSettlement,
_CustSettlementOffset;
    CustTrans               _CustTrans;
    ProjInvoiceOnAcc        _ProjInvoiceOnAcc;
    ProjInvoiceJour         _ProjInvoiceJour;
    Query                   _query      = New Query();
    QueryRun                _qr         = New QueryRun(_query);
    QueryBuildDataSource    _qbds      
= _qr.query().addDataSource(TableNum(GG_FPJVoucher));
    QueryBuildRange         _qbrvoucher =
_qbds.addRange(FieldNum(GG_FPJVoucher,FPJVoucherId));
    ;
    ret = True;//super();
    //Element.Posisi4Rp();
    _GG_FPJVoucherId    = _GG_FPJVoucherSource.FPJVoucherId;
    _CustTrans =
CustTrans::findVoucher(_GG_FPJVoucherSource.Voucher);
   
_qbrvoucher.value(SysQuery::value(_GG_FPJVoucherId));
    _qr.next();
    _GG_FPJVoucher          = _qr.get(TableNum(GG_FPJVoucher));
    _Balance                =
_GG_FPJVoucher.TotalVoucherAmount -
                               
(_GG_FPJVoucher.AmountDPPFaktur *
                                (1 +
((_GG_FPJVoucher.VATPercent + _GG_FPJVoucher.PPhPercent)/100)));
    _GetVoucher             = StrFmt("%1 /
%2",_GG_FPJVoucher.Voucher, _GG_FPJVoucher.SalesId);
    _GG_FPJFakturPajakNum   = CustTable::find(_GG_FPJVoucher.CustAccount).Soltius_CustTaxId
+ _GG_FPJVoucher.getFakturPajakNum();
    _CustAccount            = _GG_FPJVoucher.CustAccount;
    _PPNBaseAmount          = _GG_FPJVoucher.AmountPPNFaktur;
    totalDisc               = 0;
    Curr     
              =
_GG_FPJVoucher.CurrencyCode;
    /*
    IF (Curr !=
Companyinfo::find().CurrencyCode)
       
Element.Design("ReportDesignUSD");
    Else
       
Element.Design("ReportDesignIDR");
    */
    //BIT 20130306
    IDRExchRate     = _GG_FPJVoucher.IDRExchRate;
    companyCurrency =
CompanyInfo::standardCurrency();
    if (companyCurrency == #IDR)
    {
        IF (Curr != companyCurrency)
           
Element.Design("ReportDesignUSD");
        Else
            Element.Design("ReportDesignIDR");
    }
    else
    {
        if (Curr == #IDR)
        {
           
Element.Design("ReportDesignIDR");
        }
        else
        {
           
Element.Design("ReportDesignUSD");
        }
    }
    //end
    switch (_GG_FPJVoucher.FPJVoucherType)
    {
        case GG_FPJVoucherType::CashReceipt:
            linename        =
LedgerJournalTrans::find(_GG_FPJVoucher.JournalId,_GG_FPJVoucher.Voucher,
False).Txt;
            //BIT 20130306
            //if (_GG_FPJVoucher.SalesId)
            //    linename = strfmt("%1 (%2)",
linename, _GG_FPJVoucher.SalesId);
            //end
            _FPDate         =
LedgerJournalTrans::find(_GG_FPJVoucher.JournalId,_GG_FPJVoucher.Voucher,
False).TransDate;
            _DPPAmount      = Abs(_GG_FPJVoucher.DPPBaseAmount);///Abs(_GG_FPJVoucher.AmountDPPFaktur);//
* -1;
            _PPNBaseAmount  = Abs(_GG_FPJVoucher.AmountPPNFaktur);// *
-1;
            ExchRate        =
LedgerJournalTrans::find(_GG_FPJVoucher.JournalId,_GG_FPJVoucher.Voucher,
False).ExchRate;
            conBody[I]  = [linename, _DPPAmount];
            Break;
        case GG_FPJVoucherType::BBCR:
            linename        =
LedgerJournalTrans::find(_GG_FPJVoucher.JournalId,_GG_FPJVoucher.Voucher,
False).Txt;
            //BIT 20130306
            //if (_GG_FPJVoucher.SalesId)
            //    linename = strfmt("%1 (%2)",
linename, _GG_FPJVoucher.SalesId);
            //end
            _FPDate         =
LedgerJournalTrans::find(_GG_FPJVoucher.JournalId,_GG_FPJVoucher.Voucher,
False).TransDate;
            _DPPAmount      = Abs(_GG_FPJVoucher.AmountDPPFaktur);//
* -1;
            _PPNBaseAmount  = Abs(_GG_FPJVoucher.AmountPPNFaktur);// *
-1;
            ExchRate        =
LedgerJournalTrans::find(_GG_FPJVoucher.JournalId,_GG_FPJVoucher.Voucher,
False).ExchRate;
            conBody[I]  = [linename, _DPPAmount];
            Break;
        Case GG_FPJVoucherType::Invoice:
            _FPDate =
_GG_FPJVoucher.VoucherDate;
            ExchRate=
CustInvoiceJour::findInvoiceId(_GG_FPJVoucher.Voucher, False).ExchRate;
            Select _CustInvoiceTrans1 Index
Hint InvoiceIdx
                        Where
_CustInvoiceTrans1.InvoiceId == _GG_FPJVoucher.Voucher
                            &&
_CustInvoiceTrans1.SalesId == _GG_FPJVoucher.SalesId
                            Join _InvTable1
Index Hint ItemIdx Order by ItemGroupId
                            Where
_InvTable1.ItemId == _CustInvoiceTrans1.ItemId;
                IF (_CustInvoiceTrans1)
                {
                    WHILE (_CustInvoiceTrans1)
                    {
                        linename    =
InventItemGroup::find(_InvTable1.ItemGroupId).Name;
                        //BIT 20130306
                        //if
(_GG_FPJVoucher.SalesId)
                        //   
linename = strfmt("%1 (%2)", linename,
_GG_FPJVoucher.SalesId);
                        //end
                        _DPPAmount  = _CustInvoiceTrans1.lineAmountInclTax() +
Abs(TaxTrans::FindAmount(_GG_FPJVoucher.Voucher, _CustInvoiceTrans1.InventTransId).TaxAmount);
                        totalDisc   = _CustInvoiceTrans1.DiscAmount *
_CustInvoiceTrans1.Qty;
                        conBody[I]  = [linename, _DPPAmount, totalDisc];
                        I ++;
                        Next _CustInvoiceTrans1;
                        //Next _InvTable1;
                    }
                    BREAK;
                }
                ELSE IF (_CustTrans.TransType
== LedgerTransType::Project)
                {
                    _ProjInvoiceJour    = ProjInvoiceJour::find(_CustTrans.Voucher,
_CustTrans.TransDate);
                    Select _ProjInvoiceOnAcc
Where _ProjInvoiceOnAcc.ProjInvoiceId == _ProjInvoiceJour.ProjInvoiceId;
                    linename    = _ProjInvoiceOnAcc.Txt;
                    //BIT 20130306
                    //if
(_GG_FPJVoucher.SalesId)
                    //    linename = strfmt("%1 (%2)",
linename, _GG_FPJVoucher.SalesId);
                    //end
                    _DPPAmount  = _ProjInvoiceOnAcc.Amount;
                    totalDisc   = 0;
                    conBody[I]  = [linename, _DPPAmount, totalDisc];
                    Break;
                }
                ELSE //IF (!_CustInvoiceTrans)
                {
                    SELECT _CustInvoiceLine
                        JOIN _CustInvoiceTable
                        WHERE
_CustInvoiceLine.ParentRecId == _CustInvoiceTable.RecId
                        &&
_CustInvoiceTable.InvoiceId == _GG_FPJVoucher.Voucher;
                    linename    = _CustInvoiceLine.Description;
                    //BIT 20130306
                    //if
(_GG_FPJVoucher.SalesId)
                    //    linename = strfmt("%1 (%2)",
linename, _GG_FPJVoucher.SalesId);
                    //end
                    _DPPAmount  = _CustInvoiceLine.AmountCur;
                    totalDisc   = _CustInvoiceTrans.DiscAmount *
_CustInvoiceTrans.Qty;
                    conBody[I]  = [linename, _DPPAmount, totalDisc];
                    Break;
                }
    }
    linename = 'XXXXXXXXXXXXXX';
    I   =
1;
    II  =
0;
    While (conBody[I])
    {
        IF (linename            != Conpeek(conBody[I], 1))
        {
            II++;
            //IF (linename)
            //    Element.execute(1);
            linename            =
StrFmt("%1",Conpeek(conBody[I], 1));
            _DPPAmount          = Conpeek(conBody[I], 2);
            _DppAmountCur       = (_DPPAmount * ExchRate) /100;
            IF (Conpeek(conBody[I], 3))
                TotalDiscCur    = ((Conpeek(conBody[I], 3)) * ExchRate)
/100;
            conBody1[II]    = [linename, _DPPAmount, _DppAmountCur];
        }
        ELSE
        {
            _DPPAmount  += Conpeek(conBody[I], 2);
            _DppAmountCur += (_DPPAmount *
ExchRate) /100;
            conBody1[II]    = ConPoke(conBody1[II], 2, _DPPAmount);
            conBody1[II]    = ConPoke(conBody1[II], 3, _DppAmountCur);
        }
        I++;
    }
    II = 1;
    linename = 'XXXXXXXXXXXXXX';
    While (conBody1[II])
    {
        IF (linename            !=
StrFmt("%1",Conpeek(conBody1[II], 1)))
        {
            linename            = Conpeek(conBody1[II], 1);
            _DPPAmount          = Conpeek(conBody1[II], 2);
            _DppAmountCur       = (_DPPAmount * ExchRate) /100;
            _TotalDPP           += _DPPAmount;
            _TotalDPPCur        += _DppAmountCur;
            Element.execute(1);
        }
        II++;
    }
    //BIT
    element.execute(9);
    //end
    Element.SetHeight();
    /*Total Nilai*/
    Label.left(10, Units::char);
    Label_1.left(14, Units::char);
   
Label.text("XXXXXXXXXXXXXXXXXXXX");
   
Label_1.text("XXXXXXXXXXXXXXXXXXXX");
    _AGlobal   
= _TotalDPP;
    _AGlobalCur = _TotalDPPCur;
    Element.execute(3);
    /*Total Discount*/
    Label.text("");
    Label_1.text("");
    _AGlobal   
= totalDisc;
    _AGlobalCur = TotalDiscCur;
    Element.execute(3);
    /*Total Uang Muka*/
    _AGlobal = 0;
    If (Round(_GG_FPJVoucher.DPPBaseAmount, 1)
== Round(_GG_FPJVoucher.AmountDPPFaktur, 1))
    {
        Label.text("");
        Label_1.text("");
        _AGlobal    = 0;
    }
    Else
    {
        _Cont  
= _GG_FPJVoucher.GetDPFaktur4Print();
        IF (conpeek(_Cont, 1))
        {
            Label.width((100 -
(76-StrLen(conpeek(_Cont, 1)))), Units::char);
            Label_1.width((100 -
(76-StrLen(conpeek(_Cont, 1)))), Units::char);
            Label.text("( " +
conpeek(_Cont, 1) + " )");
            Label_1.text("( " +
conpeek(_Cont, 1) + " )");
            _AGlobal= conpeek(_Cont, 2);
            _AGlobalCur = (_AGlobal *
_GG_FPJVoucher.FPJExchRate)/100;
        }
    }
    Label.left(15, Units::char);
    Label.bold(1);
    Label_1.left(15, Units::char);
    Label_1.bold(1);
    _UMuka = _AGlobal;
    _UMukaCUR = _AGlobalCur;
    Element.execute(3);
    /*Total Dasar Pengenaan Pajak*/
    Label.text("");
    Label_1.text("");
    _AGlobalCur = _TotalDPPCur - TotalDiscCur -
_UMukaCUR;
    _AGlobal = _TotalDPP - _UMuka;
    Element.execute(3);
    /*Total PPn*/
    Label.text("");
    Label_1.text("");
    IF (_GG_FPJVoucher.Berikat == NoYes::No)
    {
    _AGlobal   
= _AGlobal * (_GG_FPJVoucher.VATPercent/100);
    _AGlobalCur = _AGlobalCur *
(_GG_FPJVoucher.VATPercent/100);
    }
    Else
    {
    _AGlobal   
= _AGlobal * (10/100);
    _AGlobalCur = _AGlobalCur * (10/100);
    }
    Element.execute(3);
    //GetLineName.height(13,units::char);
    Soltius_Name                  =
CustParameters::getFPAuthorityName();
    Soltius_Position              =
CustParameters::getFPAuthorityPos();
    /*
    IF (Curr !=
Companyinfo::find().CurrencyCode)
        _GetExchRate = StrFmt("Kurs Rp.
%1", ExchRate / 100);
    */
    //BIT 20130306
    if (companyCurrency == #IDR)
    {
        IF (Curr != companyCurrency)
            _GetExchRate = StrFmt("Kurs
Rp. %1", ExchRate / 100);
    }
    else
    {
        if (Curr != #IDR)
        {
            _GetExchRate = StrFmt("Kurs
Rp. %1", IDRExchRate ? ExchRate / IDRExchRate : 0);
        }
    }
    //end
    Element.execute(5);
    return ret;
}
0 comments:
Post a Comment