Commit 7a833ad9 by 孙龙

订单列表pdf

parent 753ab4d3
......@@ -10,15 +10,29 @@ use Maatwebsite\Excel\Facades\Excel;
class OrderApiController extends Controller
{
public function orderDownloadShow(){
$this->view();
public function orderDownloadShow(Request $request){
$params = $request->all();
$type = arrayGet($params, "type");
if($type == "1"){
//PI
return view('export.order_contract_PI');
}elseif($type == "2"){
//CI
return view('export.order_contract_CI');
}else{
//PL
return view('export.order_contract_PL');
}
}
public function orderDownload(Request $request){
$params = $request->all();
// dd($params);
return Excel::download(new \App\Exports\ContractExport(),'PI.xlsx');
}
}
......@@ -22,6 +22,7 @@ Route::group([
$router->resource('users', 'UserController');
//下载pdf
Route::get('/api/order_download', '\App\Admin\Controllers\Api\OrderApiController@orderDownload');
Route::get('/api/orderDownloadShow', '\App\Admin\Controllers\Api\OrderApiController@orderDownloadShow');
});
......
......@@ -2,6 +2,10 @@
use Illuminate\Support\Arr;
define("DIGITS_TWO",2);
define("DIGITS_FOUR",4);
define("DIGITS_SIX",6);
if (! function_exists('user_admin_config')) {
function user_admin_config($key = null, $value = null)
{
......@@ -76,3 +80,341 @@ function curl($url, $params = false, $ispost = 0, $https = 0, $cookie = '', $tim
curl_close($ch);
return $response;
}
/**
* 通用格式化字符串为数字金额
* @$amount 需要格式化的数字或者字符串 1.2345
* @$digits 保留小数位数 1.23
* @$currency 币别 ¥12003.4567
* @$thousandsSymbol 千分位字符串隔开 1,200,3.4567
*
* define("DIGITS_TWO",2);
define("DIGITS_FOUR",4);
define("DIGITS_SIX",6);
*/
if (!function_exists('decimal_number_format')) {
function decimal_number_format($amount,$digits=DIGITS_TWO,$currency="",$thousandsSymbol=""){
$amount = floatval(strval($amount));
//格式化币别
if($currency){
$minus = $amount < 0 ? '-' : '';
$numerical = number_format(abs($amount),$digits,".",$thousandsSymbol);
$sign = \Arr::get(config("field.currency_sign"),intval($currency),"");
if (!empty($sign)) {
$numerical = $sign . $numerical;
}
return $minus ? $minus.$numerical : $numerical;
}else{
$numerical = number_format($amount,$digits,".","");
return $numerical;
}
}
}
if (!function_exists('printJson')) {
function printJson($data)
{
print_r(is_array($data) ? json_encode($data) : $data);
die;
}
}
if (!function_exists('drawLetter')) {
/*
* 格式化型号, echo DrawLetter("LMGAGA 质量 &&*****") 输出:LMGAGA
* @param $g string 关键词
*/
function drawLetter($g){
$g = preg_replace('/[\x{4e00}-\x{9fff}]+/u', '', $g);
$g = preg_replace('/[^A-Za-z0-9]+/', '', $g);
return strtoupper($g);
}
}
if (!function_exists('buildQuery')) {
function buildQuery($query, $where)
{
foreach ($where as $subWhere) {
if (count($subWhere) == 2) {
$fiels = $exp = $subWhere[0] ?? "";
$value = $subWhere[1] ?? null;
if (empty($fiels) || $value === null) {
continue;
}
if ($exp == "or") {
$query->orWhere(function ($q) use ($value) {
buildQuery($q, $value);
});
} else {
$query->where($subWhere[0], $subWhere[1]);
}
} else if (count($subWhere) == 3) {
$fiels = $subWhere[0] ?? "";
$exp = $subWhere[1] ?? null;
$value = $subWhere[2] ?? null;
if (empty($fiels) || $exp === null || $value === null) {
continue;
}
if ($exp == "in" && is_array($value) && !empty($value)) {
$query->whereIn($fiels, $value);
} else {
$query->where($fiels, $exp, $value);
}
}
}
return $query;
}
}
if (!function_exists('echoToSql')) {
function echoToSql($query){
$tmp = str_replace('?', '"'.'%s'.'"', $query->toSql());
$tmp = vsprintf($tmp, $query->getBindings());
dd($tmp);
}
}
/**
* Notes:提取数组中某个字段$searchkey作为键值,然后从数组中检索给定的键的所有值
* User: sl
* Date: 2022/5/25 15:39
* @param $arr
* @param $key
* @param $val
* @return array
*/
function flipArrayPluck($arr,$newKey,$seachKey){
$newArr = [];
foreach($arr as $v){
$newArr[$v[$newKey]][] = $v[$seachKey];
}
return $newArr;
}
if (!function_exists('checkArrayValuesNotEmpty')) {
function checkArrayValuesNotEmpty($arr=[]){
$result = true;
if(is_array($arr)){
foreach($arr as $val){
if(empty($val)){
$result = false;
break;
}
}
}else{
$result = false;
}
return $result;
}
}
/*
* 遍历数组中某个字段的值 作为 键 返回新数组
*/
function arrayChangeKeyByField($list, $searchKey)
{
$arr = [];
if (!$searchKey) {
return $list;
}
foreach ($list as $k => $v) {
if (isset($v[$searchKey])) {
$arr[$v[$searchKey]] = $v;
}
}
return $arr ? $arr : $list;
}
/*
* 把数组中null的字符串转为空
*/
function conversionArray($arr)
{
if (empty($arr)) {
return $arr;
}
foreach ($arr as $k => $v) {
if (is_array($v)) {
$arr[$k] = conversionArray($v);
} else {
if ($v === null) {
$arr[$k] = "";
}
}
}
return $arr;
}
function dateDefault($time)
{
$time = intval($time);
if ($time) {
return date("Y-m-d H:i:s", $time);
}
return "";
}
function arraySort($list, $keys, $sort = "asc")
{
if ($sort == "asc") {
$sort = SORT_ASC;
} else {
$sort = SORT_DESC;
}
array_multisort(array_column($list, $keys), $sort, $list);
return $list;
}
/*
* 去重数组
* 过滤数组
*/
function array_filter_unique($arr)
{
return array_unique(array_filter($arr));
}
/*
* 截取字符串
*/
//如果字符串长度超过10,则截取并以省略号结尾
function truncStr($str, $len = 100, $endStr = "")
{
$str = (string)$str;
if (mb_strlen($str, 'utf-8') > $len) {
return mb_substr($str, 0, $len, 'utf-8') . $endStr;
} else {
return $str;
}
}
/*
* 获取登录者的信息
*/
function getAdminUser()
{
$admin = request()->get("user");
if (!$admin) {
throw new \App\Exceptions\InvalidRequestException("没找到登录相关信息,请先登录~_~");
}
$arr = [];
$arr["userId"] = $admin->userId;
$arr["name"] = $admin->name;
$arr["email"] = $admin->email;
$arr["engName"] = $admin->engName;
return $arr;
}
/*
* 获取登录者用户id
*/
function getAdminUserId()
{
$admin = request()->get("user");
if (!$admin) {
throw new \App\Exceptions\InvalidRequestException("没找到登录相关信息,请先登录~_~");
}
return $admin->userId;
}
/*
* 获取登录者的名字
*/
function getAdminUserName()
{
$admin = request()->get("user");
if (!$admin) {
throw new \App\Exceptions\InvalidRequestException("没找到登录相关信息,请先登录~_~");
}
return $admin->name;
}
/**
* 是否为多维数组
* @param array $arr
* @return bool
*/
function isMultipleArray(array &$arr): bool
{
if (count($arr) <= 0) {
return false;
}
if (count($arr) == count($arr, COUNT_RECURSIVE)) {
foreach ($arr as $tempArr) {
if (is_array($tempArr)) {
return true;
}
}
return false;
}
return true;
}
//判断是否有对应的权限
//request()->perms是Permission中间件过来的
function checkPerm($perm): bool
{
$perms = request()->perms ?: [];
return in_array($perm, $perms);
}
/**
* 价格格式化
* @param [type] $price [description]
* @param integer $sign [description]
* @param integer $num [description]
* @return [type] [description]
*/
function price_format($price, $sign = 0, $num = 2, $sep = '')
{
$minus = $price < 0 ? '-' : '';
$price = floatval(strval($price));
$price = number_format(abs($price), $num, '.', $sep);
$sign = \Arr::get(config("field.currency_sign"),intval($sign),"");
if (!empty($sign)) {
$price = $sign . $price;
}
if($minus){
return $minus.$price;
}
return $price;
}
function arrayGet($arr, $key, $default = "", $func = "")
{
if (isset($arr[$key])) {
if ($func && is_callable($func)) {
try {
return $func($arr[$key]);
} catch (\Throwable $e) {
return $arr[$key];
}
} else {
return $arr[$key];
}
} else {
return $default;
}
}
/*
* 构建时间查询
*/
function buildQueryTimeRange($time = "")
{
$time = explode("~", $time);
$buildTimeQueryData["begin_time"] = isset($time[0]) ? $time[0] : "";
$buildTimeQueryData["end_time"] = isset($time[1]) ? $time[1] : "";
return $buildTimeQueryData;
}
\ No newline at end of file
......@@ -44,6 +44,9 @@
"classmap": [
"database/seeds",
"database/factories"
],
"files":[
"app/helpers.php"
]
},
"autoload-dev": {
......
......@@ -162,6 +162,7 @@ return [
'database' => env('REDIS_CACHE_DB', '1'),
],
],
];
<table>
<thead>
<tr>
<td colspan="9" style="text-align:center; font-size: 16px;">深圳市猎芯科技有限公司</td>
</tr>
<tr>
<td colspan="9" height="20" style="text-align:center; vertical-align: middle; font-size: 12px;">销售合同</td>
</tr>
</thead>
<tbody>
<tr style="margin-bottom: 5px; padding: 5px;">
<td colspan="9" style="text-align: right; border-bottom: 1px solid #ccc;">合同编号:xxxxxxx</td>
</tr>
<tr>
<td colspan="1">供方:</td>
<td colspan="3">深圳市猎芯科技有限公司</td>
<td colspan="1">需方:</td>
<td colspan="4">xxxx</td>
</tr>
<tr>
<td colspan="1">联系人:</td>
<td colspan="3">xxx</td>
<td colspan="1"></td>
<td colspan="4"></td>
</tr>
<tr>
<td colspan="1">联系方式:</td>
<td colspan="3" style="text-align: left;">xxxx</td>
<td colspan="1"></td>
<td colspan="4"></td>
</tr>
<tr>
<td colspan="1">合同明细:</td>
<td colspan="3"></td>
<td colspan="1"></td>
<td colspan="4" style="text-align: right;">签订日期:xxxx</td>
</tr>
<tr>
<th style="text-align: center; border: 1px solid #ccc;">序号</th>
<th style="text-align: center; border: 1px solid #ccc;">型号</th>
<th style="text-align: center; border: 1px solid #ccc;">品牌</th>
<th style="text-align: center; border: 1px solid #ccc;">批次</th>
<th style="text-align: center; border: 1px solid #ccc;">数量</th>
<th style="text-align: center; border: 1px solid #ccc;">单价</th>
<th style="text-align: center; border: 1px solid #ccc;">小计</th>
<th style="text-align: center; border: 1px solid #ccc;">货期</th>
<th style="text-align: center; border: 1px solid #ccc;">备注</th>
</tr>
<tr>
<td style="text-align: center; border: 1px solid #ccc;">商品总额:</td>
<td colspan="8" style="border: 1px solid #ccc;">xxxx</td>
</tr>
<tr>
<td style="text-align: center; border: 1px solid #ccc;">交货方式:</td>
<td colspan="8" style="border: 1px solid #ccc;">xxx</td>
</tr>
<tr>
<td style="text-align: center; border: 1px solid #ccc;">付款方式:</td>
<td style="border: 1px solid #ccc;">xxxx</td>
<td style="text-align: left;">预收金额:</td>
<td colspan="6" style="text-align: left; border: 1px solid #ccc;">xxx</td>
</tr>
<tr>
<td style="text-align: center; border: 1px solid #ccc;">备注:</td>
<td colspan="8" style="border: 1px solid #ccc;">含增值税13%</td>
</tr>
<tr>
<td colspan="9">条款:</td>
</tr>
<tr>
<td colspan="9">
1、订货均以该合同中的型号和最终数量为准,若有特殊要求,务必在备注中说明,否则不予以退、换货。
</td>
</tr>
<tr height="35">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
2、供方部分渠道数据为合作供应商提供,数据更新可能发生延迟,订单执行过程中可能会发生合作供应商的库存,价格,交期等变动,当发生上述变动时,供方应尽最大的努力与合作供应商协商解决,若协商无果或出现缺货、无货等情况时,供方应及时通知需方解除合同,预付款订单退回需方已支付的预付款,但供方不承担由此导致的任何直接和间接损失。
</td>
</tr>
<tr height="35">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
3、针对预付款订单,需方支付预付款后,需在接到供方到货通知后的5个工作日内付清尾款并提货,尾款超期未支付视为需方自动放弃订单,预付款不予退还且因此导致供方产生的损失及相关费用由需方承担。尾款付清后需在一周内提货,逾期不提货视为客户自动放弃货物,供方将有权自行处理货物,货款不予退还。
</td>
</tr>
<tr height="25">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
4、因货源出口国对产品出口的限制政策和相关税费调整而产生的交易价格变动、资料审查延期或订单取消等状况,供方不承担由此而导致的任何直接和间接经济损失。因国家法律法规的颁布实施而造成的相关税费调整,需方应补齐需缴纳的费用。
</td>
</tr>
<tr>
<td colspan="9">
5、海外订购的商品,若需方所订购的货品在运输时被确认超重,需方应补缴因超重而多出的费用。
</td>
</tr>
<tr height="35">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
6、交货方式为自提或者快递。自提需到供方指定地点。如是境内交易,供方承担中国境内的基础快递费用。如香港交易,供方承担香港本地快递配送的基础费用。如超出此配送范围而产生的费用,由需方承担。供方对单笔订单原则上只发货一次,且发货日期按最后交货的供应商交货日期计算。若需方要求分批发货或超重而产生的额外费用,需方自行承担。
</td>
</tr>
<tr>
<td colspan="9">
7、需方应妥善保留好货物外包装上的所有标签,如有退换货等售后事宜,将以此作为唯一依据。
</td>
</tr>
<tr height="45">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
8、供方保证所供产品皆为原厂正品。需方收到货后,应在一周内对货物的外观、数量、型号、质量等进行检验,逾期未提出异议的视为默认验收合格。对于交货产品数量不符,明显外观不良等问题,需方应在收货后一周内提出,逾期供方将不予受理。需方如对交货产品质量存有异议,应在收货后30天内提出,并向供方提供第三方权威检测机构的检测报告,逾期或者未按照规定提交售后的,供方将不予受理。若商品最终确定存在质量问题,供方需负责更换合格产品或者执行退货;若证实无质量问题,需方必须执行完本合同。
</td>
</tr>
<tr height="25">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
9、根据法律规定和合作商的明确要求,属于NCNR(不可取消不可退换)的型号即使发生延期交付,数量变动等情况,供方同样不接受退换货请求。
</td>
</tr>
<tr height="35">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
10、合同条款及其交易说明(包括其他所有附件等)也经我公司详细阐述并合理解释;且由于交易标的的特殊性,双方均完全理解并认可其中可能存在限制一方责任,或免除和减少一方责任的条款,并对此均不持异议。本合同涉及的法律,行政法规,供需双方均已知悉并了解,且已明确各自的权利和义务。本合同签订过程中,不存在欺诈,重大误解和显失公平等情形。
</td>
</tr>
<tr height="48">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
11、本合同经双方签字或盖章(包含电子章)后立即生效,合同生效后双方均应严格按照合同约定履行,非因不可抗力,需方不能解除或终止合同。如因需方原因不再履行本合同,需方提出请求后供方可以协助处理,如产生费用由需方自行承担,如供应商原因或其他原因导致无法退货的,需方仍应该履行本合同并支付合同全款,否则需方要承担由此给供方造成的一切损失。且需方应在接到供方到货通知后的一周内提货。
</td>
</tr>
<tr height="35">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
12、本合同一式两份,双方各执一份,其复印件、传真件具有同等法律效力;因本合同引起的或与本合同有关的任何争议,双方尽量友好协商解决,如协商不成,双方一致同意提请深圳国际仲裁院按照其仲裁规则进行仲裁。仲裁地点在深圳,仲裁裁决是终局的,对协议各方均有约束力。仲裁费、保全费以及律师费等相关费用由败诉方承担。
</td>
</tr>
<tr height="35">
<td colspan="9" style="word-wrap: break-word; word-break: break-all;">
13、为遵循美国ECCN出口管制相关规定,本公司所有交易的电子元器件禁止出货给美国实体清单国家或企业,请用户在相关流通环节务必遵循美国实体清单的相关规定,对于违反美国实体清单规定的用户,本公司有权随时取消合作,如因违反相关规定导致的后果由用户自行承担且与本公司无关。
</td>
</tr>
<tr>
<td colspan="9" style="border-bottom: 1px solid #ccc;"></td>
</tr>
<tr>
<td colspan="4">供方</td>
<td colspan="5">需方</td>
</tr>
<tr>
<td>公司名称:</td>
<td colspan="3">深圳市猎芯科技有限公司</td>
<td>公司名称:</td>
<td colspan="4">xxxx</td>
</tr>
<tr>
<td>开户行:</td>
<td colspan="3">交通银行股份有限公司深圳梅林支行</td>
<td>单位地址:</td>
<td colspan="4">xxxx</td>
</tr>
<tr>
<td>账号:</td>
<td colspan="3">4438 9999 1010 0035 1176 4</td>
<td>电话:</td>
<td colspan="4" style="text-align: left;">xxxx</td>
</tr>
<tr>
<td>公司地址:</td>
<td colspan="3">深圳市龙岗区坂田街道清丽路1号宝能科技园12栋11楼</td>
<td>传真:</td>
<td colspan="4" style="text-align: left;">xx</td>
</tr>
<tr>
<td></td>
<td colspan="3"></td>
<td>联系人:</td>
<td colspan="4" style="text-align: left;">xxxx</td>
</tr>
</tbody>
</table>
\ No newline at end of file
......@@ -35,4 +35,5 @@ return array(
'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
'044fc72df35e84c745ee0d4120dc15d2' => $vendorDir . '/dcat/laravel-admin/src/Support/helpers.php',
'b670c7ffff63265cc064eb6fd1051ae1' => $vendorDir . '/mosiboom/dcat-iframe-tab/src/helpers.php',
'b4e3f29b106af37a2bb239f73cdf68c7' => $baseDir . '/app/helpers.php',
);
......@@ -36,6 +36,7 @@ class ComposerStaticInit14b314507a533a1b9e8248f4361c62bf
'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
'044fc72df35e84c745ee0d4120dc15d2' => __DIR__ . '/..' . '/dcat/laravel-admin/src/Support/helpers.php',
'b670c7ffff63265cc064eb6fd1051ae1' => __DIR__ . '/..' . '/mosiboom/dcat-iframe-tab/src/helpers.php',
'b4e3f29b106af37a2bb239f73cdf68c7' => __DIR__ . '/../..' . '/app/helpers.php',
);
public static $prefixLengthsPsr4 = array (
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment