示例#1
0
        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);
        }
示例#2
0
 private void NewSport_Click(object sender, RoutedEventArgs e)
 {
     this.DataContext = CostModel = new CostVM();
     action           = Actions.Inserting;
 }
示例#3
0
        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);
        }