<?php
session_start();

include "classes/html.class.php";
$db = new db();
$qr_reader = new qrcode();
$asset_type_res = $db->exec_query('asset_types', ["*"]);
$asset_type_list = '<option></option>';
while ($asset_type = $asset_type_res->fetch_assoc()) {
    $asset_type_list = $asset_type_list . "<option value='{$asset_type['record_id']}'>{$asset_type['asset_type_name']}</option>";
}

$whereFarm = ($_SESSION['farm_id'] == 0) ? "1" : "farm_id = {$_SESSION['farm_id']}";

$sqlQueryAssets = "SELECT A.*,B.asset_type_name,C.farm_name FROM assets A 
LEFT JOIN asset_types B ON A.asset_type_id = B.record_id 
LEFT JOIN farms C ON A.farm_id = C.record_id
WHERE $whereFarm ORDER BY farm_name ASC, fleet_no ASC, asset_type_name ASC";

$asset_res = $db->query($sqlQueryAssets);

$asset_list = '<option></option>';

$assetsArr = $asset_res->fetch_all(MYSQLI_ASSOC);

foreach ($assetsArr as $index => $asset) {

    $currentFarm = $asset['farm_name'];
    $nextFarm = $assetsArr[$index + 1]['farm_name'];
    $prevFarm = $assetsArr[$index - 1]['farm_name'];

    $currentType = $asset['asset_type_name'];
    $nextType = $assetsArr[$index + 1]['asset_type_name'];
    $prevType = $assetsArr[$index - 1 ?? 0]['asset_type_name'];


    if ($currentFarm != $prevFarm) {
        $asset_list = $asset_list . "<optgroup label='$asset[farm_name]'>";

    }

    if ($currentType != $prevType) {
        $asset_list = $asset_list . "<optgroup label='&nbsp;&nbsp;&nbsp;&nbsp;$asset[asset_type_name]'>
        <option value='{$asset['record_id']}'>{$asset['fleet_no']} {$asset['description']}</option>";

        continue;
    }

    if ($currentType != $nextType) {
        $asset_list = $asset_list . "<option value='{$asset['record_id']}'>{$asset['fleet_no']} {$asset['description']}</option>
        </optgroup>";

        continue;
    }

    if ($currentFarm != $nextFarm) {
        $asset_list = $asset_list . "</optgroup>";

    }

    $asset_list = $asset_list . "<option value='{$asset['record_id']}'>{$asset['fleet_no']} {$asset['description']}</option>";

}

if ($_SESSION['farm_id'] == 0) {
    $farms_res = $db->exec_query('farms', ["*"]);
} else {
    $farms_res = $db->exec_query('farms', ["*"], '', '', '', '', "record_id = {$_SESSION['farm_id']}");
}

$farm_list = '<option></option>';
while ($farms = $farms_res->fetch_assoc()) {
    $farm_list = $farm_list . "<option value='{$farms['record_id']}'>{$farms['farm_name']}</option>";
}

$html = new html("ASSETS");



?>
<div class='form' style="padding-bottom: 2vw; width:70%;">
    <h2 style="font-size:2vw;">SELECT ASSET:</h2>
    <br>
    <select onchange="call_ajax_func()" id='asset_record_id' class='form_input'>
        <?php echo $asset_list; ?>
    </select>
    <br>
    <br>
    <?php $qr_reader->scanner('qr_code', 'call_qr_search'); ?>
    <hr>
    <h2 style="font-size:2vw;">EDIT ASSET:</h2>
    <hr><br>

    <div class="center_3-3col">
        <div>
            <labeL> ASSET ID</labeL><br>
            <input type='text' placeholder="ASSET ID" id='asset_id' onchange="check_asset_id()"
                class='form_input' /><br><br>
        </div>
        <div class="">
            <labeL> FLEET ID</labeL><br>

            <input type='text' placeholder="FLEET ID" onchange="check_fleet_id()" id='fleet_id'
                class='form_input' /><br><br>
        </div>
        <div>
            <labeL> QR CODE</labeL><br>
            <input type='text' placeholder="QR Code" id='qr_code' onchange="check_qr_code()"
                class='form_input' /><br><br>
        </div>

        <div>
            <labeL>SERVICE TYPE</labeL><br>
            <select id='asset_type_id' class='form_input'>
                <?php echo $asset_type_list; ?>
            </select><br><br>
        </div>

        <div>
            <labeL>ODO </labeL><br>
            <input type='text' placeholder="ODO" id='odo' class='form_input' /><br><br>
        </div>

        <div>
            <label>FARM: </label><br>
            <select id='farm_id' class='form_input'>
                <?php echo $farm_list; ?>
            </select><br><br>
        </div>
        <div>
            <labeL> STATUS</labeL><br>
            <select id='status' class='form_input'>
                <option></option>
                <option>ACTIVE</option>
                <option>SUSPENDED</option>
            </select><br><br>
        </div>
        <div class="">
            <label>DESCRIPTION: </label><br>
            <input type='text' placeholder="ASSET MODEL" id='description' class='form_input' /><br><br>
        </div>
        <div>
            <label>LISENCE EXP DATE: </label><br>
            <input type='Date' id='exp_date' class='form_input' /><br><br>
        </div>
        <div class="">
            <label>VIN: </label><br>
            <input type='text' placeholder="ASSET MAKE" id='vin' class='form_input' /><br><br>
        </div>
        <div class="">
            <label>FUEL CAPASITY: </label><br>
            <input type='number' placeholder="ASSET MAKE" id='fuel' class='form_input' /><br><br>
        </div>

    </div>
    <br>
    <input type='submit' value='SAVE' class='form_btn' onclick='ajax_func()' />
