/// <summary>
        /// Helper method for syncing the information with 3rd party service
        /// </summary>
        /// <param name="merId">Organization MerId</param>
        public void SyncOrganizationInformation(int merId)
        {
            var organization = _db.Organizations.First(o => o.MerId == merId);

            OrganizationSyncedInfo.SyncServiceEnum serviceId;

            try
            {
                if (App.Country == "Croatia")
                {
                    var service = new CroatiaBizService();
                    serviceId = OrganizationSyncedInfo.SyncServiceEnum.CroatiaBiz;
                    var syncedInfo = service.Oib(organization.VAT);

                    if (organization.OrganizationSyncedInfo == null)
                    {
                        _db.OrganizationSyncedInfos.Add(new OrganizationSyncedInfo
                        {
                            MerId                        = merId,
                            SyncedSubjectName            = syncedInfo.data.subject,
                            OrganizationLegalNumber      = syncedInfo.data.mb,
                            SyncedAddress                = syncedInfo.data.address,
                            SyncedPostalCode             = !string.IsNullOrEmpty(syncedInfo.data.zip) ? int.Parse(syncedInfo.data.zip) : 0,
                            SyncedCity                   = syncedInfo.data.city,
                            OrganizationBusinessTypeCode = syncedInfo.data.nkd_key,
                            OrganizationBusinessTypeName = syncedInfo.data.nkd_name,
                            Active                       = syncedInfo.data.active,
                            ServiceId                    = serviceId,
                            InsertDate                   = DateTime.Now,
                            UpdateDate                   = DateTime.Now
                        });
                        _db.SaveChanges();

                        organization.SubjectName = syncedInfo.data.subject;
                        organization.OrganizationDetail.MainAddress    = syncedInfo.data.address;
                        organization.OrganizationDetail.MainPostalCode = !string.IsNullOrEmpty(syncedInfo.data.zip) ? int.Parse(syncedInfo.data.zip) : 0;
                        organization.OrganizationDetail.MainCity       = syncedInfo.data.city;
                        organization.UpdateDate = DateTime.Now;
                        _db.SaveChanges();
                    }
                    else
                    {
                        organization.SubjectName = syncedInfo.data.subject;
                        organization.OrganizationDetail.MainAddress    = syncedInfo.data.address;
                        organization.OrganizationDetail.MainPostalCode = !string.IsNullOrEmpty(syncedInfo.data.zip) ? int.Parse(syncedInfo.data.zip) : 0;
                        organization.OrganizationDetail.MainCity       = syncedInfo.data.city;
                        organization.UpdateDate = DateTime.Now;
                        _db.SaveChanges();
                    }
                }
            }
            catch (JsonSerializationException jse)
            {
                _helper.LogError(@"Organizations - SyncOrganizationData", "OrganizationId: " + merId,
                                 @"Prilikom sinkronizacije podataka tvrtke s vanjskim servisom, javila se sljedeća greška: " + jse.Message, string.Empty, string.Empty, string.Empty);
            }
        }
        /// <summary>
        /// Method for syncing the information with 3rd party service
        /// </summary>
        /// <param name="merId"></param>
        /// <returns></returns>
        public ActionResult SyncOrganizationData(int merId)
        {
            var organization = _db.Organizations.First(o => o.MerId == merId);

            OrganizationSyncedInfo.SyncServiceEnum serviceId;

            try
            {
                if (App.Country == "Croatia")
                {
                    var service = new CroatiaBizService();
                    serviceId = OrganizationSyncedInfo.SyncServiceEnum.CroatiaBiz;
                    var syncedInfo = service.Oib(organization.VAT);

                    _db.OrganizationSyncedInfos.Add(new OrganizationSyncedInfo
                    {
                        MerId                        = merId,
                        SyncedSubjectName            = syncedInfo.data.subject,
                        OrganizationLegalNumber      = syncedInfo.data.mb,
                        SyncedAddress                = syncedInfo.data.address,
                        SyncedPostalCode             = int.Parse(syncedInfo.data.zip),
                        SyncedCity                   = syncedInfo.data.city,
                        OrganizationBusinessTypeCode = syncedInfo.data.nkd_key,
                        OrganizationBusinessTypeName = syncedInfo.data.nkd_name,
                        Active                       = syncedInfo.data.active,
                        ServiceId                    = serviceId,
                        InsertDate                   = DateTime.Now,
                        UpdateDate                   = DateTime.Now
                    });
                    _db.SaveChanges();
                }
            }
            catch (JsonSerializationException jse)
            {
                _helper.LogError(@"Organizations - SyncOrganizationData", "OrganizationId: " + merId,
                                 @"Prilikom sinkronizacije podataka tvrtke s vanjskim servisom, javila se sljedeća greška: " + jse.Message, string.Empty, string.Empty, User.Identity.Name);

                var errorModel = new ErrorModelHelper()
                {
                    ErrorTitle             = @"Greška prilikom sinkronizacije",
                    ErrorDescription       = @"Prilikom sinkronizacije podataka tvrtke s vanjskim servisom, javila se sljedeća greška: " + jse.Message,
                    ErrorArguments         = @"ID subjekta: " + merId + ", VAT: " + organization.VAT,
                    ErrorException         = jse,
                    ErrorSuggestedSolution = @"Provjerite pokušavate li sinkronizirati podatke za aktivnu tvrtku!"
                };

                return(View("ErrorNew", errorModel));
            }

            return(Redirect(Request.UrlReferrer?.ToString()));
        }
