def agency_api(url, tocken, segment, date=None): from ..agency.models_agency import AgencyModel, DestinationModel url = ""+url+segment+tocken+"?last_update="+str(date) result = urlfetch.fetch(url) result = result.content result = json.loads(result) if result['status'] and result['status'] == 404: flash(result['message'], "danger") return redirect(url_for('Home')) else: if result['agency']: old_data = AgencyModel.get_by_id(result['agency']['agency_id']) old_data.name = result['agency']['agency_name'] old_data.country = result['agency']['agency_country'] old_data.phone = result['agency']['agency_phone'] old_data.fax = result['agency']['agency_fax'] old_data.address = result['agency']['agency_address'] old_data.reduction = float(result['agency']['agency_reduction']) old_data.status = result['agency']['agency_status'] old_data.is_achouka = result['agency']['agency_is_achouka'] destination = DestinationModel.get_by_id(result['agency']['agency_destination']) old_data.destination = destination.key agency = old_data.put() return agency
def add_agency(): from ..agency.models_agency import AgencyModel, DestinationModel token = request.form['token'] if not token: flash("token empty", "danger") return redirect(url_for('Dashboard')) local_active_agency = AgencyModel.query( AgencyModel.local_status == True ).get() url_config = ConfigModel.query( ConfigModel.local_ref == local_active_agency.key ).get() url = ""+url_config.url_server+"/agency/get/"+token result = urlfetch.fetch(url) result = result.content result = json.loads(result) if result['status'] and result['status'] == 404: flash(result['message'], "danger") else: if result['agency']: old_data = AgencyModel.get_by_id(result['agency']['agency_id']) agency_new = None if not old_data: new_data = AgencyModel(id=result['agency']['agency_id']) new_data.name = result['agency']['agency_name'] new_data.country = result['agency']['agency_country'] new_data.phone = result['agency']['agency_phone'] new_data.fax = result['agency']['agency_fax'] new_data.address = result['agency']['agency_address'] new_data.reduction = float(result['agency']['agency_reduction']) new_data.status = result['agency']['agency_status'] new_data.is_achouka = result['agency']['agency_is_achouka'] destination = DestinationModel.get_by_id(result['agency']['agency_destination']) new_data.destination = destination.key agency_new = new_data.put() else: flash("This token exist", "danger") if agency_new: conf = ConfigModel() conf.url_server = url_config.url_server conf.local_ref = agency_new conf.token_agency = token conf.put() flash("Agency added", "success") return redirect(url_for('Dashboard'))
def ticket_allocated_api(url, tocken, segment, date): from ..ticket.models_ticket import TicketModel, CurrencyModel, TicketTypeNameModel, JourneyTypeModel, ClassTypeModel, TravelModel, AgencyModel url = ""+url+segment+tocken+"?last_update="+str(date) result = urlfetch.fetch(url) result = result.content result = json.loads(result) if result['status'] and result['status'] == 404: flash(result['message'], "danger") return redirect(url_for('Home')) else: for data_get in result['ticket_allocated']: old_data = TicketModel.get_by_id(data_get['ticket_allocated_id']) if not old_data: data_save = TicketModel(id=data_get['ticket_allocated_id']) currency_ticket = CurrencyModel.get_by_id(data_get['sellpriceAgCurrency']) if currency_ticket: data_save.sellpriceAg = data_get['sellpriceAg'] data_save.sellpriceAgCurrency = currency_ticket.key category_ticket = TicketTypeNameModel.get_by_id(data_get['type_name']) data_save.type_name = category_ticket.key journey_ticket = JourneyTypeModel.get_by_id(data_get['journey_name']) data_save.journey_name = journey_ticket.key classes_ticket = ClassTypeModel.get_by_id(data_get['class_name']) data_save.class_name = classes_ticket.key travel_ticket = TravelModel.get_by_id(data_get['travel_ticket']) data_save.travel_ticket = travel_ticket.key agency_ticket = AgencyModel.get_by_id(data_get['agency']) data_save.agency = agency_ticket.key data_save.is_prepayment = data_get['is_prepayment'] data_save.statusValid = data_get['statusValid'] data_save.is_return = data_get['is_return'] data_save.selling = data_get['selling'] data_save.is_ticket = data_get['is_ticket'] data_save.datecreate = function.datetime_convert(data_get['datecreate']) data_save.put()
def user_api(url, tocken, segment, date=None): from ..user.models_user import UserModel, AgencyModel, ProfilModel, ProfilRoleModel, UserRoleModel url = ""+url+segment+tocken+"?last_update="+str(date) result = urlfetch.fetch(url) result = result.content result = json.loads(result) if result['status'] and result['status'] == 404: flash(result['message'], "danger") return redirect(url_for('Home')) else: for data_get in result['user']: old_data = UserModel.get_by_id(data_get['user_id']) if old_data: old_data.password = data_get['password'] old_data.email = data_get['email'] old_data.first_name = data_get['first_name'] old_data.last_name = data_get['last_name'] old_data.phone = data_get['phone'] old_data.dial_code = data_get['dial_code'] old_data.enabled = data_get['enabled'] agency_user = AgencyModel.get_by_id(data_get['agency_id']) old_data.agency = agency_user.key profil_user = ProfilModel.get_by_id(data_get['profil_id']) old_data.profil = profil_user.key profil_role_user = ProfilRoleModel.query( ProfilRoleModel.profil_id == profil_user.key ) #suppression de toutes les relations profils et roles user_role_delete = UserRoleModel.query( UserRoleModel.user_id == old_data.key ) for role_delete in user_role_delete: role_delete.key.delete() for role in profil_role_user: user_role = UserRoleModel() user_role.user_id = old_data.key user_role.role_id = role.role_id user_role.put() old_data.put() else: data_save = UserModel(id=data_get['user_id']) data_save.password = data_get['password'] data_save.email = data_get['email'] data_save.first_name = data_get['first_name'] data_save.last_name = data_get['last_name'] data_save.phone = data_get['phone'] data_save.dial_code = data_get['dial_code'] data_save.enabled = data_get['enabled'] agency_user = AgencyModel.get_by_id(data_get['agency_id']) data_save.agency = agency_user.key profil_user = ProfilModel.get_by_id(data_get['profil_id']) data_save.profil = profil_user.key profil_role_user = ProfilRoleModel.query( ProfilRoleModel.profil_id == profil_user.key ) for role in profil_role_user: user_role = UserRoleModel() user_role.user_id = data_save.key user_role.role_id = role.role_id user_role.put() data_save.put()
def active_local_agency(): from ..agency.models_agency import AgencyModel agency_id = int(request.args.get("agency_id")) agency = AgencyModel.get_by_id(agency_id) agency_active = AgencyModel.query( AgencyModel.local_status == True ).get() if agency_active: agency_active.local_status = False agency_active.put() agency.local_status = True agency_save = agency.put() url_config = ConfigModel.query( ConfigModel.local_ref == agency_save ).get() sychro_agency = SynchroModel.query( SynchroModel.agency_synchro == agency_save ).order(-SynchroModel.date).get() if sychro_agency: date = sychro_agency.date if not sychro_agency.time_departure: date_combine_departure = function.time_convert(sychro_agency.time_all) else: date_combine_departure = function.time_convert(sychro_agency.time_departure) if not sychro_agency.time_customer: date_combine_customer = function.time_convert(sychro_agency.time_all) else: date_combine_customer = function.time_convert(sychro_agency.time_customer) if not sychro_agency.time_ticket_sale_online: date_sale_online = function.time_convert(sychro_agency.time_all) else: date_sale_online = function.time_convert(sychro_agency.time_ticket_sale_online) if not sychro_agency.time_return_and_doublons_foreign: date_return_doublons = function.time_convert(sychro_agency.time_all) else: date_return_doublons = function.time_convert(sychro_agency.time_return_and_doublons_foreign) else: date = None date_combine_departure = None date_combine_customer = None date_sale_online= None date_return_doublons = None # ajout des informations data_vessel = vessel_api(url_config.url_server, url_config.token_agency, "/vessel/get/", date) data_currency = currency_api(url_config.url_server, url_config.token_agency, "/currency/get/", date) data_destination = destination_api(url_config.url_server, url_config.token_agency, "/destination/get/", date) travel_line_api(url_config.url_server, url_config.token_agency, "/travel/get/", date) my_agency = agency_api(url_config.url_server, url_config.token_agency, "/agency/get/", date) role_api(url_config.url_server, url_config.token_agency, "/role/get/", date) profil_api(url_config.url_server, url_config.token_agency, "/profil/get/", date) user_api(url_config.url_server, url_config.token_agency, "/user/get/", date) departure_api(url_config.url_server, url_config.token_agency, "/departure/get/", date, date_combine_departure) data_class = class_api(url_config.url_server, url_config.token_agency, "/class/get/", date) data_journey = journey_api(url_config.url_server, url_config.token_agency, "/journey/get/", date) data_category = category_api(url_config.url_server, url_config.token_agency, "/category/get/", date) tickettype_api(url_config.url_server, url_config.token_agency, "/tickets/get/", date) customer_api(url_config.url_server, url_config.token_agency, "/customer/get/", date, date_combine_customer) # Insertion des tickets alloues ticket_allocated_api(url_config.url_server, url_config.token_agency, "/tickets_allocated/get/", date) get_ticket_sale_online(url_config.url_server, url_config.token_agency, "/get_ticket_online/get/", date, date_sale_online) get_doublons_ticket_return_api(url_config.url_server, url_config.token_agency, "/tickets_doublons_ticket_return_sale/get/", date_return_doublons) # Netoyage de la base de donnee clean_vessel(data_vessel) clean_currency(data_currency) clean_destination(data_destination) clean_class(data_class) clean_journey(data_journey) clean_categpry(data_category) clean_ticket() if sychro_agency: sychro_agency.time_all = datetime.datetime.now().time() sychro_agency.put() else: Synchro = SynchroModel() Synchro.agency_synchro = url_config.local_ref Synchro.put() flash("Agency activated : "+agency.name, "success") return redirect(url_for('Dashboard'))
def get_ticket_sale_online(url, tocken, segment, date, time=None): from ..ticket.models_ticket import TicketModel, CurrencyModel, CustomerModel, TicketTypeNameModel, JourneyTypeModel,\ ClassTypeModel, TravelModel, AgencyModel, DepartureModel, UserModel url = ""+url+segment+tocken+"?last_update="+str(date)+"&time="+str(time) result = urlfetch.fetch(url) result = result.content result = json.loads(result) if result['status'] and result['status'] == 404: flash(result['message'], "danger") return redirect(url_for('Home')) else: for data_get in result['tickets_sale']: old_data = TicketModel.get_by_id(data_get['ticket_allocated_id']) if old_data: currency_ticket = CurrencyModel.get_by_id(data_get['sellpriceCurrency']) if currency_ticket: old_data.sellprice = data_get['sellprice'] old_data.sellpriceCurrency = currency_ticket.key customer_ticket = CustomerModel.get_by_id(data_get['customer']) old_data.customer = customer_ticket.key departure_ticket = DepartureModel.get_by_id(data_get['departure']) old_data.departure = departure_ticket.key if data_get['parent_child']: parent_child = TicketModel.get_by_id(data_get['parent_child']) old_data.parent_child = parent_child.key user_ticket = UserModel.get_by_id(data_get['ticket_seller']) old_data.ticket_seller = user_ticket.key old_data.selling = data_get['selling'] old_data.date_reservation = function.datetime_convert(data_get['date_reservation']) old_data.put() else: data_save = TicketModel(id=data_get['ticket_allocated_id']) currency_ticket = CurrencyModel.get_by_id(data_get['sellpriceAgCurrency']) if currency_ticket: data_save.sellpriceAg = data_get['sellpriceAg'] data_save.sellpriceAgCurrency = currency_ticket.key category_ticket = TicketTypeNameModel.get_by_id(data_get['type_name']) data_save.type_name = category_ticket.key journey_ticket = JourneyTypeModel.get_by_id(data_get['journey_name']) data_save.journey_name = journey_ticket.key classes_ticket = ClassTypeModel.get_by_id(data_get['class_name']) data_save.class_name = classes_ticket.key travel_ticket = TravelModel.get_by_id(data_get['travel_ticket']) data_save.travel_ticket = travel_ticket.key agency_ticket = AgencyModel.get_by_id(data_get['agency']) data_save.agency = agency_ticket.key data_save.is_prepayment = data_get['is_prepayment'] data_save.statusValid = data_get['statusValid'] data_save.is_return = data_get['is_return'] data_save.selling = data_get['selling'] data_save.is_ticket = data_get['is_ticket'] data_save.datecreate = function.datetime_convert(data_get['datecreate']) currency_ticket = CurrencyModel.get_by_id(data_get['sellpriceCurrency']) if currency_ticket: data_save.sellprice = data_get['sellprice'] data_save.sellpriceCurrency = currency_ticket.key customer_ticket = CustomerModel.get_by_id(data_get['customer']) data_save.customer = customer_ticket.key departure_ticket = DepartureModel.get_by_id(data_get['departure']) data_save.departure = departure_ticket.key user_ticket = UserModel.get_by_id(data_get['ticket_seller']) if data_get['parent_child']: parent_child = TicketModel.get_by_id(data_get['parent_child']) data_save.parent_child = parent_child.key data_save.ticket_seller = user_ticket.key data_save.date_reservation = function.datetime_convert(data_get['date_reservation']) data_save.put()