コード例 #1
0
def index(req, table, shouldPrint, serverpin, close=True):
  my_logger.info(req.get_remote_host()+': server %s closed tab %s'%(serverpin, table))

  cursor = utils.get_cursor()

  shouldPrint = (shouldPrint == 'true')

  receipt_text, gift_certs = texttab.get_tab_text(table, serverpin, cursor)

  if close:
    cursor.execute('''
      UPDATE order_group
      SET is_open = FALSE, closedby = %(serverpin)s, updated = now()
      WHERE is_open = TRUE
      AND table_id = "%(table)s"
    ''' % locals())

  cursor.close()

  if shouldPrint:
    recfile = tempfile.NamedTemporaryFile(delete=False)
    recfile.write(receipt_text.encode('latin1', 'replace'))
    filename = recfile.name
    recfile.close()

    subprocess.call(['enscript', '--font=Courier-Bold@11/16', '-B', '-MEnv10', filename])
    os.remove(filename)

  for cert in gift_certs:
    cert.print_out()

  return json.dumps(None)
コード例 #2
0
ファイル: close_tab.py プロジェクト: jkobrin/pos1
def index(req, table, shouldPrint, serverpin, close=True):
  my_logger.info(req.get_remote_host()+': server %s closed tab %s'%(serverpin, table))

  cursor = utils.get_cursor()

  shouldPrint = (shouldPrint == 'true')

  receipt_text, gift_certs = texttab.get_tab_text(table, serverpin, cursor)

  if close:
    cursor.execute('''
      UPDATE order_group
      SET is_open = FALSE, closedby = %s, updated = now()
      WHERE is_open = TRUE
      AND table_id = %s
    ''', args=[serverpin, table])

  cursor.close()

  if shouldPrint:
    utils.print_slip(receipt_text)

  for cert in gift_certs:
    if shouldPrint or cert.is_gift():
      cert.print_out()

  return json.dumps(None)
コード例 #3
0
ファイル: clsd_chks.py プロジェクト: jkobrin/pos1
def index(req, lag_days=1):

  TAXRATE = texttab.TAXRATE 

  query_txt = '''
  # see checks
    SELECT ro.created as reopen_time, 
      (select concat(first_name, last_name) from person where person.id = ro.closedby) as orig_closedby,
      og.table_id, og.created, og.updated closed_time, og.closedby, 
      oi.is_cancelled, oi.is_comped,
      concat(p.last_name, ', ', substr(p.first_name,1,1), '.') server,
      sum(oi.price) sales, 
      sum(ti.price) taxable_sales,
      sum(oi.price) + COALESCE(round(sum(ti.price) * %(TAXRATE)s, 2),0) receipts
    FROM order_group og 
        left outer join order_item oi on og.id = oi.order_group_id 
        left outer join taxable_item ti on ti.id = oi.id
        left outer join reopened ro on ro.order_group_id = og.id
        left outer join person p on p.id = og.closedby
    WHERE date(og.updated - interval '6' HOUR) = date(now() - INTERVAL '%(lag_days)s' DAY)
  '''%locals()

  if lag_days is not None:
    query_txt += '''and date(og.updated - interval '6' hour) = date(now()) - interval '%(lag_days)s' day
    '''%locals()

  query_txt += '''  group by og.table_id, og.updated, ro.id order by ro.created, closed_time;'''

  checks = utils.select(query_txt,
    incursor=None,
    label=True
  )

  dayviewed = date.today() - timedelta(days=int(lag_days))
  body = '<h1> %s </h1>' % dayviewed.strftime('%A %B %d')
  for row in checks:
    body += '<div style="float:left;"> %(created)s to <br> %(closed_time)s <br> by: %(server)s <h1> %(table_id)s $%(receipts).2f</h1>' % row
    if row['reopen_time']:
        body += '<h1 style="color: red"> REOPENED: <br> %(reopen_time)s <br>original: %(orig_closedby)s</h1>' %row

    tab_text, certs = texttab.get_tab_text(
      table=row['table_id'], 
      serverpin = row['closedby'], 
      cursor = None, 
      closed_time = row['closed_time'],
      admin_view = True,
      reopen_time = row['reopen_time'])

    hi_tab = tab_text.replace(
        'cancelled', '<a style="color:red"> CANCELLED </a>'
        ).replace('comped', '<a style="color:green"> COMPED </a>')


    
    body += '<h2><pre>' + hi_tab + '</pre></h2></div>'

    #body += utils.tohtml(
    #  "hours",
    #  ('date', 'last_name', 'time_in', 'time_out', 'hours_worked'), 
    #  detail
    #) +
    #dets = utils.select('''
    #select og.id, og.table_id, closedby, sum(price)*1.08625, og.created 
    #from revenue_item ri, order_group og 
    #where ri.order_group_id = og.id 
    #and date(og.created) = date(now()) - interval '1' day 
    #group by og.id;
    #''',
    #  incursor=None,
    #  label=False
    #)


  output = (
    '''  
      <html>
      <body>
    ''' + 
      body
     +
    '''</body></html>'''
  )

  return output