Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
 def __expire_user(self, user_id, days):
     ibs = IBSManager()
     ibs.set_expire_date_by_uid(user_id, days)
     print('[OK]')