Показать сообщение отдельно
Старый 26.07.2009, 23:45   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
и немного ещё...
Кстати говоря подобный код имеется только в случае поиска цены по клиентам. В случае цены поставщиков или скидок по любому модулю ничего подобного не делается... Есть общий код на New класса:
X++:
    if ((_moduleType == ModuleInventPurchSales::Sales && SalesParameters::find().rContractPriceDisc) ||
        (_moduleType == ModuleInventPurchSales::Purch && PurchParameters::find().rContractPriceDisc)
       )
    {
        rContractCode       = _rContractCode;
        rContractAccount    = _rContractAccount;
    }
Вроде как этого должно быть достаточно...

На всякий случай приведу весь код метода :
X++:
boolean  findPrice(PriceGroupId _priceGroupId,
                   boolean      _useItemPrice = true)
{
    boolean         findAll     = true;
    boolean         findItemDim = true;

    InventDim       inventDimAllActivated;
    InventDim       inventDimItemDimActivated;
    InventDim       inventDimNoneActivated;

    InventTable     inventTable;
    // <GEEU>
    boolean         ret;
    boolean         checkContract;
    // </GEEU>
    ;

    usedPriceGroupId = _priceGroupId;

    if (itemId)
    {
        inventTable = InventTable::find(itemId);

        switch (moduleType)
        {
            case ModuleInventPurchSales::Purch:
                inventDimAllActivated.copyActivatePurchPriceAll(inventTable.DimGroupId, inventDim);
                // <GEEU>
                checkContract = PurchParameters::find().rContractPriceDisc;
                // </GEEU>
                break;
            case ModuleInventPurchSales::Sales:
                inventDimAllActivated.copyActivateSalesPriceAll(inventTable.DimGroupId, inventDim);
                // <GEEU>
                checkContract = SalesParameters::find().rContractPriceDisc;
                // </GEEU>
                break;
            default:
                inventDimAllActivated.copyItemDim(inventTable.DimGroupId, inventDim);
        }

        inventDimItemDimActivated.copyItemDim(inventTable.DimGroupId, inventDimAllActivated);

        findAll     = !InventDim::isInventDimEqual(inventDimAllActivated, inventDimItemDimActivated);
        findItemDim = !InventDim::isInventDimEqual(inventDimItemDimActivated,inventDimNoneActivated);

        inventDimAllActivated       = findAll       ? InventDim::findDim(inventDimAllActivated)     : inventDimAllActivated;
        inventDimItemDimActivated   = findItemDim   ? InventDim::findDim(inventDimItemDimActivated) : inventDimItemDimActivated;
    }

    /* <SYS>
    return ((findAll     && inventDimAllActivated.RecId     && this.findPriceAgreement(_priceGroupId, inventDimAllActivated.InventDimId))       ||
    </SYS> */
    // <GEEU>
    ret =   (!checkContract || this.searchbyRContract()) && (findAll     && inventDimAllActivated.RecId     && this.findPriceAgreement(_priceGroupId, inventDimAllActivated.InventDimId,rContractCode,rContractAccount)) ||
            (findItemDim && inventDimItemDimActivated.RecId && this.findPriceAgreement(_priceGroupId, inventDimItemDimActivated.InventDimId,rContractCode,rContractAccount))   ||
                                                               this.findPriceAgreement(_priceGroupId, InventDim::inventDimIdBlank(),rContractCode,rContractAccount);

    return  ret ||
            (findAll     && inventDimAllActivated.RecId     && this.findPriceAgreement(_priceGroupId, inventDimAllActivated.InventDimId))       ||
            // </GEEU>
            (findItemDim && inventDimItemDimActivated.RecId && this.findPriceAgreement(_priceGroupId, inventDimItemDimActivated.InventDimId))   ||
                                                               this.findPriceAgreement(_priceGroupId, InventDim::inventDimIdBlank())            ||
             /* <SYS>
             (_useItemPrice && this.findItemPrice()));
             </SYS> */
             // <GEEU>
             (_useItemPrice && this.findItemPrice());
             // </GEEU>
}
__________________
Zhirenkov Vitaly