Clean Tax Document in d365 f&o

 static void cleanTaxDocument(Args _args)

{
    TaxDocument  taxDocumentTobeDeleted;
    TaxDocumentJson jsonToBeDelete;
    tableid transTableId = /*TableId*/1425;
    RefRecId transRecId = /*RecId*/999999999999;
    TaxDocumentTransitRelation  taxDocumentTransitRelation;
    TaxDocumentTransitDocument taxDocumentTransitDocument;
    TaxDocumentJson json;
    TaxDocument taxDocument = TaxDocumentUtils::getTaxDocumentBySource(transTableId, transRecId);
    json = TaxDocumentJson::find(taxDocument.TaxDocumentJson);

    ttsBegin;
    while select forUpdate taxDocumentTobeDeleted
        where taxDocumentTobeDeleted.RecId != taxDocument.RecId
           exists join taxDocumentTransitDocument
               where taxDocumentTobeDeleted.GUID == taxDocumentTransitDocument.TaxDocument
                && taxDocumentTobeDeleted.OriginSourceTableId == transTableId
                && taxDocumentTobeDeleted.OriginSourceRecId == transRecId
           exists join taxDocumentTransitRelation
               where taxDocumentTransitDocument.RecId == taxDocumentTransitRelation.TransitDocumentRecId
               && taxDocumentTransitRelation.TransactionType == transTableId
               && taxDocumentTransitRelation.TransactionRecId == transRecId
    {
        jsonToBeDelete = TaxDocumentJson::find(taxDocumentTobeDeleted.TaxDocumentJson, true);
        if (jsonToBeDelete.JSON != json.JSON)
        {
            info(strFmt("different taxdocument: %1", taxDocumentTobeDeleted.RecId));
        }
        else{
            taxDocumentTobeDeleted.delete();
            jsonToBeDelete.delete();
        }
    }
    ttsCommit;
    info("done");
}

Comments