sjId ?? 0; $mainId = $cgInfo->mainId ?? 0; $ghsId = $cgInfo->ghsId ?? 0; $time = $date == null ? date('Ymd') : $date; $stat = self::getByCondition(['sjId' => $sjId, 'mainId' => $mainId, 'ghsId' => $ghsId, 'time' => $time], true); if (empty($stat)) { $stat = self::add(['mainId' => $mainId, 'sjId' => $sjId, 'ghsId' => $ghsId, 'time' => $time], true); } $id = $stat->id; $unique = self::getLockById($id); if ($add) { $currentAmount = bcadd($unique->amount, $amount, 2); $unique->amount = $currentAmount; } else { $currentAmount = bcsub($unique->refundAmount, $amount, 2); $unique->refundAmount = $currentAmount; } $unique->num = bcadd($unique->num, $num); $unique->save(); StatCgGhsMonthClass::hdCgGhsReplace($add, $cgInfo, $amount, $num, $time); } //城市批发商采购统计 ssh 2021012 public static function ghsReplace($cgInfo, $date = null) { $sjId = $cgInfo->sjId ?? 0; $mainId = $cgInfo->mainId ?? 0; $ghsId = $cgInfo->ghsId ?? 0; $time = $date == null ? date('Ymd') : $date; $stat = self::getByCondition(['sjId' => $sjId, 'mainId' => $mainId, 'ghsId' => $ghsId, 'time' => $time], true); if (empty($stat)) { $stat = self::add(['mainId' => $mainId, 'sjId' => $sjId, 'ghsId' => $ghsId, 'time' => $time], true); } $id = $stat->id; $amount = $cgInfo->price ?? 0; $totalFreight = $cgInfo->totalFreight ?? 0; if ($totalFreight > 0) { $amount = bcadd($totalFreight, $amount, 2); } $unique = self::getLockById($id); $num = $cgInfo->itemNum ?? 0; $currentNum = bcadd($unique->num, $num, 2); $unique->num = $currentNum; $currentAmount = bcadd($unique->amount, $amount, 2); $unique->amount = $currentAmount; $unique->save(); StatCgGhsMonthClass::ghsReplace($cgInfo, $time); } //退款统计 public static function ghsRefundReplace($cgInfo, $date = null) { $sjId = $cgInfo->sjId ?? 0; $shopId = $cgInfo->shopId ?? 0; $ghsId = $cgInfo->ghsId ?? 0; $time = $date == null ? date('Ymd') : $date; $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'ghsId' => $ghsId, 'time' => $time], true); if (empty($stat)) { $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'ghsId' => $ghsId, 'time' => $time], true); } $id = $stat->id; $unique = self::getLockById($id); $num = $cgInfo->itemNum ?? 0; $refundPrice = $cgInfo->refundPrice ?? 0; $currentRefundNum = bcadd($unique->refundNum, $num, 2); $currentRefundAmount = bcadd($unique->refundAmount, $refundPrice, 2); $unique->refundNum = $currentRefundNum; $unique->refundAmount = $currentRefundAmount; $unique->save(); StatCgGhsMonthClass::ghsRefundReplace($cgInfo, $time); } public static function exportCgGhsYj($list, $mainId) { $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', '手机号'); $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()->getColumnDimension('B')->setWidth(30); //加粗 $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('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); $baseRow = 2; foreach ($list as $key => $custom) { $i = $baseRow + $key; $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $custom['id']); $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $custom['name']); $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, ''); $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $custom['num']); $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $custom['orderPrice']); $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $custom['tkPrice']); $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $custom['actPrice']); $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $custom['carton']); $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $custom['pack']); $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $custom['freight']); //居左 $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); } $fileName = '供货商业绩-' . date("m-d"); $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]); } }