|
|
@@ -6,6 +6,7 @@ use bizGhs\base\classes\BaseClass;
|
|
|
use bizGhs\order\classes\PurchaseOrderClass;
|
|
|
use bizGhs\shop\classes\ShopClass;
|
|
|
use common\components\imgUtil;
|
|
|
+use Yii;
|
|
|
|
|
|
class GhsClass extends BaseClass
|
|
|
{
|
|
|
@@ -59,4 +60,86 @@ class GhsClass extends BaseClass
|
|
|
return $list;
|
|
|
}
|
|
|
|
|
|
+ public static function getGhsFile($mainId)
|
|
|
+ {
|
|
|
+ $ghsList = GhsClass::getAllByCondition(['ownMainId' => $mainId], null, '*');
|
|
|
+ if (!empty($ghsList)) {
|
|
|
+ foreach ($ghsList as $key => $ghs) {
|
|
|
+ $count = PurchaseOrderClass::getCount(['ghsId' => $ghs['id'], 'debt' => PurchaseOrderClass::DEBT_YES]);
|
|
|
+ $debtAmount = PurchaseOrderClass::sum(['ghsId' => $ghs['id'], 'debt' => PurchaseOrderClass::DEBT_YES], 'actPrice');
|
|
|
+ $ghsList[$key]['debtNum'] = $count;
|
|
|
+ $ghsList[$key]['debtAmount'] = $debtAmount;
|
|
|
+ }
|
|
|
+ }
|
|
|
+print_r($ghsList);die;
|
|
|
+
|
|
|
+ $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");
|
|
|
+
|
|
|
+ //$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日') . " " . $levelName . "客户");
|
|
|
+ //$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日') . " 编号 " . $level);
|
|
|
+ $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);
|
|
|
+
|
|
|
+ $i = 1;
|
|
|
+ $letter = [1 => ['A', 'B'], 2 => ['C', 'D'], 3 => ['E', 'F'], 4 => ['G', 'H'], 5 => ['I', 'J'], 6 => ['K', 'L'], 7 => ['M', 'N'],
|
|
|
+ 8 => ['O', 'P'], 9 => ['Q', 'R'], 10 => ['S', 'T'], 11 => ['U', 'V']];
|
|
|
+ //最大行
|
|
|
+ $max = 50;
|
|
|
+ foreach ($formatData as $key => $product) {
|
|
|
+ $currentPage = ceil($i / $max);
|
|
|
+ $x = $i % $max == 0 ? $max : $i % $max;
|
|
|
+ $before = $letter[$currentPage][0] ?? 'A';
|
|
|
+ $after = $letter[$currentPage][1] ?? 'B';
|
|
|
+
|
|
|
+ //行高14
|
|
|
+ $objPHPExcel->getActiveSheet()->getRowDimension($x)->setRowHeight(15);
|
|
|
+
|
|
|
+ //设置表格宽度
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension($before)->setWidth(11);
|
|
|
+ $objPHPExcel->getActiveSheet()->getColumnDimension($after)->setWidth(5);
|
|
|
+
|
|
|
+
|
|
|
+ $objPHPExcel->getActiveSheet()->setCellValue($before . $x, $product['name'])->setCellValue($after . $x, $product['price']);
|
|
|
+ //字体大小
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle($before . $x)->getFont()->setSize(9);
|
|
|
+ //垂直居中
|
|
|
+ $objPHPExcel->getActiveSheet()->getStyle($before . $x)->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
|
|
|
+
|
|
|
+
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ $objPHPExcel->getActiveSheet()->setTitle('供货商列表');
|
|
|
+ $objPHPExcel->setActiveSheetIndex(0);
|
|
|
+ $dir = './priceTable/' . $mainId;
|
|
|
+ if (file_exists($dir) == false) {
|
|
|
+ mkdir($dir, 0777, true);
|
|
|
+ }
|
|
|
+ $date = date("m-d") . "-" . '供货商';
|
|
|
+ $file = $date . '.xls';
|
|
|
+ $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
|
+ if (file_exists($dir . '/' . $file)) {
|
|
|
+ unlink($dir . '/' . $file);
|
|
|
+ }
|
|
|
+ $objWriter->save($dir . '/' . $file);
|
|
|
+ return ['file' => '/priceTable/' . $mainId . '/' . $file, 'shortFile' => $file];
|
|
|
+ }
|
|
|
+
|
|
|
}
|