![]() |
#10 |
Участник
|
Цитата:
Сообщение от kashperuk
![]() Честно говоря, читаю ваши сообщения, и как сквозь чащи пробираюсь. Почти ничего непонятно
![]() А по поводу ваших проблем с классами. Вы явно что-то не договариваете здесь Как может в класс PriceDisc передаться неверная номенклатура, если метод этот вызывается из МАПа SalesPurchLine, который имеет маппинг на код номенклатуры для заказа? Ответ: никак, если до этого кто-то что-то не испортил. А вот это вы, видимо, как раз и не договорили. Так что ищите в пред. модификациях, кто чего трогал. ![]() Код: boolean findPriceAgreement(PriceGroupId _priceGroupId, InventDimId _inventDimId) { PriceDiscTable priceDiscTable; PriceType relation = this.priceRelation(); boolean priceExist = false; TableGroupAll itemCode; TableGroupAll accountCode; ItemRelation itemRelation; CustVendRel accountRelation; Integer idx; Qty absQty = abs(qty); PriceDiscTable priceTbl; CIRFASSizeValue nSize; Boolean lSize, lSize2; InventDimId nullInvDim = "Axapta"; ; this.resetPrice(); if (! itemId) return priceExist; idx = 0; while (idx < 9) { itemCode = idx mod 3; accountCode = idx div 3; itemRelation = itemCode == 0 ? itemId : ''; accountRelation = this.accountRelation(accountCode, _priceGroupId); if (PriceDiscTable::activation(relation, accountCode, itemCode, priceParameters)) { if (PriceDisc::validateRelation(accountCode, accountRelation) && PriceDisc::validateRelation(itemCode, itemRelation )) { lSize = false; nSize = 0; if ( _priceGroupId && _inventDimId ) { nSize = ConfigTable::find( itemRelation, InventDim::find( _inventDimId, false ).configId, false ).CIRFASSizeValue; if ( nSize != 0 ) { select firstonly priceTbl index hint ItemDimIdx where priceTbl.ItemRelation == itemRelation && priceTbl.AccountRelation == _priceGroupId && priceTbl.UTSizeValue != 0; if ( priceTbl ) lSize = true; } } // добавил немножко кода для обнаруживания размера и его величины ... while select priceDiscTable index PriceDiscIdx // equals order by QuantityAmount where priceDiscTable.relation == relation && priceDiscTable.itemCode == itemCode && priceDiscTable.itemRelation == itemRelation && priceDiscTable.accountCode == accountCode && priceDiscTable.accountRelation == accountRelation && priceDiscTable.unitId == unitID && priceDiscTable.currency == currency && // priceDiscTable.InventDimId == _inventDimId && // все цены номенклатуры независит от конфигурации , только несколько номенклатур - от размера (discDate >= priceDiscTable.fromDate || ! priceDiscTable.fromDate) && (discDate <= priceDiscTable.toDate || ! priceDiscTable.toDate) { lSize2 = ( lSize ? false : true ); if ( _inventDimId != nullInvDim && _inventDimId && ( _inventDimId == priceDiscTable.InventDimId || priceDiscTable.InventDimId == "" || priceDiscTable.InventDimId == nullInvDim ) ) { // вот здесь поменял проверение конфигурации if (priceDiscTable.quantityAmount <= absQty) { if (priceDiscTable.price() >= 0 || priceDiscTable.markup()) { if (priceDiscTable.calcPriceAmount(absQty) < this.calcPriceAmount(absQty) || ! priceExist) { if ( nSize != 0 && priceDiscTable.UTSizeValue && ( ( priceDiscTable.UTSizeDirect == UTPriceDiff::UTLess && nSize <= priceDiscTable.UTSizeValue ) || ( priceDiscTable.UTSizeDirect == UTPriceDiff::UTMore && nSize > priceDiscTable.UTSizeValue ) ) ) lSize2 = true; // если есть размер - проверяем цену от размера ... if ( lSize2 ) { priceUnit = priceDiscTable.priceUnit(); price = priceDiscTable.price(); markup = priceDiscTable.markup(); deliveryDays = priceDiscTable.deliveryTime; actualPriceTable = priceDiscTable.data(); calendarDays = priceDiscTable.CalendarDays; priceExist = true; } } } } } if (! priceDiscTable.searchAgain) { idx = 9; break; } } } } idx += 1; } return priceExist; } Больше я нигде не менял . В Maps'ах совсем ничего не менял . Когда смотрю через дебуг , то поменяв PriceGroupId в SalesTable , всё хорошо . Ну там одна формичка запроса вскачивает , обновлят ли цены и даты . Может такого нехватает , когда меняю конфигурацию в SalesLine ? ( когда написал , пришла в голову такая идея - проверю ... ![]() ![]() С уважением , Римантас |
|