Exemple #1
0
        public JsonResult RegisterCallRequest()
        {
            var model       = new CallRequestModel();
            var returnModel = new ClickVoxApiResponse();

            if (TryUpdateModel(model))
            {
                returnModel.Status  = "OK";
                returnModel.Message = "Uspješno je zabilježen zahtjev za pozivom!";
            }
            else
            {
                returnModel.Status  = "ERROR";
                returnModel.Message = "Greška prilikom bilježenja zahtjeva za pozivom!";
            }

            return(Json(returnModel));
        }
Exemple #2
0
        [Obsolete] //temporary marker
        public JsonResult RegisterQuoteRequest()
        {
            var model       = new QuoteRequestModel();
            var returnModel = new ClickVoxApiResponse();

            if (TryUpdateModel(model))
            {
                if (model.type == "ponuda")
                {
                    if (_db.Organizations.Any(o => o.VAT == model.data.oib && o.SubjectBusinessUnit == string.Empty))
                    {
                        var merId = _db.Organizations.FirstOrDefault(o => o.VAT == model.data.oib && o.SubjectBusinessUnit == string.Empty).MerId;
                        _organizationHelperMethods.SyncOrganizationInformation(merId);


                        // Creating the folder to store quote and contract draft
                        var path = System.IO.Directory.CreateDirectory(System.IO.Path.Combine(App.ExportPathGlobal + "Apis/RegisterQuoteRequest/" + model.data.oib + "_"
                                                                                              + model.data.imeIPrezime + "_" + DateTime.Now.ToString("yyyyMMdd-HHmm")));

                        // Creating database entity
                        var newEntity = _db.ClickVoxQuoteRequests.Add(new ClickVoxQuoteRequest()
                        {
                            RelatedOrganizationId   = _db.Organizations.FirstOrDefault(o => o.VAT == model.data.oib && o.SubjectBusinessUnit == string.Empty).MerId,
                            RequestEmail            = model.data.eMail,
                            RequestPhoneNumber      = model.data.telefon,
                            RequestNote             = model.data.napomene,
                            RequestCreatorName      = model.data.imeIPrezime,
                            RequestOrganizationName = model.data.nazivTvrtke,
                            RequestNumberOfInvoices = model.data.mjesecniBrojRacunaPremaPravnimOsobama,
                            DocumentsFolderPath     = path.FullName,
                            InsertDate = DateTime.Now
                        });
                        _db.SaveChanges();


                        var package = _quoteHelperMethods.DefinePackage(int.Parse(model.data.mjesecniBrojRacunaPremaPravnimOsobama)); // define package for Quote
                        var quote   = _quoteHelperMethods.CreateAutomatedQuote(model);                                                // get QuoteID
                        _quoteHelperMethods.CreateQuoteLinesForAutomatedQuote(package, quote);                                        // create QuoteLines

                        // prepare HTML for Quote and save PDF
                        var htmlModel = new AutomaticQuotePdfViewModel()
                        {
                            Quote            = _db.Quotes.Find(quote),
                            User             = new ApplicationUser(),
                            AutomaticRequest = newEntity
                        };
                        var htmlContent = this.RenderViewToString("~/Areas/Sales/Views/Shared/PdfQuoteAutomatic.cshtml", htmlModel);

                        _quoteHelperMethods.SavePdfQuote(path.FullName, htmlContent);

                        // prepare Contract Draft
                        var contractDraftModel = new ExportContractDraftViewModel()
                        {
                            QuoteId        = quote,
                            Date           = DateTime.Today.ToShortDateString(),
                            Signer         = "_______________",
                            Position       = "_______________",
                            Header         = "_______________",
                            OrganizationId = newEntity.RelatedOrganizationId,
                            SuggestedDate  = DateTime.Today
                        };

                        _contractsHelperMethods.CreateDraft(contractDraftModel, "Moj-eRačun");

                        var htmlContractModel = new ExportContractDraftPdfViewModel()
                        {
                            Quote         = _db.Quotes.Find(quote),
                            ContractDraft = _db.ContractDrafts.OrderByDescending(c => c.Id).First(c => c.RelatedQuoteId == quote)
                        };

                        var htmlContractContent = this.RenderViewToString("~/Areas/Sales/Views/Shared/Contract.cshtml", htmlContractModel);

                        _contractsHelperMethods.SavePdfDraft(path.FullName, htmlContractContent);

                        // send email
                        var filePaths    = System.IO.Directory.EnumerateFiles(path.FullName);
                        var quoteFile    = System.IO.Path.Combine(filePaths.First(x => x.Contains("Ponuda")));
                        var contractFile = System.IO.Path.Combine(filePaths.First(x => x.Contains("Ugovor")));

                        var quoteAtt     = new Attachment(quoteFile);
                        var contractAtt  = new Attachment(contractFile);
                        var promoAtt     = new Attachment(AppDomain.CurrentDomain.BaseDirectory + "Content/Zasto_Moj-eRacun.pdf");
                        var priceListAtt = new Attachment(AppDomain.CurrentDomain.BaseDirectory + "Content/Cjenik_Elektronički računi d.o.o..pdf");

                        _helperMethods.SendAutomaticQuoteEmail("*****@*****.**", model.data.eMail, AppDomain.CurrentDomain.BaseDirectory + "Content/mail_files/automatic_quoteRequest.html",
                                                               quoteAtt, contractAtt, promoAtt, priceListAtt);

                        // return response
                        returnModel.Status  = "OK";
                        returnModel.Message = "Uspješno je zabilježen zahtjev za ponudom!";
                    }
                    else
                    {
                        returnModel.Status  = "ERROR";
                        returnModel.Message = "Nepostojeća tvrtka u Moj-CRM sustavu!";
                    }
                }
                else
                {
                    returnModel.Status  = "ERROR";
                    returnModel.Message = "Pogrešan tip poruke!";
                }
            }
            else
            {
                returnModel.Status  = "ERROR";
                returnModel.Message = "Greška prilikom bilježenja zahtjeva za ponudom!";
            }

            return(Json(returnModel));
        }