.qi_header
  .right
    -if @price_document.price_document_type_id == 1
      =link_to ic("bar-chart")+" analyse des réponses", analyse_reponses_admin_price_document_path(@price_document), class: "btn btn-primary"

    -if @price_document.price_document_type_id == 6 and !@price_document.stock_ok
      = link_to i(:pencil), edit_admin_price_document_path(:id => @price_document.id, :public_edit => true) if !@price_document.stock_ok


    = diag do
      = link_to i(:pencil), edit_admin_price_document_path(@price_document)
      = link_to i(:eye), admin_price_document_path(@price_document.id), :remote => false, :target => "_blank"

    = link_to i(:download), print_admin_price_document_path(@price_document.token), :remote => false, :target => "_blank" if !PriceLineBlock::PURCHASE_BLOCKS.include?(@price_document.block_type)

  %h1
    Documents

    %span
      =@price_document.price_document_type.label

    %span
      ="##{@price_document.id}"
    %span
      =@price_document.d_number


.qi_row

  %table.table.table-striped
    -if @price_document.label == "Réponse fournisseur"

      %tr
        %td
          Nom fournisseur saisi
        %td
          =@price_document.public_fournisseur_name

    -if @price_document.p_fournisseur
      %tr
        %td
          Fournisseur
        %td
          =link_to @price_document.p_fournisseur.name, [:admin, @price_document.p_fournisseur] if @price_document.p_fournisseur

    -if @price_document.d_number?
      %tr
        %td Numéro
        %td=@price_document.d_number
    %tr
      %td Date
      %td=l @price_document.date, :format => :date

    -if @price_document.label == "Demande prix"
      %tr
        %td
          Avancement (%)
        %td
          =@price_document.avancement.to_s + " %"
      %tr
        %td
          Désignation
        %td
          =@price_document.list_designaton

      %tr
        %td Date de fin de consultation :
        %td
          =l @price_document.end_date if @price_document.end_date

      %tr
        %td Commentaire
        %td
          =simple_format @price_document.dp_comment

      %tr
        %td
          Envoyé à
        %td
          =simple_format @price_document.acheteur_text

      %tr
        %td
          Lien pour consultation
        %td
          =link_to consult_admin_price_document_url(:id => @price_document.f_token, :lang => nil), consult_admin_price_document_url(:id => @price_document.f_token, :lang => nil)



.qi_row
  .qi_pannel.qi_plain.padding
    -if false
      =debug @price_document



    -if true

      -price_line_block = @price_document.price_line_block


      =#render price_line_block

    -else
      -params[:search][:per_page] = params[:search][:per_page] || 5000
      -per_page = params[:search][:per_page]
      -page = (params[:page] and params[:page] != "") ? params[:page] : 1

      -@price_lines = @price_document.price_line_block.price_lines




      -@price_lines = sort_by_sorting(@price_lines, "created_at DESC")
      -@price_lines = @price_lines.page(page).per(per_page)
      %br



      .clear
      =render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @price_lines, :key => "reponses-prix-show"}



    -if @price_document.label != "Demande prix" and @price_document.label != "Réponse fournisseur"

      -if current_admin and current_admin.id == 1
        -enable_stat = false
        -if enable_stat
          %table.table
            %tr
              %th Archivé ?
              %td
                = diag do
                  -if @price_document.archived
                    Oui
                    =link_to "Désarchiver", unarchive_now_admin_price_document_path(@price_document.id)
                  -else
                    =link_to "Archiver", archive_now_admin_price_document_path(@price_document.id)
            %tr
              %th Id bloc
              %td=price_line_block.id


            %tr
              %th Cout block
              %td=price_line_block.cc_cost_ht


          -params[:search][:per_page] = params[:search][:per_page] || 5000
          -per_page = params[:search][:per_page]
          -page = (params[:page] and params[:page] != "") ? params[:page] : 1

          -@stat_lines = @price_document.stat_lines.order("date DESC, created_at DESC")
          -@stat_lines = sort_by_sorting(@stat_lines, "created_at DESC")
          -@stat_lines = @stat_lines.page(page).per(per_page)
          %br


          =link_to "Générer les stats", generate_stat_lines_admin_price_document_path(@price_document), :class => "btn btn-primary"

          %table.table
            %tr
              %th
                HT
              %td
                =number_to_currency @stat_lines.sum(:tot_amount_ht)

            %tr
              %th
                TTC
              %td
                =number_to_currency @stat_lines.sum(:tot_amount_ttc)


            %tr
              %th
                Coût HT
              %td
                =number_to_currency @stat_lines.sum(:cost_ht)



          .clear
          =render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @stat_lines}







        %h3 Lignes de produits
        .mb-3
          - if @price_document.cc_label == "Consultation fournisseur"
            = link_to ic(:clipboard) + " Copier le texte", "#", class: "btn btn-primary", "data-document" => @price_document.id, onclick: 'copyPriceLines(event)'
            - existing_order = PriceDocument.where(doc_ref_id: @price_document.id, cc_label: "Commande achat")

            - if existing_order.present?
              = link_to ic(:eye) + " Afficher la commande", admin_price_document_path(existing_order.first), class: "btn btn-tertiary"
            - else
              = link_to "Generer la commande", buy_order_create_admin_price_document_path(@price_document), class: "btn btn-primary"

        %table.table
          %thead
            %tr
              %th
              %th Référence
              %th Marque
              %th Désignation
              %th Qté
              %th P.U. HT
              %th TVA
              %th
                Montant HT
          %tbody
            -price_line_block.price_lines.each do |price_line|
              %tr
                %td
                  ="##{price_line.id}"
                %td
                  =price_line.ref




                %td
                  =price_line.p_product_ref.p_product.s_brand.name

                %td{class: "p_product_ref_cc_name_#{@price_document.id}"}
                  =link_to price_line.p_product_ref.cc_name, edit_admin_p_product_path(price_line.p_product_ref.p_product) if price_line.p_product_ref and price_line.p_product_ref.p_product

                %td.numeraire{class: "price_line_qte_#{@price_document.id}"}
                  =price_line.qte

                %td.numeraire{class: "price_line_price_u_ht_#{@price_document.id}"}
                  =number_to_currency price_line.price_u_ht


                %td.numeraire
                  =price_line.tva_account_value.to_s+"%"




                %td.numeraire
                  =number_to_currency price_line.tot_amount_ht

                / %td=# price_line.line_stocks.sum(:price_ht)

