/** * update stock tack * * @param Product $product * @param number $stockOnPO * @param number $stockOnHand * @param number $stockInRMA * @param number $stockInParts * @param number $totalInPartsValue * @param number $totalOnHandValue * * @return Product */ private function updateStocktack(Product $product, $stockOnPO = 0, $stockOnHand = 0, $stockInRMA = 0, $stockInParts = 0, $totalInPartsValue = 0, $totalOnHandValue = 0, $active = true, $comment = '') { try { Dao::beginTransaction(); if (!empty($stockOnPO)) { $product->addLog('Product (ID=' . $product->getId() . ') now stockOnPO = ' . $stockOnPO, Log::TYPE_SYSTEM)->setStockOnPO($stockOnPO); } if (!empty($stockOnHand)) { $product->addLog('Product (ID=' . $product->getId() . ') now stockOnHand = ' . $stockOnHand, Log::TYPE_SYSTEM)->setStockOnHand($stockOnHand); } if (!empty($stockInRMA)) { $product->addLog('Product (ID=' . $product->getId() . ') now stockInRMA = ' . $stockInRMA, Log::TYPE_SYSTEM)->setStockInRMA($stockInRMA); } if (!empty($stockInParts)) { $product->addLog('Product (ID=' . $product->getId() . ') now stockInParts = ' . $stockInParts, Log::TYPE_SYSTEM)->setStockInParts($stockInParts); } if (!empty($totalInPartsValue)) { $product->addLog('Product (ID=' . $product->getId() . ') now totalInPartsValue = ' . $totalInPartsValue, Log::TYPE_SYSTEM)->setTotalInPartsValue($totalInPartsValue); } if (!empty($totalOnHandValue)) { $product->addLog('Product (ID=' . $product->getId() . ') now totalOnHandValue = ' . $totalOnHandValue, Log::TYPE_SYSTEM)->setTotalOnHandValue($totalOnHandValue); } $active = $active === 0 || $active === '0' || $active === false || $active === 'false' || $active === 'no' ? false : true; $product->addLog('Product (ID=' . $product->getId() . ') now active = ' . $active, Log::TYPE_SYSTEM)->setActive($active); $product->snapshotQty(null, ProductQtyLog::TYPE_STOCK_ADJ, empty($comment) ? 'Loaded via importer' : $comment)->save(); Dao::commitTransaction(); return $product; } catch (Exception $e) { Dao::rollbackTransaction(); echo $e; exit; } }