def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     PERFECT_USER_ID_VALUE = TanzimatPaye.get_settings(PERFECT_USER_ID, 0)
     PERFECT_TITLE_VALUE = TanzimatPaye.get_settings(PERFECT_TITLE, 0)
     PERFECT_PASSPHRASE_VALUE = TanzimatPaye.get_settings(
         PERFECT_PASSPHRASE, 0)
     context['form'].fields[
         'PERFECT_USER_ID'].initial = PERFECT_USER_ID_VALUE
     context['form'].fields['PAYEE_NAME'].initial = PERFECT_TITLE_VALUE
     context['form'].fields['Passphrase'].initial = PERFECT_PASSPHRASE_VALUE
     return context
 def get_context_data(self, *, object_list=None, **kwargs):
     context = super().get_context_data(object_list=object_list, **kwargs)
     if self.request.session.get('dargah_type') == '1':
         form = Form()
         form.fields = {}
         action_url = "https://perfectmoney.is/api/step1.asp"
         how_much = self.request.session.get("how_much")
         submit_name = "PAYMENT_METHOD"
         dargah_type = "Perfect Money"
         PERFECT_USER_ID_VALUE = TanzimatPaye.get_settings(
             PERFECT_USER_ID, 0)
         PUI = forms.CharField(initial=PERFECT_USER_ID_VALUE,
                               widget=forms.HiddenInput())
         form.fields["PAYEE_ACCOUNT"] = PUI
         PAYMENT_ID = forms.CharField(
             initial=self.request.session.get('payment_id'),
             widget=forms.HiddenInput())
         form.fields["PAYMENT_ID"] = PAYMENT_ID
         PERFECT_TITLE_VALUE = TanzimatPaye.get_settings(PERFECT_TITLE, 0)
         PT = forms.CharField(initial=PERFECT_TITLE_VALUE,
                              widget=forms.HiddenInput())
         form.fields["PAYEE_NAME"] = PT
         PAYMENT_AMOUNT = forms.CharField(
             initial=self.request.session.get("how_much"),
             widget=forms.HiddenInput())
         form.fields["PAYMENT_AMOUNT"] = PAYMENT_AMOUNT
         PAYMENT_UNITS = forms.CharField(initial="USD",
                                         widget=forms.HiddenInput())
         form.fields["PAYMENT_UNITS"] = PAYMENT_UNITS
         STATUS_URL = forms.CharField(
             initial="http://9ed79c3b.ngrok.io/system/perfectpaymentstatus",
             widget=forms.HiddenInput())
         form.fields["STATUS_URL"] = STATUS_URL
         PAYMENT_URL = forms.CharField(
             initial="http://9ed79c3b.ngrok.io/system/perfectpaymentsuccess",
             widget=forms.HiddenInput())
         form.fields["PAYMENT_URL"] = PAYMENT_URL
         PAYMENT_URL_METHOD = forms.CharField(initial="GET",
                                              widget=forms.HiddenInput())
         form.fields["PAYMENT_URL_METHOD"] = PAYMENT_URL_METHOD
         NOPAYMENT_URL = forms.CharField(
             initial="http://9ed79c3b.ngrok.io/system/perfect_money_F",
             widget=forms.HiddenInput())
         form.fields["NOPAYMENT_URL"] = NOPAYMENT_URL
         NOPAYMENT_URL_METHOD = forms.CharField(initial="GET",
                                                widget=forms.HiddenInput())
         form.fields["NOPAYMENT_URL_METHOD"] = NOPAYMENT_URL_METHOD
         context["form"] = form
         context["action_url"] = action_url
         context["how_much"] = how_much
         context["submit_name"] = submit_name
         context["dargah_type"] = dargah_type
     return context
Beispiel #3
0
    def form_valid(self, form):
        if not self.request.user.is_superuser:
            t = form.instance.text.__len__()
            max_t = int(TanzimatPaye.get_settings(TAIEN_MEGHDAR_MATLAB, False))
            if t > max_t:
                messages.error(self.request, _("Ad text is too long"))
                return super(TablighCreateView, self).form_invalid(form)

            try:
                obj = Tabligh.objects.get(pk=self.object.pk)
            except:
                messages.error(
                    self.request,
                    _("While updating the Ad some problem occurred"))
                return self.form_invalid(form)
            form.instance.code_tabligh_gozaar_id = self.request.user.id

            if form.instance.onvan != obj.onvan or form.instance.text != obj.text:
                form.instance.vazeyat = 3
            else:
                form.instance.vazeyat = self.object.vazeyat

            form.instance.code_pelan = obj.code_pelan
            form.instance.tedad_click = obj.tedad_click
            form.instance.tedad_click_shode = obj.tedad_click_shode

        messages.success(self.request, _("Your Ad is updated"))
        return super(TablighUpdateView, self).form_valid(form)
