Proje ücret günlüğü oluşturmak
Merhaba
Bu yazımda proje modulunde bulunan ücret günlüğünün kodla nasıl oluşturulacağını anlatacağım. Bu örnekte bir temp tablom var. Tablonun yapısı aşağıdaki gibi.
Bu tablonun içerisine tipi ücret olan proje kategorilerini otomatik oluşturuyorum ve kullanıcının miktar ve fiyat girmesinden sonra bu tabloyu kullanarak bir sınıf yardımıyla proje günlüğünü oluşturuyorum.
Günlüğü oluşturduğum metot;
void fdCreateProjJournal() { ProjJournalTableData JournalTableData; ProjJournalTransData journalTransData; ProjJournalTable journalTable; ProjJournalTrans journalTrans; DmrProjInvoiceTmp tmp; // Parm metotla sınıfa aktarıldı TransDate transDate; // Parm metotla sınıfı aktarıldı ProjTable projTable; // Parm metotla sınıfa aktarıldı ; ttsBegin; journalTableData = JournalTableData::newTable(journalTable); journalTransData = journalTableData.journalStatic().newJournalTransData( journalTrans,journalTableData); journalTable.clear(); journalTable.JournalId = journalTableData.nextJournalId(); journalTable.JournalType = ProjJournalType::Revenue; journalTable.JournalNameId = ProjParameters::find().RevenueJournalNameId; while select tmp where tmp.Amount != 0 { journalTableData.initFromJournalName( journalTableData.journalStatic().findJournalName(journalTable.JournalNameId)); journalTrans.clear(); journalTransData.initFromJournalTable(); journalTrans.TransDate = transDate; journalTrans.ProjTransDate = transDate; journalTrans.ProjId = projTable.ProjId; journalTrans.Qty = tmp.Qty; journalTrans.SalesPrice = tmp.Amount; journalTrans.CostPrice = 1; journalTrans.Txt = projTable.psaRetainageBillingDesc(); journalTrans.CurrencyId = ProjInvoiceTable::find( projTable.ProjInvoiceProjId).CurrencyId; journalTrans.Worker = HcmWorker::userId2Worker(curUserId()); journalTrans.CategoryId = tmp.ProjCategoryId; journalTrans.LinePropertyId = ProjCategory::find( tmp.ProjCategoryId).projLinePropertyId(); journalTrans.DefaultDimension = projTable.DefaultDimension; journalTransData.create(); } journalTable.insert(); info(strFmt("%1 nolu günlük oluşturuldu.", journalTable.JournalId)); this.projJournalPost(); ttsCommit; }
Günlüğü defetere nakletmek için yazdığım metot:
void projJournalPost( ) { ProjJournalCheckPost jourPost; jourPost = ProjJournalCheckPost::newJournalCheckPost(true,true, JournalCheckPostType::Post, tableNum(ProjJournalTable), journalTable.JournalId); jourPost.run(); }
Bu sayede günlüğü oluşturup deftere nakil işlemini de yapmış oluyoruz. Oluşan günlüğü Proje modülü altında günlükler ücret günlüğünden görebilirsiniz.
Selamlar.