def bill_new(): no = db.session.query(db.func.max(Bill.no)).filter_by(site_id=g.sid, branch_id=g.bid).scalar() or 0 ref_no = no + 1 bill_no = strftime('%Y%m') + '-' + str(ref_no).zfill(g.bigit) status = Status.query.filter_by(name='new', module='bill').first() bill = Bill(site_id=g.sid, branch_id=g.bid) bill.no = ref_no bill.bill_no = bill_no bill.status_id = status.id bill.currency = g.currency bill.user_id = g.uid bill.tax_rate = g.tax bill.discount_rate = g.discount_rate bill_count = Bill.query.filter_by(site_id=g.sid, branch_id=g.bid, status_id=status.id).count() data, error = BillSchema().dump(bill) return jsonify({ 'bill': data, 'hold_bill_count': bill_count })