Exemplo n.º 1
0
    def create_security(payload):

        body = request.get_json()
        security_name = body.get('security_name', None)
        region_id = body.get('region_id', None)
        asset_class_id = body.get('asset_class_id', None)

        if Region.query.get(region_id) is None or AssetClass.query.get(
                asset_class_id) is None:
            abort(422)

        security = Security(name=security_name,
                            region_id=region_id,
                            asset_class_id=asset_class_id)

        security.insert()

        db.session.add(security)
        db.session.commit()

        return jsonify({
            'success': True,
            'security_id': security.id,
            'security_name': security.name,
            'region': security.region.name,
            'asset_class': security.asset_class.name,
        })
Exemplo n.º 2
0
def create_invoice():
    if Security.is_login(SK):
        item = Item()
        employee = Employee()
        return render_template('invoice/create_invoice.html', title='Create Invoice', items=item.get_items(),
                               employees=employee.get_employees())
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 3
0
def save_measure_in_db(session, data, point):
    objects = []
    value = data.pop(0)

    my_ssid = Ssid(value[0])
    my_bssid = Bssid(value[1])
    my_measure = Measure(value[2])
    my_channel = Channel(value[3])
    my_security = Security(value[4])
    my_point = Point(point)

    entry = session.query(Ssid).filter(Ssid.ssid_value.like(value[0])).first()
    if entry is None:
        my_ssid.measure.append(my_measure)
        objects.append(my_ssid)
    else:
        entry.measure.append(my_measure)

    entry = session.query(Bssid).filter(Bssid.bssid_value.like(
        value[1])).first()
    if entry is None:
        my_bssid.measure.append(my_measure)
        objects.append(my_bssid)
    else:
        entry.measure.append(my_measure)

    entry = session.query(Channel).filter(Channel.channel_number.like(
        value[3])).first()
    if entry is None:
        my_channel.measure.append(my_measure)
        objects.append(my_channel)
    else:
        entry.measure.append(my_measure)

    entry = session.query(Security).filter(
        Security.security_type.like(value[4])).first()
    if entry is None:
        my_security.measure.append(my_measure)
        objects.append(my_security)
    else:
        entry.measure.append(my_measure)

    entry = session.query(Point).filter(Point.x_location == point.x).filter(
        Point.y_location == point.y).first()
    if entry is None:
        my_point.measure.append(my_measure)
        objects.append(my_point)
    else:
        entry.measure.append(my_measure)

    objects.append(my_measure)

    session.add_all(objects)
    session.commit()
    if len(data) != 0:
        save_measure_in_db(session, data, point)
    else:
        return
Exemplo n.º 4
0
def change_pending_status():
    if Security.is_login(SK):
        callback = request.form['callback']
        try:
            Invoice.change_pending_status(request.form['pending_id'])
        except Exception as e:
            print(e)
            return 'Failed'
        return redirect(url_for(callback))
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 5
0
def print_invoice():
    if Security.is_login(SK):
        id = request.args.get('id')
        costumer = request.args.get('costumer')
        # CONVERT STRING TO DATETIME AND DATETIME BACK TO A FORMATED STRING
        date = datetime.strftime(datetime.strptime(request.args.get('date'), '%Y-%m-%d'), '%m/%d/%Y')
        seller = request.args.get('seller')
        items = prepare_items(request.args.get('items'))
        total = request.args.get('total')
        pending = request.args.get('pending')

        return render_template('invoice/invoice_print.html', id=id, costumer=costumer, date=date,
                               seller=seller, items=items, total=total, pending=pending, title=costumer + ' - Invoice')
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 6
0
 def get_syntetic_index(cls):
     # Add app context to work with db
     with app.app_context():
         # Get securities
         securities = Security.get_all()
         # Get index price
         index_price = [100]
         # Get returns per security
         return_security_array = [
             cls.get_return_per_security(security)
             for security in securities
         ]
         # Compute the index
         for index, item in enumerate(return_security_array[:]):
             index_price.append(index_price[index] * (1 + sum(item)))
         return index_price
