Archive for Ağustos 28th, 2014

Proje teklif satırından otomatik WBS kaydı oluşturmak (AX 2012)

Merhaba

Ax 2012′de proje tekliflerini girerken teklif satırından otomatik WBS satırlarının oluşturulması için yazdığım metodu sizinle paylaşıyorum.

Bu metot sayesinden wbs ve teklif arasından etkileşimi sağlamış oluyoruz.

void addItemToWBS()
{
    PSAActivityEstimates    estimates;
    Hierarchy               hierarchy;
    HierarchyIdBase         hierarchyId;
    HierarchyTreeTable      hierarchyTreeTable;
    ;
    hierarchyId = HierarchyLinkTable::findRefTableRecId(tablenum(SalesQuotationTable),
                SalesQuotationTable.RecId).HierarchyId;
    hierarchyTreeTable   = HierarchyTreeTable::findbyNameonHierarchy(hierarchyId ,
           "FD_AnaKategori"); // Hangi kategoriye bağlanacak
    smmActivities      = smmActivities::find(hierarchyTreeTable.activityNumber());

    estimates.clear();
    estimates.ActivityNumber     = smmActivities.ActivityNumber;
    estimates.initFromInventTable(InventTable);
    estimates.InventDimId        = SalesQuotationLine.inventDimId;
    estimates.ItemId             = SalesQuotationLine.ItemId;
    estimates.ProjCategoryId     = SalesQuotationLine.ProjCategoryId;
    estimates.Quantity           = SalesQuotationLine.SalesQty;
    estimates.ProjTransType      = SalesQuotationLine.ProjTransType;
    estimates.Worker             = SalesQuotationLine.ProjectWorker;
    estimates.UnitSalesPrice     = SalesQuotationLine.SalesPrice;
    estimates.UnitCostPrice      = SalesQuotationLine.CostPrice;
    estimates.TotalSalesPrice    = SalesQuotationLine.LineAmount;
    estimates.TotalCostPrice     = SalesQuotationLine.SalesQty * SalesQuotationLine.CostPrice;
    estimates.LinePropertyId     = SalesQuotationLine.LinePropertyId;
    estimates.Description        = SalesQuotationLine.ProjDescription;
    estimates.PRGSalesUnit       = SalesQuotationLine.SalesUnit;
    estimates.insert();

    ttsBegin;
    SalesQuotationLine.selectForUpdate(true);
    SalesQuotationLine.PSARefRecId  = estimates.RecId;
    SalesQuotationLine.doUpdate();
    ttsCommit;

}

Update ve Delete kodları SalesQuotationLine içinde psaUpdateActivityEstimates() ve psaDeleteActivityEstimates() adiyla mevcut. Sistem bunları kullanıyor.

Selamlar.