Exemplo n.º 1
0
def ql_don_hang_tao_don_moi_detail(ma_hd,page=1):
    if not current_user.is_authenticated or current_user.ma_loai_nguoi_dung != 2:
        return redirect(url_for('log_in', next=request.url))
    form = Form_tim_kiem_nhap_hang()
    hoa_don = dbSession.query(Hoa_don).filter(Hoa_don.ma_hoa_don == ma_hd).first()
    don_hang = dbSession.query(Don_hang).filter(Don_hang.ma_hoa_don == ma_hd).all()
    query = BaseQuery(San_pham, dbSession)
    page_filter = query.paginate(page,10,False)
    thong_bao = ''
    if form.validate_on_submit() and form.noi_dung.data != '':
        ten_sp = form.noi_dung.data.strip().lower()
        if ten_sp.isdigit():
            page_filter = query.filter_by(ma_san_pham = int(ten_sp)).paginate(page,10,False)
        else:
            page_filter = query.filter_by(ten_san_pham = ten_sp).paginate(page,10,False)
        
        if len(page_filter.items) == 0:
            thong_bao = 'Không tìm thấy sản phẩm!'
    
    return render_template('Quan_ly/QL_don_hang/Chi_tiet_don_hang.html',don_hang = don_hang, thong_bao = thong_bao, page_filter = page_filter, form = form, hoa_don = hoa_don)
Exemplo n.º 2
0
 def filter_by(self, **kwargs):
     '''
     由于是做软删除,所以记录仍在,只是标记成已删除
     业务中查询是必然是没被删除的条目,故必须有status==1,为了避免每次查询时写这个条件,覆盖框架的filter_by方法
     :param kwargs:
     :return:
     '''
     if "status" not in kwargs:
         kwargs["status"] = 1
     # return super().filter_by(**kwargs)
     # 根据mro(基于拓扑排序)顺序搜索有此方法的父类。写起来方便,但不利于阅读,因为多重继承和继承链的存在,不知道到底是哪个。最好用调用非绑定父类的明确写法。
     return BaseQuery.filter_by(self, **kwargs)
Exemplo n.º 3
0
 def get_filtered_query(self, query: BaseQuery, **kwargs) -> BaseQuery:
     """Filter query using query parameters"""
     return query.filter_by(**kwargs)