class Origami::RoomsController < BaseOrigamiController
  def index

    @tables = Table.unscope(:order).all.active.order('status desc')
    @rooms = Room.unscope(:order).all.active.order('status desc')
    @complete = Sale.completed_sale("cashier")
    @orders = Order.includes("sale_orders").where("DATE_FORMAT(CONVERT_TZ(date, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",Time.current.strftime('%Y-%m-%d')).order('date desc')
    @shift = ShiftSale.current_open_shift(current_user)
    @webview = false
    if check_mobile
      @webview = true
    end
  end

  def show
    @webview = false
    if check_mobile
      @webview = true
    end


    @tables = Table.unscope(:order).all.active.order('status desc')
    @rooms = Room.unscope(:order).all.active.order('status desc')
    @complete = Sale.completed_sale("cashier")
    @orders = Order.includes("sale_orders").where("DATE_FORMAT(CONVERT_TZ(date, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",Time.current.strftime('%Y-%m-%d')).order('date desc')
    @customers = Customer.pluck("customer_id, name")
    @room = DiningFacility.find(params[:room_id])
    @shift = ShiftSale.current_open_shift(current_user)

    @status_order = ""
    @status_sale = ""
    @sale_array = Array.new

    @membership = MembershipSetting::MembershipSetting
    @payment_methods = PaymentMethodSetting.all

    @dining_room = @room.bookings.active.where("DATE_FORMAT(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = '#{Time.current.strftime('%Y-%m-%d')}' OR DATE_FORMAT(CONVERT_TZ(created_at, '+00:00', '<%= Time.zone.formatted_offset %>'), '%Y-%m-%d') = '#{Date.current.prev_day}' ")
    @order_items = Array.new
    @dining_room.each do |booking|
         if booking.sale_id.nil? && booking.booking_status != 'moved'
           @order_items = Array.new
           # @assigned_order_items = Array.new
          if booking.booking_orders.empty?
            @booking = booking
          else
            booking.booking_orders.each do |booking_order|
                order = Order.find(booking_order.order_id)
                if (order.status == "new")
                  @obj_order = order
                  @customer = order.customer
                  @date = order.created_at
                  @booking = booking
                  order.order_items.each do |item|
                    @order_items.push(item)
                    # assigned_order_items = AssignedOrderItem.find_by_item_code_and_instance_code_and_order_id(item.item_code,item.item_instance_code,item.order_id)
                    # if !assigned_order_items.nil?
                    #   @assigned_order_items.push({item.order_items_id => assigned_order_items.assigned_order_item_id})
                    # end
                  end
                  @account_arr = Array.new
                  if @customer.tax_profiles
                    accounts = @customer.tax_profiles
                    @account_arr =[]
                    accounts.each do |acc|
                      account = TaxProfile.find_by_id(acc)
                      if !account.nil?
                        @account_arr.push(account)
                      end
                    end
                  end
                end
            end
          end
           @status_order = 'order'
         else
          sale = Sale.find(booking.sale_id)
            if sale.sale_status != "completed" && sale.sale_status != 'void' && sale.sale_status != 'spoile' && sale.sale_status != 'waste'
              @sale_array.push(sale)
              if @status_order == 'order'
               @status_order = 'sale'
              end
              @booking = booking
              @date = sale.created_at
              @status_sale = 'sale'
              @obj_sale = sale
              @customer = sale.customer
              accounts = @customer.tax_profiles
              @account_arr =[]
              accounts.each do |acc|
                account = TaxProfile.find_by_id(acc)
                if !account.nil?
                  @account_arr.push(account)
                end
              end

              @sale_taxes = []
              sale_taxes = SaleTax.where("sale_id = ?", sale.sale_id)
              if !sale_taxes.empty?
                sale_taxes.each do |sale_tax|
                  @sale_taxes.push(sale_tax)
                end
              end
           end
         end
     end
    # @room.bookings.each do |booking|
    #      if booking.sale_id.nil?
    #        @order_items = Array.new

    #        booking.booking_orders.each do |booking_order|
    #           order = Order.find(booking_order.order_id)
    #           @obj = order
    #           @customer = order.customer
    #           order.order_items.each do |item|
    #             @order_items.push(item)
    #           end
    #        end
    #        @status = 'order'
    #      else

    #       sale = Sale.find(booking.sale_id)
    #        if sale.sale_status != "completed"
    #         @sale_array.push(sale)
    #          @status = 'sale'
    #          @obj = sale
    #          @customer = sale.customer
    #        end
    #      end
    # end

    #for bank integration
    @checkout_time = Lookup.collection_of('checkout_time')
    @checkout_alert_time = Lookup.collection_of('checkout_alert_time')

    accounts = TaxProfile.where("group_type = ?","cashier").order("order_by ASC")
    @tax_arr =[]
    accounts.each do |acc|
      @tax_arr.push(acc.name)
    end

    lookup_spit_bill = Lookup.collection_of('split_bill')
    @split_bill = 0
    if !lookup_spit_bill[0].nil?
      @split_bill = lookup_spit_bill[0][1]
    end

    #for edit order open & close
    @edit_order_origami = true
    lookup_edit_order = Lookup.collection_of('edit_order')
    if !lookup_edit_order.empty?
      lookup_edit_order.each do |edit_order|
        if edit_order[0].downcase == "editorderorigami"
          if edit_order[1] == '0' && (current_login_employee.role == 'cashier' || current_login_employee.role == 'waiter')
            @edit_order_origami = false
          end
        end
      end
    end

    #for changable on/off
    @changable_tax = true
    lookup_changable_tax = Lookup.collection_of('changable_tax')
    if !lookup_changable_tax.empty?
      lookup_changable_tax.each do |changable_tax|
        if changable_tax[0].downcase == "change"
          if changable_tax[1] == '0'
            @changable_tax = false
          end
        end
      end
    end
  end

end
