def update_nearest_exp_date(self): users = IBSUserInfo.objects.all() for u in users: try: ibs = IBSManager() ibs.set_expire_date_by_uid(u.ibs_uid, 1) ibs.set_expire_date_by_uid(u.ibs_uid, -1) except Exception: pass
def __update_from_invoice(self): users = IBSUserInfo.objects.all() log = open('/var/CRM/export_ibs.txt', 'a+') for u in users: invoices = u.user.fk_invoice_user.filter( Q(service__service_type=12) | Q(service__service_type=1), extra_data__gt=0, is_paid=True).order_by('pk').last() if invoices is None: continue ibs = IBSManager() try: expire_date = parse_date_from_str_to_julian( ibs.get_expire_date_by_uid(u.ibs_uid)) except Exception as e: print(e.message or e.args) continue if expire_date is None: continue expire_date = make_aware(expire_date) if expire_date <= invoices.pay_time: ds = FloatDiscount.objects.filter( charge_month=invoices.extra_data).first() if ds: extra_charges = ds.extra_charge else: extra_charges = 0 # to_add = to_add_delta.days real_time = invoices.pay_time + timedelta( (invoices.extra_data * 30) + extra_charges) dt = make_naive(real_time) - datetime.today() # to_add_delta = real_time - expire_date to_add = dt.days if 0 >= to_add >= -2: to_add = 2 elif to_add < -3: continue ibs.set_expire_date_by_uid(u.ibs_uid, to_add) res = 'invoice : %s, expires : %s, paid : %s, real : %s, ADDS : %s' % \ (invoices.pk, expire_date, invoices.pay_time, real_time, to_add) log.write(res) print(res)
def unlock_account(self): user = self.get_target_user(True) locked = LockedUsers.objects.filter(user=user.pk).first() if locked: if locked.ibs_locked: ibs = IBSManager() ibi = IBSUserInfo.objects.get(user=user.pk).ibs_uid dt = datetime.today().date() - locked.lock_date.date() x = UserServiceStatus(user.pk) a = datetime.today().date( ) - x.current_service.expire_date.date() to_add = a.days if to_add < 0: to_add = a.days * (-1) if dt.days > 20: ibs.set_expire_date_by_uid(ibi, to_add, True) # fire_event(4237, user, None, self.requester.pk) ibs.unlock_user(ibi) locked.delete() user.is_active = True user.save() UnlockAccountEventHandler().fire(user, None, self.requester, True) return True
def send_gift_for_users(users, add_days, add_package, add_days_for_limited=False): # assert isinstance(users, User.objects) for u in users: # assert isinstance(u, User) if not u.is_active: continue if not u.fk_user_current_service_user.exists(): continue user_service = u.fk_user_current_service_user.get() if not u.fk_ibs_user_info_user.exists(): continue ibi = u.fk_ibs_user_info_user.get().ibs_uid if not user_service.is_active: continue ibs = IBSManager() gh = GiftHistory() gh.target_user = u gh.extended_days = int(add_days) gh.extended_package = int(add_package) gh.save() if add_days > 0: if user_service.service_property.initial_package > 0 and add_days_for_limited: ibs.set_expire_date_by_uid(ibi, add_days) if user_service.service_property.initial_package == 0: ibs.set_expire_date_by_uid(ibi, add_days) if add_package > 0 and user_service.service_property.initial_package > 0: ibs.change_credit_by_uid(add_package, ibi) add_package = convert_credit(add_package) trm = convert_credit(ibs.get_user_credit_by_user_id(ibi)) else: trm = None kw = {'name': '', 'ta': add_package, 'exp': convert_date(parse_date_from_str_to_julian(str(ibs.get_expire_date_by_uid(ibi)))), 'ads': add_days, 'trm': trm} send_from_template(u.pk, 17, **kw)
def __expire_user(self, user_id, days): ibs = IBSManager() ibs.set_expire_date_by_uid(user_id, days) print('[OK]')