Exemplo n.º 1
0
Arquivo: subrow.py Projeto: Jasu/Lokki
def commandSubrowAdd(args, session):
    invoice = beginRowCommand(args, session)
    subrow = Subrow()
    subrow.row = findRow(args, invoice, session, type=CompositeRow)
    # Note: Indexing starts from one here. Setting subrow.row in the previous
    # statement causes its insertion in subrow.row.subrows.
    subrow.index = len(subrow.row.subrows) 
    subrow.title = args.title
    subrow.num_units = args.num_units
    subrow.price_per_unit = args.price_per_unit
    if args.note:
        subrow.note = args.note
    if args.external_source:
        subrow.external_source = args.external_source
    if args.external_id:
        subrow.external_id = args.external_id
    if args.external_source and args.external_id:
        query = (session.query(Subrow)
                 .filter_by(external_source=args.external_source)
                 .filter_by(external_id=args.external_id))
        dieIf(query.first(), 'External id already exists.')

    session.add(subrow)
    session.commit()

    print("Added subrow '" + str(subrow.index) + "'.")
Exemplo n.º 2
0
Arquivo: subrow.py Projeto: Jasu/Lokki
def commandSubrowGet(args, session):
    invoice = beginRowCommand(args, session)
    row = findRow(args, invoice, session, CompositeRow)
    subrow = findSubrow(row, args.subrow_index)
    dieIf(not hasattr(subrow, args.setting_name), 
          "Setting '" + args.setting_name + "' not found.")
    print(getattr(subrow, args.setting_name))
Exemplo n.º 3
0
def commandCompositeRemove(args, session):
  invoice = beginRowCommand(args, session)
  row = findRow(args, invoice, session, CompositeRow)

  session.delete(row)

  session.commit()

  print("Deleted row '" + str(row.index) + "'.")
Exemplo n.º 4
0
Arquivo: subrow.py Projeto: Jasu/Lokki
def commandSubrowRemove(args, session):
    invoice = beginRowCommand(args, session)
    row = findRow(args, invoice, session, CompositeRow)
    subrow = findSubrow(row, args.subrow_index)
  
    session.delete(subrow)
    session.commit()
  
    print("Deleted subrow '" + str(subrow.index) + "'.")
Exemplo n.º 5
0
Arquivo: row.py Projeto: Jasu/Lokki
def commandRowSet(args, session):
  invoice = beginRowCommand(args, session)
  row = findRow(args, invoice, session, type=None)
  dieIf(not hasattr(row, args.setting_name), 
    "Setting '" + args.setting_name + "' does not exist.")

  setattr(row, args.setting_name, args.setting_value)

  session.commit()

  print("Updated row '" + str(row.index) + "'.")
Exemplo n.º 6
0
Arquivo: subrow.py Projeto: Jasu/Lokki
def commandSubrowSet(args, session):
    invoice = beginRowCommand(args, session)
    row = findRow(args, invoice, session, CompositeRow)
    subrow = findSubrow(row, args.subrow_index)
    dieIf(not hasattr(subrow, args.setting_name), 
          "Setting '" + args.setting_name + "' not found.")
    setattr(subrow, args.setting_name, args.setting_value)
    session.commit()
  
    print('Updated subrow ' + str(subrow.index)
          + ' of row ' + str(row.index)
          + ' of invoice ' + str(invoice.invoice_number) + '.')
Exemplo n.º 7
0
def commandCompositeShow(args, session):
  invoice = beginRowCommand(args, session)
  row = findRow(args, invoice, session, CompositeRow)
  table = PrettyTable(['N', 'Title', 'Price per unit', 'Num units', 'Total'])

  for subrow in row.subrows:
    table.add_row([
      subrow.index,
      subrow.title,
      subrow.price_per_unit,
      subrow.num_units,
      Decimal(subrow.price_per_unit) * Decimal(subrow.num_units),
    ])

  print(table)
Exemplo n.º 8
0
Arquivo: row.py Projeto: Jasu/Lokki
def commandRowGet(args, session):
  invoice = beginRowCommand(args, session, readonly=True)
  row = findRow(args, invoice, session, type=None)
  dieIf(not hasattr(row, args.setting_name), 
    "Setting '" + args.setting_name + "' does not exist.")
  print(getattr(row, args.setting_name))