<?php include "../../root.class.php";
$html = new html();
$html->add_styles_page();
$db = new db_safeguard(); 

$html->check_user_type("ADMIN");

$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>
    