Ejemplo n.º 1
0
        public async Task <ActionResult> Invoice(Models.InvoiceViewModel invoice)
        {
            var invoiceDto = Mapper.Map <IInvoiceDto>(invoice);
            var result     = Factory.Save(invoiceDto);

            var repairId = invoice.RepairId;

            // Send Notifications.
            if (result.SendNotifications)
            {
                using (var queue = new MessageQueue())
                {
                    var userGuid = Guid.Parse(User.Identity.GetUserId());
                    await queue.AddNotificationQueueMessageAsync(template : NotificationTemplate.BillingEmail, id : repairId, userGuid : userGuid);

                    await queue.AddNotificationQueueMessageAsync(template : NotificationTemplate.ShopInvoiceEmail, id : repairId, userGuid : userGuid);
                }
            }

            if (invoice.InvoiceCompleteInd)
            {
                string invoiceUrl = Url.Action("Invoice", "Download", new { Area = string.Empty, ID = repairId }, Request?.Url?.Scheme);
                await new ClientHubMessenger().InvoiceCompleted(repairId, invoiceUrl).ConfigureAwait(continueOnCapturedContext: false);
            }

            return(RedirectToAction("Dashboard"));
        }
Ejemplo n.º 2
0
        public ActionResult Save(Models.InvoiceViewModel InvoiceModel, string itensNotaFiscal)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    InvoiceModel.Invoice.Status = (int)Model.Enums.StatusInvoice.Gerada;

                    var arrayItensNotaFiscal = JArray.Parse(itensNotaFiscal);
                    InvoiceModel.Invoice.Items = ((JArray)arrayItensNotaFiscal).Select(x => new Model.Entities.InvoiceItem
                    {
                        Id             = (int)x["Id"],
                        SequencialItem = (int)x["SequencialItem"],
                        QuantityOrder  = Convert.ToDecimal(x["QuantityOrder"].ToString()),
                        ProductID      = (int)x["ProductID"],
                        UnitPrice      = Convert.ToDecimal(x["UnitPrice"].ToString()),
                        ItemDiscount   = Convert.ToDecimal(x["ItemDiscount"].ToString()),
                        TotalPrice     = Convert.ToDecimal(x["TotalPrice"].ToString()),
                    }).ToList();

                    context = new DALContext();
                    context.Invoices.Create(InvoiceModel.Invoice);

                    if (context.SaveChanges() > 0)
                    {
                        InvoiceModel.Invoice = InvoiceModel.Invoice;
                        InvoiceModel.Invoice.CustomerInvoice = InvoiceModel.Customers.Where(p => p.Id == InvoiceModel.Invoice.CustomerID).FirstOrDefault();
                        return(Content(String.Format("<b>Nota Fiscal {0}</br> Gerada com Sucesso!</b>", InvoiceModel.Invoice.Numero)));
                    }
                }
                else
                {
                    return(View("Create", InvoiceModel));
                }

                return(View("Create", InvoiceModel));
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Index(Models.InvoiceViewModel model)
        {
            var authClient = await _repository.GetAuthorizedVantagePointClientAsync();

            string requestUri = $"utilities/invokecustom/getinvoiceinfo";
            Dictionary <string, object> spParams = new Dictionary <string, object>();

            spParams.Add("Invoice", model.RequestInvoice);

            //returns a structure in xml
            string invoiceInfo = await _repository.PostAsync <string>(authClient, requestUri, spParams);

            //turn structure into json
            var retvalJson = Helpers.XMLHelpers.StoredProcXMLToJObject(invoiceInfo);

            //turn structure into dicts
            var retvalDict = Helpers.XMLHelpers.StoredProcXMLToDictionary(invoiceInfo);

            //populating the model the hard way
            //with this code you have to know exactly what the stored procedure returns...
            model.Invoice     = retvalDict["Table"][0]["Invoice"].ToString();
            model.MainWBS1    = retvalDict["Table"][0]["MainWBS1"].ToString();
            model.InvoiceDate = DateTime.Parse(retvalDict["Table"][0]["InvoiceDate"].ToString());
            model.MainName    = retvalDict["Table"][0]["MainName"].ToString();
            model.Description = retvalDict["Table"][0]["Description"].ToString();
            model.ProjectName = retvalDict["Table"][0]["ProjectName"].ToString();
            model.ClientName  = retvalDict["Table"][0]["ClientName"].ToString();

            foreach (var item in retvalDict["Table1"])
            {
                Models.InvoiceSectionViewModel section = new Models.InvoiceSectionViewModel();
                section.Section     = item["section"].ToString();
                section.BaseAmount  = Decimal.Parse(item["BaseAmount"].ToString());
                section.FinalAmount = Decimal.Parse(item["FinalAmount"].ToString());
                model.Sections.Add(section);
            }

            model.TotalInvoiceAmount = model.Sections.Sum(x => x.FinalAmount);

            return(View(model));
        }
Ejemplo n.º 4
0
        public IActionResult Index()
        {
            var model = new Models.InvoiceViewModel();

            return(View(model));
        }