</div>
<br>
<br>

<script>
    function check_qr_code() {
        qr_code = document.getElementById('qr_code').value;
        alert(qr_code);
        // Create an XMLHttpRequest object
        const xhttp = new XMLHttpRequest();
        // Define a callback function
        xhttp.onload = function () {
            // Here you can use the Data
            if (this.responseText != 1) {

                alert("QR CODE ALREADY REGISTED WITH :" + this.responseText);
                document.getElementById('qr_code').value = "";
                document.getElementById('qr_code').style.backgroundColor = 'RED';


            } else {
                document.getElementById('qr_code').style.backgroundColor = 'GREEN';

            }
        }

        xhttp.open("GET", "ajax/check_qr_code.ajax.php?qr_code=" + qr_code);
        xhttp.send();
    }

    function check_fleet_id() {
        fleet_id = document.getElementById('fleet_id').value;
        // Create an XMLHttpRequest object
        const xhttp = new XMLHttpRequest();
        // Define a callback function
        xhttp.onload = function () {
            // Here you can use the Data
            if (this.responseText != 1) {

                alert("ASSET ID ALREADY REGISTED WITH :" + this.responseText);
                document.getElementById('fleet_id').value = '';
                document.getElementById('fleet_id').style.backgroundColor = 'RED';
                document.getElementById('fleet_id').focus;


            } else {
                document.getElementById('fleet_id').style.backgroundColor = 'GREEN';

            }
        }

        xhttp.open("GET", "ajax/check_fleet_id.ajax.php?fleet_id=" + fleet_id);
        xhttp.send();
    }

    function check_asset_id() {
        asset_id = document.getElementById('asset_id').value;
        old_asset_id = document.getElementById('asset_id').value;
        // Create an XMLHttpRequest object
        const xhttp = new XMLHttpRequest();
        // Define a callback function
        xhttp.onload = function () {
            // Here you can use the Data
            if (this.responseText != 1) {

                alert("ASSET ID ALREADY REGISTED");
                document.getElementById('asset_id').value = old_asset_id;


            } else {
                document.getElementById('asset_id').style.backgroundColor = 'GREEN';

            }
        }

        xhttp.open("GET", "ajax/check_asset_id.ajax.php?asset_id=" + asset_id);
        xhttp.send();
    }


    function ajax_func() {
        // alert("Test");
        asset_id = document.getElementById('asset_id').value;
        asset_record_id = document.getElementById('asset_record_id').value;
        odo = document.getElementById('odo').value;
        status = document.getElementById('status').value;
        asset_type_id = document.getElementById('asset_type_id').value;
        qr_code = document.getElementById('qr_code').value;
        farm_id = document.getElementById('farm_id').value;
        exp_date = document.getElementById('exp_date').value;
        fleet_id = document.getElementById('fleet_id').value;
        description = document.getElementById('description').value;
        fuel = document.getElementById('fuel').value;
        vin = document.getElementById('vin').value;

        // Create an XMLHttpRequest object
        const xhttp = new XMLHttpRequest();
        // Define a callback function
        xhttp.onload = function () {
            // Here you can use the Data
            if (this.responseText != 1) {

                alert(this.responseText);

            } else {


                alert("SAVED");
                // window.location.href = "assets.php";
            }
        }

        xhttp.open("GET", "ajax/edit_asset.ajax.php?asset_record_id=" + asset_record_id + "&asset_id=" + asset_id + "&odo=" + odo + "&asset_type_id=" + asset_type_id + '&qr_code=' + qr_code + '&farm_id=' + farm_id + '&exp_date=' + exp_date + '&vin=' + vin + '&fuel=' + fuel + '&description=' + description + '&fleet_id=' + fleet_id + "&status=" + status);
        xhttp.send();

    }

    function call_ajax_func() {
        // alert("Test");
        users_list = document.getElementById('asset_record_id').value;

        // Create an XMLHttpRequest object
        const xhttp = new XMLHttpRequest();
        // Define a callback function
        xhttp.onload = function () {
            // Here you can use the Data
            if (this.responseText != 1) {
                // alert(this.responseText);
                values = this.responseText.split(',');
                document.getElementById('asset_id').value = values[0];
                document.getElementById('odo').value = values[1];
                document.getElementById('asset_type_id').value = values[2];
                document.getElementById('status').value = values[3];
                document.getElementById('qr_code').value = values[4];
                document.getElementById('farm_id').value = values[5];
                document.getElementById('exp_date').value = values[6];
                document.getElementById('fleet_id').value = values[7];
                document.getElementById('description').value = values[8];
                document.getElementById('vin').value = values[9];
                document.getElementById('fuel').value = values[10];


            } else {
                // window.location.href = "users.php";
                alert("Something Went Wrong");

            }
        }

        xhttp.open("GET", "ajax/get_asset.ajax.php?asset_record_id=" + users_list);
        xhttp.send();

    }

    function call_qr_search() {
        // alert("Test");
        document.getElementById('asset_id').value = '';
        document.getElementById('odo').value = '';
        document.getElementById('asset_type_id').value = '';
        document.getElementById('status').value = '';
        document.getElementById('farm_id').value = '';
        document.getElementById('exp_date').value = '';
        document.getElementById('make').value = '';
        document.getElementById('model').value = '';
        document.getElementById('asset_record_id').value = '';
        qr_code = document.getElementById('qr_code').value;

        // Create an XMLHttpRequest object
        const xhttp = new XMLHttpRequest();
        // Define a callback function
        xhttp.onload = function () {
            // Here you can use the Data
            if (this.responseText != 0) {
                // alert(this.responseText);
                values = this.responseText.split(',');


                if (<? echo $_SESSION['farm_id']; ?> == 0) {
                    document.getElementById('asset_id').value = values[0];
                    document.getElementById('odo').value = values[1];
                    document.getElementById('asset_type_id').value = values[2];
                    document.getElementById('status').value = values[3];
                    document.getElementById('qr_code').value = values[4];
                    document.getElementById('farm_id').value = values[5];
                    document.getElementById('exp_date').value = values[6];
                    document.getElementById('fleet_id').value = values[7];
                    document.getElementById('description').value = values[8];
                    document.getElementById('vin').value = values[10];
                    document.getElementById('fuel').value = values[11];
                    document.getElementById('asset_record_id').value = values[9];
                } else if (<? echo $_SESSION['farm_id']; ?> == values[5]) {
                    document.getElementById('asset_id').value = values[0];
                    document.getElementById('odo').value = values[1];
                    document.getElementById('asset_type_id').value = values[2];
                    document.getElementById('status').value = values[3];
                    document.getElementById('qr_code').value = values[4];
                    document.getElementById('farm_id').value = values[5];
                    document.getElementById('exp_date').value = values[6];
                    document.getElementById('fleet_id').value = values[7];
                    document.getElementById('description').value = values[8];
                    document.getElementById('vin').value = values[10];
                    document.getElementById('fuel').value = values[11];
                    document.getElementById('asset_record_id').value = values[9];
                } else {
                    alert('YOUR NOT AUTHORISED TO VIEW THIS ASSETs INFORMATION');
                    document.getElementById('qr_code').value = '';
                    document.getElementById('asset_id').value = '';
                    document.getElementById('odo').value = '';
                    document.getElementById('asset_type_id').value = '';
                    document.getElementById('status').value = '';
                    document.getElementById('qr_code').value = '';
                    document.getElementById('farm_id').value = '';
                    document.getElementById('exp_date').value = '';
                    document.getElementById('make').value = '';
                    document.getElementById('model').value = '';
                    document.getElementById('asset_record_id').value = '';
                }




            } else if (this.responseText == 0) {
                alert("QR CODE NOT REGISTERED TO AN ASSET");

            } else {
                // window.location.href = "users.php";
                alert("Something Went Wrong");

            }
        }

        xhttp.open("GET", "ajax/get_asset.ajax.php?qr_code=" + qr_code);
        xhttp.send();

    }
</script>