Пример #1
0
    def handle(self, *args, **kwargs):
        freeze_status = Durum.objects.get(isim__contains='donduruldu')
        today = datetime.date.today()
        for teklif in Teklif.objects.filter(durum__isim__contains='donduruldu'):
            # Finding out until when the offer is freezed
            freezed_by = teklif.yapildi_set.filter(durum=freeze_status)[0]
            freeze_until = freezed_by.dondur
            
            if(today >= freeze_until):
                try:
                    # Check if a previous action exists with an entered status
                    previous_status = teklif.yapildi_set.exclude(Q(durum=freeze_status) | Q(durum=None))[0].durum
                except:
                    # If none found set it to 'eylem yapilmadi' (no action) status
                    previous_status = Durum.objects.get(pk=1)

                representative = teklif.temsilci
                teklif.durum = previous_status
                teklif.save()

                audiomail('*****@*****.**', [representative.email], 'Dondurulan teklif acildi',
"""Sayin %s,

%s tarihinde dondurdugunuz #%d numarali teklifiniz, bugun acilmistir. Bu teklifi dondururken yazdiginiz
aciklama mesaji: %s. 

Teklifin detaylari icin: %s

Iyi calismalar
"""             % (representative.get_full_name(), freezed_by.tarih.strftime('%d/%m/%y'), 
                   teklif.pk, freezed_by.mesaj, teklif.get_absolute_url()))
Пример #2
0
def update_teklif(sender,**kwargs):
    yapildi = kwargs['instance']
    teklif = yapildi.teklif
    if yapildi.durum:
        teklif.durum = yapildi.durum
    if yapildi.dosya:
        teklif.dosya = yapildi.dosya
    if yapildi.daire:
        teklif.daire = yapildi.daire
    if yapildi.tutar:
        teklif.tutar = yapildi.tutar
    if yapildi.axapta:
        teklif.axapta = yapildi.axapta
    try:
        teklif.temsilci = yapildi.delege
        teklif.bilgi.sorumlu.add(yapildi.delege)
        audiomail('*****@*****.**', [yapildi.delege.email], 'Audio Takip Sistemi', 
                  'Size %s bir teklif delege etti, numarasi: %d.\n\nBu adresten bilgilere erisebilirsiniz: ' \
                  'http://www.audio.com.tr/teklif/%d' % 
                  (yapildi.kullanici.get_full_name(), teklif.pk, teklif.pk))
    except:
        pass

    teklif.son_eylem = yapildi.tarih
    teklif.save()
Пример #3
0
def _send_ax():
    client = SoapClient('http://uzak.audio.com.tr:88/AxIntegrations/AxService.asmx', action='http://tempuri.org/', namespace='http://tempuri.org/', ns='tem')
    files = os.listdir(AX_QUEUE_FOLDER) 
    for name in files:
        try:
            path = os.path.join(AX_QUEUE_FOLDER, name)
            with open(path, 'r') as infile:
                data = json.load(infile)
            #data = dict([(k.encode('utf8'), v.encode('utf8')) for k, v in data.items()])
            bilgi = Bilgi.objects.get(pk=int(name))
            if bilgi.ax_code:
                raise Exception('Teklif %s already has an ax_code: %s, no duplicate allowed. %s' % (name, bilgi.ax_code, bilgi.tarih))
            resp = client.call('AddWebQuotationForm', **data)
            ax_code = str(resp.AddWebQuotationFormResult) 
            bilgi.ax_code = ax_code
            bilgi.save()
        except Exception as e:
            if isinstance(e, SoapFault) and e.faultcode == 'soap:Server':
                body = "%s\n\nRequest:\n\n%s\n\n\nResponse:\n\n%s\n" % (unicode(e).encode('utf8'), client.xml_request, client.xml_response)
                subject = 'Web Teklif Axapta Server Hatasi'
                audiomail('*****@*****.**', ['[email protected] '], subject, body)
                audiomail('*****@*****.**', ['*****@*****.**'], subject, body)
            logging.exception('hello')
        else:
            os.unlink(path)
Пример #4
0
 def process_request(self, request):
     ip = request.META.get('REMOTE_ADDR','YOK')
     if ip == '195.191.118.2' and not os.path.isfile('/home/refik/geldi'):
         os.system('touch /home/refik/geldi')
         audiomail('*****@*****.**', ['*****@*****.**'], 'asshole check', 'geldi kerata')
         return HttpResponse('<html><head><title>Audio Elektronik</title><script type="text/javascript">window.onload = function(){setTimeout(function(){open("http://www.audio.com.tr","_self");},6000);}</script></head><body><h1>Neyi kopyaladigimizi da yazsaymissin keske.</h1></h3><p>Bunun ne oldugu hakkinda bir fikriniz yoksa kusura bakmayin, sizin firmadan birisi bize sacma bir mesaj yollamis.</p></body></html>')
     else:
         return None
Пример #5
0
def sifremi_unuttum(request):
    mail = request.POST['email']
    user = User.objects.filter(email=mail, is_active=True)
    if user:
        user = user[0]
        password = generate_password()
        user.set_password(password)
        audiomail('*****@*****.**', [user.email], 'Audio Kullanici Sifre', """
Merhaba %s,

Bu maili, Audio Teklif sitesi girisindeki "sifremi unuttum" butonuna tikladiginiz icin aliyorsunuz. Bir yanlislik oldugunu dusunuyorsaniz lutfen birim yoneticinizle irtibata gecin.

Kullanici adiniz: %s
Yeni gecici sifreniz: %s

Lutfen bu sifreyi http://www.audio.com.tr/sifre-degistir adresinden degistirin.""" % (user.get_full_name(), user.username, password))
        print 'sifre', password
        user.save()
    return HttpResponse('Lutfen maillarinizi kontrol edin')
Пример #6
0
def yapildi_yolla(request):
    form = TeklifYapildiForm(request.POST)
    if form.is_valid():
        yapilan = form.save()
        teklif = yapilan.teklif
        durum_mesaji = ''
        dosya_veri = request.FILES.get('dosya',None)
        if dosya_veri:
            dosya_icerik = ContentFile(dosya_veri.read())
            yapilan.dosya.save(dosya_veri.name, dosya_icerik)
            durum_mesaji += u"\n[Yoruma eklenen dosya: %s]" \
                            % yapilan.dosya.url
        if yapilan.durum is not None:
            yapilan.teklif.durum = yapilan.durum
            durum_mesaji += u"\n[Durum degistirildi: %s]" \
                            % yapilan.durum.isim
        if form.fields.has_key('tutar'):
            value = form.cleaned_data['tutar']
            if value:
                teklif.tutar = value
                durum_mesaji += u"\n[Tutar girildi: %d]" \
                                % value
        if form.fields.has_key('daire'):
            value = form.cleaned_data['daire']
            if value:
                teklif.daire = value
                durum_mesaji += u"\n[Daire sayisi girildi: %d]" \
                                % value
        if form.fields.has_key('rakip'):
            value = form.cleaned_data['rakip']
            if value:
                teklif.rakip = value
                durum_mesaji += u"\n[Kazanan rakip girildi: %s]" \
                                % value.isim
        if form.fields.has_key('delege'):
            value = form.cleaned_data['delege']
            if value:
                teklif.bilgi.sorumlu.add(value)
                durum_mesaji += u"\n[Is delege edildi: %s]" \
                                % value.get_full_name()
                audiomail('*****@*****.**', [value.email], 'Audio Takip Sistemi', 'Size %s bir teklif delege etti, numarasi: %d.\n\nBu adresten bilgilere erisebilirsiniz: http://www.audio.com.tr/takip/%d' % (yapilan.kullanici.get_full_name(), teklif.bilgi.pk, teklif.bilgi.pk))
        if form.fields.has_key('sebep'):
            value = form.cleaned_data['sebep']
            if value:
                for v in value:
                    teklif.sebep.add(v)
                durum_mesaji += u"\n[Kaybetme sebepleri: %s]" \
                                % ', '.join([v.isim for v in list(value)])
        teklif.save()
        #audiomail(
        #    "*****@*****.**",
        #    [sorumlu.email for sorumlu in teklif.bilgi.sorumlu.all()] + \
        #    ['*****@*****.**'],
        #    str(teklif.bilgi.tip) + u'\' na Yorum Yapıldı',
        #    u'%d nolu müşteri isteğine yapılan yorum\n\nMesaj: %s\n' \
        #    u'%s\n\nhttp://www.audio.com.tr/takip/%d adresinden ' \
        #    u'detaylı inceleyebilirsiniz' % (teklif.bilgi.pk, 
        #                                    yapilan.mesaj, 
        #                                    durum_mesaji,
        #                                    teklif.bilgi.pk))
        return redirect('/takip/%d' % yapilan.teklif.bilgi.pk)
    else:
        return render_to_response('onizleme.html', 
                                  {'form':form},
                                  context_instance=RequestContext(request))
Пример #7
0
def yonetim_degistir(request):
    data = request.POST
    print data
    if data['action'] == 'bolge-sehir-ekle':
        sehir = Sehir.objects.get(pk=data['sehir_pk'])
        sehir.bolge_id = data['bolge_pk']
        sehir.save()
        print sehir, 'changed bolge', sehir.bolge_id
    elif data['action'] == 'temsilci-bolgeden-cikart':
        user = User.objects.get(pk=data['user_pk'])
        bolge = Bolge.objects.get(pk=data['bolge_pk'])
        user.profile.sorumluBolge.remove(bolge)
        print user, 'removed bolge', bolge
    elif data['action'] == 'bolge-temsilci-ekle':
        user = User.objects.get(pk=data['user_pk'])
        bolge = Bolge.objects.get(pk=data['bolge_pk'])
        user.profile.sorumluBolge.add(bolge)
        print user, 'added bolge', bolge
    elif data['action'] =='temsilci-sifre-sifirla':
        user = User.objects.get(pk=data['user_pk'])
        print user, 'sent password deletion' 
    elif data['action'] =='temsilci-sil':
        user = User.objects.get(pk=data['user_pk'])
        user.is_active = False
        user.save()
        print user, 'deactivated' 
    elif data['action'] =='temsilci-yarat':
        bolge = Bolge.objects.get(isim=data['bolge'])
        first = data['isim']
        last = data['soyisim']
        username = (first + last).lower()
        replace = {
            u' ': '', 
            u'ı': 'i', 
            u'ö': 'o', 
            u'ü': 'u',
            u'ş': 's',
            u'ç': 'c',
            u'ğ': 'g'}
        for k, v in replace.items():
            username = username.replace(k, v)
        user = User(first_name=first, last_name=last, username=username, email=data['email'])
        password = generate_password()
        user.set_password(password)
        user.save()
        gorev = CalisanGorev.objects.get(isim='Musteri Temsilcisi')
        profil = CalisanProfil(user=user, birincil=True, gorev=gorev)
        profil.save()
        tip = Tip.objects.get(isim='Teklif Formu')
        profil.sorumluTip.add(tip)
        user.profile.sorumluBolge.add(bolge)
        audiomail('*****@*****.**', [user.email], 'Audio Teklif Kullanici', """
Merhaba %s,

Web teklifleri sitesi icin bilgileriniz su sekilde:
kullanici adi: %s
sifre : %s

Sayfanin adresi http://www.audio.com.tr/teklif
Lutfen sifrenizi su adresten degistirin http://www.audio.com.tr/sifre-degistir

Iyi calismalar""" % (user.get_full_name(), user.username, password))

    return redirect('/teklif/yonetim/')