Beispiel #4
0
 def get_form(self, form_class=None):
     form = super().get_form(form_class)
     if not self.request.user.is_superuser:
         form.fields['code_tabligh_gozaar'].required = False
     if not TanzimatPaye.get_settings(CLICK_IS_CHANGEABLE, 0):
         del form.fields['tedad_click']
     return form
 def middleware(request):
     t = TanzimatPaye.get_settings(LANGUGE_SITE, 0)
     if t == 1:
         lang = 'fa'
     else:
         lang = 'en'
     translation.activate(lang)
     response = get_response(request)
     return response
    def post(self, request):
        sode_modir, cre = TanzimatPaye.objects.get_or_create(onvan=SODE_MODIR,
                                                             defaults={
                                                                 "onvan":
                                                                 SODE_MODIR,
                                                                 'value': 0,
                                                             })
        max_count_level_network, cre = TanzimatPaye.objects.get_or_create(
            onvan=COUNT_LEVEL_NETWORK,
            defaults={
                "onvan": COUNT_LEVEL_NETWORK,
                'value': 5,
            })

        if "levelnetwork_form" in self.request.POST:
            form = Count_level_networkForm(request.POST)
            if int(request.POST.get("onvan")) > int(
                    TanzimatPaye.get_settings(COUNT_LEVEL_NETWORK, 0)):
                messages.error(self.request, _("Level you exceeds max level"))
                return self.get(request)
            onvan = request.POST.get("onvan")
            onvan = Count_Level_networkView.starts_with + str(int(onvan))
            messages.success(self.request, _("Level is created"))
            t = TanzimatPaye.objects.update_or_create(
                onvan=onvan,
                defaults={
                    "onvan": onvan,
                    'value': request.POST.get("value"),
                })
        elif "sod_form" in request.POST:
            sode_modir.value = request.POST.get("sode_modir")
            sode_modir.save()
            max_count_level_network.value = request.POST.get(
                "had_aksar_count_level")
            max_count_level_network.save()
            messages.success(
                self.request,
                "بروزرسانی سود مدیر و حداکثر سطح با موفقیت انجام شد.")
        sod_form = sod_modir_max_count_level_FormSetting(
            data={
                "sode_modir": sode_modir.value,
                "had_aksar_count_level": max_count_level_network.value
            })
        levelnetwork_form = Count_level_networkForm
        return render(request, 'system/TanzimatPaye/Count_level_network.html',
                      {
                          'sod_form': sod_form,
                          'form': levelnetwork_form
                      })
Beispiel #7
0
 def after_init(self):
     if 'code_moaref' in self.Meta.fields:
         if not hasattr(self, 'clean_code_moaref'):
             setattr(self, 'clean_code_moaref', self.validate_code_moarefi)
         try:
             active_moarefi = int(TanzimatPaye.get_settings(
                 ACTIV_MOAREF, 0))
             if active_moarefi:
                 self.fields['code_moaref'].required = True
                 self.add_field_message_error_direct(
                     'code_moaref', 'required',
                     _("Referral Code is Required"))
             else:
                 self.fields['code_moaref'].required = False
         except:
             pass
     pass
    def form_valid(self, form):
        if "update_sath_network" in self.request.POST:
            if int(form.instance.onvan) > int(
                    TanzimatPaye.get_settings(COUNT_LEVEL_NETWORK, 0)):
                messages.error(self.request, _("Level you exceeds max level"))
                return super(Count_Level_networkView, self).form_invalid(form)

            form.instance.onvan = Count_Level_networkView.starts_with + str(
                int(form.instance.onvan))
            messages.success(self.request, _("Level is created"))
            t = TanzimatPaye.objects.filter(
                onvan=form.instance.onvan).first()  # type:TanzimatPaye
            if t:
                t.value = form.instance.value
                t.save()
                return HttpResponseRedirect(self.get_success_url())
        return super(Count_Level_networkView, self).form_valid(form)
Beispiel #9
0
    def get(self, request, enteshartoken):
        enteshartoken = enteshartoken.split('--')
        if len(enteshartoken) < 2 or not isinstance(enteshartoken[1], str) \
                or not enteshartoken[1].isdigit():
            raise Http404()

        user_id = enteshartoken[1]
        enteshartoken = enteshartoken[0]

        tabligh = get_object_or_404(Tabligh, random_url=enteshartoken)

        if tabligh.vazeyat == 4:
            raise Http404()
        elif tabligh.tedad_click_shode + 1 > tabligh.tedad_click:
            tabligh.vazeyat = 4
            tabligh.save()
            raise Http404()
        user = get_object_or_404(User, pk=int(user_id))
        del user_id
        click = Click()
        click.tabligh = tabligh
        click.montasher_konande = user
        click.ip = get_client_ip(request)
        sode_modir = TanzimatPaye.get_settings(SODE_MODIR, 0)
        max_sath_sod = TanzimatPaye.get_settings(COUNT_LEVEL_NETWORK, 0)

        # get sath user
        tabligh_first_sath = SoodeTabligh.objects.filter(
            Q(sath__lte=user.sath) & ~Q(sath=0)).order_by('-sath').first()
        if tabligh_first_sath:
            tabligh_first_sath_sood = tabligh_first_sath.soode_mostaghim
            tabligh_first_sath = tabligh_first_sath.sath
            user.add_to_kif_daramad(tabligh_first_sath_sood, direct=True)
            click.mablagh_har_click = tabligh_first_sath_sood
            click.save()
            # if soode_sath:
            #     User.objects.filter(is_superuser=True).first().add_to_kif_pool(soode_sath.soode_mostaghim)
            if user.list_parent is not None:
                jsonDec = json.decoder.JSONDecoder()
                list_parent = jsonDec.decode(user.list_parent)

                for ids, parent in enumerate(list_parent):
                    if ids + 1 <= max_sath_sod:
                        parent_user = User.objects.filter(id=parent[0]).first()
                        if parent_user.sath < tabligh_first_sath:
                            if parent_user is not None:
                                soode_sath = SoodeTabligh.objects.filter(
                                    sath=parent_user.sath,
                                    tabligh=tabligh).first()
                                if soode_sath:
                                    parent_user.add_to_kif_daramad(
                                        soode_sath.soode_gheire_mostaghim,
                                        direct=False)
                                    HistoryIndirect.objects.create(
                                        montasher_konande=user,
                                        parent=parent_user,
                                        mablagh=soode_sath.
                                        soode_gheire_mostaghim)
            else:
                soode_sath = SoodeTabligh.objects.filter(
                    sath=1, tabligh=tabligh).first()
                if soode_sath:
                    user.add_to_kif_daramad(soode_sath.soode_mostaghim,
                                            direct=True)
        else:
            click.mablagh_har_click = tabligh_first_sath.mablagh_har_click
            click.save()
        if user.id != request.user.id:
            tabligh.tedad_click_shode += 1
            tabligh.save()

        return render(request,
                      'system/Tabligh/Show_Tabligh.html',
                      context={
                          "tabligh": tabligh,
                          "montasher_konande": user,
                      })
Beispiel #10
0
def setting(key, default):
    settings = TanzimatPaye.get_settings(key, default)
    return settings
    def form_valid(self, form):
        accept = self.request.POST.get("accept", False)
        if not accept or accept == 'on':
            if not accept:
                messages.error(self.request, _("Please accept the rules"))
                return super(UserCreateView, self).form_invalid(form)
        else:
            messages.error(self.request, _("Wrong input"))
            return super(UserCreateView, self).form_invalid(form)

        form.instance.vazeyat = 1

        if TanzimatPaye.get_settings(ACTIV_MOAREF, False) == '1':
            id_moaref = form.instance.code_moaref_id
            user = User.objects.get(pk=id_moaref)
            max_level = int(
                TanzimatPaye.get_settings(COUNT_LEVEL_NETWORK, False))
            if user is not None:
                if int(user.sath) + 1 > max_level:
                    messages.error(self.request,
                                   _("Level you exceeds max level"))
                    return super(UserCreateView, self).form_invalid(form)
                form.instance.sath = user.sath + 1
                if user.list_parent is not None:
                    jsonDec = json.decoder.JSONDecoder()
                    parents = jsonDec.decode(user.list_parent)
                    parents.insert(0, [user.id])
                    json_parent = json.dumps(parents)
                    new_user = form.save(commit=False)
                    new_user.list_parent = json_parent
                    new_user.save()
                else:
                    parent = []
                    parent.append([user.id])
                    json_parent = json.dumps(parent)
                    new_user = form.save(commit=False)
                    new_user.list_parent = json_parent
                    new_user.save()
            else:
                messages.error(self.request, _("Referral Code is wrong"))
                return super(UserCreateView, self).form_invalid(form)
        else:
            if form.instance.code_moaref is not None:
                id_moaref = form.instance.code_moaref_id
                user = User.objects.get(pk=id_moaref)
                max_level = int(
                    TanzimatPaye.get_settings(COUNT_LEVEL_NETWORK, False))
                if user is not None:
                    if int(user.sath) + 1 > max_level:
                        messages.error(self.request,
                                       _("Level you exceeds max level"))
                        return super(UserCreateView, self).form_invalid(form)
                    form.instance.sath = user.sath + 1
                    if user.list_parent is not None:
                        jsonDec = json.decoder.JSONDecoder()
                        parents = jsonDec.decode(user.list_parent)
                        parents.insert(0, [user.id])
                        json_parent = json.dumps(parents)
                        new_user = form.save(commit=False)
                        new_user.list_parent = json_parent
                        new_user.save()
                    else:
                        parent = []
                        parent.append([user.id])
                        json_parent = json.dumps(parent)
                        new_user = form.save(commit=False)
                        new_user.list_parent = json_parent
                        new_user.save()
                else:
                    messages.error(self.request, _("Referral Code is wrong"))
                    return super(UserCreateView, self).form_invalid(form)
            else:
                form.instance.sath = 1
        return super(UserCreateView, self).form_valid(form)
