21.10.2014, 10:51 | #1 |
Злыдни
|
Ошибка при выводе сведений о платеже (AX 2012)
Не знаю, в чью "светлую" голову пришло так выводить данные о платеже, но ...
(ниже выдержка из метода FactureJour_RU.getPaymentInfo()) X++: while (rst.next(custVendInvoiceJour)) { custVendTrans = custVendInvoiceJour.CustVendInvoiceJour::custVendTrans(custVendTrans); infolog.clear(); while select DocumentNum, TransDate from custVendTransPayment order by custVendTransPayment.DocumentNum where custVendTransPayment.DocumentNum exists join custVendSettlement where custVendSettlement.AccountNum == custVendTransPayment.AccountNum && custVendSettlement.OffsetTransVoucher == custVendTransPayment.Voucher && custVendSettlement.OffsetRecid == custVendTransPayment.Recid && custVendSettlement.TransCompany == custVendTrans.DataAreaId && custVendSettlement.TransRecId == custVendTrans.RecId && custVendSettlement.AccountNum == custVendTrans.AccountNum { docuNumSet.add(custVendTransPayment.DocumentNum); docDate = max(docDate, custVendTransPayment.TransDate); } } Т.е. вместо того, чтобы сравнить с пустой датой (забыли указать в платеже), и только в этом случае взять дату проводки, всегда берут максимальную. Клиент оплатил в пятницу, в выписке компании платеж прошел в понедельник, но пятничную дату в печатных формах я не получу.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
21.10.2014, 11:08 | #2 |
Участник
|
Мне кажется, тут в принципе подход найти максимальную дату из всех платежей.
Ну а в целом, достаточно спорный реквизит, один из первых кандидатов на переделку в рамках внедрения.
__________________
Ivanhoe as is.. |
|
21.10.2014, 12:41 | #3 |
Злыдни
|
Ну я бы понял, если бы вывелась максимальная дата из всех платежных документов. Т.е. сравнивать текущий docDate с DocumentDate каждого платежа. Но кто-то решил сравнение делать по TransDate место даты документа
X++: while select DocumentNum, DocumentDate from custVendTransPayment order by custVendTransPayment.DocumentNum where custVendTransPayment.DocumentNum exists join custVendSettlement where custVendSettlement.AccountNum == custVendTransPayment.AccountNum && custVendSettlement.OffsetTransVoucher == custVendTransPayment.Voucher && custVendSettlement.OffsetRecid == custVendTransPayment.Recid && custVendSettlement.TransCompany == custVendTrans.DataAreaId && custVendSettlement.TransRecId == custVendTrans.RecId && custVendSettlement.AccountNum == custVendTrans.AccountNum { docuNumSet.add(custVendTransPayment.DocumentNum); docDate = max(docDate, custVendTransPayment.DocumentDate); }
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|