Ejemplo n.º 1
0
        internal static void Payoff(Account account, Guid currencyId, Guid userId, TerminateData terminateData)
        {
            PhysicalOrder order = (PhysicalOrder)account.GetOrder(terminateData.OrderId);

            if (order.PhysicalTradeSide != iExchange.Common.PhysicalTradeSide.Buy)
            {
                return;
            }
            order.PaidPledgeBalance = -order.PhysicalOriginValueBalance;
            foreach (var eachInstalmentItem in order.Instalment.InstalmentDetails)
            {
                eachInstalmentItem.UpdateByPrePay(0, 0, 0, DateTime.Now, DateTime.Now, userId, order.LotBalance);
            }
            Guid    sourceCurrencyId = terminateData.SourceCurrencyId != Guid.Empty ? terminateData.SourceCurrencyId : currencyId;
            decimal value            = -(terminateData.SourceAmount + terminateData.SourceTerminateFee);

            order.AddBill(new Bill(account.Id, sourceCurrencyId, value, Protocal.BillType.PrePay, BillOwnerType.Order, DateTime.Now));
            account.AddBalance(sourceCurrencyId, value, null);
            account.CalculateRiskData();
        }
Ejemplo n.º 2
0
 TransactionError ISystemController.PrePayoff(Guid submitorId, Guid accountId, Guid currencyId, decimal sumSourcePaymentAmount, decimal sumSourceTerminateFee, TerminateData terminateData)
 {
     return(this.Server.PrePayoff(submitorId, accountId, currencyId, sumSourcePaymentAmount, sumSourceTerminateFee, terminateData));
 }
Ejemplo n.º 3
0
 TransactionError ITransactionServerService.InstalmentPayoff(Guid submitorId, Guid accountId, Guid currencyId, decimal sumSourcePaymentAmount, decimal sumSourceTerminateFee, TerminateData terminateData)
 {
     return(this.Server.PrePayoff(submitorId, accountId, currencyId, sumSourcePaymentAmount, sumSourceTerminateFee, terminateData));
 }