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, })
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]))
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
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]))
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]))
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
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)
def invoice(): if Security.is_login(SK): return render_template('invoice/invoice.html', title='Invoice') return redirect(url_for('login', callback=stack()[0][3]))
def login(): if not Security.is_login(SK): return render_template('settings/auth_admin.html') return redirect(url_for('home'))
def home(): if Security.is_login(SK): return render_template('misc/home.html', title='Home') return redirect(url_for('login', callback=stack()[0][3]))
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]))
def employees(): if Security.is_login(SK): return render_template('employees/employees.html', title='Employees') return redirect(url_for('login', callback=stack()[0][3]))
def costumer(): if Security.is_login(SK): return render_template('costumers/costumer.html', title='Costumers') return redirect(url_for('login', callback=stack()[0][3]))
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]))
def pending(): if Security.is_login(SK): return render_template('pending/pending.html', title='Pending') return redirect(url_for('login', callback=stack()[0][3]))
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)))
def settings(): if Security.is_login(SK): return render_template('settings/settings.html', title='Settings') return redirect(url_for('login', callback=stack()[0][3]))
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")
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]))