예제 #1
0
        public async Task SendReceipt(Invoice invoice, PaymentEvent payment, SendInvoiceModel model)
        {
            await _emailService.SendReceipt(invoice, payment);

            invoice.Status = Invoice.StatusCodes.Sent;
            invoice.Sent   = true;
            invoice.SentAt = DateTime.UtcNow;
        }
예제 #2
0
        public async Task SendInvoice(Invoice invoice, SendInvoiceModel model)
        {
            // don't reset the key if it's already live
            if (!invoice.Sent)
            {
                SetInvoiceKey(invoice);
            }

            await _emailService.SendInvoice(invoice, model.ccEmails, model.bccEmails);

            invoice.Status = Invoice.StatusCodes.Sent;
            invoice.Sent   = true;
            invoice.SentAt = DateTime.UtcNow;
        }
예제 #3
0
        public async Task <IActionResult> Send(int id, [FromBody] SendInvoiceModel model)
        {
            var team = await GetAuthorizedTeam();

            // find item
            var invoice = await _dbContext.Invoices
                          .Include(i => i.Items)
                          .Include(i => i.Team)
                          .Include(i => i.Coupon)
                          .Where(i => i.Team.Id == team.Id)
                          .FirstOrDefaultAsync(i => i.Id == id);

            if (invoice == null)
            {
                return(NotFound(new
                {
                    success = false,
                    errorMessage = "Invoice Not Found",
                }));
            }

            if (model == null)
            {
                model = new SendInvoiceModel();
            }

            await _invoiceService.SendInvoice(invoice, model);

            // record action
            var action = new History()
            {
                Type           = HistoryActionTypes.InvoiceSent.TypeCode,
                ActionDateTime = DateTime.UtcNow,
            };

            invoice.History.Add(action);

            await _dbContext.SaveChangesAsync();

            return(new JsonResult(new EditInvoiceResult
            {
                Success = true,
                Id = invoice.Id,
                PaymentLink = Url.Action("Pay", "Payments", new { id = invoice.LinkId }),
            }));
        }
예제 #4
0
        public async Task <IActionResult> Send(int id, [FromBody] SendInvoiceModel model)
        {
            // find item
            var invoice = await _dbContext.Invoices
                          .Include(i => i.Items)
                          .Include(i => i.Team)
                          .Include(i => i.Coupon)
                          .Where(i => i.Team.Slug == TeamSlug)
                          .FirstOrDefaultAsync(i => i.Id == id);

            if (invoice == null)
            {
                return(NotFound(new
                {
                    success = false,
                    errorMessage = "Invoice Not Found",
                }));
            }

            if (model == null)
            {
                model = new SendInvoiceModel();
            }

            await _invoiceService.SendInvoice(invoice, model);

            // record action
            var user = await _userManager.GetUserAsync(User);

            var action = new History()
            {
                Type           = HistoryActionTypes.InvoiceSent.TypeCode,
                ActionDateTime = DateTime.UtcNow,
                Actor          = user.Name,
            };

            invoice.History.Add(action);

            await _dbContext.SaveChangesAsync();

            return(new JsonResult(new
            {
                success = true,
            }));
        }