示例#1
0
    def loadC2CDayLocally(self, fileLocation, day, mappingZebra):
        """ Cette fonction prend en paramètre une date de jour formatée en chaine de caractère,
        Lit le fichier de configuration pour récupérer le repertoire de dépot des fichiers et lit 
        pour le jour correspondant les données du c2s et les met dans une liste qu'elle renvoie ensuite
        """
        c2cList = dict()
        resultList = []

        with open(fileLocation, "r") as csvfile:

            reader = csv.reader(csvfile, delimiter=";", quotechar='"')

            #on ne tient pas compte de la première ligne
            next(reader)
            for row in reader:
                tmpElt = DDC2CJourSTKP(row)
                if tmpElt.stkpMsisdn not in c2cList:
                    c2cList[tmpElt.stkpMsisdn] = tmpElt
                else:
                    previousElt = c2cList[tmpElt.stkpMsisdn]
                    previousElt.c2c = previousElt.c2c + tmpElt.c2c
                    c2cList[tmpElt.stkpMsisdn] = previousElt

        print(time.strftime("%d/%m/%Y %H:%M:%S"),
              "Début de la complétion totale ...")
        #semaine = self.getWeekNumberFromDate(day, self._DATE_FORMAT)
        semaine = Utils.getWeekNumberFromDate(day, self._DATE_FORMAT)
        for stkpMsisdn, stkp in c2cList.items():
            stkp.jour = day
            stkp.sem = semaine
            resultList.append(self.getMappingZebraInfos(stkp, mappingZebra))

        print(time.strftime("%d/%m/%Y %H:%M:%S"),
              "Fin de la complétion totale ...")
        return resultList
示例#2
0
    def insertC2CSTKADay(self, day):
        
        sessionFactory = SessionFactory()

        session = sessionFactory.Session()

        stkps = session.query(DDC2CJourSTKP).filter_by(jour = day)

        resultat = dict()

        sem = Utils.getWeekNumberFromDate(day, self._DATE_FORMAT)

        for stkp in stkps:
            if(resultat.get(stkp.stkaMsisdn) == None):                
                tmp = DDC2CJourSTKA(stkp)
                tmp.jour = day
                tmp.sem = sem
                tmp.stkaMsisdn = stkp.stkaMsisdn
                resultat[stkp.stkaMsisdn] = tmp       
                
        connection = sessionFactory.getConnection()
        result = connection.execute("select sum(c2c) c2c, stka_msisdn  from dd_c2c_jour_stkp where jour= '"+day+"' group by stka_msisdn")

        for row in result:            
            stkaMsisdn = row['stka_msisdn']
            tmpC2c = row['c2c']
            resultat[stkaMsisdn].c2c = tmpC2c

        connection.close()    

        toAdd = []

        for res, val in resultat.items():
            toAdd.append(val)

        try:
            print(time.strftime("%d/%m/%Y %H:%M:%S"), "Début insertion ")
            session.add_all(toAdd)
            session.commit()
            print(time.strftime("%d/%m/%Y %H:%M:%S"), "Fin insertion ")
            print(time.strftime("%d/%m/%Y %H:%M:%S"), "Fin insertions avec succès")
        except Exception as ex:
            self.view_traceback()
            print(time.strftime("%d/%m/%Y %H:%M:%S"), "Echec de l'insertion, annulation des modifications")
            session.rollback()
        finally:
            session.close()
            print(time.strftime("%d/%m/%Y %H:%M:%S"), "Session close")