Тема: Ошибка SP3?
Показать сообщение отдельно
Старый 12.10.2004, 11:08   #3  
dirigente is offline
dirigente
Участник
 
50 / 10 (1) +
Регистрация: 19.11.2003
Адрес: Москва
Поправка
Если делать как в топике, то ошибка исчезает, но расчет estimateGross и estimateNet - неправильный. Выход - оставляем как было (не меняем местами doInsert и calcCreditEstimate), но после calcCreditEstimate делаем doUpdate:
PHP код:
public void  insert(boolean     dropInvent      false,
                    
boolean     findMarkup      true,
                    
Common      childBuffer     NULL )
{
    
InventUpd_Estimated     estimated;
    
NumberSeq               numberSeq;
    
SalesTable              salesTable;
    
container               salesEstimated;
    
AmountCur               estimate;
    ;

    if (
salesLine.inventTable().interCompanyBlockedSales() &&  salesLine.salesTable().isInterCompanyOrder())
        throw 
checkFailed(strFmt("@SYS74812"salesLine.itemId));

    
ttsbegin;

    if (
salesLine.creditNoteLine())
        
salesLine.transactionCode IntraStatParameters::find().defaultCreditNote;

    
numberSeq NumberSeq::newGetNum(InventParameters::numRefInventTransId());
    
salesLine.inventTransId numberSeq.num();

    if (!
salesLine.custAccount || !salesLine.custGroup)
    {
        
salesLine.custAccount  salesLine.salesTable().custAccount;
        
salesLine.custGroup    salesLine.salesTable().custGroup;
    }

    
salesLine.taxAutogenerated NoYes::Yes;

    
salesLine.setSalesStatus();

    if (!
salesLine.interCompanySkipUpdate  &&  salesLine.salesTable().isInterCompanyOrder())
        
this.interCompanyMirror(salesLine.salesTable());

    
this.updateSalesTable();

    if (
salesLine.salesStatus != salesLine.salesTable().salesStatus)
    {
        
salesTable salesLine.salesTable(true);
        
salesTable.salesStatus salesLine.salesStatus;
        
salesTable.update();
    }

    if (!
dropInvent)
    {
        
estimated = new InventUpd_Estimated(InventMovement::construct(salesLinefalsechildBuffer));
        
estimated.updateNow();
    }

   
salesLine.doInsert();

   
salesLine.calcCreditEstimate();
//-> Теперь зафиксируем измененные значения
   
salesLine.doUpdate();
//<-
    
if (estimated)
        
estimated.updateReservation();

    if (
findMarkup)
        
salesLine.createMarkupTrans(salesLine.salesTable());

    
ttscommit;

Вроде теперь все правильно считает и ошибки нет.
__________________
С уважением,
Dirigente