Exemplo n.º 7
0
def insert_data(session, data, metadata):
    """
    Insert data into db
    :param data: df with columns
        date
        high
        low
        open
        close
        volume
        ajd_close
    :param metadata: df with single row
        name
        ticker
        security
        exchange
    """
    if not metadata:  # updating
        print('No metadata')
    else:  # new data

        exchange = Exchange(name=metadata['exchange'])
        security = Security(type=metadata['security'])
        mapped_ticker = Ticker(
            ticker=metadata['ticker'],
            name=metadata['name'],
            exchange=exchange,
            security=security)  # TODO create a mapping object
        data = data.to_dict(orient='records')  # list of dicts

        # print('Debugging - mapped_ticker')  # debugging
        # print(mapped_ticker)  # debugging

        # print('Debugging - Data length')  # debugging
        # print(len(data))  # debugging
        # print('Debugging - Data')  # debugging
        # print(data)

        price_list = list()
        for item in data:  # merge metadata to data
            date = item['date']
            high = item['high']
            low = item['low']
            open = item['open']
            close = item['close']
            volume = item['volume']
            adj_close = item['adj_close']

            # data_point = Price(date=date,
            #                    open=open,
            #                    high=high,
            #                    low=low,
            #                    close=close,
            #                    adj_close=adj_close,
            #                    ticker=mapped_ticker)

            data_point = {
                'date': date,
                'open': open,
                'high': high,
                'low': low,
                'close': close,
                'adj_close': adj_close,
                'ticker': mapped_ticker
            }

            price_list.append(data_point)

            # print('Debugging - printing data_point')  # debugging
            # print(data_point)  # debugging

        # print('Debugging - price_list')  # debugging
        # print(price_list)  # debugging

        # print(f'Inserting data into DB')  # debugging
        session.bulk_insert_mappings(Price, price_list)
Exemplo n.º 8
0
def invoice():
    if Security.is_login(SK):
        return render_template('invoice/invoice.html', title='Invoice')
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 9
0
def login():
    if not Security.is_login(SK):
        return render_template('settings/auth_admin.html')
    return redirect(url_for('home'))
Exemplo n.º 10
0
def home():
    if Security.is_login(SK):
        return render_template('misc/home.html', title='Home')
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 11
0
def create_employee():
    if Security.is_login(SK):
        return render_template('employees/create_employee.html', title="Create Employee")
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 12
0
def employees():
    if Security.is_login(SK):
        return render_template('employees/employees.html', title='Employees')
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 13
0
def costumer():
    if Security.is_login(SK):
        return render_template('costumers/costumer.html', title='Costumers')
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 14
0
def view_pending():
    if Security.is_login(SK):
        return render_template('pending/select_pending.html', callback='view_pending', title='View Pending', pending=Invoice.get_pending_invoices())
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 15
0
def pending():
    if Security.is_login(SK):
        return render_template('pending/pending.html', title='Pending')
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 16
0
            continue

        if api_response:
            match_found = False
            for security in api_response.securities:
                if security.ticker and\
                    security.code == 'EQS' and\
                    security.ticker.upper() == ticker.upper():
                    match_found = True
                    api_response = get_security(security.id)
                    if api_response:
                        stock = Security(
                            id_intrinio=api_response.id,
                            code=api_response.code,
                            currency=api_response.currency,
                            ticker=api_response.ticker,
                            name=api_response.name,
                            figi=api_response.figi,
                            composite_figi=api_response.composite_figi,
                            share_class_figi=api_response.share_class_figi
                        )
                        print("Adding security {name} with ticker: {ticker}".format(name=stock.name, ticker=stock.ticker))
                        session.add(stock)
                        session.commit()
                    break
            if not match_found:
                print("\nNo match found for query: {query}\n".format(query=query))
                missing_securities.append(query)
        else:
            print("No API response for: ", query)
            missing_securities.append(query)
    print("There were {length} missing securities. Trying search with larger page size...".format(length=len(missing_securities)))
Exemplo n.º 17
0
def settings():
    if Security.is_login(SK):
        return render_template('settings/settings.html', title='Settings')
    return redirect(url_for('login', callback=stack()[0][3]))
Exemplo n.º 18
0
def create_admin():
    admin = Admin()
    if admin.check_if_admin_exist():
        if not Security.is_login(SK):
            return redirect(url_for('login', callback='create_admin'))
    return render_template('settings/create_admin.html', title="Create Administrator")
Exemplo n.º 19
0
def select_invoice():
    if Security.is_login(SK):
        return render_template('invoice/select_invoice.html', title='Select Invoice',
                               invoices=Invoice.get_ten_invoices(), boxes_sold=Invoice.number_of_boxes_sold())
    return redirect(url_for('login', callback=stack()[0][3]))