@{
    ViewData["MainNum"] = "1";
    ViewData["SubNum"] = "1";
    ViewData["Title"] = "設備類別管理";
}

<ol class="breadcrumb page-breadcrumb">
    <li class="breadcrumb-item"><a href="javascript:void(0);">設備系統基本資料</a></li>
    <li class="breadcrumb-item active">設備類別管理</li>
    <li class="position-absolute pos-top pos-right d-none d-sm-block"><span class="js-get-date"></span></li>
</ol>

<div class="row">
    <div class="col-xl-12">
        <div id="panel-5" class="panel">
            <div class="panel-container show">
                <div class="panel-content">
                    <ul class="nav nav-tabs" id="tabs" role="tablist">
                        <li class="nav-item"><a class="nav-link active" data-toggle="tab" href="#tab-system-main" role="tab"><span class="hidden-sm-down ml-1">系統大類</span></a></li>
                        <li class="nav-item"><a class="nav-link" data-toggle="tab" href="#tab-system-sub" role="tab"><span class="hidden-sm-down ml-1">系統小類</span></a></li>
                    </ul>
                    <div class="tab-content p-3">
                        <div class="tab-pane fade show active" id="tab-system-main" role="tabpanel" aria-labelledby="tab-system-main">
                            @Html.Partial("_SystemMain")
                        </div>

                        <div class="tab-pane fade" id="tab-system-sub" role="tabpanel" aria-labelledby="tab-system-sub">
                            @Html.Partial("_SystemSub")
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

