#!/usr/bin/php
<?php

namespace {

if ($argc < 4) { throw new \Exception('Insufficient arguments'); }
//expects extension, item, amount
require_once('/usr/share/ombutel/www/includes/cli.php');

} //namespace

namespace minibar {

use config;
use ombutel\ami;
use ombutel\db;
use ombutel\extension;
use ombutel\room;
use ombutel\pms_setting;

list(, $extension_number, $item, $amount) = $argv;

if(!is_numeric($item)) { die('Item is invalid. Must be a number'); }
if(!is_numeric($amount)) { die('Amount is invalid. Must be a number'); }
if(strlen($extension_number) == 0) { die('Extension number is invalid'); }

$ami = ami::current();

if(($extension = extension::find_by_extension($extension_number)) != null) {
	if ($user = $extension->user()) {
		if(($room = room::find_by_extension_id($extension->extension_id)) != null) {
			$tz = new \DateTimeZone(pms_setting::get('pms_timezone'));
			$current_time = new \DateTime('now', $tz);

			$count = 0;
			foreach(db::query("select
					if(max(`id`),max(`id`),0) as `index`
				from `hospitality`.`bufferout`") as $row) {
				$count = $row->index;
			}
			$date = $current_time->format('ymd');
			$time = $current_time->format('His');

			$output_code = "PS|RN{$room->number}|PTM|MA{$item}|M#{$amount}|P#{$count}|DA{$date}|TI{$time}|";

			$add_so = pms_setting::get('add_so');
			if ($add_so){
				$result = db::query("select `value` from `hospitality`.`so_fields` where `type` = 'minibar'");
				$so_code = $result[0]->value;
				$output_code=$output_code."SO".$so_code."|";
			}
			db::query("insert into `hospitality`.`bufferout` (
					`buffer`, `date`) values (
					?,
				date_format(now(),'%y/%m/%d %H:%i:%s'))",
				$output_code
			);
		}
	} else { die('No User'); }
}

} //namespace

?>
