Thursday, August 7, 2014

Check Orphan SalesLine

static void checkSalesLineSalesTable(Args _args)
{
    #AviFiles
    SysOperationProgress    p;
    int64                   numRecs;
    SalesLine               salesLine;
    Counter                 totalLines;
    Counter                 totalGood;
    Counter                 totalBad;
    boolean                 goodFound;
    ;
    select count(RecId) from salesLine
         group by SalesId;
    numRecs = salesLine.RecId;
    if (numRecs)
    {
        p = SysOperationProgress::NewGeneral(#AviUpdate, "Check sales line sales qty", numRecs);
        while select * from salesLine
            group by SalesId
        {
            totalLines++;
            p.setText(strFmt('Record %1 : %2; Bad: %3', totalLines, numRecs, totalBad));
            p.incCount();
            if (!SalesTable::exist(salesLine.SalesId))
            {
                totalBad++;
                info(strfmt('Order %1 Type: %2 Status: %3 Item: %4 Qty: %5 Created by: %6, Created on: %7',
                            salesLine.SalesId,
                            salesLine.SalesType,
                            salesLine.SalesStatus,
                            salesLine.ItemId,
                            salesLine.SalesQty,
                            salesLine.createdBy,
                            salesLine.createdDateTime));
            }
            else
            {
                totalGood++;
            }
        }
    }
    info('Total lines: '+int2str(totalLines));
    info('Total good: '+int2str(totalGood));
    info('Total bad: '+int2str(totalBad));
}

No comments:

Post a Comment