= javascript_include_tag "totalizando" = javascript_include_tag 'licitacao/pessoas_do_projeto/edit' = form_for( @pessoa_do_projeto, html: { class: "form-vertical", 'data-blockui-message': "Aguarde...", enctype: "multipart/form-data" }, role: "form" ) do |f| = f.hidden_field :eh_proposta_final, value: @pessoa_do_projeto.eh_proposta_final fieldset legend strong ' Proposta = "Final" if proposta_final -if proposta_final .form-group .row .col-sm-12 = link_to edit_licitacao_pessoa_do_projeto_path(pessoa_do_projeto: @pessoa_do_projeto, copia_de_proposta_inicial: true, proposta_final: true), class: "btn btn-default btn-sm" do i.icone-copiar ' Copiar Proposta Inicial // Foi colocada essa validação pois com a mudança onde puxamos responsaveis associados ao fornecedor, poderia causar problema com registros antigos - mostrar_responsavel_associado_a_empresa = !@pessoa_do_projeto.persisted? || (@pessoa_do_projeto.nome_do_responsavel.blank? && @responsavel.nil?) || (!@pessoa_do_projeto.nome_do_responsavel.blank? && !@responsavel.nil?) .form-group .row .col-sm-5 = f.label :nome_do_responsavel, "Nome do Responsável", class: "control-label", for: "normal-field" - if mostrar_responsavel_associado_a_empresa = select_tag "responsaveis", options_from_collection_for_select( \ @responsaveis, :id, :nome, @responsavel.try(:id) \ ), include_blank: "Selecione", class: "form-control s2", id: "nome_do_responsavel" = f.hidden_field :nome_do_responsavel, id: "nome_do_responsavel_aux" = error_for f.object, :nome_do_responsavel - else = f.text_field :nome_do_responsavel, class: "form-control" .col-sm-2 style="width: 18%" label.control-label for="normal-field" CPF do Responsável - if mostrar_responsavel_associado_a_empresa p span#cpf_do_responsavel = f.hidden_field :cpf_do_responsavel, id: "cpf_do_responsavel_aux" - else = f.text_field :cpf_do_responsavel, placeholder: '000.000.000-00', class: "form-control" , maxlength: 14 = error_for @pessoa_do_projeto, :cpf_do_responsavel - if mostrar_responsavel_associado_a_empresa .col-sm-2 label.control-label for="normal-field" RG do Responsável p span#rg_do_responsavel .col-sm-2 = link_to new_base_pessoa_responsavel_path(pessoa_id: @pessoa_do_projeto.pessoa, pessoa_do_projeto: @pessoa_do_projeto.id, form_de_pessoa_do_projeto: true), class: "btn btn-default btn-sm" do i.icone-cadastrar ' Cadastrar Responsáveis .form-group .row .col-sm-4 = f.label "Tipo", class: "control-label", for: "normal-field" = f.select :tipo_de_responsavel, options_for_select( \ @tipos_de_responsaveis.collect { |t| [ "#{t[0].humanize}", t[0] ] }, \ @pessoa_do_projeto.try(:tipo_de_responsavel) \ ), { include_blank: 'Selecione' }, class: 'form-control s2 tipo_de_responsavel', data: { value: @pessoa_do_projeto.try(:tipo_de_responsavel) } = error_for @pessoa_do_projeto, :tipo_de_responsavel - unless @pessoa_do_projeto.itens_do_projeto_por_pessoa.count > 0 .form-group .row .col-sm-12 = f.label :arquivo_cotacao , "Carregar arquivo de Cotação:", class: "control-label" div class="fileinput input-group fileinput-new" data-provides="fileinput" div class="form-control" data-trigger="fileinput" i class="icone-anexo_cotacao fileinput-exists" .fileinput-filename .input-group-addon class="btn btn-default btn-file" .fileinput-new Escolher Anexo .fileinput-exists Trocar = f.file_field :arquivo_cotacao, value: @pessoa_do_projeto.arquivo_cotacao a href="#" class="input-group-addon btn btn-default fileinput-exists" data-dismiss="fileinput" Remover = error_for @pessoa_do_projeto, :arquivo_cotacao - @lotes.includes(itens_do_lote: [item_do_pedido: [item: :unidade_de_medida]]).ativos.order(:numero).each do |lote| .row .col-sm-12 h5 - if @pessoa_do_projeto.projeto.por_lote? = "Lote #{lote.numero}" - if proposta_final span.pull-right - if lote.melhor_tecnica? || lote.tecnica_e_preco? b Valor final da proposta: =< lote.pessoa_do_projeto_do_lote_ganhadora.pessoa_do_projeto.valor_total_do_lote(lote).try(:valor_financeiro) - else b Valor do lance final: =< lote.pessoa_do_projeto_do_lote_ganhadora.try(:lance_final).try(:valor_financeiro) br .row - if lote.lote_por_valor_previsto? - if lote.lote_por_desconto? table.table.table-bordered.table-hover.table-responsive style="font-size: 95%;" thead tr th Item th width="150px" Valor Previsto. th width="140px" Desconto (%) tbody#pessoas_do_pedido - unless @pessoa_do_projeto.projeto.homologado? = f.fields_for :itens_do_projeto_por_pessoa, @pessoa_do_projeto.itens_do_projeto_por_pessoa.select { |ipp| ipp.item_do_lote.lote.id == lote.id && ipp.final == proposta_final} do |item_do_projeto_por_pessoa| - if item_do_projeto_por_pessoa.object.valido? = item_do_projeto_por_pessoa.hidden_field :item_do_lote_id, value: item_do_projeto_por_pessoa.object.item_do_lote_id tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.descricao}" = "#{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.descricao} (#{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.unidade_de_medida.descricao})" td.quantidade align="center" = item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.try(:real_contabil) td = item_do_projeto_por_pessoa.text_field :preco, class: "form-control", onclick: "this.select();", data: { autonumeric: true, 'a-sep'=>'.', 'a-dec'=>',', 'a-sign'=> ' %', 'p-sign'=>'s', 'v-min'=> '0.00', 'v-max'=> '100' } = item_do_projeto_por_pessoa.hidden_field :final, value: proposta_final = error_for item_do_projeto_por_pessoa.object, :preco - if lote.lote_por_preco? table.table.table-bordered.table-hover.table-responsive style="font-size: 95%;" thead tr th Item th width="150px" Valor Previsto th width="140px" Valor tbody#pessoas_do_pedido - unless @pessoa_do_projeto.projeto.homologado? = f.fields_for :itens_do_projeto_por_pessoa, @pessoa_do_projeto.itens_do_projeto_por_pessoa.select { |ipp| ipp.item_do_lote.lote.id == lote.id && ipp.final == proposta_final} do |item_do_projeto_por_pessoa| - if item_do_projeto_por_pessoa.object.valido? = item_do_projeto_por_pessoa.hidden_field :item_do_lote_id, value: item_do_projeto_por_pessoa.object.item_do_lote_id tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.descricao}" = "#{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.descricao} (#{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.unidade_de_medida.descricao})" td.quantidade align="center" = item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.try(:real_contabil) td = item_do_projeto_por_pessoa.monetary_field :preco, scale: 4, class: "preco" = item_do_projeto_por_pessoa.hidden_field :final, value: proposta_final = error_for item_do_projeto_por_pessoa.object, :preco - unless lote.lote_por_valor_previsto? table.table.table-bordered.table-hover.table-responsive style="font-size: 95%;" thead tr th Item th width="180px" Marca th width="100px" Qtd. th width="150px" Preço Unitário th width="140px" Total tbody#pessoas_do_pedido - if ( @pessoa_do_projeto.projeto.homologado? == false || @pessoa_do_projeto.projeto.homologado_parcialmente? )|| @pessoa_do_projeto.processo.pedido.projeto_simplificado? || Configuracao.last.implantacao? = f.fields_for :itens_do_projeto_por_pessoa, @pessoa_do_projeto.itens_do_projeto_por_pessoa.select { |ipp| ipp.item_do_lote.lote.id == lote.id && ipp.final == proposta_final } do |item_do_projeto_por_pessoa| - if item_do_projeto_por_pessoa.object.valido? = item_do_projeto_por_pessoa.hidden_field :item_do_lote_id, value: item_do_projeto_por_pessoa.object.item_do_lote_id tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.descricao}" = "#{item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.item.try(:codigo_e_descricao_do_item)}" td - if proposta_final p.form-control-static = item_do_projeto_por_pessoa.object.marca = item_do_projeto_por_pessoa.hidden_field :marca, value: item_do_projeto_por_pessoa.object.marca - else = item_do_projeto_por_pessoa.text_field :marca, class: "form-control" = error_for item_do_projeto_por_pessoa.object, :marca td.quantidade align="center" = item_do_projeto_por_pessoa.object.item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor, precision: 2) td = item_do_projeto_por_pessoa.monetary_field :preco, scale: 4, class: "preco" = item_do_projeto_por_pessoa.hidden_field :final, value: proposta_final = error_for item_do_projeto_por_pessoa.object, :preco td align="right" span.total-item.moeda data-totalizando = %Q([ "#total_#{lote.id}" ]) tfoot tr td colspan=4 b Total td.moeda id="total_#{lote.id}" style="font-weight: bold;" align="right" = error_for @pessoa_do_projeto, :base = error_for @pessoa_do_projeto, :itens_do_projeto_por_pessoa .form-group h6 ' (*) Campos Obrigatórios .form-actions .row .col-sm-12 = f.submit "Salvar", class: "btn btn-primary" = link_to "Cancelar", @pessoa_do_projeto, class: "btn btn-default" - content_for :js do javascript: $(function () { $(document).ready(function() { if ($('#nome_do_responsavel').val() != '' && $('#nome_do_responsavel').val() != undefined){ retorna_dados_do_responsavel($('#nome_do_responsavel').val()); } }); $('.moeda').autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'aPad': true, 'vMin': 0, 'aSign': 'R$ ' }); $('.preco').change(function() { atualiza_quantidade($(this)); new Totalizando(); }); $('.preco').each(function() { atualiza_quantidade($(this)); }).promise().done( function(){ setTimeout(function() { new Totalizando(); }, 100)} ); function atualiza_quantidade(field){ var valor = parseFloat( field.autoNumeric('get') || 0 ); var quantidade = parseFloat($('.quantidade', field.closest("tr")).text().replace(/\./g,'').replace(',', '.') || 0); $('.total-item', field.closest("tr")).autoNumeric('set',valor*quantidade); }; $('#nome_do_responsavel').change(function() { retorna_dados_do_responsavel($('#nome_do_responsavel').val()) }); function retorna_dados_do_responsavel(pessoa){ unidade_orcamentaria = $('#unidades_gestora_anulacao').val(); $.ajax({ method: 'GET', url: root_url + 'base/pessoas/' + pessoa + '/retorna_dados_do_responsavel?pessoa_id=' + pessoa, dataType: 'json', success: function(data) { $('#cpf_do_responsavel').html(data.cpf); $('#rg_do_responsavel').html(data.rg); $('#cpf_do_responsavel_aux').val((data.cpf).replace("-", "").replace(".", "").replace(".", "")) $('#nome_do_responsavel_aux').val(data.nome) }, error: function (xhr, ajaxOptions, thrownError) { console.log(xhr.status); console.log(thrownError); }, complete: function(data) { $('#cpf_do_responsavel').show(); $('#rg_do_responsavel').show(); } }); } });