class SalesWarehousesListsController < CommLogistics::Base::Controller::ListController
  def get_record_list
    @control_keys = 'sales_warehouses_lists'
    
    ss = SalesWarehousesSearch.new
    ss.table_alias = {'sale_details' => 'a',
                      'sales' => 'a',
                      'sales_users' => 'a'}
    ars = ss.search(FLAG_ON, SaleDetail, [], params)
    return ars
  end
  
  class SalesWarehousesSearch < Comm::Tool::SqlSearch
    include CommLogistics::Modules::PartialSql
    def get_columns_and_tables(tab, join_lists, params, str_vals)
      detail_price, detail_quantity = make_sales_price_and_quantity_cols
      str_cols = ' * '
      str_tab =  " FROM ( SELECT s.target_date,
                                 s.warehouse_id,
                                 s.customer_id,
                                 s.charge_customer_group_id,
                                 s.user_position_id,
                                 s.sales_area_id,
                                 s.supplier_id,
                                 s.global_area_id,
                                 sd.*,
                                 s.sale_type_code,
                                 s.state_code,
                                 #{detail_price},
                                 #{detail_quantity}
                           FROM sale_details AS sd LEFT JOIN sales AS s ON sd.sale_id=s.id 
                           WHERE s.target_date between \'#{params[:start_target_date]}\' AND \'#{params[:end_target_date]}\'
                                 #{params[:trans_condition].blank? ? '' : params[:trans_condition]}
                                 AND s.state_code=#{MCODE_STATUS2_COMP}
                                 AND s.invalid_flag_code=#{MCODE_FLAG_OFF}
                           GROUP BY s.target_date, s.warehouse_id, s.customer_id, s.supplier_id, sd.product_id, s.state_code, sd.price ) AS a"
      return str_cols, str_tab, str_vals
    end
    def set_target_date_to_where(tab, params, str_where)
    end
  end
end
