$locIds = array(); foreach ($locations as $location) { $locNames[] = $location->label; $locIds[] = $location->id; } $prdCat = array(); $levels = array(); if ($countedStock !== null) { // Build listing by categories foreach ($products as $product) { if ($product->categoryId !== \Pasteque\CompositionsService::CAT_ID) { $prdCat[$product->categoryId][] = $product; } } // Get stock to compare with counted stock $rawLevels = \Pasteque\StocksService::getLevels($locationId); foreach ($rawLevels as $level) { $levels[$level->productId] = $level; } } ?> <h1><?php \pi18n("Stock check", PLUGIN_NAME); ?> </h1> <?php \Pasteque\tpl_msg_box($message, $error); ?> <?php
$currLocation = null; if (isset($_POST['location'])) { $currLocation = $_POST['location']; } else { $currLocation = $locations[0]->id; } $products = \Pasteque\ProductsService::getAll(true); $categories = \Pasteque\CategoriesService::getAll(); $prdCat = array(); // Link products to categories and don't track compositions foreach ($products as $product) { if ($product->categoryId !== \Pasteque\CompositionsService::CAT_ID) { $prdCat[$product->categoryId][] = $product; } } $levels = \Pasteque\StocksService::getLevels($currLocation); $prdLevel = array(); foreach ($levels as $level) { $prdLevel[$level->productId] = $level; } ?> <h1><?php \pi18n("Inventory", PLUGIN_NAME); ?> </h1> <?php if ($multilocations) { // Location picker ?> <form class="edit" action="<?php
public function __construct($report, $values) { $this->data = array(); $this->i = 0; $countedStock = array(); if (!isset($values['location'])) { $locSrv = new \Pasteque\LocationsService(); $locations = $locSrv->getAll(); $defaultLocationId = $locations[0]->id; $values['location'] = $defaultLocationId; } foreach ($values as $key => $value) { if (strpos($key, "qty-") === 0) { $productId = substr($key, 4); $qty = $value; $countedStock[$productId] = $qty; } } $categories = \Pasteque\CategoriesService::getAll(); $products = \Pasteque\ProductsService::getAll(TRUE); $prdCat = array(); // Build listing by categories foreach ($products as $product) { if ($product->categoryId !== \Pasteque\CompositionsService::CAT_ID) { $prdCat[$product->categoryId][] = $product; } } // Get stock to compare with counted stock $levels = array(); $rawLevels = \Pasteque\StocksService::getLevels($values['location']); foreach ($rawLevels as $level) { $levels[$level->productId] = $level; } foreach ($categories as $category) { if (isset($prdCat[$category->id])) { foreach ($prdCat[$category->id] as $product) { $counted = 0; if (isset($countedStock[$product->id])) { $counted = $countedStock[$product->id]; } $actual = 0; if (isset($levels[$product->id])) { $actual = $levels[$product->id]->qty; } if ($counted !== $actual) { $this->data[] = array("ref" => $product->reference, "counted" => $counted, "actual" => $actual, "diff" => $counted - $actual); } } } } }