def add_new_solution(request): if request.method == 'GET': s = request.GET.get('s') if not s: return render(request, 'help_desk/call/AddSolution.html') try: sol = Solutions.objects.get(pk=s) return render(request, 'help_desk/call/AddSolution.html', {'solution': sol}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': sid = request.POST.get('s') if not sid: sol = Solutions() else: if Solutions.objects.filter(pk=sid).exists(): sol = Solutions.objects.get(pk=sid) else: return redirect(reverse(view_all_solutions)) try: sol.short_text = request.POST.get('txtShort') sol.description = request.POST.get('txtDescription') sol.save() fire_event(3356, sol, None, request.user.pk) return redirect(reverse(view_all_solutions)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def post(request): invoice_user_id = request.POST.get('u', 'Invalid') service_id = request.POST.get('s', 'invalid') extra_month = request.POST.get('m') property_id = request.POST.get('pr', -1) if not validate_integer(extra_month): extra_month = 1 if not validate_integer(invoice_user_id): return render(request, 'errors/CustomError.html', {'error_message': _('invalid user data')}) if not validate_integer(service_id): return render(request, 'errors/ServerError.html') if request.POST.get('cancel'): return redirect( reverse(show_user_navigation) + '?uid=%s' % invoice_user_id) if request.user.is_staff or request.user.is_superuser: user = User.objects.get(pk=invoice_user_id) else: user = request.user if not IBSService.objects.filter( pk=service_id, is_visible=True, is_deleted=False).exists(): fire_event(6362, user) return redirect('/') i_s = IBSService.objects.get(pk=service_id) x = InvoiceGen(i_s, 1, service_property=property_id, uid=user.pk, extra_month=extra_month) x.calculate() if user.fk_vip_users_group_user.exists(): vid = user.fk_vip_users_group_user.get().pk else: vid = None if not is_in_valid_services(service_id, int(property_id), vid): return redirect( reverse(show_user_navigation) + '?uid=%s' % invoice_user_id) service_pr = ServiceProperty.objects.get(pk=property_id) try: if service_pr.fk_vip_services_service.exists(): if not user.fk_vip_users_group_user.exists(): fire_event(10547, user) return redirect('/') if service_pr.fk_vip_services_service.get().group.group_id != \ user.fk_user_service_group_user.get().service_group_id: fire_event(10547, user) return redirect('/') if not x.get_is_done(): fire_event(10276, user) return redirect('/') f = x.get_invoice() f.save() fire_event(5524, f) if request.user.is_staff: return redirect(reverse(show_all_invoices)) return redirect(reverse(e_pay_invoice) + '?f=' + str(f.pk)) except Exception as e: print e.args[1] return render(request, 'errors/ServerError.html')
def create_internet_account(request): if request.method == 'GET': uid = request.GET.get('u') if not validate_integer(uid): return send_error(request, _('no user selected')) if not User.objects.filter(pk=uid).exists(): return redirect('/') ibs = IBSManager() rnd = ''.join(random.choice(string.lowercase) for i in range(5)) u = User.objects.get(pk=uid) u.is_active = True if not ibs.add_new_user(u.username, rnd, 0): return send_error(request, _('unable to create ibs user')) u.set_password(rnd) u.save() ib_id = ibs.get_user_id_by_username(u.username) ibi = IBSUserInfo() ibi.ibs_uid = int(ib_id) ibi.user = u ibi.save() u.groups.add(Group.objects.get(pk=int(read_config('groups_customer', 1)))) update_ibs_user_from_crm(u.pk) fire_event(4537, u, None, request.user.pk) return redirect('/user/nav/?uid=%s' % uid) else: return redirect('/')
def temp_recharge(request): return redirect('/') user = request.user granted = False if user.is_staff or user.is_superuser: granted = True if request.method == 'GET': if not granted: uid = user.pk else: uid = request.GET.get('uid') if not validate_integer(uid): return render(request, 'errors/ServerError.html') if not granted: check = check_user_temp_charge(int(uid)) if not check: fire_event(4300, request.user, None, request.user.pk) return redirect( reverse(show_user_service_summery) + '?u=%s' % uid) res = temp_charge_user(uid, user.pk) if res: kill_user(uid, get_client_ip(request)) # send_from_template.delay(uid, 15, ftime=read_config('service_temp_time', 2), # fta=read_config('service_temp_amount', 700)) return redirect(reverse(show_user_service_summery) + '?u=%s' % uid) else: fire_event(4124, request.user, None, request.user.pk) return render( request, 'errors/CustomError.html', {'error_message': _('unable to charge. contact support')})
def delete_group(request): delete_group.__cid__ = 2200 if request.method == 'GET': gid = request.GET.get('gid') if gid is None: return redirect(reverse(show_all_groups)) if not validate_integer(gid): return redirect(reverse(show_all_groups)) try: group = Group.objects.get(pk=gid) return render(request, 'group/DeleteGroupConfirm.html', {'group': group}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': gid = request.POST.get('gid', -1) if gid is -1 and not validate_integer(gid): return redirect(reverse(show_all_groups)) try: Group.objects.get(pk=gid).delete() fire_event(delete_group, None, gid, request.user.pk) return redirect(reverse(show_all_groups)) except Exception as e: print e.message return render(request, 'errors/ServerError.html', {})
def assign_user_ip_address(invoice): res = configure_static_ip_address(invoice.user_id) if res[0]: fire_event(3731, invoice, None, invoice.user_id) else: fire_event(5052, invoice, None, invoice.user_id) return res
def temp_charge_user(user_id, requester_id): if not validate_integer(user_id): return False try: if not IBSUserInfo.objects.filter(user=user_id).exists(): return False user = IBSUserInfo.objects.get(user=user_id) ibs = IBSManager() # expire = ibs.get_expire_date(user.user.username) # expire = parse_date_from_str_to_julian(expire) # if expire.date() <= datetime.today().date(): res = ibs.temp_charge(user.user.username) # else: # ibs.temp_charge() # res = ibs.change_credit(float(get_config_value('ibs_temp_charge_amount', 700)), # user.user.username, # replace_credit=True) if res: fr = FreeTrafficLog() fr.user_id = user_id fr.recharger = User.objects.get(pk=requester_id) fr.datetime = datetime.today() fr.save() fire_event(3720, fr, None, int(user_id)) return True return False except Exception as e: print e.args[1] return False
def delete_traffic(request): if request.method == 'GET': t = request.GET.get('t') if not validate_integer(t): return redirect(reverse(view_all_traffics)) try: traffic = Traffic.objects.get(pk=t) except Exception as e: print e.message return render(request, 'errors/ServerError.html') return render(request, 'traffic/DeleteTraffic.html', {'traffic': traffic}) elif request.method == 'POST': tid = request.POST.get('tid', 'empty') if not validate_integer(tid): return redirect(reverse(view_all_traffics)) try: d_t = Traffic(pk=tid) d_t.is_deleted = True d_t.save() fire_event(2603, d_t, None, request.user.pk) # insert_new_action_log(request, None, _('package deleted') + ' : ' + d_t.name) return redirect(reverse(view_all_traffics)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def post(request): if request.POST.get('cancel'): return redirect(reverse(show_all_groups)) # sp = request.POST.get('rbPerm', -1) g_name = request.POST.get('txtName', -1) # g_des = request.POST.get('txtDescription', -1) g_id = request.POST.get('uid', -1) if g_id == '1': return redirect(reverse(show_all_groups)) update_mode = False insert_new_action_log(request, None, _('create or update groups')) if g_name is -1: return HttpResponseBadRequest(_('no group has selected')) try: if validate_integer(g_id): update_mode = True if update_mode: g = Group.objects.get(pk=g_id) else: g = Group() g.name = g_name g.save() fire_event(1527, g, None, request.user.pk) return redirect(reverse(show_all_groups)) except Exception as e: print e.message return render(request, 'errors/ServerError.html')
def delete_document(request): if request.method == 'GET': d = request.GET.get('d') if not d: return redirect(reverse(manage_uploads)) try: doc = UserFiles.objects.get(pk=d) return render(request, 'user/documents/DeleteDocument.html', {'doc': doc}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': d = request.POST.get('d') cancel = request.POST.get('btnCancel') if cancel: return redirect(reverse(manage_uploads)) if not d: return redirect(reverse(manage_uploads)) try: f = UserFiles.objects.get(pk=d) fn = f.filename f.delete() if exists(fn): os.remove(fn) fire_event(4050, None, d, request.user.pk) return redirect(reverse(manage_uploads)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def delete_discount(request): delete_discount.__cid__ = 4361 if request.method == 'GET': d = request.GET.get('d') if not validate_integer(d): return redirect(reverse(view_all_discounts)) try: dis = IBSServiceDiscount.objects.get(pk=d) return render(request, 'finance/discount/service/DeleteDiscount.html', {'d': dis}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': d = request.POST.get('d') if request.POST.get('cancel'): return redirect(reverse(view_all_discounts)) if not validate_integer(d): return redirect(reverse(view_all_discounts)) try: dis = IBSServiceDiscount.objects.get(pk=d) dis.is_deleted = True dis.save() fire_event(delete_discount, dis, None, request.user.pk) # send_to_dashboard(4361, request.user.pk) return redirect(reverse(view_all_discounts)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def create_traffic_invoice(request): user = request.user if request.method == 'GET': sid = request.GET.get('t') if request.user.is_staff or request.user.is_superuser: uid = request.GET.get('u') else: uid = user.pk if not validate_integer(sid): return redirect('/user/nav/?uid=%s' % uid) if not validate_user(uid, request.RSL_ID): return redirect('/user/nav/?uid=%s' % uid) try: x = InvoiceGen(Traffic.objects.get(pk=sid), 2, uid=uid) x.calculate() if not x.get_is_done(): fire_event(10231, User.objects.get(pk=uid)) return redirect('/') extra_data = x.get_extra_data() return render( request, 'finance/TrafficInvoice.html', { 's': x.get_service(), 'tax': extra_data.get('tax'), 'price': x.get_final_price(), 'u': uid, 'discounted_price': extra_data.get('discount_price'), 'extra_amount': extra_data.get('extra_package'), 'base_service_price': x.get_base_price(), 'debit': extra_data.get('debit') }) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': uid = request.POST.get('uid', 'INVALID') sid = request.POST.get('sid', 'INVALID') if not validate_user(uid, request.RSL_ID) or not validate_integer(sid): return redirect('/user/nav/?uid=%s' % uid) if not user.is_staff: uid = user.pk try: x = InvoiceGen(Traffic.objects.get(pk=sid), 2, uid=uid) x.calculate() if not x.get_is_done(): fire_event(10231, User.objects.get(pk=uid)) return redirect('/') f = x.get_invoice() f.save() # PackageInvoiceCreatedNotify().send(user_id=uid, invoice_id=f.pk, create_time=f.create_time) if request.user.is_staff: return redirect(reverse(show_all_invoices) + '?u=%s' % uid) else: return redirect(reverse(e_pay_invoice) + '?f=' + str(f.pk)) except Exception as e: print e.args[0] return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def delete_pop_site(request): pop = get_pop_site(request.GET.get('pk')) if not pop: return send_error(request, _('invalid item')) pop.is_deleted = True pop.save() fire_event(6010002, pop, None, request.user.pk) return HttpResponse(pop.pk)
def edit_notify_config(request): if request.method == 'GET': n = request.GET.get('n') try: if not NotifySettings.objects.filter(pk=n).exists(): return redirect(reverse(notify_configuration)) nc = NotifySettings.objects.get(pk=n) return render(request, 'notify/EditConfig.html', {'c': nc}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': n = request.POST.get('n') if not validate_integer(n): return redirect(reverse(notify_configuration)) email_text = request.POST.get('et') email_enabled = request.POST.get('ce') sms_text = request.POST.get('st') sms_enabled = request.POST.get('se') inbox_text = request.POST.get('it') inbox_enable = request.POST.get('ie') if email_enabled: if not validate_empty_str(email_text): return render(request, 'errors/CustomError.html', {'error_message': _('please enter email text')}) if sms_enabled: if not validate_empty_str(sms_text): return render(request, 'errors/CustomError.html', {'error_message': _('please enter sms text')}) if inbox_enable: if not validate_empty_str(inbox_text): return render(request, 'errors/CustomError.html', {'error_message': _('please enter inbox text')}) try: ns = NotifySettings.objects.get(pk=n) if email_enabled: ns.email_enabled = True ns.mail_text = email_text else: ns.email_enabled = False if sms_enabled: ns.sms_enabled = True ns.sms_text = sms_text else: ns.sms_enabled = False if inbox_enable: ns.inbox_enabled = True ns.inbox_text = inbox_text else: ns.inbox_enabled = False ns.save() fire_event(5233, ns, None, request.user.pk) return redirect(reverse(notify_configuration)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def post(request): fid = request.POST.get('f', 'invalid') if not validate_integer(fid): return redirect(reverse(show_all_invoices)) try: f = Invoice.objects.get(pk=fid) f.is_deleted = True fire_event(4202, f) f.save() return redirect(reverse(show_all_invoices)) except Exception as e: print e.message return render(request, 'errors/ServerError.html')
def send_new_notification(request): if request.method == 'GET': if len(request.GET) < 1: return redirect(reverse(search_users)) data = build_params_by_get(request.GET) users = advanced_search_users(**data) res = init_pager(users, 15, request.GET.get('nx'), 'users', {'show_res': True}, request) return render(request, 'notify/SendNewMessage.html', res) elif request.method == 'POST': if not request.GET: return redirect('/') data = build_params_by_get(request.GET) users = advanced_search_users(**data) if request.POST.get('gift'): add_days = request.POST.get('ad') extra_package = request.POST.get('pa') add_days_for_limited = request.POST.get('sfl') if not validate_integer(add_days): add_days = 0 if not validate_integer(extra_package): extra_package = 0 if not add_days_for_limited: add_days_for_limited = False else: add_days_for_limited = True send_gift_for_users.delay(users, int(add_days), int(extra_package), add_days_for_limited) else: inbox = request.POST.get('box') is not None sms = request.POST.get('s') is not None mail = request.POST.get('e') is not None use_template = request.POST.get('t') is not None msg = request.POST.get('msg') if not (inbox or sms or mail): return render( request, 'errors/CustomError.html', {'error_message': _('please select a notify type')}) if not msg: return render( request, 'errors/CustomError.html', {'error_message': _('please enter a message for users')}) fire_event(5267, None, None, request.user.pk) for u in users: if use_template: send_from_template.delay(u.pk, 10, otx=msg) else: send_notifications(u.pk, msg, sms, mail, inbox) return redirect(reverse(show_all_notifications)) else: return render(request, 'errors/AccessDenied.html')
def assign_group(request): if request.method == 'GET': user = request.GET.get('u') action = request.GET.get('a') uid = request.GET.get('uid') gid = request.GET.get('gid') if action == 'a': if not uid and not gid: return redirect(reverse(search_users)) try: u = User.objects.get(pk=uid) g = Group.objects.get(pk=gid) u.groups.add(g) u.save() fire_event(3141, u, g.name, request.user.pk) except Exception as e: print e.message # log.error(e.message) return render(request, 'errors/ServerError.html') elif action == 'b': if not uid and not gid: return redirect(reverse(search_users)) try: u = User.objects.get(pk=uid) g = Group.objects.get(pk=gid) u.groups.remove(g) u.save() fire_event(4212, u, g.name, request.user.pk) except Exception as e: print e.message return render(request, 'errors/ServerError.html') if user is not None: try: u = User.objects.get(username=user) insert_new_action_log(request, u.pk, _('assign group to user')) joined_groups = u.groups.all().values_list('id', flat=True) except Exception as e: print e.message return HttpResponseBadRequest(_('user name is invalid')) elif uid is not None: u = User.objects.get(pk=uid) joined_groups = u.groups.all().values_list('id', flat=True) else: return redirect(reverse(search_users)) return render(request, 'user/AssignAGroup.html', {'username_value': u.username, 'userid_value': u.pk, 'groups': Group.objects.all(), 'joined_groups': joined_groups}) else: return render(request, 'errors/AccessDenied.html')
def add_pop_site(request): name = request.POST.get('n') description = request.POST.get('d') if not name: return send_error(request, _('please enter name')) if not description: return send_error(request, _('please enter description')) if PopSite.objects.filter(name__iexact=name).exists(): return send_error(request, _('item exists')) p = PopSite() p.name = name p.description = description p.save() fire_event(6010001, p, None, request.user.pk) return HttpResponse('%s' % p.pk)
def create_department(request): if request.method == 'GET': did = request.GET.get('d') try: groups = Group.objects.all() except Exception as e: print e.message return render(request, 'errors/ServerError.html') if validate_integer(did): try: department = HelpDepartment.objects.get(pk=did) return render(request, 'help_desk/CreateDepartment.html', { 'dep': department, 'groups': groups }) except Exception as e: print e.message return render(request, 'errors/ServerError.html') return render(request, 'help_desk/CreateDepartment.html', {'groups': groups}) elif request.method == 'POST': gid = request.POST.get('slGroups', 'Invalid') name = request.POST.get('txtName') d = request.POST.get('d') if not validate_integer(gid) or gid == '-1': return render(request, 'errors/CustomError.html', {'error_message': _('no group selected')}) if not validate_empty_str(name): return render(request, 'errors/CustomError.html', {'error_message': _('enter a name please')}) try: if validate_integer(d): h = HelpDepartment.objects.get(pk=d) else: h = HelpDepartment() h.group = Group.objects.get(pk=gid) h.department_name = name # insert_new_action_log(request, None, _('create or update help department') + ' :' + name) h.save() fire_event(3617, h, None, request.user.pk) return redirect(reverse(show_all_departments)) except DBRecordExist: return render(request, 'errors/CustomError.html', {'error_message': _('the department name is exist')}) except DBInsertException as e: print e.message return render(request, 'errors/ServerError.html')
def toggle_lock_personnel_user(request): if request.method == "GET": uid = request.GET.get('u') if not validate_integer(uid): return redirect('/') if not User.objects.filter(pk=uid).exists(): return redirect('/') if request.user.pk == int(uid): return redirect('/user/nav/?uid=%s' % uid) u = User.objects.get(pk=uid) u.is_active = not u.is_active u.save() fire_event(5224, u, None, request.user.pk) return redirect('/user/nav/?uid=%s' % uid) else: return render(request, 'errors/AccessDenied.html')
def accept_document(request): accept_document.__cid__ = 2011001 if request.method == 'GET': doc = request.GET.get('d') if not doc: return redirect(reverse(manage_uploads)) try: d = UserFiles.objects.get(pk=doc) d.approved = True d.save() fire_event(accept_document, d, None, request.user.pk) return redirect(reverse(manage_uploads)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def manage_group_routing(request): """ @param request: @return: @type request: django.core.handlers.wsgi.WSGIRequest """ if request.method != 'GET': return render(request, 'errors/AccessDenied.html') action = request.GET.get('a') try: banks = Banks.objects.all() # get_banking_gateways(True) if action == 'a': bank_id = request.GET.get('b') price_list = request.GET.get('p') if not validate_integer(bank_id): return render(request, 'errors/CustomError.html', {'error_message': _('invalid bank')}) if not validate_integer(price_list): return render(request, 'errors/CustomError.html', {'error_message': _('invalid price list')}) if not ServiceGroups.objects.filter(pk=price_list).exists(): return redirect(reverse(service_group_management)) lst_ids = banks.values_list('internal_value', flat=True) if not int(bank_id) in lst_ids: return redirect(reverse(manage_group_routing)) if not ServiceGroupRouting.objects.filter( group=price_list).exists(): plr = ServiceGroupRouting() else: plr = ServiceGroupRouting.objects.get(group=price_list) plr.group = ServiceGroups.objects.get(pk=price_list) plr.bank = bank_id plr.save() fire_event(4357, plr, None, request.user.pk) # routing = PriceListRouting.objects.all() prices = ServiceGroups.objects.filter(is_deleted=False) return render(request, 'finance/groups/AssignRouting.html', { 'banks': banks, 'routing': prices }) except Exception as e: print e.args[0] return render(request, 'errors/ServerError.html')
def e_pay_invoice(request): if request.method == 'GET': invoice = validate_invoice(request.GET.get('f')) if not invoice: return redirect(reverse(show_all_invoices)) try: return render(request, 'finance/payment/EPayment.html', {'f': invoice}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': invoice = validate_invoice(request.POST.get('f')) if not invoice: return redirect(reverse(show_all_invoices)) if request.POST.get('db') == '1': pi = PayInvoice(invoice=invoice.pk, price=0, use_discount=False, comment=_('auto payment and charge'), is_online=False, ref_code='-', is_system=True, request=request) if pi.pay().get_invoice(): pi.commit() return redirect(reverse(show_all_invoices)) try: bank = invoice.user.fk_user_service_group_user.get( ).service_group.fk_service_group_routing_group.get().bank except Exception: bank = 1 if bank == 1: return redirect(reverse(pay_invoice) + '?f=%s' % invoice.pk) elif bank == 2: return redirect( reverse(parsian_pay_invoice) + '?f=%s' % invoice.pk) elif bank == 3: return redirect(reverse(pasargad_payment) + '?f=%s' % invoice.pk) else: fire_event(5137, invoice.pk) return redirect(reverse(show_all_invoices)) else: return render(request, 'errors/AccessDenied.html')
def create_ticket(request): if request.method == 'GET': try: dep = HelpDepartment.objects.all() return render(request, 'help_desk/CreateTicket.html', {'dep': dep}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': uid = request.user.pk description = request.POST.get('description') dep = request.POST.get('slDepartment') title = request.POST.get('txtTitle') if not validate_empty_str(description): return render(request, 'errors/CustomError.html', {'error_message': _('please enter description')}) if not validate_empty_str(title): return render(request, 'errors/CustomError.html', {'error_message': _('please enter title')}) if not validate_integer(dep): return render(request, 'errors/CustomError.html', {'error_message': _('please select department')}) hd = HelpDesk() hd.department = HelpDepartment.objects.get(pk=dep) hd.state = HelpDeskState.objects.get(value=0) hd.title = title hd.user = request.user hd.create_time = datetime.today() try: hd.save() t = Ticket() t.description = description t.help_desk = hd t.time = datetime.today() t.save() fire_event(3411, t, None, request.user.pk) HelpDeskTicketCreated().send(user_id=uid, title=hd.title, pk=hd.pk) return redirect(reverse(show_all_tickets)) except Exception as e: print '0x500' print e.args[1] return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def install_bank_api(bank_identifier): """ Install Bank api to DB @param bank_identifier: The bank identifier @return: """ try: bgw = get_banking_gateways() for b in bgw: if b.get('identifier') == int(bank_identifier): if Banks.objects.filter( internal_value=bank_identifier).exists(): bk = Banks.objects.get(internal_value=bank_identifier) else: bk = Banks() bk.internal_value = int(bank_identifier) bk.name = b.get('name') bk.save() if BankProperties.objects.filter(bank=bk.pk).exists(): bpr = BankProperties.objects.filter(bank=bk.pk) old_names = bpr.values_list('name', flat=True) for p2 in b.get('properties'): if p2 not in old_names: bpr_x = BankProperties() bpr_x.name = p2 bpr_x.bank = bk bpr_x.save() else: # transaction.set_autocommit(False) for p in b.get('properties'): bpr = BankProperties() bpr.bank = bk bpr.name = p bpr.save() # transaction.commit() # transaction.set_autocommit(True) fire_event(6005, bk, None, 1) return True return False except Exception as e: print e.message # print 'ERROR HERE' return False
def add_new_problem(request): if request.method == 'GET': p = request.GET.get('p') # insert_new_action_log(request, None, _('view problems')) if p is None: return render(request, 'help_desk/call/AddProblems.html') try: problem = UserProblems.objects.get(pk=p) return render(request, 'help_desk/call/AddProblems.html', {'problem': problem}) except Exception as e: print e.message return render(request, 'errors/ServerError.html') elif request.method == 'POST': pid = request.POST.get('p', None) short_text = request.POST.get('txtShort') description = request.POST.get('txtDescription') if not short_text: return render( request, 'errors/CustomError.html', {'error_message': _('please enter short description')}) if not description: return render(request, 'errors/CustomError.html', {'error_message': _('please enter description')}) if not pid: up = UserProblems() else: if UserProblems.objects.filter(pk=int(pid)).exists(): up = UserProblems.objects.get(pk=int(pid)) else: return render(request, 'errors/ServerError.html') up.description = description up.short_text = short_text try: up.save() fire_event(3142, up, None, request.user.pk) return redirect(reverse(view_all_problems)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def delete_help_department(request, **k): if request.method == 'GET': d = request.GET.get('d') if not d: return redirect(k['back']) hlp = HelpDepartment.objects.get(pk=d) return render(request, 'help_desk/DeleteDepartment.html', {'dep': hlp}) elif request.method == 'POST': if request.POST.get('cancel'): return redirect(reverse(show_all_departments)) d = request.POST.get('d') if not d: return redirect(reverse(show_all_departments)) try: HelpDepartment.objects.get(pk=d).delete() fire_event(4020, None, str(d), request.user.pk) return redirect(reverse(show_all_departments)) except Exception as e: print e.message return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def pay_invoice(request): if request.method == 'GET': fid = request.GET.get('f') if not validate_integer(fid): return redirect(reverse(show_all_invoices)) try: f = Invoice.objects.get(pk=fid) if f.is_paid: fire_event(4163, f, None, None) # send_to_dashboard(4163, f.user_id, None) return redirect(reverse(show_all_invoices)) data = BankProperties.objects.filter( bank__internal_value=identifier) terminal_id = long(data.get(name=properties[2]).value) bank_username = data.get(name=properties[0]).value bank_password = data.get(name=properties[1]).value bml = BMLPaymentAPI(bank_username, bank_password, terminal_id) # order_id = long(f.pk) price = long(f.price - f.debit_price) * 10 # rial correction call_back = str( read_config(name='login_base_address') + 'factor/mrt/') error_counter = 0 f.comment = _('bank mellat payment') f.save() while error_counter < 10: t = InvoicePaymentTracking() t.invoice = f t.start_time = datetime.today() t.end_time = datetime.now() t.save() res = bml.request_pay_ref(long(t.pk), price, call_back, '') if res: t.initial_res = res t.save() # send_to_dashboard(5727, f.user_id) fire_event(5727, t, None, None) # l.info("Got the token from bank : %s" % res) return render( request, 'finance/payment/mellat/Payment.html', { 'invoice': f, 'rid': res, 'action_page': bml.get_payment_address() }) else: error_counter += 1 t.is_success = False t.end_time = datetime.today() t.final_res = 'INIT ERROR' continue # send_to_dashboard(5505, f.user_id) fire_event(5505, f, None, None) return redirect(reverse(show_all_invoices)) except Exception as e: em = " ".join(e.args) print("Unable to complete payment request : %s" % em) return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')
def delete_tower_problem(request): ia = check_ajax(request) if request.method == 'GET': d = request.GET.get('d') if not validate_integer(d): if ia: return HttpResponseBadRequest(_('invalid tower id')) return render(request, 'errors/CustomError.html', {'error_message': _('invalid tower id')}) if not TowerProblemReport.objects.filter(pk=d).exists(): if ia: return HttpResponseBadRequest(_('no such tower found')) return render(request, 'errors/CustomError.html', {'error_message': _('no such tower found')}) data = TowerProblemReport.objects.get(pk=d) data.is_deleted = True data.save() fire_event(4010005, data, None, request.user.pk) if ia: return HttpResponse('200') return redirect(reverse(view_towers)) if ia: return HttpResponseBadRequest(_('invalid method')) return redirect(reverse(view_towers))
def parsian_pay_invoice(request): if request.method == 'GET': fid = request.GET.get('f') if not validate_integer(fid): return redirect(reverse(show_all_invoices)) try: f = Invoice.objects.get(pk=fid) if f.is_paid: fire_event(4163, f, None, None) return redirect(reverse(show_all_invoices)) pin = BankProperties.objects.filter( bank__internal_value=identifier).get(name=properties[0]).value pb = BPPaymentAPI(pin=pin) tracker = InvoicePaymentTracking() tracker.invoice = f tracker.start_time = datetime.today() tracker.end_time = datetime.today() tracker.save() order_id = int(tracker.id) price = int(f.price) # call_back = str(bs.objects.get(name='base_address').value + reverse(parsian_post_back)) call_back = str('http://onlinepayment.i-net.ir/' + reverse(parsian_post_back)) res = pb.request_pay_ref(order_id, price * 10, call_back) f.comment = _('bank parsian payment') # f.ref_number = res[1] # tracker.initial_res = str(res[1]) tracker.save() f.save() if res[0] == 0: # tracker.bank_res_code = res[1] tracker.initial_res = '0' tracker.final_res = str(res[1]) tracker.save() fire_event(5727, tracker, None, None) return redirect(pb.get_payment_address() + '?au=%s' % res[1]) # tracker.result = res[0] # tracker.save() tracker.is_success = False tracker.end_time = datetime.today() fire_event(5505, f, None, None) return redirect(reverse(show_all_invoices) + '?pk=%s' % f.pk) except Exception as e: print e.args[1] return render(request, 'errors/ServerError.html') else: return render(request, 'errors/AccessDenied.html')