✏️ 正在编辑: Grafico.php
路径:
/srv/systems_dir/yuppiecred-bkp/application/models/Grafico.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_Grafico { /** * Gera um grafico de producao por rota * @return type */ public function producaoRota($fields = array()) { $chart = new Core_GChart('drawColumnChart'); $chart->setWidth(500); $chart->setHeight(300); $chart->setIdentifier('chart_div'); $chart->setTitle('Produção por Rotas (%)'); $columns = array( array( 'type' => 'string', 'value' => 'Rotas', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000' ) ); $rows = array(); $rota = new Model_Rota(); $values = $rota->getProducao($fields, "rotas.nome ASC", "rotas.id"); foreach ( $values as $value ) { array_push($rows, array( 'legend' => $value['rota'], 'values' => array( $value['total_producao'] ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->drawColumnChart(); return $chart->getOutput(); } public function producaoCorretorMensalConvenios($fields = array()) { $chart = new Core_GChart('drawPieChart'); $chart->setWidth(500); $chart->setHeight(300); $chart->setIdentifier('chart_convenio'); $chart->setTitle('Convênios dos últimos 12 meses'); $columns = array( array( 'type' => 'string', 'value' => 'Situação', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000' ) ); $rows = array(); foreach ( $fields as $value ) { array_push($rows, array( 'legend' => $value['nome_convenio'], 'values' => array( $value['qtd_contratos'] ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->drawPieChart(); return $chart->getOutput(); } public function producaoCorretorRankProduto($fields = array()) { $chart = new Core_GChart('drawPieChart'); $chart->setWidth(500); $chart->setHeight(300); $chart->setIdentifier('chart_rank_produtos'); $chart->setTitle('Tipo de contrato dos últimos 12 meses.'); $columns = array( array( 'type' => 'string', 'value' => 'Situação', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000' ) ); $rows = array(); foreach ( $fields as $value ) { array_push($rows, array( 'legend' => $value['tipo'], 'values' => array( $value['total_producao'] ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->drawPieChart(); return $chart->getOutput(); } public function producaoStatus($fields = array()) { $chart = new Core_GChart('drawPieChart'); $chart->setWidth(500); $chart->setHeight(300); $chart->setIdentifier('chart_div2'); $chart->setTitle('Produção por Status (%)'); $columns = array( array( 'type' => 'string', 'value' => 'Situação', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000' ) ); $rows = array(); $model = new Model_Rota(); $values = $model->getProducao($fields, "status_proposta_nome ASC", "status_propostas.id"); foreach ( $values as $value ) { array_push($rows, array( 'legend' => $value['status_proposta_nome'], 'values' => array( $value['quantidade_total'] ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->drawPieChart(); return $chart->getOutput(); } public function producaoPeriodo($fields = array()) { $chart = new Core_GChart('drawLineChart'); $chart->setWidth(500); $chart->setHeight(300); $chart->setIdentifier('chart_div3'); $chart->setTitle('Produção por Liberação'); $columns = array( array( 'type' => 'string', 'value' => 'Data', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000' ) ); $rows = array(); $rota = new Model_Rota(); $values = $rota->getProducao($fields, "contratos.data_liberacao ASC", "contratos.data_liberacao"); foreach ( $values as $value ) { array_push($rows, array( 'legend' => $value['data_liberacao'], 'values' => array( $value['total_producao'] ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->drawLineChart(); return $chart->getOutput(); } public function producaoMensal($fields = array()) { $chart = new Core_GChart('drawLineChart'); $chart->setWidth(500); $chart->setHeight(300); $chart->setIdentifier('chart_div4'); $chart->setTitle('Produção por Liberação - Mensal'); $columns = array( array( 'type' => 'string', 'value' => 'Data', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000' ) ); $rows = array(); $rota = new Model_Rota(); $values = $rota->getProducao($fields, "contratos.data_liberacao ASC", "DATE_FORMAT(contratos.data_liberacao, '%Y-%m')"); foreach ( $values as $value ) { array_push($rows, array( 'legend' => $value['mes_producao'], 'values' => array( $value['total_producao'] ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->drawLineChart(); return $chart->getOutput(); } public function producaoMensalBanco($bancos) { $renderizar = ""; foreach ( $bancos as $key => $b ) { $status = new Model_DbTable_BancoStatusMeta(); $statusMetas = $status->fetchAll("banco_id = {$b['id']}"); if( count($statusMetas) > 0 ){ foreach ( $statusMetas as $s ) { $statusProposta[] = $s['status_proposta']; } } $params = array( 'data_liberacao_de' => Zend_Date::now()->setDay(1)->get('dd/MM/yyyy'), 'data_liberacao_a' => Zend_Date::now()->get('dd/MM/yyyy'), 'status_proposta' => isset($statusProposta) ? $statusProposta : array(), 'banco_id' => $b['id'], 'chart_div' => "chart_div_$key" ); $renderizar .= $this->tetoProducao($params); } return $renderizar; } public function producaoMensalProduto($produtos) { $renderizar = ""; foreach ( $produtos as $key => $p ) { $status = new Model_DbTable_TipoProdutoStatusMeta(); $statusMetas = $status->fetchAll("tipo_produto_id = {$p['id']}"); if( count($statusMetas) > 0 ){ foreach ( $statusMetas as $s ) { $statusProposta[] = $s['status_proposta']; } } $params = array( 'data_liberacao_de' => Zend_Date::now()->setDay(1)->get('dd/MM/yyyy'), 'data_liberacao_a' => Zend_Date::now()->get('dd/MM/yyyy'), 'status_proposta' => isset($statusProposta) ? $statusProposta : array(), 'tipo_produto_id' => $p['id'], 'chart_div' => "chart_div_produto_$key" ); $renderizar .= $this->tetoProducaoProduto($params); } return $renderizar; } public function tetoProducaoProduto($fields = array()) { $chart = new Core_GChart("drawGaugeChart"); $chart->setWidth(300); $chart->setHeight(170); $chart->setIdentifier($fields['chart_div']); $chart->setTitle('Produção'); $produto = new Model_TipoProduto(); $dadosProduto = $produto->exibir($fields['tipo_produto_id']); $producao = $produto->getTetoProducaoProduto($fields); $rows = array(); if( !empty($dadosProduto['descricao']) ){ array_push($rows, array( 'legend' => strtok($dadosProduto['descricao'], ' '), 'value' => $producao['total_valor_liquido'] ? $producao['total_valor_liquido'] : 0 )); $chart->setRows($rows); $chart->drawGaugeChart(array( 'max' => $dadosProduto->teto_producao ), false); return $chart->getOutput(1); } return false; } public function tetoProducao($fields = array()) { $chart = new Core_GChart("drawGaugeChart"); $chart->setWidth(300); $chart->setHeight(170); $chart->setIdentifier($fields['chart_div']); $chart->setTitle('Produção'); $dbtable = new Model_DbTable_BancoComissao(); $convenios = $dbtable->fetchAll("banco_id = " . $fields['banco_id'] . ""); $fields['convenio_id'] = array(); $fields['tabela_id'] = array(); foreach ( $convenios as $c ) { if( !in_array($c['convenio_id'], $fields['convenio_id']) ){ array_push($fields['convenio_id'], $c['convenio_id']); } if( !in_array($c['tabela_id'], $fields['tabela_id']) ){ array_push($fields['tabela_id'], $c['tabela_id']); } } $banco = new Model_Banco(); $dadosBanco = $banco->exibir($fields['banco_id']); $producao = $banco->getTetoProducaoBanco($fields); $rows = array(); if( !empty($dadosBanco['nome']) ){ array_push($rows, array( 'legend' => strtok($dadosBanco['nome'], ' '), 'value' => $producao['total_valor_liquido'] ? $producao['total_valor_liquido'] : 0 )); $chart->setRows($rows); $chart->drawGaugeChart(array( 'max' => $dadosBanco->teto_producao ), false); return $chart->getOutput(1); } return false; } public function producaoGerenteMeta($values = array()) { $chart = new Core_GChart('drawGaugeChart'); $chart->setWidth(400); $chart->setHeight(170); $chart->setTitle('Produção Gerente'); $rows = array(); $model = new Model_GerenteMeta(); $contrato = new Model_Contrato(); $vlProducao = 0; $meta = 0; $result = ''; $fields = array(); foreach ( $values as $key => $value ) { $chart->setIdentifier("chart_div_gerente{$key}"); if( $value['gerente_id'] > 0 ){ $fields = array( 'gerente_comercial_id' => $value['gerente_id'] ); } elseif( $value['gerente_rota_id'] > 0 ){ $fields = array( 'gerente_rota_id' => $value['gerente_rota_id'] ); } $status = $model->findStatusProposta($fields); $fields['status_proposta'] = $status; $fields['banco_id'] = $value['banco_id']; $dtInicial = new Zend_Date($value['data_inicial']); $dtFinal = new Zend_Date($value['data_final']); $fields['data_liberacao_de'] = $dtInicial->get('dd/MM/yyyy'); $fields['data_liberacao_a'] = $dtFinal->get('dd/MM/yyyy'); $producao = $contrato->getProducaoGerenteTotalizador($fields); $vlProducao = !empty($producao['total_liquido']) ? $producao['total_liquido'] : 0.00; $meta = empty($value['total_meta']) ? 0.00 : $value['total_meta']; $rows = array( 'legend' => strtok($value['banco'], ' '), 'value' => $vlProducao, 'cont' => $key ); $result .= $chart->setRows($rows); $result .= $chart->drawGaugeChart(array( 'max' => $meta ), true); $result .= $chart->getOutput(1); } return $result; } public function producaoGerenteMetaAjax($values = array()) { $gerenteMeta = new Model_GerenteMeta(); $contrato = new Model_Contrato(); $fields = array(); $json = array(); foreach ( $values as $key => $value ) { if( $value['gerente_id'] > 0 ){ $fields = array( 'gerente_comercial_id' => $value['gerente_id'] ); } elseif( $value['gerente_rota_id'] > 0 ){ $fields = array( 'gerente_id' => $value['gerente_rota_id'] ); } // $status = $gerenteMeta->findStatusProposta($fields); $status = Model_Contrato::findByNameStatus(array( "Operação Finalizada", "Pagamento Enviado" )); $dtInicial = new Zend_Date($value['data_inicial']); $dtFinal = new Zend_Date($value['data_final']); $fields['data_liberacao_de'] = $dtInicial->get('dd/MM/yyyy'); $fields['data_liberacao_a'] = $dtFinal->get('dd/MM/yyyy'); $fields['status_proposta'] = $status; $fields['banco_id'] = $value['banco_id']; $producao = $contrato->getProducaoGerenteTotalizador($fields); $vlProducao = !empty($producao['total_liquido']) ? $producao['total_liquido'] : 0.00; $meta = empty($value['total_meta']) ? 0.00 : $value['total_meta']; $json[$key] = array( "max" => $meta, "label" => $value['banco'] ? $value['banco'] : 'GERAL', "producao" => $vlProducao ); } return $json; } public function producaoCorretor($values = array()) { $chart = new Core_GChart('drawGaugeChart'); $chart->setWidth(400); $chart->setHeight(170); $chart->setTitle('Produção Corretor'); $rows = array(); $model = new Model_CorretorMeta(); $contrato = new Model_Contrato(); $vlProducao = 0; $meta = 0; $result = ''; $fields = array(); foreach ( $values as $key => $value ) { $chart->setIdentifier("chart_div_corretor{$key}"); if( $value['corretor_id'] ){ $fields['corretor_id'] = $value['corretor_id']; } $status = $model->findStatusProposta($fields); $fields['status_proposta'] = $status; $fields['banco_id'] = $value['banco_id']; $dtInicial = new Zend_Date($value['data_inicial']); $dtFinal = new Zend_Date($value['data_final']); $fields['data_liberacao_de'] = $dtInicial->get('dd/MM/yyyy'); $fields['data_liberacao_a'] = $dtFinal->get('dd/MM/yyyy'); if( $value['protocolo_fisico'] ){ $fields["protocolo_fisico_meta_corretor"] = true; } $producao = $contrato->getProducaoAnaliticoTotalizador($fields); $vlProducao = !empty($producao['total_liquido']) ? $producao['total_liquido'] : 0.00; $meta = empty($value['total_meta']) ? 0.00 : $value['total_meta']; $rows = array( 'legend' => strtok($value['banco'], ' '), 'value' => $vlProducao, 'cont' => $key ); $result .= $chart->setRows($rows); $result .= $chart->drawGaugeChart(array( 'max' => $meta ), true); $result .= $chart->getOutput(1); } return $result; } public function producaoCorretorMensal($values) { $chart = new Core_GChart('drawLineChart'); $chart->setWidth(1200); $chart->setHeight(280); $chart->setIdentifier('chart_producao'); $chart->setTitle('Produção dos últimos 12 meses'); $columns = array( array( 'type' => 'string', 'value' => '', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000' ) ); $rows = array(); foreach ( $values as $value ) { array_push($rows, array( 'legend' => $value['liberacao'], 'values' => array( isset($value['valor']) ? $value['valor'] : '0' ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->drawLineChart(); return $chart->getOutput(); } public function metaVendasOperador($fields = array()) { $chart = new Core_GChart('drawPieChart'); $chart->setWidth(300); $chart->setHeight(300); $chart->setIdentifier('chart_meta_venda_operador'); $chart->setTitle('Meta de Vendas'); $tbCorretorMetaOperador = new Model_DbTable_CorretorMetaOperador(); $values = $tbCorretorMetaOperador->metasOperadores(); $values = $values[670]; $columns = array( array( 'type' => 'string', 'value' => $values['operador'], 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Previsto', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Realizado', 'color' => 'FF0000' ) ); $rows = array( array( 'values' => array( $values['meta'], $values['valor_producao'] ) ) ); $chart->setColumns($columns); $chart->setRows($rows); $chart->drawPieChart(); return $chart->getOutput(); } public function producaoAgrupadaPor($fields = array(), $group = null, $name = null, $chartDiv = 0, $typeChart = null, $clausula = null) { $chart = new Core_GChart($typeChart); $chart->setWidth(700); $chart->setHeight(300); $chart->setIdentifier("chart_div{$chartDiv}"); $chart->setTitle("Produção por {$name} (%)"); $columns = array( array( 'type' => 'string', 'value' => 'Registros', 'color' => 'FF0000' ), array( 'type' => 'number', 'value' => 'Produção', 'color' => 'FF0000', ) ); $rows = array(); $model = new Model_Contrato(); $values = $model->getProducaoSinteticoAgrupado($fields, "total_liquido ASC", null, null, $group, $clausula); foreach ( $values as $value ) { if( !$value[$group] ){ $value[$group] = "Outro"; } array_push($rows, array( 'legend' => $value[$group], 'values' => array( $value['total_liquido'] ) )); } $chart->setColumns($columns); $chart->setRows($rows); $chart->$typeChart(); return $chart->getOutput(); } }
💾 保存文件
← 返回文件管理器