29.08.2003, 13:46 | #1 |
Microsoft Dynamics
|
Вопрос для EGLA - корреспонденция в 2.5
Женя, извини за беспокойство, но ты опять оставил следы, так что обращаюсь к тебе.
В методе updateTmpBondByRecId() класса LedgerBondServer_RU находим следующий код : // EGLA, PTR 2051 // Compress these links // X.RecIdX - Y.0 // Y.0 - Z.RecIdZ while select tmpBond outer join equalTmpBond where tmpBond.AmountCurCredit == equalTmpBond.AmountCurCredit && tmpBond.AmountCurDebit == equalTmpBond.AmountCurDebit && tmpBond.AmountMST == equalTmpBond.AmountMST && tmpBond.AmountMSTSecondary == equalTmpBond.AmountMSTSecondary && tmpBond.RecId != equalTmpBond.RecId { if (! tmpBond || ! equalTmpBond) continue; debitVRef = this.getVRef(tmpBond.DebitRef); creditVRef = this.getVRef(tmpBond.CreditRef); equalDebitVRef = this.getVRef(equalTmpBond.DebitRef); equalCreditVRef = this.getVRef(equalTmpBond.CreditRef); if (! debitVRef.getLedgerTransRecId() && creditVRef.getLedgerTransRecId() && equalDebitVRef.getLedgerTransRecId() && ! equalCreditVRef.getLedgerTransRecId() && LedgerBondVRef_RU::equals(debitVRef, equalCreditVRef)) { tmpBond.DebitRef = equalDebitVRef.getId(); tmpBond.update(); equalTmpBond.delete(); } if (debitVRef.getLedgerTransRecId() && ! creditVRef.getLedgerTransRecId() && ! equalDebitVRef.getLedgerTransRecId() && equalCreditVRef.getLedgerTransRecId() && LedgerBondVRef_RU::equals(creditVRef, equalDebitVRef)) { tmpBond.CreditRef = equalCreditVRef.getId(); tmpBond.update(); equalTmpBond.delete(); } } Вопрос - какие ссылки тут "compress" и зачем? |
|
29.08.2003, 14:27 | #2 |
Banned
|
Точно уже не помню, но "PTR 2051" должен потдвердить или опровергнуть следующее:
в ряде случаев (при нулевой себестоимости возврата товара по заказу?) после корреспонденции остаются взаимосогласованные нулевые проводки по кредиту и по дебету, которые не записываются в БД, а корреспондирующие с ними должны на самом деле корреспондировать между собой. Такая ситуация сама по себе плохая, но и еще вызывает ошибку, поскольку алгоритм корреспонденции уверен, что нулевые проводки существуют в базе. Данный код призван устранить самый простой и часто встречающийся случай, когда нулевые проводки идут парами. В версии 3.0 эта ошибка явилась одной из предпосылок к полной переделке кода. |
|
29.08.2003, 14:41 | #3 |
Microsoft Dynamics
|
Спасибо. Постараюсь уточнить, что было в этом PT 2051. Если это такой экзотический случай, то это хорошо
|
|