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
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)
|
|
|