public ShowTradeDocsModel(TradeBill bill) { TradeNumber = bill.TradeId; DocCreaDate = bill.CreateDate; Contract = bill.Contractt.ContractNumber; AddContract = bill.AddContractName; BillNumber = bill.BillName; SellerName = bill.Seller.LongName; SellerNameEng = bill.Seller.LongNameEng; BuyerName = bill.Buyer.LongName; BuyerNameEng = bill.Buyer.LongNameEng; Id = bill.Id; }
/// <summary> /// Прикручиваем счета на оплату /// </summary> /// <param name="tradeId">с какого торга </param> /// <param name="buyerId">кому</param> public void CreateBill(int tradeId, int buyerId) { try { var trade = _context.Trades.Find(tradeId); if (trade == null) { throw new ArgumentNullException("trade not found"); } var buyer = trade.Buyers.FirstOrDefault(c => c.Id == buyerId); if (buyer == null) { throw new ArgumentNullException("buyer"); } if (!buyer.Bets.Where(c => c.TradeId == tradeId).Any(c => c.IsActual || c.IsRedemption)) { throw new ArgumentException("buyer dont have winned bets"); } var contract = buyer?.BuyerContracts.FirstOrDefault(c => c.FromContragentId == trade.SellerId); if (contract == null) { logger.Info($"Договор для покупателя {buyer?.LongName} от продавца {trade.Seller.LongName}"); contract = new Contract(trade, buyer, $"{trade.DateBegin.ToString("yyMM-dd")}0{_context.Contracts.Count() + 1}/PTP-T"); _context.Insert(contract); } logger.Info($"счет для покупателя {buyer?.LongName} от продавца {trade.Seller.LongName}"); if (buyer.InBills.FirstOrDefault(c => c.TradeId == tradeId) == null) { var bill = new TradeBill(trade, buyer, contract, $"{_context.TradeBills.Count(c => c.ContracttId == contract.Id) + 1}", $"{_context.TradeBills.Count(c => c.ContracttId == contract.Id) + 1}"); _context.Insert(bill); } } catch (Exception ex) { logger.Error(ex); // throw; } }