public function indexAction() { /** * Total de clientes */ $modelClientes = new Model_DbTable_Cliente(); $this->view->clientes = $modelClientes->fetchAll(); /** * Total de propostas */ $modelProposta = new Model_DbTable_Proposta(); $propostas = $modelProposta->fetchAll(); $this->view->propostas = $propostas; $total_horas_propostas = 0; $total_valor_propostas = 0; foreach ($propostas as $proposta) { $total_horas_propostas += $proposta->proposta_horas; $total_valor_propostas += $proposta->proposta_valor; } $this->view->total_horas_proposta = $total_horas_propostas; $this->view->total_valor_proposta = $total_valor_propostas; /** * Total de Projetos */ $modelProjeto = new Model_DbTable_Projeto(); $projetos = $modelProjeto->fetchAll(); $this->view->projetos = $projetos; /** * Total Faturamento */ $modelFaturamento = new Model_DbTable_Faturamento(); $faturamentos = $modelFaturamento->fetchAll(); $faturamento_total = 0; $receber = 0; $recebido = 0; foreach ($faturamentos as $faturamento) { if ($faturamento->faturamento_status === self::STATUS_AGUARDANDO_PAGAMENTO) { $receber += $faturamento->faturamento_valor; } if ($faturamento->faturamento_status === self::STATUS_PAGO) { $recebido += $faturamento->faturamento_valor; } $faturamento_total += $faturamento->faturamento_valor; } $this->view->faturamento_total = $faturamento_total; $this->view->receber = $receber; $this->view->recebido = $recebido; /** * Total de Horas Trbalhadas */ $modelControleHoras = new Model_DbTable_ControleHoras(); $horas = $modelControleHoras->fetchAll(); $horas_trabalhadas = 0; foreach ($horas as $hora) { $zendDateInicio = new Zend_Date($hora->controle_horas_data_inicio); $zendDateFim = new Zend_Date($hora->controle_horas_data_fim); $horas_trabalhadas += $zendDateFim->sub($zendDateInicio)->get(Zend_Date::TIMESTAMP); } $this->view->horas = ceil($horas_trabalhadas / 3600); }
private function getPropostas() { $options = array("" => "Selecione...", 0 => "Sem proposta"); $modelProposta = new Model_DbTable_Proposta(); $propostas = $modelProposta->getPropostasByStatus("Aprovada"); foreach ($propostas as $proposta) { $options[$proposta->proposta_id] = $proposta->proposta_numero; } return $options; }
private function atualizaStatus() { $modelProposta = new Model_DbTable_Proposta(); $where = "proposta_status = 'Aguardando resposta'"; $propostas = $modelProposta->fetchAll($where); $zendDateNow = new Zend_Date(); foreach ($propostas as $proposta) { $zendDateVencimento = new Zend_Date($proposta->proposta_vencimento); if ($zendDateVencimento->isEarlier($zendDateNow)) { // atualiza o status $update = array('proposta_status' => self::STATUS_VENCIDA); try { $modelProposta->updateById($update, $proposta->proposta_id); } catch (Exception $ex) { continue; } } } }
/** * Detalhes do cadastro e acoes para os registros */ public function detalhesAction() { $cliente_id = $this->getRequest()->getParam("cliente"); /** * Busca os dados do cliente */ $modelCliente = new Model_DbTable_Cliente(); $cliente = $modelCliente->getById($cliente_id); $this->view->cliente = $cliente; $where = "cliente_id = {$cliente_id}"; /** * Busca quantidade de propostas */ $modelProposta = new Model_DbTable_Proposta(); $propostas = $modelProposta->fetchAll($where); $this->view->propostas = $propostas; /** * Busca quantidade de projetos */ $modelProjeto = new Model_DbTable_Projeto(); $projetos = $modelProjeto->fetchAll($where); $this->view->projetos = $projetos; /** * Faturamentos */ $modelFaturamento = new Model_DbTable_Faturamento(); $faturamento = $modelFaturamento->getTotalFaturadoCliente($cliente_id); $this->view->total_faturado = $faturamento->total_faturado ? $faturamento->total_faturado : 0; /** * Total de Horas */ $modelControleHoras = new Model_DbTable_ControleHoras(); }