✏️ 正在编辑: Comissionamento.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/library/Core/Banco/Planilha/Itau/Comissionamento.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Banco_Planilha_Itau_Comissionamento extends Core_Banco_Planilha_RecebimentoComissao { protected $_dateFormat = 'd/m/Y'; protected $colunas = array( 'numero_contrato' => 'B', 'parcelas' => 'T', 'valor_liquido_contrato' => 'M', 'valor_liquido_comissao' => 'Q', 'tipo_pagamento' => 'AF', 'data_pagamento_contrato' => 'J' ); public function importar(array $sheetData) { $this->validarColunas($sheetData); $sheetData = $this->excluirLinhasVazias($sheetData); end($sheetData); reset($sheetData); for ($i = $this->_inicioLaco; $i < count($sheetData); $i++) { try { $dados = array( 'banco_id' => $this->getBancoId(), 'numero_contrato' => null, 'data_recebimento_comissao' => null, 'parcelas' => null, 'valor_lancamento' => null, 'comissao_empresa' => null, 'tipo_pagamento' => null, ); $this->_getNumeroContrato($sheetData[$i], $dados); $this->_getDataRecebimentoComissao($sheetData[$i], $dados); $this->_getNumeroParcelas($sheetData[$i], $dados); $this->_getValorLancamento($sheetData[$i], $dados); $this->_getComissaoEmpresa($sheetData[$i], $dados); $this->_getTipoRemuneracao($sheetData[$i], $dados); $this->contratosImportados[] = $dados['numero_contrato']; $this->salvarLinha($sheetData[$i], $dados); } catch (Exception $e) { $this->_addNaoImportado( $dados, $sheetData[$i], $this->naoImportados, $e->getMessage() ); } } 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 { $result = $dbtable->receberComissao(array( 'contrato_id' => $dadosContrato->id, 'data_recebimento_comissao' => $dados['data_recebimento_comissao'], 'parcelas' => $dados['parcelas'], 'valor_lancamento' => $dados['valor_lancamento'], 'comissao_empresa' => $dados['comissao_empresa'], 'data_saldo' => $dados['data_saldo'], 'tipo_remuneracao' => $dados['tipo_remuneracao'] )); if ($result <= 0) { $this->_addNaoImportado($dados, $sheetData, $this->naoImportados, 'Uma falha pode ter ocorrido na inserção do recebimento do contrato'); return; } Model_Contrato::gravarEspelhoImportacao($dadosContrato->id, $sheetData, $this->getArquivoOrigem()); } } protected function _getDataRecebimentoComissao(array $sheetData, array &$dados) { $colunaDtContratacao = $sheetData[$this->getColuna('data_pagamento_contrato')]; if (empty($colunaDtContratacao)) { throw new Core_Exception("A data de pagamento do contrato não foi informada"); } $dataContratacao = Core_Util::convertDate($colunaDtContratacao); if( is_array($dataContratacao) ){ throw new Core_Exception("Não foi possível converter a data de recebimento para o banco de dados. ({$colunaDtContratacao})"); } $dados['data_recebimento_comissao'] = $dataContratacao; $dados['data_saldo'] = $dataContratacao; } protected function _getValorLancamento(array $sheetData, array &$dados) { $valorLancamento = $this->getColuna('valor_liquido_comissao') > 0 ? trim($sheetData[$this->getColuna('valor_liquido_comissao')]) : trim($sheetData[$this->getColuna('valor_liquido_comissao')]); $dados['valor_lancamento'] = $valorLancamento; } protected function _getComissaoEmpresa(array $sheetData, array &$dados) { $valorLiquidoContrato = trim($sheetData[$this->getColuna('valor_liquido_contrato')]); $valorLiquidoComissao = trim($sheetData[$this->getColuna('valor_liquido_comissao')]); if( $valorLiquidoContrato > 0 ){ $dados['comissao_empresa'] = ($valorLiquidoComissao * 100 / $valorLiquidoContrato); }else{ $dados['comissao_empresa'] = $valorLiquidoComissao ; } } protected function _getNumeroParcelas(array $sheetData, array &$dados) { $dados['parcelas'] = $sheetData[$this->getColuna('parcelas')]; } protected function _getTipoRemuneracao(array $sheetData, array &$dados) { $colunaTipoRemuneracao = $sheetData[$this->getColuna('tipo_pagamento')]; $dados['tipo_remuneracao'] = $colunaTipoRemuneracao; } /** * * @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' => isset($dados['numero_contrato']) ? $dados['numero_contrato'] : '00000', 'parcelas' => $this->getColuna('parcelas') ? $sheetData[$this->getColuna('parcelas')] : null, 'data_recebimento_comissao' => $this->getColuna('periodo_pagto') ? $sheetData[$this->getColuna('periodo_pagto')] : null, 'valor_lancamento' => $this->getColuna('valor_comissao_renovacao') ? $sheetData[$this->getColuna('valor_comissao_renovacao')] : null, 'comissao_empresa' => $this->getColuna('valor_comissao') ? $sheetData[$this->getColuna('valor_comissao')] : null, 'tipo_remuneracao' => $this->getColuna('tipo_pagamento') ? $sheetData[$this->getColuna('tipo_pagamento')] : null, 'motivo' => $motivo )); return $result; } }
💾 保存文件
← 返回文件管理器