end_list_excel.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  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. // $orderby = "order by s.dt_insert desc";
  13. if(empty($PageSort)) {
  14. $orderby = "order by s.dt_update desc";
  15. }else {
  16. $sort = explode("|", $PageSort);
  17. $orderby = "order by $sort[0] $sort[1] ";
  18. }
  19. $searchtype = $_REQUEST['searchtype'];
  20. $searchword = $_REQUEST['searchword'];
  21. $ds_usertype = $_REQUEST['ds_usertype'];
  22. $ds_status = $_REQUEST['ds_status'];
  23. $dt_start = $_REQUEST['dt_start'];
  24. $dt_end = $_REQUEST['dt_end'];
  25. $ds_type = "A0"; //A0 : 매입
  26. $add_sql.= " and s.ds_type = '$ds_type' ";
  27. if($searchword != ""){
  28. if($searchtype=="" || $searchtype==null){
  29. $add_sql.= " and (s.nm_name like '$searchword%' or a.nm_number like '$searchword%') ";
  30. }else{
  31. $add_sql.= " and $searchtype like '$searchword%'";
  32. }
  33. }
  34. if($dt_start != "" && $dt_end != ""){
  35. $add_sql.= " and s.dt_end between '$dt_start' and '$dt_end' ";
  36. }
  37. if($ds_usertype != ""){
  38. $add_sql.= " and s.ds_usertype = '$ds_usertype'";
  39. }
  40. $add_sql.= " and s.ds_status in ('ZS') ";
  41. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  42. //관계사/지점 Setting
  43. $admin_ds_company_bp = $_SESSION['admin_ds_company_bp']; //관계사
  44. $admin_ds_branch = $_SESSION['admin_ds_branch']; //지점
  45. $admin_bp_ok = ($admin_ds_company_bp != "" || $admin_ds_branch != "") ? true : false; //admin_ds_company_bp 나 admin_ds_branch 값이 하나라도 있으면 관계사로 보고 권한 제한한다. $admin_bp_ok == true 이면 해당 관계사/지점 데이타만 확인 가능하다.
  46. //관계사 일 경우 해당 관계사/지점 데이타만 확인 가능하다.
  47. // if($admin_bp_ok){
  48. // if($admin_ds_company_bp != "" && $admin_ds_branch != ""){
  49. // $add_sql.= " and s.ds_company_bp = '$admin_ds_company_bp' and s.ds_branch = '$admin_ds_branch' ";
  50. // }else{ //admin_ds_company_bp 나 admin_ds_branch 값이 하나라도 없으면 데이타 확인 안되게 한다.
  51. // $add_sql.= " and 1 = 2 ";
  52. // }
  53. // }
  54. $spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
  55. $sheet = $spreadsheet->getActiveSheet();
  56. $sql = "SELECT car.*
  57. , getCode('car_master','ds_type',car.ds_type) as nm_type
  58. , getCode('car_master','ds_open',car.ds_open) as nm_open
  59. , getCode('car_master','ds_sales',car.ds_sales) as nm_sales
  60. , getCode('car_master','ds_transmission',car.ds_transmission) as nm_transmission
  61. , getCode('member_master','ds_area',car.ds_area_sale) as nm_area
  62. , getCode('sale_master','ds_status',car.ds_status_sale) as nm_status
  63. , t.*
  64. , a.nm_name nm_name_company
  65. FROM (
  66. SELECT
  67. a.*
  68. , b.nm_model
  69. , c.nm_grade
  70. , d.nm_brand
  71. , e.nm_model_sub
  72. , s.cd_sale
  73. , s.nm_name nm_name_sale
  74. , s.nm_recommend nm_recommend_sale
  75. , s.ds_status ds_status_sale
  76. , s.ds_status_contract ds_status_contract_sale
  77. , s.ds_area ds_area_sale
  78. , s.dt_update dt_update_sale
  79. , s.dt_insert dt_insert_sale
  80. , s.dt_success
  81. , s.dt_end dt_end_sale
  82. , s.nm_price nm_price_sale
  83. , s.nm_price_final nm_price_final_sale
  84. , s.nm_file_trading ds_nm_file_trading
  85. , s.nm_file_performance ds_nm_file_performance
  86. , t.nm_price as nm_price_tender
  87. , t.nm_commission as nm_commission_tender
  88. , aap.nm_name aap_nm_name
  89. , (CASE WHEN s.is_staff = 'Y' AND sa.cd_user > '' THEN sa.nm_name ELSE '' END) as sa_name
  90. , (CASE WHEN s.is_staff = 'Y' AND sa.cd_user > '' THEN sa.nm_hp ELSE '' END) as sa_phone
  91. , t.nm_name nm_name_tender
  92. , t.nm_hp nm_tender_hp
  93. FROM sale_master s
  94. INNER JOIN car_master a ON s.cd_car = a.cd_car
  95. INNER JOIN tender_master t ON t.cd_sale = s.cd_sale AND t.ds_delind = 'N' AND t.ds_status = 'Z0'
  96. LEFT OUTER JOIN car_model b ON a.cd_model = b.cd_model
  97. LEFT OUTER JOIN car_grade c ON a.cd_grade = c.cd_grade
  98. LEFT OUTER JOIN car_brand d ON a.cd_brand = d.cd_brand
  99. LEFT OUTER JOIN car_model_sub e ON a.cd_model_sub = e.cd_model_sub
  100. LEFT OUTER JOIN aap_master aap ON aap.cd_dealer = s.cd_aap_dealer
  101. LEFT OUTER JOIN sa_master sa ON s.cd_user = sa.cd_user
  102. $add_sql $orderby
  103. ) as car
  104. INNER JOIN tender_master t ON car.cd_sale = t.cd_sale AND t.ds_status = 'Z0' AND t.ds_delind = 'N'
  105. INNER JOIN aap_master a ON t.cd_dealer_p = a.cd_dealer";
  106. $r = mysql_query($sql, $connect);
  107. // echo $sql;
  108. // exit;
  109. $i=1;
  110. $EXCEL_DATA = array();
  111. while($col = mysql_fetch_assoc($r)) {
  112. $nm_file_trading = "X";
  113. if(!empty($col['ds_nm_file_trading'])){
  114. $nm_file_trading = "O";
  115. }
  116. $nm_file_performance = "X";
  117. if(!empty($col['ds_nm_file_performance'])){
  118. $nm_file_performance = "O";
  119. }
  120. // $nm_price = number_format($col['nm_price_final_sale'])."만원(".number_format($col['nm_price_tender'])."만원)";
  121. //2023-11-12 변경 요청
  122. $nm_price = number_format($col['nm_price_final_sale'])."만원,낙찰금액(".number_format($col['nm_price_tender'])."만원, 수수료 ".number_format($col['nm_commission_tender'])."만원)";
  123. #리스트
  124. $DATA = array();
  125. $DATA['no'] = (string)$i;
  126. $DATA['nm_name_sale'] = $col['nm_name_sale'];
  127. $DATA['sa_name'] = $col['sa_name'];
  128. $DATA['car_info'] = $col['nm_brand']." ".$col['nm_model'];
  129. $DATA['nm_number'] = $col['nm_number'];
  130. $DATA['sa_phone'] = $col['sa_phone'];
  131. $DATA['nm_area'] = $col['nm_area'];
  132. $DATA['nm_price'] = $nm_price;
  133. $DATA['nm_file_trading'] = $nm_file_trading;
  134. $DATA['nm_file_performance'] = $nm_file_performance;
  135. $DATA['dt_insert_sale'] = $col['dt_insert_sale'];
  136. $DATA['dt_end_sale'] = $col['dt_end_sale'];
  137. $DATA['aap_nm_name'] = $col['aap_nm_name'];
  138. $DATA['nm_name_company'] = $col['nm_name_company'];
  139. $DATA['nm_name_tender'] = $col['nm_name_tender'];
  140. $DATA['nm_tender_hp'] = $col['nm_tender_hp'];
  141. $EXCEL_DATA[] = $DATA;
  142. unset($DATA);
  143. $i++;
  144. }
  145. mysql_close($connect);
  146. $cells = array(
  147. 'A' => array(15, 'no', '번호'),
  148. 'B' => array(20, 'nm_name_sale', '판매자'),
  149. 'C' => array(20, 'sa_name', 'SA명'),
  150. 'D' => array(20, 'sa_phone', 'SA연락처'),
  151. 'E' => array(20, 'aap_nm_name', '희망AAP'),
  152. 'F' => array(40, 'car_info', '차종'),
  153. 'G' => array(20, 'nm_number', '차량번호'),
  154. 'H' => array(20, 'nm_area', '판매지역'),
  155. 'I' => array(20, 'nm_name_company', '낙찰업체'),
  156. 'J' => array(20, 'nm_name_tender', '낙찰담당자'),
  157. 'K' => array(20, 'nm_tender_hp', '연락처'),
  158. 'L' => array(20, 'nm_price', '판매완료 금액(낙찰금액)'),
  159. 'M' => array(20, 'nm_file_trading', '등록증'),
  160. 'N' => array(20, 'nm_file_performance', '성능지'),
  161. 'O' => array(20, 'dt_insert_sale', '등록일'),
  162. 'P' => array(20, 'dt_end_sale', '판매완료일'),
  163. );
  164. foreach ($cells as $key => $val) {
  165. $cellName = $key.'1';
  166. $sheet->getColumnDimension($key)->setWidth($val[0]);
  167. $sheet->getRowDimension('1')->setRowHeight(25);
  168. $sheet->setCellValue($cellName, $val[2]);
  169. $sheet->getStyle($cellName)->getFont()->setBold(true);
  170. $sheet->getStyle($cellName)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
  171. $sheet->getStyle($cellName)->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
  172. }
  173. for ($i = 2; $row = array_shift($EXCEL_DATA); $i++) {
  174. foreach ($cells as $key => $val) {
  175. $sheet->setCellValue($key.$i, $row[$val[1]]);
  176. }
  177. }
  178. $filename = '관리자_판매완료_엑셀_'.date('Y-m-d');
  179. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  180. header('Content-Disposition: attachment; filename="'.$filename.'.xlsx"');
  181. $writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
  182. $writer->save('php://output');
  183. exit;
  184. ?>