# encoding: utf-8

wb = xlsx_package.workbook
wb.add_worksheet(name: "Member") do |sheet|

  row = [ "user_id", "password" ]
  row2 = ["#{t("users.user_id")}(#{t("users.user_id_note")})", "#{t("users.new_password")}(#{t("users.new_password_note")})"]
  row3 = ["text", "text"]

  @site_in_use_locales.each_with_index do |locale, i|
    row << "first_name(#{locale})"
    row2 << "#{t("users.first_name")}(#{I18n.t(locale)})"
    row3 << "text"
  end

  @site_in_use_locales.each_with_index do |locale, i|
    row << "last_name(#{locale})"
    row2 << "#{t("users.last_name")}(#{I18n.t(locale)})"
    row3 << "text"
  end
     
  row << "email"
  row2 << "#{t('users.email')}"
  row3 << "text"
    
  row << "sid" 
  row2 << "#{t('users.sid')}" 
  row3 << "text"
     
  row << "office_tel" 
  row2 << "#{t('users.office_tel')}"
  row3 << "text"
    
  row << "sex" 
  row2 << "#{t('users.sex')}(male, female, unknown)"
  row3 << "radio" 
    
  row << "birthday" 
  row2 << "#{t('users.birthday')}(yyyy/MM/dd)" 
  row3 << "date"

  @site_in_use_locales.each_with_index do |locale, i|
    row << "address(#{locale})"
    row2 << "#{t("users.address")}(#{I18n.t(locale)})"
    row3 << "text_area"
  end

  @site_in_use_locales.each_with_index do |locale, i|
    row << "autobiography(#{locale})"
    row2 << "#{t("users.autobiography")}(#{I18n.t(locale)})"
    row3 << "text_area"
  end

  @field_type = {'text_field' => 'typeA', 'select' => 'typeB', 'date' => 'typeC', 'text_area' => 'typeD', 'radio_button' => 'typeE', 'checkbox' => 'typeE', 'address' => ''}

  @date_type = {'format1' => 'yyyy/MM/dd hh:mm', 'format2' => 'yyyy/MM/dd', 'format3' => 'yyyy/MM', 'format4' => 'yyyy'}


  @infos = MemberInfo.all
  @infos.each do |info|

    info.member_profile_fields.each do |member_profile_field|
      if member_profile_field.markup == 'text_field' or member_profile_field.markup == 'text_area'
        if member_profile_field[@field_type[member_profile_field.markup]]['cross_lang'] == 'true'
          row << "#{info.key}-#{member_profile_field.key}"
          row2 << "#{info.title}-#{member_profile_field.title}"
          row3 << member_profile_field.markup
        else
          @site_in_use_locales.each_with_index do |locale, i|
            row << "#{info.key}-#{member_profile_field.key}(#{locale})"
            row2 << "#{info.title}-#{member_profile_field.title}(#{I18n.t(locale)})"
            row3 << member_profile_field.markup
          end
        end
      elsif member_profile_field.markup == 'date'
        row << "#{info.key}-#{member_profile_field.key}"
        row2 << "#{info.title}-#{member_profile_field.title}(#{@date_type[member_profile_field['typeC']['format']]})"
        row3 << member_profile_field.markup
      elsif member_profile_field.markup == 'select' or member_profile_field.markup == 'radio_button' or member_profile_field.markup == 'checkbox'
        @option_list = member_profile_field[@field_type[member_profile_field.markup]]['option_list']
        if !@option_list.blank?
          @opdata = @option_list.collect{|p| "#{p[0]}=>#{p[1][I18n.locale.to_s]}"}
        end
        row << "#{info.key}-#{member_profile_field.key}"
        row2 << "#{info.title}-#{member_profile_field.title}(#{@opdata.join(',')})"
      elsif member_profile_field.markup == 'address'
        @site_in_use_locales.each_with_index do |locale, i|
          row << "#{info.key}-#{member_profile_field.key}(#{locale})"
          row2 << "#{info.title}-#{member_profile_field.title}(#{I18n.t(locale)})"
          row3 << member_profile_field.markup
        end
      else
        row << "#{info.key}-#{member_profile_field.key}"
        row2 << "#{info.title}-#{member_profile_field.title}"
          row3 << member_profile_field.markup
      end
    end

  end

  @roles = Role.any_in(:key => @member_roles)
  @roles.each do |role|

    role_statuses = RoleStatus.where(role_id: role.id, :disable=> false).asc(:_id)
    if !role_statuses.blank?
      @statusdata = role_statuses.collect{|a,i| "#{a.key}=>#{a.title}"}

      row << "#{role.key}-status"
      row2 << "#{role.title}-#{t(:status)}(#{@statusdata.join(',')})"
      row3 << "checkbox"
    end

    role.attribute_fields.asc(:created_at).each do |attribute_field|
    
      if attribute_field.markup == 'text_field' or attribute_field.markup == 'text_area'
        if attribute_field[@field_type[attribute_field.markup]]['cross_lang'] == 'true'
          row << "#{role.key}-#{attribute_field.key}"
          row2 << "#{role.title}-#{attribute_field.title}"
          row3 << attribute_field.markup
        else
          @site_in_use_locales.each_with_index do |locale, i|
            row << "#{role.key}-#{attribute_field.key}(#{locale})"
            row2 << "#{role.title}-#{attribute_field.title}(#{I18n.t(locale)})"
            row3 << attribute_field.markup
          end
        end
      elsif attribute_field.markup == 'date'
        row << "#{role.key}-#{attribute_field.key}"
        row2 << "#{role.title}-#{attribute_field.title}(#{@date_type[attribute_field['typeC']['format']]})"
        row3 << attribute_field.markup
      elsif attribute_field.markup == 'select' or attribute_field.markup == 'radio_button' or attribute_field.markup == 'checkbox'
        @option_list = attribute_field[@field_type[attribute_field.markup]]['option_list']
        if !@option_list.blank?
          @opdata = @option_list.collect{|p| "#{p[0]}=>#{p[1][I18n.locale.to_s]}"}
        end
        row << "#{role.key}-#{attribute_field.key}"
        row2 << "#{role.title}-#{attribute_field.title}(#{@opdata.join(',')})"
        row3 << attribute_field.markup
      elsif attribute_field.markup == 'address'
        @site_in_use_locales.each_with_index do |locale, i|
          row << "#{role.key}-#{attribute_field.key}(#{locale})"
          row2 << "#{role.title}-#{attribute_field.title}(#{I18n.t(locale)})"
          row3 << attribute_field.markup
        end
      else
        row << "#{role.key}-#{attribute_field.key}"
        row2 << "#{role.title}-#{attribute_field.title}"
        row3 << attribute_field.markup
      end

    end

  end

  sheet.add_row row
  sheet.add_row row3
  sheet.add_row row2

end