<?php include "../../root.class.php";
$html = new html();
$html->add_styles_page();
$db = new db_safeguard();
// $html->check_user_type("ADMIN");j
$arrived = 0;

/*
    DEPATURE DATA
*/
$jc_number = new input();
$jc_number->class("inputs");
$jc_number->type("text");
$jc_number->readonly();
$jc_number->name("jc_number");
$jc_number->id("jc_number");
$jc_number->value_from_db("jobcards", "jc_no", "record_id = {$_GET['record_id']}");

$date_created = new input();
$date_created->class("inputs");
$date_created->type("text");
$date_created->readonly();
$date_created->name("date_created");
$date_created->id("date_created");
$date_created->value_from_db("jobcards", "date_created", "record_id = {$_GET['record_id']}");

$date_created_label = new label();
$date_created_label->for("date_created");
$date_created_label->value("DATE CREATED");

$action_date = new input();
$action_date->class("inputs");
$action_date->type("text");
$action_date->readonly();
$action_date->name("action_date");
$action_date->id("action_date");
$action_date->value_from_db("jobcards", "action_date", "record_id = {$_GET['record_id']}");

$action_date_label = new label();
$action_date_label->for("action_date");
$action_date_label->value("ACTION DATE");

$date_stopped_label = new label();
$date_stopped_label->for("date_time_stop");
$date_stopped_label->value("DATE STOP");

$date_stopped = new input();
$date_stopped->class("inputs");
$date_stopped->type("text");
$date_stopped->readonly();
$date_stopped->name("date_time_stop");
$date_stopped->id("date_time_stop");
$date_stopped->value_from_db("jobcards", "date_time_closed", "record_id = {$_GET['record_id']}");

$user_created_label = new label();
$user_created_label->for("user_created");
$user_created_label->value("USER CREATED");

$user_created = new input();
$user_created->class("inputs");
$user_created->type("text");
$user_created->readonly();
// $user_created->addAttribute("hidden", "");
$user_created->name("user_id");
$user_created->id("user_id");
$user_created->value_from_db("jobcards", "user_id", "record_id = {$_GET['record_id']}");
$user_id_created = $user_created->value_return();

$user_assigned = new input();
$user_assigned->class("inputs");
$user_assigned->type("text");
$user_assigned->readonly();
// $user_assigned->addAttribute("hidden", "");
$user_assigned->name("user_assigned");
$user_assigned->id("user_assigned");
$user_assigned->value_from_db("jobcards", "user_assigned", "record_id = {$_GET['record_id']}");
$user_id_assigned = $user_assigned->value_return();

$user_c = new input();
$user_c->class("inputs");
$user_c->type("text");
$user_c->readonly();
$user_c->name("user");
$user_c->id("user");
$user_c->value_from_db("users", "username", "record_id = {$user_id_created}");

$user_a = new input();
$user_a->class("inputs");
$user_a->type("text");
$user_a->readonly();
$user_a->name("user_assigned");
$user_a->id("user_assigned");
$user_a->value_from_db("users", "username", "record_id = {$user_id_assigned}");

$user_assigned_label = new label();
$user_assigned_label->for("user_assigned");
$user_assigned_label->value("USER ASSIGNED");

$record_id = new input();
$record_id->class("inputs");
$record_id->type("hidden");
$record_id->readonly();
$record_id->name("record_id");
$record_id->id("record_id");
$record_id->value($_GET['record_id']);

$contact_name = new input();
$contact_name->class("inputs");
$contact_name->type("text");
$contact_name->placeholder("CONTACT NAME");
$contact_name->name("contact_name");
$contact_name->required();
// $contact_name->readonly();
$contact_name->id("contact_name");
$contact_name->value_from_db("jobcards", "contact_name", "record_id = {$_GET['record_id']}");

$address = new input();
$address->class("inputs");
$address->type("text");
$address->placeholder("ADDRESS");
$address->name("address");
$address->readonly();
$address->required();
$address->id("address");
$address->value_from_db("jobcards", "address", "record_id = {$_GET['record_id']}");

