File: D:/HostingSpaces/SBogers10/verrassendveel.komma.pro/wwwroot/admin/php/stock.php
<?php
/*
stock.php
Mike Ontwerpt 2012
www.mikeontwerpt.nl
*/
function initStock(){
$output = '';
if(isset($_POST['editSelectedStock'])){
updateStock();
}
else{
$output .= showDashboard();
}
return $output;
}
function showDashboard(){
global $mysqli;
/* language */
$siteLabels = getLanguage();
$output = '';
/* title */
$output .= '<h1>'.$siteLabels['stock-title'].'</h1>';
//start with form for checkboxes
$output .= '<form action="" name="chkForm" method="post">';
/* buttons */
/*$output .= '<div class="submenu">';
//buttons
$output .= '<a href="./products/add-product/"><span class="btn176 btn176a proceed">'.$siteLabels['products-addproduct'].'</span></a>';
$output .= '</div>';*/
/* content */
//EDIT
$output .= '<div class="itemlist-row itemlist-heading">';
$output .= '<div class="itemlist-double-column"> </div>';
$output .= '<div class="itemlist-double-column"> </div>';
$output .= '<div class="itemlist-single-column">in stock</div>';
$output .= '<div class="itemlist-single-column"> </div>';
$output .= '<div class="itemlist-single-column"> </div>';
$output .= '<div class="itemlist-single-column"> </div>';
$output .= '<div class="itemlist-single-column status-column"> </div>';
$output .= '<div class="itemlist-single-column itemlist-edit"> </div>';
$output .= '</div>';
$output .= '<div class="itemlist-row">';
$output .= '<div class="itemlist-double-column"><h2>edit stock</h2></div>';
$output .= '<div class="itemlist-double-column"> </div>';
$output .= '<div class="itemlist-single-column"><input type="text" name="instock" value="" class="itemlist-txt" /></div>';
$output .= '<div class="itemlist-single-column"> </div>';
$output .= '<div class="itemlist-single-column"> </div>';
$output .= '<div class="itemlist-single-column"></div>';
$output .= '<div class="itemlist-single-column status-column"> </div>';
$output .= '<div class="itemlist-single-column itemlist-edit"><input type="submit" name="editSelectedStock" value="opslaan" class="btn80 btn80"/></div>';
$output .= '</div>';
/* top row */
$output .= '<div class="itemlist-row itemlist-heading">';
$output .= '<div class="itemlist-double-column"> </div>';
$output .= '<div class="itemlist-double-column"><input type="checkbox" name="checkCtrl" value="checkAll" onClick="check_all(this);" class="itemlist-cbox">title</div>';
$output .= '<div class="itemlist-single-column">in stock</div>';
$output .= '<div class="itemlist-single-column">available</div>';
$output .= '<div class="itemlist-single-column">in order</div>';
$output .= '<div class="itemlist-single-column">in retour</div>';
$output .= '<div class="itemlist-single-column status-column">status</div>';
$output .= '<div class="itemlist-single-column itemlist-edit">edit</div>';
$output .= '</div>';
/* get info */
$query = 'SELECT DISTINCT i.id AS instanceId, i.productId, i.shortcode, i.stockCode, p.titleNL
FROM product_instances AS i, product_products AS p, content_status AS s
WHERE s.itemId = i.productId
AND s.active = 1
AND s.linkname = "product_products"
AND p.id = i.productId
ORDER BY i.stockCode ASC';
if($result = $mysqli->query($query)){
while($record = $result->fetch_assoc()){
//create productid
$instanceId = $record['instanceId'];
$stockcode = $record['stockCode'];
//predefine variables
$inStock = '?';
$available = '?';
$inOrder = 0;
$inRetour = 0;
$stockResult = $mysqli->query('SELECT inStock, inRetour
FROM shop_stock
WHERE instanceId = '.$instanceId.' LIMIT 1');
//if($stockResult->num_rows > 0){
$stockRecord = $stockResult->fetch_assoc();
//redefine variables
$inStock = $stockRecord['inStock'];
$inRetour = $stockRecord['inRetour'];
//get IN ORDER
$inOrderQuery = 'SELECT op.numProducts
FROM shop_order_products AS op, shop_order_info AS oi
WHERE op.orderId = oi.id
AND op.instanceId = '.$instanceId.'
AND oi.orderStatus = 0';
$numInOrder = 0;
if($inOrderResult = $mysqli->query($inOrderQuery)){
while($inOrderRecord = $inOrderResult->fetch_assoc()){
$numInOrder += $inOrderRecord['numProducts'];
}
}
else{
$output .= $mysqli->error;
}
// get available
$available = $inStock - $numInOrder;
//title
$titleNL = fromDatabase($record['titleNL']);
$output .= '<div class="itemlist-row">';
/* stock code */
$output .= '<div class="itemlist-double-column">';
$output .= $stockcode;
$output .= '</div>';
/* title */
$output .= '<div class="itemlist-double-column">
<input type="checkbox" name="option[]" id="option'.$instanceId.'" value="'.$instanceId.'" class="itemlist-cbox" />
<label for="option'.$instanceId.'">'.$titleNL.'</label>
</div>';
/* instock */
$output .= '<div class="itemlist-single-column">'.$inStock.'</div>';
/* available */
$output .= '<div class="itemlist-single-column">'.$available.'</div>';
/* inorder*/
$output .= '<div class="itemlist-single-column">'.$numInOrder.'</div>';
/* inretour */
$output .= '<div class="itemlist-single-column">'.$inRetour.'</div>';
/* */
$output .= '<div class="itemlist-single-column status-column"></div>';
/* edit */
$output .= '<div class="itemlist-single-column itemlist-edit">';
$output .= '</div>';
$output .= '<div class="clear"></div>';
$output .= '</div>';
//}
}
}
else{
$output .= $mysqli->error;
}
$output .= '</form>';
return $output;
}
function updateStock(){
/* access the global sql object */
global $mysqli;
/* language */
$siteLabels = getLanguage();
if(isset($_POST['option'])){
//validate fields
if(!empty($_POST['instock'])){
//prepare queries in stock
$inStock = $_POST['instock'];
if(is_numeric($inStock)){
//get available
foreach($_POST['option'] as $instanceId){
if($result = $mysqli->query('SELECT inStock FROM shop_stock WHERE instanceId = '.$instanceId.' LIMIT 1')){
if($result->num_rows > 0){
$record = $result->fetch_assoc();
$queries[] = 'UPDATE shop_stock SET inStock = "'.$inStock.'"WHERE instanceId ='.$instanceId.' LIMIT 1';
}
else{
$queries[] = 'INSERT INTO shop_stock (instanceId, inStock) VALUES('.$instanceId.',"'.$inStock.'")';
}
}
}
}
}
// Set autocommit to FALSE
$mysqli->autocommit(FALSE);
foreach($queries as $query)
{
if(!$mysqli->query($query))
{
$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
}
}
// ROLLBACK of COMMIT
if(isset($errors))
{
$mysqli->rollback();
displayErrors($errors);
}
else
{
$mysqli->commit();
$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">√</span>stock updated!</span>';
//return showDashboard();
header('location: ./');
}
}
}
?>