Find out the different MOQ of purchase price

static void Jimmy_priceDiscTableFromMOQ(Args _args)
{
    priceDiscTable  priceDiscTable;
    test            test;
    int             i;
;
    ttsbegin;
    test.selectForUpdate(true);
    while select test order by test.ItemId
    {
        test.VendAccount = "";
        test.Currency    = "";
        test.Price2     = 0;
        test.Price01    = 0;
        test.Price02    = 0;
        test.Price03    = 0;
        test.Price04    = 0;
        test.Name       = InventTable::find(test.ItemId).ItemName;
        
        while select priceDiscTable
            where priceDiscTable.ItemCode       == TableGroupAll::Table
            &&    priceDiscTable.AccountCode    == TableGroupAll::Table
            &&    priceDiscTable.relation       == PriceType::PricePurch
            &&    priceDiscTable.Module         == ModuleInventCustVend::Vend
            &&    priceDiscTable.ItemRelation   == test.ItemId
            &&   (systemdateget() >= priceDiscTable.fromDate || !priceDiscTable.fromDate) &&
                 (systemdateget() <= priceDiscTable.toDate   || !priceDiscTable.toDate  )
            &&   (priceDiscTable.QuantityAmount == 1         ||  priceDiscTable.QuantityAmount == 2000
            ||    priceDiscTable.QuantityAmount == 5000      ||  priceDiscTable.QuantityAmount == 10000
            ||    priceDiscTable.QuantityAmount == 20000)
         {
            i++;
            test.VendAccount = priceDiscTable.AccountRelation;
            test.Currency    = priceDiscTable.Currency;
            switch(priceDiscTable.QuantityAmount)
            {
                case 1 :
                    test.Price2  = priceDiscTable.Amount;break;
                case 2000 :
                    test.Price01 = priceDiscTable.Amount;break;
                case 5000 :
                    test.Price02 = priceDiscTable.Amount;break;
                case 10000 :
                    test.Price03 = priceDiscTable.Amount;break;
                case 20000 :
                    test.Price04 = priceDiscTable.Amount;break;
                default :
                    break;
            }
         }
         test.doupdate();
     }
     ttscommit;
     info(strfmt("Total updated %1 records!",i));
}
原文地址:https://www.cnblogs.com/Fandyx/p/1886645.html