|
@@ -289,8 +289,80 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
|
|
|
else return cur;
|
|
else return cur;
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
+ }).factory('Lodop',function(){
|
|
|
|
|
+ return {
|
|
|
|
|
+ getLodop:function(oOBJECT,oEMBED){
|
|
|
|
|
+ var CreatedOKLodop7766=null;
|
|
|
|
|
+ /**************************
|
|
|
|
|
+ 本函数根据浏览器类型决定采用哪个页面元素作为Lodop对象:
|
|
|
|
|
+ IE系列、IE内核系列的浏览器采用oOBJECT,
|
|
|
|
|
+ 其它浏览器(Firefox系列、Chrome系列、Opera系列、Safari系列等)采用oEMBED,
|
|
|
|
|
+ 如果页面没有相关对象元素,则新建一个或使用上次那个,避免重复生成。
|
|
|
|
|
+ 64位浏览器指向64位的安装程序install_lodop64.exe。
|
|
|
|
|
+ **************************/
|
|
|
|
|
+ var strHtmInstall="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='static/lib/lodopActivex/install_lodop32.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>";
|
|
|
|
|
+ var strHtmUpdate="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='static/lib/lodopActivex/install_lodop32.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>";
|
|
|
|
|
+ var strHtm64_Install="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='static/lib/lodopActivex/install_lodop64.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>";
|
|
|
|
|
+ var strHtm64_Update="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='static/lib/lodopActivex/install_lodop64.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>";
|
|
|
|
|
+ var strHtmFireFox="<br><br><font color='#FF00FF'>(注意:如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】->【扩展】中先卸它)</font>";
|
|
|
|
|
+ var strHtmChrome="<br><br><font color='#FF00FF'>(如果此前正常,仅因浏览器升级或重安装而出问题,需重新执行以上安装)</font>";
|
|
|
|
|
+ var LODOP;
|
|
|
|
|
+ try{
|
|
|
|
|
+ //=====判断浏览器类型:===============
|
|
|
|
|
+ var isIE = (navigator.userAgent.indexOf('MSIE')>=0) || (navigator.userAgent.indexOf('Trident')>=0);
|
|
|
|
|
+ var is64IE = isIE && (navigator.userAgent.indexOf('x64')>=0);
|
|
|
|
|
+ //=====如果页面有Lodop就直接使用,没有则新建:==========
|
|
|
|
|
+ if (oOBJECT!=undefined || oEMBED!=undefined) {
|
|
|
|
|
+ if (isIE)
|
|
|
|
|
+ LODOP=oOBJECT;
|
|
|
|
|
+ else
|
|
|
|
|
+ LODOP=oEMBED;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (CreatedOKLodop7766==null){
|
|
|
|
|
+ LODOP=document.createElement("object");
|
|
|
|
|
+ LODOP.setAttribute("width",0);
|
|
|
|
|
+ LODOP.setAttribute("height",0);
|
|
|
|
|
+ LODOP.setAttribute("style","position:absolute;left:0px;top:-100px;width:0px;height:0px;");
|
|
|
|
|
+ if (isIE) LODOP.setAttribute("classid","clsid:2105C259-1E0C-4534-8141-A753534CB4CA");
|
|
|
|
|
+ else LODOP.setAttribute("type","application/x-print-lodop");
|
|
|
|
|
+ document.documentElement.appendChild(LODOP);
|
|
|
|
|
+ CreatedOKLodop7766=LODOP;
|
|
|
|
|
+ } else
|
|
|
|
|
+ LODOP=CreatedOKLodop7766;
|
|
|
|
|
+ };
|
|
|
|
|
+ //=====判断Lodop插件是否安装过,没有安装或版本过低就提示下载安装:==========
|
|
|
|
|
+ if ((LODOP==null)||(typeof(LODOP.VERSION)=="undefined")) {
|
|
|
|
|
+ if (navigator.userAgent.indexOf('Chrome')>=0)
|
|
|
|
|
+ document.documentElement.innerHTML=strHtmChrome+document.documentElement.innerHTML;
|
|
|
|
|
+ if (navigator.userAgent.indexOf('Firefox')>=0)
|
|
|
|
|
+ document.documentElement.innerHTML=strHtmFireFox+document.documentElement.innerHTML;
|
|
|
|
|
+ if (is64IE) document.write(strHtm64_Install); else
|
|
|
|
|
+ if (isIE) document.write(strHtmInstall); else
|
|
|
|
|
+ document.documentElement.innerHTML=strHtmInstall+document.documentElement.innerHTML;
|
|
|
|
|
+ return LODOP;
|
|
|
|
|
+ } else
|
|
|
|
|
+ if (LODOP.VERSION<"6.1.9.8") {
|
|
|
|
|
+ if (is64IE) document.write(strHtm64_Update); else
|
|
|
|
|
+ if (isIE) document.write(strHtmUpdate); else
|
|
|
|
|
+ document.documentElement.innerHTML=strHtmUpdate+document.documentElement.innerHTML;
|
|
|
|
|
+ return LODOP;
|
|
|
|
|
+ };
|
|
|
|
|
+ //=====如下空白位置适合调用统一功能(如注册码、语言选择等):====
|
|
|
|
|
+ LODOP.SET_LICENSES("深圳市优软科技有限公司","BBF53BD5AB0D522B3207D05CDE381F65","","");
|
|
|
|
|
+
|
|
|
|
|
+ //============================================================
|
|
|
|
|
+ return LODOP;
|
|
|
|
|
+ } catch(err) {
|
|
|
|
|
+ if (is64IE)
|
|
|
|
|
+ document.documentElement.innerHTML="Error:"+strHtm64_Install+document.documentElement.innerHTML;else
|
|
|
|
|
+ document.documentElement.innerHTML="Error:"+strHtmInstall+document.documentElement.innerHTML;
|
|
|
|
|
+ return LODOP;
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+
|
|
|
app.controller('MyCtrl', ['$scope', '$rootScope', function($scope, $rootScope) {
|
|
app.controller('MyCtrl', ['$scope', '$rootScope', function($scope, $rootScope) {
|
|
|
$rootScope.$on('$locationChangeSuccess', function(evt, newUrl) {
|
|
$rootScope.$on('$locationChangeSuccess', function(evt, newUrl) {
|
|
|
var routeState = newUrl.substr(newUrl.indexOf('#/') + 2);
|
|
var routeState = newUrl.substr(newUrl.indexOf('#/') + 2);
|
|
@@ -2052,7 +2124,7 @@ app.controller('SaleSendCtrl', ['$scope', '$filter', 'SaleSend', 'ngTableParams'
|
|
|
/**
|
|
/**
|
|
|
* 发货单(包括发货条码维护)
|
|
* 发货单(包括发货条码维护)
|
|
|
*/
|
|
*/
|
|
|
- app.controller('SaleSendDetailCtrl', ['$scope', '$stateParams', 'SaleSend', 'toaster', 'ReportService', function($scope, $stateParams, SaleSend, toaster, ReportService){
|
|
|
|
|
|
|
+ app.controller('SaleSendDetailCtrl', ['$scope', '$stateParams', 'SaleSend', 'toaster', 'ReportService','Lodop', function($scope, $stateParams, SaleSend, toaster, ReportService,Lodop){
|
|
|
var loading = true;
|
|
var loading = true;
|
|
|
$scope.checkBarCode = [];
|
|
$scope.checkBarCode = [];
|
|
|
$scope.checkBoxCode = [];
|
|
$scope.checkBoxCode = [];
|
|
@@ -2108,22 +2180,32 @@ app.controller('SaleSendCtrl', ['$scope', '$filter', 'SaleSend', 'ngTableParams'
|
|
|
*/
|
|
*/
|
|
|
$scope.generateBarCode = function(item) {
|
|
$scope.generateBarCode = function(item) {
|
|
|
//获取勾选了生成条码的明细行,只勾选生成箱号的明细行不会生成条码和箱号
|
|
//获取勾选了生成条码的明细行,只勾选生成箱号的明细行不会生成条码和箱号
|
|
|
- $scope.getCheckedItems = [];
|
|
|
|
|
|
|
+ $scope.getCheckedItems = [];
|
|
|
|
|
+ var warningdata = ''
|
|
|
angular.forEach($scope.checkBarCode, function(item,key) {
|
|
angular.forEach($scope.checkBarCode, function(item,key) {
|
|
|
- $scope.getCheckedItem = {};
|
|
|
|
|
- console.log($scope.order);
|
|
|
|
|
|
|
+ $scope.getCheckedItem = {};
|
|
|
if(item == true ){
|
|
if(item == true ){
|
|
|
$scope.getCheckedItem.id = $scope.order.sendItems[key].id;
|
|
$scope.getCheckedItem.id = $scope.order.sendItems[key].id;
|
|
|
$scope.getCheckedItem.isOutboxChecked = $scope.order.sendItems[key].isOutboxChecked;
|
|
$scope.getCheckedItem.isOutboxChecked = $scope.order.sendItems[key].isOutboxChecked;
|
|
|
$scope.getCheckedItems.push($scope.getCheckedItem);
|
|
$scope.getCheckedItems.push($scope.getCheckedItem);
|
|
|
|
|
+ //判断是否生成过条码
|
|
|
|
|
+ if($scope.order.sendItems[key].barSendNotify.length > 0){
|
|
|
|
|
+ warningdata += $scope.order.sendItems[key].number+","
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
if($scope.getCheckedItems.length == 0){
|
|
if($scope.getCheckedItems.length == 0){
|
|
|
toaster.pop('warning', '提示','请勾选需要生成条码的明细行!');
|
|
toaster.pop('warning', '提示','请勾选需要生成条码的明细行!');
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+ if(warningdata != ''){
|
|
|
|
|
+ if(!confirm('明细行序号:'+warningdata+"已经生成了条码,继续生成将清空原有条码?")){
|
|
|
|
|
+ return ;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
SaleSend.generateBarcodes({id:$scope.order.id}, angular.fromJson($scope.getCheckedItems),function(data){
|
|
SaleSend.generateBarcodes({id:$scope.order.id}, angular.fromJson($scope.getCheckedItems),function(data){
|
|
|
toaster.pop('success', '提示','生成条码成功!');
|
|
toaster.pop('success', '提示','生成条码成功!');
|
|
|
|
|
+ loadData();
|
|
|
},function(response){
|
|
},function(response){
|
|
|
$scope.loading = false;
|
|
$scope.loading = false;
|
|
|
toaster.pop('error', '生成失败', response.data);
|
|
toaster.pop('error', '生成失败', response.data);
|
|
@@ -2133,16 +2215,52 @@ app.controller('SaleSendCtrl', ['$scope', '$filter', 'SaleSend', 'ngTableParams'
|
|
|
* 打印条码
|
|
* 打印条码
|
|
|
*/
|
|
*/
|
|
|
$scope.printBarCode = function() {
|
|
$scope.printBarCode = function() {
|
|
|
-
|
|
|
|
|
|
|
+ //勾选需要打印的行
|
|
|
|
|
+ $scope.getCheckedItems = [];
|
|
|
|
|
+ var warningdata = ''
|
|
|
|
|
+ angular.forEach($scope.checkBarCode, function(item,key) {
|
|
|
|
|
+ if(item == true ){
|
|
|
|
|
+ $scope.getCheckedItem.id = $scope.order.sendItems[key].id;
|
|
|
|
|
+ $scope.getCheckedItems.push($scope.getCheckedItem);
|
|
|
|
|
+ //判断是否生成过条码
|
|
|
|
|
+ if($scope.order.sendItems[key].barSendNotify.length > 0){
|
|
|
|
|
+ warningdata += $scope.order.sendItems[key].number+","
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ if($scope.getCheckedItems.length == 0){
|
|
|
|
|
+ toaster.pop('warning', '提示','请勾选需要生成条码的明细行!');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if(warningdata != ''){
|
|
|
|
|
+ toaster.pop('warning', '提示','明细行序号:'+warningdata+'未生成条码无法打印');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ SaleSend.printBarcodes({}, angular.fromJson($scope.getCheckedItems),function(data){
|
|
|
|
|
+
|
|
|
|
|
+ },function(response){
|
|
|
|
|
+ $scope.loading = false;
|
|
|
|
|
+ toaster.pop('error', '获取打印数据失败', response.data);
|
|
|
|
|
+ });
|
|
|
|
|
+ var LODOP = Lodop.getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
|
|
|
|
|
+ LODOP.ADD_PRINT_TEXT(20,180,100,25,'郭德强');
|
|
|
|
|
+ LODOP.NewPage();
|
|
|
|
|
+ LODOP.SET_PREVIEW_WINDOW(0,0,0,0,0,"");
|
|
|
|
|
+ LODOP.SET_SHOW_MODE("HIDE_SBUTTIN_PREVIEW",1);
|
|
|
|
|
+ LODOP.PREVIEW();
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
*打印箱号
|
|
*打印箱号
|
|
|
*/
|
|
*/
|
|
|
$scope.printOutBoxCode = function() {
|
|
$scope.printOutBoxCode = function() {
|
|
|
-
|
|
|
|
|
|
|
+ var LODOP = Lodop.getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
|
|
|
}
|
|
}
|
|
|
- $scope.showBarCode = function() {
|
|
|
|
|
|
|
+ $scope.showBarCode = function(number) {
|
|
|
vm.showBarCode = !vm.showBarCode;
|
|
vm.showBarCode = !vm.showBarCode;
|
|
|
|
|
+ $scope.barcodes = [];
|
|
|
|
|
+ $scope.barcodes = $scope.order.sendItems[number].barSendNotify;
|
|
|
|
|
+ console.log($scope.barcodes);
|
|
|
|
|
+ console.log(number);
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* 更新外箱号
|
|
* 更新外箱号
|