Пример #8
0
def formIslem(request,tip):
    success = False
    form = formSec(tip)
    record = None # Will be used if request is from auto offer
    sub_dict = lambda d, keys: {k:v for k,v in d.iteritems() if k in keys}
    offer_state = None
    if request.method == 'POST':
        post_dict = request.POST.copy() # Copy so it can be processed

        message = post_dict.get('mesaj','') # Original message
        sub_meta = sub_dict(request.META, ['HTTP_X_FORWARDED_FOR', 'HTTP_USER_AGENT', 'HTTP_REFERER']) # Get customer info
        sub_meta['source'] = request.COOKIES.get('__utmz')

        if post_dict.get('type','') == 'offer': # Check if it came from offer site
            state = post_dict.get('state') # State object to better inform
            offer_state = json.loads(state)
            request_info = state_to_message(offer_state, message) # Addition to original message
            post_dict.setlist('mesaj', [request_info]) # Update with new message
            record = OtomatikTeklif(musteri=json.dumps(sub_meta), durum=state) # Pack usefull info
        elif tip == 'teklif':
            record = OtomatikTeklif(musteri=json.dumps(sub_meta), durum={})


        bilgi = form(post_dict)
        valid = bilgi.is_valid()
        duplicate = None

        if valid:
            # cleaned_data attr is not present if the
            # form is not valid
            duplicate = bool(Bilgi.objects.filter(
                tarih__gt=datetime.date.today(),
                isim=bilgi.cleaned_data['isim'],
                mesaj=bilgi.cleaned_data['mesaj']).all())

        if valid and not duplicate:
            bilgi_db = bilgi.save()
            if tip == 'teklif':
                path = os.path.join(AX_QUEUE_FOLDER, str(bilgi_db.pk))
                data = {'name': bilgi_db.isim, 
                        'city': bilgi_db.sehir.isim,
                        'county': bilgi_db.ilce.isim if bilgi_db.ilce else None,
                        'phone': bilgi_db.telefon,
                        'email': bilgi_db.email,
                        'message': message, #saving unaltered message
                        'buildingType': None,
                        'product': None}
                if offer_state:
                    data['buildingType'] = t(offer_state['building'])
                    data['quoteAmount'] = int(offer_state['price'])
                    data['daireSayisi'] = offer_state['apartment']
                    data['blokSayisi'] = offer_state['block']
                    data['product'] = ("monitor: %s\n"
                                       "panel: %s\n"
                                       "ekstra: %s") % (offer_state['monitor']['id'], 
                                                        offer_state['panel']['id'] if offer_state.get('panel') else '',
                                                        ', '.join([t(extra) for extra in offer_state['extra']['monitors']] + [t(extra) for extra in offer_state['extra']['panels']])) 
                if not GELISTIRME:
                    with open(path, 'w+') as outfile:
                        json.dump(data, outfile)
                    send_ax()
            elif tip in ['iletisim', 'otomasyon']:
                path = os.path.join(OS_QUEUE_FOLDER, str(bilgi_db.pk))
                data = {'name': bilgi_db.isim, 
                        'city': bilgi_db.sehir.isim,
                        'phone': bilgi_db.telefon,
                        'subject': bilgi_db.baslik,
                        'email': bilgi_db.email,
                        'ip': request.META.get('REMOTE_ADDR', '31.222.163.32'),
                        'message': message}
                if tip == 'otomasyon':
                    data['topicId'] = 14
                else:
                    data['topicId'] = int(bilgi_db.konu)

                if not GELISTIRME:
                    with open(path, 'w+') as outfile:
                        json.dump(data, outfile)
                    send_os()
 
            tip_db = Tip.objects.get(isim__contains = tip)
            bilgi_db.tip = tip_db 
            bilgi_db.save()
            sorumlular = User.objects.filter(profile__sorumluTip__isim__contains = tip)
            if tip == 'teklif':
                sorumlular = sorumlular.filter(profile__sorumluSehir__isim__contains = bilgi.cleaned_data['sehir'], profile__ucuncul=True)
            gonderilecek = []
            for sorumlu in sorumlular:
                gonderilecek += [sorumlu.email]
                bilgi_db.sorumlu.add(sorumlu)
            konu = 'Audio ' + tip.capitalize() + ' Formu'
            mesaj = mesajOlustur(bilgi.cleaned_data)
            mesaj += u'http://www.audio.com.tr/takip/%d adresinden detayli inceleyebilirsiniz' % bilgi_db.pk

            if tip in ['iletisim', 'otomasyon']:
                url = 'https://destek.audio.com.tr/api/http.php/tickets.json'
            else:
                audiomail('*****@*****.**',['*****@*****.**'] + gonderilecek, konu, mesaj)
                audiomail('*****@*****.**', [bilgi.cleaned_data['email']],konu,'İsteğiniz elimize ulaştı, size en kısa zamanda cevap vereceğiz.\n\nİstek kodunuz: #%d\n\nAudio Elektronik\nwww.audio.com.tr - 444 11 58\n\nnot: lütfen bu adrese cevap atmayın, kontrol edilmiyor.'.decode('utf-8') % bilgi_db.id )

            yollaForm = form()
            geri_donus = 'İsteğiniz Elimize Ulaşmıştır'
            success = True
        elif duplicate:
            yollaForm = form()
            geri_donus = 'İsteğiniz Elimize Ulaşmıştır.'
        else:
            yollaForm = bilgi
            geri_donus = 'Lütfen Formdaki Hataları Kontrol Edin'
    else:
        yollaForm = form()
        geri_donus = ''
    
    # Save the record for auto offer, assume input is correct
    if record and valid and not duplicate: 
        record.bilgi = bilgi_db
        record.save()

    if offer_state:
        return HttpResponse('success')
    else:
        return render_to_response(yollaForm.TEMPLATE,{'form':yollaForm, 'tip':tip,'mesaj':geri_donus, 'basari': success},
                                  context_instance=RequestContext(request))