purchase_list_excel.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. include $_SERVER['DOCUMENT_ROOT'].'/common/lib/comm.php';
  3. include $_SERVER['DOCUMENT_ROOT'].ADMIN_PATH.'common/auth_chk.php';
  4. include $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
  5. $searchtype = $_REQUEST['searchtype'];
  6. $searchword = $_REQUEST['searchword'];
  7. $ds_usertype = $_REQUEST['ds_usertype'];
  8. $dt_start = $_REQUEST['dt_start'];
  9. $dt_end = $_REQUEST['dt_end'];
  10. $ds_status = $_REQUEST['ds_status'];
  11. $add_sql = "where s.ds_delind='N'";
  12. $add_sql1 = "where 1=1";
  13. $ds_type = "A0"; //A0 : 매입
  14. $add_sql.= " AND s.ds_type = '$ds_type' ";
  15. if($searchword != ""){
  16. if($searchtype=="" || $searchtype==null){
  17. $add_sql.= " AND (s.nm_name like '$searchword%' or s.nm_name like '$searchword%') ";
  18. }else{
  19. $add_sql.= " AND $searchtype like '$searchword%'";
  20. }
  21. }
  22. if($dt_start != "" && $dt_end != ""){
  23. $sql1 = $sql1. " AND d.dt_insert between '$dt_start' and '$dt_end' ";
  24. }
  25. if($ds_usertype != ""){
  26. $add_sql.= " AND s.ds_usertype = '$ds_usertype'";
  27. }
  28. $add_sql.= " AND s.ds_status in ('ZS') ";
  29. $orderby = "order by st.cnt desc";
  30. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  31. $spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
  32. $sheet = $spreadsheet->getActiveSheet();
  33. $sql = "SELECT
  34. st.*
  35. , d.*
  36. , d.nm_hp as dealer_nm_hp
  37. , d.dt_insert as dealer_dt_insert
  38. from
  39. (
  40. select t.cd_dealer_p, count(*) cnt
  41. from sale_master s
  42. inner join tender_master t on (s.cd_sale = t.cd_sale and s.ds_status = 'ZS' and t.ds_status = 'Z0' AND t.ds_delind = 'N')
  43. $add_sql
  44. group by t.cd_dealer_p
  45. ) st
  46. inner join aap_master d on (st.cd_dealer_p = d.cd_dealer and d.ds_type = 'D0')
  47. $add_sql1
  48. $orderby
  49. ";
  50. $r = mysql_query($sql, $connect);
  51. // echo $sql;
  52. // exit;
  53. $i=1;
  54. $EXCEL_DATA = array();
  55. while($col = mysql_fetch_assoc($r)) {
  56. #리스트
  57. $DATA = array();
  58. $DATA['no'] = (string)$i;
  59. $DATA['nm_name'] = $col['nm_name'];
  60. $DATA['dealer_nm_hp'] = $col['dealer_nm_hp'];
  61. $DATA['cnt'] = $col['cnt'];
  62. $DATA['dealer_dt_insert'] = $col['dealer_dt_insert'];
  63. $EXCEL_DATA[] = $DATA;
  64. unset($DATA);
  65. $i++;
  66. }
  67. mysql_close($connect);
  68. $cells = array(
  69. 'A' => array(15, 'no', '번호'),
  70. 'B' => array(20, 'nm_name', '업체명'),
  71. 'C' => array(40, 'dealer_nm_hp', '연락처'),
  72. 'D' => array(20, 'cnt', '구매확정차량'),
  73. 'E' => array(20, 'dealer_dt_insert', '회원가입일'),
  74. );
  75. foreach ($cells as $key => $val) {
  76. $cellName = $key.'1';
  77. $sheet->getColumnDimension($key)->setWidth($val[0]);
  78. $sheet->getRowDimension('1')->setRowHeight(25);
  79. $sheet->setCellValue($cellName, $val[2]);
  80. $sheet->getStyle($cellName)->getFont()->setBold(true);
  81. $sheet->getStyle($cellName)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  82. $sheet->getStyle($cellName)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
  83. }
  84. for ($i = 2; $row = array_shift($EXCEL_DATA); $i++) {
  85. foreach ($cells as $key => $val) {
  86. $sheet->setCellValue($key.$i, $row[$val[1]]);
  87. }
  88. }
  89. $filename = '관리자_구매확정_엑셀_'.date('Y-m-d');
  90. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  91. header('Content-Disposition: attachment; filename="'.$filename.'.xlsx"');
  92. $writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
  93. $writer->save('php://output');
  94. exit;
  95. ?>