public Task <int> UpdateAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var query = @"
UPDATE ar
   SET ar.TransferOutputAt  = @UpdateAt
  FROM AdvanceReceivedBackup ar
 WHERE ar.CompanyId         = @CompanyId
   AND ar.CurrencyId        = @CurrencyId
   AND ar.TransferOutputAt  IS NULL
   AND EXISTS (
       SELECT 1
         FROM Receipt r
        WHERE r.OriginalReceiptId   = ar.OriginalReceiptId
          AND r.CompanyId           = @CompanyId
          AND r.CurrencyId          = @CurrencyId
          AND r.OutputAt            = @UpdateAt";

            if (option.RecordedAtFrom.HasValue)
            {
                query += @"
          AND r.RecordedAt         >= @RecordedAtFrom";
            }
            if (option.RecordedAtTo.HasValue)
            {
                query += @"
          AND r.RecordedAt         <= @RecordedAtTo";
            }
            query += @" )
";
            return(dbHelper.ExecuteAsync(query, option, token));
        }
Example #2
0
        public Task <int> UpdateAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var query = $@"
UPDATE re
   SET re.OutputAt      = @UpdateAt
     , re.UpdateAt      = @UpdateAt
     , re.UpdateBy      = @LoginUserId
  FROM ReceiptExclude re
 INNER JOIN Receipt r
    ON r.Id             = re.ReceiptId
   AND r.CompanyId      = @CompanyId
   AND r.CurrencyId     = @CurrencyId
   AND r.Apportioned    = 1
   AND r.Approved       = 1
   AND re.OutputAt      IS NULL
";

            if (option.RecordedAtFrom.HasValue)
            {
                query += @"
   AND r.RecordedAt >= @RecordedAtFrom";
            }
            if (option.RecordedAtTo.HasValue)
            {
                query += @"
   AND r.RecordedAt <= @RecordedAtTo";
            }
            return(dbHelper.ExecuteAsync(query, option, token));
        }
        public Task <int> UpdateAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var query = @"
UPDATE r
   SET r.OutputAt               = @UpdateAt
     , r.UpdateAt               = @UpdateAt
     , r.UpdateBy               = @LoginUserId
  FROM Receipt r
 INNER JOIN Category ct
    ON ct.Id                    = r.ReceiptCategoryId
   AND ct.UseAdvanceReceived    = 1
   AND r.CompanyId              = @CompanyId
   AND r.CurrencyId             = @CurrencyId
   AND r.Apportioned            = 1
   AND r.Approved               = 1
   AND r.OutputAt               IS NULL
   AND r.DeleteAt               IS NULL
";

            if (option.RecordedAtFrom.HasValue)
            {
                query += @"
AND r.RecordedAt >= @RecordedAtFrom";
            }
            if (option.RecordedAtTo.HasValue)
            {
                query += @"
AND r.RecordedAt <= @RecordedAtTo";
            }
            return(dbHelper.ExecuteAsync(query, option, token));
        }
Example #4
0
 public async Task <CountResult> CancelAsync(string SessionKey, JournalizingOption option)
 => await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token => {
     var result = await hatarakuDBJournalizingProcessor.CancelAsync(option, token);
     return(new CountResult {
         ProcessResult = new ProcessResult {
             Result = true
         },
         Count = result,
     });
 }, logger);
Example #5
0
 public async Task <HatarakuDBDataResult> ExtractAsync(string SessionKey, JournalizingOption option)
 => await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token => {
     var result = await hatarakuDBJournalizingProcessor.ExtractAsync(option, token);
     return(new HatarakuDBDataResult
     {
         ProcessResult = new ProcessResult {
             Result = true
         },
         HatarakuDBData = result.ToList(),
     });
 }, logger);
Example #6
0
 public async Task <CountResult> UpdateOutputAtAsync(string SessionKey, JournalizingOption option)
 => await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token =>
 {
     var count = await receiptJournalizingProcessor.UpdateOutputAtAsync(option, token);
     return(new CountResult
     {
         ProcessResult = new ProcessResult {
             Result = true
         },
         Count = count,
     });
 }, logger);
Example #7
0
        public async Task <int> CancelJournalizingAsync(JournalizingOption option,
                                                        CancellationToken token = default(CancellationToken))
        {
            using (var scope = transactionScopeBuilder.Create())
            {
                var count = await updateReceiptJournalizingQueryProcessor.CancelAsync(option, token);

                if (count > 0)
                {
                    scope.Complete();
                }
                return(count);
            }
        }
Example #8
0
        public Task <IEnumerable <JournalizingSummary> > GetSummaryAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var query = @"
SELECT r.OutputAt
     , Count(*) [Count]
     , ccy.Code [CurrencyCode]
     , SUM( r.ReceiptAmount ) [Amount]
     , MAX( r.UpdateAt      ) [UpdateAt]
  FROM Receipt r
 INNER JOIN Currency ccy
    ON ccy.Id                   = r.CurrencyId
   AND r.CompanyId              = @CompanyId
   AND r.CurrencyId             = @CurrencyId
   AND r.Apportioned            = 1
   AND r.Approved               = 1
   AND r.DeleteAt               IS NULL";

            if (!option.IsOutputted)
            {
                query += @"
   AND r.OutputAt               IS NULL ";
            }
            else
            {
                query += @"
   AND r.OutputAt               IS NOT NULL ";
            }
            if (option.RecordedAtFrom.HasValue)
            {
                query += @"
   AND r.RecordedAt             >= @RecordedAtFrom ";
            }
            if (option.RecordedAtTo.HasValue)
            {
                query += @"
   AND r.RecordedAt             <= @RecordedAtTo ";
            }
            query += @"
 INNER JOIN Category ct
    ON ct.Id                    =  r.ReceiptCategoryId
   AND ct.UseAdvanceReceived    = 0
 GROUP BY r.OutputAt, ccy.Code
 ORDER BY r.OutputAt DESC
";
            return(dbHelper.GetItemsAsync <JournalizingSummary>(query, option, token));
        }
        public Task <IEnumerable <JournalizingSummary> > GetSummaryAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var matchingCondition = (option.IsOutputted)
                ? @"    AND m.OutputAt     IS NOT NULL"
                : @"    AND m.OutputAt     IS     NULL";

            if (option.RecordedAtFrom.HasValue)
            {
                matchingCondition += @"
         AND m.RecordedAt       >= @RecordedAtFrom";
            }
            if (option.RecordedAtTo.HasValue)
            {
                matchingCondition += @"
         AND m.RecordedAt       <= @RecordedAtTo";
            }
            var query = $@"
SELECT t.OutputAt
     , COUNT(*)             [Count]
     , SUM( t.Amount   )    [Amount]
     , MAX( t.UpdateAt )    [UpdateAt]
FROM (
      SELECT m.OutputAt
           , m.BillingId
           , SUM( m.Amount   ) [Amount]
           , MAX( m.UpdateAt ) [UpdateAt]
        FROM MatchingHeader mh
       INNER JOIN Matching m
          ON mh.Id            = m.MatchingHeaderId
         AND mh.CompanyId     = @CompanyId
         AND mh.CurrencyId    = @CurrencyId
         AND mh.Approved      = 1
{matchingCondition}
       GROUP BY
             m.OutputAt
           , m.BillingId
       ) t
 GROUP BY OutputAt
 ORDER BY OutputAt DESC";

            return(dbHelper.GetItemsAsync <JournalizingSummary>(query, option, token));
        }
        public async Task <int> UpdateAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var count = 0;

            using (var scope = transactionScopeBuilder.Create())
            {
                option.UpdateAt = await dbSystemDateTimeQueryProcessor.GetAsync(token);

                count += await updateMatchingJournalizingQueryProcessor.UpdateAsync(option, token);

                count += await updateReceiptMatchingJournalizingQueryProcessor.UpdateAsync(option, token);

                count += await updateAdvanceReceivedBackupJournaliginzQueryProcessor.UpdateAsync(option, token);

                count += await updateReceiptExcludeJournalizingQueryProcessor.UpdateAsync(option, token);

                scope.Complete();
            }
            return(count);
        }
        public Task <IEnumerable <HatarakuDBData> > ExtractAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var conditionMatching = (option.OutputAt == null || !option.OutputAt.Any())
                ? " AND m.OUtputAt IS NULL"
                : " AND m.OutputAt IN @OutputAt";

            if (option.RecordedAtFrom.HasValue)
            {
                conditionMatching += @"
         AND m.RecordedAt   >= @RecordedAtFrom";
            }
            if (option.RecordedAtTo.HasValue)
            {
                conditionMatching += @"
         AND m.RecordedAt   <= @RecordedAtTo";
            }

            var query = $@"
SELECT b.[InvoiceCode]
     , t.[RecordedAt]
     , b.[AssignmentAmount]
     , b.[BillingAmount]
FROM (
      SELECT m.BillingId
           , MAX( m.RecordedAt ) [RecordedAt]
        FROM MatchingHeader mh
       INNER JOIN Matching m
          ON mh.Id            = m.MatchingHeaderId
         AND mh.CompanyId     = @CompanyId
         AND mh.CurrencyId    = @CurrencyId
         AND mh.Approved      = 1
{conditionMatching}
       GROUP BY m.BillingId
       ) t
 INNER JOIN Billing b       ON b.Id     = t.BillingId
 ORDER BY b.Id";

            return(dbHelper.GetItemsAsync <HatarakuDBData>(query, option, token));
        }
Example #12
0
        public async Task <int> CancelAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            if (!(option.OutputAt?.Any() ?? false))
            {
                return(0);
            }
            var query = @"
UPDATE re
   SET re.OutputAt      = NULL
     , re.UpdateAt      = @UpdateAt
     , re.UpdateBy      = @LoginUserId
  FROM ReceiptExclude re
 INNER JOIN Receipt r
    ON r.Id             = re.ReceiptId
   AND r.CompanyId      = @CompanyId
   AND r.CurrencyId     = @CurrencyId
   AND r.Apportioned    = 1
   AND r.Approved       = 1
   AND re.OutputAt      IN @OutputAt
";

            return(await dbHelper.ExecuteAsync(query, option, token));
        }
        public async Task <byte[]> GetAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var companyTask = companyQueryProcessor.GetAsync(new CompanySearch {
                Id = option.CompanyId,
            }, token);
            var appConTask = applicationControlGetByCompanyQueryProcessor.GetAsync(option.CompanyId, token);
            var nameTask   = columnNameSettingQueryProcessor.GetAsync(new ColumnNameSetting {
                CompanyId = option.CompanyId, TableName = nameof(Receipt),
            }, token);
            var loadTask = receiptJournalizingQueryProcessor.ExtractAsync(option, token);

            await Task.WhenAll(companyTask, appConTask, nameTask, loadTask);

            var company = companyTask.Result.First();
            var appCon  = appConTask.Result;
            var naming  = nameTask.Result.ToList();
            var items   = loadTask.Result.ToList();

            if (!items.Any())
            {
                return(null);
            }

            var report = new ReceiptJournalizingSectionReport();

            var reoutput = option.OutputAt?.Any() ?? false;
            var fileName = $"{(reoutput ? "再出力" : "")}入金仕訳{DateTime.Now:yyyyMMdd_HHmmss}";

            report.SetBasicPageSetting(company.Code, company.Name);
            report.Name = fileName;
            report.SetData(items, option.Precision, appCon.UseForeignCurrency == 1, naming);

            report.Run();

            return(report.Convert());
        }
Example #14
0
        public Task <int> CancelAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            var query = @"
UPDATE r
   SET r.OutputAt = NULL
     , r.UpdateAt = GETDATE()
     , r.UpdateBy = @LoginUserId
  FROM Receipt r 
 INNER JOIN Category ct
    ON ct.Id                    = r.ReceiptCategoryId
   AND r.CompanyId              = @CompanyId
   AND r.OutputAt               IN @OutputAt
   AND r.Apportioned            = 1
   AND r.Approved               = 1
   AND r.DeleteAt               IS NULL
   AND ct.UseAdvanceReceived = 0 ";

            if (option.CurrencyId != 0)
            {
                query += @"
   AND r.CurrencyId             = @CurrencyId";
            }
            return(dbHelper.ExecuteAsync(query, option, token));
        }
        public async Task <int> CancelAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            if (option.OutputAt == null)
            {
                option.OutputAt = new List <DateTime>();
            }
            var query = @"
UPDATE ar
   SET ar.TransferOutputAt = NULL
  FROM AdvanceReceivedBackup ar
 WHERE ar.CompanyId         = @CompanyId
   AND ar.CurrencyId        = @CurrencyId
   AND ar.TransferOutputAt IN @OutputAt
   AND EXISTS (
       SELECT 1
         FROM Receipt r
        WHERE CompanyId             = @CompanyId
          AND r.CurrencyId          = @CurrencyId
          AND r.OriginalReceiptId   = ar.OriginalReceiptId
          AND r.OutputAt            IS NULL )