Beispiel #12
0
    def form_valid(self, form):
        form.instance.code_tabligh_gozaar_id = self.request.user.id
        t = form.instance.text.__len__()

        max_t = int(TanzimatPaye.get_settings(TAIEN_MEGHDAR_MATLAB, False))
        if t > max_t:
            messages.error(self.request, _("Ad text is too long"))
            return super(TablighCreateView, self).form_invalid(form)

        if TanzimatPaye.get_settings(TAIED_KHODKAR_TABLIGH, False) == '1':
            form.instance.vazeyat = 1
        else:
            form.instance.vazeyat = 3
        r = form.instance.code_pelan.gheymat
        kife_pool = self.request.user.get_kif_kif_pool()
        pool = kife_pool.current_balance
        if pool < r:
            messages.error(self.request, _("Your balance is too low"))
            return super(TablighCreateView, self).form_invalid(form)

        if not TanzimatPaye.get_settings(CLICK_IS_CHANGEABLE, 0):
            form.instance.mablagh_har_click = form.instance.code_pelan.gheymat / form.instance.code_pelan.tedad_click
            form.instance.tedad_click = form.instance.code_pelan.tedad_click
        else:
            form.instance.mablagh_har_click = form.instance.code_pelan.gheymat / form.instance.tedad_click

        form.instance.mablagh_tabligh = form.instance.code_pelan.gheymat

        random_string = list(
            self.random_string(12) + str(self.request.user.id))
        random.shuffle(random_string)
        random.shuffle(random_string)
        form.instance.random_url = ''.join(random_string)

        form = super(TablighCreateView, self).form_valid(form)
        try:
            kife_pool.current_balance = pool - r
            kife_pool.save()
        except Exception as e:
            # todo make sure balance is reduced
            print(e)
            messages.error(self.request,
                           _("While creating the Ad some problem occurred"))
            return super(TablighCreateView, self).form_invalid(form)
        tedad_sath_shabake = TanzimatPaye.get_settings(COUNT_LEVEL_NETWORK, 0)
        sode_modir = TanzimatPaye.get_settings(SODE_MODIR, 0)

        soode_admin_kol = ((self.object.mablagh_tabligh * sode_modir) / 100)
        soode_admin = ((self.object.mablagh_har_click * sode_modir) / 100)
        pool_ezafe = self.object.mablagh_har_click - soode_admin
        User.objects.filter(
            is_superuser=True).first().add_to_kif_pool(soode_admin_kol)
        SoodeTabligh.objects.get_or_create(sath=0,
                                           tabligh=self.object,
                                           defaults={
                                               "sath": 0,
                                               "tabligh": self.object,
                                               "soode_mostaghim":
                                               soode_admin_kol,
                                               "soode_gheire_mostaghim": 0,
                                           })

        if tedad_sath_shabake == 0:
            SoodeTabligh.objects.get_or_create(sath=1,
                                               tabligh=self.object,
                                               defaults={
                                                   "sath": 1,
                                                   "tabligh": self.object,
                                                   "soode_mostaghim":
                                                   pool_ezafe,
                                                   "soode_gheire_mostaghim": 0,
                                               })
        else:
            sum = 0
            for i in range(tedad_sath_shabake):
                sath = i + 1
                settings_sood = TanzimatPaye.get_settings(SATH + str(sath), 0)

                if settings_sood == 0:
                    sood = 0
                else:
                    sood = (pool_ezafe * settings_sood) / 100

                if settings_sood + sum == 0:
                    sood_gheir_mostaghim = 0
                else:
                    sood_gheir_mostaghim = (pool_ezafe *
                                            (settings_sood + sum)) / 100

                SoodeTabligh.objects.get_or_create(
                    sath=sath,
                    tabligh=self.object,
                    defaults={
                        "sath": sath,
                        "tabligh": self.object,
                        "soode_mostaghim": pool_ezafe - sood_gheir_mostaghim,
                        "soode_gheire_mostaghim": sood,
                    })
                sum += settings_sood

        messages.success(self.request, _("Your Ad is created"))
        return form
Beispiel #13
0
 def get_least_balance():
     if self.least_balance is None:
         self.least_balance = TanzimatPaye.get_settings(
             LEAST_BALANCE_REQUIRED, 0)
     return self.least_balance