예제 #1
0
        public async Task UpdateJournalEntryDocumentUnit(JournalEntryDocumentInputUnit input)
        {
            var journalEntryDocumentUnit =
                await _journalEntryDocumentUnitRepository.GetAsync(input.AccountingDocumentId);

            Mapper.Map(input, journalEntryDocumentUnit);
            await _journalEntryDocumentUnitManager.UpdateAsync(journalEntryDocumentUnit);

            if (!ReferenceEquals(input.JournalEntryDetailList, null))
            {
                await JournalEntryDetails(input.JournalEntryDetailList.OrderByDescending(u => u.Amount).ToList());
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            if (journalEntryDocumentUnit.JournalTypeId == JournalType.RecurringEntries)
            {
                await _recurringJobManager.AddOrUpdateAsync <JournalEntryBackGroundJob, BackgroundJobInput <long> >(
                    $"RecurringJournalID{input.AccountingDocumentId}",
                    new BackgroundJobInput <long>() { Id = input.AccountingDocumentId, tenantId = journalEntryDocumentUnit.TenantId }, input.CronExpression,
                    BackgroundJobPriority.Normal);
            }
            else
            {
                _recurringJobManager.DeleteJob($"RecurringJournalID{journalEntryDocumentUnit.Id}");
            }
        }
예제 #2
0
        public async Task <IdOutputDto <long> > CreateJournalEntryDocumentUnit(JournalEntryDocumentInputUnit input)
        {
            var journalEntryDocumentUnit = new JournalEntryDocumentUnit();

            Mapper.Map(input, journalEntryDocumentUnit);
            var accountDocumentId = await _journalEntryDocumentUnitManager.CreateAsync(journalEntryDocumentUnit);

            if (!ReferenceEquals(input.JournalEntryDetailList, null))
            {
                input.JournalEntryDetailList.ForEach(u => u.AccountingDocumentId = accountDocumentId);
                await JournalEntryDetails(input.JournalEntryDetailList.OrderByDescending(u => u.Amount).ToList());
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            if (journalEntryDocumentUnit.JournalTypeId == JournalType.RecurringEntries)
            {
                //await Helper.GetCron("x");
                await _recurringJobManager.AddOrUpdateAsync <JournalEntryBackGroundJob, BackgroundJobInput <long> >(
                    $"RecurringJournalID{accountDocumentId}",
                    new BackgroundJobInput <long>() { Id = accountDocumentId, tenantId = journalEntryDocumentUnit.TenantId }, input.CronExpression,
                    BackgroundJobPriority.Normal);
            }
            return(new IdOutputDto <long>()
            {
                Id = accountDocumentId
            });
        }