我是CodeIgniter的新手。我正在尝试更新基于FIFO的表的数量。我正在创建一个盘点页面,如果我们计算的物理项少于表中的数量,我们将进行核对,这将更新库存表和报废表。更新库存表很容易,我已经完成了,但我想根据FIFO更新报废表的数量。例如,我需要库存表中物料A的数量为50,但实际计数时为35,因此在进行调节时,应从废弃表数量中减去15。
| 项目名称|数量|日期|
| - -|- -|- -|
| 物料A|五个|2022年8月22日|
| 物料A|四个|2022年8月22日|
| 物料A|九个|2022年8月22日|
更新后应该是这样的:|项目名称|数量|日期||:———————-|:——————:| □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □||物料A|第0页|2022年8月22日||物料A|第0页|2022年8月22日||物料A|三个|2022年8月22日|
请帮助我。如果你需要进一步的澄清,请让我知道。提前感谢
public function update_complete(){
$stock_diff = $this->input->post('stock_diff');
$counted_stock_value = $this->input->post('counted_stock_value');
$cost_diff = $this->input->post('cost_diff');
$reconcile = $this->input->post('reconcile');
$barcode = $this->input->post('barcode');
$stk_id = $this->input->post('stk_id');
for ($i = 0; $i < count($barcode); $i++)
{
$data = array(
'stocktake_value' => $counted_stock_value[$i],
'stock_diff' => $stock_diff[$i],
'cost_diff' => $cost_diff[$i],
'status' => $reconcile[$i]
);
// Commented for testing
$this->db->where('stk_id', $stk_id);
$this->db->where('barcode', $barcode[$i]);
$this->db->update('stocktake_trans', $data);
$itemResult = $this->item_model->getStockdiscardTransByBarcodeNew($barcode[$i]);
foreach($itemResult as $item)
{
$rest = $stock_diff[$i];
if($rest > 0)
{
if($item['quantity'] >= $rest)
{
$rest = $item['quantity']-=$rest;
//$rest = 0;
echo $rest;
}
else
{
$item['quantity'] = 0;
$rest = $rest - $item['quantity'];
}
$this->db->where('barcode', $barcode[$i]);
$this->db->update('stockdiscard_trans', array('quantity' => $rest));
}
}
}
// Update Stock Take
$data1 = array(
'reconciled_by' => $this->session->userdata('name'),
'reconciled_at' => date('Y-m-d')
);
$this->db->where('id', $stk_id);
$this->db->update('stocktake', $data1);
// Set message
$this->session->set_flashdata('stocktake_reconciled', 'Stock Take has been Reconciled!');
//redirect('stocktake/complete');
}
1条答案
按热度按时间rn0zuynd1#
我知道你想保存新旧库存之间的差异。
可以将原始数量存储在变量中,用新值更新产品,然后计算原始数量与新数量之间的差值。最后,将差值存储在丢弃表中。
我理解的对吗?
编辑1:像这样的东西?
回溯测试:
5〉= 15?-假数量= 0剩余= 10
4〉= 10错误数量= 0剩余= 6
9〉= 6实际数量= 9-6 = 3其余= 0
但你需要管理,如果产品的剩余库存将大于0,产品A的数量将为0,会发生什么。
假设剩余数量为19
5〉= 19?错误数量= 0剩余= 14
4〉= 14?错误数量= 0剩余数量= 10
9〉= 10?假数量= 0剩余= 1
当表中所有项目的数量为0时,剩余数量为1时会发生什么?