<?php $__env->startSection('css_page_level'); ?>
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css')); ?>"/>
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css')); ?>" />
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/bootstrap-daterangepicker/daterangepicker.min.css')); ?>" />
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/bootstrap-select/bootstrap-select.min.css')); ?>"/>
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/select2/css/select2.css')); ?>"/>
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/select2/css/select2-bootstrap.min.css')); ?>"/>
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/jquery-multi-select/css/multi-select.css')); ?>"/>
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/bootstrap-fileinput/bootstrap-fileinput.css')); ?>"/>
    <link rel="stylesheet" type="text/css" href="<?php echo e(asset('assets/global/plugins/jquery-ui/jquery-ui.min.css')); ?>"/>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('page-content-wrapper'); ?>
	<style type="text/css">
		.th_display_none { display: none;}
        .disableInput {
            background-color: #ffee88 !important;
        }
        .readOnlyInput {
            background-color: #ffee88 !important;
        }
        .loading {    
            background-color: #ffffff;
            background-image: url("<?php echo e(asset('assets/global/img/loading-spinner-grey.gif')); ?>");
            background-size: 15px 15px;
            background-position: 99% center;
            background-repeat: no-repeat;
        }
        #loadbox {
            display: none;
            position: fixed;
            left: 0;
            top: 0;
            z-index: 999999;
            width: 100%;
            height: 100%;
            overflow: visible;
            background: rgba(255, 255, 255, 0.4);
            background-image: url("<?php echo e(asset('assets/global/img/loading_big.gif')); ?>");
            background-repeat: no-repeat;
            background-position: center center;
        }
	</style>
    <div id="loadbox"></div>
	<div class="page-content-wrapper" id="main">
		<div class="page-content">                               
			<!-- BEGIN PAGE HEADER-->
			<h3 class="page-title">
			<?php $setting = app('anlutro\LaravelSettings\Facade'); ?>
			<?php echo e($setting::get('system_name','全方位建築智慧化管理系統')); ?> <small><?php echo e($setting::get('company_name','新保科技')); ?></small>
			</h3>
			<div class="page-bar">
				<ul class="page-breadcrumb">
					<li>
						<i class="fa fa-home"></i>
						<a href="index.html">首頁</a>
						<i class="fa fa-angle-right"></i>
					</li>
					<li>
						<a href="#">取得領用單建立</a>
						<i class="fa fa-angle-right"></i>
					</li>
					<li>
						<a href="#">領用單列表</a>
					</li>
				</ul>
				<div class="page-toolbar">

				</div>
			</div>
			<!-- END PAGE HEADER-->
			<!-- BEGIN DASHBOARD STATS -->
			<div class="row">
				<div class="col-md-12">
					<!-- BEGIN EXAMPLE TABLE PORTLET-->
					<div class="portlet light bordered">
						<div class="portlet-body">
							<div class="table-toolbar" >
								<div class="row">
									<div class="col-md-6">
                                        <div class="btn-group">
											<a id="btn_add_picklist" href="javascript:;"  class="btn green">
											新增 <i class="fa fa-plus"></i>
											</a>
                                        </div>
                                        <button id="btn_mass_delete" class="btn red" style="display:none;"> 刪除 <i class="fa fa-trash"></i></button>
									</div>
                                    <div class="pull-right" style="margin-right:20px;">
                                        <a href="<?php echo e(action('Manage\Storage\PicklistController@index')); ?>"  class="btn green">
                                            全部 
                                        </a>
                                        <a href="<?php echo e(action('Manage\Storage\PicklistController@fault')); ?>"  class="btn purple">
                                            修繕 
                                        </a>
                                    </div>
								</div>
									
							</div>
							<table class="table table-striped table-bordered table-hover" id="table_list">

							</table>
						</div>
					</div>
					<!-- END EXAMPLE TABLE PORTLET-->
				</div>
			</div>
		</div>
        <div class="modal fade draggable-modal" id="modal_add_picklist" role="basic" aria-hidden="true">
            <div class="modal-dialog modal-lg">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                        <h4 class="modal-title">新增領用單</h4>
                    </div>
                    <form id="form_add" action="" class="form-horizontal">
                        <div class="modal-body">
                            <div class="form-body">

                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn dark btn-outline" data-dismiss="modal">關閉</button>
                            <button type="submit" class="btn green btn_query_submit" value="add">新增</button>
                        </div>
                    </form>
                </div>
                <!-- /.modal-content -->
            </div>
            <!-- /.modal-dialog -->
        </div>
        <div class="modal fade draggable-modal" id="modal_edit_picklist" role="basic" aria-hidden="true">
            <div class="modal-dialog modal-lg">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                        <h4 class="modal-title">修改領用單</h4>
                    </div>
                    <form id="form_edit" action="" class="form-horizontal">
                        <input type="hidden" name="id" value="" />
                        <div class="modal-body">
                            <div class="form-body">

                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn dark btn-outline" data-dismiss="modal">關閉</button>
                            <button type="submit" class="btn green btn_query_submit" value="add">修改</button>
                        </div>
                    </form>
                </div>
                <!-- /.modal-content -->
            </div>
            <!-- /.modal-dialog -->
        </div>
        <div class="modal fade draggable-modal" id="modal_add_storage" role="basic" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                        <h4 class="modal-title">加入儲物</h4>
                    </div>
                    <form id="form_add_storage" action="" class="form-horizontal autocomplete-form">
                        <div class="modal-body">
                            <div class="form-body">

                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn dark btn-outline" data-dismiss="modal">關閉</button>
                            <button type="submit" class="btn green btn_query_submit" value="add">加入</button>
                        </div>
                    </form>
                </div>
                <!-- /.modal-content -->
            </div>
            <!-- /.modal-dialog -->
        </div>
        <div class="modal fade draggable-modal" id="modal_edit_storage" role="basic" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
                        <h4 class="modal-title">修改儲物</h4>
                    </div>
                    <form id="form_edit_storage" action="" class="form-horizontal autocomplete-form">
                        <input type="hidden" name="id" value="" />
                        <div class="modal-body">
                            <div class="form-body">

                            </div>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn dark btn-outline" data-dismiss="modal">關閉</button>
                            <button type="submit" class="btn green btn_query_submit" value="add">修改</button>
                        </div>
                    </form>
                </div>
                <!-- /.modal-content -->
            </div>
            <!-- /.modal-dialog -->
        </div>
        <div id="formTemplate" style="display:none;">
            <div class="form-group">
                <label class="col-md-2 control-label">領用類型</label>
                <div class="col-md-10">
                    <select name="type" class="form-control select2"> 
                        <option value="1">領用</option>
                        <option value="101">退還</option>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <label class="col-md-2 control-label">領用人</label>
                <div class="col-md-10">
                    <select name="consuming" class="form-control select2"> 
                        <?php foreach($staffs as $staff): ?>
                            <option value="<?php echo e($staff->id); ?>"><?php echo e($staff->employee_no.'  '.$staff->name); ?></option>
                        <?php endforeach; ?>
                    </select>   
                </div>
            </div>
            <div class="form-group">
                <label class="col-md-2 control-label">備註</label>
                <div class="col-md-10">
                    <textarea name="remark" class="form-control"></textarea>  
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-12">
                    <table class="table table-striped table-bordered table-hover" name="table_storage_list">

                    </table>
                </div>
            </div>
            <div class="form-group">
                <div class="col-md-1">
                    <a href="javascript:;" class="btn green addStorage">
                        加入儲物 <i class="fa fa-plus"></i>
                    </a> 
                </div>
            </div>
            <input type="hidden" id="_token" name="_token" value="<?php echo e(csrf_token()); ?>">
        </div>
        
        <div id="itemTemplate" style="display:none;">
            <div class="form-group">
                <label class="col-md-2 control-label">儲物類型</label>
                <div class="col-md-10">
                    <select name="category_id" class="form-control select2"> 
                        <option value="">未選擇</option>
                        <?php foreach($categories as $category): ?>
                            <option value="<?php echo e($category->id); ?>" categoryName="<?php echo e($category->name); ?>"><?php echo e($category->name); ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <label class="col-md-2 control-label">儲物編號</label>
                <div class="col-md-10">
                    <select name="target_id" class="form-control select2"> 
                        <option value="">未選擇</option>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <label class="col-md-2 control-label">領用數量</label>
                <div class="col-md-10">
                    <input type="text" name="number" class="form-control">   
                </div>
            </div>
            <div class="form-group">
                <label class="col-md-2 control-label">核發數量</label>
                <div class="col-md-10">
                    <input type="text" name="issued_number" class="form-control">   
                </div>
            </div>
            <div class="form-group">
                <label class="col-md-2 control-label">用途說明</label>
                <div class="col-md-10">
                    <input type="text" name="explain" class="form-control">   
                </div>
            </div>
            <input type="hidden" id="_token" name="_token" value="<?php echo e(csrf_token()); ?>">
        </div>
    </div>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('plugins_page_level'); ?>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/jquery-validation/js/jquery.validate.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/jquery-validation/js/additional-methods.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/datatables/media/js/jquery.dataTables.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/moment.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/bootstrap-daterangepicker/daterangepicker.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/bootbox/bootbox.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/jquery-multi-select/js/jquery.multi-select.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/select2/js/select2.min.js')); ?>"></script>
    <script type="text/javascript" src="<?php echo e(asset('assets/global/plugins/bootstrap-fileinput/bootstrap-fileinput.js')); ?>"></script>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('js_page_level'); ?>
    <script>
        var actionType  = null;
        var actionRow   = null;
        var loadStorage = false;
        
        function addStorageToSelect(cid, selectObj, defaultValue) {
            if (typeof defaultValue == 'undefined') {
                defaultValue = '';    
            }
            $.ajax({
                type : 'GET',
                url  : "<?php echo e(route('manage::storage::get_storages_by_category')); ?>",
                dataType : 'json',
                data : {
                    'id' : cid
                },
                success: function(sendback){
                    $.each(sendback, function(key, value) {
                        $(selectObj).append('<option value="' + value.id + '" categoryId="' + value.c_id + '" storageNo="' + value.no + '" storageName="' + value.storage_name + '">' + value.no + '-' + value.storage_name + " - 剩餘數量:" + value.now_inventory + " - 領用限額:" + value.consuming_limit + '</option>');
                    });
                },
                error: function(){
                    toastr['error']('發生錯誤，請重新整理後再嘗試');
                },
                beforeSend: function() {
                    $(selectObj).empty();
                    $(selectObj).append('<option value="">未選擇</option>');
                },
                complete: function() {
                    $(selectObj).select2();
                    $(selectObj).select2('val', defaultValue);
                    loadStorage = false;
                }
            });
        }
        
        $(document).ready(function(){
            callDataTable();
        });
        
        function initAction() {
            $('#modal_add_picklist form').find('.form-body').html($('#formTemplate').html());
            $('#modal_edit_picklist form').find('.form-body').html($('#formTemplate').html());
            $('#modal_add_storage form').find('.form-body').html($('#itemTemplate').html());
            $('#modal_edit_storage form').find('.form-body').html($('#itemTemplate').html());
            callStorageListDataTable();
            $('#modal_edit_picklist form .storageNo').addClass('readOnlyInput');
            $('.disableInput').prop('disabled', true);
            $('.readOnlyInput').prop('readonly', true);
            $('.show-tooltip').tooltip();
            $('#type').multiSelect();
            $('#source').multiSelect();
            $(".select2").select2(); 
            $('.date-picker').datepicker({
                orientation: "left",
                autoclose: true
            });
            $(document).on('click','#btn_add_picklist',function(){
                var table = $('[name="table_storage_list"]', "#form_add").DataTable();
                
                actionType = 'add';
                table.clear().draw(false);
                $('#modal_add_picklist').modal('show');
            });
            $(document).on('click','.addStorage',function(){
                $('#modal_add_storage [name="category_id"]').change(null);
                $('#modal_add_storage [name="category_id"]').select2("val", '');
                $('#modal_add_storage [name="category_id"]').change(function() {
                    if (loadStorage) {
                        return;    
                    }
                    loadStorage = true;
                    addStorageToSelect($(this).val(), $('#modal_add_storage [name="target_id"]')); 
                });
                $('#modal_add_storage').modal('show');
            });
            $(document).on('click', '#btn_mass_delete', function(){
                var ids = [];
                $('.checkboxes:checked').each(function() {
                    ids.push($(this).val());                      
                });   
                deleteRecords(ids);
            });
            $('#table_list tbody').on('click', '.btn_delete', function(){
                var id = $(this).attr('uid');
                deleteRecords(id);
            });
            $('#table_list tbody').on('click', '.btn_edit', function(){
                var uid    = $(this).attr('uid');
                actionType = 'edit';
                
                $.ajax({
                    type : 'GET',
                    url  : "<?php echo e(route('manage::storage::get_picklist')); ?>",
                    dataType : 'json',
                    data : {
                        'id' : uid
                    },
                    success: function(sendback){
                        $.each(sendback, function(key, value) {
                            var obj;
                            switch(key) {
                                case 'storage_no':
                                    obj = $("#form_edit .storageNo");
                                    break;
                                case 'storage_name':
                                    obj = $("#form_edit .storageName");
                                    break;
                                default:
                                    obj = $("#form_edit [name='" + key + "']");
                                    break;
                            }
                            if (key == 'type') {
                                $(obj).prop("readonly", true);    
                            }
                            if ($(obj).hasClass('select2')) {
                                $(obj).select2("val", value); 
                            } else {
                                $(obj).val(value);     
                            } 
                        });
                        
                        actionType = 'edit';
                        var table  = $('[name="table_storage_list"]', "#form_" + actionType).DataTable();
                        table.clear().draw(false);
                        
                        $.ajax({
                            type : 'GET',
                            url  : "<?php echo e(route('manage::storage::get_picklist_items')); ?>",
                            dataType : 'json',
                            data : {
                                'id' : uid
                            },
                            success: function(sendback){
                                $.each(sendback, function(key, value) {
                                    var rowData = [
                                        '<input type="hidden" name="item_id[]" value="' + value.id + '" />' +
                                        '<input type="hidden" name="target_id[]" value="' + value.target_id + '" />' +
                                        '<input type="hidden" name="number[]" value="' + value.number + '" />' +
                                        '<input type="hidden" name="issued_number[]" value="' + value.issued_number + '" />' +
                                        '<input type="hidden" name="explain[]" value="' + value.explain + '" />' +
                                        '<input type="hidden" class="category-id" value="' + value.c_id + '" />' +
                                        '<span class="storageNoText">' + value.storage_no + '</span>',
                                        '<span class="categoryNameText">' + value.category_name + '</span>',
                                        '<span class="storageNameText">' + value.storage_name + '</span>',
                                        value.number,
                                        value.issued_number,
                                        value.explain
                                    ];
                                    
                                    insertStorage(table, rowData);
                                });
                                $('#modal_edit_picklist').modal('show');
                            },
                            error: function(){
                                toastr['error']('發生錯誤，請重新整理後再嘗試');
                            }
                        });
                    },
                    error: function(){
                        toastr['error']('發生錯誤，請重新整理後再嘗試');
                    }
                });
            });
            
            $('.btn_print').click(function() {
                var id   = $(this).attr('uid');
                var type = $(this).attr('report-type');
                switch(type) {
                    case '1':
                        location.href = '<?php echo e(route("manage::storage::picklist_print3")); ?>' + '?id=' + id;
                        break;
                    case '101':
                        location.href = '<?php echo e(route("manage::storage::picklist_print4")); ?>' + '?id=' + id;
                        break;
                }
            });
            /*
            $( ".storageNo" ).autocomplete({
                search: function(event, ui) {
                    $(this).addClass('loading');
                },
                response(event, ui){
                    $(this).removeClass('loading');    
                },
                source:  function (request, response) {
                    jQuery.get("<?php echo e(route('manage::storage::search_storage_no_list')); ?>", {
                        no: request.term
                    }, function (data) {
                        // assuming data is a JavaScript array such as
                        // ["one@abc.de", "onf@abc.de","ong@abc.de"]
                        // and not a string
                        response(data);
                    });
                },
                select: function(e, ui){
                    var value = ui.item.value.split('  ');
                    var no    = value[0];
                    var form  = $(this).parents('form');
  
                    $.ajax({
                        type : 'GET',
                        url  : "<?php echo e(route('manage::storage::get_storage_by_no')); ?>",
                        dataType : 'json',
                        data : {
                            'no' : no
                        },
                        success: function(sendback){
                            $('[name="target_id"]', form).val(sendback.id);
                            //$('.storageName', form).val(sendback.storage_name);
                        },
                        error: function(){
                            toastr['error']('發生錯誤，請重新整理後再嘗試');
                        },
                        beforeSend: function( xhr ) {
                            //$('#loadbox').css('display', 'block');
                        }
                    }).done(function() {
                        //$('#loadbox').css('display', 'none');    
                    });
                },
            });
            
            $(".storageNo", "#form_add_storage").autocomplete( "option", "appendTo", "#form_add_storage");
            $(".storageNo", "#form_edit_storage").autocomplete( "option", "appendTo", "#form_edit_storage");
            */
            
            $('#form_add').validate({
                errorElement: 'span', //default input error message container
                errorClass: 'help-block help-block-error', // default input error message class
                focusInvalid: false, // do not focus the last invalid input
                ignore: "",  // validate all fields including form hidden input
                rules:{
                    type:{
                        required:true
                    },
                    consuming:{
                        required:true
                    },
                },
                messages:{
                    type:{
                        required:'領用類型未選擇'
                    },
                    consuming:{
                        required:'領用人未選擇'
                    },
                },

                invalidHandler: function (event, validator) { //display error alert on form submit
                    $('#form_success_alert').hide();
                    $('#form_error_alert').show();
                    $('.modal').scrollTop($('#form_error_alert'));
                },

                highlight: function (element) { // hightlight error inputs
                   $(element)
                        .closest('.form-group').addClass('has-error'); // set error class to the control group
                },

                unhighlight: function (element) { // revert the change done by hightlight
                    $(element)
                        .closest('.form-group').removeClass('has-error'); // set error class to the control group
                },

                success: function (label) {
                    label
                        .closest('.form-group').removeClass('has-error'); // set success class to the control group
                },

                submitHandler: function (form) {
                    if ($('#form_add [name="table_storage_list"]').DataTable().data().count() == 0) {
                        toastr['error']('未新增儲物');
                        return false;
                    }
                    $('#form_success_alert').show();
                    $('#form_error_alert').hide();
                    
                    var data = $("#form_add").serialize();
                    
                    //確認表單正確，Ajax送出
                    $.ajax({
                        type: 'POST',
                        dataType: 'json',
                        url: "<?php echo e(route('manage::storage::add_picklist')); ?>",
                        data: data,
                        success: function(sendback){
                            $('#modal_add_picklist').modal('hide');
                            window.location.reload();
                        },
                        error   : function ( data )
                        {
                            var errors = data.responseJSON;
                            //以下是目前測試到的可行解，但還是要實際嘗試才知道怎麼使用。
                            $.each(errors, function (key, data) {
                                console.log(key);
                                if( key == 'errors'){
                                    $.each(data, function (index, data) {
                                        $( "input[name='"+index+"']").closest('.form-group').addClass('has-error');
                                        $( "input[name='"+index+"']").closest('.form-control').after( '<span class="help-block help-block-error">'+data+'</span>' )
                                    });
                                } else if (key == 'message') {
                                    toastr['error'](data);    
                                }
                            });
                            $('#form_success_alert').hide();
                            $('#form_error_alert').show();
                            $('.modal').scrollTop($('#form_error_alert'));

                        }
                    });
                }
            });
            $('#form_edit').validate({
                errorElement: 'span', //default input error message container
                errorClass: 'help-block help-block-error', // default input error message class
                focusInvalid: false, // do not focus the last invalid input
                ignore: "",  // validate all fields including form hidden input
                rules:{
                    type:{
                        required:true
                    },
                    consuming:{
                        required:true
                    },
                },
                messages:{
                    type:{
                        required:'領用類型未選擇'
                    },
                    consuming:{
                        required:'領用人未選擇'
                    },
                },

                invalidHandler: function (event, validator) { //display error alert on form submit
                    $('#form_success_alert').hide();
                    $('#form_error_alert').show();
                    $('.modal').scrollTop($('#form_error_alert'));
                },

                highlight: function (element) { // hightlight error inputs
                   $(element)
                        .closest('.form-group').addClass('has-error'); // set error class to the control group
                },

                unhighlight: function (element) { // revert the change done by hightlight
                    $(element)
                        .closest('.form-group').removeClass('has-error'); // set error class to the control group
                },

                success: function (label) {
                    label
                        .closest('.form-group').removeClass('has-error'); // set success class to the control group
                },

                submitHandler: function (form) {
                    if ($('#form_edit [name="table_storage_list"]').DataTable().data().count() == 0) {
                        toastr['error']('未新增儲物');
                        return false;
                    }
                    $('#form_success_alert').show();
                    $('#form_error_alert').hide();
                    
                    var data = $("#form_edit").serialize();
                    
                    //確認表單正確，Ajax送出
                    $.ajax({
                        type: 'POST',
                        dataType: 'json',
                        url: "<?php echo e(route('manage::storage::update_picklist')); ?>",
                        data: data,
                        success: function(sendback){
                            $('#modal_edit_picklist').modal('hide');
                            window.location.reload();
                        },
                        error   : function ( data )
                        {
                            var errors = data.responseJSON;
                            //以下是目前測試到的可行解，但還是要實際嘗試才知道怎麼使用。
                            $.each(errors, function (key, data) {
                                console.log(key);
                                if( key == 'errors'){
                                    $.each(data, function (index, data) {
                                        $( "input[name='"+index+"']").closest('.form-group').addClass('has-error');
                                        $( "input[name='"+index+"']").closest('.form-control').after( '<span class="help-block help-block-error">'+data+'</span>' )
                                    });
                                } else if (key == 'message') {
                                    toastr['error'](data);    
                                }
                            });
                            $('#form_success_alert').hide();
                            $('#form_error_alert').show();
                            $('.modal').scrollTop($('#form_error_alert'));

                        }
                    });
                }
            });
            
            $('#form_add_storage').validate({
                errorElement: 'span', //default input error message container
                errorClass: 'help-block help-block-error', // default input error message class
                focusInvalid: false, // do not focus the last invalid input
                ignore: "",  // validate all fields including form hidden input
                rules:{
                    target_id:{
                        required:true
                    },
                    number:{
                        required:true,
                        number: true
                    },
                    issued_number:{
                        required:true,
                        number: true
                    },     
                    explain:{
                        required:true,
                        maxlength:255
                    },         
                },
                messages:{
                    target_id:{
                        required:'未選擇儲物'
                    },
                    number:{
                        required:'未輸入領用數量',
                        number: '領用數量必須是數字格式'
                    },
                    issued_number:{
                        required:'未輸入核發數量',
                        number: '核發數量必須是數字格式'
                    },     
                    explain:{
                        required:'領用說明不可為空',
                        maxlength:'領用說明不能超過255個字元'
                    },   
                },

                invalidHandler: function (event, validator) { //display error alert on form submit
                    $('#form_success_alert').hide();
                    $('#form_error_alert').show();
                    $('.modal').scrollTop($('#form_error_alert'));
                },

                highlight: function (element) { // hightlight error inputs
                   $(element)
                        .closest('.form-group').addClass('has-error'); // set error class to the control group
                },

                unhighlight: function (element) { // revert the change done by hightlight
                    $(element)
                        .closest('.form-group').removeClass('has-error'); // set error class to the control group
                },

                success: function (label) {
                    label
                        .closest('.form-group').removeClass('has-error'); // set success class to the control group
                },

                submitHandler: function (form) {
                    var table        = $('[name="table_storage_list"]', "#form_" + actionType).DataTable();
                    var targetId     = $('#form_add_storage [name="target_id"]').val();
                    var number       = $('#form_add_storage [name="number"]').val();
                    var issuedNumber = $('#form_add_storage [name="issued_number"]').val();
                    var explain      = $('#form_add_storage [name="explain"]').val();
                    var categoryId   = $('#form_add_storage [name="category_id"]').val();

                    if ($('input[name="target_id[]"][value="' + targetId + '"]', table.table().node()).length > 0) {
                        alert('此儲物單號已存在');
                        return false;    
                    }
                    
                    var rowData      = [
                        '<input type="hidden" name="item_id[]" value="0" />' +
                        '<input type="hidden" name="target_id[]" value="' + targetId + '" />' +
                        '<input type="hidden" name="number[]" value="' + number + '" />' +
                        '<input type="hidden" name="issued_number[]" value="' + issuedNumber + '" />' +
                        '<input type="hidden" name="explain[]" value="' + explain + '" />' +
                        '<input type="hidden" class="category-id" value="' + categoryId + '" />' +
                        '<span class="storageNoText">' + $('#form_add_storage [name="target_id"]').select2().find(":selected").attr("storageNo") + '</span>',
                        '<span class="categoryNameText">' + $('#form_add_storage [name="category_id"]').select2().find(":selected").attr("categoryName") + '</span>',
                        '<span class="storageNameText">' + $('#form_add_storage [name="target_id"]').select2().find(":selected").attr("storageName") + '</span>',
                        number,
                        issuedNumber,
                        explain
                    ];
                    
                    insertStorage(table, rowData);
        
                    $('#modal_add_storage').modal('hide');
                    
                    return false;
                }
            });
            
            $('#form_edit_storage').validate({
                errorElement: 'span', //default input error message container
                errorClass: 'help-block help-block-error', // default input error message class
                focusInvalid: false, // do not focus the last invalid input
                ignore: "",  // validate all fields including form hidden input
                rules:{
                    target_id:{
                        required:true
                    },
                    number:{
                        required:true,
                        number: true
                    },
                    issued_number:{
                        required:true,
                        number: true
                    },     
                    explain:{
                        required:true,
                        maxlength:255
                    },         
                },
                messages:{
                    target_id:{
                        required:'未選擇儲物'
                    },
                    number:{
                        required:'未輸入領用數量',
                        number: '領用數量必須是數字格式'
                    },
                    issued_number:{
                        required:'未輸入核發數量',
                        number: '核發數量必須是數字格式'
                    },     
                    explain:{
                        required:'領用說明不可為空',
                        maxlength:'領用說明不能超過255個字元'
                    },   
                },

                invalidHandler: function (event, validator) { //display error alert on form submit
                    $('#form_success_alert').hide();
                    $('#form_error_alert').show();
                    $('.modal').scrollTop($('#form_error_alert'));
                },

                highlight: function (element) { // hightlight error inputs
                   $(element)
                        .closest('.form-group').addClass('has-error'); // set error class to the control group
                },

                unhighlight: function (element) { // revert the change done by hightlight
                    $(element)
                        .closest('.form-group').removeClass('has-error'); // set error class to the control group
                },

                success: function (label) {
                    label
                        .closest('.form-group').removeClass('has-error'); // set success class to the control group
                },

                submitHandler: function (form) {
                    var table        = $('[name="table_storage_list"]', "#form_" + actionType).DataTable();
                    var id           = $('#form_edit_storage [name="id"]').val();
                    var targetId     = $('#form_edit_storage [name="target_id"]').val();
                    var number       = $('#form_edit_storage [name="number"]').val();
                    var issuedNumber = $('#form_edit_storage [name="issued_number"]').val();
                    var explain      = $('#form_edit_storage [name="explain"]').val();
                    var categoryId   = $('#form_edit_storage [name="category_id"]').val();
                    
                    var rowData      = [
                        '<input type="hidden" name="item_id[]" value="' + id + '" />' +
                        '<input type="hidden" name="target_id[]" value="' + targetId + '" />' +
                        '<input type="hidden" name="number[]" value="' + number + '" />' +
                        '<input type="hidden" name="issued_number[]" value="' + issuedNumber + '" />' +
                        '<input type="hidden" name="explain[]" value="' + explain + '" />' +
                        '<input type="hidden" class="category-id" value="' + categoryId + '" />' +
                        '<span class="storageNoText">' + $('#form_edit_storage [name="target_id"]').select2().find(":selected").attr("storageNo") + '</span>',
                        '<span class="categoryNameText">' + $('#form_edit_storage [name="category_id"]').select2().find(":selected").attr("categoryName") + '</span>',
                        '<span class="storageNameText">' + $('#form_edit_storage [name="target_id"]').select2().find(":selected").attr("storageName") + '</span>',
                        number,
                        issuedNumber,
                        explain
                    ];
                    
                    var i = 0;
                    
                    for (var key in rowData) {
                        var nth = parseInt(key) + 1;
                        $('td:nth-child(' + nth + ')', actionRow).html(rowData[key]);        
                    }

                    $('#modal_edit_storage').modal('hide');
                    
                    return false;
                }
            });
        };
        
        var insertStorage = function(dataTable, rowData) {
            var action = "<a href='#' class='edit'>修改</a>&nbsp;&nbsp;<a href='#' class='delete'>刪除</a>";

            rowData.push(action);
            
            var rowNode = dataTable.row.add(rowData).draw(false).node();

            $('a.edit', rowNode).click(function() {
                actionRow = rowNode;

                $('input[name="id"]', '#form_edit_storage').val($('input[name="item_id[]"]', rowNode).val());
                $('input[name="number"]', '#form_edit_storage').val($('input[name="number[]"]', rowNode).val());
                //$('[name="target_id"]', '#form_edit_storage').select2('val', $('input[name="target_id[]"]', rowNode).val());
                $('input[name="issued_number"]', '#form_edit_storage').val($('input[name="issued_number[]"]', rowNode).val());
                $('input[name="explain"]', '#form_edit_storage').val($('input[name="explain[]"]', rowNode).val());
                $('select[name="category_id"]', '#form_edit_storage').select2('val', $('input.category-id', rowNode).val());
                addStorageToSelect($('input.category-id', rowNode).val(), $('[name="target_id"]', '#form_edit_storage'), $('input[name="target_id[]"]', rowNode).val());
                
                
                //$('input.storageNo', '#form_edit_storage').val($('.storageNoText', rowNode).text());
                //$('input.storageName', '#form_edit_storage').val($('.storageNameText', rowNode).text());
                
                $('#modal_edit_storage').modal('show');
            });
            
            $('a.delete', rowNode).click(function() {
                dataTable.row(rowNode).remove().draw(false);
            });
        }
        
        var deleteRecords = function(id) {
            bootbox.confirm("您確定要刪除指定的領用單?", function(result) {
                if(result == true){
                    $.ajax({
                        type : 'DELETE',
                        dataType : 'json',
                        url  : "<?php echo e(route('manage::storage::delete_picklist')); ?>",
                        data : {
                            _token : $('#_token').val(),
                            id     : id
                        },
                        success : function(sendback){
                            window.location.reload();
                        },
                        error : function(sendback){
                            toastr['error']('刪除失敗，請重新整理後再試');
                        }
                    })
                }
            }); 
        }
        
        var callDataTable = function () {
            var table = $('#table_list');

            table.on( 'draw.dt', function () {
                initAction();
            });
            
            var oTable = table.dataTable({
                // Internationalisation. For more info refer to http://datatables.net/manual/i18n
                "language": {
                    "aria": {
                        "sortAscending": ": activate to sort column ascending",
                        "sortDescending": ": activate to sort column descending"
                    },
                    "emptyTable": "此列表目前沒有資料",
                    "info": "顯示第 _START_ 到第 _END_ 則 共有 _TOTAL_ 則",
                    "infoEmpty": "沒有找到符合的資料",
                    "infoFiltered": "(從 _MAX_ 筆資料中過濾)",
                    "lengthMenu": "顯示 _MENU_ 則",
                    "search": "快速篩選:",
                    "zeroRecords": "目前沒有任何資料",
                    "paginate": {
                        "previous":"上一頁",
                        "next": "下一頁",
                        "last": "最後",
                        "first": "最前"
                    }
                },
                "searching": false,
                "lengthMenu": [
                    [10, 20, 50, -1],
                    [10, 20, 50, "All"] // change per page values here
                ],
                // set the initial value
                "pageLength": 10,
                "aoColumns":[
                    {"sTitle":"<input type=\"checkbox\" class=\"group-checkable\" data-set=\"#table_list .checkboxes\"/>", "sClass" : "table-checkbox"},
                    {"sTitle":"領用單號"},
                    {"sTitle":"類型"},
                    {"sTitle":"部門"},
                    {"sTitle":"領用人"},
                    {"sTitle":"領用時間"},
                    {"sTitle":"領用原因"},
                    {"sTitle":"動作"},
                ],
                "aaData":[<?php echo $dataArray; ?>]
            });

            $('.group-checkable', table).change(function () {
                var set     = jQuery(this).attr("data-set");
                var checked = jQuery(this).is(":checked");
                jQuery(set).each(function () {
                    if (checked) {
                        $('#btn_mass_delete').show();
                        $(this).attr("checked", true);
                    } else {
                        $('#btn_mass_delete').hide();
                        $(this).attr("checked", false);
                    }
                });
                jQuery.uniform.update(set);
            });

            $('.checkboxes', table).change(function(){
                var checkedNum = $('.checkboxes:checked').length;
                if(checkedNum > 0){
                    $('#btn_mass_delete').show();
                }else{
                    $('#btn_mass_delete').hide();
                }
            });
        }
        
        var callStorageListDataTable = function () {
            var table = $('[name="table_storage_list"]');

            var oTable = table.dataTable({
                // Internationalisation. For more info refer to http://datatables.net/manual/i18n
                "language": {
                    "aria": {
                        "sortAscending": ": activate to sort column ascending",
                        "sortDescending": ": activate to sort column descending"
                    },
                    "emptyTable": "此列表目前沒有資料",
                    "info": "顯示第 _START_ 到第 _END_ 則 共有 _TOTAL_ 則",
                    "infoEmpty": "沒有找到符合的資料",
                    "infoFiltered": "(從 _MAX_ 筆資料中過濾)",
                    "lengthMenu": "顯示 _MENU_ 則",
                    "search": "快速篩選:",
                    "zeroRecords": "目前沒有任何資料",
                    "paginate": {
                        "previous":"上一頁",
                        "next": "下一頁",
                        "last": "最後",
                        "first": "最前"
                    }
                },
                "lengthMenu": [
                    [10, 20, 50, -1],
                    [10, 20, 50, "All"] // change per page values here
                ],
                // set the initial value
                "pageLength": 10,
                "aoColumns":[
                    {"sTitle":"儲物編號"},
                    {"sTitle":"儲物類別"},
                    {"sTitle":"儲物名稱"},
                    {"sTitle":"領用數量"},
                    {"sTitle":"核發數量"},
                    {"sTitle":"用途說明"},
                    {"sTitle":"動作"},
                ],
                "aaData":[]
            });
        }
    </script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layout.manage', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>