";

            return(await dbHelper.ExecuteAsync(query, option, token));
        }
        public async Task <int> CancelAsync(JournalizingOption option, CancellationToken token = default(CancellationToken))
        {
            if (option.OutputAt == null)
            {
                option.OutputAt = new List <DateTime>();
            }
            var query = @"
UPDATE r
   SET r.OutputAt               = NULL
     , r.UpdateAt               = @UpdateAt
     , r.UpdateBy               = @LoginUserId
  FROM Receipt r
 INNER JOIN Category ct
    ON ct.Id                    = r.ReceiptCategoryId
   AND r.CompanyId              = @CompanyId
   AND r.CurrencyId             = @CurrencyId
   AND ct.UseAdvanceReceived    = 1
   AND r.Apportioned            = 1
   AND r.Approved               = 1
   AND r.OutputAt               IN @OutputAt
";

            return(await dbHelper.ExecuteAsync(query, option, token));
        }
Example #17
0
 public async Task <ActionResult <int> > CancelMatchingJournalizing(JournalizingOption option, CancellationToken token)
 => await matchingJournalizingProcessor.CancelAsync(option, token);
Example #18
0
 public async Task <ActionResult <int> > CancelMatchingJournalizingR(JournalizingOption option)
 => await hubContext.DoAsync(async token => await matchingJournalizingProcessor.CancelAsync(option, token));
Example #19
0
 public async Task <ActionResult <int> > UpdateOutputAt(JournalizingOption option, CancellationToken token)
 => await matchingJournalizingProcessor.UpdateAsync(option, token);
Example #20
0
 public async Task <ActionResult <int> > UpdateOutputAtR(JournalizingOption option)
 => await hubContext.DoAsync(async token => await matchingJournalizingProcessor.UpdateAsync(option, token));
Example #21
0
 public async Task<MatchingJournalizingProcessResult> CancelMatchingJournalizingAsync(string SessionKey, JournalizingOption option)
     => await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token =>
     {
         await matchingJournalizingProcessor.CancelAsync(option, token);
         return new MatchingJournalizingProcessResult { ProcessResult = new ProcessResult { Result = true } };
     }, logger);
 public async Task <ActionResult <int> > CancelAsync(JournalizingOption option)
 => await hatarakuDBJournalizingProcessor.CancelAsync(option);
 public async Task <ActionResult <IEnumerable <HatarakuDBData> > > ExtractAsync(JournalizingOption option)
 => (await hatarakuDBJournalizingProcessor.ExtractAsync(option)).ToArray();
Example #24
0
 public async Task <ActionResult <IEnumerable <MatchingJournalizing> > > MFExtractMatchingJournalizingR(JournalizingOption option)
 => await hubContext.DoAsync(async token
                             => (await matchingJournalizingProcessor.MFExtractAsync(option, token)).ToArray());
Example #25
0
 public async Task <ActionResult <IEnumerable <MatchingJournalizing> > > MFExtractMatchingJournalizing(JournalizingOption option, CancellationToken token)
 => (await matchingJournalizingProcessor.MFExtractAsync(option, token)).ToArray();
Example #26
0
 public async Task <ActionResult <IEnumerable <JournalizingSummary> > > GetMatchingJournalizingSummary(JournalizingOption option, CancellationToken token)
 => (await matchingJournalizingProcessor.GetSummaryAsync(option, token)).ToArray();
Example #27
0
 public async Task<JournalizingSummariesResult> GetMatchingJournalizingSummaryAsync(string SessionKey, JournalizingOption option)
     => await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token =>
     {
         var result = await matchingJournalizingProcessor.GetSummaryAsync(option, token);
         return new JournalizingSummariesResult
         {
             ProcessResult = new ProcessResult { Result = true },
             JournalizingsSummaries = result.ToList(),
         };
     }, logger);
Example #28
0
 public async Task <ActionResult <IEnumerable <MatchedReceipt> > > GetMatchedReceiptR(JournalizingOption option)
 => await hubContext.DoAsync(async token
                             => (await matchingJournalizingProcessor.GetMatchedReceiptAsync(option, token)).ToArray());
Example #29
0
 public async Task<MatchingJournalizingsResult> MFExtractMatchingJournalizingAsync(string SessionKey, JournalizingOption option)
     => await authorizationProcessor.DoAuthorizeAsync(SessionKey, async token =>
     {
         var result = await matchingJournalizingProcessor.MFExtractAsync(option, token);
         return new MatchingJournalizingsResult
         {
             ProcessResult = new ProcessResult { Result = true },
             MatchingJournalizings = result.ToList(),
         };
     }, logger);
Example #30
0
 public async Task <ActionResult <IEnumerable <MatchedReceipt> > > GetMatchedReceipt(JournalizingOption option, CancellationToken token)
 => (await matchingJournalizingProcessor.GetMatchedReceiptAsync(option, token)).ToArray();