public async Task <Document> RegisterDocument(CostVM cost, int personId) { var documentNumber = await createNumberDocument(personId); Document document = new Document(); document.Credit = cost.Sum; document.Debit = cost.Sum; document.IsManual = false; document.Number = documentNumber; document.Number2 = documentNumber; document.Status = ZhivarEnums.DocumentStatus.TaeedShode; document.StatusString = "تایید شده"; document.DisplayDate = cost.DisplayDate; document.DateTime = PersianDateUtils.ToDateTime(cost.DisplayDate); document.Type = ZhivarEnums.NoeDoc.Cost; List <Transaction> transactions = new List <Transaction>(); document.Description = cost.Explain; transactions = await RegisterTransaction(document, cost, personId); document.Transactions = transactions; if (document.Transactions != null && document.Transactions.Any()) { var credit = document.Transactions.Sum(x => x.Credit); var debit = document.Transactions.Sum(x => x.Debit); document.Credit = credit; document.Debit = debit; } return(document); }
private void NewSport_Click(object sender, RoutedEventArgs e) { this.DataContext = CostModel = new CostVM(); action = Actions.Inserting; }
public async Task <List <Transaction> > RegisterTransaction(Document document, CostVM cost, int organId) { AccountRule accountRule = new AccountRule(); var accounts = await accountRule.GetAllByOrganIdAsync(organId); string contactCode = "2101" + cost.Contact.Code; var accountHesabPardakhtani = accounts.Where(x => x.ComplteCoding == contactCode).SingleOrDefault(); List <Transaction> transactions = new List <Transaction>(); transactions.Add(new Transaction() { AccountId = accountHesabPardakhtani.ID, ContactId = cost.Contact.ID, DocumentId = document.ID, CostId = cost.ID, //AccDocument = document, Account = accountHesabPardakhtani, Amount = cost.Sum, //Contact = cost.Contact, //Cost = cost, IsDebit = false, IsCredit = true, Debit = 0, Credit = cost.Sum, Description = document.Description, RowNumber = 1, DisplayDate = document.DisplayDate, Date = PersianDateUtils.ToDateTime(document.DisplayDate), }); foreach (var item in cost.CostItems) { var accoubtItem = new DomainClasses.Accounting.Account(); accoubtItem = accounts.Where(x => x.ComplteCoding == "8205").SingleOrDefault(); transactions.Add(new Transaction() { AccountId = accoubtItem.ID, ContactId = cost.Contact.ID, DocumentId = document.ID, CostId = cost.ID, //AccDocument = document, Account = accoubtItem, Amount = item.Sum, //Contact = cost.Contact, //Cost = cost, IsDebit = true, IsCredit = false, Debit = item.Sum, Credit = 0, Description = item.Description, //RowNumber = 1, DisplayDate = document.DisplayDate, Date = Utilities.PersianDateUtils.ToDateTime(document.DisplayDate), }); } return(transactions); }