✏️ 正在编辑: Contrato.php
路径:
/srv/systems_dir/yuppiecred-bkp/application/forms/Contrato.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Form_Contrato extends Core_Form { private $_clienteId; public function init() { $params = $this->_getParams(); $corretores = Core_Combos::getCorretoresOptions(); $this->setName('f_save_contrato'); $this->setAction($this->getView()->url(array( 'controller' => 'contrato', 'action' => 'save' ))); $this->addElement('hidden', 'id', array('class' => 'invisivel')); $this->addElement('text', 'nome_cliente', array( 'label' => 'Cliente:', 'size' => 30, 'readonly' => true )); $this->addElement('text', 'cpf_cliente', array( 'label' => 'CPF:', 'size' => 15, 'readonly' => true )); $this->addElement('text', 'idade_cliente', array( 'label' => 'Idade:', 'size' => 5, 'onkeypress' => 'mascara(this, soNumeros)' )); $this->addElement('text', 'telefone', array( 'label' => 'Telefone:', 'size' => 15, 'readonly' => true )); $this->addElement('text', 'celular', array( 'label' => 'Celular:', 'size' => 15, 'readonly' => true )); $select = new Zend_Form_Element_Select('empresa_id'); $select->setLabel('Empresa:') ->setRequired(true) ->addMultiOptions(Core_Combos::getEmpresasOptions()); $this->addElement($select); $select = new Zend_Form_Element_Select('banco_id'); $select->setLabel('Banco:') ->setRequired(true) ->addMultiOptions(Core_Combos::getBancosOptions()) ->setAttrib('onchange', "populateComboProdutos(this.id, 'produto'); populateComboTabelas('convenio_id', 'tabela_id', 'banco_id')"); $this->addElement($select); $select = new Zend_Form_Element_Select('tabela_id'); $select->setLabel('Tabela:') ->setRequired(true) ->setRegisterInArrayValidator(false); $this->addElement($select); $select = new Zend_Form_Element_Select('convenio_id'); $select->setLabel('Convênio:') ->setRequired(true) ->addMultiOptions(Core_Combos::getConveniosOptions()) ->setAttrib('onchange', "populateComboTabelas('convenio_id', 'tabela_id', 'banco_id')"); $this->addElement($select); $select = new Zend_Form_Element_Select('corretor_id'); $select->setLabel('Corretor:') ->setRequired(true) ->addMultiOptions($corretores); $this->addElement($select); if( Yuppie_Auth::getIdentity()->grupo != 'Corretor' ){ $select = new Zend_Form_Element_Select('subestabelecido_id'); $select->setLabel('Sub-estabelecido:') ->addMultiOptions(Core_Combos::getSubestabelecidosOptions()); $this->addElement($select); } $this->addElement('text', 'numero_contrato', array( 'label' => 'Número do Contrato:', 'required' => true, 'size' => 20, )); $this->addElement('text', 'numero_ade', array( 'label' => 'Número ADE:', 'size' => 20, 'onkeypress' => 'mascara(this, soNumeros)' )); $this->addElement(Form_DatePicker::getDatePicker('data_emissao', 'Data de Emissão:', date('d/m/Y'), true)); $this->addElement('text', 'prazo', array( 'label' => 'Prazo:', 'required' => true, 'size' => 10, 'onkeypress' => 'mascara(this, soNumeros)' )); $select = new Zend_Form_Element_Select('forma_liberacao'); $select->setLabel('Forma de Liberação:') ->addMultiOptions(Core_Combos::getFormasLiberacaoOptions()) ->setAttrib('class', 'not_multiselect'); $this->addElement($select); $select = new Zend_Form_Element_Select('produto'); $select->setLabel('Produto:') ->addMultiOptions(Core_Combos::getProdutosOptions()) ->setRegisterInArrayValidator(false); $this->addElement($select); $select = new Zend_Form_Element_Select('status_proposta'); $select->setLabel('Status Proposta:') ->setRequired(true) ->addMultiOptions(array( '' => '' ) + Core_Combos::getStatusOptions()) ->setAttrib('class', 'not_multiselect'); $this->addElement($select); $this->addElement('text', 'digitador', array( 'label' => 'Digitador:', 'value' => Yuppie_Auth::getIdentity()->login, 'readonly' => true, 'size' => 30, )); $this->addElement('text', 'numero_beneficio', array( 'label' => 'Número Benefício:', 'size' => 20, 'onkeypress' => 'mascara(this, soNumeros)' )); $this->addElement('text', 'senha_contracheque', array( 'label' => 'Senha contra-cheque:', 'size' => 30, 'class' => 'not_upper' )); $this->addElement('text', 'especie', array( 'label' => 'Código Espécie:', 'size' => 10, 'onkeypress' => 'mascara(this, soNumeros)' )); $select = new Zend_Form_Element_Select('tipo'); $select->setLabel('Tipo Contrato:') ->setRequired(true) ->addMultiOptions(Core_Combos::getTiposProdutosOptions()); $this->addElement($select); $this->addElement('text', 'bordero_newspace', array( 'label' => 'Borderô Newspace:', 'size' => 10, 'readonly' => true )); $this->getElement('bordero_newspace')->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement('text', 'numero_envelope', array( 'label' => 'Nº Envelope:', 'size' => 10, 'readonly' => true )); $this->addElement('text', 'valor_bruto', array( 'label' => 'Valor Bruto (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'required' => true, 'value' => '0,00' )); $this->addElement('text', 'valor_liquido', array( 'label' => 'Valor Líquido (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'required' => true )); $this->addElement('text', 'comissao_empresa', array( 'label' => 'Comissão Empresa (%):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'required' => true, 'value' => '0,00' )); if( $this->_verificarPermissao('visualizar-comissao-contrato') ){ $this->addElement('text', 'comissao_corretor', array( 'label' => 'Comissão Corretor (%):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'required' => true, )); $this->addElement('text', 'diferimento_corretor', array( 'label' => 'Diferimento Corretor (%):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'bonus_corretor', array( 'label' => 'Bônus Corretor (%):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', )); } if( $this->_verificarPermissao('exibir-comissao-empresa') ){ $this->addElement('text', 'bonus_empresa', array( 'label' => 'Bônus Empresa (%):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', )); $this->addElement('text', 'adiantamento_comissao_empresa', array( 'label' => 'Adiantamento Comissão (%):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'value' => '0,00' )); } $this->addElement(Form_DatePicker::getDatePicker('data_liberacao', 'Data Liberação:')); $this->getElement('data_liberacao') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement('text', 'outras_despesas', array( 'label' => 'Outras Despesas (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'value' => '0,00' )); $this->addElement('text', 'taxa_portabilidade', array( 'label' => 'Desc. Intenção Port. (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'value' => '0,00' )); $this->addElement('text', 'valor_beneficio', array( 'label' => 'Valor Benefício (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'valor_prestacao', array( 'label' => 'Valor Prestação (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->getElement('valor_prestacao') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement(Form_DatePicker::getDatePicker( 'data_primeiro_vencimento', 'Data 1º Vencimento:')); if( $this->_verificarPermissao('alterar-recebimento-comissao-contrato') ){ $this->addElement(Form_DatePicker::getDatePicker('data_recebimento_comissao', 'Recebimento Comissão:')); } else { $this->addElement('text', 'data_recebimento_comissao', array( 'label' => 'Recebimento Comissão:', 'readonly' => true, 'size' => 10 )); } $this->addElement(Form_DatePicker::getDatePicker('data_recebimento_bonus', 'Recebimento Bônus:', date('d/m/Y'))); $this->addElement(Form_DatePicker::getDatePicker('data_ted_devolvida', 'TED Devolvida:')); $this->addElement(Form_DatePicker::getDatePicker('data_op_sacada', 'OP Sacada:')); $this->getElement('data_op_sacada') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement('text', 'taxa_contrato', array( 'label' => 'Taxa Contrato (%):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'value' => '0,00' )); $this->addTwoOptionsElement('srcc', 'SRCC', false); $this->addTwoOptionsElement('beneficiado_recebe_cartao', 'Recebe por cartão:'); $this->getElement('beneficiado_recebe_cartao')->setAttrib('readonly', true); $this->addElement('text', 'agencia_cartao', [ 'label' => 'Agencia do Cartão:', 'size' => 10, 'readonly' => true, ]); $select = new Zend_Form_Element_Select('banco_cartao'); $select->setLabel('Banco do Cartão:') ->addMultiOptions(Core_Combos::getBancosFebrabanOptions()); $this->addElement($select); $this->getElement('banco_cartao')->setAttribs([ 'readonly' => true, 'style' => 'width:200px' ]); $this->addElement('text', 'data_cadastro', array( 'label' => 'Data Cadastro Yuppie:', 'readonly' => true, 'ignore' => true, 'size' => 30 )); $this->getElement('data_cadastro') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement('text', 'data_atualizacao', array( 'label' => 'Última Atualização:', 'readonly' => true, 'ignore' => true, 'size' => 30 )); $this->addElement('text', 'base_comissao_valor', array( 'label' => 'Base Com. Corretor (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'base_comissao_bonus', array( 'label' => 'Base Bônus Corretor (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'base_comissao_diferimento', array( 'label' => 'Base Diferim. Corretor (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); if(Yuppie_Auth::getIdentity()->grupo == 'Corretor'){ $this->getElement('base_comissao_diferimento') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); } $this->addElement('text', 'base_comissao_empresa_valor', array( 'label' => 'Base Com. Empresa (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'base_comissao_empresa_adiantamento', array( 'label' => 'Base Adian. Empresa (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); if(Yuppie_Auth::getIdentity()->grupo == 'Corretor'){ $this->getElement('base_comissao_empresa_adiantamento') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); } $this->addElement('text', 'base_comissao_empresa_bonus', array( 'label' => 'Base Bônus Empresa (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); if(Yuppie_Auth::getIdentity()->grupo == 'Corretor'){ $this->getElement('base_comissao_empresa_bonus') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); } $this->addElement('text', 'valor_fixo_empresa', array( 'label' => 'Valor Fixo Empresa (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'valor_fixo_corretor', array( 'label' => 'Valor Fixo Corretor (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'rco', array( 'label' => 'RCO (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)', 'value' => '0,00' )); $this->addElement('text', 'saldo_banco', array( 'label' => 'Saldo no Banco (R$):', 'size' => 10, 'onkeypress' => 'mascara(this, mvalor)' )); $this->addElement('text', 'data_recebimento_previa', array( 'label' => 'Data Prévia Receb.:', 'readonly' => true, 'size' => 14 )); $this->addElement('text', 'codigo_barras_ade', array( 'label' => 'Código Barras ADE:', 'size' => 14 )); $this->addElement('text', 'usuario_efetivacao', array( 'label' => 'Usuario Efetivação:', 'readonly' => true, 'disabled' => 'disabled', 'size' => 10 )); $this->addElement(Form_DatePicker::getDatePicker('data_notificacao_analise', 'Data Notificação Análise:')); $this->getElement('data_notificacao_analise')->setAttrib('disabled', true); $select = new Zend_Form_Element_Select('tipo_formalizacao'); $select->setLabel('Tipo Formalização:') ->addMultiOptions(array( '' => '', '0' => 'Fisico', '1' => 'Digital') ) ->setAttrib('class', 'not_multiselect'); $this->addElement($select); $this->addElement('text', 'descricao_pendencia', array( 'label' => 'Descrição de Pendência:', 'size' => 30, )); $select = new Zend_Form_Element_Select('banco_beneficiado'); $select->setLabel('Banco do Beneficiado:') ->addMultiOptions(Core_Combos::getBancosFebrabanOptions()); $this->addElement($select); $this->addElement('text', 'agencia_beneficiado', array( 'label' => 'Agência do Beneficiado:', 'size' => 10, )); $this->addElement('text', 'conta_beneficiado', array( 'label' => 'Conta do Beneficiado:', 'size' => 10, )); $this->addElement('text', 'operacao_beneficiado', array( 'label' => 'Operação Beneficiado:', 'size' => 10, 'onkeypress' => 'mascara(this, soNumeros)' )); $select = new Zend_Form_Element_Select('midia_origem_id'); $select->setLabel('Mídia de Origem:') ->addMultiOptions(Core_Combos::getMidiasOrigemOptions()); $this->addElement($select); $select = new Zend_Form_Element_Select('captador_id'); $select->setLabel('Captador:') ->addMultiOptions($corretores) ->setAttrib('class', 'comboautocomplete'); $this->addElement($select); $this->addElement('select', 'anterior_banco', array( 'label' => 'Banco Anterior:', 'multiOptions' => Core_Combos::getBancosFebrabanOptions() )); $this->getElement('anterior_banco')->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement('text', 'anterior_parcelas_restantes', array( 'label' => 'Parcelas Restantes:', 'onkeypress' => 'mascara(this, soNumeros)', 'size' => 10 )); $this->getElement('anterior_parcelas_restantes') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement('text', 'anterior_saldo_devedor', array( 'label' => 'Saldo Devedor:', 'onkeypress' => 'mascara(this, mvalor)', 'size' => 10 )); $this->addElement('text', 'anterior_numero', array( 'label' => 'Nº Contrato anterior:', 'size' => 20 )); $this->getElement('anterior_numero') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->addElement('text', 'anterior_prazo', array( 'label' => 'Prazo anterior:', 'onkeypress' => 'mascara(this, soNumeros)', 'size' => 10 )); $this->addElement('text', 'anterior_valor_parcela', array( 'label' => 'Valor Parcela (R$):', 'onkeypress' => 'mascara(this, mvalor)', 'size' => 10 )); $this->getElement('anterior_valor_parcela') ->addDecorator('Label', array( 'tag' => 'dt', 'tagClass' => 'clear' )); $this->_organizarCampos(); $this->addElement('textarea', 'obs', array( 'label' => 'OBS:', 'cols' => 80, 'rows' => 1 )); $this->_initButtons(); $this->_setDefaultDecorators(); } protected function _setDefaultDecorators() { $this->setDecorators( array( 'FormElements', array( 'HtmlTag', array( 'tag' => 'dl', 'class' => 'zend_form form_contrato' ) ), 'Form' ) ); if( Yuppie_Auth::getIdentity()->grupo == "Corretor" ){ $btnBack = $this->getElement('btn_back'); $btnBack->setAttrib('onclick', "window.location='" . $this->getView()->baseUrl('corretor/meus-contratos') . "'"); } } public function isValid($data) { $result = parent::isValid($data); if( $result ){ //se operacao é finalizada e a data de liberação está em branco, retorna falso if( $data['status_proposta'] == 43 && empty($data['data_liberacao']) ){ $this->getElement('data_liberacao')->setRequired(true)->addError('O campo é obrigatório e não pode estar vazio'); $result = false; } } return $result; } public function populate(array $values) { if( isset($values['banco_id']) && $values['banco_id'] > 0 ){ $element = $this->getElement('produto'); $element->setMultiOptions(Core_Combos::getProdutosOptions($values)); } $datas = array('data_emissao', 'data_recebimento_comissao', 'data_liberacao', 'data_primeiro_vencimento', 'data_recebimento_bonus', 'data_ted_devolvida', 'data_op_sacada','data_notificacao_analise', 'data_recebimento_previa'); foreach ($datas as $data){ $values[$data] = !empty($values[$data]) && is_bool(strpos($values[$data], '0000-00-00')) ? date('d/m/Y', strtotime($values[$data])) : ''; } $values['data_cadastro'] = date('d/m/Y H:i:s', strtotime($values["data_cadastro"])); if( !empty($values["data_atualizacao"]) && is_bool(strpos($values['data_atualizacao'], '0000-00-00'))){ $values["data_atualizacao"] = date('d/m/Y H:i:s', strtotime($values["data_atualizacao"])); } else { $values["data_atualizacao"] = ''; } $valores = array('valor_bruto', 'valor_liquido', 'comissao_empresa', 'comissao_corretor','valor_beneficio', 'valor_financiado','valor_prestacao', 'bonus_corretor','diferimento_corretor', 'base_comissao_valor','base_comissao_empresa_valor', 'base_comissao_bonus','base_comissao_empresa_bonus', 'base_comissao_diferimento', 'base_comissao_adiantamento_valor','base_comissao_empresa_adiantamento', 'valor_fixo_corretor', 'valor_fixo_empresa','saldo_banco','rco','outras_despesas', 'bonus_empresa', 'adiantamento_comissao_empresa', 'anterior_saldo_devedor', 'anterior_valor_parcela', 'taxa_portabilidade', 'taxa_contrato'); foreach($valores as $valor){ if(isset($values[$valor])){ $values[$valor] = !strstr($values[$valor], ",") ? number_format($values[$valor], 2, ',', '.') : $values[$valor]; } else { $values[$valor] = "0,00"; } } if( !empty($values['convenio_id']) && !empty($values['banco_id']) ){ $tabelas = Core_Combos::getTabelasOptions($values['convenio_id'], $values['banco_id']); } else{ $tabelas = Core_Combos::getTabelasOptions(); } $element = $this->getElement('tabela_id'); $element->addMultiOptions($tabelas); if (isset($values['cliente_id'])){ $model = new Model_Cliente(); $cliente = $model->exibir($values['cliente_id']); $values['nome_cliente'] = $cliente->nome; $values['cpf_cliente'] = String_Refatorar::resetCpf($cliente->cpf); } return parent::populate($values); } protected function _initButtons() { $front = Zend_Controller_Front::getInstance(); $request = $front->getRequest(); $params = $request->getParams(); $urlReturn = $request->getHeader('referer'); if( strstr($urlReturn, "meus-contratos") == false ){ $urlReturn = $this->getView()->url( array( 'module' => $params['module'], 'controller' => "contrato", 'action' => 'index' ), null, true); } $this->addElement('button', 'btn_back', array( 'label' => 'Voltar', 'class' => 'bt_back', 'onclick' => "window.location='{$urlReturn}'" )); $this->addElement('submit', 'btn_save', array( 'label' => 'Salvar', 'class' => 'bt_save' )); $this->addDisplayGroup(array( 'btn_back', 'btn_save' ), 'buttons'); } protected function _organizarCampos() { $this->addDisplayGroup(array( 'nome_cliente', 'cpf_cliente', 'idade_cliente', 'telefone', 'celular', 'empresa_id', 'banco_id', 'convenio_id', 'tabela_id', 'corretor_id', 'subestabelecido_id', 'numero_contrato', 'numero_ade', 'codigo_barras_ade', 'produto', 'data_emissao', 'tipo', 'prazo', 'status_proposta', 'digitador', 'especie', 'numero_beneficio', 'senha_contracheque', 'valor_beneficio', 'outras_despesas', 'data_notificacao_analise', 'usuario_efetivacao', 'banco_beneficiado', 'agencia_beneficiado', 'conta_beneficiado', 'operacao_beneficiado', 'midia_origem_id', 'captador_id', 'data_cadastro', 'data_atualizacao', 'id', 'cliente_id', ), 'dados_contrato', array( 'legend' => 'Identificação' )); $this->addDisplayGroup([ 'forma_liberacao', 'data_liberacao', 'valor_bruto', 'valor_liquido', 'valor_financiado', 'valor_prestacao', 'data_primeiro_vencimento', 'data_ted_devolvida', 'data_op_sacada', 'taxa_contrato', 'srcc', 'beneficiado_recebe_cartao', 'agencia_cartao', 'banco_cartao' ], 'dados_liberacao', array( 'legend' => 'Liberação' )); $this->addDisplayGroup(array( 'comissao_empresa', 'base_comissao_empresa_valor', 'data_recebimento_comissao', 'bonus_empresa', 'base_comissao_empresa_bonus', 'data_recebimento_bonus', 'adiantamento_comissao_empresa', 'base_comissao_empresa_adiantamento', 'valor_fixo_empresa', ), 'dados_comissao_empresa', array( 'legend' => 'Comissão Empresa' )); if( !$this->_verificarPermissao('exibir-comissao-empresa') ){ $display = $this->getDisplayGroup('dados_comissao_empresa'); $elements = $display->getElements(); foreach($elements as $el){ $this->removeElement($el->getName()); } } $this->addDisplayGroup(array( 'comissao_corretor', 'base_comissao_valor', 'valor_fixo_corretor', 'bonus_corretor', 'base_comissao_bonus', 'base_comissao_diferimento', 'diferimento_corretor' ), 'dados_comissao_corretor', array( 'legend' => 'Comissão Corretor' )); $this->addDisplayGroup(array( 'tipo_formalizacao', 'bordero_newspace', 'numero_envelope', 'data_recebimento_previa', 'descricao_pendencia', ), 'dados_formalizacao', array( 'legend' => 'Formalização' )); $this->addDisplayGroup(array( 'rco', 'taxa_portabilidade', 'saldo_banco', 'data_quitacao', 'anterior_banco', 'anterior_numero', 'anterior_parcelas_restantes', 'anterior_saldo_devedor', 'anterior_prazo', 'anterior_valor_parcela', ), 'dados_portabilidade', array( 'legend' => 'Portabilidade' )); } }
💾 保存文件
← 返回文件管理器