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()))
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()
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)
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
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')
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))
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/')
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))