This repository has been archived by the owner on Jul 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathomplir.py
102 lines (83 loc) · 3.55 KB
/
omplir.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import sys
from datetime import date
from datetime import datetime
from pymongo import MongoClient
from pymongo import TEXT
from soa.tiquets import GestioTiquets
import logging
class Omplir:
def __init__(self,gn6):
client = MongoClient()
self.db=client.ticketsdb
self.gn6=gn6
def crea(self):
self.db.tickets.remove()
for i in range(2012,2016):
print "Insertem tickets de l'any %d" % i
for mes in range(1,12):
inici="01-%d-%d" % (mes,i)
if mes==12:
any_fi=i+1
mes_fi=1
else:
any_fi=i
mes_fi=mes+1
fi="01-%d-%d" % (mes_fi,any_fi)
print "Entre %s i %s" % (inici,fi)
tickets=self.gn6.consulta_tiquets_dades(dataCreacioInici=inici,dataCreacioFi=fi,estat="TIQUET_STATUS_OBERT")
print "%d tickets oberts" % len(tickets)
self.inserta_tickets(tickets)
tickets=self.gn6.consulta_tiquets_dades(dataCreacioInici=inici,dataCreacioFi=fi,estat="TIQUET_STATUS_PEND")
print "%d tickets pendents" % len(tickets)
self.inserta_tickets(tickets)
tickets=self.gn6.consulta_tiquets_dades(dataCreacioInici=inici,dataCreacioFi=fi,estat="ESTAT_OBERT_PENDENT")
print "%d tickets oberts pendents" % len(tickets)
self.inserta_tickets(tickets)
tickets=self.gn6.consulta_tiquets_dades(dataTancamentInici=inici,dataTancamentFi=fi,estat="TIQUET_STATUS_TANCAT")
print "%d tickets tancats" % len(tickets)
self.inserta_tickets(tickets)
self.db.tickets.create_index([("$**",TEXT)],default_language="spanish")
self.guarda_actualitzacio()
def guarda_actualitzacio(self):
self.db.actualitzacio.remove()
self.db.actualitzacio.insert_one({"_id":1,"dataActualitzacio":self.avui()})
def ultima_actualitzacio(self):
return self.db.actualitzacio.find_one({"_id":1})["dataActualitzacio"]
def avui(self):
return date.today().strftime("%d-%m-%Y")
def inserta_nous_tickets(self):
actualitzacio=self.ultima_actualitzacio()
avui=self.avui()
print "Insertant tickets entre %s i %s" % (actualitzacio, avui)
oberts=self.gn6.consulta_tiquets_dades(dataCreacioInici=actualitzacio,dataCreacioFi=avui,estat="TIQUET_STATUS_OBERT")
print "%d tickets oberts" % len(oberts)
self.inserta_tickets(oberts)
tancats=self.gn6.consulta_tiquets_dades(dataTancamentInici=actualitzacio,dataTancamentFi=avui,estat="TIQUET_STATUS_TANCAT")
print "%d tickets tancats" % len(tancats)
self.inserta_tickets(tancats)
self.guarda_actualitzacio()
def inserta_tickets(self,tickets):
for t in tickets: self.inserta_ticket(t)
def inserta_ticket(self,ticket):
ticket=self.convertir_a_dict(ticket)
ticket["_id"]=ticket["codiTiquet"]
self.db.tickets.replace_one({"_id":ticket["_id"]},ticket,True)
print "Ticket %s creat" % ticket["_id"]
def convertir_a_dict(self,ticket):
ticket=dict((name, unicode(getattr(ticket, name))) for name in dir(ticket) if not name.startswith('__'))
ticket['dataCreacio']=self.convertir_a_date(ticket['dataCreacio'])
ticket['dataTancament']=self.convertir_a_date(ticket['dataTancament'])
return ticket
def convertir_a_date(self,data):
try:
#23-09-2014 14:00
return datetime.strptime(data,'%d-%m-%Y %H:%M')
except:
return None
def mostra(self):
for t in self.db.tickets.find(): print t
print "Insertant dades al mongo..."
logging.getLogger('suds').setLevel(logging.CRITICAL)
omplir=Omplir(GestioTiquets())
if len(sys.argv)>1 and sys.argv[1]=='-c': omplir.crea()
omplir.inserta_nous_tickets()