class ManufactureProductDetailsController < CommLogistics::Base::Controller::Detail
  def initialize
    @mcls = ManufactureProductDetail
    @pmcls = ManufactureDetail
  end
  
  def child
    pre_ars = ManufactureDetail.find(:all, :joins => :manufacture, 
    :conditions => ['`manufacture_details`.product_id=? AND `manufacture_details`.lot_number=? AND `manufacture_details`.serial_number=? AND `manufacture_details`.ubd=? AND `manufactures`.invalid_flag_code=?', params[:product_id], params[:lot_number], params[:serial_number], params[:ubd], FLAG_OFF])
    
    if pre_ars.length > 0 #既に登録済みのものがあったら、編集不可で返却
      detail_id = pre_ars[0].id
      mpd = ManufactureProductDetail.find(:all, :conditions => ['manufacture_detail_id = ?', detail_id], :select=>"product_set_id, product_id, lot_number, serial_number, ubd, quantity").only_hashfy
      editable = 0
    else
      mpd = ManufactureProduct.find(:all, :conditions => ['parent_product_id=?', params[:product_id]], :select => "product_set_id, product_id, quantity, '' AS lot_number, '' AS serial_number, NULL AS ubd").only_hashfy
      editable = 1
    end
    set_products_prices(mpd)
    
    respond_to do |format|
      format.ext_json do
        render :json => {'results' => mpd.length, @table_name  => mpd, 'editable' => params[:edit_mpd]==STR_TRUE ? 2 : editable}.to_json
      end
    end
  end
  
  def set_products_prices(mpd)
      mpd.each do |mpd_ar|
        price = ProductsPrice.last_one(mpd_ar['product_id'], params[:target_date], true)#当日を含める
        mpd_ar['price'] = price.price unless price.blank?
      end
  end
  
end
