class ShippingSheetsListsController < CommLogistics::Base::Controller::ListController
  #
  # 出荷伝票枚数
  # 
  def get_record_list
    @control_keys = 'shipping_sheets_lists'
    
    ss = ShippingSheetsSearch.new
    #ss.date_table = 'c'
    ss.table_alias = {'shipping_details' => 't',
                      'shippings' => 't'}
    join_mcls = []
    #join_mcls = [{:tab => 'shippings',
    #              :cols => Shipping.column_names}]
    ars = ss.search(FLAG_ON, ShippingDetail, join_mcls, params)
    return ars
  end
  
  class ShippingSheetsSearch < Comm::Tool::SqlSearch
    def get_columns_and_tables(tab, join_lists, params, str_vals)
      str_cols = ' * '
      #TODO
      sheet_count = CommLogistics::Const::Code::SHIPPING_RECORD_COUNT_PER_SHEET[MCODE_SHIPPING_SHEET_STANDARD]
      str_tab = " FROM (SELECT
                   c.shipment_customer_id,
                   SUM(c.tmp_cnt) AS total_cnt
                  FROM ( SELECT b.target_date,
                                a.shipping_id,
                                b.warehouse_id,
                                IF(b.shipment_customer_id is NULL, b.customer_id, b.shipment_customer_id) AS shipment_customer_id,
                                ceil(count(*)/#{sheet_count}) AS tmp_cnt 
                         FROM shipping_details AS a 
                         LEFT JOIN shippings AS b ON a.shipping_id=b.id 
                         WHERE b.shipping_state_code=#{MCODE_SHIPPING_STATE_COMP} && b.print_sheet_date is NOT NULL AND b.invalid_flag_code=#{MCODE_FLAG_OFF} AND target_date BETWEEN \'#{params[:start_target_date]}\' AND \'#{params[:end_target_date]}\'
                         GROUP BY b.id) AS c GROUP BY c.shipment_customer_id
                   ) AS t "
      return str_cols, str_tab, str_vals
    end
    #空実装
    def set_target_date_to_where(tab, params, str_where)
    end
  end
end