И снова здравствуйте, любители сопоставлений! Оказывается, просто замена дебетовой проводки на кредитовую чинит одно, но ломает другое. Оказывается, нужно там еще передать валюту из ДЕБЕТОВОЙ проводки. Вот так:
X++:
// </GEEU>
// BugFix 26.12.12 -->
//custVendTransDebit,
custVendTransCredit,
// BugFix 26.12.12 <--
this.amount(_settleAmountCurDebit),
custVendTransSettlement,
settlementGroupPlaceHolder,
custVendTransCredit.Dimension,
custVendTransCredit.PostingProfile,
LedgerTransTxt::Settlement,
/* <SYS>
this.amount(_settleAmountMstDebit));
}
else
{
CustVendSettle_Vend::postingProfileSettle(ledgerVoucher,
</SYS> */
// <GEEU>
this.amount(closeAmountMST)
// BugFix 19.02.13 -->
, 0
, custVendTransDebit.CurrencyCode); !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// BugFix 19.02.13 <--
по аналогии как в
X++:
if (reversePrepayment)
{
CustVendSettle::postingProfileSettle_RU(ledgerVoucher,
custVendTransDebit,
this.amount(_settleAmountCurCredit),
custVendTransSettlement,
settlementGroupPlaceHolder,
custVendTransDebit.Dimension,
custVendTransDebit.PostingProfile,
LedgerTransTxt::Settlement,
this.amount(- closeAmountMST),
0,
custVendTransCredit.CurrencyCode); !!!!!!!!!!!!!!! :)
CustVendSettle::postingProfileSettle_RU(ledgerVoucher,
custVendTransCredit,
this.amount(-_settleAmountCurCredit),
custVendTransSettlement,
settlementGroupPlaceHolder,
custVendTransCredit.Dimension,
custVendTransCredit.PostingProfile,
LedgerTransTxt::Settlement,
this.amount(closeAmountMST));
Фишка вот в чем, если сопоставляются две проводки в разных валютах, то Аксапта из Евро(например) с неправильно подсунутой валютой пытается перевести опять в Евро