Таким образом решение поставленной задачи автоматической разноски я вижу следующим образом:
Фактически необходимо разработать класс, метод которого и будет и заниматься разноской, что-то типа этого
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;
}
таким образом остается непонятным как осуществляется резервирование и какие используются методы
А может быть предложенный вариант не совсем оптимелен.
Подскажите пожалуйста, выскажите свои мысли по етому поводу.
Заранее огромное спасибо
|