Показать сообщение отдельно
Старый 19.03.2004, 14:28   #14  
Mystery is offline
Mystery
Участник
 
43 / 11 (1) +
Регистрация: 28.01.2004
Спасибо всем кто помог, все прекрасно работает за одним маленьким исключением. Номера партий генерятся в какой-то странной нумерации (просто присваивается номер 201, 202... и так далее). Хотелось бы чтоб генерировался в стандартной функциональности для настроек, например дата + номер лота... Исследовал класс InventUpd_Estimated и метод updateAutoDimBatchId и взял кусок из него. Заменил вызов numberSeq.num() на inventNumGroup.buildNumber. Но у меня почемуто выдает при созданнии партии ее текущий номер, а не следующий. Может у меня в коде что-то не так? Привожу пример кода

PHP код:
void run()
{
    
InventTrans inventTransCopy;
    
NumberSeq       numberSeq NumberSeq::newGetNum(InventParameters::numRefInventBatchSerialId());
    
InventDim       masterInventDimtmpInventDim;
    
InventBatch     masterInventBatchtmpInventBatch;
    
// -->
    
inventNumGroup      inventNumGroup;
    
// <--
;

    
setPrefix(InventTransSplit::description());

    try
    {
        
ttsbegin;

        if (!
this.validate())
            throw 
error("@SYS18447");

        
select forupdate inventTransCopy
            index hint RecId
            where inventTransCopy
.recId== inventTrans.recId;

        if (!
inventTransCopy.checkIsChanged(inventTrans))
            throw 
error("@SYS18447");



        
masterInventDim inventTransCopy.inventDim();
        
masterInventBatch InventBatch::find(masterInventDim.inventBatchIdinventTransCopy.ItemId);

        
tmpInventBatch.data(masterInventBatch);
        
//tmpInventBatch.inventBatchId = numberSeq.num();
        
inventNumGroup inventNumGroup::find(inventTransCopy.inventMovement().inventTable().batchNumGroupId);
        
tmpInventBatch.inventBatchId inventNumGroup.buildNumber(inventTransCopy.inventMovement(), typeId2ExtendedTypeId(typeId(InventBatchId)));

        
tmpInventBatch.initFromInventMovement(inventTransCopy.inventMovement());
        
tmpInventBatch.prodDate inventTransCopy.purchLine().M069_prodDate;
        
tmpInventBatch.expDate inventTransCopy.purchLine().M069_expDate;
        
tmpInventBatch.insert();

        
masterInventDim.inventBatchId tmpInventBatch.inventBatchId;
        
tmpInventDim InventDim::findOrCreate(masterInventDim);

        
inventTransCopy.updateSplit(splitQty);

        
inventTransCopy.inventDimId tmpInventDim.InventDimId;
        
inventTransCopy.update();

        
updRecId inventTransCopy.recId;

        
ttscommit;
    }
    catch (
Exception::Deadlock)
    {
        
retry;
    }