|
|
@@ -2,17 +2,364 @@
|
|
|
|
|
|
namespace ghs\controllers;
|
|
|
|
|
|
-use biz\admin\classes\AdminRoleClass;
|
|
|
-use bizGhs\item\classes\ItemClassClass;
|
|
|
-use bizGhs\merchant\classes\ShopClass;
|
|
|
+use biz\ghs\classes\GhsClass;
|
|
|
+use biz\sj\classes\SjClass;
|
|
|
+use biz\wx\classes\WxMessageClass;
|
|
|
+use bizGhs\book\classes\BookItemClass;
|
|
|
+use bizGhs\order\classes\PurchaseOrderClass;
|
|
|
+use bizGhs\order\classes\PurchaseOrderItemClass;
|
|
|
use bizGhs\product\classes\ProductClass;
|
|
|
-use bizGhs\product\models\Product;
|
|
|
-use bizGhs\product\services\ProductService;
|
|
|
+use bizGhs\shop\classes\ShopClass;
|
|
|
+use bizHd\purchase\classes\PurchaseClass;
|
|
|
+use common\components\dateUtil;
|
|
|
+use common\components\dict;
|
|
|
+use common\components\noticeUtil;
|
|
|
+use common\components\printUtil;
|
|
|
use common\components\stringUtil;
|
|
|
use common\components\util;
|
|
|
+use biz\shop\classes\ShopExtClass;
|
|
|
use Yii;
|
|
|
+use biz\shop\classes\MainClass;
|
|
|
+use biz\shop\classes\ShopCapitalClass;
|
|
|
+use biz\stat\classes\StatCgClass;
|
|
|
+use biz\stat\classes\StatCgGhsClass;
|
|
|
+use biz\stat\classes\StatOutClass;
|
|
|
+use bizGhs\base\classes\BaseClass;
|
|
|
+use bizGhs\book\classes\BookCustomClass;
|
|
|
+use bizGhs\book\classes\BookItemCustomClass;
|
|
|
+use bizGhs\book\classes\BookItemGhsClass;
|
|
|
+use bizGhs\cg\classes\CgOrderItemClass;
|
|
|
+use bizGhs\cg\classes\CgOrderItemSendClass;
|
|
|
+use bizGhs\custom\classes\CustomClass;
|
|
|
+use bizGhs\ghs\classes\GhsDebtRecordClass;
|
|
|
+use bizGhs\item\classes\CostChangeClass;
|
|
|
+use bizGhs\item\classes\ItemClassClass;
|
|
|
+use bizGhs\order\traits\OrderTrait;
|
|
|
+use bizGhs\shop\classes\ShopAdminClass;
|
|
|
+use bizGhs\stock\classes\OnStockRecordClass;
|
|
|
+use bizGhs\stock\classes\StockRecordClass;
|
|
|
|
|
|
-class CsController extends PublicController
|
|
|
+class CsController extends BaseController
|
|
|
{
|
|
|
|
|
|
+ public $guestAccess = ['list'];
|
|
|
+
|
|
|
+ public function actionList()
|
|
|
+ {
|
|
|
+ $where = [];
|
|
|
+ $get = Yii::$app->request->get();
|
|
|
+ $export = $get['export'] ?? 0;
|
|
|
+ $search = $get['search'] ?? '';
|
|
|
+ $where['shopId'] = 23580;
|
|
|
+ $ghsId = $get['ghsId'] ?? 0;
|
|
|
+ if (!empty($ghsId)) {
|
|
|
+ $where['ghsId'] = $ghsId;
|
|
|
+ }
|
|
|
+ if (!empty($search)) {
|
|
|
+ if (is_numeric($search) && strlen($search) == 4) {
|
|
|
+ $where['orderSn'] = ['like', $search];
|
|
|
+ } else {
|
|
|
+ $where['ghsName'] = ['like', $search];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $name = $get['name'] ?? '';
|
|
|
+ if (!empty($name)) {
|
|
|
+ $re = strstr($name, 'PH');
|
|
|
+ if (!empty($re)) {
|
|
|
+ $where['orderSn'] = $name;
|
|
|
+ } else {
|
|
|
+ $where['ghsName'] = ['like', $name];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $searchTime = 'custom';
|
|
|
+
|
|
|
+ $startTime = '2024-07-01';
|
|
|
+ $endTime = '2024-07-31';
|
|
|
+ $period = dateUtil::formatTime($searchTime, $startTime, $endTime);
|
|
|
+ $where['entryTime'] = ['between', [$period['startTime'], $period['endTime']]];
|
|
|
+
|
|
|
+ $cgStaffId = $get['cgStaffId'] ?? 0;
|
|
|
+ if (!empty($cgStaffId)) {
|
|
|
+ $where['cgStaffId'] = $cgStaffId;
|
|
|
+ }
|
|
|
+ if ($export == 1) {
|
|
|
+ ini_set('memory_limit', '2045M');
|
|
|
+ set_time_limit(0);
|
|
|
+ if (isset($where['entryTime']) == false) {
|
|
|
+ util::fail('请选时间段');
|
|
|
+ }
|
|
|
+ $start = $where['entryTime'][1][0];
|
|
|
+ $end = $where['entryTime'][1][1];
|
|
|
+ $monthTime = bcmul(31, 86400);
|
|
|
+ $startArea = strtotime($start);
|
|
|
+ $endArea = strtotime($end);
|
|
|
+ $diff = bcsub($endArea, $startArea);
|
|
|
+ if ($diff > $monthTime) {
|
|
|
+ util::fail('最长可导出一个月');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $data = PurchaseOrderClass::getOrderList($where);
|
|
|
+
|
|
|
+ if ($export == 1) {
|
|
|
+ $this->exportOrderData($data, 23390);
|
|
|
+ }
|
|
|
+
|
|
|
+ //状态统计,很慢,暂时隐藏
|
|
|
+ //$statData = PurchaseOrderClass::statNum($this->shopId);
|
|
|
+ $statData = [
|
|
|
+ 'allNum' => 0,
|
|
|
+ 'unPayNum' => 0,
|
|
|
+ 'unSendNum' => 0,
|
|
|
+ 'sendingNum' => 0,
|
|
|
+ 'finishNum' => 0,
|
|
|
+ ];
|
|
|
+ $data = array_merge($data, $statData);
|
|
|
+ echo "<pre>";
|
|
|
+ print_r($data);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function exportOrderData($respond, $mainId)
|
|
|
+ {
|
|
|
+ $orderList = $respond['list'] ?? [];
|
|
|
+ if (empty($orderList)) {
|
|
|
+ util::fail('没有数据需要导出');
|
|
|
+ }
|
|
|
+ $orderSnList = array_column($orderList, 'orderSn');
|
|
|
+ $orderItemData = PurchaseOrderItemClass::getAllByCondition(['orderSn' => ['in', $orderSnList]], null, '*');
|
|
|
+ $orderItemList = [];
|
|
|
+ if (!empty($orderItemData)) {
|
|
|
+ foreach ($orderItemData as $itemInfo) {
|
|
|
+ $orderSn = $itemInfo['orderSn'] ?? '';
|
|
|
+ $orderItemList[$orderSn][] = $itemInfo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ foreach ($orderList as $key => $orderInfo) {
|
|
|
+ $orderSn = $orderInfo['orderSn'] ?? '';
|
|
|
+ $status = $orderInfo['status'] ?? 0;
|
|
|
+ //增加项
|
|
|
+ $actPrice = $orderInfo['actPrice'] ?? 0;
|
|
|
+ if ($status != 4) {
|
|
|
+ unset($orderList[$key]);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //增加项
|
|
|
+ if ($actPrice <= 0) {
|
|
|
+ unset($orderList[$key]);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $itemList = $orderItemList[$orderSn] ?? [];
|
|
|
+ $orderList[$key]['itemList'] = $itemList;
|
|
|
+ }
|
|
|
+
|
|
|
+ $classList = ItemClassClass::getAllByCondition(['mainId' => $mainId], null, '*', 'id');
|
|
|
+
|
|
|
+ $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', '订单号');
|
|
|
+ $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()->setCellValue('K1', '打印次数');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('L1', '结清状态');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('M1', '');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('N1', '花材Id');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('O1', '花材名称');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('P1', '单价');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('Q1', '数量');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('R1', '已退数量');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('S1', '金额');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('T1', '分类');
|
|
|
+
|
|
|
+ //设置宽度
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension('O')->setWidth(20);
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension('T')->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('L1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('M1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('N1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('O1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('P1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('Q1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('R1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('S1')->getFont()->setSize(9)->setBold(true);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('T1')->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('L1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('Q1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('R1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('S1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('T1')->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);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('L1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('M1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('N1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('O1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('P1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('Q1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('R1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('S1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('T1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+
|
|
|
+ $baseRow = 2;
|
|
|
+ $x = 0;
|
|
|
+ foreach ($orderList as $key => $orderData) {
|
|
|
+ $currentList = $orderData['itemList'] ?? [];
|
|
|
+ if (!empty($currentList)) {
|
|
|
+ foreach ($currentList as $k => $orderInfo) {
|
|
|
+ $i = $baseRow + $x;
|
|
|
+ $x++;
|
|
|
+
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $orderData['orderSn']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $orderData['addTime']);
|
|
|
+ if ($orderData['status'] == 4) {
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $orderData['entryTime']);
|
|
|
+ } else {
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, '');
|
|
|
+ }
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $orderData['orderPrice']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $orderData['tkPrice']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $orderData['actPrice']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $orderData['ghsName']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $orderData['shopAdminName']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $orderData['cgStaffName']);
|
|
|
+ $map = [1 => '待确认', 2 => '待发货', 3 => '待入库', 4 => '已入库', 5 => '已取消'];
|
|
|
+ $statusName = isset($orderData['status']) && isset($map[$orderData['status']]) ? $map[$orderData['status']] : '未知';
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $statusName);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $orderData['printNum'] ?? 0);
|
|
|
+ $debtName = '';
|
|
|
+ if ($orderData['debt'] == 1) {
|
|
|
+ $debtName = '未结清';
|
|
|
+ }
|
|
|
+ if ($orderData['debt'] == 2) {
|
|
|
+ $debtName = '已结清';
|
|
|
+ }
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $debtName);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, '');
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $orderInfo['productId']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, $orderInfo['name']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('P' . $i, $orderInfo['bigPrice']);
|
|
|
+ $remainNum = bcsub($orderInfo['itemNum'], $orderInfo['refundNum']);
|
|
|
+ $price = bcmul($remainNum, $orderInfo['bigPrice'], 2);
|
|
|
+ $price = floatval($price);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('Q' . $i, $remainNum);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('R' . $i, $orderInfo['refundNum']);
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('S' . $i, $price);
|
|
|
+ $classId = $orderInfo['classId'] ?? 0;
|
|
|
+ $className = isset($classList[$classId]) && isset($classList[$classId]['name']) ? $classList[$classId]['name'] : '';
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue('T' . $i, $className);
|
|
|
+
|
|
|
+ //居左
|
|
|
+ $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);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('L' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('M' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('N' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('O' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('P' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('Q' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('R' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('S' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle('T' . $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]);
|
|
|
+ }
|
|
|
+
|
|
|
}
|