$phone = new input();
$phone->class("inputs");
$phone->type("text");
$phone->placeholder("PHONE NUMBER");
$phone->name("contact_number");
$phone->readonly();
$phone->id("contact_number");
$phone->value_from_db("jobcards", "contact_number", "record_id = {$_GET['record_id']}");

$other_number = new input();
$other_number->class("inputs");
$other_number->type("text");
$other_number->placeholder("OTHER NUMBER");
$other_number->name("other_number");
$other_number->readonly();
$other_number->id("other_number");
$other_number->value_from_db("jobcards", "other_number", "record_id = {$_GET['record_id']}");

$other_number_label = new label();
$other_number_label->for("other_number");
$other_number_label->value("OTHER NUMBER");

$alternate_number_label = new label();
$alternate_number_label->for("alternate_number");
$alternate_number_label->value("ALTERNATE NUMBER");

$alternate_number = new input();
$alternate_number->class("inputs");
$alternate_number->type("text");
$alternate_number->placeholder("ALTERNATE NUMBER");
$alternate_number->name("alternate_number");
$alternate_number->readonly();
$alternate_number->id("alternate_number");
$alternate_number->value_from_db("jobcards", "alternate_number", "record_id = {$_GET['record_id']}");

$client_id_name = new input();
$client_id_name->class("inputs");
$client_id_name->type("text");
$client_id_name->name("client_name");
$client_id_name->style("display: none;");
$client_id_name->readonly();
$client_id_name->id("client_name");
$client_id_name->value_from_db("jobcards", "client_name", "record_id = {$_GET['record_id']}");
$client_id = $client_id_name->value_return();

$client_name = new input();
$client_name->class("inputs");
$client_name->type("text");
$client_name->readonly();
$client_name->value_from_db("jobcards", "client_name", "record_id = {$_GET['record_id']}");

/*
    ARRIVAL DATA
*/

$pin = new input();
$pin->class("inputs");
$pin->type("text");
$pin->placeholder("PIN");
$pin->name("drill_co_ordinates");
$pin->required();
$pin->id("drill_co_ordinates");
$pin->style("width: 30%;");
$pin->value_from_db("jobcards", "drill_co_ordinates", "record_id = {$_GET['record_id']}");

$cont_name = new input();
$cont_name->class("inputs");
$cont_name->type("text");
$cont_name->placeholder("CONTACT NAME");
$cont_name->name("contact_name");
$cont_name->required();
$cont_name->id("contact_name");

$amount = new input();
$amount->class("inputs");
$amount->type("text");
$amount->placeholder("AMOUNT");
$amount->name("cash_amount");
$amount->required();
$amount->id("cash_amount");
$amount->value_from_db("jobcards", "cash_amount", "record_id = {$_GET['record_id']}");

$client_name_lable = new label();
$client_name_lable->for("client_name");
$client_name_lable->value("CLIENT NAME");

$contact_name_label = new label();
$contact_name_label->for("contact_name");
$contact_name_label->value("CONTACT NAME");

$jc_number_lable = new label();
$jc_number_lable->for("jc_number");
$jc_number_lable->value("JOBCARD NUMBER");

$phone_label = new label();
$phone_label->for("phone");
$phone_label->value("PHONE NUMBER");

$getLocation = new button();
$getLocation->value("GET LOCATION");
$getLocation->onclick("getLocation()");

$submit1_btn = new button();
$submit1_btn->value("ARRIVAL");

$amount_label = new label();
$amount_label->for("amount");
$amount_label->value("CASH AMOUNT");

$contact_number_label = new label();
$contact_number_label->for("contact_number");
$contact_number_label->value("CONTACT NUMBER");

$other_number_label = new label();
$other_number_label->for("other_number");
$other_number_label->value("OTHER NUMBER");

$address_label = new label();
$address_label->for("address");
$address_label->value("ADDRESS");

$diesel_start = new input();
$diesel_start->class("inputs");
$diesel_start->type("text");
$diesel_start->placeholder("DIESEL START");
$diesel_start->name("diesel_start");
$diesel_start->id("diesel_start");
$diesel_start->value_from_db("jobcards", "diesel_start", "record_id = {$_GET['record_id']}");

