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