Sorry;
public virtual void Calculate(CalculationMethod method)
{
if (DocumentType.Equals(DocumentType.PosProceedsVoucher))
{
if (Pos!=null)
{
Cash = Pos.Partner;
}
}
if (method.Equals(CalculationMethod.Currency))
{
LocalAmount = Amount*ExchangeRate;
AccountAmount = LocalAmount/AccountExchangeRate;
}
else if (method.Equals(CalculationMethod.LocalCurrency))
{
Amount = LocalAmount / ExchangeRate;
AccountAmount = LocalAmount/AccountExchangeRate;
}
else if (method.Equals(CalculationMethod.AccountCurrency))
{
LocalAmount = AccountAmount * AccountExchangeRate;
Amount = LocalAmount / ExchangeRate;
}
if (DocumentType.Equals(DocumentType.CreditCardPaymentVoucher))
{
Transactions.Clear();
if (CreditCard!=null)
{
Cash = CreditCard.Partner;
}
var installmentAmount = Amount / Installment;
var installmentDate = PaymentDate;
for (int i = 0; i < Installment; i++)
{
PartnerTransaction receivableTransaction = new
PartnerTransaction();
receivableTransaction.Partner = Cash;
receivableTransaction.Receivable = installmentAmount;
receivableTransaction.LocalReceivable =
installmentAmount * ExchangeRate;
receivableTransaction.Currency = Currency;
receivableTransaction.LocalCurrency = LocalCurrency;
//receivableTransaction.Payment = this;
receivableTransaction.TransactionDateTime = PaymentDate;
receivableTransaction.ExchangeRate = ExchangeRate;
receivableTransaction.Expiry = installmentDate;
Transactions.Add(receivableTransaction);
installmentDate = installmentDate.AddMonths(1);
}
PartnerTransaction debtTransaction = new
PartnerTransaction();
debtTransaction.Partner = Partner;
debtTransaction.Debt = AccountAmount;
debtTransaction.LocalDebt = LocalAmount;
debtTransaction.Currency = AccountCurrency;
debtTransaction.LocalCurrency = LocalCurrency;
//debtTransaction.Payment = this;
debtTransaction.TransactionDateTime = PaymentDate;
debtTransaction.ExchangeRate = ExchangeRate;
debtTransaction.Expiry = DateTime.Today;
Transactions.Add(debtTransaction);
}
Save();
}
public virtual M Save()
{
bool isCurrentActivatedTransaction = false;
try
{
OnBeforeSave();
if (!Session.Transaction.IsActive)
{
BeginTransaction();
isCurrentActivatedTransaction = true;
}
try
{
Session.SaveOrUpdate(this);
}
catch (NonUniqueObjectException)
{
Session.Merge(this);
}
if (isCurrentActivatedTransaction)
{
Commit();
}
try
{
Session.Refresh(this);
}
catch (Exception)
{
}
OnAfterSave();
}
catch (Exception)
{
if (isCurrentActivatedTransaction)
{
Rollback();
}
throw;
}
return (M)Convert.ChangeType(this, typeof(M));
}
2014-06-17 13:51 GMT+03:00 Ricardo Peres <[email protected]>:
> What code are you using?
>
> RP
>
>
> On Tuesday, June 17, 2014 10:53:36 AM UTC+1, Atilla İlhan KARTAL wrote:
>>
>> Dear All;
>>
>> When i recreate a collection in Payment Entity saveOrUpdate method
>> throwed this exception. My Releation Mappings is AllDeleteOrphan but i dont
>> resolve this problem.
>>
>> I am working on this error two days ago. I'm going crazy :'(
>>
>> I tested this solution method.
>>
>> 1- Manual handle cascade operation.
>> a-Delete exists PartnerTransactions on before save
>> b-Save Payment entity
>> c- Save new PartnerTransactions
>>
>> but throw object references an unsaved transient instance - save the
>> transient instance before merge.
>>
>> What do you think about it.?
>>
>> object references an unsaved transient instance - save the transient
>> instance before flushing or set cascade action for the property to
>> something that would make it autosave. Type:
>> Core.PartnerManagement.PartnerTransaction,
>> Entity: Core.PartnerManagement.PartnerTransaction
>>
>>
>> public class PaymentMap : ClassMap<Payment>
>> {
>> public PaymentMap()
>> {
>> Table("SALES_TB_PAYMENT");
>> SchemaAction.None();
>> Id(x => x.ID, "ID").GeneratedBy.Identity();
>> Map(x => x.PaymentDate, "PaymentDate");
>> Map(x => x.Serial, "Serial");
>> Map(x => x.DocumentNumber, "DocumentNumber");
>> References(x => x.Partner, "PartnerId");
>> References(x => x.Cash, "CashId");
>> References(x => x.Pos, "PosId");
>> References(x => x.DocumentType, "DocumentTypeId");
>> Map(x => x.Description, "Description");
>>
>> Map(x => x.ExchangeRate, "ExchangeRate");
>> Map(x => x.AccountExchangeRate, "AccountExchangeRate");
>> Map(x => x.Amount, "Amount");
>> Map(x => x.AccountAmount, "AccountAmount");
>> Map(x => x.LocalAmount, "LocalAmount");
>> Map(x => x.BankSEQ, "BankSEQ");
>> References(x => x.Bank, "BankId");
>> Map(x => x.IBAN, "IBAN");
>> Map(x => x.AccountNo, "AccountNo");
>> Map(x => x.BankBranch, "BankBranch");
>> Map(x => x.ReferenceNo, "ReferenceNo");
>> Map(x => x.SlipNo, "SlipNo");
>> Map(x => x.RewardAmount, "RewardAmount");
>> Map(x => x.ComissionRate, "ComissionRate");
>> Map(x => x.ComissionAmount, "ComissionAmount");
>> Map(x => x.LocalComissionAmount, "LocalComissionAmount");
>> Map(x => x.Installment, "Installment");
>>
>> References(x => x.Currency, "CurrencyId");
>> References(x => x.LocalCurrency, "LocalCurrencyId");
>> References(x => x.AccountCurrency, "AccountCurrencyId");
>> References(x => x.CreditCard, "CreditCardId");
>> HasMany(x => x.Transactions)
>> .KeyColumn("PaymentId")
>> .Cascade.AllDeleteOrphan()
>> .AsBag();
>> }
>> }
>>
>>
>> public class PartnerTransactionMap : ClassMap<PartnerTransaction>
>> {
>> public PartnerTransactionMap()
>> {
>> Table("CORE_TB_PARTNERTRANSACTION");
>> SchemaAction.None();
>> Id(x => x.ID, "ID").GeneratedBy.Identity().
>> UnsavedValue(0L);
>> Map(x => x.TransactionDateTime, "TransactionDateTime");
>> References(x => x.Partner, "PartnerId");
>> References(x => x.Currency, "CurrencyId");
>> References(x => x.LocalCurrency, "LocalCurrencyId");
>> Map(x => x.ExchangeRate, "ExchangeRate");
>> Map(x => x.Debt, "Debt");
>> Map(x => x.Receivable, "Receivable");
>> Map(x => x.LocalDebt, "LocalDebt");
>> Map(x => x.LocalReceivable, "LocalReceivable");
>> Map(x => x.IsLock, "IsLock");
>> Map(x => x.Expiry, "Expiry");
>> Map(x => x.OpenBalance, "OpenBalance");
>> Map(x => x.LocalOpenBalance, "LocalOpenBalance");
>> References(x => x.Invoice, "InvoiceId");
>> References(x => x.Payment, "PaymentId");
>> References(x => x.Voucher, "VoucherId");
>> }
>> }
>>
>> --
>> Atilla İlhan KARTAL
>> Web Application & Software Architect
>> (Java & PHP & Registered Android Developer)
>> Kuşadası / Aydın / Turkey
>> www.atillailhankartal.com.tr
>> twitter.com/TrojanMyth
>>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/nhusers.
> For more options, visit https://groups.google.com/d/optout.
>
--
Atilla İlhan KARTAL
Web Application & Software Architect
(Java & PHP & Registered Android Developer)
Kuşadası / Aydın / Turkey
www.atillailhankartal.com.tr
twitter.com/TrojanMyth
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.