Files
OMS/app/ome/controller/admin/print/otmpl.php
2026-01-04 19:08:31 +08:00

812 lines
31 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Copyright 2012-2026 ShopeX (https://www.shopex.cn)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* 打印模板控制器
*
* @author chenping<chenping@shopex.cn>
* @version 2012-4-17 14:33
* @package print
*/
class ome_ctl_admin_print_otmpl extends desktop_controller
{
function __construct(&$app)
{
parent::__construct($app);
$this->_request = kernel::single('base_component_request');
}
/**
* _views
* @return mixed 返回值
*/
public function _views(){
$views = array(
0=>array('label'=>$this->app->_('全部'),'optional'=>false,'filter'=>'','addon'=>''),
1=>array('label'=>$this->app->_('备货单模板'),'optional'=>false,'filter'=>array('type'=>'stock'),'addon'=>''),
2=>array('label'=>$this->app->_('发货单模板'),'optional'=>false,'filter'=>array('type'=>'delivery'),'addon'=>''),
3=>array('label'=>$this->app->_('采购单模板'),'optional'=>false,'filter'=>array('type'=>'purchase'),'addon'=>''),
4=>array('label'=>$this->app->_('采购入库单模板'),'optional'=>false,'filter'=>array('type'=>'pureo'),'addon'=>''),
5=>array('label'=>$this->app->_('退货单模板'),'optional'=>false,'filter'=>array('type'=>'purreturn'),'addon'=>''),
6=>array('label'=>$this->app->_('联合打印模板'),'optional'=>false,'filter'=>array('type'=>'merge','addon'=>'')),
7=>array('label'=>$this->app->_('调拔单打印模板'),'optional'=>false,'filter'=>array('type'=>'appropriation','addon'=>'')),
8=>array('label'=>$this->app->_('JIT出库单模板'),'optional'=>false,'filter'=>array('type'=>'vopstockout','addon'=>'')),
);
foreach ($views as $key=>&$value) {
$value['href'] = 'index.php?app=ome&ctl=admin_print_otmpl&act=index&view='.$key;
$value['addon'] = $this->app->model('print_otmpl')->count($value['filter']);
}
return $views;
}
/**
* 入口
*
* @return void
* @author
* */
public function index()
{
$this->finder('ome_mdl_print_otmpl',array(
'title'=>'打印模板',
'actions' => array(
array('label'=>'添加备货单模板','href'=>'index.php?app=ome&ctl=admin_print_otmpl&act=show&p[0]=0&p[1]=stock','target'=>'_blank'),
array('label'=>'添加发货单模板','href'=>'index.php?app=ome&ctl=admin_print_otmpl&act=show&p[0]=0&p[1]=delivery','target'=>'_blank'),
),
'use_buildin_recycle'=>true,
'use_buildin_filter'=>true,
));
}
/**
* 显示添加/编辑页面
*
* @return void
* @author
* */
public function show($id=NULL,$type='delivery')
{
$id = (int)$id;
$oTmplModel = $this->app->model('print_otmpl');
$this->title = empty($id) ? app::get('ome')->_('添加') : app::get('ome')->_('编辑');
$this->title .= $oTmplModel->otmpl[$type]['name'];
$this->pagedata['title'] = $this->title;
$this->pagedata['memo_header'] = $oTmplModel->otmpl[$type]['memo_header'];
#获取类型
#获取打印版本
$this->pagedata['type'] = $type;
$deliCfgLib = kernel::single('wms_delivery_cfg');
$print_version = $deliCfgLib->getprintversion();
$this->pagedata['print_version'] = $print_version;
unset( $print_version );
$printTmpl = array('type'=>$type);
if ($id) {
$row = $oTmplModel->select()->columns()->where('id=?',$id)->instance()->fetch_row();
$printTmpl = array_merge($printTmpl,$row);
$printTmpl['content'] = $oTmplModel->bodyFilter($printTmpl['content']);
}
$this->pagedata['printParams'] = $this->getPrintParams($type);
$this->pagedata['printTmpl'] = $printTmpl;
$this->singlepage('admin/print/show.html');
}
/**
* 保存打印模板
*
* @return void
* @author
* */
public function save()
{
$params = $this->_request->get_post();
$params['id'] = (int)$params['id'];
$update = $params['id'] ? true : false;
$this->begin("index.php?app=ome&ctl=admin_print_otmpl&act=show&p[0]={$params['id']}&p[1]={$params['type']}");
if (!$params['title']) {
$this->end(false,app::get('ome')->_('请完善标题!'));
}
if (!$params['content']) {
$this->end(false,app::get('ome')->_('请完善模板样式!'));
}
if ($params['aloneBtn']=='true' && !$params['btnName']) {
$this->end(false,app::get('ome')->_('请完善独立按钮名称'));
}
$xss = "[\\'\\\"\\;\\*\\<\\>].*\\bon[a-zA-Z]{3,15}[\\s\\r\\n\\v\\f]*\\=|\\b(?:expression)\\(|\\<script[\\s\\\\\\/]|\\<\\!\\[cdata\\[|\\b(?:eval|alert|prompt|msgbox)\\s*\\(|url\\((?:\\#|data|javascript)|<a.*\\bhref[\\s\\r\\n\\v\\f]*\\=[\\s\\r\\n\\v\\f]*(?:\\'|\\\")[\\s\\r\\n\\v\\f]*javascript";
if (preg_match("/".$xss."/is",$params['content']) == 1){
$this->end(false,'您的模板存在安全隐患,请及时修改');
}
// 防PHP注入
$ldq = preg_quote('<{','!');
$rdq = preg_quote('}>','!');
$file_contents = preg_replace("!{$ldq}\*.*?\*{$rdq}!seu",'',$params['content']);
$file_contents = preg_replace("!(\<\?|\?\>)!",'<?php echo \'\1\'; ?>',$file_contents);
foreach(preg_split('!'.$ldq.'(\s*(?:\/|)[a-z][a-z\_0-9]*|)(.*?)'.$rdq.'!isu',$file_contents,-1,PREG_SPLIT_DELIM_CAPTURE) as $value){
if (!$value) continue;
if (preg_match("/(?<=;)\w+(?=\s*\()/", $value, $m) && $m[0] && function_exists($m[0])) {
$this->end(false,'您的模板存在安全隐患,请及时修改');
}
foreach (explode(';', $value) as $v) {
if (kernel::single('ome_func')->judgeFun($v)) {
$this->end(false,'您的模板存在安全隐患,请及时修改');
}
}
}
// 防PHP注入
$oTmplModel = $this->app->model('print_otmpl');
$types = array_keys($oTmplModel->otmpl);
if (!in_array($params['type'], $types)) {
$this->end(false,app::get('ome')->_('请选择打印模板类型'));
}
if ($params['is_default']=='true') {
$filter = array('is_default' => 'true','type' => $params['type'] );
$data = array('is_default' => 'false');
$oTmplModel->update($data,$filter);
$params['open'] = 'true';
}
if ($params['id'] && ($params['is_default']=='false' || $params['open']=='false') ) {
$row = $oTmplModel->select()->columns('id')
->where('id!=?',$params['id'])
->where('is_default=?','true')
->where('type=?',$params['type'])
->where('open=?','true')
->instance()->fetch_one();
if (!$row) {
$this->end(false,app::get('ome')->_('先开启其他同类项后,再取消默认!'));
}
}
if ($params['aloneBtn']=='false') {
$params['btnName'] = '';
}
$params['last_modified'] = time();
//$params['content'] = htmlspecialchars_decode($params['content']);
$params['content'] = $oTmplModel->bodyFilter($params['content'],true,$params['type']);
$result = $oTmplModel->save($params);
if ($update==false) {
$path = 'admin/print/otmpl/'.$params['id'];
$oTmplModel->update(array('path'=>$path),array('id'=>$params['id']));
}
$this->end($result);
}
/**
* 获取默认打印模样(页面文件)
*
* @return json
* @param String $type 打印类型
* @author
* */
public function getDefaultTmpl($type)
{
$oTmplModel = $this->app->model('print_otmpl');
if (!in_array($type, array_keys($oTmplModel->otmpl))) {
$this->splash('error',NULL,$this->app->_('不存在该类型!'));
}
$content = $oTmplModel->getDefaultTmplByHtml($type);
$defaultTmpl = array('title'=>$oTmplModel->otmpl[$type]['name'],'content'=>$content);
$this->splash('success',NULL,$this->app->_('获取成功'),'redirect',$defaultTmpl);
}
/**
* undocumented function
*
* @return void
* @author
* */
private function getPrintParams($type='delivery')
{
$params['delivery'][] = array(
'name' => '发货明细',
'param' => '
<{foreach from=$items item=item}><br/>
<{foreach from=$item.delivery_items item=i}>
<ul>
<li>基础物料名称:<{$i.name}></li>
<li>商品规格:<{$i.addon|default:"--"}></li>
<li>基础物料编码:<{$i.bn}></li>
<li>货位:<{$i.store_position}></li>
<li>数量:<{$i.number}></li>
<li>单价:<{$i.price}></li>
</ul>
<{/foreach}><br/>
<{/foreach}>
',
);
$params['delivery'][] = array(
'name' => '订单附言',
'param' => '
<{foreach from=$items item=item}><br/>
<{foreach name="m2" from=$item._mark key=key item=item2}>
<br><{$key}>:
<{foreach from=$item2 item=it}>
<br>&nbsp;&nbsp;&nbsp;&nbsp;<b><{$it.op_content}></b> <{$it.op_time}> by <{$it.op_name}><br/>
<{/foreach}><br/>
<{/foreach}><br/>
<{/foreach}>
',
);
$params['delivery'][] = array(
'name' => '头部内容',
'param' => '
<{capture name="header"}><br/>
# your code <br/>
<{/capture}>
',
);
$params['delivery'][] = array(
'name' => '错误提示',
'param' => '
<{ if $errIds }><br>
<{ foreach from=$errIds item=id }><br/>
<{$errBns[$id]}><{$errInfo[$id]}><br>
<{ /foreach }><br/>
<{ /if }>
',
);
$params['delivery'][] = array(
'name' => '发货单信息',
'param' => '
<{foreach from=$items item=item}>
<ul>
<li>货到付款:<{if $item.is_code=="true"}># your code<{/if}></li>
<li>来源店铺:<{$item.shop_name}></li>
<li>店铺LOGO<{$item.shop_logo_url}></li>
<li>发货单号:<{$item.delivery_bn}></li>
<li>条形码:<{$item.delivery_bn|barcode}></li>
<li>打印批次号:<{$idents[$item["delivery_id"]]}></li>
<li>订单号:<{$item.order_bn}></li>
<li>会员名:<{$item.member_name}></li>
<li>打印日期:<{$time}></li>
<li>操作员:<{$item.op_name}></li>
<li>发货单数量总计:<{$item.delivery_total_nums}></li>
<li>订单总金额:<{$item.order_total_amount}></li>
<li>应收金额:<{$item.total_receivable}></li>
<li>商品总金额:<{$item.order_cost_item}></li>
<li>收货人:<{$item.consignee.name}></li>
<li>电话:<{$item.consignee.telephone}></li>
<li>手机:<{$item.consignee.mobile}></li>
<li>邮编:<{$item.consignee.zip}></li>
<li>地址:<{$item.consignee.area|region}> <{$item.consignee.addr}></li>
</ul>
<{/foreach}>
',
);
$params['delivery'][] = array(
'name' => '订单备注',
'param' => '
<{foreach from=$items item=item}><br/>
<{foreach name="m1" from=$item._mark_text key=key item=item1}><br>
<{$key}>:<br/>
<{foreach from=$item1 item=it}>
<br>&nbsp;&nbsp;&nbsp;&nbsp;<b><{$it.op_content}></b> <{$it.op_time}> by <{$it.op_name}><br/>
<{/foreach}><br/>
<{/foreach}><br/>
<{/foreach}>
',
);
$params['delivery'][] = array(
'name' => '发票信息',
'param' => '
<{foreach from=$item._tax_info item=item3}>
<br/><{$item3.order_bn}>:
<br/>&nbsp;&nbsp;&nbsp;&nbsp;发票抬头:<{$item3.tax_title}>&nbsp;&nbsp;发票号:<{$item3.tax_no}>
<{/foreach}>
',
);
$params['delivery'][] = array(
'name' => '商品重量',
'param' => '<{$i.product_weight}>',
);
$params['delivery'][] = array(
'name' => '商品单位',
'param' => '<{$i.unit}>',
);
##发货单销售价老模板
##发货单销售价新模板
$params['stock'][0] = array(
'name' => '头部内容',
'param' => '
<{capture name="header"}>
# your code <br/>
<{/capture}>
',
);
$params['stock'][1] = array(
'name' => '错误提示',
'param' => '
<{if $errIds }>
<{ foreach from=$errIds item=id }>
<{$errBns[$id]}><{$errInfo[$id]}>
<{ /foreach }>
<{/if}>
',
);
$params['stock'][2] = array(
'name' => '备货明细',
'param' => '
<{foreach from=$rows item=item name=ff}>
<ul>
<li>基础物料编码:<{$item.bn}></li>
<li>货位:<{$item.store_position}></li>
<li>条形码:<{$item.barcode}></li>
<li>基础物料名称:<{$item.name}></li>
<li>规格:<{$item.spec_info|default:"--"}></li>
<li>数量:<{$item.num}></li>
<li>合计金额:<{$item.box_price}></li>
<li>盒子号:<{$item.box}></li>
<li>订单附言:</li>
</ul>
<{/foreach}>
',
);
$params['stock'][3] = array(
'name' => '订单附言',
'param' => '
<{foreach from=$memo[0] item=items}><br/>
<{$items.op_content|escape:"HTML"}><br/>
<{/foreach}>
',
);
$params['stock'][4] = array(
'name' => '数量总计',
'param' => '<{$delivery_total_nums}> ',
);
$params['stock'][5] = array(
'name' => '出库金额总计',
'param' => '<{$delivery_total_price}>',
);
$params['stock'][6] = array(
'name' => '备货单金额总计',
'param' => '<{$picking_list_price}>',
);
$params['stock'][7] = array(
'name' => '优惠金额总计',
'param' => '<{$delivery_discount_price}>',
);
$params['stock'][8] = array(
'name' => '批次号',
'param' => '<{$ident}>',
);
$params['stock'][9] = array(
'name' => '商品重量',
'param' => '<{$item.product_weight}>',
);
$params['stock'][10] = array(
'name' => '商品单位',
'param' => '<{$item.unit}>',
);
$params['purchase'][] = array(
'name' => '打印日期',
'param' => ' <{$time|date_format:"%Y-%m-%d %H:%I:%S"}>',
);
$params['purchase'][] = array(
'name' => '采购单号',
'param' => '<{$po.po_bn}>',
);
$params['purchase'][] = array(
'name' => '采购方式',
'param' => '<{if $po.po_type=="cash"}>现购<{else}>赊购<{/if}>',
);
$params['purchase'][] = array(
'name' => '供应商',
'param' => '<{$po.supplier}>',
);
$params['purchase'][] = array(
'name' => '采购员',
'param' => '<{$po.operator}>',
);
$params['purchase'][] = array(
'name' => '采购单创建人',
'param' => '<{$po.op_name}>',
);
$params['purchase'][] = array(
'name' => '审核人',
'param' => '<{$po.check_operator}>',
);
$params['purchase'][] = array(
'name' => '规格',
'param' => '<{$i.spec_info}>',
);
$params['purchase'][] = array(
'name' => '指定仓库',
'param' => '<{$po.branch}>',
);
$params['purchase'][] = array(
'name' => '采购日期',
'param' => '<{$po.purchase_time|date_format:"%Y-%m-%d %H:%I:%S"}>',
);
$params['purchase'][] = array(
'name' => '到货日期',
'param' => '<{$po.arrive_time|date_format:"%Y-%m-%d"}>',
);
$params['purchase'][] = array(
'name' => '金额总计',
'param' => '<{$po.amount}>',
);
$params['purchase'][] = array(
'name' => '预付款',
'param' => '<{$po.deposit}>',
);
$params['purchase'][] = array(
'name' => '备注',
'param' => '
<{foreach from=$po.memo item=items}><br/>
<b><{$items.op_content|escape:"HTML"}></b> <{$items.op_time}> by <{$items.op_name}><br/>
<{/foreach}>
',
);
$params['purchase'][] = array(
'name' => '商品信息',
'param' => '
<{foreach from=$po.po_items item=i}>
<ul>
<li>基础物料名称:<{$i.name}></li>
<li>商品编号:<{$i.goods_bn}></li>
<li>计量单位:<{$i.unit}></li>
<li>基础物料编码:<{$i.bn}></li>
<li>采购数量:<{$i.num}></li>
<li>待入库数量:<{$i.num-$i.in_num-$i.out_num}></li>
<li>采购单价:<{$i.price}></li>
</ul>
<{/foreach}>
',
);
$params['pureo'][] = array(
'name' => '金额总计',
'param' => '<{$eo.detail.product_cost}>',
);
$params['pureo'][] = array(
'name' => '经办人',
'param' => '<{$eo.detail.oper}>',
);
$params['pureo'][] = array(
'name' => '到货仓库',
'param' => '<{$eo.branch_name}>',
);
$params['pureo'][] = array(
'name' => '供应商',
'param' => '<{$eo.supplier_name}>',
);
$params['pureo'][] = array(
'name' => '入库日期',
'param' => '<{$eo.detail.create_time|date_format:"%Y-%m-%d"}>',
);
$params['pureo'][] = array(
'name' => '入库单编号',
'param' => '<{$eo.detail.iso_bn}>',
);
$params['pureo'][] = array(
'name' => '入库单备注',
'param' => '<{$eo.detail.memo}>',
);
$params['pureo'][] = array(
'name' => '商品规格',
'param' => '<{$items.spec_info}>',
);
$params['pureo'][] = array(
'name' => '商品明细',
'param' => '
<{foreach from=$eo.items item=items}>
<ul>
<li>基础物料名称:<{$items.product_name}></li>
<li>基础物料编码:<{$items.bn}></li>
<li>货位:<{$items.store_position}></li>
<li>单位:<{$items.unit}></li>
<li>数量:<{$items.nums}></li>
<li>价格:<{$items.price}></li>
</ul>
<{/foreach}>
',
);
$params['pureo'][] = array(
'name' => '单据类型',
'param' => '<{if(!isset($process_name))}><{assign var=process_name value="入库"}><{/if}>',
);
$params['purreturn'][] = array(
'name' => '退货底单',
'param' => '<{$po.logi_no}>',
);
$params['purreturn'][] = array(
'name' => '打印日期',
'param' => ' <{$time|date_format:"%Y-%m-%d %H:%I:%S"}>',
);
$params['purreturn'][] = array(
'name' => '退货单号',
'param' => '<{$po.rp_bn}>',
);
$params['purreturn'][] = array(
'name' => '是否特别退货',
'param' => '<{if $po.emergency=="false"}>否<{else}>是<{/if}>',
);
$params['purreturn'][] = array(
'name' => '供应商',
'param' => '<{$po.supplier}>',
);
$params['purreturn'][] = array(
'name' => '经办人',
'param' => '<{$po.operator}>',
);
$params['purreturn'][] = array(
'name' => '退货仓库',
'param' => '<{$po.branch}>',
);
$params['purreturn'][] = array(
'name' => '退货日期',
'param' => '<{$po.returned_time|date_format:"%Y-%m-%d %H:%I:%S"}>',
);
$params['purreturn'][] = array(
'name' => '物流费用',
'param' => '<{$po.delivery_cost}>',
);
$params['purreturn'][] = array(
'name' => '金额总计',
'param' => '<{$po.amount}>',
);
$params['purreturn'][] = array(
'name' => '备注',
'param' => '
<{foreach from=$po.memo item=items}><br/>
<b><{$items.op_content|escape:"HTML"}></b> <{$items.op_time}> by <{$items.op_name}><br/>
<{/foreach}>
',
);
$params['purreturn'][] = array(
'name' => '商品明细',
'param' => '
<{foreach from=$po.po_items item=i}>
<ul>
<li>基础物料名称:<{$i.name}></li>
<li>基础物料编码:<{$i.bn}></li>
<li>规格:<{$i.spec_info}></li>
<li>条形码:<{$i.barcode}></li>
<li>退货数量:<{$i.num}></li>
<li>退货单价:<{$i.price}></li>
</ul>
<{/foreach}>
',
);
$params['merge'][] = array(
'name' => '头部内容',
'param' => '
<{capture name="header"}>
# your code <br/>
<{/capture}>
',
);
$params['merge'][] = array(
'name' => '错误提示',
'param' => '
<{ if $errIds }><br/>
<{ foreach from=$errIds item=id }><br/>
<{$allItems[$id]["delivery_bn"]}> &nbsp; : &nbsp; <{$errInfo[$id]}><br><br/>
<{ /foreach }><br/>
<{ /if }>
',
);
$params['merge'][] = array(
'name' => '备货单明细',
'param' => '
<{foreach from=$items item=group}><br/>
<{foreach from=$group.stock item=item name=ff}><br/>
<ul>
<li>基础物料编码:<{$item.bn}></li>
<li>货位:<{$item.store_position}></li>
<li>基础物料名称:<{if $is_front_pname}><{$item.product_name}><{else}><{$item.name}><{/if}></li>
<li>规格:<{$item.spec_info|default:\'--\'}></li>
<li>数量:<{$item.num}></li>
<li>盒子号<盒号(件数)-序号><{$item.box}></li>
</ul>
<{/foreach}><br/>
<{/foreach}><br/>
',
);
$params['merge'][] = array(
'name' => '商品重量',
'param' => '<{product_weight}>',
);
$params['merge'][] = array(
'name' => '商品单位',
'param' => '<{unit}>',
);
$params['merge'][] = array(
'name' => '备货单信息',
'param' => '
<{foreach from=$items item=group}><br/>
<{foreach from=$group.stock item=item name=ff}><br/>
<ul>
<li>备货单数量总计:<{$group.delivery_total_nums}></li>
<li>出库金额总计:<{assign var="delivery_total_price" value=$group.delivery_total_price+$group.delivery_discount_price}>
<{$delivery_total_price}></li>
<li>备货单金额总计:<{$group.delivery_total_price|default:0}></li>
<li>优惠金额总计:<{$group.delivery_discount_price|default:0}></li>
</ul>
<{/foreach}><br/>
<{/foreach}><br/>
',
);
$params['merge'][] = array(
'name' => '发货明细',
'param' => '
<{foreach from=$items item=group}>
<{foreach from=$group.delivery item=item}><br/>
<{foreach from=$item.delivery_items item=i}><br/>
<ul>
<li>基础物料名称:<{if $is_front_pname}><{$i.product_name}><{else}><{$i.name}><{/if}></li>
<li>商品规格:<{$i.addon|default:\'--\'}></li>
<li>基础物料编码:<{$i.bn}></li>
<li>货位:<{$i.store_position}></li>
<li>数量:<{$i.number}></li>
<li>单价:<{$i.price}></li>
</ul>
<{/foreach}><br/>
<{/foreach}><br/>
<{/foreach}><br/>
',
);
$params['merge'][] = array(
'name' => '发货单信息',
'param' => '
<{foreach from=$items item=group}>
<{foreach from=$group.delivery item=item}>
<ul>
<li>条形码:<{$item.delivery_bn|barcode}></li>
<li>发货单号:<{$item.delivery_bn}></li>
<li>制单人:<{$item.op_name}></li>
<li>电话号码:<{$item.consignee.telephone}>/<{$item.consignee.mobile}></li>
<li>会员名:<{$item.member_name}></li>
<li>打印日期: <{$time}></li>
<li>订单号:<{$item.order_bn}></li>
<li>地址:<{$item.consignee.area|region}></li>
<li>销售发货单数量总计:<{$item.delivery_total_nums}></li>
<li>订单总金额:<{$item.order_total_amount}></li>
<li>收货人:<{$item.consignee.name}></li>
<li>手机:<{$item.consignee.mobile}></li>
<li>邮编:<{$item.consignee.zip}></li>
<li>地址:<{$item.consignee.area|region}></li>
<li>批次号:<{$idents[$item[\'delivery_id\']]}></li>
</ul>
<{/foreach}>
<{/foreach}>
',
);
$params['merge'][] = array(
'name' => '订单备注',
'param' => '
<{foreach from=$items item=group}><br/>
<{foreach from=$group.delivery item=item}><br/>
<{foreach name="m1" from=$item._mark_text key=key item=item1}><br/>
<{$key}>:
<{foreach from=$item1 item=it}>
<br>&nbsp;&nbsp;&nbsp;&nbsp;<b><{$it.op_content}></b> <{$it.op_time}> by <{$it.op_name}>
<{/foreach}><br/>
<{/foreach}><br/>
<{/foreach}><br/>
<{/foreach}><br/>
',
);
$params['merge'][] = array(
'name' => '订单附言',
'param' => '
<{foreach from=$items item=group}><br/>
<{foreach from=$group.delivery item=item}><br/>
<{foreach name="m1" from=$item._mark key=key item=item1}>
<br><{$key}>:
<{foreach from=$item1 item=it}>
<br>&nbsp;&nbsp;&nbsp;&nbsp;<b><{$it.op_content}></b> <{$it.op_time}> by <{$it.op_name}>
<{/foreach}><br/>
<{/foreach}><br/>
<{/foreach}><br/>
<{/foreach}><br/>
',
);
$params['merge'][] = array(
'name' => '发票信息',
'param' => '
<{foreach from=$item._tax_info item=item3}>
<br/><{$item3.order_bn}>:
<br/>&nbsp;&nbsp;&nbsp;&nbsp;发票抬头:<{$item3.tax_title}>&nbsp;&nbsp;发票号:<{$item3.tax_no}>
<{/foreach}>
',
);
$params['appropriation'][] = array(
'name' => '货位',
'param' => '<{$item.store_position}>',
);
//JIT出库单打印模板
$params['vopstockout'][] = array(
'name' => '品牌',
'param' => '<{$item.shop_name}>',
);
$params['vopstockout'][] = array(
'name' => '送货仓库',
'param' => '<{$item.branch_name}>',
);
$params['vopstockout'][] = array(
'name' => '入库单号',
'param' => '<{$item.storage_no}>',
);
$params['vopstockout'][] = array(
'name' => '箱号',
'param' => '<{$item.box_no}>',
);
$params['vopstockout'][] = array(
'name' => '要求到货时间',
'param' => '<{$item.arrival_time}>',
);
$params['vopstockout'][] = array(
'name' => '承运商',
'param' => '<{$item.carrier_code}>',
);
$params['vopstockout'][] = array(
'name' => '运单号',
'param' => '<{$item.delivery_no}>',
);
$params['vopstockout'][] = array(
'name' => '入库单号(条形码)',
'param' => '<{$item.storage_no|barcode}>',
);
$params['vopstockout'][] = array(
'name' => '箱号(条形码)',
'param' => '<{$item.box_no|barcode}>',
);
$params['vopstockout'][] = array(
'name' => '要求到货时间(条形码)',
'param' => '<{$item.arrival_time|barcode}>',
);
$params['vopstockout'][] = array(
'name' => '运单号(条形码)',
'param' => '<{$item.delivery_no|barcode}>',
);
return $type=='all' ? $params : $params[$type];
}
/**
* @description
* @access public
* @param void
* @return void
*/
public function getdefault_sale_print($type)
{
$oTmplModel = $this->app->model('print_otmpl');
$content = $oTmplModel->getDefaultTmplByHtml($type);
$defaultTmpl = array('title'=>$oTmplModel->otmpl[$type]['name'],'content'=>$content);
$this->splash('success',NULL,$this->app->_('获取成功'),'redirect',$defaultTmpl);
}
}