Показать сообщение отдельно
Старый 14.11.2012, 10:40   #7  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
!
Я делал доработку кстати, вспомнил
Этот класс же используется для вывода Итогов в печатную форму Доп. листа. И я ему не поверил тоже!
Заменил calcTotal() на calcTotalNew() ну и его вызов из printTotal():
X++:
private void calcTotalNew()
{
    SalesBook_Print_Excel_RU    salesBook_Print_Excel_RU;
    SalesBookTable_RU           salesBookTable_RU;
    ;
    salesBook_Print_Excel_RU = new SalesBook_Print_Excel_RU();
    salesBook_Print_Excel_RU.parmBookId(correctedBookId);
    select firstOnly salesBookTable_RU
        where salesBookTable_RU.BookId == correctedBookId;
    salesBook_Print_Excel_RU.parmFromDate(salesBookTable_RU.LastUpdateDate);
    salesBook_Print_Excel_RU.parmToDate(salesBookTable_RU.ClosingDate);

    [sumTotalAmount,
     salesAmountExclVAT20,
     taxAmountVAT20,
     salesAmountExclVAT20Tmp,
     taxAmountVAT20Tmp,
     salesAmountExclVAT10,
     taxAmountVAT10,
     sumSalesAmountVAT0,
     sumAmountWithOutTaxes] = salesBook_Print_Excel_RU.calculateToAddList();
}
Ну и соответственно создал метод calculateToAddList() в классе SalesBook_Print_Excel_RU:
X++:
protected container calculateToAddList()
{
    SalesBookTrans_RU      salesBookTrans;
    PurchBookTrans_RU      purchBookTrans;
    Query                  query;
    ;

    isOldBook = false;
    queryRun = new QueryRun(SalesBook_Print_RU::createDefaultQuery(bookId, null, fromDate, toDate)); //скопировал из initParmDefault()
    this.initBookDateNumDelimiter();
    this.changeQueryRun();
    queryRun.reset();
    while (queryRun.next())
    {
        salesBookTrans = queryRun.get(tablenum(SalesBookTrans_RU));

        sumTotalAmount += salesBookTrans.AmountInclVAT;

        purchBookTrans = SalesBook_Print_RU::salesBookTrans2PurchBookTrans(salesBookTrans, isOldBook);

        if (salesBookTrans.TransType != SalesPurchBookTransType_RU::Prepayment &&
            salesBookTrans.TransType != SalesPurchBookTransType_RU::PrepaymentStorno)
        {

            salesAmountExclVAT20    += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
                                       #AmountLiableToVAT20_Purch(purchBookTrans,0)                :
                                       #AmountLiableToVAT20_Sales(salesBookTrans,0);

            salesAmountExclVAT20Tmp += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
                                       #AmountLiableToVAT20_Purch(purchBookTrans,1)                :
                                       #AmountLiableToVAT20_Sales(salesBookTrans,1);

            salesAmountExclVAT10    += salesBookTrans.AmountLiableToVAT10;
        }

        taxAmountVAT20          += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
                                   #TaxAmountVAT20_Purch(purchBookTrans,0)                     :
                                   #TaxAmountVAT20_Sales(salesBookTrans,0);

        taxAmountVAT20Tmp       += SalesBook_Print_RU::isCreditNote(salesBookTrans, isOldBook) ?
                                   #TaxAmountVAT20_Purch(purchBookTrans,1)                     :
                                   #TaxAmountVAT20_Sales(salesBookTrans,1);

        taxAmountVAT10          += salesBookTrans.TaxAmountVAT10;
        sumSalesAmountVAT0      += salesBookTrans.AmountLiableToVAT0;
        sumAmountWithOutTaxes   += salesBookTrans.AmountNotLiableToVAT;
    }
    return [sumTotalAmount,
            salesAmountExclVAT20,
            taxAmountVAT20,
            salesAmountExclVAT20Tmp,
            taxAmountVAT20Tmp,
            salesAmountExclVAT10,
            taxAmountVAT10,
            sumSalesAmountVAT0,
            sumAmountWithOutTaxes];
}
По аналогии и в покупках.

Последний раз редактировалось iCloud; 14.11.2012 в 12:36.