$diesel_start_label = new label();
$diesel_start_label->for("diesel_start");
$diesel_start_label->value("DIESEL START LITERS");

$diesel_stop = new input();
$diesel_stop->class("inputs");
$diesel_stop->type("text");
$diesel_stop->placeholder("DIESEL STOP");
$diesel_stop->name("diesel_stop");
$diesel_stop->id("diesel_stop");
$diesel_stop->value_from_db("jobcards", "diesel_stop", "record_id = {$_GET['record_id']}");

$diesel_stop_label = new label();
$diesel_stop_label->for("diesel_stop");
$diesel_stop_label->value("DIESEL STOP LITERS");

$interested_in_pump = new input();
$interested_in_pump->class("inputs");
$interested_in_pump->type("text");
$interested_in_pump->placeholder("INTERESTED IN PUMP");
$interested_in_pump->name("interested_in_pump");
$interested_in_pump->id("interested_in_pump");
$interested_in_pump->value_from_db("jobcards", "interested_in_pump", "record_id = {$_GET['record_id']}");

$interested_in_pump_label = new label();
$interested_in_pump_label->for("interested_in_pump");
$interested_in_pump_label->value("INTERESTED IN PUMP");

$water_flow = new input();
$water_flow->class("inputs");
$water_flow->type("text");
$water_flow->placeholder("WATER FLOW");
$water_flow->name("water_flow");
$water_flow->id("water_flow");
$water_flow->value_from_db("jobcards", "water_flow", "record_id = {$_GET['record_id']}");

$water_flow_label = new label();
$water_flow_label->for("water_flow");
$water_flow_label->value("WATER FLOW");

$compressor_hours = new input();
$compressor_hours->class("inputs");
$compressor_hours->type("text");
$compressor_hours->placeholder("COMPRESSOR HOURS");
$compressor_hours->name("compressor_hours");
$compressor_hours->id("compressor_hours");
$compressor_hours->value_from_db("jobcards", "compressor_hours", "record_id = {$_GET['record_id']}");

$compressor_hours_label = new label();
$compressor_hours_label->for("compressor_hours");
$compressor_hours_label->value("COMPRESSOR HOURS");

$water_strike_label = new label();
$water_strike_label->for("water_strike");
$water_strike_label->value("WATER STRIKE");

$water_strike = new input();
$water_strike->class("inputs");
$water_strike->type("text");
$water_strike->placeholder("WATER STRIKE");
$water_strike->name("water_strike");
$water_strike->id("water_strike");
$water_strike->value_from_db("jobcards", "water_strike", "record_id = {$_GET['record_id']}");

$next_btn = new button();
$next_btn->value("PDF");
$next_btn->onclick("next()");

?>

