diff --git a/adm/shop_admin/admin.shop.lib.php b/adm/shop_admin/admin.shop.lib.php new file mode 100644 index 000000000..fa9563f9f --- /dev/null +++ b/adm/shop_admin/admin.shop.lib.php @@ -0,0 +1,122 @@ + \ No newline at end of file diff --git a/adm/shop_admin/orderdelivery.php b/adm/shop_admin/orderdelivery.php new file mode 100644 index 000000000..09783fbe7 --- /dev/null +++ b/adm/shop_admin/orderdelivery.php @@ -0,0 +1,55 @@ + + +
+

+ +
+

+ 엑셀파일을 이용하여 배송정보를 일괄등록할 수 있습니다.
+ 형식은 배송처리용 엑셀파일을 다운로드하여 배송 정보를 입력하시면 됩니다.
+ 수정 완료 후 엑셀파일을 업로드하시면 배송정보가 일괄등록됩니다.
+ 엑셀파일을 저장하실 때는 Excel 97 - 2003 통합문서 (*.xls) 로 저장하셔야 합니다.
+ 주문상태가 준비이고 미수금이 0인 주문에 한해 엑셀파일이 생성됩니다. +

+ +

+ 배송정보 일괄등록용 엑셀파일 다운로드 +

+
+ +
+ +
+ + +
+ +
+ + + + + + +
+ +
+ + +
+ +
+ +
+ + \ No newline at end of file diff --git a/adm/shop_admin/orderdeliveryexcel.php b/adm/shop_admin/orderdeliveryexcel.php new file mode 100644 index 000000000..a4993ce4f --- /dev/null +++ b/adm/shop_admin/orderdeliveryexcel.php @@ -0,0 +1,60 @@ +addworksheet(); + +// Put Excel data +$data = array('주문번호', '주문자명', '주문자전화1', '주문자전화2', '배송자명', '배송지전화1', '배송지전화2', '배송지주소', '배송회사', '운송장번호'); +$data = array_map('iconv_euckr', $data); + +$col = 0; +foreach($data as $cell) { + $worksheet->write(0, $col++, $cell); +} + +for($i=1; $row=sql_fetch_array($result); $i++) { + $row = array_map('iconv_euckr', $row); + + $worksheet->write($i, 0, ' '.$row['od_id']); + $worksheet->write($i, 1, $row['od_name']); + $worksheet->write($i, 2, $row['od_tel']); + $worksheet->write($i, 3, $row['od_hp']); + $worksheet->write($i, 4, $row['od_b_name']); + $worksheet->write($i, 5, $row['od_b_tel']); + $worksheet->write($i, 6, $row['od_b_hp']); + $worksheet->write($i, 7, $row['od_b_addr1'].' '.$row['od_b_addr2']); + $worksheet->write($i, 8, $row['od_delivery_company']); + $worksheet->write($i, 9, $row['od_invoice']); +} + +$workbook->close(); + +header("Content-Type: application/x-msexcel; name=\"deliverylist-".date("ymd", time()).".xls\""); +header("Content-Disposition: inline; filename=\"deliverylist-".date("ymd", time()).".xls\""); +$fh=fopen($fname, "rb"); +fpassthru($fh); +unlink($fname); +?> \ No newline at end of file diff --git a/adm/shop_admin/orderdeliveryupdate.php b/adm/shop_admin/orderdeliveryupdate.php new file mode 100644 index 000000000..dfd480296 --- /dev/null +++ b/adm/shop_admin/orderdeliveryupdate.php @@ -0,0 +1,187 @@ +SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']); +} + +$escrow_count = 0; +if($_POST['send_escrow']) { + $escrow_tno = array(); + $escrow_corp = array(); + $escrow_numb = array(); + $escrow_idx = 0; +} + +if($_FILES['excelfile']['tmp_name']) { + $file = $_FILES['excelfile']['tmp_name']; + + include_once(G5_LIB_PATH.'/Excel/reader.php'); + + $data = new Spreadsheet_Excel_Reader(); + + // Set output Encoding. + $data->setOutputEncoding('UTF-8'); + + /*** + * if you want you can change 'iconv' to mb_convert_encoding: + * $data->setUTFEncoder('mb'); + * + **/ + + /*** + * By default rows & cols indeces start with 1 + * For change initial index use: + * $data->setRowColOffset(0); + * + **/ + + + + /*** + * Some function for formatting output. + * $data->setDefaultFormat('%.2f'); + * setDefaultFormat - set format for columns with unknown formatting + * + * $data->setColumnFormat(4, '%.3f'); + * setColumnFormat - set format for column (apply only to number fields) + * + **/ + + $data->read($file); + + /* + + + $data->sheets[0]['numRows'] - count rows + $data->sheets[0]['numCols'] - count columns + $data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column + + $data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell + + $data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown" + if 'type' == "unknown" - use 'raw' value, because cell contain value with format '0.00'; + $data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format + $data->sheets[0]['cellsInfo'][$i][$j]['colspan'] + $data->sheets[0]['cellsInfo'][$i][$j]['rowspan'] + */ + + error_reporting(E_ALL ^ E_NOTICE); + + $fail_od_id = array(); + $total_count = 0; + $fail_count = 0; + $succ_count = 0; + + // $i 사용시 ordermail.inc.php의 $i 때문에 무한루프에 빠짐 + for ($k = 2; $k <= $data->sheets[0]['numRows']; $k++) { + $total_count++; + + $od_id = addslashes(trim($data->sheets[0]['cells'][$k][1])); + $od_delivery_company = addslashes($data->sheets[0]['cells'][$k][9]); + $od_invoice = addslashes($data->sheets[0]['cells'][$k][10]); + + if(!$od_id || !$od_delivery_company || !$od_invoice) { + $fail_count++; + $fail_od_id[] = $od_id; + continue; + } + + // 주문정보 + $od = sql_fetch(" select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' "); + if (!$od) { + $fail_od_id[] = $od_id; + continue; + } + + $delivery['invoice'] = $od_invoice; + $delivery['invoice_time'] = G5_TIME_YMDHIS; + $delivery['delivery_company'] = $od_delivery_company; + + // 주문정보 업데이트 + order_update_delivery($od_id, $od['mb_id'], '배송', $delivery); + change_status($od_id, '준비', '배송'); + + // SMS + if($config['cf_sms_use'] == 'icode' && $_POST['send_sms'] && $default['de_sms_use5']) { + $sms_contents = conv_sms_contents($od_id, $default['de_sms_cont5']); + if($sms_contents) { + $receive_number = preg_replace("/[^0-9]/", "", $od['od_hp']); // 수신자번호 + $send_number = preg_replace("/[^0-9]/", "", $default['de_admin_company_tel']); // 발신자번호 + + if($receive_number && $send_number) { + $SMS->Add($receive_number, $send_number, $config['cf_icode_id'], $sms_contents, ""); + $sms_count++; + } + } + } + + // 메일 + if($config['cf_email_use'] && $_POST['od_send_mail']) + include './ordermail.inc.php'; + + // 에스크로 배송 + if($_POST['send_escrow'] && $od['od_tno'] && $od['od_escrow']) { + $escrow_tno[$escrow_idx] = $od['od_tno']; + $escrow_numb[$escrow_idx] = $od_invoice; + $escrow_corp[$escrow_idx] = $od_delivery_company; + $escrow_idx++; + $escrow_count++; + } + } +} + +// SMS +if($config['cf_sms_use'] == 'icode' && $_POST['send_sms'] && $sms_count) +{ + $SMS->Send(); +} + +// 에스크로 배송 +if($_POST['send_escrow'] && $escrow_count) +{ + include_once('./orderescrow.inc.php'); +} + +$g5['title'] = '엑셀 배송일괄처리 결과'; +include_once(G5_PATH.'/head.sub.php'); +?> + +
+

+ +

배송일괄처리를 완료했습니다.

+ +
+
총배송건수
+
+
완료건수
+
+
실패건수
+
+ 0) { ?> +
실패주문코드
+
+ +
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/adm/shop_admin/orderlist.php b/adm/shop_admin/orderlist.php index 7fb7cfacf..a46a2d892 100644 --- a/adm/shop_admin/orderlist.php +++ b/adm/shop_admin/orderlist.php @@ -118,6 +118,8 @@ $listall = '전체목록 전체 주문내역 건 + + 엑셀배송처리
@@ -495,6 +497,13 @@ $(function(){ $("body").on("click", function() { $("#orderitemlist").remove(); }); + + // 엑셀배송처리창 + $("#order_delivery").on("click", function() { + var opt = "width=600,height=450,left=10,top=10"; + window.open(this.href, "win_excel", opt); + return false; + }); }); function set_date(today) diff --git a/adm/shop_admin/orderlistupdate.php b/adm/shop_admin/orderlistupdate.php index 89c7d057d..db0469074 100644 --- a/adm/shop_admin/orderlistupdate.php +++ b/adm/shop_admin/orderlistupdate.php @@ -1,6 +1,7 @@