<?php
date_default_timezone_set('America/Los_Angeles');
try
{
	//error_reporting(E_ALL); ini_set('display_errors', 1);
  require_once "./pineapple.php";
  require_once "./mysql/helper.php";
	pineapple_load_session();
	html_begin("Pineapple Order");
	
  $db = db_connect("pontech_pineapplepnp");
	local_render_dialog_with_post_info();

	$error = "Unknown error while placing order.";
	if( !pineapple_user_session_no_feedback() )
	{
		$error = "You must be logged in as a valid user to use this feature.";
		goto exit_page;
	}
	$email = $_SESSION['email'];

	require_once "./pineapple_bom_tools.php";
	$page_number = $_POST['page_number'];
	$page_last = 8;
	
	$this_order_count = db_get_record($db, "SELECT count(*) as count FROM `order` WHERE order_state_id=0 and email=?", array($email));
	if($this_order_count['count'] > 0) {
		$this_order = db_get_record($db, "SELECT * FROM `order` WHERE order_state_id=0 and email=?", array($email));
		print ("Resuming incomplete order# " . $this_order['order_id'] . "</br>");
		//pre(1); print_r($this_order); pre(0);
	}

	?>
		<form method="post" id="form<?php print($_POST['page_number']); ?>">
	<?php

	if($page_number < 1) $page_number = 1;
	if($page_number > $page_last) $page_number = $page_last;
	print ("Step <span id='page_number'>" . $page_number ."</span> of {$page_last}");
	print ("</br>");
	switch($page_number) {
    case 1:
      ?>
      <h1>Select design file to build</h1>
      <?php
      $statement = "SELECT id, CONCAT(upload.name, ' - ',upload_date) AS name FROM pontech_pineapplepnp.upload WHERE email = '$email' ORDER BY upload_date DESC";
      db_dropdown($db, $statement, "id", NULL); print "<br />";
      ?>
      <?php
      break;
		case 2:
			?>
        <h1>Select design software</h1>
				Note: Select other if you are uploading Gerber + a BOM.<br /><br />
        <?php
					$pcb_cad_software = array("Eagle", "KiCAD", "Gerber + BOM", "Other");
					foreach($pcb_cad_software as $key=>$value) {
						$checked = "";
						if($value == $_POST['form']['pcb_cad_software'][0])
							$checked = "checked";
				?>
						<input type="radio" name="pcb_cad_software" value="<?php print $value; ?>" <?php print $checked; ?>><?php print $value; ?><br>
			<?php
					}
			?>
			<input type="input" name="test[0]" value="00" <?php print $checked; ?>><?php print $value; ?><br>
			<input type="input" name="test[1]" value="11" <?php print $checked; ?>><?php print $value; ?><br>
			<input type="input" name="test[2]" value="22" <?php print $checked; ?>><?php print $value; ?><br>
			<?php
			break;
		case 3:
			?>
        <h1>Eagle Variant</h1>
        <p>Eagle has a concept of variants that allow you to build a single board with differnet components.  Unless you define more than one variant there will be only one in your design file.  If there is only one variant or you have not defined any additional variants then this field can be left blank.</p>
        Variant: <input type="text" name="variant" size="8" value="<?php populate('variant'); ?>" /><br />
			<?php
			if(isset($_POST['form']['id'][0])) 
			{
				// if id is set then get the file with the id from database
				$id    = $_POST['form']['id'][0];
				if(isset($_POST['order_id'])) {
					$order_id = $_POST['order_id'];
				}
				else{
					$order_id = "none";			
				}
				if( pineapple_admin_session_no_feedback() ) {
					$sql = "SELECT name, type, size, content FROM upload WHERE id = ?";
					$prepared_array = array( $id );
				}
				else {
					$sql = "SELECT name, type, size, content FROM upload WHERE id = ? and email = ?";
					$prepared_array = array( $id, $email );
				}
				//print("<pre>{$id}\n{$email}\n{$sql}\n"); print_r($prepared_array); print("</pre>");
				$sth = $db->prepare($sql);
				$success = $sth->execute($prepared_array);
				$row_count = $sth->rowCount();

				if( $row_count <= 0 ) {
					$error = "The database return zero files associated with the account that has the e-mail address $email.";
					goto error_file;
				}
				
				$row = $sth->fetch(PDO::FETCH_NUM);
				$name = $row[0];
				$type = $row[1];
				$size = $row[2];
				//$content = $row[3];
				pre(1);
				print_r(extract_filelist_from_zip($row[0], $row[3]));
				pre(0);
				extract_bom_from_zip($row[0], $row[3]);
				goto error_none;
			}
			else {
				$error = "The file id was not specified.  Account email: $email";
			}
error_file:
			print($error);
error_none:
			break;
		case 4:
			?>
        <h1>Quantity</h1>
        <p>Select quantity of boards to build.</p>
        Quantity: <input type="text" name="quantity" size="8" value="<?php populate('quantity'); ?>" /><br />
			<?php
			break;
		case 5:
			?>
        <h1>Soldermask Color</h1>
        Soldermask Color: <input type="text" name="soldermask" size="8" value="<?php print($this_order['soldermask']); ?>" /><br />
        <h1>Silkscreen Color</h1>
        Silkscreen Color: <input type="text" name="silkscreen" size="8" value="<?php populate('silkscreen'); ?>" /><br />
			<?php
			break;
		case 6:
			?>
        <h1>Number of layers</h1>
        Layers: <input type="text" name="layers" size="8" value="<?php populate('layers'); ?>" /><br />
        <h1>Copper Thickness (per layer)</h1>
        Thickness: <input type="text" name="thickness" size="8" value="<?php populate('thickness'); ?>" /><br />
			<?php
			break;
		case 7:
			?>
        <h1>Desired Completion Date</h1>
        <p>I really need the boards in my hands by:</p>
        Date: <input type="date" name="desire_date" value="<?php echo date_format($date,"Y-m-d"); ?>" min="<?php echo date_format(date_create(date("m/d/y")),"Y-m-d"); ?>" /><br />
        <h1>Expected Cost</h1>
        <p>I don't want to pay more than: $??.?? for my order</p>
        Amount: <input type="text" name="desire_amount" size="8" value="<?php populate('desire_amount'); ?>" /><br />
			<?php
			break;
		case 8:
			?>
        <h1>Order Priority</h1>
        <p>It's more important to:</p>
        <input type="radio" name="priority" value="priority_price" checked> Not exceed price
        <br>
        <input type="radio" name="priority" value="priority_date"> Not miss delivery date
        <h1>Notes</h1>
        <p>Add any notes that may help us to build your board successfully.</p>
        <textarea type="text" name="notes" cols="80" rows="10"><?php populate('notes'); ?></textarea>
        <h1>Payment</h1>
        <p>A payment request will be sent to your e-mail.</p>
        <br />
			<?php
			break;
	}
	?>
		</form>
			<br />
	<?php
  if($this_order_count['count'] <= 0) {
    ?>
      <p>No existing order, need to create a new one...</p>
    <?php
  }
  else {
    // Display the current order (db view)
    $statement = <<<EOD
SELECT *
FROM pontech_pineapplepnp.order
INNER JOIN upload ON pontech_pineapplepnp.order.file_id = upload.id
LEFT JOIN order_state ON pontech_pineapplepnp.order.order_state_id = order_state.order_state_id
WHERE pontech_pineapplepnp.order.email='$email' AND order_id=?
ORDER BY pontech_pineapplepnp.order.order_date DESC, pontech_pineapplepnp.order.email, upload.name, pontech_pineapplepnp.order.variant
EOD;
    db_display_row($db, $statement, array($this_order['order_id']), "t01", NULL);
  }
	$db = NULL;
	?>
	<?php
		//pre(1); print_r($_POST); pre(0);
	?>
		<script>
		$(document).ready(function(){
			$("select").multiselect();
		});
		</script>
	<?php

exit_page:	
  $db = NULL;

	html_end();
}
catch (PDOException $e)
{
	print "<br />";
	print_r("\n" . $e . "\n");
	//print "</pre>";
}
function pre($start) {
	if($start == true)
		print "<pre>";
	else
		print "</pre>";
}
function populate($name) {
	if( isset($_POST['form']["{$name}"][0]) )
		print($_POST['form']["{$name}"][0]);
	else
		print("");
}

function local_render_dialog_with_post_info()
{
	?>
	<div id="dialog">
		<div>
			<p><b>WARNING:</b> This feature is experimental, use with caution.</p>
			<?php pre(1); print_r($_POST); pre(0); ?>
		</div>
	</div>

	<script type="text/javascript" src="js/ajax-helper.js"></script>
	<script>
    function make_dialog() {
      $( "#dialog" ).dialog({
        autoOpen: true,
        title: "$_POST Data",
        width: "600px",
        position: "fixed",
        left: "200px",
        top: "1px",
      });
    }
		$(make_dialog());
	</script>
	<?php
}
