D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
rosario
/
adm
/
app
/
gre
/
Models
/
Portal
/
Filename :
ModPtAcaoContratoCadastrar.php
back
Copy
<?php namespace App\gre\Models; if (!defined('URL')) { header("Location: /"); exit();} /** * Description of ModTradeContratoCadastrar * * @copyright (c) year,Carlos Marques CM */ class ModTradeAcaoContratoCadastrar{ private $Resultado; private $Dados; private $DadosLoja; private $DadosProd; private $DadosMarca; private $DadosItemProd; private $DadosItemContr; private $DadosFilialContr; private $DadosCabContr; private $DadosPlano; private $DadosReceber; private $Contrato_id; private $TotalContratoTab; private $TotalContratoNeg; private $Duplo; private $substituicao = array( '-' => '', ' ' => '', '_' => '', '/' => '', '.' => '', ',' => '.', '(' => '', ')' => '' , 'R$ ' => ''); function getResultado() { return $this->Resultado; } public function cadContr(array $Dados) { $this->Dados = $Dados; $this->Dados['data_inicio'] = $this->Dados['data_inicio'].'-01'; $data_f = substr($this->Dados['data_vigencia'], 6,4).'-'.substr($this->Dados['data_vigencia'], 3,2).'-'.substr($this->Dados['data_vigencia'], 0,2); $this->Dados['data_fim'] = $data_f; $plano = explode("-", $this->Dados['plano_id']); $this->Dados['plano_id'] = $plano[1]; $this->Dados['created'] = date("Y-m-d H:i:s"); $this->Dados['usuario_id'] = $_SESSION['usuario_id']; $this->retiraMasc(); // var_dump($this->Dados); // die; $this->verificaCampos(); if ( $this->Resultado) { if ($plano[0] == 'N') { $this->verificaCamposAvulso(); $this->verificaDuplo(); // var_dump($this->Resultado); if ( $this->Resultado) { if($this->Dados['upmarca'] == 'S') { $this->DadosMarca['id'] = $this->Dados['marca_id']; $this->DadosMarca['razao_social'] = $this->Dados['razao_social']; $this->DadosMarca['cnpj'] = $this->Dados['cnpj']; $upAltMarca = new \App\adms\Models\helper\AdmsUpdate(); $upAltMarca->exeUpdate("ro_marca", $this->DadosMarca, "WHERE id =:id", "id=" . $this->DadosMarca['id']); } $this->Dados['status_id'] = 1; unset($this->Dados['urladm']); $this->DadosLoja = $this->Dados; unset($this->DadosLoja['gravar_prod']); $this->DadosProd = $this->Dados; unset($this->DadosProd['gravar_lojas']); unset($this->Dados['gravar_lojas']); unset($this->Dados['gravar_prod']); unset($this->Dados['qtde_disp']); unset($this->Dados['hoje']); $listar = new \App\adms\Models\helper\AdmsRead(); $listar->fullRead("select contr_id, sum(valor_total_tabela) valor_tabela from ro_trade_item_contrato where contr_id = {$this->Dados['contr_id']}"); $this->DadosAcao['total'] = $listar->getResultado(); //var_dump($this->DadosAcao['total'][0]['valor_tabela']); if($this->Dados['valor_investido'] == ''){ $this->Dados['valor_investido'] = $this->DadosAcao['total'][0]['valor_tabela']; } if($this->Dados['valor_investido'] == 0){ $this->Dados['valor_investido'] = $this->DadosAcao['total'][0]['valor_tabela']; } $this->DadosCabContr['id'] = $this->DadosAcao['total'][0]['contr_id']; $this->DadosCabContr['marca_id'] = $this->Dados['marca_id']; $this->DadosCabContr['nome'] = $this->Dados['gre_marca_id_aux']; $this->DadosCabContr['plano_id'] = $this->Dados['plano_id']; $this->DadosCabContr['parcelas'] = $this->Dados['parcelas']; $this->DadosCabContr['celular_contratante'] = $this->Dados['celular_contratante']; $this->DadosCabContr['contato'] = $this->Dados['contato']; $this->DadosCabContr['tipo_contrato_id'] = 1; $this->DadosCabContr['data_emissao'] = $this->Dados['data_inicio']; $this->DadosCabContr['final_vigencia'] = $this->Dados['vigencia_num']; $this->DadosCabContr['valor_tabela'] = $this->DadosAcao['total'][0]['valor_tabela']; $this->DadosCabContr['valor_total_tabela'] = $this->DadosAcao['total'][0]['valor_tabela']; // $this->DadosCabContr['valor_tabela_negociado'] =$this->DadosAcao['total'][0]['valor_negociado']; $this->DadosCabContr['valor_total_negociado'] = $this->Dados['valor_investido']; $this->DadosCabContr['observacao'] = $this->Dados['observacao']; $this->DadosCabContr['created'] = $this->Dados['created']; $this->DadosCabContr['usuario_id'] =$this->Dados['usuario_id']; $this->DadosCabContr['situacao_id'] = 1; // echo '<pre>'; // var_dump($this->Dados); // var_dump($this->DadosCabContr); // echo '</pre>'; // die; $cadCabContr = new \App\adms\Models\helper\AdmsUpdate(); $cadCabContr->exeUpdate("ro_trade_cab_contrato", $this->DadosCabContr, "WHERE id =:id", "id=" . $this->DadosCabContr['id']); // GRAVA RO_TRADE_RECEBER $resto = ($this->DadosCabContr['valor_total_negociado'] / $this->DadosCabContr['parcelas']); $parcela = (floor($resto * 100) / 100); $prim_parcela = round($this->DadosCabContr['valor_total_negociado'] - (floor($resto * 100) / 100)* $this->DadosCabContr['parcelas'],2) + $parcela; $data_venc = date("Y-m-d", strtotime($this->Dados['data_inicio']. "+". 1 ." ".'month')); $data_venc = substr($data_venc, 0,8).'15'; for($i =1; $i < $this->DadosCabContr['parcelas'] + 1; $i++){ $this->DadosReceber['contr_id'] = $this->DadosAcao['total'][0]['contr_id']; $this->DadosReceber['marca_id'] = $this->Dados['marca_id']; $this->DadosReceber['nome'] = $this->Dados['gre_marca_id_aux']; $this->DadosReceber['tipo_contrato_id'] = 1; $this->DadosReceber['data_emissao'] = $this->Dados['data_inicio']; $this->DadosReceber['data_vencimento'] = $data_venc; $this->DadosReceber['parcela_num'] = $i; $this->DadosReceber['parcela_de'] = $this->DadosCabContr['parcelas']; if ($i == 1) { $this->DadosReceber['valor_bruto'] = $prim_parcela; $this->DadosReceber['valor_liquido'] = $prim_parcela; }else{ $this->DadosReceber['valor_bruto'] = $parcela; $this->DadosReceber['valor_liquido'] = $parcela; } $this->DadosReceber['created'] = $this->Dados['created']; $this->DadosReceber['usuario_id'] =$this->Dados['usuario_id']; $cadReceber = new \App\adms\Models\helper\AdmsCreate; $cadReceber->exeCreate("ro_trade_receber", $this->DadosReceber); $data_venc = date("Y-m-d", strtotime($data_venc. "+". 1 ." ".'month')); } $_SESSION['msg'] = "<div class='alert alert-success'>Contrato cadastrado com sucesso!</div>"; $this->Resultado = true; } }else{ // TRATA CONTRADOS DE PACOTE $this->verificaCamposPacote(); if ( $this->Resultado) { // GRAVA RO_TRADE_CAB_CONTRATO if($this->Dados['upmarca'] == 'S') { $this->DadosMarca['id'] = $this->Dados['marca_id']; $this->DadosMarca['razao_social'] = $this->Dados['razao_social']; $this->DadosMarca['cnpj'] = $this->Dados['cnpj']; $upAltMarca = new \App\adms\Models\helper\AdmsUpdate(); $upAltMarca->exeUpdate("ro_marca", $this->DadosMarca, "WHERE id =:id", "id=" . $this->DadosMarca['id']); } $this->pega_ultimo_id(); // echo '<pre>'; // var_dump($this->Dados); // echo '</pre>'; $this->DadosCabContr['id'] = $this->Dados['contr_id']; $this->DadosCabContr['marca_id'] = $this->Dados['marca_id']; $this->DadosCabContr['nome'] = $this->Dados['gre_marca_id_aux']; $this->DadosCabContr['plano_id'] = $this->Dados['plano_id']; $this->DadosCabContr['parcelas'] = $this->Dados['parcelas']; $this->DadosCabContr['celular_contratante'] = $this->Dados['celular_contratante']; $this->DadosCabContr['contato'] = $this->Dados['contato']; $this->DadosCabContr['tipo_contrato_id'] = 1; $this->DadosCabContr['data_emissao'] = $this->Dados['data_inicio']; $this->DadosCabContr['final_vigencia'] = $this->Dados['vigencia_num']; $this->DadosCabContr['valor_tabela'] = $this->Dados['preco_venda_tabela']; if($this->Dados['valor_investido'] == ''){ $this->Dados['valor_investido'] = $this->DadosCabContr['valor_tabela'] * $this->Dados['meses_vigencia']; } if($this->Dados['valor_investido'] == 0){ $this->Dados['valor_investido'] = $this->DadosCabContr['valor_tabela']* $this->Dados['meses_vigencia']; } $this->DadosCabContr['valor_total_tabela'] = $this->DadosCabContr['valor_tabela'] * $this->Dados['meses_vigencia']; $this->DadosCabContr['valor_total_negociado'] = $this->Dados['valor_investido']; $this->DadosCabContr['observacao'] = $this->Dados['observacao']; $this->DadosCabContr['created'] = $this->Dados['created']; $this->DadosCabContr['usuario_id'] =$this->Dados['usuario_id']; $this->DadosCabContr['situacao_id'] = 1; $cadCabContr = new \App\adms\Models\helper\AdmsCreate; $cadCabContr->exeCreate("ro_trade_cab_contrato", $this->DadosCabContr); // GRAVA RO_TRADE_RECEBER $resto = ($this->DadosCabContr['valor_total_negociado'] / $this->DadosCabContr['parcelas']); $parcela = (floor($resto * 100) / 100); $prim_parcela = round($this->DadosCabContr['valor_total_negociado'] - (floor($resto * 100) / 100)* $this->DadosCabContr['parcelas'],2) + $parcela; $data_venc = date("Y-m-d", strtotime($this->Dados['data_inicio']. "+". 1 ." ".'month')); $data_venc = substr($data_venc, 0,8).'15'; for($i =1; $i < $this->DadosCabContr['parcelas'] + 1; $i++){ $this->DadosReceber['contr_id'] = $this->Dados['contr_id']; $this->DadosReceber['marca_id'] = $this->Dados['marca_id']; $this->DadosReceber['nome'] = $this->Dados['gre_marca_id_aux']; $this->DadosReceber['tipo_contrato_id'] = 1; $this->DadosReceber['data_emissao'] = $this->Dados['data_inicio']; $this->DadosReceber['data_vencimento'] = $data_venc; $this->DadosReceber['parcela_num'] = $i; $this->DadosReceber['parcela_de'] = $this->DadosCabContr['parcelas']; if ($i == 1) { $this->DadosReceber['valor_bruto'] = $prim_parcela; $this->DadosReceber['valor_liquido'] = $prim_parcela; }else{ $this->DadosReceber['valor_bruto'] = $parcela; $this->DadosReceber['valor_liquido'] = $parcela; } $this->DadosReceber['created'] = $this->Dados['created']; $this->DadosReceber['usuario_id'] =$this->Dados['usuario_id']; $cadReceber = new \App\adms\Models\helper\AdmsCreate; $cadReceber->exeCreate("ro_trade_receber", $this->DadosReceber); $data_venc = date("Y-m-d", strtotime($data_venc. "+". 1 ." ".'month')); } // GRAVA RO_TRADE_AÇÕES - POR LOJA $listar = new \App\adms\Models\helper\AdmsRead(); $listar->fullRead("select p.*, a.filial_controle, a.controla_prod, a.base_id, a.preco_venda, b.base sigla from ro_trade_pacote p inner join ro_trade_acao a on a.id = p.acao_id inner join ro_trade_base b on b.id = a.base_id where p.plano_id = {$this->Dados['plano_id']}"); $this->DadosPlano['acao'] = $listar->getResultado(); //var_dump($this->DadosPlano['acao']); foreach ($this->DadosPlano['acao'] as $acao) { extract($acao); foreach($this->Dados['gravar_lojas'] as $key => $value) { $this->DadosItemContr['controla_prod'] = $controla_prod; $this->DadosItemContr['qtde_acao'] = $qtde_acao; $this->DadosItemContr['periodo'] = $periodo; $this->DadosItemContr['plano_id'] = $plano_id; $this->DadosItemContr['tipo_id'] = $tipo_id; $this->DadosItemContr['sub_tipo_id'] = $sub_tipo_id; $this->DadosItemContr['acao_id'] = $acao_id; $this->DadosItemContr['data_inicio'] = $this->Dados['data_inicio']; $this->DadosItemContr['data_fim'] = $this->Dados['vigencia_num']; $this->DadosItemContr['contr_id']= $this->Dados['contr_id']; $this->DadosItemContr['base_id'] = $base_id; $this->DadosItemContr['base_sigla'] = $sigla; $this->DadosItemContr['valor_unit_tabela'] = $preco_venda; $this->DadosItemContr['qtde_meses'] = $this->Dados['meses_vigencia']; $this->DadosItemContr['valor_total_tabela'] = 0 ; $this->DadosItemContr['filial_id'] = $key; $cadItem = new \App\adms\Models\helper\AdmsCreate; $cadItem->exeCreate("ro_trade_item_contrato", $this->DadosItemContr); } } } } } // inicializa datas das ações $IniciaDatas = new \App\adms\Models\helper\AdmsProcedure; $IniciaDatas->exeProcedure("start_trade_data", $this->DadosItemContr['contr_id']); } private function retiraMasc() { $this->Dados['celular_contratante'] = strtr($this->Dados['celular_contratante'] , $this->substituicao); $this->Dados['valor_investido'] = strtr($this->Dados['valor_investido'] , $this->substituicao); $this->Dados['preco_venda_tabela'] = strtr($this->Dados['preco_venda_tabela'] , $this->substituicao); if (isset($this->Dados['parcelas'])) { $this->Dados['parcelas'] = strtr($this->Dados['parcelas'] , $this->substituicao); if ( $this->Dados['parcelas']== '') { $this->Dados['parcelas']= 0; } } if (isset($this->Dados['cnpj'])) { $this->Dados['cnpj'] = strtr($this->Dados['cnpj'] , $this->substituicao); } } private function pega_ultimo_id() { $verContrato_id = new \App\adms\Models\helper\AdmsRead(); $verContrato_id->fullRead("SELECT coalesce(max(id),0) + 1 contr_id FROM ro_trade_cab_contrato"); $this->Contrato_id = $verContrato_id->getResultado(); $this->Dados['contr_id'] = $this->Contrato_id[0]['contr_id']; } private function verificaCampos() { $this->Resultado = true; if (empty($this->Dados['marca_id'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong>Marca é Obrigatório !</div>"; $this->Resultado = false; } if (empty($this->Dados['data_inicio'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong>Data de Início é Obrigatória !</div>"; $this->Resultado = false; } if (empty($this->Dados['plano_id'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Plano é Obrigatório!</div>"; $this->Resultado = false; } if (empty($this->Dados['contato'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Contato é Obrigatório!</div>"; $this->Resultado = false; } if (empty($this->Dados['celular_contratante'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Celular Contratante é obrigatorio!</div>"; $this->Resultado = false; } $total_qtde = 0; } private function verificaCamposPacote(){ $this->Resultado = true; if (empty($this->Dados['razao_social'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Razao Social é Obrigatória !</div>"; $this->Resultado = false; exit; } if (empty($this->Dados['cnpj'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> CNPJ é Obrigatório !</div>"; $this->Resultado = false; } } private function verificaCamposAvulso() { $this->Resultado = true; if (empty($this->Dados['tipo_id'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Tipo é Obrigatório!</div>"; $this->Resultado = false; } if (empty($this->Dados['sub_tipo_id'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Sub-Tipo é Obrigatório!</div>"; $this->Resultado = false; } if (empty($this->Dados['acao_id'])) { $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Ação é Obrigatório!</div>"; $this->Resultado = false; } } private function verificaDuplo(){ $verDuplo = new \App\adms\Models\helper\AdmsRead(); $verDuplo->fullRead("SELECT count(*) contr_id FROM ro_trade_cab_contrato WHERE plano_id = :plano_id and tipo_id = :tipo_id and sub_tipo_id = :sub_tipo_id and contratante_id = :contratante_id and acao_id = :acao_id and data_inicio >= :data_inicio and data_vigencia <= :data_fim", "plano_id=" . $this->Dados['plano_id'] . "&tipo_id=" . $this->Dados['tipo_id'] . "&sub_tipo_id=" . $this->Dados['sub_tipo_id'] . "&contratante_id=" . $this->Dados['marca_id'] . "&acao_id=" . $this->Dados['acao_id']."&data_inicio=" . $this->Dados['data_inicio']."&data_fim=" . $this->Dados['data_fim']); $this->Duplo = $verDuplo->getResultado(); if(empty($this->Duplo)) { $this->Resultado = true; }else{ if($this->Duplo[0]['contr_id'] == 0) { $this->Resultado = true; }else{ $this->Resultado = false; $_SESSION['msg'] = "<div class='alert alert-danger'><button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button><strong>Erro!</strong> Contrato já cadastrado para esse periodo!</div>"; } } } public function listarCadastrar() { $this->ResidId = filter_input(INPUT_GET, 'id'); $listar = new \App\adms\Models\helper\AdmsRead(); $this->idUser = $_SESSION['id_user']; $listar->fullRead("SELECT filial.id id_filial, filial.nome filial_nome FROM ro_filial filial where filial.situacao_id = 1 order by id"); $registro['filial'] = $listar->getResultado(); $listar->fullRead("SELECT marca.id marca_id , marca.nome nome_marca, marca.razao_social razao_social_marca, marca.cnpj cnpj_marca FROM ro_marca marca order by nome_marca"); $registro['marca'] = $listar->getResultado(); $listar->fullRead("SELECT preco.plano_id, preco.tipo_id, preco.sub_tipo_id, preco.acao_id, sub_tipo.base_id, base.nome base_nome, format(COALESCE(preco.preco_venda, 0), 2, 'de_DE') preco_venda FROM ro_trade_preco preco inner join ro_trade_sub_tipo_acao sub_tipo on sub_tipo.id = preco.sub_tipo_id inner join ro_trade_base base on base.id = sub_tipo.base_id order by preco.plano_id, preco.tipo_id, preco.sub_tipo_id, preco.acao_id"); $registro['preco'] = $listar->getResultado(); $listar->fullRead("SELECT grupserv.id grupserv_id, grupserv.nome grupserv_nome FROM gre_grupo_servico grupserv order by grupserv.id"); $registro['grupserv'] = $listar->getResultado(); $listar->fullRead("SELECT tipo.id tipo_id, tipo.nome tipo_nome FROM ro_trade_tipo_acao tipo"); $registro['tipo'] = $listar->getResultado(); $listar->fullRead("SELECT sub_tipo.id sub_tipo_id, sub_tipo.tipo_id tipo_id, sub_tipo.nome sub_tipo_nome FROM ro_trade_sub_tipo_acao sub_tipo order by sub_tipo_id"); $registro['sub_tipo'] = $listar->getResultado(); $listar->fullRead("SELECT acao.id acao_id, acao.tipo_id tipo_id, acao.sub_tipo_id sub_tipo_id, acao.nome acao_nome, acao.filial_controle, base.abrangencia, format(acao.preco_venda, 2, 'de_DE') preco_venda, acao.filial_controle, acao.base_id, base.nome base_nome, base.base base_sigla, acao.controla_prod FROM ro_trade_acao acao inner join ro_trade_base base on base.id = acao.base_id"); $registro['acao'] = $listar->getResultado(); $this->Resultado = ['marca' => $registro['marca'],'preco' => $registro['preco'], 'filial' => $registro['filial'],'tipo' => $registro['tipo'], 'sub_tipo' => $registro['sub_tipo'], 'acao' => $registro['acao']]; return $this->Resultado; } }