Advertisement
Abraxasccs

demo_content

Jan 22nd, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.07 KB | None | 0 0
  1. from datetime import date, timedelta
  2. from pony import orm
  3.  
  4. db = orm.Database()
  5.  
  6. class Guest(db.Entity):
  7. nome = orm.Required(str)
  8. cognome = orm.Required(str)
  9. nome_accompagnate = orm.Optional(str)
  10. cognome_accompagnate = orm.Optional(str)
  11. email = orm.Required(str, unique=True)
  12. telefono = orm.Optional(str, unique=True)
  13. allergies = orm.Optional(str)
  14. notes = orm.Optional(str)
  15. n_reservations = orm.Optional(str)
  16. vouchers = orm.Set('Voucher')
  17. reservations = orm.Set('Reservation')
  18.  
  19.  
  20. class Offer(db.Entity):
  21. nome = orm.Required(str, unique=True)
  22. prezzo = orm.Optional(int)
  23. descrizione = orm.Optional(str)
  24. voucher = orm.Optional('Voucher')
  25. reservations = orm.Set('Reservation')
  26.  
  27.  
  28. class Payment_method(db.Entity):
  29. nome = orm.Required(str)
  30. vouchers = orm.Set('Voucher')
  31.  
  32.  
  33. class Room(db.Entity):
  34. nome = orm.Required(str)
  35. descrizione = orm.Optional(str)
  36. reservations = orm.Set('Reservation')
  37.  
  38.  
  39. class Extra_services(db.Entity):
  40. nome = orm.Required(str)
  41. prezzo = orm.Required(int)
  42. descrizione = orm.Required(str)
  43. reservations = orm.Set('Reservation')
  44.  
  45.  
  46. class Voucher(db.Entity):
  47. numero = orm.Required(int)
  48. data_emizione = orm.Required(date)
  49. data_scadenza = orm.Required(date)
  50. valido = orm.Required(bool, default='true')
  51. cliente = orm.Required(Guest)
  52. reservation = orm.Optional('Reservation')
  53. payment = orm.Required(Payment_method)
  54. oferta = orm.Set(Offer)
  55.  
  56.  
  57. class Reservation(db.Entity):
  58. data_check_in = orm.Required(date)
  59. data_check_out = orm.Required(date)
  60. deposit_value = orm.Optional(int)
  61. confirmed = orm.Required(bool, default=False)
  62. deposit_tx = orm.Optional(str)
  63. anticipo = orm.Optional(int)
  64. pagato = orm.Required(bool, default=False)
  65. Totale_prov = orm.Required(int)
  66. voucher = orm.Optional(Voucher)
  67. extra_sevicess = orm.Set(Extra_services)
  68. room = orm.Required(Room)
  69. guest = orm.Required(Guest)
  70. offer = orm.Required(Offer)
  71.  
  72.  
  73. db.bind(provider='sqlite', filename='raw_database.sqlite', create_db=True)
  74. orm.sql_debug(True)
  75. db.generate_mapping(create_tables=True)
  76.  
  77.  
  78. dic = {'nome': 2, 'telefono': 5, 'email': 4, 'altro': 17}
  79.  
  80. c_bagno = {'nome': 'Ciocco Bagno',
  81. 'prezzo': 80,
  82. 'descrizione': 'Ciocco bagno in vasca con cioccolata a 40°'}
  83. c_cacao = {'nome': 'Cena Contaminazione Cacao',
  84. 'prezzo': 90,
  85. 'descrizione': 'Piatti di gastronomia Lombarda contaminati al cacao'}
  86. c_massaggio = {'nome': 'Masaggio al cioccolato',
  87. 'prezzo': 180,
  88. 'descrizione': 'Massagio per coppia fatti con cioccolata'}
  89.  
  90. lista_serv = [c_bagno, c_cacao, c_massaggio]
  91.  
  92. f_div = {'nome': 'Fuga Con divertimento',
  93. 'prezzo': 90,
  94. 'descrizione': 'Offerta per Smart',
  95. 'agente': 'Smartbox'}
  96.  
  97. c_cacao = {'nome': 'Contaminazione Cacao',
  98. 'prezzo': 320,
  99. 'descrizione': 'Allogio una notte, visita guidata al museo' +
  100. ' corso pasticeria, cena contaminazione',
  101. 'agente': 'Smartbox'}
  102.  
  103. mille_n = {'nome': 'Mille una note',
  104. 'prezzo': 180,
  105. 'descrizione': 'Allogio una notte, visita guidata al museo' +
  106. ' corso pasticeria',
  107. 'agente': 'Smartbox'}
  108.  
  109. lista_offer = [f_div, c_cacao, mille_n]
  110.  
  111. ecuador = {'nome': 'Ecuador',
  112. 'descrizione': 'Camera arredata con elementi' +
  113. ' tipici di Ecuador'}
  114.  
  115. venezuela = {'nome': 'Venezuela',
  116. 'descrizione': 'Camera arredata con elementi' +
  117. ' tipici di Venezuela'}
  118.  
  119. sri_lanka = {'nome': 'Sri Lanka',
  120. 'descrizione': 'Camera arredata con elementi' +
  121. ' tipici di Sri Lanka'}
  122.  
  123. lista_room = [ecuador, venezuela, sri_lanka]
  124.  
  125. vou_1 = {'oferta_id': 1, 'data_creation': [2017, 12, 10],
  126. 'numero': 1000, 'cliente': 1, 'reserv': None,
  127. 'payment': 1}
  128.  
  129. vou_2 = {'oferta_id': 2, 'data_creation': [2017, 12, 15],
  130. 'numero': 1001, 'cliente': 2, 'reserv': None,
  131. 'payment': 2}
  132.  
  133. vou_3 = {'oferta_id': 1, 'data_creation': [2018, 1, 1],
  134. 'numero': 1002, 'cliente': 4, 'reserv': None,
  135. 'payment': 3}
  136.  
  137. vou_4 = {'oferta_id': 3, 'data_creation': [2018, 1, 5],
  138. 'numero': 1003, 'cliente': 5, 'reserv': None,
  139. 'payment': 4}
  140.  
  141. lista_voucher = [vou_1, vou_2, vou_3, vou_4]
  142.  
  143. paym1 = {'name': 'Cash'}
  144. paym2 = {'name': 'Stripe'}
  145. paym3 = {'name': 'Paypal'}
  146. paym4 = {'name': 'Visa'}
  147. paym5 = {'name': 'MasterCard'}
  148.  
  149. lista_payment = (paym1, paym2, paym3, paym4, paym5)
  150.  
  151.  
  152. def date_class(lista):
  153. data = date(*lista)
  154. return data
  155.  
  156.  
  157. def get_offer(num):
  158. offer_id = Offer[num]
  159. return offer_id
  160.  
  161.  
  162. @orm.db_session
  163. def get_payment(num):
  164. payment_method = Payment_method[num]
  165. return payment_method
  166.  
  167.  
  168. @orm.db_session
  169. def add_payment(lista_payment):
  170. for method in lista_payment:
  171. met = method['name']
  172. Payment_method(nome=met)
  173.  
  174.  
  175. @orm.db_session
  176. def add_voucher(lista_voucher):
  177. for voucher in lista_voucher:
  178. numero = voucher['numero']
  179. oferta_id = get_offer(voucher['oferta_id'])
  180. data_str = date_class(voucher['data_creation'])
  181. data_end = data_str + timedelta(days=365)
  182. # reserv = voucher['reserv']
  183. payment = get_payment(voucher['payment'])
  184. cliente = voucher['cliente']
  185. Voucher(numero=numero,
  186. oferta=oferta_id,
  187. data_emizione=data_str,
  188. data_scadenza=data_end,
  189. cliente=cliente,
  190. payment=payment,
  191. )
  192.  
  193.  
  194. @orm.db_session
  195. def add_room(lista_room):
  196. for serv in lista_room:
  197. nome = serv['nome']
  198. descrizione = serv['descrizione']
  199. Room(nome=nome,
  200. descrizione=descrizione)
  201.  
  202.  
  203. @orm.db_session
  204. def add_offer(lista_offer):
  205. for serv in lista_offer:
  206. nome = serv['nome']
  207. prezzo = serv['prezzo']
  208. descrizione = serv['descrizione']
  209. Offer(nome=nome,
  210. prezzo=prezzo,
  211. descrizione=descrizione,
  212. )
  213.  
  214.  
  215. @orm.db_session
  216. def add_ex_serv(lista_serv):
  217. for serv in lista_serv:
  218. nome = serv['nome']
  219. prezzo = serv['prezzo']
  220. descrizione = serv['descrizione']
  221. Extra_services(nome=nome, prezzo=prezzo, descrizione=descrizione)
  222.  
  223.  
  224. @orm.db_session
  225. def add_guest(nome, email, telefono, altro):
  226. email_is = False
  227. try:
  228. email_is = Guest.select(lambda p: p.email == email)[:][0]
  229. email_is.email.strip()
  230. if email_is.id > 3801 and email_is.email != "":
  231. email_is.n_reservations += 1
  232. except:
  233. nome.strip()
  234. if ' ' in nome:
  235. cognome_nome = nome.split(' ')
  236. cognome = cognome_nome[0]
  237. nome = cognome_nome[1]
  238. else:
  239. cognome = ''
  240. email = email.strip()
  241. telefono = telefono.strip()
  242. if telefono == '' and email == '':
  243. pass
  244. else:
  245. Guest(nome=nome,
  246. cognome=cognome,
  247. email=email,
  248. telefono=telefono,
  249. info=altro,
  250. n_reservations=0)
  251.  
  252.  
  253. if __name__ == "__main__":
  254.  
  255. lista_tmp = list()
  256. with open('model/demo_content/db.csv', 'rb') as csvfile:
  257. for row in csvfile:
  258. a = row.decode(encoding='UTF-8', errors='ignore')
  259. a.split(';')
  260. lista_tmp.append(a)
  261.  
  262. lista_end = list()
  263. for line in lista_tmp:
  264. lista_end.append(str(line).split(';'))
  265.  
  266. for i in reversed(lista_end):
  267. try:
  268. nome = i[dic['nome']]
  269. telefono = i[dic['telefono']]
  270. email = i[dic['email']]
  271. info = i[dic['altro']]
  272. add_guest(nome, telefono, email, info)
  273. except:
  274. pass
  275.  
  276. add_guest
  277.  
  278. add_ex_serv(lista_serv)
  279.  
  280. add_offer(lista_offer)
  281.  
  282. add_payment(lista_payment)
  283.  
  284. add_room(lista_room)
  285.  
  286. add_voucher(lista_voucher)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement