// the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Pastèque is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Pastèque. If not, see <http://www.gnu.org/licenses/>. namespace ProductBarcodes; $message = NULL; $error = NULL; $categories = \Pasteque\CategoriesService::getAll(); $allProducts = \Pasteque\ProductsService::getAll(TRUE); $products = array(); foreach ($allProducts as $product) { if ($product->barcode !== NULL && $product->barcode != "") { $products[] = $product; } } ?> <h1><?php \pi18n("Tags", PLUGIN_NAME); ?> </h1> <?php \Pasteque\tpl_msg_box($message, $error); ?>
$start = 0; } else { $start = $_GET["start"]; } if (!isset($_GET["range"])) { $range = 50; } else { $range = $_GET["range"]; } if (!isset($_GET["hidden"])) { $hidden = true; } else { $hidden = $_GET["hidden"]; } if ($range == "all") { $products = \Pasteque\ProductsService::getAll($hidden); $totalProducts = \Pasteque\ProductsService::getTotal($hidden); } else { if (isset($_GET["category"])) { $products = \Pasteque\ProductsService::getByCategory($_GET["category"]); $totalProducts = \Pasteque\ProductsService::getTotalByCategory($_GET["category"], $hidden); } else { $products = \Pasteque\ProductsService::getRange($range, $start, $hidden); $totalProducts = \Pasteque\ProductsService::getTotal($hidden); } } $categories = \Pasteque\CategoriesService::getAll(); $prdCat = array(); $archivesCat = array(); foreach ($products as $product) { if ($product->categoryId !== \Pasteque\CompositionsService::CAT_ID) {
} $locSrv = new \Pasteque\LocationsService(); $locations = $locSrv->getAll(); $locNames = array(); $locIds = array(); foreach ($locations as $location) { $locNames[] = $location->label; $locIds[] = $location->id; } $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
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); } } } } }