= javascript_include_tag "bomcobox"
= simple_form_for(@acao) do |f|
= f.error_notification
= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present?
= f.input :orcamento_id, as: :hidden, input_html: { value: "#{contexto_atual.id}" }
.form-group
.row
.col-sm-3
= f.input :data_de_cadastro, label: "Data de Cadastro", as: :string, wrapper: :calendar_field, input_html: { class: 'date-picker', autocomplete: false }
.col-sm-6
- if @acao.persisted? && @acao.orcamentos_da_despesa_por_acao.any?
p
' Unidade Orçamentária:
p
= @acao.unidade_orcamentaria.try(:nome)
- else
= f.input :unidade_orcamentaria_id, label: "Unidade Orçamentária", collection: @unidades_orcamentarias, label_method: :codigo_e_nome, include_blank: 'Selecione', input_html: { class: 'form-control s2', id: 'unidade_orcamentaria' }
.col-sm-3
= f.input :prioridade, include_blank: "Selecione", input_html: {class: "s2", id:'prioridade'}
.form-group
.row
.col-sm-6
= f.input :responsavel_id, label: "Responsável pela Demanda", collection: @agentes, label_method: :cpf_e_nome, include_blank: "Selecione", input_html: {class: "s2"}
.col-sm-3
= f.input :data_de_previsao_da_contratacao, label: "Data de previsão da contratação", as: :string, wrapper: :calendar_field, input_html: { class: 'date-picker', autocomplete: false }
.col-sm-3
= f.input :tipo_de_contratacao, include_blank: "Selecione", input_html: {class: "s2"}
.form-group
.row
.col-sm-4
= f.input :categoria_de_despesa, include_blank: "Selecione", input_html: {class: "s2"}
.col-sm-4
= f.input :forma_de_contratacao_modalidade, label: "Modalidade de Contratação", include_blank: "Selecione", input_html: {class: "s2", id:'modalidade'}
.col-sm-4
= f.input :forma_de_contratacao_modalidade_de_licitacao, label: "Modalidade de Licitação", include_blank: "Selecione", input_html: {class: "s2", id:'modalidade_de_licitacao'}
br
.form-group
.row
- if @acao.new_record? || @acao.aberto?
.col-sm-12
fieldset
legend
strong
' Adicionar Tipo de Despesa
.table-responsive
table.table.table-bordered.table-hover
thead
tr
th width="90%" Tipo de Despesa
th width="10%" Opções
tbody#tipos_de_despesa_por_acao
= f.fields_for :tipos_de_despesa_por_acao do |tipo_de_despesa|
= render 'tipo_de_despesa_por_acao_fields', f: tipo_de_despesa
= error_for @acao, :tipos_de_despesa_por_acao
tfoot
tr
td.links colspan=2 align="right"
= link_to_add_association ' Adicionar'.html_safe, f, :tipos_de_despesa_por_acao, :"data-association-insertion-node" => "tbody#tipos_de_despesa_por_acao",:"data-association-insertion-method" => "append", class: 'btn btn-primary btn-sm', id: 'btn-add-tipo-de-despesa-por-acao'
.form-group
.row
.col-sm-12
= f.input :objeto
.form-group
.row
.col-sm-12
= f.input :justificativa
.form-group.justificativa_prioridade
.row
.col-sm-12
= f.input :justificativa_prioridade, label: "Justificativa de Prioridade"
.form-group
.row
.col-sm-12
= f.input :resultado_pretendido, label: "Resultado Pretendido"
.form-group
.row
.col-sm-12
= f.input :outras_informacoes, label: "Outras Informações"
.form-group
.row.alinhar
.col-sm-2
= f.input :possui_itens, label: "Ação possui itens?", as: :boolean, input_html: { id: "possui_itens", style: "margin-top: 30px; margin-right: 10px; align-items: center;" }
span.help-block
' Possibilita a adição de itens na ação e obrigatoriamente a ação irá para o PNCP.
.col-sm-2
= f.input :vinculada_a_outra_acao, label: "Ação está vinculada a outra?", as: :boolean, input_html: { id: "acao_vinculada", style: "margin-top: 30px; margin-right: 10px; align-items: center;" }
br
.form-group.categorias
.row
- if @acao.new_record? || @acao.aberto?
.col-sm-12
fieldset
legend
strong
' Adicionar Categorias da Ação
.table-responsive
table.table.table-bordered.table-hover
thead
tr
th width="45%" Categoria
th width="45%" Subcategoria
th width="10%" Opções
tbody#categorias_da_acao
= f.fields_for :categorias_da_acao do |categoria_da_acao|
= render 'categoria_da_acao_fields', f: categoria_da_acao
= error_for @acao, :categorias_da_acao
tfoot
tr
td.links colspan=12 align="right"
= link_to_add_association ' Adicionar'.html_safe, f, :categorias_da_acao, :"data-association-insertion-node" => "tbody#categorias_da_acao",:"data-association-insertion-method" => "append", class: 'btn btn-primary btn-sm', id: 'btn-add-categoria_da_acao', partial: 'pca/acoes/categoria_da_acao_fields'
.form-actions
= f.submit "Salvar", class: "btn btn-primary", id: "botao_salvar"
- if @acao.new_record?
- rota = cookies[:ano_seguinte].to_boolean == true ? pca_ano_seguinte_path : pca_acoes_path
= link_to "Cancelar", pca_acoes_path, class: "btn btn-default"
- else
= link_to "Cancelar", pca_acao_path(@acao), class: "btn btn-default"
javascript:
$(document).ready(function(){
$('.justificativa_prioridade').hide();
$('#modalidade').on('change', function(){
preencheModalidadeDaLicitacao();
});
$('#prioridade').on('change', function(){
if ($('#prioridade').val() == 'alta'){
$('.justificativa_prioridade').show();
} else {
$('.justificativa_prioridade').hide();
}
});
});
$(document).on('cocoon:after-insert', function(e, insertedItem) {
$('select.s2', insertedItem).select2();
});
document.addEventListener('DOMContentLoaded', function() {
const possuiItensCheckbox = document.querySelector("#possui_itens");
const categoriasElement = document.querySelector(".categorias");
function toggleCategorias() {
if (possuiItensCheckbox.checked) {
categoriasElement.style.display = 'block';
} else {
categoriasElement.style.display = 'none';
}
}
toggleCategorias();
possuiItensCheckbox.addEventListener('change', toggleCategorias);
});
$(document).on('change', '.categoria-select', function() {
console.log('Categoria selecionada: ', $(this).val());
var categoriaSelect = $(this);
var subcategoriaSelect = categoriaSelect.closest('tr').find('.subcategoria-select');
var categoriaId = categoriaSelect.val();
if (categoriaId) {
console.log('Carregando subcategorias para categoria ID:', categoriaId);
fetch(`/base/categorias/${categoriaId}/subcategorias`)
.then(response => {
console.log('Resposta da requisição: ', response);
if (!response.ok) {
throw new Error('Network response was not ok ' + response.statusText);
}
return response.json();
})
.then(data => {
console.log('Dados recebidos: ', data);
subcategoriaSelect.empty();
subcategoriaSelect.append('');
data.forEach(subcategoria => {
subcategoriaSelect.append(``);
});
})
.catch(error => {
console.error('Error fetching subcategories:', error);
alert('Erro ao carregar subcategorias. Por favor, tente novamente.');
});
} else {
subcategoriaSelect.empty();
subcategoriaSelect.append('');
}
});
function preencheModalidadeDaLicitacao(){
url = root_url + 'pca/acoes/:modalidade_enum/retorna_modalidades_de_licitacao'
new BomcoBox({
filter: '#modalidade',
result: '#modalidade_de_licitacao',
searchUrl: url,
filterParamName: 'modalidade_enum',
resultValue: 'key',
resultText: 'nome'
});
}