我正在使用Vuejs创建一个药房管理系统。 PHP,Laravel,jQuery。现在,在这一部分中,当药剂师/药品销售商搜索要出售的药品时,我想获取库存。
例如:当一名药剂师仅输入药品名称的关键字时,我要显示相关的药品名称,公司名称,通用名称,tp(购买价格),MRP(销售价格),可用库存
我的药品表结构:
$table->bigIncrements('id');
$table->unsignedBigInteger('pharmacy');
$table->unsignedBigInteger('stored_by');
$table->unsignedBigInteger('updated_by')->nullable();
$table->string('is_branch_medicine')->default('No');
$table->string('branch_id')->nullable();
$table->string('invoice_no');
$table->string('item_status');
$table->string('medicine_name');
$table->unsignedBigInteger('generic_name_id');
$table->unsignedBigInteger('company_name_id'); //Company name/id should be unique for each invoiceNo
$table->bigInteger('medicine_qty');
$table->float('medicine_tp');
$table->float('medicine_mrp');
$table->float('tax')->default(0);
$table->float('discount')->default(0);
$table->string('expire_date');
$table->unsignedBigInteger('total');
$table->string('invoice_created_date');
$table->string('item_store_date');
$table->timestamps();
我已经写了一个查询来获取待售数据,但是我不能从总库存中减去/计算已售药品的总数。我的查询:
$data = Medicine::where([
["pharmacy", "=", $authUserPharmacy],
["is_branch_medicine", "=", "Yes"],
["branch_id", "=", $branch_id],
["medicine_name", "LIKE", "%$medicineKey%"],
["expire_date", "!=", $today]
])
->select(
'pharmacy', 'branch_id', 'medicine_name', 'generic_name_id',
'company_name_id', 'medicine_tp', 'medicine_mrp',
DB::raw('sum(medicine_qty) as stock')
)
->groupBy('pharmacy', 'branch_id', 'medicine_name', 'generic_name_id', 'company_name_id', 'medicine_tp', 'medicine_mrp')
->with(['get_generic', 'get_company'])
->get();
我的数据很好,但我想通过减去库存(药品表格中的DB::raw('sum(medicine_qty) as stock')
)中的总销售量来显示我的总库存量
我的sell_table
$table->unsignedBigInteger('pharmacy');
$table->string('is_branch_medicine')->default('No');
$table->string('branch_id')->nullable();
$table->string('medicine_name');
$table->unsignedBigInteger('generic_name_id');
$table->unsignedBigInteger('company_name_id');
$table->float('medicine_tp');
$table->float('medicine_mrp');
$table->bigInteger('medicine_qty_for_sell');
$table->bigInteger('selling_date');
实际上,我想根据药房,medical_name,generic_name,company_name列出多少种药品可供出售?我的意思是库存药品。我该如何解决这个复杂的查询?