Ejemplo n.º 1
0
        public IActionResult Index(long invoiceId)
        {
            ViewBag.Name = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            IDBService       dbService    = new DBservice(_helper);
            var              invoices     = dbService.GetInvoice(invoiceId);
            var              numberOfDocs = dbService.FetchDocumentsForInvoice(invoiceId);
            InvoiceViewModel model        = new InvoiceViewModel();

            model.InvoiceId        = invoiceId;
            model.AccountDate      = invoices.AccountDate.ToString("dd / M / yyyy", CultureInfo.InvariantCulture);
            model.InvoiceNumber    = invoices.InvoiceNo;
            model.TotalLocalAmount = invoices.TotalLocalAmt.ToString("N",
                                                                     CultureInfo.CreateSpecificCulture("en-IN"));
            model.ExchangeRate = invoices.ExRate;
            model.CustomerName = invoices.CustomerName;
            model.DelivaryDate = invoices.DeliveryDate.ToString("dd / M / yyyy", CultureInfo.InvariantCulture);
            model.CurrencyCode = invoices.CurrencyCode;
            model.VesselName   = invoices.VesselName;
            model.Remarks      = invoices.Remarks;
            model.Amount       = invoices.TotalAmt.ToString("N",
                                                            CultureInfo.CreateSpecificCulture("en-IN"));
            InvoiceStatus invStatus = (InvoiceStatus)invoices.InvoiceStatus;

            model.InvoiceStatus = invStatus.ToString();

            model.NoOfDocuments = numberOfDocs != null ? numberOfDocs.Count : 0;
            if (invoices.InvoiceStatus > 4 || invoices.InvoiceStatus == 2)
            {
                model.Showbuttons = true;
            }

            return(View(model));
        }
        public string UpdateStatusForInvoice(long invoiceId, InvoiceStatus status, string remarks)
        {
            string     color   = string.Empty;
            IDBService service = new DBservice(_helper);

            var    username = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            string email    = service.GetEmailForUser(username);

            var invoice          = service.GetInvoice(invoiceId);
            var invoiveViewModel = new InvoiceViewModel
            {
                AccountDate      = invoice.AccountDate.ToString("dd/M/yyyy", CultureInfo.InvariantCulture),
                CustomerName     = invoice.CustomerName,
                DelivaryDate     = invoice.DeliveryDate.ToString("dd/M/yyyy", CultureInfo.InvariantCulture),
                TotalLocalAmount = invoice.TotalLocalAmt.ToString("C",
                                                                  CultureInfo.CreateSpecificCulture("en-IN")),
                DueDate       = invoice.DueDate,
                InvoiceNumber = invoice.InvoiceNo
            };

            if (status == InvoiceStatus.CheckPending)
            {
                service.UpdatePendingStatusForChecker(invoiceId, username, remarks);
                color = service.getColorToUpdate((int)InvoiceStatus.CheckPending);
            }
            else if (status == InvoiceStatus.Checked)
            {
                service.UpdateCheckedStatusForChecker(invoiceId, username, remarks);
                color = service.getColorToUpdate((int)InvoiceStatus.Checked);
                ConstructEmail construct = new ConstructEmail();
                construct.SendEmail(invoiveViewModel, email);
            }
            else if (status == InvoiceStatus.CheckRejected)
            {
                service.UpdateRejectedStatusForChecker(invoiceId, username, remarks);
                color = service.getColorToUpdate((int)InvoiceStatus.CheckRejected);
            }
            else if (status == InvoiceStatus.Approved)
            {
                service.UpdateApprovedStatusForApprover(invoiceId, username, remarks);
                color = service.getColorToUpdate((int)InvoiceStatus.Approved);
            }
            else if (status == InvoiceStatus.ApprovePending)
            {
                service.UpdatePendingStatusForApprover(invoiceId, username, remarks);
                color = service.getColorToUpdate((int)InvoiceStatus.ApprovePending);
            }
            else if (status == InvoiceStatus.ApproveRejected)
            {
                service.UpdateRejectedStatusForApprover(invoiceId, username, remarks);
                color = service.getColorToUpdate((int)InvoiceStatus.ApproveRejected);
            }
            else
            {
                throw new Exception("Invalid Status");
            }
            return(color);
        }