def modules(request): print("roles::", request.user.profile.roles, type(request.user.profile.roles)) return_response = { 'result': [], 'status': True, 'message': '', 'link': '', 'trial_over': False, 'expire_message': '' } company_id = request.user.profile.company_id data_list = [] util = Utils() joining_date_status = util.get_login_period(request.user.date_joined) user_modules = CompanyModulesMapping.objects.all().select_related( "module").filter(company_id=company_id) if request.user.profile.company.company_status == 'trial': if request.user.profile.is_super_admin and joining_date_status[ 'login_hours'] <= 4 and request.user.profile.activation_key: return_response[ 'message'] = 'Activation pending! Your account will expire in ' + str( joining_date_status['login_hours']) + ' hours.' elif joining_date_status['left_days'] > 0 and joining_date_status[ 'left_days'] <= 14 and (request.user.is_superuser or request.user.profile.is_admin): return_response[ 'message'] = ' Your free trial will expire in ' + str( joining_date_status['expire_days']) + ' days' return_response['link'] = '/price-online/' elif joining_date_status['left_days'] == 0 and ( request.user.is_superuser or request.user.profile.is_admin): return_response[ 'message'] = ' Your free trial will expire Today. ' return_response['link'] = '/price-online/' else: if not request.user.profile.is_admin: return_response['trial_over'] = False return_response['message'] = '' else: return_response[ 'message'] = 'Your free trial has been expired.' return_response['trial_over'] = False return_response['link'] = '' elif request.user.profile.company.company_status == 'client': user_modules = user_modules.filter(is_installed=True) '''if joining_date_status['left_days'] < 0: return_response['trial_over'] = True if joining_date_status['left_days'] <= 7 and (request.user.is_superuser or request.user.profile.is_admin) and request.user.profile.company.company_status == 'T': return_response['message'] = 'Your trial period is now OVER. We will keep your data on ' + str(joining_date_status['data_delete_date']) + '. To continue using our solution you have to ' ''' print("user_modules", user_modules) if len(user_modules) > 0: for user_module in user_modules: if user_module.module.slug == 'crm': data_list.append({ 'sort': 1, 'label': 'Contact', 'anchor_class': 'contact tourist-place-1', 'css_class': 'icon-contact', 'link': '/contact/list/' if not return_response['trial_over'] else '' }) data_list.append({ 'sort': 2, 'label': 'Calendar', 'anchor_class': 'calendar', 'css_class': 'icon-calendar', 'link': '/calendar/list/' if not return_response['trial_over'] else '' }) if user_module.module.slug == 'opportunity' and 'ROLE_NO_ACCESS_OPPORTUNITY' not in request.user.profile.roles: data_list.append({ 'sort': 3, 'label': 'Opportunity', 'anchor_class': 'opportunity', 'css_class': 'icon-opportunity', 'link': '/opportunity/list/' if not return_response['trial_over'] else '' }) if user_module.module.slug == 'sales': data_list.append({ 'sort': 4, 'label': 'Quotations', 'anchor_class': 'quotations', 'css_class': 'icon-quotations', 'link': '/quotation/list/' if not return_response['trial_over'] else '' }) data_list.append({ 'sort': 5, 'label': 'Invoice', 'anchor_class': 'invoice', 'css_class': 'icon-quotations', 'link': '/customer/invoice/list/' if not return_response['trial_over'] else '' }) data_list.append({ 'sort': 6, 'label': 'Sales', 'anchor_class': 'sales', 'css_class': 'icon-sales', 'link': '/sales/' if not return_response['trial_over'] else '' }) if request.user.is_superuser or request.user.profile.is_admin: data_list.append({ 'sort': 7, 'label': 'Settings', 'anchor_class': 'settings', 'css_class': 'icon-settings', 'link': '/user/list/' if not return_response['trial_over'] else '' }) try: stripe = Stripe.objects.get(company_id=request.user.profile.company_id) if stripe and (request.user.is_superuser or request.user.profile.is_admin): data_list.append({ 'sort': 8, 'label': 'Apps', 'anchor_class': 'apps', 'css_class': 'icon-apps', 'link': '/apps/' if not return_response['trial_over'] else '' }) except: print("not stripe user") data_list = sorted(data_list, key=lambda k: k['sort']) return_response['result'] = data_list return HttpResponse(json.dumps(return_response), content_type="application/json")
def payment_step_2(request): company_id = request.user.profile.company_id stripe_key = settings.STRIPE_SETTINGS['stripe_key_test_public'] vat_percent_value = settings.VAT['value'] vat_percent_percent = settings.VAT['percent'] util = Utils() joining_date_status = util.get_login_period(request.user.date_joined) vat_message = None if request.method == "POST": vat_number = request.POST['vat'] is_vat_will_charge = request.POST['is_vat_will_charge'] first_name = request.POST['first_name'] last_name = request.POST['last_name'] try: user = User.objects.get(pk=request.user.id) user.first_name = first_name user.last_name = last_name user.save() except User.DoesNotExist: print('User DoesNotExist') try: company = Company.objects.get(pk=request.user.profile.company_id) company.billing_street = request.POST['company-name'] company.billing_city = request.POST['city'] company.billing_zip = request.POST['zip'] company.billing_street = request.POST['street'] try: country = Countries.objects.get(pk=request.POST['country']) company.country = country except Countries.DoesNotExist: print('Countries DoesNotExist') company.save() except Company.DoesNotExist: print('Company DoesNotExist') if is_vat_will_charge and vat_number != '': return_status = check_vat_valid(vat_number) if return_status: vat_charge = False else: vat_charge = True elif is_vat_will_charge and vat_number == '': vat_charge = True else: vat_charge = False try: if request.user.stripe.customer_id: return HttpResponseRedirect("/dashboard/") except: pass module_list = [] total_user = 1 modules = Modules.objects.all() active_user = User.objects.select_related('profile').filter( is_active=True).filter(profile__company_id=company_id).count() if active_user > 1: total_user = active_user if modules: for module in modules: if module.slug == 'crm': data_app = 'crm' data_requires = 'contact, calendar' icon = 'fa fa-th' if module.slug == 'invoice': data_app = 'invoice' data_requires = '' icon = 'icon-invoice' if module.slug == 'quotations': data_app = 'quotations' data_requires = '' icon = 'icon-quotations' if module.slug == 'opportunity': data_app = 'opportunity' data_requires = '' icon = 'icon-opportunity' module_list.append({ 'name': module.name, 'slug': module.slug, 'price': '', 'data_app': data_app, 'data_requires': data_requires, 'icon': icon }) price = settings.PRICES if joining_date_status['expire_days'] in [7, 6, 5, 4, 3]: price['discount'] = 40 elif joining_date_status['expire_days'] in [2, 1]: price['discount'] = 50 else: price['discount'] = 25 #print("vat_message", vat_message) return render( request, 'web/payment_step_2.html', { 'prices': price, 'modules': module_list, 'total_user': total_user, 'stripe_key': stripe_key, 'vat_charge': vat_charge, 'vat_percent_value': vat_percent_value, 'vat_message': vat_message, 'vat_percent_percent': vat_percent_percent }) else: return redirect('/payment_step_1/')