我想获得Laravel和MySQL的总库存

时间:2019-12-20 09:58:38

标签: php mysql laravel eloquent

我正在使用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列出多少种药品可供出售?我的意思是库存药品。我该如何解决这个复杂的查询?

0 个答案:

没有答案