Commit 38451ad9 authored by sandroresende's avatar sandroresende

modulo de correcao de proposta

parent cbb916a5
......@@ -50,7 +50,7 @@ use App\Mod_saci\mod_pac\Eixo;
use App\Mod_saci\mod_pac\Tipo;
use App\Mod_saci\mod_pac\Programa;
use App\Propostas\AcaoPrograma;
use App\Propostas\MotivoCancelamento;
use App\Propostas\MotivoCorrecao;
use App\Propostas\Propostas;
use App\Propostas\ViewItensFinanciaveisPropostas;
use App\Propostas\ViewPropostasCadastradas;
......@@ -85,9 +85,9 @@ class ApiController extends Controller
return SituacaoProposta::orderBy('txt_situacao_proposta')->get();
}
public function motivoCancelamento(){
public function motivoCorrecao(){
return MotivoCancelamento::orderBy('txt_motivo_cancelamento')->get();
return MotivoCorrecao::orderBy('txt_motivo_correcao')->get();
}
......
......@@ -19,7 +19,7 @@ use App\Propostas\CronogramaSelecao;
use App\Propostas\Propostas;
use App\Propostas\RlcItensFinanciaveisProposta;
use App\Propostas\RlcListaPropostasSelecionadas;
use App\Propostas\RlcMotivoCancelamentoProposta;
use App\Propostas\RlcMotivoCorrecaoProposta;
use App\Propostas\Selecao;
use App\Propostas\ViewItensFinanciaveisPropostas;
use App\Propostas\ViewPropostasCadastradas;
......@@ -231,13 +231,13 @@ class SelecaoController extends Controller
$propostaAntiga = '';
$propostaCancelada = '';
$itensFinanciveisCancelados = '';
$motivoCancelamento = '';
$motivoCorrecao = '';
if($proposta->situacao_proposta_id == 10){
$motivoCancelamento = RlcMotivoCancelamentoProposta::where('proposta_id_corrigida', $proposta->id)->firstOrFail();
$motivoCancelamento->load('motivoCancelamento');
$propostaCancelada = ViewPropostasCadastradas::where('proposta_id',$motivoCancelamento->proposta_id_cancelada)->firstOrFail();
$motivoCorrecao = RlcMotivoCorrecaoProposta::where('proposta_id_nova', $proposta->id)->firstOrFail();
$motivoCorrecao->load('motivoCorrecao');
$propostaCancelada = ViewPropostasCadastradas::where('proposta_id',$motivoCorrecao->proposta_id_corrigida)->firstOrFail();
$itensFinanciveisCancelados = ViewItensFinanciaveisPropostas::where('proposta_id',$propostaCancelada->proposta_id)->get();
}
......@@ -247,7 +247,7 @@ class SelecaoController extends Controller
$itensFinanciveis = ViewItensFinanciaveisPropostas::where('proposta_id',$proposta->id)->get();
return view('modulo_propostas.proposta.DadosProposta',compact('usuario','proposta','itensFinanciveis','motivoCancelamento','propostaCancelada','itensFinanciveisCancelados'));
return view('modulo_propostas.proposta.DadosProposta',compact('usuario','proposta','itensFinanciveis','motivoCorrecao','propostaCancelada','itensFinanciveisCancelados'));
}
......@@ -700,14 +700,82 @@ class SelecaoController extends Controller
$usuario = Auth::user();
return view('modulo_propostas.proposta.admin.CancelamentoProposta',compact('proposta','itensFinanciveis','usuario'));
return view('modulo_propostas.proposta.admin.CorrecaoProposta',compact('proposta','itensFinanciveis','usuario'));
}
public function corrigirProposta (Request $request){
return $request->all();
//return $request->all();
$propostaCorrigida = Propostas::find($request->proposta_id_corrigida);
$selecao = Selecao::find($request->selecao);
$usuario = Auth::user();
DB::beginTransaction();
$proposta = new Propostas;
$proposta->ente_publico_id = $propostaCorrigida->ente_publico_id;
$proposta->user_id = $usuario->id;
//$proposta->municipio_id = $request->municipio;
//$proposta->uf_id = $request->estado;
$proposta->selecao_id = $selecao->id;
$proposta->modalidade_participacao_id = $selecao->modalidade_participacao_id;
$proposta->dsc_obj_intervencao = $propostaCorrigida->dsc_obj_intervencao;
$proposta->vlr_intervencao = floatval($propostaCorrigida->vlr_intervencao) ;
$proposta->dsc_justificativa = $propostaCorrigida->dsc_justificativa;
$proposta->dsc_problema_resolver = $propostaCorrigida->dsc_problema_resolver;
$proposta->dsc_beneficios_intervencao = $propostaCorrigida->dsc_beneficios_intervencao;
$proposta->bln_projeto_basico = $propostaCorrigida->bln_projeto_basico;
$proposta->situacao_proposta_id = 10;
$proposta->created_at = Date("Y-m-d h:i:s");
$salvoComSucesso = $proposta->save();
$protocolo = $proposta->id .'/'. Date("Y") .'-'. $request->selecao_id .'3';
$proposta->txt_protocolo = str_pad($protocolo , 20 , '0' , STR_PAD_LEFT);
$salvoComSucesso = $proposta->save();
$salvouItensFinanciaveis = false;
$itensFinanciveis = $request->itens_financiaveis;
foreach($request->itens_financiaveis as $item){
$salvouItensFinanciaveis = RlcItensFinanciaveisProposta::salvarItensFinanciaveis($proposta->id, $item);
}
$itensFinanciveis = RlcItensFinanciaveisProposta::where('proposta_id',$proposta->id)->get();
$motivoCorrecao = new RlcMotivoCorrecaoProposta;
$motivoCorrecao->motivo_correcao_id = $request->motivoCorrecao;
$motivoCorrecao->proposta_id_corrigida = $request->proposta_id_corrigida;
$motivoCorrecao->proposta_id_nova = $proposta->id;
$motivoCorrecao->dte_cancelamento = Date("Y-m-d h:i:s");
$motivoCorrecao->user_id = $usuario->id;
$salvoMotivo = $motivoCorrecao->save();
if ($salvoComSucesso && $salvouItensFinanciaveis && $salvoMotivo){
DB::commit();
flash()->sucesso("Sucesso", "Proposta cadastrada com sucesso!");
return redirect('/admin/selecao/proposta/'.$proposta->id);
} else {
DB::rollBack();
flash()->erro("Erro", "Não foi possível cadastrar os dados da proposta.");
return back();
}
}
......
......@@ -4,18 +4,18 @@ namespace App\Propostas;
use Illuminate\Database\Eloquent\Model;
class MotivoCancelamento extends Model
class MotivoCorrecao extends Model
{
protected $connection = 'pgsql_corp';
protected $table = 'mcid_propostas.opc_motivo_cancelamento';
protected $table = 'mcid_propostas.opc_motivo_correcao';
public $timestamps = false; // tabela não possui coluna de data de criação/atualização
public function motivoCancelamentoProposta()
public function motivoCorrecaoProposta()
{
return $this->belongsTo(RlcMotivoCancelamentoProposta::class,'motivo_cancelamento_id'); //possui muitos
return $this->belongsTo(RlcMotivoCorrecaoProposta::class,'motivo_correcao_id'); //possui muitos
}
}
......@@ -4,19 +4,19 @@ namespace App\Propostas;
use Illuminate\Database\Eloquent\Model;
class RlcMotivoCancelamentoProposta extends Model
class RlcMotivoCorrecaoProposta extends Model
{
protected $connection = 'pgsql_corp';
protected $table = 'mcid_propostas.rlc_motivo_cancelamento_proposta';
protected $table = 'mcid_propostas.rlc_motivo_correcao_proposta';
public $timestamps = false; // tabela não possui coluna de data de criação/atualização
public function motivoCancelamento()
public function motivoCorrecao()
{
return $this->belongsTo(MotivoCancelamento::class); //possui muitos
return $this->belongsTo(MotivoCorrecao::class); //possui muitos
}
}
This diff is collapsed.
......@@ -46,7 +46,7 @@ Vue.component('filtro-usuarios', require('./components/mod_sistema/admin/FiltroU
Vue.component('filtro-propostas', require('./components/mod_propostas/FiltroPropostas.vue'));
Vue.component('filtro-resultado', require('./components/mod_propostas/FiltroResultado.vue'));
Vue.component('selecionar-proposta', require('./components/mod_propostas/admin/SelecionarProposta.vue'));
Vue.component('cancelamento-proposta', require('./components/mod_propostas/admin/CancelamentoProposta.vue'));
Vue.component('cancelamento-proposta', require('./components/mod_propostas/admin/CorrecaoProposta.vue'));
Vue.component('auto-complete-proposta', require('./components/mod_propostas/AutoCompletePropostaID.vue'));
......
......@@ -79,15 +79,15 @@
</select>
</div>
<div class="column col-xs-12 col-md-6">
<label for="motivoCancelamento">2. Motivo</label>
<label for="motivoCorrecao">2. Motivo</label>
<select
id="motivoCancelamento"
id="motivoCorrecao"
class="form-select br-select"
name="motivoCancelamento"
name="motivoCorrecao"
required
v-model="motivoCancelamento">
v-model="motivoCorrecao">
<option value="">Escolha um motivo:</option>
<option v-for="motivoCancelamento in motivoCancelamentos" v-text="motivoCancelamento.txt_motivo_cancelamento" :value="motivoCancelamento.id" :key="motivoCancelamento.id"></option>
<option v-for="motivoCorrecao in motivoCorrecaos" v-text="motivoCorrecao.txt_motivo_correcao" :value="motivoCorrecao.id" :key="motivoCorrecao.id"></option>
</select>
</div>
</div>
......@@ -118,8 +118,8 @@
itensFinanciaveis:'',
itemFinanciavel:'',
item_financiavel:[],
motivoCancelamento:'',
motivoCancelamentos:'',
motivoCorrecao:'',
motivoCorrecaos:'',
errors:{item_financiavel:false},
bln_erros:false ,
bln_botao:false,
......@@ -193,10 +193,10 @@
console.log(erro);
})
axios.get(this.url + '/api/motivo_cancelamento').then(resposta => {
axios.get(this.url + '/api/motivo_correcao').then(resposta => {
//console.log(resposta.data);
this.motivoCancelamentos = resposta.data;
this.motivoCancelamento = '';
this.motivoCorrecaos = resposta.data;
this.motivoCorrecao = '';
}).catch(erro => {
console.log(erro);
})
......
......@@ -14,6 +14,7 @@
v-bind:value='30'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
aria-label="opção 30"
required
......@@ -21,13 +22,39 @@
<label for="checkbox30">00SY - Apoio a Projetos e Obras de Reabilitação, de Acessibilidade e Modernização Tecnológica em Áreas Urbanas</label>
</div>
</div>
<div class="p-3 text-right">
<button class="br-button primary mr-3" name="Salvar" v-if="this.countItens > 0">Salvar
</button>
<button class="br-button danger mr-3" type="button" onclick="javascript:window.history.go(-1)">
Fechar
</button>
</div>
</div>
</template>
<script>
export default {
props:['url','itens','proposta','blnbotao'],
data(){
return{
itensFinanciaveis:'',
itemFinanciavel:'',
bln_erros:'',
item_financiavel:[],
countItens:0,
}
},
methods:{
onChangeItem(){
this.countItens = this.item_financiavel.length;
console.log(this.countItens);
}
},
mounted() {
this.item_financiavel = [];
this.countItens = this.item_financiavel.length;
console.log('Component mounted.')
}
}
</script>
......@@ -14,6 +14,7 @@
v-bind:value='32'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
aria-label="opção 32"
titulo="Visa melhorar as condições de deslocamento de pedestres e ciclistas das vias
públicas urbanas."
......@@ -28,6 +29,7 @@
v-bind:value='33'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox33">21CC - Sistemas Públicos de Manejo de Resíduos Sólidos</label>
......@@ -39,6 +41,7 @@
v-bind:value='34'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox34">21C9 - Saneamento Básico em Áreas Rurais e Comunidades Tradicionais</label>
......@@ -50,6 +53,7 @@
v-bind:value='35'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox35">21CA - Implantação, Ampliação e Melhoria de Sistemas Públicos de Abastecimento de Água em Municípios com até 50.000 Habitantes, Exclusive em Regiões Metropolitanas (RM) ou Regiões Integradas de Desenvolvimento Econômico (RIDE).</label>
......@@ -62,6 +66,7 @@
v-bind:value='37'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox37">20AM - Implementação de Projetos de Coleta, Triagem e Reciclagem de Resíduos Sólidos</label>
......@@ -74,6 +79,7 @@
v-bind:value='41'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox41">00TM - Apoio a Empreendimentos de Saneamento Integrado em Municípios com População Superior a 50 mil Habitantes ou Municípios Integrantes de Regiões Metropolitanas ou de Regiões Integradas de Desenvolvimento.</label>
......@@ -86,6 +92,7 @@
v-bind:value='42'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox42">00TK - Apoio a Sistemas de Drenagem Urbana Sustentável e de Manejo de Águas Pluviais em Municípios Críticos Sujeitos a Eventos Recorrentes de Inundações, Enxurradas e Alagamentos.</label>
......@@ -97,6 +104,7 @@
v-bind:value='43'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox43">00TL - Apoio à Implantação, Ampliação ou Melhorias em Sistemas de Abastecimento de Água em Municípios Integrantes da Região do Semiárido.</label>
......@@ -109,6 +117,7 @@
v-bind:value='44'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox44">00TO - Apoio à Implantação, Ampliação ou Melhorias de Sistemas de Esgotamento Sanitário em Municípios com População Superior a 50 mil Habitantes ou Municípios Integrantes de Regiões Metropolitanas ou de Regiões Integradas de Desenvolvimento.</label>
......@@ -121,20 +130,47 @@
v-bind:value='45'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox45">00TN - Apoio à Implantação, Ampliação ou Melhorias em Sistemas de Abastecimento de Água em Municípios com População Superior a 50 mil Habitantes ou Municípios Integrantes de Regiões Metropolitanas ou de Regiões Integradas de Desenvolvimento.</label>
</div>
</div>
<div class="p-3 text-right">
<button class="br-button primary mr-3" name="Salvar" v-if="this.countItens > 0">Salvar
</button>
<button class="br-button danger mr-3" type="button" onclick="javascript:window.history.go(-1)">
Fechar
</button>
</div>
</div>
<!-- div row -->
</template>
<script>
export default {
props:['url','itens','proposta','blnbotao'],
data(){
return{
itensFinanciaveis:'',
itemFinanciavel:'',
bln_erros:'',
item_financiavel:[],
countItens:0,
}
},
methods:{
onChangeItem(){
this.countItens = this.item_financiavel.length;
console.log(this.countItens);
}
},
mounted() {
this.item_financiavel = [];
this.countItens = this.item_financiavel.length;
console.log('Component mounted.')
}
}
</script>
......@@ -15,6 +15,7 @@
v-bind:value='42'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox42">00TK - Apoio a Sistemas de Drenagem Urbana Sustentável e de Manejo de Águas Pluviais em Municípios Críticos Sujeitos a Eventos Recorrentes de Inundações, Enxurradas e Alagamentos.</label>
......@@ -26,6 +27,7 @@
v-bind:value='43'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox43">00TL - Apoio à Implantação, Ampliação ou Melhorias em Sistemas de Abastecimento de Água em Municípios Integrantes da Região do Semiárido.</label>
......@@ -37,6 +39,7 @@
v-bind:value='46'
v-model='item_financiavel'
type="checkbox"
@change="onChangeItem"
/>
<label for="checkbox46">8865 - Apoio à Execução de Projetos e Obras de Contenção de Encostas em Áreas Urbanas.</label>
......@@ -44,14 +47,40 @@
</div>
<div class="p-3 text-right">
<button class="br-button primary mr-3" name="Salvar" v-if="this.countItens > 0">Salvar
</button>
<button class="br-button danger mr-3" type="button" onclick="javascript:window.history.go(-1)">
Fechar
</button>
</div>
</div>
<!-- div row -->
</template>
<script>
export default {
props:['url','itens','proposta','blnbotao'],
data(){
return{
itensFinanciaveis:'',
itemFinanciavel:'',
bln_erros:'',
item_financiavel:[],
countItens:0,
}
},
methods:{
onChangeItem(){
this.countItens = this.item_financiavel.length;
console.log(this.countItens);
}
},
mounted() {
this.item_financiavel = [];
this.countItens = this.item_financiavel.length;
console.log('Component mounted.')
}
}
</script>
......@@ -37,6 +37,8 @@
</cabecalho-relatorios>
<form id="form_cancelar_proposta" class="form-horizontal" role="form" method="POST" action='{{ url("admin/proposta/correcao/salvar") }}'>
{{ csrf_field() }}
<input type="hidden" id="proposta_id_corrigida" name="proposta_id_corrigida" value="{{$proposta->id}}">
<div class="form-group">
<p>
......
......@@ -30,7 +30,7 @@ Route::get('/tipo_indeferimento/providencias/{tipo}', 'ApiController@buscarProvi
Route::get('/modalidade_participacao', 'ApiController@modalidadeParticipacao');
Route::get('/itens/modalidade/{selecao}', 'ApiController@itensFinModalidades');
Route::get('/motivo_cancelamento', 'ApiController@motivoCancelamento');
Route::get('/motivo_correcao', 'ApiController@motivoCorrecao');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment