= javascript_include_tag "totalizando" = javascript_include_tag 'licitacao/pessoas_do_pedido/edit' .alert.alert-warning[role="alert" id="alert-content" style="display: none;"] span#alert-message - itens_por_preco_por_quantidade = Array.new - itens_por_preco_por_valor = Array.new - itens_por_desconto = Array.new - @pessoa_do_pedido.itens_do_pedido_por_pessoa.sort_by{|e| e[:item_do_pedido_id]}.map {|item| item.item_do_pedido.por_preco? ? (item.item_do_pedido.por_valor_previsto? ? itens_por_preco_por_valor << item : itens_por_preco_por_quantidade << item) : itens_por_desconto << item} - acao = (@codigo_de_acesso.present? && params[:cotacao_interna].blank?) ? "enviar_cotacao" : "update" = form_for( @pessoa_do_pedido, url: url_for(action: acao, controller: 'licitacao/pessoas_do_pedido'), html: { class: "form-vertical", 'data-blockui-message': "Aguarde..." }, role: "form" ) do |f| fieldset legend strong ' Cadastrar Preços para #{@pessoa_do_pedido.pessoa.nome} - if @pessoa_do_pedido.cotado? && @codigo_de_acesso.present? .alert.alert-success role="alert" style="margin-top: 20px; font-size: 90%;" strong | Obrigado por participar! | Sua cotação foi enviada, caso deseje alterar os valores você poderá fazê-lo até o prazo informado ou até que o administrador conclua as demais cotações. = error_for @pessoa_do_pedido, :base - if @pessoa_do_pedido.pedido.por_valor_previsto? - if @pessoa_do_pedido.pedido.contem_itens_por_desconto? - if @pessoa_do_pedido.pedido.contem_itens_por_preco? h5 Itens por desconto table.table.table-bordered.table-hover.table-responsive style="font-size: 95%;" thead tr th Item th width="14%" Valor Previsto th width="12%" Desconto* tbody#pessoas_do_pedido - if @pessoa_do_pedido.pedido.fechado? || !@pessoa_do_pedido.valido? - @pessoa_do_pedido.itens_do_pedido_por_pessoa.each do |item_do_pedido_por_pessoa| tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_pedido_por_pessoa.item_do_pedido.item.descricao}" = "#{item_do_pedido_por_pessoa.item_do_pedido.item.codigo_e_descricao_do_item}" td = item_do_pedido_por_pessoa.marca.present? ? item_do_pedido_por_pessoa.marca : "Não informada" td align="center" = item_do_pedido_por_pessoa.item_do_pedido.valor_total_previsto_por_desconto.try(:valor_financeiro) td align="right" = item_do_pedido_por_pessoa.desconto_de_cotacao.try(:valor, precision: 2) - else = f.fields_for :itens_do_pedido_por_pessoa, itens_por_desconto do |item_do_pedido_por_pessoa| - if item_do_pedido_por_pessoa.object.item_do_pedido.valido && item_do_pedido_por_pessoa.object.valido = item_do_pedido_por_pessoa.hidden_field :item_do_pedido_id, value: item_do_pedido_por_pessoa.object.item_do_pedido_id tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_pedido_por_pessoa.object.item_do_pedido.item.descricao}" = "#{item_do_pedido_por_pessoa.object.item_do_pedido.item.codigo_e_descricao_do_item}" td.quantidade align="center" = item_do_pedido_por_pessoa.object.item_do_pedido.valor_total_previsto_por_desconto.try(:valor_financeiro) td = item_do_pedido_por_pessoa.text_field :preco_de_cotacao, placeholder: 'Ex.: 28,00%', class: "form-control", data: { autonumeric: true, 'a-sep'=>'.', 'a-dec'=>',', 'a-sign'=> ' %', 'p-sign'=>'s', 'v-min'=> '0.00', 'v-max'=> '100' } = error_for item_do_pedido_por_pessoa.object, :preco_de_cotacao - if @pessoa_do_pedido.pedido.contem_itens_por_preco? && @pessoa_do_pedido.pedido.itens_do_pedido.any?{ |item_do_pedido| item_do_pedido.por_valor_previsto? && item_do_pedido.por_preco? } h5 Itens por Preço e por valor previsto table.table.table-bordered.table-hover.table-responsive style="font-size: 95%;" thead tr th Item th width="14%" Valor Previsto th width="12%" Valor* tbody#pessoas_do_pedido - if @pessoa_do_pedido.pedido.fechado? || !@pessoa_do_pedido.valido? - @pessoa_do_pedido.itens_do_pedido_por_pessoa.each do |item_do_pedido_por_pessoa| tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_pedido_por_pessoa.item_do_pedido.item.descricao}" = "#{item_do_pedido_por_pessoa.item_do_pedido.item.codigo_e_descricao_do_item}" td = item_do_pedido_por_pessoa.marca.present? ? item_do_pedido_por_pessoa.marca : "Não informada" td align="center" = item_do_pedido_por_pessoa.item_do_pedido.valor_total_previsto_por_desconto.try(:valor_financeiro) td align="right" = item_do_pedido_por_pessoa.desconto_de_cotacao.try(:valor, precision: 2) - else = f.fields_for :itens_do_pedido_por_pessoa, itens_por_preco_por_valor do |item_do_pedido_por_pessoa| - if item_do_pedido_por_pessoa.object.item_do_pedido.valido && item_do_pedido_por_pessoa.object.valido = item_do_pedido_por_pessoa.hidden_field :item_do_pedido_id, value: item_do_pedido_por_pessoa.object.item_do_pedido_id tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_pedido_por_pessoa.object.item_do_pedido.item.descricao}" = "#{item_do_pedido_por_pessoa.object.item_do_pedido.item.codigo_e_descricao_do_item}" td.quantidade align="center" = item_do_pedido_por_pessoa.object.item_do_pedido.valor_total_previsto_por_desconto.try(:valor_financeiro) td = item_do_pedido_por_pessoa.monetary_field :preco_de_cotacao, scale: 4, class: "preco-unitario" = error_for item_do_pedido_por_pessoa.object, :preco_de_cotacao - if @pessoa_do_pedido.pedido.por_quantidade? && @pessoa_do_pedido.pedido.itens_do_pedido.por_preco.por_unidade_com_quantidade.where(valido: true).any? - if @pessoa_do_pedido.pedido.contem_itens_por_preco? - if @pessoa_do_pedido.pedido.contem_itens_por_quantidade_e_por_valor? - if @pessoa_do_pedido.pedido.contem_itens_por_desconto? h5 Itens por Preço e por quantidade - else h5 Itens por quantidade - else - if @pessoa_do_pedido.pedido.contem_itens_por_desconto? h5 Itens por Preço table.table.table-bordered.table-hover.table-responsive style="font-size: 95%;" thead tr th Item th width="15%" Marca* th width="10%" Qtd.* - if @pessoa_do_pedido.pedido.possui_periodicidade_nos_itens th width="13%" Periodicidade th width="14%" Preço Unitário* th width="12%" Total tbody#pessoas_do_pedido - if @pessoa_do_pedido.pedido.fechado? || !@pessoa_do_pedido.valido? - @pessoa_do_pedido.itens_do_pedido_por_pessoa.each do |item_do_pedido_por_pessoa| tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_pedido_por_pessoa.item_do_pedido.item.descricao}" = "#{item_do_pedido_por_pessoa.item_do_pedido.item.codigo_e_descricao_do_item}" td align="center" = item_do_pedido_por_pessoa.marca.present? ? item_do_pedido_por_pessoa.marca : "Não informado" td align="center" = item_do_pedido_por_pessoa.item_do_pedido.quantidade_total_requisitada_sem_periodicidade.try(:valor, precision: 2) - if @pessoa_do_pedido.pedido.possui_periodicidade_nos_itens td align="center" = item_do_pedido_por_pessoa.item_do_pedido.periodicidade_e_unidade_de_medida td align="right" = item_do_pedido_por_pessoa.preco_de_cotacao.to_f.valor_financeiro td align="right" = item_do_pedido_por_pessoa.total.try(:real_contabil) - else = f.fields_for :itens_do_pedido_por_pessoa, itens_por_preco_por_quantidade do |item_do_pedido_por_pessoa| - if item_do_pedido_por_pessoa.object.item_do_pedido.valido && item_do_pedido_por_pessoa.object.valido = item_do_pedido_por_pessoa.hidden_field :item_do_pedido_id, value: item_do_pedido_por_pessoa.object.item_do_pedido_id tr td p.form-control-static data-toggle="tooltip" data-placement="top" title="Descrição: #{item_do_pedido_por_pessoa.object.item_do_pedido.item.descricao}" = "#{item_do_pedido_por_pessoa.object.item_do_pedido.item.codigo_e_descricao_do_item}" td = item_do_pedido_por_pessoa.text_field :marca, class: "form-control" = error_for item_do_pedido_por_pessoa.object, :marca td.quantidade align="center" = item_do_pedido_por_pessoa.object.item_do_pedido.quantidade_total_requisitada_sem_periodicidade.try(:valor, precision: 2) - if @pessoa_do_pedido.pedido.possui_periodicidade_nos_itens td.periodicidade align="center" = item_do_pedido_por_pessoa.object.item_do_pedido.periodicidade_e_unidade_de_medida td = item_do_pedido_por_pessoa.monetary_field :preco_de_cotacao, scale: 4, class: "preco-unitario" = error_for item_do_pedido_por_pessoa.object, :preco_de_cotacao td align="right" span.total tfoot tr td colspan="#{@pessoa_do_pedido.pedido.possui_periodicidade_nos_itens ? "5" : "4"}" b Total - if @pessoa_do_pedido.pedido.fechado? || !@pessoa_do_pedido.valido? td.bold align="right" = @pessoa_do_pedido.total_da_cotacao.try(:real_contabil) - else td.bold#total-geral align="right" - if acao != 'enviar_cotacao' && @pessoa_do_pedido.interno .form-group .row .col-sm-3 = f.label :data_de_cadastro_da_cotacao, "Data da Cotação*", class: "control-label" = f.calendar_field :data_de_cadastro_da_cotacao = error_for @pessoa_do_pedido, :data_de_cadastro_da_cotacao .form-group .row .col-sm-6 = f.label :nome_do_responsavel, "Nome do Responsável*", class: "control-label", for: "normal-field" = f.text_field :nome_do_responsavel, class: "form-control" = error_for @pessoa_do_pedido, :nome_do_responsavel .col-sm-3 = f.label :cpf_do_responsavel, "CPF do Responsável", class: "control-label", for: "normal-field" = f.text_field :cpf_do_responsavel, placeholder: '000.000.000-00', class: "form-control" , maxlength: 14 = error_for @pessoa_do_pedido, :cpf_do_responsavel .col-sm-3 = f.label "Tipo*", class: "control-label", for: "normal-field" = f.select :tipo_de_responsavel, options_for_select(\ @tipos_de_responsaveis.collect {|t|[ Licitacao::PessoaDoPedido.localizar("tipo_de_responsavel",t[0]), t[0] ] }, @pessoa_do_pedido.try(:tipo_de_responsavel) \ ), {include_blank: 'Selecione'}, class: 'form-control s2 tipo_de_responsavel', data: { value: @pessoa_do_pedido.try(:tipo_de_responsavel) } = error_for @pessoa_do_pedido, :tipo_de_responsavel .form-group .row .col-sm-4 = f.label :prazo_da_proposta, "Validade da Proposta (em dias)*", class: "control-label", for: "normal-field" = f.text_field :prazo_da_proposta, class: "form-control only-num", min: 1 = error_for @pessoa_do_pedido, :prazo_da_proposta .col-sm-8 - if @codigo_de_acesso.present? && params[:cotacao_interna].blank? = f.label :anexo_cotacao, "Anexo Cotação*", class: "control-label" - else = f.label :anexo_cotacao, "Anexo 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 :anexo_cotacao, value: @pessoa_do_pedido.anexo_cotacao a href="#" class="input-group-addon btn btn-default fileinput-exists" data-dismiss="fileinput" Remover - if @codigo_de_acesso.present? span.help-block Para enviar a cotação é obrigatório anexar um documento comprobatório com assinatura. = error_for @pessoa_do_pedido, :anexo_cotacao .form-group .row .col-sm-12 = f.label :observacoes, "Observações:", class: "control-label" = f.text_area :observacoes, placeholder: nil, class: "form-control", rows: 5 = error_for f.object, :observacoes .form-group h6 ' (*) Campos Obrigatórios = f.hidden_field :codigo_de_acesso, value: @codigo_de_acesso if @codigo_de_acesso.present? = f.hidden_field :interno, value: false if @codigo_de_acesso.present? && params[:cotacao_interna].blank? - if @codigo_de_acesso.present? - if @pessoa_do_pedido.valido? .form-actions .row .col-sm-12 = f.submit "#{@pessoa_do_pedido.cotado? ? "Atualizar" : "Enviar"} Cotação", class: "btn btn-primary" - else .form-actions .row .col-sm-12 - if @pessoa_do_pedido.valido? = f.submit "Salvar", class: "btn btn-primary" = link_to "Cancelar", @pessoa_do_pedido, class: "btn btn-default" - content_for :js do javascript: $(function () { $('.moeda').autoNumeric('init', { 'aSep': '.', 'aDec': ',', 'aPad': true, 'vMin': 0, 'aSign': 'R$ ', 'decimalPlaces': 3 }); $('.preco-unitario').change(function() { var valor = parseFloat( $(this).autoNumeric('get') || 0 ); var quantidade = parseFloat($('.quantidade', $(this).closest("tr")).text().replace(/\./g,'').replace(',', '.') || 0); $('.total-item', $(this).closest("tr")).autoNumeric('set',valor*quantidade); }); $('.preco-unitario').each(function() { $(this).trigger('change') }).promise().done( function(){ setTimeout(function() { new Totalizando(); }, 100)} ); });