private MoneyAction IncomeTrasactionForClient(InnerTransactionInsertDto dto, int mainCompayId, DateTime date, IncomeTransactionCollection incomeTransactionCollection) { int branchId = BranchHelper.Id; int treasuryId = _appSession.GetCurrentTreasuryId(); var transaction = new Transaction(); transaction.Reason = ""; transaction.SenderClient = GetClient(dto.Sender); transaction.SenderBranchId = branchId; transaction.ReceiverBranchId = branchId; transaction.TreaseryId = treasuryId; transaction.IncomeTransactionCollection = incomeTransactionCollection; switch (dto.TypeOfPay) { case TypeOfPay.Cash: { transaction.ReciverClient = GetClient(dto.ReciverClinet); transaction.TypeOfPay = TypeOfPay.Cash; transaction.Deliverd = false; } break; case TypeOfPay.ClientsReceivables: { transaction.ReciverClientId = dto.AgentId; transaction.ReciverClientCommission = dto.AgentCommission; transaction.TypeOfPay = TypeOfPay.ClientsReceivables; transaction.Deliverd = true; } break; case TypeOfPay.CompaniesReceivables: { transaction.SenderCompanyId = dto.ReciverCompany.CompanyId; transaction.SenderCompanyComission = dto.ReciverCompany.CompanyCommission; transaction.ReciverClient = GetClient(dto.ReciverCompany.ReciverClinet); transaction.TypeOfPay = TypeOfPay.CompaniesReceivables; transaction.Deliverd = true; } break; } transaction.CoinId = dto.CoinId; transaction.ReceiverCompanyId = mainCompayId; transaction.Amount = dto.Amount; transaction.TransactionType = TransactionType.ImportTransaction; //transaction.Note = note; transaction.OurComission = dto.OurComission; transaction.TransactionsStatus = TransactionStatus.NotNotified; transaction.CreatedBy = _appSession.GetUserName(); _unitOfWork.GenericRepository <Transaction>().Insert(transaction); var moneyAction = new MoneyAction(); moneyAction.Transaction = transaction; moneyAction.Date = date; moneyAction.CreatedBy = _appSession.GetUserName(); _unitOfWork.GenericRepository <MoneyAction>().Insert(moneyAction); return(moneyAction); }
private void MaiCompanyBalanceArbitrage(CompanyCash companyCash, InnerTransactionInsertDto dto, int mainCompanyId, MoneyAction moneyAction) { companyCash.Total -= (dto.Amount + dto.OurComission); companyCash.ModifiedBy = _appSession.GetUserName(); _unitOfWork.GenericRepository <CompanyCash>().Update(companyCash); var companyCahsFlow = new CompanyCashFlow() { CoinId = dto.CoinId, CompanyId = mainCompanyId, Total = companyCash.Total, Amount = -dto.Amount, Matched = false, MoenyAction = moneyAction }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCahsFlow); }
private void AgentBalnaceArbitrage(InnerTransactionInsertDto dto, MoneyAction moneyAction) { var clientCash = _unitOfWork.GenericRepository <ClientCash>() .FindBy(c => c.CoinId == dto.CoinId && c.ClientId == dto.AgentId) .FirstOrDefault(); clientCash.Total += dto.Amount; clientCash.Total += dto.AgentCommission; clientCash.ModifiedBy = _appSession.GetUserName(); _unitOfWork.GenericRepository <ClientCash>().Update(clientCash); var clientCashFlow = new ClientCashFlow() { ClientId = dto.AgentId, CoinId = dto.CoinId, Total = clientCash.Total, Amount = dto.Amount, Matched = false, MoenyAction = moneyAction }; _unitOfWork.GenericRepository <ClientCashFlow>().Insert(clientCashFlow); }
private void CompanyBlanceArbitrage(InnerTransactionInsertDto dto, MoneyAction moneyAction) { var companyCah = _unitOfWork.GenericRepository <CompanyCash>() .FindBy(c => c.CoinId == dto.CoinId && c.CompanyId == dto.ReciverCompany.CompanyId) .FirstOrDefault(); companyCah.Total += dto.Amount; companyCah.Total += dto.ReciverCompany.CompanyCommission; companyCah.ModifiedBy = _appSession.GetUserName(); _unitOfWork.GenericRepository <CompanyCash>().Update(companyCah); var companyCahsFlow = new CompanyCashFlow() { MoenyAction = moneyAction, Total = companyCah.Total, Amount = dto.Amount + dto.ReciverCompany.CompanyCommission, Matched = false, CompanyId = dto.ReciverCompany.CompanyId, CoinId = dto.CoinId, CreatedBy = _appSession.GetUserName() }; _unitOfWork.GenericRepository <CompanyCashFlow>().Insert(companyCahsFlow); }