GhsDebtRecordClass.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace bizGhs\ghs\classes;
  3. use bizGhs\base\classes\BaseClass;
  4. use bizGhs\order\classes\PurchaseOrderClass;
  5. use bizGhs\shop\classes\ShopClass;
  6. use common\components\imgUtil;
  7. use common\components\util;
  8. use Yii;
  9. class GhsDebtRecordClass extends BaseClass
  10. {
  11. public static $baseFile = '\bizGhs\ghs\models\GhsDebtRecord';
  12. public static function getRecordList($where)
  13. {
  14. $data = self::getList('*', $where, 'addTime DESC,id DESC');
  15. return $data;
  16. }
  17. public static function exportPastList($list, $mainId)
  18. {
  19. $phpExcelFile = Yii::getAlias("@vendor/phpoffice/phpexcel/");
  20. require_once($phpExcelFile . 'Classes/PHPExcel.php');
  21. $objPHPExcel = new \PHPExcel();
  22. $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
  23. ->setLastModifiedBy("Maarten Balliauw")
  24. ->setTitle("Office 2007 XLSX Document")
  25. ->setSubject("Office 2007 XLSX Document")
  26. ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
  27. ->setKeywords("office 2007 openxml php")
  28. ->setCategory("file");
  29. $ghsTitle = '供货商';
  30. $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader(date('n月j日') . " " . $ghsTitle);
  31. $objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0.7);
  32. $objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0.1);
  33. $objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0.5);
  34. $objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0);
  35. $objPHPExcel->getActiveSheet()->getPageMargins()->setHeader(0.1);
  36. $objPHPExcel->getActiveSheet()->getPageMargins()->setFooter(0);
  37. $objPHPExcel->getActiveSheet()->setCellValue('A1', 'ID');
  38. $objPHPExcel->getActiveSheet()->setCellValue('B1', '名称');
  39. $objPHPExcel->getActiveSheet()->setCellValue('C1', '');
  40. $objPHPExcel->getActiveSheet()->setCellValue('D1', '欠款金额');
  41. //设置宽度
  42. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
  43. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
  44. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
  45. //加粗
  46. $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(9)->setBold(true);
  47. $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(9)->setBold(true);
  48. $objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setSize(9)->setBold(true);
  49. $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setSize(9)->setBold(true);
  50. $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  51. $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  52. $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  53. $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  54. $baseRow = 2;
  55. foreach ($list as $key => $ghs) {
  56. $i = $baseRow + $key;
  57. $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $ghs['id']);
  58. $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $ghs['name']);
  59. $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, '');
  60. $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $ghs['currentDebAmount']);
  61. //居左
  62. $objPHPExcel->getActiveSheet()->getStyle('A' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  63. $objPHPExcel->getActiveSheet()->getStyle('B' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  64. $objPHPExcel->getActiveSheet()->getStyle('C' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  65. $objPHPExcel->getActiveSheet()->getStyle('D' . $i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  66. }
  67. $fileName = '历史应付-' . time();
  68. $objPHPExcel->getActiveSheet()->setTitle($fileName);
  69. $objPHPExcel->setActiveSheetIndex(0);
  70. $dir = './priceTable/' . $mainId;
  71. if (file_exists($dir) == false) {
  72. mkdir($dir, 0777, true);
  73. }
  74. $date = $fileName;
  75. $file = $date . '.xls';
  76. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  77. if (file_exists($dir . '/' . $file)) {
  78. unlink($dir . '/' . $file);
  79. }
  80. $objWriter->save($dir . '/' . $file);
  81. $fileUrl = Yii::$app->params['ghsHost'] . '/priceTable/' . $mainId . '/' . $file;
  82. util::success(['file' => $fileUrl, 'shortFile' => $file]);
  83. }
  84. }