Example #1
0
def write():
    d = request.json
    try:
        name = d.get("name").strip()
        date = d.get("date").strip()
        location = d.get("location").strip()
        items = d.get("items")
    except Exception as E:
        return str(E), 402

    if len(name) == 0:
        return "name is required", 402

    if not valid_date(date):
        return "date is required and must be valid", 402
    if len(location) == 0 or not is_location(l):
        return "location is required and must be defined", 402

    last_transaction_id = db.db_read("last_transaction_id")
    data = {
        last_transaction_id + 1: {
            "name": name,
            "date": date,
            "location": location,
            "items": items
        }
    }
    return db.db_write("transactions".data)
def end_loan(loan_id, ended, paid_currency):
    try:
        loan = db_read()[loan_id]
    except KeyError as e:
        raise RuntimeError(f'Error: a loan with id {loan_id} does not exist.')

    if loan['ended_details']:
        raise RuntimeError('Error: this loan has already been ended.')

    total_commission = get_total_commission(loan, ended)
    paid_amount_before_commission = round(
        get_paid_amount_before_commission(loan, paid_currency), 2)
    paid_amount = round(
        get_total_owed(paid_amount_before_commission, total_commission), 2)

    return db_end_loan(
        loan_id, {
            'ended_details': {
                'Paid Currency': paid_currency,
                'Total Commission': total_commission,
                'Paid Amount Before Commission': paid_amount_before_commission,
                'Paid Amount': paid_amount,
                'Loan End': ended
            }
        })
Example #3
0
 def remember_tasks(self):
     """"""
     try:
         TaskSlot.task_dict = db.db_read()
         for k, v in TaskSlot.task_dict.items():
             TaskSlot(self, k, v.head, v.body).frame.pack(fill=tk.X)
     except FileNotFoundError:
         pass
Example #4
0
def on_read(conn, message):
    """Receives a message on db.read queue
    """
    body = json.loads(message.body)
    print('Read received', body)
    with Producer(conn) as producer:
        try:
            value = db_read(body['key'])
            print('Db read', body['key'], value)
            producer.publish(
                {'result': value},
                exchange='',
                routing_key=message.properties['reply_to'],
                correlation_id=message.properties['correlation_id'],
                serializer='json',
                retry=True)
        finally:
            message.ack()
Example #5
0
def list_pickups():
    try:
        v = db.db_read("transactions")
    except Exception as E:
        return str(E), 500
    return v
Example #6
0
def list_product():
    try:
        v = db.db_read("item_definition")
    except Exception as E:
        return str(E), 500
    return v
Example #7
0
def locations():
    try:
        v = db.db_read("location")
    except Exception as E:
        return []
def get_next_id():
    return len(db_read())
def total_value(item_id):
    items = db_read(item_id)
    return sum(items)
Example #10
0
def user_list():
    return db_read(db_file_name, 100, 0)
def end_loan():
    params = request.args
    ExchangeManager.end_loan(params['id'], params['ended'], params['paid_currency'])
    return jsonify(db_read()[params['id']])
def loans():
    return jsonify(db_read())