Пример #1
0
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
Пример #2
0
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'))
Пример #3
0
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()
Пример #4
0
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()
Пример #5
0
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'))
Пример #6
0
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()