public function removeItem($result) { // validate json if (!isset($this->data->id) || !isset($this->data->itemid)) { $result['error'] = "Sale & item id must be provided"; return $result; } // update item record $itemMdl = new SaleItemsModel(); if ($itemMdl->removeById($this->data->itemid) === false) { $result['error'] = "Could not remove item record: " . $itemMdl->errorInfo; return $result; } // delete item in json foreach ($this->invoice->items as $key => $item) { if ($this->data->itemid == $item->id) { $this->data->sitemid = $item->sitemid; $this->data->qty = $item->qty; unset($this->invoice->items[$key]); $this->invoice->items = array_values($this->invoice->items); break; } } // Update invoice totals $this->calculateInvoice(); // update invoice data if ($this->saveInvoiceData() === false) { $result['error'] = "Could not commit invoice data: " . $this->invMdl->errorInfo; return $result; } else { // increment stock if ($this->data->sitemid > 0) { $wposStock = new WposAdminStock(); $wposStock->incrementStockLevel($this->data->sitemid, 0, $this->data->qty, false); } // Create transaction history record WposTransactions::addTransactionHistory($this->id, $_SESSION['userId'], "Modified", "Item Removed"); // log data Logger::write("Invoice item removed for invoice id: " . $this->id, "INVOICE", json_encode($this->data)); } $result['data'] = $this->invoice; return $result; }