예제 #3
0
        public ActionResult Index()
        {
            #region Old INA Campaign Procedures
            //var campaignIna = (from c in _db.Campaigns
            //                where c.CampaignId == 1
            //                select c).First();
            //var opportunities = (from o in _db.Opportunities
            //                     where o.RelatedCampaignId == 1
            //                     select o);
            //var leads = (from l in _db.Leads
            //             where l.RelatedCampaignId == 1
            //             select l);

            //var countModel = new GeneralCampaignStatusViewModelCount
            //{
            //    NumberOfOpportunitiesCreated = opportunities.Count(),
            //    NumberOfOpportunitiesInProgress = opportunities.Count(o => o.OpportunityStatus == Opportunity.OpportunityStatusEnum.Start || o.OpportunityStatus == Opportunity.OpportunityStatusEnum.Arrangemeeting || o.OpportunityStatus == Opportunity.OpportunityStatusEnum.Incontact || o.OpportunityStatus == Opportunity.OpportunityStatusEnum.Processdifficulties),
            //    NumberOfOpportunitiesUser = opportunities.Count(o => o.OpportunityStatus == Opportunity.OpportunityStatusEnum.Meruser),
            //    NumberOfOpportunitiesToLead = opportunities.Count(o => o.OpportunityStatus == Opportunity.OpportunityStatusEnum.Lead),
            //    NumberOfOpportunitiesRejected = opportunities.Count(o => o.OpportunityStatus == Opportunity.OpportunityStatusEnum.Rejected),
            //    NumberOfLeadsCreated = leads.Count(),
            //    NumberOfLeadsInProgress = leads.Count(l => l.LeadStatus == Lead.LeadStatusEnum.Incontact || l.LeadStatus == Lead.LeadStatusEnum.Meeting || l.LeadStatus == Lead.LeadStatusEnum.Start),
            //    NumberOfLeadsMeetings = leads.Count(l => l.LeadStatus == Lead.LeadStatusEnum.Meeting),
            //    NumberOfLeadsQuotes = leads.Count(l => l.LeadStatus == Lead.LeadStatusEnum.Quotesent),
            //    NumberOfLeadsRejected = leads.Count(l => l.LeadStatus == Lead.LeadStatusEnum.Rejected),
            //    NumberOfLeadsAccepted = leads.Count(l => l.LeadStatus == Lead.LeadStatusEnum.Accepted)
            //};

            //var modelIna = new GeneralCampaignStatusViewModel
            //{
            //    RelatedCampaignId = 6,
            //    RelatedCampaignName = campaignIna.CampaignName,
            //    NumberOfOpportunitiesCreated = countModel.NumberOfOpportunitiesCreated,
            //    NumberOfOpportunitiesInProgress = countModel.NumberOfOpportunitiesInProgress,
            //    NumberOfOpportunitiesInProgressPercent = Math.Round(((countModel.NumberOfOpportunitiesInProgress / (decimal)countModel.NumberOfOpportunitiesCreated) * 100), 2),
            //    NumberOfOpportunitesUser = countModel.NumberOfOpportunitiesUser,
            //    NumberOfOpportunitiesUserPercent = Math.Round(((countModel.NumberOfOpportunitiesUser / (decimal)countModel.NumberOfOpportunitiesCreated) * 100), 2),
            //    NumberOfOpportunitiesToLead = countModel.NumberOfOpportunitiesToLead,
            //    NumberOfOpportunitiesToLeadPercent = Math.Round(((countModel.NumberOfOpportunitiesToLead / (decimal)countModel.NumberOfOpportunitiesCreated) * 100), 2),
            //    NumberOfOpportunitiesRejected = countModel.NumberOfOpportunitiesRejected,
            //    NumberOfOpportunitiesRejectedPercent = Math.Round(((countModel.NumberOfOpportunitiesRejected / (decimal)countModel.NumberOfOpportunitiesCreated) * 100), 2),
            //    NumberOfLeadsCreated = countModel.NumberOfLeadsCreated,
            //    NumberOfLeadsInProgress = countModel.NumberOfLeadsInProgress,
            //    NumberOfLeadsInProgressPercent = Math.Round(((countModel.NumberOfLeadsInProgress / (decimal)countModel.NumberOfLeadsCreated) * 100), 2),
            //    NumberOfLeadsMeetings = countModel.NumberOfLeadsMeetings,
            //    NumberOfLeadsMeetingsPercent = Math.Round(((countModel.NumberOfLeadsMeetings / (decimal)countModel.NumberOfLeadsCreated) * 100), 2),
            //    NumberOfLeadsQuotes = countModel.NumberOfLeadsQuotes,
            //    NumberOfLeadsQuotesPercent = Math.Round(((countModel.NumberOfLeadsQuotes / (decimal)countModel.NumberOfLeadsCreated) * 100), 2),
            //    NumberOfLeadsRejected = countModel.NumberOfLeadsRejected,
            //    NumberOfLeadsRejectedPercent = Math.Round(((countModel.NumberOfLeadsRejected / (decimal)countModel.NumberOfLeadsCreated) * 100), 2),
            //    NumberOfLeadsAccepted = countModel.NumberOfLeadsAccepted,
            //    NumberOfLeadsAcceptedPercent = Math.Round(((countModel.NumberOfLeadsAccepted / (decimal)countModel.NumberOfLeadsCreated) * 100), 2)
            //};
            #endregion

            //var campaignsModel = new EmailBasesCampaignStatsViewModel();
            var campaignMemberModel = new CampaignMember();
            var agentActivities     = new CallCenterDailyStatsViewModel();
            var croatiaBizService   = new CroatiaBizService();
            var yesterday           = DateTime.Today.AddDays(-1);

            var model = new HomeViewModel
            {
                //INACampaign = modelIna,
                //Campaigns = campaignsModel.GetModels(),
                CampaignMembers = campaignMemberModel.GetCamapigns(User.Identity.Name),
                AgentActivities = agentActivities.GetActivitiesForDashboard(),
                CroatiaBizInfo  = croatiaBizService.Limit(),
                SystemLogs      = _db.ActivityLogs.Where(l => l.ActivityType == ActivityLog.ActivityTypeEnum.System &&
                                                         l.InsertDate >= yesterday)
            };
            return(View(model));
        }