| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- <?php
- namespace biz\stat\classes;
- use biz\base\classes\BaseClass;
- use common\components\util;
- use Yii;
- class StatCgGhsClass extends BaseClass
- {
- public static $baseFile = '\biz\stat\models\StatCgGhs';
- //花店采购统计 ssh 20220402
- public static function hdCgGhsReplace($add, $cgInfo, $amount, $num, $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;
- $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]);
- }
- }
|