@section Scripts {
    <script>
        var systemMainTable, systemSubTable, deviceTable;
        var selected_system_main_guid = "";
        var selected_system_main_guid_top_name = "";
        var selected_system_sub_guid = "";
        var selected_system_device_item_guid = "";
        //#region 系統大類 document ready
        $(function () {
            //#region 系統大類 DataTable
            systemMainTable = $("#system_main_table").DataTable({
                "columns": [
                    {
                        "data": null,
                        "render": function (data, type, row, meta) {
                            return meta.row + 1;
                        }
                    },
                    {
                        "data": "system_key"
                    },
                    {
                        "data": "system_value"
                    },
                    {
                        "data": "created_at"
                    },
                    {
                        "data": null,
                        "defaultContent": '<button class="btn btn-primary edit-btn">修改</button> <button class="btn btn-danger del-btn">刪除</button>'
                    }
                ],
                'createdRow': function (row, data, dataIndex) {
                    $(row).attr('data-guid', data.id);
                },
                //"order": [[2, "desc"]],
                "ajax": {
                    "url": "/SystemCategory/SystemMainList",
                    "type": "POST",
                    "dataSrc": function (rel) {
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                            return;
                        }

                        data = rel.data;

                        if (data == null || data.length == 0) {
                            this.data = [];
                        }

                        //系統小類上方選單
                        $("#system-main-list").empty();
                        $.each(data, function (key, value) {
                            if (key == 0) {
                                selected_system_main_guid_top_name = value.system_key;
                                $("#system-main-list").append(`<button type="button" class="btn btn-success waves-effect waves-themed ml-2 mb-2 btn-station" id="${value.id}" onclick="clickSystemMain('${value.id}')">${value.system_key}</button>`);
                                $(`#${value.id}`).trigger("click");
                            }
                            else {
                                $("#system-main-list").append(`<button type="button" class="btn btn-outline-success waves-effect waves-themed ml-2 mb-2 btn-station" id="${value.id}" onclick="clickSystemMain('${value.id}')">${value.system_key}</button>`);
                            }
                        });

                        return data;
                    }
                }
            });
            //#endregion

            //#region 編輯系統大類
            $('#system_main_table').on("click", "button.edit-btn", function () {

                $("#system-main-modal .modal-title").html("系統大類資料 - 編輯");

                selected_system_main_guid = $(this).parents('tr').attr('data-guid');

                //取得單一系統大類
                var url = "/SystemCategory/GetOneSystemMain";

                var send_data = {
                    id: selected_system_main_guid
                }

                $.post(url, send_data, function (rel) {
                    if (rel.code != "0000") {
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                        }
                        else {
                            toast_warning(rel.msg);
                        }
                        return;
                    }
                    else {
                        $("#system_main_name_modal").val(rel.data.system_key);
                        $("#system_main_code_modal").val(rel.data.system_value);

                        $("#system-main-modal").modal();
                    }
                }, 'json');

            });
            //#endregion

            //#region 刪除系統大類
            $('#system_main_table').on("click", "button.del-btn", function () {

                selected_system_main_guid = $(this).parents('tr').attr('data-guid');

                Swal.fire(
                    {
                        title: "刪除",
                        text: "你確定是否刪除此筆資料?",
                        type: "warning",
                        icon: 'warning',
                        showCancelButton: true,
                        confirmButtonText: "是",
                        cancelButtonText: "否"
                    }).then(function (result) {
                        if (result.value) {
                            var url = "/SystemCategory/DeleteOneSystemMain";
                            var send_data = {
                                id: selected_system_main_guid
                            }
                            $.post(url, send_data, function (rel) {
                                if (rel.code != "0000") {
                                    if (rel.code == "9999") {
                                        toast_error(rel.msg);

                                    }
                                    else if (rel.code == "9997") {
                                        var htnl = rel.msg + "<br>" + rel.data
                                        Swal.fire(
                                            {
                                                title: "刪除失敗",
                                                icon: 'warning',
                                                html: htnl,
                                            });
                                    }
                                    else {
                                        toast_warning(rel.msg);
                                    }
                                }
                                else {
                                    toast_ok(rel.msg);
                                    systemMainTable.ajax.reload(null, false);
                                }
                            }, 'json');
                        }
                    });
            });
            //#endregion
        });
        //#endregion

        //#region 新增系統大類資料
        function AddSystemMain() {
            selected_system_main_guid = "";
            SystemMainValidate.resetForm();
            $("#system-main-modal .modal-title").html("系統大類資料 - 新增");
            $("#system-main-form").trigger("reset");

            $("#system-main-modal").modal();
        }
        //#endregion

        //#region 系統大類表單驗證
        var SystemMainValidate = $("#system-main-form").validate({
            rules: {
                system_main_name_modal: {
                    required: true,
                    maxlength: 50,
                    filterspace: true
                },
                system_main_code_modal: {
                    required: true,
                    maxlength: 50,
                    filterspace: true
                }
            }
        });
        //#endregion

        //#region 儲存系統大類資料
        function SaveSystemMain() {
            if ($("#system-main-form").valid()) {

                $("#save-system-main-btn").html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>').attr("disabled", true);

                var url = "/SystemCategory/SaveSystemMain";
                var send_data = {
                    id: selected_system_main_guid,
                    System_key: $('#system_main_name_modal').val(),
                    system_value : $('#system_main_code_modal').val()
                }

                $.post(url, send_data, function (rel) {
                    $("#save-system-main-btn").html('確定').attr("disabled", false);
                    if (rel.code != "0000") {
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                        }
                        else {
                            toast_warning(rel.msg);
                        }
                        return;
                    }
                    else {
                        toast_ok(rel.msg);
                        systemMainTable.ajax.reload(null, false);
                        $('#system-main-modal').modal('hide');
                        return;
                    }
                }, 'json')
                    .fail(function (xhr, status, error) {
                        $("#save-system-main-btn").html('確定').attr("disabled", false);
                    });
            }
        }
        //#endregion
    </script>

    <script>
        //#region 系統小類 document ready
        $(function () {
            $('#submenucard').hide();

            //#region 系統小類 DataTable
            systemSubTable = $("#system_sub_table").DataTable({
                "columns": [
                    {
                        "data": null,
                        "render": function (data, type, row, meta) {
                            return meta.row + 1;
                        }
                    },
                    {
                        "data": null,
                        "render": function (data, type, row, meta) {
                            return selected_system_main_guid_top_name;
                        }
                    },
                    {
                        "data": "system_key"
                    },
                    {
                        "data": "system_value"
                    },
                    {
                        "data": "created_at"
                    },
                    {
                        "data": null,
                        "defaultContent": '<button class="btn btn-primary edit-btn">修改</button> <button class="btn btn-danger del-btn">刪除</button>'
                    }
                ],
                'createdRow': function (row, data, dataIndex) {
                    $(row).attr('data-guid', data.id);
                },
                //"order": [[2, "desc"]],
                "ajax": {
                    "url": "/SystemCategory/SystemSubList",
                    "type": "POST",
                    "data": function (d) {
                        d.id = selected_system_main_guid
                    },
                    "dataSrc": function (rel) {
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                            return;
                        }

                        data = rel.data;

                        if (data == null || data.length == 0) {
                            this.data = [];
                        }

                        return data;
                    }
                }
            });
            //#endregion

            //#region 設備項目 DataTable
            deviceTable = $("#device_sub_table").DataTable({
                "columns": [
                    {
                        "data": null,
                        "render": function (data, type, row, meta) {
                            return meta.row + 1;
                        }
                    },
                    {
                        "data": "full_name"
                    },
                    {
                        "data": "points"
                    },
                    {
                        "data": "unit"
                    },
                    {
                        "data": "is_show"
                    },
                    {
                        "data": "is_show_riserDiagram"
                    },
                    {
                        "data": "is_controll"
                    },
                    {
                        "data": "is_bool"
                    },
                    {
                        "data": "is_link"
                    },
                    {
                        "data": null,
                        "defaultContent": '<button class="btn btn-primary edit-btn">修改</button> <button class="btn btn-danger del-btn">刪除</button>'
                    }
                ],
                'createdRow': function (row, data, dataIndex) {
                    $(row).attr('data-guid', data.id);
                },
                //"order": [[2, "desc"]],
                "ajax": {
                    "url": "/SystemCategory/DeviceItemTable",
                    "type": "POST",
                    "data": function (d) {
                        d.id = selected_system_sub_guid
                    },
                    "dataSrc": function (rel) {
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                            return;
                        }

                        data = rel.data;

                        if (data == null || data.length == 0) {
                            this.data = [];
                        }

                        $.each(data, function (index, rel) {
                            if (rel.is_show == 0) {
                                rel.is_show = "否"
                            } else {
                                rel.is_show = "是"
                            }

                            if (rel.is_show_riserDiagram == 0) {
                                rel.is_show_riserDiagram = "否"
                            } else {
                                rel.is_show_riserDiagram = "是"
                            }

                            if (rel.is_controll == 0) {
                                rel.is_controll = "否"
                            } else {
                                rel.is_controll = "是"
                            }

                            if (rel.is_bool == 0) {
                                rel.is_bool = "否"
                            } else {
                                rel.is_bool = "是"
                            }

                            if (rel.is_link == 0) {
                                rel.is_link = "否"
                            } else {
                                rel.is_link = "是"
                            }
                        });

                        return data;
                    }
                }
            });
            //#endregion

            //#region 編輯系統小類
            $('#system_sub_table').on("click", "button.edit-btn", function () {

                $("#system-sub-modal .modal-title").html("系統小類資料 - 編輯");

                selected_system_sub_guid = $(this).parents('tr').attr('data-guid');

                //取得單一系統小類
                var url = "/SystemCategory/GetOneSystemSub";

                var send_data = {
                    id: selected_system_sub_guid
                }

                $.post(url, send_data, function (rel) {
                    if (rel.code != "0000") {
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                        }
                        else {
                            toast_warning(rel.msg);
                        }
                        return;
                    }
                    else {
                        $("#system_main_name").html(selected_system_main_guid_top_name)
                        $("#system_sub_name_modal").val(rel.data.system_key);
                        $("#system_sub_code_modal").val(rel.data.system_value);

                        $("#system-sub-modal").modal();
                    }
                }, 'json');

            });
            //#endregion

            //#region 刪除系統小類
            $('#system_sub_table').on("click", "button.del-btn", function () {

                selected_system_sub_guid = $(this).parents('tr').attr('data-guid');

                Swal.fire(
                    {
                        title: "刪除",
                        text: "你確定是否刪除此筆資料?",
                        type: "warning",
                        icon: 'warning',
                        showCancelButton: true,
                        confirmButtonText: "是",
                        cancelButtonText: "否"
                    }).then(function (result) {
                        if (result.value) {
                            var url = "/SystemCategory/DeleteOneSystemSub";
                            var send_data = {
                                id: selected_system_sub_guid
                            }
                            $.post(url, send_data, function (rel) {
                                if (rel.code != "0000") {
                                    if (rel.code == "9999") {
                                        toast_error(rel.msg);
                                    }
                                    else if (rel.code == "9997") {
                                        var htnl = rel.msg + "<br>" + rel.data
                                        Swal.fire(
                                            {
                                                title: "刪除失敗",
                                                icon: 'warning',
                                                html: htnl,
                                            });
                                    }
                                    else {
                                        toast_warning(rel.msg);
                                    }
                                    return;
                                }
                                else {
                                    toast_ok(rel.msg);
                                    $('#submenucard').hide();
                                    systemSubTable.ajax.reload(null, false);
                                    return;
                                }
                            }, 'json');
                        }
                    });
            });
            //#endregion
        });
        //#endregion

        //#region 系統小類畫面 - 選擇系統大類
        function clickSystemMain(guid) {
            selected_system_main_guid = guid;
            selected_system_main_guid_top_name = $(`#${guid}`).text();

            if ($('#system-main-list').find('.btn-station').hasClass("btn-success")) {
                $('#system-main-list').find('.btn-station').removeClass("btn-success").addClass("btn-outline-success");
            }
            $(`#${guid}`).removeClass("btn-outline-success").addClass("btn-success");
            $('#submenucard').hide();
            systemSubTable.ajax.reload(null, false);
        }
        //#endregion

        //#region 新增系統小類資料
        function AddSystemSub() {
            selected_system_sub_guid = "";
            SystemSubValidate.resetForm();
            $("#system-sub-modal .modal-title").html("系統小類資料 - 新增");
            $("#system-sub-form").trigger("reset");

            $("#system_main_name").html(selected_system_main_guid_top_name)

            $("#system-sub-modal").modal();
        }
        //#endregion

        //#region 系統小類表單驗證
        var SystemSubValidate = $("#system-sub-form").validate({
            rules: {
                system_sub_name_modal: {
                    required: true,
                    maxlength: 50,
                    filterspace: true
                },
            }
        });
        //#endregion

        //#region 儲存系統小類資料
        function SaveSystemSub() {
            if ($("#system-sub-form").valid()) {
                $("#save-system-sub-btn").html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>').attr("disabled", true);

                var url = "/SystemCategory/SaveSystemSub";
                var send_data = {
                    id: selected_system_sub_guid,
                    system_parent_id: selected_system_main_guid,
                    system_key: $('#system_sub_name_modal').val(),
                    system_value: $('#system_sub_code_modal').val()
                }

                $.post(url, send_data, function (rel) {
                    $("#save-system-sub-btn").html('確定').attr("disabled", false);
                    if (rel.code != "0000") {
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                        }
                        else {
                            toast_warning(rel.msg);
                        }
                        return;
                    }
                    else {
                        toast_ok(rel.msg);
                        $('#submenucard').hide();
                        systemSubTable.ajax.reload(null, false);
                        $('#system-sub-modal').modal('hide');
                        return;
                    }
                }, 'json')
                .fail(function (xhr, status, error) {
                    $("#save-system-sub-btn").html('確定').attr("disabled", false);
                });
            }
        }
        //#endregion

        //#region 新增設備項目
        function Adddevice_item() {
            //SubDeviceItemValidate.resetForm();
            selected_system_device_item_guid = "";
            $("#device-sub-modal .modal-title").html("設備項目 - 新增");
            $("#device-item-sub-form").trigger("reset");
            $("#device-sub-modal").modal();
        }
        //#endregion

        $('#system_sub_table').on("click", "tbody>tr", function () {
            $(this).parents().find('tr').css('background-color', '#fff');
            $(this).css('background-color', '#67B4AC');
            selected_system_sub_guid = $(this).attr('data-guid');
            deviceTable.ajax.reload();
            $('#submenucard').show();
        });

        //#region 設備項目表單驗證
        $("#device-item-sub-form").validate({
            rules: {
                device_sub_name_modal: {
                    required: true,
                    maxlength: 50
                },
                device_sub_points_modal: {
                    required: true,
                    maxlength: 20
                }
            }
        });
        //#endregion

        //#region 儲存設備項目
        function Savedevice_item() {
            if ($("#device-item-sub-form").valid()) {
                $("#save-device-item-btn").html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>').attr("disabled", true);

                var uurl = "/SystemCategory/HaveSamePoints";
                var ssend_data = {
                    subId: selected_system_sub_guid,
                    id: selected_system_device_item_guid,
                    points: $('#device_sub_points_modal').val(),
                }
                $.post(uurl, ssend_data, function (rel) {
                    if (rel.code != "0000") {
                        $("#save-device-item-btn").html('確定').attr("disabled", false);
                        if (rel.code == "9999") {
                            toast_error(rel.msg);
                        }
                        else {
                            toast_warning(rel.msg);
                        }
                        return;
                    }
                    else {
                        if (rel.data) {
                            toast_warning("點位名稱已存在");
                            $("#save-device-item-btn").html('確定').attr("disabled", false);
                        }
                        else {
                            var url = "/SystemCategory/Savedevice_item";
                            var send_data = {
                                id: selected_system_device_item_guid,
                                device_system_tag: selected_system_main_guid,
                                device_name_tag: selected_system_sub_guid,
                                full_name: $('#device_sub_name_modal').val(),
                                points: $('#device_sub_points_modal').val(),
                                unit: $('#device_sub_unit_modal').val(),
                                is_show: $('input[name="is_show"]:checked').val(),
                                is_show_riserDiagram: $('input[name="is_show_riserDiagram"]:checked').val(),
                                is_controll: $('input[name="is_controll"]:checked').val(),
                                is_bool: $('input[name="is_bool"]:checked').val(),
                            }

                            $.post(url, send_data, function (rel) {
                                $("#save-device-item-btn").html('確定').attr("disabled", false);
                                if (rel.code != "0000") {
                                    if (rel.code == "9999") {
                                        toast_error(rel.msg);
                                    }
                                    else {
                                        toast_warning(rel.msg);
                                    }
                                    return;
                                }
                                else {
                                    toast_ok(rel.msg);
                                    deviceTable.ajax.reload(null, false);
                                    $('#device-sub-modal').modal('hide');
                                    return;
                                }
                            }, 'json')
                            .fail(function (xhr, status, error) {
                                $("#save-device-item-btn").html('確定').attr("disabled", false);
                            });
                        }
                    }
                }, 'json')
                .fail(function (xhr, status, error) {
                    $("#save-device-item-btn").html('確定').attr("disabled", false);
                });
            }
        }
        //#endregion

        //#region 編輯設備項目
        $('#device_sub_table').on("click", "button.edit-btn", function () {

            $("#device-sub-modal .modal-title").html("設備項目 - 編輯");

            selected_system_device_item_guid = $(this).parents('tr').attr('data-guid');

            //取得單一系統小類
            var url = "/SystemCategory/GetOneDeviceItem";

            var send_data = {
                id: selected_system_device_item_guid
            }

            $.post(url, send_data, function (rel) {
                if (rel.code != "0000") {
                    if (rel.code == "9999") {
                        toast_error(rel.msg);
                    }
                    else {
                        toast_warning(rel.msg);
                    }
                    return;
                }
                else {
                    $("#device-item-sub-form").trigger("reset");
                    $("#device_sub_name_modal").val(rel.data.full_name);
                    $("#device_sub_points_modal").val(rel.data.points);
                    $("#device_sub_unit_modal").val(rel.data.unit);
                    $("input[name='is_show'][value='" + rel.data.is_show + "']").prop("checked", true);
                    $("input[name='is_show_riserDiagram'][value='" + rel.data.is_show_riserDiagram + "']").prop("checked", true);
                    $("input[name='is_controll'][value='" + rel.data.is_controll + "']").prop("checked", true);
                    $("input[name='is_bool'][value='" + rel.data.is_bool + "']").prop("checked", true);

                    $("#device-sub-modal").modal();
                }
            }, 'json');

        });
        //#endregion

        //#region 刪除設備項目
        $('#device_sub_table').on("click", "button.del-btn", function () {

            selected_system_device_item_guid = $(this).parents('tr').attr('data-guid');

            Swal.fire(
                {
                    title: "刪除",
                    text: "你確定是否刪除此筆資料?",
                    type: "warning",
                    icon: 'warning',
                    showCancelButton: true,
                    confirmButtonText: "是",
                    cancelButtonText: "否"
                }).then(function (result) {
                    if (result.value) {
                        var uurl = "/SystemCategory/CheckCanDelete";
                        var ssend_data = {
                            subguid: selected_system_sub_guid,
                            guid: selected_system_device_item_guid
                        }
                        $.post(uurl, ssend_data, function (rel) {
                            if (rel.code != "0000") {
                                if (rel.code == "9999") {
                                    toast_error(rel.msg);
                                }
                                else {
                                    toast_warning(rel.msg);
                                }
                                return;
                            }
                            else {
                                if (rel.data.delete) {
                                    var htnl = "以下點位使用中,故無法刪除<br>" + rel.data.reason
                                    Swal.fire(
                                        {
                                            title: "刪除失敗",
                                            icon: 'warning',
                                            html: htnl,
                                        });
                                } else {
                                    var url = "/SystemCategory/DeleteOneSystemSubDeviceItem";
                                    var send_data = {
                                        id: selected_system_device_item_guid
                                    }
                                    $.post(url, send_data, function (rel) {
                                        if (rel.code != "0000") {
                                            if (rel.code == "9999") {
                                                toast_error(rel.msg);
                                            }
                                            else {
                                                toast_warning(rel.msg);
                                            }
                                            return;
                                        }
                                        else {
                                            toast_ok(rel.msg);
                                            deviceTable.ajax.reload(null, false);
                                            return;
                                        }

                                    }, 'json');
                                }
                            }
                        });
                    }
                });
        });
        //#endregion

    </script>
}