Показать сообщение отдельно
Старый 08.10.2003, 09:42   #3  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
Таким образом решение поставленной задачи автоматической разноски я вижу следующим образом:

Фактически необходимо разработать класс, метод которого и будет и заниматься разноской, что-то типа этого

boolean createJournalLine()
{

InventJournalTrans journalLine;
InventDim _inventDim;
InventDim inventDimIssue;
InventDim inventDimReceipt;

.....

InventMovement _movement;

InventJournalCheckPost journalCheckPost;

;

inventJournalTable = InventJournalTable::find(inventJournalId);// ищется соответствующий журнал, если нет то заводится

if(!inventJournalTable)
{
this.createJournalTable(inventJournalId);
inventJournalTable = InventJournalTable::find(inventJournalId);
}

journalLine.initFromInventJournalTable(inventJournalTable);
journalLine.journalType= InventJournalType::Transfer;


_movement = InventMovement::construct(journalLine); // теперь бы неплохо создать экземпляр класса InventMovement


// а вот дальше начинается самой интересное - кикае методы использовать, чтобы наконецто зарезервировать, то ли этот
InventMovement::setAutoReserving(journalLine);
...

// то ли еще какой,



journalLine.inventDimId = InventDim::findOrCreate(inventDimIssue).inventDimId;
journalLine.toInventDimId = InventDim::findOrCreate(inventDimReceipt).inventDimId;
journalLine.initValue();

journalLine.write();

if (journalLine.inventDimId != inventDimIssue.inventDimId)
{
inventDimIssue.data(InventDim::find(journalLine.inventDimId));
inventDimIssue.write();
}

if (journalLine.toInventDimId != inventDimReceipt.inventDimId)
{
inventDimReceipt.data(InventDim::find(journalLine.toInventDimId));
inventDimReceipt.write();
}

// после всего етого необходимо разнести

journalCheckPost = InventJournalCheckPost::construct();
journalCheckPost.getLast();
journalCheckPost.parmPost(NoYes::Yes);
journalCheckPost.parmJournalNum(inventJournalTable.JournalId); //journalId
journalCheckPost.parmVoucher('');
journalCheckPost.parmComplete(NoYes::Yes);

journalCheckPost.parmJournalCheckPostType(JournalCheckPostType::Post);
journalCheckPost.parmJournalCheckPostDialog(JournalCheckPostDialog::Invent);


journalCheckPost.run();
journalCheckPost.jobStatistics(); // ну и посмотреть на результаты работы


return true;
}


таким образом остается непонятным как осуществляется резервирование и какие используются методы

А может быть предложенный вариант не совсем оптимелен.

Подскажите пожалуйста, выскажите свои мысли по етому поводу.

Заранее огромное спасибо