You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

83 lines
4.7 KiB

from utils.PageHepler import db_page, db_page_entity
from utils.apiDoc import *
from sqlalchemy import or_
@inventory.route('/list')
class InventoryList(Resource):
@staticmethod
def get():
inventoryListFilter = db.session.query(ReagtReagent.Name, ReagtReagent.Specification). \
join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId). \
filter(ReagtReagent.Using == True). \
group_by(ReagtReagent.Name, ReagtReagent.Specification).distinct()
if request.args.get('query') is not None and request.args.get('query') != '':
inventoryListFilter = db.session.query(ReagtReagent.Name, ReagtReagent.Specification). \
join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId). \
group_by(ReagtReagent.Name, ReagtReagent.Specification). \
filter(ReagtReagent.Using == True). \
filter(or_(ReagtReagent.Name.contains(request.args.get('query')), ReagtReagent.Specification
.contains(request.args.get('query')),
ReagtReagent.PinYinCode.contains(request.args.get('query')))).distinct()
result_data = db_page(inventoryListFilter, ReagtReagent.Name, request.args, 10)
return SuccessResponse(ResultCode.SUCCESS, {'totalNumber': inventoryListFilter.count(),
'list': result_data}, None)
@inventory.route('/info')
class InventoryInfo(Resource):
@staticmethod
def get():
data = request.args
inventoryInfoFilter = db.session.query(ReagtStock.Code,
ReagtReagent.Name,
ReagtStock.Position,
ReagtStock.LastNumber,
ReagtReagent.TypeName,
ReagtStock.Number,
ReagtStock.InTime,
ReagtReagent.Specification,
ReagtStock.Expiration,
ReagtReagent.Maker,
ReagtStock.SupplierName,
ReagtReagent.CertificationCode,
ReagtStock.ProductionBatch,
ReagtReagent.UnitPrice,
ReagtReagent.SellingPrice,
ReagtStock.VerifyPeople,
ReagtReagent.Unit,
ReagtReagent.SmallestUnit,
ReagtReagent.Ratio,
ReagtStock.MinNumberUnit,
ReagtStock.StockId). \
filter(ReagtReagent.Name == data.get('Name'), ReagtReagent.Specification == data.get('Specification')). \
join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId)
result_data = db_page(inventoryInfoFilter, ReagtStock.InTime, data, 12)
return SuccessResponse(ResultCode.SUCCESS, {'totalNumber': inventoryInfoFilter.count(),
'list': result_data}, None)
@inventory.route('/stockList')
class StockFile(Resource):
"""
库存盘点单
"""
@staticmethod
def get():
inventoryListFilter = db.session.query(ReagtReagent.Name,
ReagtReagent.Specification,
ReagtStock.Position,
ReagtStock.LastNumber,
ReagtReagent.Unit,
ReagtStock.MinNumberUnit,
ReagtReagent.SmallestUnit,
ReagtReagent.Ratio,
ReagtReagent.Maker,
ReagtStock.ProductionBatch,
ReagtReagent.PinYinCode
). \
join(ReagtStock, ReagtStock.ReagentId == ReagtReagent.ReagentId).order_by(ReagtReagent.PinYinCode)
return SuccessResponse(ResultCode.SUCCESS,
{'list': db_page(inventoryListFilter, ReagtStock.InTime,
request.args, inventoryListFilter.count())}, None)