// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file. JavaScript code in this file should be added after the last require_* statement.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require tether
//= require bootstrap/js/popper.min
//= require bootstrap/js/bootstrap-material-design.min
//= require jquery_ujs
//= require turbolinks
//= require cable
//= require jquery-slimscroll/jquery.slimscroll.js
//= require node-waves/waves.js
//= require sweetalert/sweetalert.min.js
//= require BSBMaterial/turbolink_admin.js
//= require BSBMaterial/demo.js
//= require custom.js

$(document).on('turbolinks:load', function() {
	$(".nav-completed").on("click", function(){
       $("#completed").removeClass('hide')
       $(".oqs_append").addClass('hide')
    });

    $(".oqs_click").on("click", function(){
       $(".oqs_click").removeClass('oqs_active');
       $(".queue_station").removeClass('queue_station_box');
       $("#completed").addClass('hide');
       $(".oqs_append").removeClass('hide');
       $(this).addClass('oqs_active');
       $(".queue_station").addClass('queue_station_box');
       var oqs_id = $(this).find(".oqs-id").text();
       var url    = 'oqs/get_items/'+oqs_id;
      
       show_details(url);

    }); //End Click
 
	function show_details(url){  
	     var oqs_append = $('.oqs_append');
	     oqs_append.empty();
	     var filter = $('.filter').text();
	    //Start Ajax
	    $.ajax({      
	      type: "GET",         
	      url: url, 
	      data: {'filter':filter},
	      dataType: "json",
	      success: function(data) {
	          for(var field in data) {
	            var price = parseFloat(data[field].price).toFixed(2);

	            if (data[field]["options"] == "[]" || data[field]["options"] == "") {
	             var options = "";
	            }else{
	             var options = data[field]["options"];
	            }

	            var date = new Date(data[field]["created_at"]); 
	            var show_date = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear() + ' ' +  date.getHours()+ ':' +  date.getMinutes();
	             
	            row ='<div class="card queue_station animated " data-order-no="'+data[field]["order_id"]+'">'
	                    +'<div class="card-block">'
	                         +'<div class="row">'
	                          +'<span class="col-md-4 order-zone-type font-13">'+data[field]["table_type"]+'-'+ data[field]["zone"] +'</span>'
	                           +'<span class="order-zone hidden font-14">'+ data[field]["zone"] +'</span>'
	                          +'<span class="col-md-8"><small class="float-right font-13">'+data[field]["order_id"]+'</small></span>'
	                         +'</div>'

	                         +'<p class="m-b--10">'
	                          +'<span class="order-item font-15">'+ data[field]["item_name"] +'- </span>'
	                          +'<span class="order-qty"> [x'+ data[field]["qty"] +'] </span>'
	                         +'</p>'

	                        +'<br/><p class="card-text item-options">'+ options +'</p>'

	                        +'<span class="card-text">'
	                          +'<span class="text-muted">Order at - '
	                            +'<span class="order-at">'+ show_date +'</span> <br>'

	                            +'Order By - <span class="order-by">'+ data[field]["item_order_by"] +'</span> '
	                            +'</span> '
	                        +'</span>'

	                        +'<p class="hidden order-customer">'+ data[field]["customer_name"] +'</p> '
	                        +'<p class="hidden assigned-order-item">'+ data[field]["assigned_order_item_id"] +'</p> '
	                    +'</div>'

	                    +'<div class="card-footer">'
	                        +'<button id="edit_'+ data[field]["assigned_order_item_id"] + '" data-no-turbolink="true" class="btn btn-warning order-item order-item-edit">EDIT</button>'
	                        +' <button id="assigned_queue_' + data[field]["assigned_order_item_id"] +'" class="btn btn-primary order-item order-complete">COMPLETE</button>'
	                    +'</div>'

	                +'</div>'; 
	                   
	              $('.oqs_append').append(row);
	          }	          
	       }
	    });
	    //end Ajax 
	 }

	$(document).on('click', '.queue_station', function(event){ 
		var orderNo = $(this).attr('data-order-no');		
	    var orderZone=$(this).children().children().children('.order-zone').text().trim();
	    var orderZoneType=$(this).children().children().children('.order-zone-type').text().trim();
	    // var orderItem=$(this).children().children().children('.order-item').text();
	    var assigned_item_id = $(this).children().find(".assigned-order-item").text();
	    var orderQty = $(this).children().children().children('.order-qty').text();   
	    var orderBy = $(this).children().children().children().children('.order-by').text();
	    var orderAt = $(this).children().children().children().children('.order-at').text();
	    var orderCustomer = $(this).children().children('.order-customer').text();
	    var order_status = $(this).children().children('.order-status').text();
	    $('.cus_name').removeClass('hidden');
	    $('#order-title').text("ORDER DETAILS - " + orderZoneType);
	    $('#order-by').text(orderBy);
	    $('#order-at').text(orderAt);
	    $('#order-customer').text(orderCustomer);
	    $('#order-from').text(orderZone);
	    // clear order items
		$("#oqs-order-details-table").children("tbody").empty();
	    // Call get_order_items() for Order Items by dining
	    $.ajax({
	    	type: 'GET',
	    	url: '/oqs/' + orderNo,
	    	data: { 'status' : order_status },
	    	success: function(res){	    	

	    		for (i = 0; i < res.length; i++) {	    			
	    			var data = JSON.stringify(res[i]);	
        			var parse_data = JSON.parse(data); 
        			
	    			var order_item_row = "<tr>" +
							                "<td class='order-items' style='width:80%; text-align:left'>" + parse_data.item_name + "</td>" +
							                "<td class='order-qty' style='width:20%; text-align:right'>" + parse_data.qty + "</td>" +
              						 	 "</tr>";
              		$("#oqs-order-details-table").children("tbody").append(order_item_row);
	    		}	    		
	    	}
	    })

	    // $('#order-items').text(orderItem);
	    // $('#order-qty').text(orderQty);

	    $('.queue_station').removeClass('selected-item');
	    $(this).addClass('selected-item');
	});

	$(document).on('click', '.order-item-edit', function(event){ 
		var _self = $(this);	// To know in ajax return
	    var assigned_item_id=$(this).attr('id').substr(5);
	    window.location.href = '/oqs/'+ assigned_item_id  + "/edit"
	});

  	// complete for queue item
 
  	$(document).on('click', '.order-complete', function(event){ 
  		//e.preventDefault();
  		var _self = $(this);	// To know in ajax return
	    var assigned_item_id=$(this).attr('id').substr(15);
	    var params = { 'id':assigned_item_id };
	    
	    // Call update_delivery_status() for changed delivery and move to delivery   
	    $.ajax({
	      type: 'POST',
	      url: '/oqs/update_delivery',
	      data: params,
	      dataType: 'json',
	      success: function(data){
	      	for (i = 0; i < data.length; i++) {
	      		var queue_station = $('#assigned_queue_' + data[i]).parent().parent(".queue_station");
  			    var station = queue_station.parent().parent().attr('id');

		        // Remove a queue card from current station
		      	queue_station.remove();

		      	// Remove a queue card from current station
		      	queue_station.children('.card-footer').remove();

		      	// Add removed queue card from station to completed
		      	$("#completed").children('.card-columns').append(queue_station);

		      	// update queue item count in each station
		      	var station_count=parseInt($("#"+station+"_count").text()) - 1;
	      		$("#"+station+"_count").text(station_count);
	      	}

	      	// update queue item count in completed station
	      	$("#completed_count").text(parseInt($("#completed_count").text()) + data.length);

	      	swal({
		          title: "Information !",
		          text: 'Order has been successfully created',
		          confirmButtonColor: "green",
		          confirmButtonText: "Yes!",
		          closeOnConfirm: false,
		        }, function () {
		          if(table_type == "Table"){
		                  window.location.href = "/origami/table/" + table_id
		                }
		                else {
		                  window.location.href = "/origami/room/" + table_id
		                }    
		        });
	      	// Page reload
	    	location.reload();
	      }
	    });
  	});

  	// Print Order Item
  	$(document).on('click', '#print_order_item', function(event){ 
  		var assigned_item_id = $('.selected-item').children('.card-block').children('.assigned-order-item').text();
  		var options = $('.selected-item').children('.card-block').find('.item-options').text();
  		var params = { 'options':options };

  		$.ajax({
			type: 'POST',
	     	url: '/oqs/print/print/'+assigned_item_id,
	     	data: params,
	     	success: function(data){	}
  		});
  	});

  	// Print Order Summary
  	// $('#print_order_summary').on('click',function(){
  	$(document).on('click', '#print_order_summary', function(event){
  		var orderNo = $('.selected-item').attr('data-order-no');
  		var table_name=$('.selected-item').children().children().children('.order-zone').text().trim();
  		var assigned_item_id=$('.selected-item').children('.card-block').children('.assigned-order-item').text();
  		var params = { 'table_name':table_name };
  		$.ajax({
			type: 'GET',
	     	url: '/oqs/print/print_order_summary/'+assigned_item_id,
	     	data: params,
	     	success: function(data){	}
  		});
  	});
});
