def handle(self):

        def pass_hizmet_kayitlari(hizmet_kayitlari_passed, record_values):
            hizmet_kayitlari_passed.baslama_tarihi = record_values['baslama_tarihi']
            hizmet_kayitlari_passed.bitis_tarihi = record_values['bitis_tarihi']
            hizmet_kayitlari_passed.emekli_derece = record_values['emekli_derece']
            hizmet_kayitlari_passed.emekli_kademe = record_values['emekli_kademe']
            hizmet_kayitlari_passed.gorev = record_values['gorev']
            hizmet_kayitlari_passed.unvan_kod = record_values['unvan_kod']
            hizmet_kayitlari_passed.hizmet_sinifi = record_values['hizmet_sinifi']
            hizmet_kayitlari_passed.kayit_no = record_values['kayit_no']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_derece = record_values[
                'kazanilmis_hak_ayligi_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_kademe = record_values[
                'kazanilmis_hak_ayligi_kademe']
            hizmet_kayitlari_passed.odeme_derece = record_values['odeme_derece']
            hizmet_kayitlari_passed.odeme_kademe = record_values['odeme_kademe']
            hizmet_kayitlari_passed.emekli_ekgosterge = record_values['emekli_ek_gosterge']
            hizmet_kayitlari_passed.kadro_derece = record_values['kadro_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_ekgosterge = record_values[
                'kazanilmis_hak_ayligi_ekgosterge']
            hizmet_kayitlari_passed.odeme_ekgosterge = record_values['odeme_ekgosterge']
            hizmet_kayitlari_passed.sebep_kod = record_values['sebep_kod']
            hizmet_kayitlari_passed.tckn = record_values['tckn']
            try:
                hizmet_kayitlari_passed.ucret = float(record_values['ucret'].strip())
            except ValueError:
                pass
            try:
                hizmet_kayitlari_passed.yevmiye = float(record_values['yevmiye'].strip())
            except ValueError:
                pass
            hizmet_kayitlari_passed.kurum_onay_tarihi = record_values['kurum_onay_tarihi']

            self.logger.info("hizmet_kayitlari successfully passed.")

        tckn = self.request.payload['tckn']
        conn = self.outgoing.soap['HITAP'].conn

        # connects with soap client to the HITAP
        try:
            with conn.client() as client:
                service_bean = client.service.HizmetCetvelSorgula(H_USER, H_PASS,
                                                                  tckn).HizmetCetveliServisBean
                self.logger.info("zato service started to work.")

                hitap_dict = {}
                for record in range(0, len(service_bean)):
                    hitap_dict[service_bean[record].kayitNo] = {
                        'baslama_tarihi': '01.01.1900' if
                        service_bean[record].baslamaTarihi == "01.01.0001" else
                        service_bean[record].baslamaTarihi,
                        'bitis_tarihi': '01.01.1900' if
                        service_bean[record].bitisTarihi == "01.01.0001" else
                        service_bean[record].bitisTarihi,
                        'emekli_derece': service_bean[record].emekliDerece,
                        'emekli_kademe': service_bean[record].emekliKademe,
                        'gorev': service_bean[record].gorev,
                        'unvan_kod': service_bean[record].unvanKod,
                        'hizmet_sinifi': self.hizmet_sinifi_int_kontrol(service_bean[record].hizmetSinifi),
                        'kayit_no': service_bean[record].kayitNo,
                        'kazanilmis_hak_ayligi_derece': service_bean[
                            record].kazanilmisHakAyligiDerece,
                        'kazanilmis_hak_ayligi_kademe': service_bean[
                            record].kazanilmisHakAyligiKademe,
                        'odeme_derece': service_bean[record].odemeDerece,
                        'odeme_kademe': service_bean[record].odemeKademe,
                        'emekli_ek_gosterge': service_bean[record].emekliEkGosterge,
                        'kadro_derece': service_bean[record].kadroDerece,
                        'kazanilmis_hak_ayligi_ekgosterge': service_bean[
                            record].kazanilmisHakAyligiEkGosterge,
                        'odeme_ekgosterge': service_bean[record].odemeEkGosterge,
                        'sebep_kod': service_bean[record].sebepKod,
                        'tckn': service_bean[record].tckn,
                        'ucret': service_bean[record].ucret,
                        'yevmiye': service_bean[record].yevmiye,
                        'kurum_onay_tarihi': '01.01.1900' if
                        service_bean[record].kurumOnayTarihi == "01.01.0001" else service_bean[
                            record].kurumOnayTarihi
                    }
                self.logger.info("hitap_dict created.: %s" % hitap_dict)

                # if employee saved before, find that and add new records from hitap to riak
                try:
                    local_records = {}
                    # hizmet_kayitlari_list = HizmetKayitlari.objects.filter(tckn=tckn)
                    for record in HizmetKayitlari.objects.filter(tckn=tckn):
                        local_records[record.kayit_no] = {
                            'baslama_tarihi': record.baslama_tarihi,
                            'bitis_tarihi': record.bitis_tarihi,
                            'emekli_derece': record.emekli_derece,
                            'emekli_kademe': record.emekli_kademe,
                            'gorev': record.gorev,
                            'unvan_kod': record.unvan_kod,
                            'hizmet_sinifi': record.hizmet_sinifi,
                            'kayit_no': record.kayit_no,
                            'kazanilmis_hak_ayligi_derece': record.kazanilmis_hak_ayligi_derece,
                            'kazanilmis_hak_ayligi_kademe': record.kazanilmis_hak_ayligi_kademe,
                            'odeme_derece': record.odeme_derece,
                            'odeme_kademe': record.odeme_kademe,
                            'emekli_ekgosterge': record.emekli_ekgosterge,
                            'kadro_derece': record.kadro_derece,
                            'kazanilmis_hak_ayligi_ekgosterge':
                                record.kazanilmis_hak_ayligi_ekgosterge,
                            'odeme_ekgosterge': record.odeme_ekgosterge,
                            'sebep_kod': record.sebep_kod,
                            'tckn': record.tckn,
                            'ucret': record.ucret,
                            'yevmiye': record.yevmiye,
                            'kurum_onay_tarihi': record.kurum_onay_tarihi
                        }
                    self.logger.info("local_records created.")

                    for record_id, record_values in hitap_dict.items():
                        if record_id in local_records:
                            hizmet_kayitlari = HizmetKayitlari.objects.filter(
                                kayit_no=record_id).get()
                            hizmet_kayitlari.sync = 1
                            hizmet_kayitlari.save()
                        else:
                            hizmet_kayitlari = HizmetKayitlari()
                            pass_hizmet_kayitlari(hizmet_kayitlari, record_values)
                            hizmet_kayitlari.sync = 1
                            hizmet_kayitlari.save()

                    for record_id, record_values in local_records.items():
                        hizmet_kayitlari = HizmetKayitlari.objects.filter(
                            kayit_no=record_id).get()
                        if record_id not in hitap_dict:
                            if hizmet_kayitlari.sync == 1:
                                hizmet_kayitlari.sync = 2
                                hizmet_kayitlari.save()
                            if hizmet_kayitlari.sync == 2:
                                hizmet_kayitlari.sync = 3
                                hizmet_kayitlari.save()
                        hizmet_kayitlari.sync = 99
                        hizmet_kayitlari.save()
                    self.logger.info("Service runned.")
                    response = {'result': 'ok'}

                except IndexError:
                    hizmet_kayitlari = HizmetKayitlari()
                    for hitap_keys, hitap_values in hitap_dict.items():
                        pass_hizmet_kayitlari(hizmet_kayitlari, hitap_values)
                        hizmet_kayitlari.save()
                        self.logger.info("New HizmetKayitlari saved.")
                        response = {'result': 'new'}
                    sleep(1)
                except socket.error:
                    self.logger.info("Riak connection refused!")
                    response = {'result': 'riak error'}

        except AttributeError:
            self.logger.info("TCKN may be wrong!")
            response = {'result': 'tckn error'}
        except urllib2.URLError:
            self.logger.info("No internet connection!")
            response = {'result': 'connection error'}
        response['status'] = 'ok'
        self.response.payload = response
    def handle(self):

        def pass_hizmet_kayitlari(hizmet_kayitlari_passed, record_values):
            hizmet_kayitlari_passed.baslama_tarihi = record_values['baslama_tarihi']
            hizmet_kayitlari_passed.bitis_tarihi = record_values['bitis_tarihi']
            hizmet_kayitlari_passed.emekli_derece = record_values['emekli_derece']
            hizmet_kayitlari_passed.emekli_kademe = record_values['emekli_kademe']
            hizmet_kayitlari_passed.gorev = record_values['gorev']
            hizmet_kayitlari_passed.unvan_kod = record_values['unvan_kod']
            hizmet_kayitlari_passed.hizmet_sinifi = record_values['hizmet_sinifi']
            hizmet_kayitlari_passed.kayit_no = record_values['kayit_no']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_derece = record_values[
                'kazanilmis_hak_ayligi_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_kademe = record_values[
                'kazanilmis_hak_ayligi_kademe']
            hizmet_kayitlari_passed.odeme_derece = record_values['odeme_derece']
            hizmet_kayitlari_passed.odeme_kademe = record_values['odeme_kademe']
            hizmet_kayitlari_passed.emekli_ekgosterge = record_values['emekli_ek_gosterge']
            hizmet_kayitlari_passed.kadro_derece = record_values['kadro_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_ekgosterge = record_values[
                'kazanilmis_hak_ayligi_ekgosterge']
            hizmet_kayitlari_passed.odeme_ekgosterge = record_values['odeme_ekgosterge']
            hizmet_kayitlari_passed.sebep_kod = record_values['sebep_kod']
            hizmet_kayitlari_passed.tckn = record_values['tckn']
            try:
                hizmet_kayitlari_passed.ucret = float(record_values['ucret'].strip())
            except ValueError:
                pass
            try:
                hizmet_kayitlari_passed.yevmiye = float(record_values['yevmiye'].strip())
            except ValueError:
                pass
            hizmet_kayitlari_passed.kurum_onay_tarihi = record_values['kurum_onay_tarihi']

        tckn = self.request.payload['personel']['tckn']
        conn = self.outgoing.soap['HITAP'].conn

        # connects with soap client to the HITAP
        try:
            with conn.client() as client:
                service_bean = client.service.HizmetCetvelSorgula(H_USER, H_PASS,
                                                                  tckn).HizmetCetveliServisBean
                self.logger.info("zato service started to work.")

                hitap_dict = {}
                for record in range(0, len(service_bean)):
                    hitap_dict[service_bean[record].kayitNo] = {
                        'baslama_tarihi': '01.01.1900' if
                        service_bean[record].baslamaTarihi == "01.01.0001" else
                        service_bean[record].baslamaTarihi,
                        'bitis_tarihi': '01.01.1900' if
                        service_bean[record].bitisTarihi == "01.01.0001" else
                        service_bean[record].bitisTarihi,
                        'emekli_derece': service_bean[record].emekliDerece,
                        'emekli_kademe': service_bean[record].emekliKademe,
                        'gorev': service_bean[record].gorev,
                        'unvan_kod': service_bean[record].unvanKod,
                        'hizmet_sinifi': service_bean[record].hizmetSinifi,
                        'kayit_no': service_bean[record].kayitNo,
                        'kazanilmis_hak_ayligi_derece': service_bean[
                            record].kazanilmisHakAyligiDerece,
                        'kazanilmis_hak_ayligi_kademe': service_bean[
                            record].kazanilmisHakAyligiKademe,
                        'odeme_derece': service_bean[record].odemeDerece,
                        'odeme_kademe': service_bean[record].odemeKademe,
                        'emekli_ek_gosterge': service_bean[record].emekliEkGosterge,
                        'kadro_derece': service_bean[record].kadroDerece,
                        'kazanilmis_hak_ayligi_ekgosterge': service_bean[
                            record].kazanilmisHakAyligiEkGosterge,
                        'odeme_ekgosterge': service_bean[record].odemeEkGosterge,
                        'sebep_kod': service_bean[record].sebepKod,
                        'tckn': service_bean[record].tckn,
                        'ucret': service_bean[record].ucret,
                        'yevmiye': service_bean[record].yevmiye,
                        'kurum_onay_tarihi': '01.01.1900' if
                        service_bean[record].kurumOnayTarihi == "01.01.0001" else service_bean[
                            record].kurumOnayTarihi
                    }
                self.logger.info("hitap_dict created.")

                # if employee saved before, find that and add new records from hitap to riak
                try:
                    riak_dict_from_db_queries_with_pno = {}
                    # hizmet_kayitlari_list = HizmetKayitlari.objects.filter(tckn=tckn)
                    for record in HizmetKayitlari.objects.filter(tckn=tckn):
                        riak_dict_from_db_queries_with_pno[record.kayit_no] = {
                            'baslama_tarihi': record.baslama_tarihi,
                            'bitis_tarihi': record.bitis_tarihi,
                            'emekli_derece': record.emekli_derece,
                            'emekli_kademe': record.emekli_kademe,
                            'gorev': record.gorev,
                            'unvan_kod': record.unvan_kod,
                            'hizmet_sinifi': record.hizmet_sinifi,
                            'kayit_no': record.kayit_no,
                            'kazanilmis_hak_ayligi_derece': record.kazanilmis_hak_ayligi_derece,
                            'kazanilmis_hak_ayligi_kademe': record.kazanilmis_hak_ayligi_kademe,
                            'odeme_derece': record.odeme_derece,
                            'odeme_kademe': record.odeme_kademe,
                            'emekli_ekgosterge': record.emekli_ekgosterge,
                            'kadro_derece': record.kadro_derece,
                            'kazanilmis_hak_ayligi_ekgosterge':
                                record.kazanilmis_hak_ayligi_ekgosterge,
                            'odeme_ekgosterge': record.odeme_ekgosterge,
                            'sebep_kod': record.sebep_kod,
                            'tckn': record.tckn,
                            'ucret': record.ucret,
                            'yevmiye': record.yevmiye,
                            'kurum_onay_tarihi': record.kurum_onay_tarihi
                        }
                    self.logger.info("riak_dict_from_db_queries_with_pno created.")

                    # if any record exists in riak but not in hitap delete it
                    for record in HizmetKayitlari.objects.filter(tckn=tckn):
                        if record.kayit_no not in hitap_dict:
                            record.delete()
                            self.logger.info(
                                "Hizmet record deleted. Record No: %s" % record.kayit_no)

                    # if any record comes from hitap and not in riak, save it to riak
                    for hitap_key, hitap_values in hitap_dict.items():
                        if hitap_key not in riak_dict_from_db_queries_with_pno:
                            hizmet_kayitlari = HizmetKayitlari()
                            pass_hizmet_kayitlari(hizmet_kayitlari, hitap_values)
                            hizmet_kayitlari.save()
                            self.logger.info("HizmetKayitlari updated")

                    self.logger.info("Service runned.")

                except IndexError:
                    hizmet_kayitlari = HizmetKayitlari()
                    for hitap_keys, hitap_values in hitap_dict.items():
                        pass_hizmet_kayitlari(hizmet_kayitlari, hitap_values)
                        hizmet_kayitlari.save()
                        self.logger.info("New AskerlikKayitlari saved.")
                    sleep(1)
                except socket.error:
                    self.logger.info("Riak connection refused!")

        except AttributeError:
            self.logger.info("TCKN should be wrong!")
        except urllib2.URLError:
            self.logger.info("No internet connection!")
    def handle(self):

        def pass_hizmet_kayitlari(hizmet_kayitlari_passed, values):
            hizmet_kayitlari_passed.baslama_tarihi = values['baslama_tarihi']
            hizmet_kayitlari_passed.bitis_tarihi = values['bitis_tarihi']
            hizmet_kayitlari_passed.emekli_derece = values['emekli_derece']
            hizmet_kayitlari_passed.emekli_kademe = values['emekli_kademe']
            hizmet_kayitlari_passed.gorev = values['gorev']
            hizmet_kayitlari_passed.unvan_kod = values['unvan_kod']
            hizmet_kayitlari_passed.hizmet_sinifi = values['hizmet_sinifi']
            hizmet_kayitlari_passed.kayit_no = values['kayit_no']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_derece = values[
                'kazanilmis_hak_ayligi_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_kademe = values[
                'kazanilmis_hak_ayligi_kademe']
            hizmet_kayitlari_passed.odeme_derece = values['odeme_derece']
            hizmet_kayitlari_passed.odeme_kademe = values['odeme_kademe']
            hizmet_kayitlari_passed.emekli_ekgosterge = values['emekli_ek_gosterge']
            hizmet_kayitlari_passed.kadro_derece = values['kadro_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_ekgosterge = values[
                'kazanilmis_hak_ayligi_ekgosterge']
            hizmet_kayitlari_passed.odeme_ekgosterge = values['odeme_ekgosterge']
            hizmet_kayitlari_passed.sebep_kod = values['sebep_kod']
            hizmet_kayitlari_passed.tckn = values['tckn']
            try:
                hizmet_kayitlari_passed.ucret = float(values['ucret'].strip())
            except ValueError:
                pass
            try:
                hizmet_kayitlari_passed.yevmiye = float(values['yevmiye'].strip())
            except ValueError:
                pass
            hizmet_kayitlari_passed.kurum_onay_tarihi = values['kurum_onay_tarihi']

            self.logger.info("hizmet_kayitlari successfully passed.")

        self.logger.info("zato service started to work.")

        tckn = self.request.payload['tckn']

        input_data = {'tckn': tckn}
        input_data = dumps(input_data)
        service_name = 'hizmet-cetveli-getir.hizmet-cetveli-getir'
        response = self.invoke(service_name, input_data, data_format=DATA_FORMAT.JSON, as_bunch=True)

        response_status = response["status"]
        if response_status == 'ok':
            hitap_dict = loads(response["result"])
            self.logger.info("hitap_dict created.")
        else:
            hitap_dict = {}
            self.logger.info("hitap_dict cannot created.")

        # if employee saved before, find that and add new records from hitap to riak
        try:
            local_records = {}
            # hizmet_kayitlari_list = HizmetKayitlari.objects.filter(tckn=tckn)
            for record in HizmetKayitlari.objects.filter(tckn=tckn):
                local_records[record.kayit_no] = {
                    'baslama_tarihi': record.baslama_tarihi,
                    'bitis_tarihi': record.bitis_tarihi,
                    'emekli_derece': record.emekli_derece,
                    'emekli_kademe': record.emekli_kademe,
                    'gorev': record.gorev,
                    'unvan_kod': record.unvan_kod,
                    'hizmet_sinifi': record.hizmet_sinifi,
                    'kayit_no': record.kayit_no,
                    'kazanilmis_hak_ayligi_derece': record.kazanilmis_hak_ayligi_derece,
                    'kazanilmis_hak_ayligi_kademe': record.kazanilmis_hak_ayligi_kademe,
                    'odeme_derece': record.odeme_derece,
                    'odeme_kademe': record.odeme_kademe,
                    'emekli_ekgosterge': record.emekli_ekgosterge,
                    'kadro_derece': record.kadro_derece,
                    'kazanilmis_hak_ayligi_ekgosterge':
                        record.kazanilmis_hak_ayligi_ekgosterge,
                    'odeme_ekgosterge': record.odeme_ekgosterge,
                    'sebep_kod': record.sebep_kod,
                    'tckn': record.tckn,
                    'ucret': record.ucret,
                    'yevmiye': record.yevmiye,
                    'kurum_onay_tarihi': record.kurum_onay_tarihi
                }

            # for k, v in local_records.iteritems():
            #     self.logger.info("Localdeki keyler => %s type %s" % (str(k), type(k)))

            # self.logger.info(local_records)
            self.logger.info("local_records created.")

            self.logger.info("Localdeki kayit sayisi: " + str(len(local_records)))
            self.logger.info("Hitaptan gelen kayit sayisi: " + str(len(hitap_dict)))

            '''
            for k, v in hitap_dict.items():
                if k not in local_records:
                    print "Bu kayit localde yok! => " + str(k)

            for k, v in local_records.items():
                if k not in hitap_dict:
                    print "Bu kayit hitapta yok! => " + str(k)
            '''

            # compare hitap incoming data and local db
            for hitap_key, hitap_values in hitap_dict.items():
                # self.logger.info("Hitap key: %s type %s" % (hitap_key, type(hitap_key)))
                if int(hitap_key) in local_records:
                    self.logger.info("hitap gelen data localde var.")
                    hizmet_kayitlari = HizmetKayitlari.objects.filter(kayit_no=hitap_key).get()
                    if hizmet_kayitlari.sync == 1:
                        self.logger.info("hitaptan gelen data localde var ve senkronize.")
                    elif hizmet_kayitlari.sync == 2:
                        self.logger.info("hitap gelen data localde senkronize edildi.")
                        pass_hizmet_kayitlari(hizmet_kayitlari, hitap_values)
                        hizmet_kayitlari.sync = 1
                        hizmet_kayitlari.save()
                        # sleep(1.5)
                    else:
                        pass
                else:
                    self.logger.info("hitap gelen data localde yok. Kayit no => " + str(hitap_key))
                    hizmet_kayitlari = HizmetKayitlari()
                    pass_hizmet_kayitlari(hizmet_kayitlari, hitap_values)
                    hizmet_kayitlari.sync = 1
                    hizmet_kayitlari.save()
                    # sleep(1.5)

            # compare local db and hitap incoming data
            for record_id, record_values in local_records.items():
                if unicode(record_id) not in hitap_dict:
                    hizmet_kayitlari = HizmetKayitlari.objects.filter(kayit_no=record_id).get()
                    if hizmet_kayitlari.sync == 1:
                        hizmet_kayitlari.delete()
                        self.logger.info("localdeki sync data, hitapta yok, kayit no degismis olabilir, kayit silindi.")
                    else:
                        pass
                else:
                    if hizmet_kayitlari.sync != 1 or hizmet_kayitlari.sync != 2:
                        hizmet_kayitlari.delete()

                # hizmet_kayitlari.save()
            self.logger.info("Service runned.")

        # If not any record belongs to given tcno, create new one
        except IndexError:
            for hitap_keys, hitap_values in hitap_dict.items():
                hizmet_kayitlari = HizmetKayitlari()
                pass_hizmet_kayitlari(hizmet_kayitlari, hitap_values)
                hizmet_kayitlari.sync = 1
                hizmet_kayitlari.save()
                self.logger.info("New HizmetKayitlari saved.")
            # sleep(1)
        except socket.error:
            self.logger.info("Riak connection refused!")

        except AttributeError:
            self.logger.info("TCKN should be wrong!")
        except urllib2.URLError:
            self.logger.info("No internet connection!")
Example #4
0
    def kontrol(self):
        self.set_form_data_to_object()
        if self.current.task_data['cmd'] == 'izine_ayir':
            if self.object.baslangic_tarihi > self.object.bitis_tarihi:
                self.current.task_data['cmd'] = 'izne_ayir'
            else:
                hitap_kaydi = HizmetKayitlari()
                personel = self.object.personel
                hitap_kaydi.personel = personel
                hitap_kaydi.tckn = personel.tckn
                hitap_kaydi.bitis_tarihi = self.object.baslangic_tarihi
                hitap_kaydi.gorev = ".."
                hitap_kaydi.hizmet_sinifi = personel.hizmet_sinifi
                hitap_kaydi.unvan_kod = personel.kadro().unvan_kod

                ## TODO: Sebep Kodları fixtures eklenecek
                hitap_kaydi.sebep_kod = 269
                hitap_kaydi.kurum_onay_tarihi = self.object.onay_tarihi
                hitap_kaydi.sync = 2
                hitap_kaydi.save()
                self.current.task_data['cmd'] = 'basarili'
                self.save()
        else:  ## cmd="izin_donus"
            hitap_kaydi = HizmetKayitlari()
            personel = self.object.personel
            hitap_kaydi.personel = personel
            hitap_kaydi.tckn = personel.tckn
            hitap_kaydi.baslama_tarihi = self.object.donus_tarihi
            hitap_kaydi.gorev = ".."
            hitap_kaydi.hizmet_sinifi = personel.hizmet_sinifi
            hitap_kaydi.unvan_kod = personel.kadro().unvan_kod

            ## TODO: Sebep Kodları fixtures eklenecek, form içerisinden seçilecek
            hitap_kaydi.sebep_kod = 269
            hitap_kaydi.kurum_onay_tarihi = self.object.onay_tarihi
            hitap_kaydi.sync = 2
            hitap_kaydi.save()
            self.current.task_data['cmd'] = 'basarili'
            self.save()
    def handle(self):

        def pass_hizmet_kayitlari(hizmet_kayitlari_passed, record_values):
            hizmet_kayitlari_passed.baslama_tarihi = record_values['baslama_tarihi']
            hizmet_kayitlari_passed.bitis_tarihi = record_values['bitis_tarihi']
            hizmet_kayitlari_passed.emekli_derece = record_values['emekli_derece']
            hizmet_kayitlari_passed.emekli_kademe = record_values['emekli_kademe']
            hizmet_kayitlari_passed.gorev = record_values['gorev']
            hizmet_kayitlari_passed.unvan_kod = record_values['unvan_kod']
            hizmet_kayitlari_passed.hizmet_sinifi = record_values['hizmet_sinifi']
            hizmet_kayitlari_passed.kayit_no = record_values['kayit_no']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_derece = record_values[
                'kazanilmis_hak_ayligi_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_kademe = record_values[
                'kazanilmis_hak_ayligi_kademe']
            hizmet_kayitlari_passed.odeme_derece = record_values['odeme_derece']
            hizmet_kayitlari_passed.odeme_kademe = record_values['odeme_kademe']
            hizmet_kayitlari_passed.emekli_ekgosterge = record_values['emekli_ek_gosterge']
            hizmet_kayitlari_passed.kadro_derece = record_values['kadro_derece']
            hizmet_kayitlari_passed.kazanilmis_hak_ayligi_ekgosterge = record_values[
                'kazanilmis_hak_ayligi_ekgosterge']
            hizmet_kayitlari_passed.odeme_ekgosterge = record_values['odeme_ekgosterge']
            hizmet_kayitlari_passed.sebep_kod = record_values['sebep_kod']
            hizmet_kayitlari_passed.tckn = record_values['tckn']
            try:
                hizmet_kayitlari_passed.ucret = float(record_values['ucret'].strip())
            except ValueError:
                pass
            try:
                hizmet_kayitlari_passed.yevmiye = float(record_values['yevmiye'].strip())
            except ValueError:
                pass
            hizmet_kayitlari_passed.kurum_onay_tarihi = record_values['kurum_onay_tarihi']

            self.logger.info("hizmet_kayitlari successfully passed.")

        self.logger.info("zato service started to work.")

        tckn = self.request.payload['tckn']

        input_data = {'tckn': tckn}
        input_data = dumps(input_data)
        service_name = 'hizmet-cetveli-getir.hizmet-cetveli-getir'
        response = self.invoke(service_name, input_data, data_format=DATA_FORMAT.JSON, as_bunch=True)

        response_status = response["status"]
        if response_status == 'ok':
            hitap_dict = loads(response["result"])
            self.logger.info("hitap_dict created.")
        else:
            hitap_dict = {}
            self.logger.info("hitap_dict cannot created.")

        # if employee saved before, find that and add new records from hitap to riak
        try:
            local_records = {}
            # hizmet_kayitlari_list = HizmetKayitlari.objects.filter(tckn=tckn)
            for record in HizmetKayitlari.objects.filter(tckn=tckn):
                local_records[record.kayit_no] = {
                    'baslama_tarihi': record.baslama_tarihi,
                    'bitis_tarihi': record.bitis_tarihi,
                    'emekli_derece': record.emekli_derece,
                    'emekli_kademe': record.emekli_kademe,
                    'gorev': record.gorev,
                    'unvan_kod': record.unvan_kod,
                    'hizmet_sinifi': record.hizmet_sinifi,
                    'kayit_no': record.kayit_no,
                    'kazanilmis_hak_ayligi_derece': record.kazanilmis_hak_ayligi_derece,
                    'kazanilmis_hak_ayligi_kademe': record.kazanilmis_hak_ayligi_kademe,
                    'odeme_derece': record.odeme_derece,
                    'odeme_kademe': record.odeme_kademe,
                    'emekli_ekgosterge': record.emekli_ekgosterge,
                    'kadro_derece': record.kadro_derece,
                    'kazanilmis_hak_ayligi_ekgosterge':
                        record.kazanilmis_hak_ayligi_ekgosterge,
                    'odeme_ekgosterge': record.odeme_ekgosterge,
                    'sebep_kod': record.sebep_kod,
                    'tckn': record.tckn,
                    'ucret': record.ucret,
                    'yevmiye': record.yevmiye,
                    'kurum_onay_tarihi': record.kurum_onay_tarihi
                }
            self.logger.info("local_records created.")

            # compare hitap incoming data and local db
            for record_id, record_values in hitap_dict.items():
                if record_id in local_records:
                    hizmet_kayitlari = HizmetKayitlari.objects.filter(kayit_no=record_id).get()
                    if hizmet_kayitlari.sync == 1:
                        pass
                    elif hizmet_kayitlari.sync == 2:
                        pass_hizmet_kayitlari(hizmet_kayitlari, record_values)
                        hizmet_kayitlari.sync = 1
                        hizmet_kayitlari.save()
                    else:
                        pass
                else:
                    hizmet_kayitlari = HizmetKayitlari()
                    pass_hizmet_kayitlari(hizmet_kayitlari, record_values)
                    hizmet_kayitlari.sync = 1
                    hizmet_kayitlari.save()

            # compare hitap incoming data and local db
            for record_id, record_values in local_records.items():
                hizmet_kayitlari = HizmetKayitlari.objects.filter(kayit_no=record_id).get()
                if record_id not in hitap_dict:
                    if hizmet_kayitlari.sync == 1:
                        hizmet_kayitlari.delete()
                        hizmet_kayitlari.save()
                    else:
                        pass

                hizmet_kayitlari.save()
            self.logger.info("Service runned.")

        # If not any record belongs to given tcno, create new one
        except IndexError:
            hizmet_kayitlari = HizmetKayitlari()
            for hitap_keys, hitap_values in hitap_dict.items():
                pass_hizmet_kayitlari(hizmet_kayitlari, hitap_values)
                hizmet_kayitlari.sync = 1
                hizmet_kayitlari.save()
                self.logger.info("New HizmetKayitlari saved.")
            sleep(1)
        except socket.error:
            self.logger.info("Riak connection refused!")

        except AttributeError:
            self.logger.info("TCKN should be wrong!")
        except urllib2.URLError:
            self.logger.info("No internet connection!")
Example #6
0
    def kontrol(self):
        self.set_form_data_to_object()
        if self.current.task_data['cmd'] == 'izine_ayir':
            if self.object.baslangic_tarihi > self.object.bitis_tarihi:
                self.current.task_data['cmd'] = 'izne_ayir'
            else:
                hitap_kaydi = HizmetKayitlari()
                personel = self.object.personel
                hitap_kaydi.personel = personel
                hitap_kaydi.tckn = personel.tckn
                hitap_kaydi.bitis_tarihi = self.object.baslangic_tarihi
                hitap_kaydi.gorev = ".."
                hitap_kaydi.hizmet_sinifi = personel.hizmet_sinifi
                hitap_kaydi.unvan_kod = personel.kadro().unvan_kod

                ## TODO: Sebep Kodları fixtures eklenecek
                hitap_kaydi.sebep_kod = 269
                hitap_kaydi.kurum_onay_tarihi = self.object.onay_tarihi
                hitap_kaydi.sync = 2
                hitap_kaydi.save()
                self.current.task_data['cmd'] = 'basarili'
                self.save()
        else:  ## cmd="izin_donus"
            hitap_kaydi = HizmetKayitlari()
            personel = self.object.personel
            hitap_kaydi.personel = personel
            hitap_kaydi.tckn = personel.tckn
            hitap_kaydi.baslama_tarihi = self.object.donus_tarihi
            hitap_kaydi.gorev = ".."
            hitap_kaydi.hizmet_sinifi = personel.hizmet_sinifi
            hitap_kaydi.unvan_kod = personel.kadro().unvan_kod

            ## TODO: Sebep Kodları fixtures eklenecek, form içerisinden seçilecek
            hitap_kaydi.sebep_kod = 269
            hitap_kaydi.kurum_onay_tarihi = self.object.onay_tarihi
            hitap_kaydi.sync = 2
            hitap_kaydi.save()
            self.current.task_data['cmd'] = 'basarili'
            self.save()