| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530 |
- <?php
- namespace bizGhs\custom\classes;
- use bizGhs\ghs\classes\GhsRechargeClass;
- use bizGhs\order\classes\OrderClearClass;
- use bizHd\purchase\classes\PurchaseClearClass;
- use common\components\dict;
- use common\components\util;
- use bizHd\base\classes\BaseClass;
- use Yii;
- class CustomBalanceChangeClass extends BaseClass
- {
- public static $baseFile = '\bizGhs\custom\models\CustomBalanceChange';
- /**
- * 客户余额变动列表(供货商端 CustomBalanceChangeController)
- * becomeBalance:本笔入账后「成为可用余额」的部分 = amount - clearAmount(对照零售 hd)
- */
- public static function getChangeList($where)
- {
- $data = self::getList('*', $where, 'addTime DESC,id DESC');
- if (!empty($data['list'])) {
- foreach ($data['list'] as $k => $v) {
- $v = self::fillClearAuditFromRecharge($v);
- $clearAmount = $v['clearAmount'] ?? 0;
- $amount = $v['amount'] ?? 0;
- $io = $v['io'] ?? 0;
- $becomeBalance = 0;
- if ($io == 1) {
- $becomeBalance = bcsub($amount, $clearAmount, 2);
- $becomeBalance = floatval($becomeBalance);
- }
- $data['list'][$k] = $v;
- $data['list'][$k]['becomeBalance'] = $becomeBalance;
- }
- }
- return $data;
- }
- /**
- * 入账流水补全结账单(充值清账、选订单销账-客户已转账 等)
- */
- public static function fillClearAuditFromRecharge($row)
- {
- if (empty($row) || !is_array($row)) {
- return $row;
- }
- if (intval($row['clearId'] ?? 0) > 0) {
- return self::normalizeClearAuditRow($row);
- }
- if (intval($row['io'] ?? 0) !== 1) {
- return $row;
- }
- $relateId = intval($row['relateId'] ?? 0);
- if ($relateId <= 0) {
- return $row;
- }
- // 旧流水:relateId 即结账单 id
- if (self::isClearIncomeCapitalType($row['capitalType'] ?? 0)) {
- return self::attachClearMetaFromClearId($row, $relateId);
- }
- if (!self::isRechargeCapitalType($row['capitalType'] ?? 0)
- && !self::isGhsSideRechargeCapitalType($row['capitalType'] ?? 0)) {
- return $row;
- }
- $recharge = self::resolveCustomRechargeForBalanceRow($row);
- if (!empty($recharge)) {
- $customId = intval(is_object($recharge) ? ($recharge->customId ?? 0) : ($recharge['customId'] ?? 0));
- if ($customId > 0) {
- $row['customId'] = $customId;
- }
- $clearId = intval(is_object($recharge) ? ($recharge->clearId ?? 0) : ($recharge['clearId'] ?? 0));
- if ($clearId > 0) {
- $row['clearId'] = $clearId;
- $row['clearSn'] = is_object($recharge) ? ($recharge->clearSn ?? '') : ($recharge['clearSn'] ?? '');
- $row['clearAmount'] = is_object($recharge) ? ($recharge->clearAmount ?? 0) : ($recharge['clearAmount'] ?? 0);
- return self::normalizeClearAuditRow($row);
- }
- }
- // 花店 xhGhsBalanceChange 禁止按金额模糊匹配,避免串到其它结账单
- if (self::isFloristGhsBalanceChangeRow($row)) {
- return $row;
- }
- // 供货商侧 CustomBalanceChange:充值单未落库 clearId 时再按金额+时间匹配
- return self::fillClearAuditByPaidClearMatch($row, $recharge ?? null);
- }
- /**
- * 供货商帮充:CustomBalanceChange.relateId=CustomRecharge.id;
- * 花店线上/帮充的 GhsBalanceChange.relateId=GhsRecharge.id(capitalType 常为 66 线上充)。
- */
- protected static function resolveCustomRechargeForBalanceRow(array $row)
- {
- $relateId = intval($row['relateId'] ?? 0);
- if ($relateId <= 0) {
- return null;
- }
- $capitalType = intval($row['capitalType'] ?? 0);
- if (self::isFloristGhsBalanceChangeRow($row) || self::isGhsSideRechargeCapitalType($capitalType)) {
- $ghsRecharge = GhsRechargeClass::getById($relateId, true);
- if (!empty($ghsRecharge)) {
- return self::findCustomRechargeByGhsRecharge($ghsRecharge);
- }
- }
- if (self::isRechargeCapitalType($capitalType)) {
- $customRecharge = CustomRechargeClass::getById($relateId, true);
- if (!empty($customRecharge)) {
- $linkedGhsRechargeId = intval(is_object($customRecharge)
- ? ($customRecharge->ghsRechargeId ?? 0)
- : ($customRecharge['ghsRechargeId'] ?? 0));
- if ($linkedGhsRechargeId <= 0 || $linkedGhsRechargeId !== $relateId) {
- return $customRecharge;
- }
- }
- $ghsRecharge = GhsRechargeClass::getById($relateId, true);
- if (!empty($ghsRecharge)) {
- return self::findCustomRechargeByGhsRecharge($ghsRecharge);
- }
- return $customRecharge ?? null;
- }
- return null;
- }
- /** 花店端 xhGhsBalanceChange:有 ghsId、无 customId */
- protected static function isFloristGhsBalanceChangeRow(array $row)
- {
- return intval($row['ghsId'] ?? 0) > 0 && intval($row['customId'] ?? 0) <= 0;
- }
- protected static function findCustomRechargeByGhsRecharge($ghsRecharge)
- {
- if (empty($ghsRecharge)) {
- return null;
- }
- $ghsRechargeId = intval(is_object($ghsRecharge) ? ($ghsRecharge->id ?? 0) : ($ghsRecharge['id'] ?? 0));
- if ($ghsRechargeId > 0) {
- $probe = new \bizGhs\custom\models\CustomRecharge();
- if (method_exists($probe, 'hasAttribute') && $probe->hasAttribute('ghsRechargeId')) {
- $linked = CustomRechargeClass::getByCondition(['ghsRechargeId' => $ghsRechargeId], true, null, 'id DESC');
- if (!empty($linked)) {
- return $linked;
- }
- }
- }
- $customId = intval(is_object($ghsRecharge) ? ($ghsRecharge->customId ?? 0) : ($ghsRecharge['customId'] ?? 0));
- $ghsId = intval(is_object($ghsRecharge) ? ($ghsRecharge->ghsId ?? 0) : ($ghsRecharge['ghsId'] ?? 0));
- $amount = bcadd((string)(is_object($ghsRecharge) ? ($ghsRecharge->amount ?? 0) : ($ghsRecharge['amount'] ?? 0)), '0', 2);
- if ($customId <= 0 || $ghsId <= 0 || bccomp($amount, '0', 2) <= 0) {
- return null;
- }
- $where = [
- 'customId' => $customId,
- 'ghsId' => $ghsId,
- 'amount' => $amount,
- ];
- $payTime = is_object($ghsRecharge) ? ($ghsRecharge->payTime ?? '') : ($ghsRecharge['payTime'] ?? '');
- if (!empty($payTime) && $payTime !== '0000-00-00 00:00:00') {
- $where['payTime'] = $payTime;
- }
- return CustomRechargeClass::getByCondition($where, true, null, 'id DESC');
- }
- /** 写入流水/充值单时带上结账单(有字段才写,对照 hd 充值即带 settleId) */
- public static function mergeClearAuditIntoRowData(array $data, array $audit)
- {
- $clearId = intval($audit['clearId'] ?? 0);
- if ($clearId <= 0) {
- return $data;
- }
- $probe = new \bizGhs\custom\models\CustomBalanceChange();
- if (!method_exists($probe, 'hasAttribute') || !$probe->hasAttribute('clearId')) {
- return $data;
- }
- $data['clearId'] = $clearId;
- $data['clearSn'] = (string)($audit['clearSn'] ?? '');
- $data['clearAmount'] = bcadd((string)($audit['clearAmount'] ?? 0), '0', 2);
- if ($probe->hasAttribute('giveAmount')) {
- $data['giveAmount'] = '0.00';
- }
- return $data;
- }
- public static function mergeClearAuditIntoRechargeData(array $data, array $audit)
- {
- $clearId = intval($audit['clearId'] ?? 0);
- if ($clearId <= 0) {
- return $data;
- }
- $probe = new \bizGhs\custom\models\CustomRecharge();
- if (!method_exists($probe, 'hasAttribute') || !$probe->hasAttribute('clearId')) {
- return $data;
- }
- $data['clearId'] = $clearId;
- $data['clearSn'] = (string)($audit['clearSn'] ?? '');
- $data['clearAmount'] = bcadd((string)($audit['clearAmount'] ?? 0), '0', 2);
- return $data;
- }
- protected static function attachClearMetaFromClearId(array $row, $clearId)
- {
- $clearId = intval($clearId);
- if ($clearId <= 0) {
- return $row;
- }
- $clear = OrderClearClass::getById($clearId, true);
- if (empty($clear)) {
- return $row;
- }
- $row['clearId'] = $clearId;
- $row['clearSn'] = is_object($clear) ? ($clear->orderSn ?? '') : ($clear['orderSn'] ?? '');
- $actPrice = is_object($clear) ? ($clear->actPrice ?? 0) : ($clear['actPrice'] ?? 0);
- $row['clearAmount'] = bcadd((string)$actPrice, '0', 2);
- return self::normalizeClearAuditRow($row);
- }
- /**
- * 充值入账与结账单关联:同客户、同实收金额、付款时间接近的已付结账单
- */
- protected static function fillClearAuditByPaidClearMatch(array $row, $recharge = null)
- {
- $customId = intval($row['customId'] ?? 0);
- if ($customId <= 0 && !empty($recharge)) {
- $customId = intval(is_object($recharge) ? ($recharge->customId ?? 0) : ($recharge['customId'] ?? 0));
- if ($customId > 0) {
- $row['customId'] = $customId;
- }
- }
- if ($customId <= 0) {
- return $row;
- }
- $amount = bcadd((string)($row['amount'] ?? 0), '0', 2);
- $anchorTime = (string)($row['addTime'] ?? '');
- if (!empty($recharge)) {
- $amount = bcadd((string)(is_object($recharge) ? ($recharge->amount ?? $amount) : ($recharge['amount'] ?? $amount)), '0', 2);
- $payTime = is_object($recharge) ? ($recharge->payTime ?? '') : ($recharge['payTime'] ?? '');
- if (!empty($payTime) && $payTime !== '0000-00-00 00:00:00') {
- $anchorTime = $payTime;
- }
- }
- $list = OrderClearClass::getAllByCondition([
- 'customId' => $customId,
- 'status' => PurchaseClearClass::STATUS_HAS_PAY,
- 'actPrice' => $amount,
- ], 'payTime DESC,id DESC', '*', null, true);
- if (empty($list)) {
- return $row;
- }
- $best = null;
- $bestDiff = null;
- $anchorTs = !empty($anchorTime) ? strtotime($anchorTime) : 0;
- foreach ($list as $clear) {
- $clearId = intval(is_object($clear) ? ($clear->id ?? 0) : ($clear['id'] ?? 0));
- if ($clearId <= 0) {
- continue;
- }
- if ($anchorTs <= 0) {
- $best = $clear;
- break;
- }
- $payTime = is_object($clear) ? ($clear->payTime ?? '') : ($clear['payTime'] ?? '');
- $payTs = !empty($payTime) ? strtotime($payTime) : 0;
- if ($payTs <= 0) {
- continue;
- }
- $diff = abs($anchorTs - $payTs);
- if ($bestDiff === null || $diff < $bestDiff) {
- $bestDiff = $diff;
- $best = $clear;
- }
- }
- if (empty($best) || $bestDiff === null || $bestDiff > 300) {
- return $row;
- }
- $clearId = intval(is_object($best) ? ($best->id ?? 0) : ($best['id'] ?? 0));
- return self::attachClearMetaFromClearId($row, $clearId);
- }
- protected static function normalizeClearAuditRow(array $row)
- {
- if (intval($row['clearId'] ?? 0) > 0 && (empty($row['clearSn']) || bccomp((string)($row['clearAmount'] ?? 0), '0', 2) <= 0)) {
- $row = self::attachClearMetaFromClearId($row, intval($row['clearId']));
- }
- return $row;
- }
- /** 供货商帮充 / 线上充 / 售后返充 */
- protected static function isRechargeCapitalType($capitalType)
- {
- $capitalType = intval($capitalType);
- $ids = [
- dict::getDict('capitalType', 'ghsHelpCustomRecharge', 'id'),
- dict::getDict('capitalType', 'ghsHelpCustomRechargeReturn', 'id'),
- dict::getDict('capitalType', 'customRechargeToGhs', 'id'),
- ];
- return in_array($capitalType, $ids, true);
- }
- /** 花店侧 xhGhsBalanceChange:relateId 为 GhsRecharge.id */
- protected static function isGhsSideRechargeCapitalType($capitalType)
- {
- $capitalType = intval($capitalType);
- $ids = [
- dict::getDict('capitalType', 'customAskGhsRecharge', 'id'),
- dict::getDict('capitalType', 'customAskGhsRechargeReturn', 'id'),
- ];
- return in_array($capitalType, $ids, true);
- }
- /** 结账类入账(relateId=结账单 id) */
- protected static function isClearIncomeCapitalType($capitalType)
- {
- $capitalType = intval($capitalType);
- $ids = [
- dict::getDict('capitalType', 'ghsXsClear', 'id'),
- dict::getDict('capitalType', 'ghsHelpCustomUseBalanceClear', 'id'),
- dict::getDict('capitalType', 'customAskGhsUseBalanceClear', 'id'),
- ];
- return in_array($capitalType, $ids, true);
- }
- /**
- * 充值销账后回写流水上的 clearId(GhsRechargeSettleService 调用)
- */
- public static function patchClearAuditByRechargeId($customId, $rechargeId, $clearId, $clearSn, $clearAmount, $finalBalance = null)
- {
- $customId = intval($customId);
- $rechargeId = intval($rechargeId);
- $clearId = intval($clearId);
- if ($customId <= 0 || $rechargeId <= 0 || $clearId <= 0) {
- return;
- }
- $row = self::getByCondition([
- 'customId' => $customId,
- 'relateId' => $rechargeId,
- 'io' => 1,
- ], true, null, 'id DESC');
- if (empty($row) || !method_exists($row, 'hasAttribute') || !$row->hasAttribute('clearId')) {
- return;
- }
- $row->clearId = $clearId;
- $row->clearSn = (string)$clearSn;
- $row->clearAmount = bcadd((string)$clearAmount, '0', 2);
- if ($finalBalance !== null && $row->hasAttribute('balance')) {
- $row->balance = $finalBalance;
- }
- if ($row->hasAttribute('giveAmount')) {
- $row->giveAmount = '0.00';
- }
- $row->save(false);
- }
- public static function exportData($respond, $mainId)
- {
- $orderList = $respond['list'] ?? [];
- if (empty($orderList)) {
- util::fail('没有数据需要导出');
- }
- $phpExcelFile = Yii::getAlias("@vendor/phpoffice/phpexcel/");
- require_once($phpExcelFile . 'Classes/PHPExcel.php');
- $objPHPExcel = new \PHPExcel();
- $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
- ->setLastModifiedBy("Maarten Balliauw")
- ->setTitle("Office 2007 XLSX Document")
- ->setSubject("Office 2007 XLSX Document")
- ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
- ->setKeywords("office 2007 openxml php")
- ->setCategory("file");
- $ghsTitle = '余额变动记录';
- $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日') . " " . $ghsTitle);
- $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.7);
- $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.1);
- $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.5);
- $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0);
- $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader(0.1);
- $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter(0);
- $objPHPExcel->getActiveSheet()->setCellValue('A1', 'ID');
- $objPHPExcel->getActiveSheet()->setCellValue('B1', '日期');
- $objPHPExcel->getActiveSheet()->setCellValue('C1', '客户ID');
- $objPHPExcel->getActiveSheet()->setCellValue('D1', '客户名称');
- $objPHPExcel->getActiveSheet()->setCellValue('E1', '类型');
- $objPHPExcel->getActiveSheet()->setCellValue('F1', '支付方式');
- $objPHPExcel->getActiveSheet()->setCellValue('G1', '事项');
- $objPHPExcel->getActiveSheet()->setCellValue('H1', '人员');
- $objPHPExcel->getActiveSheet()->setCellValue('I1', '变动');
- $objPHPExcel->getActiveSheet()->setCellValue('J1', '余额');
- $objPHPExcel->getActiveSheet()->setCellValue('K1', '备注');
- //设置宽度
- $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
- $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
- $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
- $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);
- $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
- $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(16);
- $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20);
- //加粗
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('F1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('G1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('H1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('I1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('J1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('K1')->getFont()->setSize(9)->setBold(true);
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('K1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
- $baseRow = 2;
- foreach ($orderList as $key => $order) {
- $i = $baseRow + $key;
- $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $order['id']);
- $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $order['addTime']);
- $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $order['customId']);
- $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $order['customName']);
- $capitalType = $order['capitalType'];
- $capName = '-';
- if ($capitalType == 75) {
- $capName = '售后返充';
- }
- if ($capitalType == 62) {
- $capName = '线下充值';
- }
- if ($capitalType == 66) {
- $capName = '线上充值';
- }
- if ($capitalType == 64) {
- $capName = '结账';
- }
- $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $capName);
- $payWay = $order['payWay'];
- $payName = '-';
- if ($capitalType == 62 || $capitalType == 66) {
- if ($payWay == 0) {
- $payName = '微信';
- }
- if ($payWay == 1) {
- $payName = '支付宝';
- }
- if ($payWay == 2) {
- $payName = '余额';
- }
- if ($payWay == 4) {
- $payName = '现金';
- }
- if ($payWay == 5) {
- $payName = '银行卡';
- }
- }
- $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $payName);
- $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $order['event']);
- $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $order['staffName']);
- $amount = isset($order['io']) && $order['io'] == 1 ? '+'.$order['amount'] : '-'.$order['amount'];
- $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $amount);
- $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $order['balance']);
- $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $order['remark']);
- //居中
- $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('B' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('C' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('D' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('E' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('F' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('G' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('H' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('I' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('J' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- $objPHPExcel->getActiveSheet()->getStyle('K' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
- }
- $fileName = '余额变动记录-' . time();
- $objPHPExcel->getActiveSheet()->setTitle($fileName);
- $objPHPExcel->setActiveSheetIndex(0);
- $dir = './priceTable/' . $mainId;
- if (file_exists($dir) == false) {
- mkdir($dir, 0777, true);
- }
- $date = $fileName;
- $file = $date . '.xls';
- $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
- if (file_exists($dir . '/' . $file)) {
- unlink($dir . '/' . $file);
- }
- $objWriter->save($dir . '/' . $file);
- $fileUrl = Yii::$app->params['ghsHost'] . '/priceTable/' . $mainId . '/' . $file;
- util::success(['file' => $fileUrl, 'shortFile' => $file]);
- }
- }
|