| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- <?php
- namespace App\Traits;
- use App\Logistic;
- use App\OracleDOCOrderDetail;
- use App\OracleDOCOrderHeader;
- use App\OracleDOCWaveDetails;
- use App\Owner;
- use App\OwnerLogisticPrintTemplate;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Facades\Cache;
- trait DeliveryProcess
- {
- use DrawImage;
- // 将 base64编码 转 图片 进行修改并保存,后把修改保存的图片转为 base64编码 返回
- function processing(&$params)
- {
- // TODO 获取模板
- $owner_query = Owner::query()->selectRaw('id')->where('code', $params['owner_code']);
- $logistic_query = Logistic::query()->selectRaw('id')->where('code', $params['logistic_code']);
- $item = OwnerLogisticPrintTemplate::query()->with('printTemplate')->where('owner_id', $owner_query)->where('logistic_id', $logistic_query)->first();
- $item = $item->printTemplate;
- $item->printTemplate;
- $path = '';
- $img = $this->getImage($params['base64'], $path);
- $img = $this->draw(null, $item, $img);
- $img->save($path);
- $arr = [];
- if (Cache::has('print-template-file-list')) {
- $arr = Cache::get('print-template-file-list');
- }
- $arr[] = ['time' => Carbon::now(), 'path' => $path];
- Cache::put('print-template-file-list', $arr);
- // TODO 将文件进行base64编码
- if ($fp = fopen($path, "rp", 0)) {
- $gambar = fread($fp, filesize($path));
- fclose($fp);
- $params['base64'] = chunk_split(base64_encode($gambar));
- }
- $params['is_process'] = true;
- return $params;
- }
- // $item
- // 将按条件转化为
- function getDeliveryInfo($item, $type): ?array
- {
- if (in_array($type, ['TB', '', 'PDD', 'SF'])) return $this->getDocOrderDeliveryInfo($item);
- else if (in_array($type, ['JD', 'SFQHD'])) return $this->getDocOrderInfo($item);
- return [];
- }
- // TB PDD
- function getDocOrderDeliveryInfo($docOrderDelivery)
- {
- // 承运商
- $logistic_name = (function () use ($docOrderDelivery) {
- $logistic = Logistic::query()->where('code', $docOrderDelivery->docOrderHeader['carrierid'])->first();
- return $logistic['name'] ?? '';
- })();
- // 波次
- $wave_count = (function () use ($docOrderDelivery) {
- return OracleDOCWaveDetails::query()->where('waveno', $docOrderDelivery->docOrderHeader['waveno'])->count();
- });
- // 订单商品总数
- $sum = (function () use ($docOrderDelivery) {
- return OracleDOCOrderDetail::query()->where('orderno', $docOrderDelivery->docOrderHeader['ordenro'])->sum('qtyAllocated_each');
- });
- // 备注
- list($remark1, $remark2, $remark3) = (function () use ($docOrderDelivery) {
- switch ($docOrderDelivery->docOrderHeader['customerid'] ?? '') {
- case 'BOAO':
- return ['易碎、易融', '不可放置自提柜!', '需当面签收!'];
- case 'LINGFEI':
- return ['快递小哥送货路远,风吹日晒注意安全,', '见到小主代问声好,你我共建文明家园!', ''];
- case 'WEIXI1':
- return ['售后电话13816946227', '', ''];
- default:
- return ['', '', ''];
- }
- })();
- // 大头笔
- $H_EDI_15 = $docOrderDelivery->docOrderHeader['H_EDI_15'];
- // 仓库
- $wh = (function () use ($docOrderDelivery) {
- $customerid = $docOrderDelivery->docOrderHeader['customerid'] ?? '';
- if (strstr('泗砖', $customerid)) return '泗砖宝石仓';
- if (strstr('武乡', $customerid)) return '武乡宝石仓';
- if (strstr('九干', $customerid)) return '九干宝石仓';
- return '宝时仓';
- });
- // whaddr 仓库地址
- $whaddr = (function () use ($docOrderDelivery) {
- $peo = $docOrderDelivery->docOrderHeader->oracleBASCustomer['address1'];
- if (strstr($peo, '九干')) return '上海上海市松江区九干路1300号';
- if (strstr($peo, '武乡')) return '上海嘉定区徐行镇武乡路9号';
- if (strstr($peo, '泗砖')) return '上海嘉定区徐行镇武乡路9号';
- return '宝时仓';
- });
- $consigneeid = $docOrderDelivery->docOrderHeader['consigneeid'];
- // 城镇 收货
- $raddr = (function () use ($docOrderDelivery) {
- return ($docOrderHeader['c_province'] ?? '') . ' ' . ($docOrderHeader['c_city'] ?? '') . ' ' . ($docOrderHeader['c_address2'] ?? '');
- })();
- // 韵达特殊处理
- $yd = (function () use ($docOrderDelivery) {
- $carrierid = $docOrderDelivery->docOrderHeader['carrierid'];
- if ($carrierid !== "YUNDA") return '';
- if (in_array($carrierid, ['上海', '上海市'])) return 'A';
- if (in_array($carrierid, ['江苏', '江苏省', '浙江', '浙江省'])) return 'B';
- if (in_array($carrierid, ['北京', '北京市', '安徽', '安徽省', '山东', '河南', '江西', '湖南', '湖北', '山东省', '河南省', '江西省', '湖南省', '湖北省'])) return 'C';
- if (in_array($carrierid, [
- '上海', '上海市', '江苏', '江苏省', '浙江', '浙江省', '北京', '北京市', '安徽', '安徽省', '山东', '河南', '江西', '湖南', '湖北', '山东省', '河南省', '江西省', '湖南省', '湖北省'
- ])) return 'D';
- return '';
- });
- return [
- 'waveno' => $docOrderDelivery->docOrderHeader['owner'], // 波次
- 'print_sum' => '总打印数' . ($count ?? 0) . '行号#' . $docOrderDelivery->docOrderHeader->oracleDOCWaveDetail['seqno'], // 订单所处波次的序号
- 'count' => $sum, // 订单商品总数
- 'remark1' => $remark1,
- 'remark2' => $remark2,
- 'remark3' => $remark3,
- 'wh' => $wh,
- 'whaddr' => $whaddr, // 仓库地址
- 'deliveryno' => $item->docOrderHeader['deliveryno'] ?? $docOrderDelivery->docOrderHeader['soreference5'], // 快递单号
- 'raddr' => $raddr, // 收货地址
- 'yd' => $yd, // 韵达特殊处理
- ];
- }
- // SF SFQHD JD
- function getDocOrderInfo($docOrderHeader)
- {
- $c_contact = $docOrderHeader['c_contact'];
- $c_province = $docOrderHeader['c_province'];
- $c_city = $docOrderHeader['c_city'];
- $c_address2 = $docOrderHeader['c_address2'] ?? $docOrderHeader['c_district'];
- $c_tel1 = $docOrderHeader['c_tel1'] ?? $docOrderHeader['c_tel2'];
- $c_tel1 = $docOrderHeader['c_tel2'];
- $issuepartyname = $docOrderHeader['issuepartyname'] ?? '宝时云仓';
- $tel = (function () use ($docOrderHeader) {
- if (in_array($docOrderHeader['customerid'], ['HANDA', 'BAIPING', 'JINBAOBEI', 'DUOCHOU', 'YUNKAI']) &&
- in_array($docOrderHeader['issuepartyname'], ['私密渠道A', '私密渠道BP', '金宝贝启蒙', 'ATSUGI厚木', '初品公司'])) {
- return '18616839461';
- }
- if (in_array($docOrderHeader['customerid'], ['HEDI']) &&
- in_array($docOrderHeader['issuepartyname'], ['马丁'])) {
- return 18811144744;
- }
- return '13761413262';
- })();
- $bas_customer = $docOrderHeader->bas_customer;
- // whaddr 仓库地址
- $whaddr = (function () use ($bas_customer) {
- $address = $bas_customer['address1'];
- if (strstr($address, '泗砖')) return '上海上海市松江区泗砖公路351号';
- if (strstr($address, '武乡')) return '上海嘉定区徐行镇武乡路9号';
- if (strstr($address, '九干')) return '上海上海市松江区九干路1300号';
- return '';
- })();
- // $ordercount 订单波次的订单总数
- $ordercount = (function () use ($docOrderHeader) {
- return OracleDOCWaveDetails::query()->where('waveno', $docOrderHeader['waveno'])->count();
- })();
- // orderseq 订单在波次里的序号
- $orderseq = (function () use ($docOrderHeader) {
- return $docOrderHeader->oracleDOCWaveDetail->seqno ?? '';
- })();
- // seqno
- $seqno = (function () use ($docOrderHeader, $orderseq) {
- $count = OracleDOCWaveDetails::query()->where('waveno', $docOrderHeader['waveno'])->count();
- return '总打印数' . ($count) . " 行号#" . $orderseq;
- })();
- $orderno = $docOrderHeader['orderno'];
- // 重量
- $grossweight = $docOrderHeader->oracleDOCWaveDetail['grossweight'] ?? '';
- // 备注
- list($remark1, $remark2, $remark3) = (function () use ($docOrderHeader) {
- switch ($docOrderHeader['customerid'] ?? '') {
- case 'BOAO':
- return ['易碎、易融', '不可放置自提柜!', '需当面签收!'];
- case 'LINGFEI':
- return ['快递小哥送货路远,风吹日晒注意安全,', '见到小主代问声好,你我共建文明家园!', ''];
- case 'WEIXI1':
- return ['售后电话13816946227', '', ''];
- default:
- return ['', '', ''];
- }
- })();
- $number = (function () use ($docOrderHeader) {
- if (in_array($docOrderHeader['userdefine1'], ['SFJR', 'SFJRDF'])) return '1';
- if (in_array($docOrderHeader['userdefine1'], ['SFSY', 'SFSYDF', 'SFSYQHD'])) return '4';
- if (in_array($docOrderHeader['userdefine1'], ['SFTH', 'SFTHQHD'])
- && in_array($docOrderHeader['c_province'], ['西藏', '西藏自治区']))
- return '4';
- if (in_array($docOrderHeader['userdefine1'], ['SFTH', 'SFTHQHD'])
- && !in_array($docOrderHeader['c_province'], ['西藏', '西藏自治区']))
- return '68';
- if ($docOrderHeader['userdefine1'] == 'SFTHDF'
- && in_array($docOrderHeader['c_province'], ['上海', '上海市', '江苏', '江苏省', '浙江', '浙江省', '安徽省', '安徽', '西藏', '西藏自治区']))
- return '4';
- if ($docOrderHeader['userdefine1'] == 'SFTHDF'
- && !in_array($docOrderHeader['c_province'], ['上海', '上海市', '江苏', '江苏省', '浙江', '浙江省', '安徽省', '安徽', '西藏', '西藏自治区']))
- return '6';
- })();
- // js 结算方式
- $js = (function () use ($docOrderHeader) {
- if (in_array($docOrderHeader['userdefine1'], ['SFSYDF', 'SFTHDF'])) return "到付";
- else return '季付月结';
- })();
- //
- $jfyj = (function()use($docOrderHeader){
- $base_customer = $docOrderHeader['oracleBASCustomer'];
- if (in_array($docOrderHeader['userdefine1'],['SFSY','SFSYQHD','SFJR'])) return '寄付月结:0210188294';
- if (in_array($docOrderHeader['userdefine1'],['SFTH','SFTHQHD'])){
- if ($base_customer['udf3'] == '货安') return '寄付月结:0210321137';
- if ($base_customer['udf3'] != '货安') return '寄付月结:0218877996';
- }
- if (in_array($docOrderHeader['userdefine1'],['SFTH','SFTHQHD'])) return '到付';
- return '寄付月结:0210188294';
- })();
- return [
- 'waveno' => $docOrderHeader['owner'],
- 'print_sum' => '',
- 'count' => '',
- 'remark1' => $remark1,
- 'remark2' => $remark2,
- 'remark3' => $remark3,
- 'wh' => '',
- 'whaddr' => '',
- 'deliveryno' => '',
- 'raddr' => '',
- 'yd' => '',
- ];
- }
- }
|