HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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">&nbsp;</div>';
			$output .= '<div class="itemlist-double-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column">in stock</div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column status-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column itemlist-edit">&nbsp;</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">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column"><input type="text" name="instock" value="" class="itemlist-txt" /></div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column"></div>';
			$output .= '<div class="itemlist-single-column status-column">&nbsp;</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">&nbsp;</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">&radic;</span>stock updated!</span>';
			//return showDashboard();
			header('location: ./');
		}
				
		
	}
}
	
	
?>