.qi_row
  -if current_admin.has_permission?("show-costs")
    %p
      -if @price_document.price_document_type_id == 6
        =link_to "Générer les stocks", generate_stocks_admin_price_document_path(@price_document), :class => "btn btn-primary" if !@price_document.stock_ok
      -elsif @price_document.price_document_type_id == 4 or @price_document.price_document_type_id == 5
        %p
          Coût :
          =number_to_currency @price_document.cost_ht
        %p
          Marge :
          =number_to_currency @price_document.marge_ht

        -if !@price_document.cost_ok
          =#link_to "Mettre à jour les stocks, calculer la marge", update_stocks_admin_price_document_path(@price_document), :class => "btn btn-primary"
    -if @price_document.d_number
      -if @price_document.cc_label == "Commande achat"
        %p=link_to "Générer un bon de réception", bon_de_reception_admin_price_document_path(@price_document), :class => "btn btn-primary"
        %p=link_to "Générer la facture", facture_achat_admin_price_document_path(@price_document), :class => "btn btn-primary"

    -if @facture_achat_childrens.present?
      %h3 Facture Achat
      -params[:search][:per_page] = params[:search][:per_page] || 5000
      -per_page = params[:search][:per_page]
      -page = (params[:page] and params[:page] != "") ? params[:page] : 1

      -@facture_achat_childrens = @facture_achat_childrens.order("date DESC, created_at DESC")


      -#@line_stocks = sort_by_sorting(@line_stocks, "created_at DESC")
      -@facture_achat_childrens = @facture_achat_childrens.page(page).per(per_page)
      %br
      .clear

      =render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @facture_achat_childrens}

    -if @price_document.cc_label == "Commande achat"
      =render :partial => "admin/price_documents/relicats", :locals => {:bca => @price_document}
    -if false

      -if @price_document.price_document_type_id == 4 or @price_document.price_document_type_id == 5 and !@price_document.cost_ok
        %table.table.table-striped.table-hover.table-bordered
          %thead
            %tr
              %th Produit
              %th Quantité dans cette pièce comptable
              %th Quantité restante
              %th
          -@price_document.price_line_block.price_lines.all.each do |pl|
            -if pl.p_product_ref

              -if pl.p_product_ref.assembled
                -pl.p_product_ref.p_product_assembleds.all.each do |ppa|
                  %tr
                    %td
                      =ppa.p_product_ref.cc_name
                    %td
                      =@a = (pl.qte.to_f * ppa.qte.to_f).to_f

                    %td
                      =link_to admin_line_stocks_path(:p_product_ref_id => ppa.p_product_ref.id) do
                        =@b = LineStock.where(:p_product_ref_id => ppa.p_product_ref_id).sum(:qte_available).to_f

                    %td
                      -if @a > @b
                        .red=ic :warning

              -else
                %tr
                  %td
                    =pl.p_product_ref.cc_name
                  %td
                    =@a = pl.qte.to_f

                  %td
                    =link_to admin_line_stocks_path(:p_product_ref_id => pl.p_product_ref.id) do
                      =@b = LineStock.where(:p_product_ref_id => pl.p_product_ref_id).sum(:qte_available).to_f

                  %td
                    -if pl.p_product_ref.stocked and @a > @b
                      .red=ic :warning



    -if @price_document.price_document_type_id == 6 or @price_document.price_document_type_id == 4 or @price_document.price_document_type_id == 5
      -if @price_document.price_line_block.stock_ok
        %h3 Stocks générés
        #bills
          -params[:search][:per_page] = params[:search][:per_page] || 5000
          -per_page = params[:search][:per_page]
          -page = (params[:page] and params[:page] != "") ? params[:page] : 1

          -@line_stocks = @price_document.line_stocks.order("date DESC, created_at DESC")
          -if params[:price_document_ids]
            -@line_stocks = @line_stocks.where(:id => params[:price_document_ids])


          -@line_stocks = sort_by_sorting(@line_stocks, "created_at DESC")
          -@line_stocks = @line_stocks.page(page).per(per_page)
          %br



          .clear
          =render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @line_stocks}

-if @price_document.label == "Demande prix"

  %h3.ml-2 Réponses fournisseur
  #bills
    -params[:search][:per_page] = params[:search][:per_page] || 5000
    -per_page = params[:search][:per_page]
    -page = (params[:page] and params[:page] != "") ? params[:page] : 1

    -@price_documents = PriceDocument.where(:doc_ref_id => @price_document.id, :price_document_type_id => PriceDocumentType.find_by_label("Réponse fournisseur").id)




    -@price_documents = sort_by_sorting(@price_documents, "created_at DESC")
    -@price_documents = @price_documents.page(page).per(per_page)
    %br



    .clear
    =render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @price_documents, :key => "reponses-prix-show"}

  -@price_documents = PriceDocument.where(:doc_ref_id => @price_document.id, :price_document_type_id => PriceDocumentType.find_by_label("Consultation fournisseur").id)

  %h3.ml-2 Consultations fournisseur :
  #consult

    -if @price_documents.empty?
      .qi_pannel.qi_plain.padding
        Pas de consultation générée.
        %br
        Vous devez d'abord Selectionner les prix sur le page d'analyse :
        =link_to ic("bar-chart")+" analyse des réponses", analyse_reponses_admin_price_document_path(@price_document), class: "btn btn-primary"
        puis Generer les consultations

    -@price_documents.each do |price_document_consult|

      - if price_document_consult.p_fournisseur
        %h4.ml-2= price_document_consult.p_fournisseur.name
      - else
        %h4.ml-2=link_to ic('pencil') + " rapprocher le fournisseur",  match_p_fournisseur_admin_price_document_path(price_document_consult), remote: true


      = semantic_form_for [:admin, price_document_consult], :html => {:class => "qi_price_form"}, :remote => false do |form|
        = form.button "Valider modifications", type: :submit, class: "btn btn-primary m-2"
        = link_to ic(:clipboard) + " Copier le texte", "#", class: "btn btn-primary", "data-document" => price_document_consult.id, onclick: 'copyPriceLines(event)'
        - existing_order = PriceDocument.where(doc_ref_id: price_document_consult.id, cc_label: "Commande achat")
        - if existing_order.present?
          = link_to ic(:eye) + " Afficher la commande", admin_price_document_path(existing_order.first), class: "btn btn-tertiary"
        - else
          = link_to "Generer la commande", buy_order_create_admin_price_document_path(price_document_consult), class: "btn btn-primary"


        .price-lines{"data-document" => price_document_consult.id}
          =form.semantic_fields_for :price_line_block do |f|
            .mx-2
              =f.semantic_fields_for :price_lines do |form|
                =render partial: "admin/price_lines/form_consult", locals: {form: form}

    -params[:search][:per_page] = params[:search][:per_page] || 5000
    -per_page = params[:search][:per_page]
    -page = (params[:page] and params[:page] != "") ? params[:page] : 1

    -@price_documents = PriceDocument.where(:doc_ref_id => @price_document.id, :price_document_type_id => PriceDocumentType.find_by_label("Consultation fournisseur").id)




    -@price_documents = sort_by_sorting(@price_documents, "created_at DESC")
    -@price_documents = @price_documents.page(page).per(per_page)
    %br


    %h4.ml-2 Liste des consultations fournisseurs
    .clear
    =render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @price_documents, :key => "reponses-prix-show"}




:javascript
  const copyPriceLines = (event) => {
    event.preventDefault()
    let priceDocumentId = event.target.dataset.document
    let names = $(`.p_product_ref_cc_name_${priceDocumentId}`)
    let qtes_input = $(`.input_price_line_qte_${priceDocumentId}`)
    let qtes = $(`.price_line_qte_${priceDocumentId}`)
    let prices = $(`.price_line_price_u_ht_${priceDocumentId}`)
    let table = []
    names.each(function( i ) {
      let row = []
      if(qtes_input.length > 0) {
        row.push(qtes_input[i].valueAsNumber)
      }else{
        row.push(qtes[i].innerText.slice(0, -2))
      }
      row.push(" X ")
      row.push(names[i].innerText)
      row.push(" @ ")
      row.push(prices[i].innerText)
      table.push(row.join(' '))
    })
    copyStringToClipboard(table.join('\r\n'))
  }

  function copyStringToClipboard (str) {
    // Create new element
    var el = document.createElement('textarea');
    // Set value (string to be copied)
    el.value = str;
    // Set non-editable to avoid focus and move outside of view
    el.setAttribute('readonly', '');
    el.style = {position: 'absolute', left: '-9999px'};
    document.body.appendChild(el);
    // Select text inside element
    el.select();
    // Copy text to clipboard
    document.execCommand('copy');
    // Remove temporary element
    document.body.removeChild(el);
  }

