✏️ 正在编辑: Adiantamento.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Planilha/Bradesco/Adiantamento.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Planilha_Bradesco_Adiantamento { private $_bancoId = 0; private $_dataSaldo = NULL; protected $_inicioLaco = 0; protected $_dateFormat = 'dd/MM/yyyy'; protected $colunas = array( 'numero_contrato' => 'C', ); protected $colunasOpcionais = array(); protected $naoImportados = array(); protected $contratosImportados = array(); function getInicioLaco() { return $this->_inicioLaco; } function setInicioLaco($inicioLaco) { if( !is_null($inicioLaco) ){ $this->_inicioLaco = $inicioLaco; } } public function __construct($bancoId) { $this->setBancoId($bancoId); } public function setBancoId($bancoId) { $this->_bancoId = $bancoId; return $this; } public function getBancoId() { return $this->_bancoId; } function getDataSaldo() { return $this->_dataSaldo; } function setDataSaldo($dataSaldo) { $this->_dataSaldo = $dataSaldo; } public function getColuna($coluna) { return isset($this->colunas[$coluna]) ? trim($this->colunas[$coluna]) : null; } public function getColunas() { return $this->colunas; } public function validarColunas(array $sheetData) { $colunas = array_flip($this->getColunas()); $colunas = array_diff($colunas, $this->colunasOpcionais); unset($colunas['']); $colunas = array_keys($colunas); $sheetDataColunas = array_keys(current($sheetData)); $colunasFaltando = array_diff($colunas, $sheetDataColunas); if( $colunasFaltando ){ asort($colunasFaltando); $msg = count($colunasFaltando) == 1 ? "A coluna '" . current($colunasFaltando) . "' não existe na planilha enviada. " : 'As seguintes colunas não existem na planilha enviada:<br />' . implode(', ', $colunasFaltando) . '. '; $msg .= '<br />Confira na planilha padrão deste banco o que está diferente.'; throw new Core_Exception($msg); } } public function excluirLinhasVazias(array $sheetData) { $newSheetData = array(); $cont = $this->_inicioLaco; foreach ($sheetData as $linha) { if ($linha[$this->getColuna('numero_contrato')]) { $newSheetData[$cont++] = $linha; } } return $newSheetData; } public function importar(array $sheetData) { $this->validarColunas($sheetData); $sheetData = $this->excluirLinhasVazias($sheetData); end($sheetData); reset($sheetData); for ($i = $this->_inicioLaco; $i < count($sheetData); $i++) { $dados = array( 'banco_id' => $this->getBancoId(), 'numero_contrato' => NULL, 'tipo_pagamento' => 'C', 'natureza' => '2', 'tipo_remuneracao' => '1', 'data_saldo' => NULL, ); $this->_getNumeroContrato($sheetData[$i], $dados); if( $dados['numero_contrato'] != null ){ $this->_getDataSaldo($sheetData[$i], $dados); $this->contratosImportados[] = $dados['numero_contrato']; $this->salvarLinha($sheetData[$i], $dados); } } return $this->naoImportados; } public function salvarLinha($sheetData, &$dados) { $dadosContrato = null; $contrato = new Model_DbTable_Contrato(); $dbtable = new Model_DbTable_RecebimentoContrato(); $result = 0; //verifica se o contrato existe if (isset($dados['numero_contrato']) && $dados['numero_contrato'] != null && $dados['banco_id'] > 0) { $dadosContrato = $contrato->fetchRow("numero_contrato = '" . $dados['numero_contrato'] . "' AND banco_id = {$dados['banco_id']}"); } if ($dadosContrato == null) { $this->_addNaoImportado($dados, $sheetData, $this->naoImportados, 'Contrato não cadastrado ou banco não localizado.'); }else{ $dataSaldo = new Zend_Date($dados['data_saldo']); $mComissao = new Model_Comissionamento(); $dadosComissao = $mComissao->getComissaoRecebimento($dadosContrato['id']); $vlAdiantamento = ($dadosComissao['adiantamento_previsto']*$dadosContrato['valor_liquido']/100); try{ $result = $dbtable->receberComissao(array( 'contrato_id' => $dadosContrato->id, 'data_saldo' => $dataSaldo->toString('yyyy-MM-dd'), 'tipo_remuneracao' => $dados['tipo_remuneracao'], 'comissao_empresa' => isset($dadosComissao['adiantamento_previsto']) ? $dadosComissao['adiantamento_previsto'] : 0, 'valor_lancamento' => $vlAdiantamento, 'natureza' => $dados['natureza'] )); if ($result <= 0) { $this->_addNaoImportado( $dados, $sheetData, $this->naoImportados, 'Nenhuma informação foi alterada/adicionada.' ); } }catch(Exception $e){ $this->_addNaoImportado( $dados, $sheetData, $this->naoImportados, $e->getMessage() ); } } } /** * * @param array $sheetData * @param array $dados * @return void */ protected function _getNumeroContrato(array $sheetData, array &$dados) { if ($this->getColuna('numero_contrato')) { $dados['numero_contrato'] = String_Refatorar::soNumeros( $sheetData[$this->getColuna('numero_contrato')] ); } } protected function _getDataSaldo(array $sheetData, array &$dados) { $colunaDtSaldo = $this->getDataSaldo(); $dataSaldo = null; if (!empty($colunaDtSaldo)) { try { $data = new Zend_Date($colunaDtSaldo, $this->_dateFormat); $dataSaldo = $data->toString('yyyy-MM-dd'); } catch (Zend_Date_Exception $e) { echo $e->getMessage(); $dataSaldo = null; } } $dados['data_saldo'] = $dataSaldo; } /** * * @param array $naoImportados * @param string $motivo * @return void */ protected function _addNaoImportado(array $dados, array $sheetData, array &$naoImportados, $motivo = '') { $result = array_push($naoImportados, array( 'numero_contrato' => $dados['numero_contrato'], 'motivo' => $motivo )); return $result; } }
💾 保存文件
← 返回文件管理器