<div class="form_down" id="departure">
    <h1>JOBCARD</h1>
    <div style="display: flex; flex-direction: column;">
        <div
            style="display: flex; flex-direction: row;border: 2px solid black; border-radius: 2vw; background-color: #ffffffc4; padding: 2vw;justify-content: space-around;margin: 2vw;">
            <div style="display: flex; flex-direction: column;">
                <?php
                $record_id->add();
                $jc_number_lable->add();
                $jc_number->add();
                ?>
            </div>
            <div style="display: flex; flex-direction: column;">
                <?php
                $date_created_label->add();
                $date_created->add();
                ?>
            </div>
            <div style="display: flex; flex-direction: column;">
                <?php
                $action_date_label->add();
                $action_date->add();
                ?>
            </div>
            <div style="display: flex; flex-direction: column;">
                <?php
                $date_stopped_label->add();
                $date_stopped->add();
                ?>
            </div>
        </div>
        <div
            style="display: flex; flex-direction: column;border: 2px solid black; border-radius: 2vw; background-color: #ffffffc4; padding: 2vw;margin: 2vw;">
            <div style="display: flex; flex-direction: row;justify-content: space-around;">
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $user_created_label->add();
                    $user_c->add();
                    ?>
                </div>
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $user_assigned_label->add();
                    $user_a->add();
                    ?>
                </div>
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $client_name_lable->add();
                    $client_name->add();
                    ?>
                </div>
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $contact_name_label->add();
                    $contact_name->add();
                    ?>
                </div>
            </div>
            <div style="display: flex; flex-direction: row;">
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $contact_number_label->add();
                    $phone->add();
                    ?>
                </div>
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $other_number_label->add();
                    $other_number->add();
                    ?>
                </div>
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $alternate_number_label->add();
                    $alternate_number->add();
                    ?>
                </div>
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $address_label->add();
                    $address->add();
                    ?>
                </div>
            </div>
        </div>
    </div>

    <?php
    $error = 0;
    $travel_res = $db->query("jobcard_timeline", "SELECT * FROM jobcard_timeline WHERE jobcard_id = {$_GET['record_id']} AND type = 'DEPARTURE' ORDER BY record_id DESC LIMIT 1");
    ?>
    <div
        style="display: flex; flex-direction: column;border: 2px solid black; border-radius: 2vw; background-color: #ffffffc4; padding: 2vw;margin: 2vw;">
        <h1>TRAVEL TIME</h1>
        <?php
        if ($travel_res->num_rows == 0) {
            echo "<br><h2>NOT DEPARTED YET</h2>";
            $error = 1;
        } else {
            $travel_res = $travel_res->fetch_assoc();
            echo "<br><h2>DEPARTED ON : {$travel_res['date_time']}</h2>";
        }

        $arrival_res = $db->query("jobcard_timeline", "SELECT * FROM jobcard_timeline WHERE jobcard_id = {$_GET['record_id']} AND type = 'ARRIVED' ORDER BY record_id DESC LIMIT 1");
        if ($arrival_res->num_rows == 0) {
            echo "<br><h2>NOT ARRIVED YET</h2>";
            $error = 1;
        } else {
            $arrival_res = $arrival_res->fetch_assoc();
            echo "<br><h2>ARRIVED ON : {$arrival_res['date_time']}</h2>";
        }

        if ($error == 1) {
            echo "<br><br>";
        } else {

            $start_time = strtotime($travel_res['date_time']);
            $end_time = strtotime($arrival_res['date_time']);
            $total_time = $end_time - $start_time;
            echo "<br><h2>TOTAL TIME TRAVELED: " . date('H:i', $total_time) . "</h2>";
            if ($error == 1) {
                $submit1_btn->add();
            }
            ?>
        </div>

        <div style="width: 90%;display: flex;flex-direction: column;align-items: center;">
            <h1>JOB CARD TIME LINE</h1>

            <?php
            $error = 0;
            $job_card_res = $db->query("jobcard_timeline", "SELECT * FROM jobcard_timeline WHERE jobcard_id = {$_GET['record_id']} AND type != 'DEPARTURE' AND type != 'ARRIVED' ORDER BY record_id ASC");
            if ($job_card_res->num_rows == 0) {
                echo "<br><h2>NOT STARTED YET</h2>";
                $error = 1;
            } else {
                $meters_drilling = 0;
                $riem_meters = 0;
                $total_work_time;
                $casing_meters = 0;
                echo "<table style='border-radius: 2vw;padding-top: 2vw;padding-bottom: 2vw;width:100%; text-align:center; border: 2px solid black;background-color: #ffffffc4;'>";
                echo "<tr><th><h2> DATE TIME </h2></th><th> <h2> TIME SPENT </h2></th></tr>";
                while ($job_card = $job_card_res->fetch_assoc()) {
                    echo "<tr style='border: 1px solid black;'>";
                    if ($job_card['type'] == "RIEM_START" || $job_card['type'] == "RIEMING_START") {
                        $riem_start = $job_card['date_time'];
                        echo "<td> <h2> " . str_replace("_", " ", $job_card['type']) . " ON {$job_card['date_time']} </h2> </td>";
                    }
                    if ($job_card['type'] == "RIEM_STOP" || $job_card['type'] == "RIEMING_STOP") {
                        $riem_stop = $job_card['date_time'];

                        $riem_meters += $job_card['meters'];
                        echo "<td> <h2> " . str_replace("_", " ", $job_card['type']) . " ON {$job_card['date_time']}</h2></td>";
                        echo "</tr> <tr style='border: 1px solid black;'><td><h2>METERS: {$job_card['meters']}</h2></td>";
                        $start_time = strtotime($riem_start);
                        $end_time = strtotime($riem_stop);
                        $total_work_time += $total_time = $end_time - $start_time;
                        echo "<td> <h2>TOTAL TIME: " . date('H:i', $total_time) . "</h2></td></tr>";
                    }

                    if ($job_card['type'] == 'DRILLING_START') {
                        $drilling_start = $job_card['date_time'];
                        echo "<td> <h2>" . str_replace("_", " ", $job_card['type']) . " ON {$job_card['date_time']}</h2> </td>";
                    }
                    if ($job_card['type'] == 'DRILLING_STOP') {
                        $drilling_stop = $job_card['date_time'];
                        $meters_drilling += $job_card['meters'];
                        echo "<td> <h2> " . str_replace("_", " ", $job_card['type']) . " ON {$job_card['date_time']} </h2> </td> ";
                        echo "</tr> <tr style='border: 1px solid black;'> <td> <h2> METERS: {$job_card['meters']} </h2> </td> ";
                        $start_time = strtotime($drilling_start);
                        $end_time = strtotime($drilling_stop);
                        $total_work_time += $total_time = $end_time - $start_time;
                        echo "<td> <h2> TOTAL TIME: " . date('H:i', $total_time) . " </h2> </td> </tr> ";
                    }

                    if ($job_card['type'] == "CASING_START") {
                        $casing_start = $job_card['date_time'];
                        echo "<td><h2>" . str_replace("_", " ", $job_card['type']) . " ON {$job_card['date_time']}</h2></td>";
                    }
                    if ($job_card['type'] == "CASING_STOP") {
                        $casing_stop = $job_card['date_time'];
                        $casing_meters += $job_card['meters'];
                        echo "<td> <h2> " . str_replace("_", " ", $job_card['type']) . " ON {$job_card['date_time']} </h2> </td>";
                        echo "</tr> <tr style='border: 1px solid black;'> <td> <h2> METERS: {$job_card['meters']}</h2> </td>";
                        $start_time = strtotime($casing_start);
                        $end_time = strtotime($casing_stop);
                        $total_work_time += $total_time = $end_time - $start_time;
                        echo "<td> <h2>TOTAL TIME: " . date('H:i', $total_time) . "</h2> </td> </tr>";
                    }

                    echo "</tr>";
                }
                echo "</table>";

                ?>
                <br><br>
                <div
                    style='border-radius: 2vw;padding-left: 2vw;padding-right: 2vw;width:30%; text-align:center; border: 2px solid black;background-color: #ffffffc4;'>
                    <?php
                    echo "<br><h2>RIEM METERS: {$riem_meters}</h2>";
                    echo "<br><h2>DRILLING METERS: {$meters_drilling}</h2>";
                    echo "<br><h2>CASING METERS: {$casing_meters}</h2>";
                    echo "<br><h2>TOTAL WORK TIME: " . date('H:i', $total_work_time) . "</h2>";
                    ?>
                </div>
                <br>
                <?php

            }
            ?>
        </div>
    </div>

    <?php
    $notes_res = $db->query("notes", "SELECT * FROM notes WHERE jobcard_id = {$_GET['record_id']}");
    ?>

    <div class="form_down" id="notes">
        <h1>NOTES</h1>
        <table style='width: 90%; border: 2px solid black; border-radius: 2vw; padding: 2vw; background-color: #ffffffc4;'>
            <tr>
                <th>
                    <h2>REASON</h2>
                </th>
                <th>
                    <h2>NOTE</h2>
                </th>
                <th>
                    <h2>DATE</h2>
                </th>
                <th>
                    <h2>IMAGE</h2>
                </th>
            </tr>
            <?php
            if ($notes_res->num_rows > 0) {
                while ($notes = $notes_res->fetch_assoc()) {
                    echo "
                            <tr>
                                <td style='text-align: center; width: 25%;'><h3>{$notes['reason']}</h3></td>
                                <td style='text-align: center; width: 25%;'><h3>{$notes['note']}</h3></td>
                                <td style='text-align: center; width: 25%;'><h3>{$notes['date_time']}</h3></td>
                                <td style='text-align: center; width: 25%;'><img src='../jobcards/images/{$notes['image']}'></td>
                            </tr>
                        ";
                }
            } else {
                echo "<h1>NO NOTES FOUND</h1>";
            }
            ?>
        </table>
        <br>
    </div>

    <div class="form_down" id="arrival">
        <h1>JOBCARD</h1>
        <?php
        // $getLocation->add();
        $pin->add();

        ?>
        <div id="map"></div>

        <style>
            #map {
                height: 30vh;
                width: 50%;
                margin-top: 10px;
            }

            #drill_co_ordinates {
                width: 100%;
                font-family: monospace;
                padding: 5px;
                margin-top: 10px;
            }
        </style>

        <script>
            let map;
            let marker;

            function parseCoords(inputStr) {
                const match = inputStr.match(/Latitude:\s*(-?\d+\.?\d*),\s*Longitude:\s*(-?\d+\.?\d*)/);
                if (!match) return null;
                return {
                    lat: parseFloat(match[1]),
                    lng: parseFloat(match[2])
                };
            }

            function updateCoordsInput(lat, lng) {
                document.getElementById("drill_co_ordinates").value =
                    `Latitude: ${lat.toFixed(6)}, Longitude: ${lng.toFixed(6)}`;
            }

            function initMap() {
                const coordInput = document.getElementById("drill_co_ordinates").value;
                const position = parseCoords(coordInput) || { lat: 0, lng: 0 };

                map = new google.maps.Map(document.getElementById("map"), {
                    center: position,
                    zoom: 18
                });

                marker = new google.maps.Marker({
                    position: position,
                    map: map,
                    draggable: true,
                    title: "Drag to update location"
                });

                marker.addListener("drag", () => {
                    const pos = marker.getPosition();
                    updateCoordsInput(pos.lat(), pos.lng());
                });

                // Optional: update center when done dragging
                marker.addListener("dragend", () => {
                    map.setCenter(marker.getPosition());
                });
            }
        </script>

        <script async defer
            src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCXu62pAxEnoWh-eXMpYBkGsz_iX-EVm2k&callback=initMap">
            </script>


        <?php
        $amount_label->add();
        $amount->add();

        ?>

        <div style="display: flex; flex-direction: column;border: 2px solid black; border-radius: 2vw; background-color: #ffffffc4; padding: 2vw;margin: 2vw; width: 70%;
