✏️ 正在编辑: SplitItens.php
路径:
/srv/systems_dir/koruspay/application/models/SplitItens.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_SplitItens extends Core_Model { public function display(int $id) { $dbTable = new Model_DbTable_SplitItens(); $split = $dbTable->fetchRow(["id = ?" => $id]); if ($split) { return $split; } return false; } public static function setItensErro(array $itensErro) { $dbTable = new Model_DbTable_SplitItens(); foreach ($itensErro as $key => $itemErro) { $dbTable->update($itemErro, "id = " . $key); } } public function deletedItens(array $itens) { $dbTable = new Model_DbTable_SplitItens(); foreach ($itens as $item) { $dbTable->update(['deleted' => 1, 'situation' => 'EXCLUIDO'], ["MD5(id) = ?" => $item]); } } /** * Método para montar o novo split. Deve considerar que os itens serão realocados para um novo split. * Na Transfeera, uma vez que o lote é fechado (processado), não dá pra inserir mais nada nele. */ public function insertReprocess(array $itens, int $splitId) { $dbTable = new Model_DbTable_SplitItens(); $idsReprocessar = []; $splitData = Model_Container::getSplit()->findById($splitId); $totalSplit = 0; $splitParentId = 0; foreach ($itens as $item) { $itemOrigem = ($this->display($item['parent_id']))->toArray(); $novo = array_merge($itemOrigem, $item); $novo['split_id'] = $splitId; $totalSplit += $novo['amount']; $splitParentId = $itemOrigem['split_id']; if (empty($splitData->parent_id)) { $splitData->parent_id = $itemOrigem['split_id']; $splitData->save(); } unset($novo['id']); unset($novo['situation']); unset($novo['status_description']); unset($novo['date_error']); unset($novo['deleted']); $result = $dbTable->insert($novo, true); if ($result) { try { $dbTable->update(['reprocessed' => 1, 'deleted' => 1], "id = " . $item['parent_id']); $tbTransactions = Model_Container::getTransactions(); $tbTransactions->update(['deleted' => true, 'situation' => 'REPROCESSADO'], 'split_item_id = ' . $item['parent_id']); } catch (Exception $e) { Yuppie_Log::write("Erro ao marcar item de split como reprocessado: " . $e->getMessage(), $this); } $idsReprocessar[] = $result; } } //deduz o valor do split original $splitParent = Model_Container::getSplit()->findById($splitParentId); $splitParent->amount -= $totalSplit; $splitParent->save(); return $idsReprocessar; } public function payOut($transaction) { if (empty($transaction['split_item_id'])) { return; } return $this->getDbTable()->update([ 'situation' => 'CONCLUIDO', 'proof_url' => $transaction['proof_url'], 'status_description' => null, 'date_error' => null, 'pix_end2end_id' => $transaction['transfer_id'] ], ["id = ?" => $transaction['split_item_id']]); } }
💾 保存文件
← 返回文件管理器