✏️ 正在编辑: ProtocoloContrato.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/models/ProtocoloContrato.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_ProtocoloContrato { private $_id; private $_contratoId; private $_protocoloId; private $_valor; private $_percentual; public function getId() { return $this->_id; } public function setId($id) { $this->_id = $id; return $this; } public function getContratoId() { return $this->_contratoId; } public function setContratoId($contratoId) { $this->_contratoId = $contratoId; return $this; } public function getProtocoloId() { return $this->_protocoloId; } public function setProtocoloId($protocoloId) { $this->_protocoloId = $protocoloId; return $this; } public function getValor() { return $this->_valor; } public function setValor($valor) { $this->_valor = $valor; return $this; } public function getPercentual() { return $this->_percentual; } public function setPercentual($percentual) { $this->_percentual = $percentual; return $this; } public function __construct($options = null) { if( is_array($options) ){ $this->setOptions($options); } } public function setOptions(array $options) { $methods = get_class_methods($this); foreach ( $options as $key => $value ) { $explode = explode("_", $key); $methodName = ''; foreach ( $explode as $v ) { $methodName .= ucfirst($v); } $key = $methodName != '' ? $methodName : $key; $method = 'set' . ucfirst($key); if( in_array($method, $methods) ){ $this->$method($value); } } return $this; } public function _toArray() { $dbtable = new Model_DbTable_ProtocoloPagamento(); $info = $dbtable->info(); $methods = get_class_methods($this); $data = array(); foreach ( $info['cols'] as $key ) { $col = $key; $explode = explode("_", $key); $methodName = ''; foreach ( $explode as $v ) { $methodName .= ucfirst($v); } $key = $methodName != '' ? $methodName : $key; $method = 'get' . ucfirst($key); if( in_array($method, $methods) ){ $data[$col] = $this->$method(); } } return $data; } /** * Insere ou altera o registro passado por parâmetro * @param Model_ProtocoloContrato $protocolo_contrato */ public function salvar(Model_ProtocoloContrato $protocolo_contrato) { $dbtable = new Model_DbTable_ProtocoloContrato(); if( $protocolo_contrato->getId() > 0 ){ $dbtable->update($protocolo_contrato->_toArray(), "id = {$protocolo_contrato->getId()}"); return $protocolo_contrato->getId(); } else { return $dbtable->insert($protocolo_contrato->_toArray()); } } /** * Exclui o registro passado por parâmetro * @param int $id * @return int The number of rows deleted */ public function excluir($id) { if( $id > 0 ){ $dbtable = new Model_DbTable_ProtocoloContrato(); return $dbtable->delete("protocolo_id = $id"); } return null; } /** * Exclui o registro passado por parâmetro * @param int $id * @return int The number of rows deleted */ public function excluirContratoProtocolo($id, $contratoId) { if( $id > 0 ){ $dbtable = new Model_DbTable_ProtocoloContrato(); return $dbtable->delete("protocolo_id = {$id} AND contrato_id = {$contratoId}"); } return null; } /** * Retorna uma lista * @param string $where * @param string $order * @param int $count * @param int $offset * @return array */ public function listar($where = null, $order = null, $count = null, $offset = null) { $dbtable = new Model_DbTable_ProtocoloContrato(); return $dbtable->fetchAll($where, $order, $count, $offset); } public function listarProtocolos($where, $order) { $dbtable = new Model_DbTable_ProtocoloContrato(); $select = $dbtable->getAdapter()->select() ->from(array( 'protocolos' => 'tb_protocolo_contrato' ), array( 'protocolos.*' )) ->joinInner(array( 'protocolosPagamento' => 'tb_protocolo_pagamento' ), 'protocolos.protocolo_id = protocolosPagamento.id', array( 'acrescimo', 'desconto', 'data_pagamento', 'data_quitacao', 'forma_pagamento_id', 'descontar_taxa_transf' )) ->joinInner(array( 'contratos' => 'tb_contratos' ), 'protocolos.contrato_id = contratos.id', array( 'valor_liquido', 'diferimento_corretor', 'comissao_corretor', 'bonus_corretor', 'prazo', 'estornado' )) ->joinInner(array( 'corretores' => 'tb_corretores' ), 'protocolosPagamento.corretor_id = corretores.id', array( 'banco', 'corretor_descontar_taxa_transf' => 'descontar_taxa_transf' )) ->joinLeft(array( 'bancos' => 'tb_bancos_febraban' ), 'bancos.codigo = corretores.banco', array( 'taxa_transf' )) ->where($where) ->order($order) ->group(array( 'protocolos.id' )); $listarProtocolos = $dbtable->getAdapter()->fetchAll($select); $protocolos = array(); foreach ( $listarProtocolos as $protocolo ) { $contratos = $this->getContratosPorProtocolo($protocolo['protocolo_id']); $protocolo['total_comissao'] = 0; foreach ( $contratos as $c ) { $dadosContratoProtocolo = Model_ProtocoloContrato::getDadosProtocoloContrato($c['id'], $protocolo['protocolo_id']); if( !$dadosContratoProtocolo ){ $protocolo['total_comissao'] += (($c['base_comissao_valor'] * ($c['comissao_corretor'] / 100)) + ($c['base_comissao_bonus'] * ($c['bonus_corretor'] / 100))); } else { $protocolo['total_comissao'] += $dadosContratoProtocolo['valor']; } } array_push($protocolos, $protocolo); } return $protocolos; } /** * Retorna um fetchRow do item passado por parâmetro * @param int $id * @return Zend_Db_Table_Row_Abstract | null */ public function exibir($id) { $dbtable = new Model_DbTable_ProtocoloContrato(); return $dbtable->fetchRow("id = " . $id); } public function getSelectContratosProtocolo(&$select, $where) { $select->from(array( 'protocolo_contrato' => 'tb_protocolo_contrato' ), array( 'percentual', 'valor', 'base_comissao', 'base_bonus', 'percentual_bonus' )) ->joinInner(array( 'contratos' => 'tb_contratos' ), 'protocolo_contrato.contrato_id = contratos.id', array( 'id', 'valor_liquido', 'valor_bruto', 'prazo', 'comissao_corretor', 'bonus_corretor', 'numero_contrato', 'data_emissao', 'forma_liberacao', 'data_liberacao', 'produto', 'tipo', 'diferimento_corretor', 'taxa_portabilidade', 'estornado', 'cartao', 'base_comissao_valor', 'base_comissao_bonus', 'base_comissao_empresa_valor','base_comissao_empresa_bonus', 'rco', 'data_envio_fisico', 'outras_despesas', 'valor_fixo_corretor', 'digitador', 'srcc', 'taxa_contrato')) ->joinInner(array( 'clientes' => 'tb_clientes' ), 'contratos.cliente_id = clientes.id', array( 'cliente' => 'nome', 'cpfCliente' => 'cpf' )) ->joinInner(array( 'tabelas' => 'tb_tabelas' ), 'contratos.tabela_id = tabelas.id', array( 'tabela' => 'nome' )) ->joinInner(array( 'convenios' => 'tb_convenios' ), 'contratos.convenio_id = convenios.id', array( 'convenio' => 'nome' )) ->joinInner(array( 'bancos' => 'tb_bancos' ), 'contratos.banco_id = bancos.id', array( 'banco' => 'nome' )) ->joinLeft(array( 'status_propostas' => 'tb_tipos' ), 'contratos.status_proposta = status_propostas.id', array( 'status_proposta' => 'status_propostas.descricao' )) ->where("protocolo_contrato.excluido<>1") ->where("contratos.excluido<>1") ->where($where) ->order(array( 'bancos.nome','protocolo_contrato.valor DESC' )); } public function getContratosPorProtocolo($protocoloId, $order = null) { $dbtable = new Model_DbTable_ProtocoloContrato(); $select = $dbtable->getAdapter()->select()->order($order); $this->getSelectContratosProtocolo($select, "protocolo_contrato.protocolo_id = $protocoloId"); return $dbtable->getAdapter()->fetchAll($select); } public static function getDadosProtocoloContrato($contratoId, $protocoloId) { $dbtable = new Model_DbTable_ProtocoloContrato(); return $dbtable->fetchRow("contrato_id = {$contratoId} AND protocolo_id = {$protocoloId}"); } public function getSomaProtocoloContrato($protocoloId) { $dbtable = new Model_DbTable_ProtocoloContrato(); $select = $dbtable->getAdapter()->select() ->from(array( 'protocolo_contrato' => 'tb_protocolo_contrato' ), array( 'valor' => 'SUM(valor)' )) ->where("protocolo_contrato.excluido <> 1"); if( isset($protocoloId) && !empty($protocoloId) ){ $select->where('protocolo_contrato.protocolo_id = ' . $protocoloId); } return $dbtable->getAdapter()->fetchRow($select); } public function getValoresRecuperar($corretorId, $fields = null) { $dbtable = new Model_DbTable_ProtocoloContrato(); $select = $dbtable->getAdapter()->select() ->from(['recuperar' => 'tb_valores_a_recuperar'], ["id", "recuperar" => "valor", "motivo"]) ->joinInner(['contratos' => 'tb_contratos'], "recuperar.contrato_id = contratos.id", ["numero_contrato", "numero_ade"]) ->joinInner(['bancos' => 'tb_bancos'], "contratos.banco_id = bancos.id", ["nome_banco" => "nome"]) ->joinInner(['corretor' => 'tb_corretores'], "corretor.id = contratos.corretor_id", ['corretor_nome' => 'nome']) ->joinLeft(['recuperado' => 'tb_protocolo_valor_recuperado'], "recuperado.valor_a_recuperar_id = recuperar.id", [ "recuperado" => "(SELECT SUM(valor) FROM tb_protocolo_valor_recuperado WHERE tb_protocolo_valor_recuperado.valor_a_recuperar_id = recuperar.id)", "protocolo" => "protocolo_id" ] ) ->where("contratos.excluido <> 1") ->where("recuperar.excluido <> 1") ->where("recuperado.excluido <> 1 OR recuperado.id IS NULL") ->having("recuperar > recuperado OR recuperado IS NULL") ->order('contratos.id'); if (!empty($corretorId)) { $select->where("contratos.corretor_id = $corretorId"); } if (!empty($fields['numero_contrato'])) { $select->where('contratos.numero_contrato = ?', $fields['numero_contrato']); } if (!empty($fields['numero_ade'])) { $select->where('contratos.numero_ade = ?', $fields['numero_ade']); } if (!empty($fields['banco_id'])) { $select->where('contratos.banco_id = ?', $fields['banco_id']); } if (!empty($fields['status'])) { switch ($fields['status']) { case 'pendente': $select->having('recuperado IS NULL'); break; case 'parcial': $select->having('recuperar > recuperado'); break; } } return $dbtable->getAdapter()->fetchAssoc($select); } }
💾 保存文件
← 返回文件管理器