">
            <div style="display: flex; flex-direction: row;justify-content: space-around;">
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $diesel_start_label->add();
                    $diesel_start->add();
                    ?>
                </div>

                <div style="display: flex; flex-direction: column;">
                    <?php
                    $diesel_stop_label->add();
                    $diesel_stop->add();
                    ?>
                </div>

                <div style="display: flex; flex-direction: column;">
                    <?php
                    $water_strike_label->add();
                    $water_strike->add();
                    ?>
                </div>
            </div>
            <div style="display: flex; flex-direction: row;justify-content: space-around;">
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $water_flow_label->add();
                    $water_flow->add();
                    ?>
                </div>
                <div style="display: flex; flex-direction: column;">
                    <?php
                    $interested_in_pump_label->add();
                    $interested_in_pump->add();
                    ?>
                </div>

                <div style="display: flex; flex-direction: column;">
                    <?php
                    $compressor_hours_label->add();
                    $compressor_hours->add();
                    ?>
                </div>
            </div>


        </div>
        <?php
        $next_btn->add();

        }


        $sendajax = new js_ajax();
        $sendajax->function_name("update");
        $sendajax->update("jobcards");
        $sendajax->on_success("JOB CARD UPDATED");
        ?>
    <script>
        function next() {
            window.location.href = "jobcard_pdf.php?record_id=<?php echo $_GET['record_id']; ?>";
        }
    </script>
    