| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533 |
- Ext.QuickTips.init();
- Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
- extend: 'Ext.app.Controller',
- requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
- views:[
- 'core.form.Panel','common.CommonPage','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger',
- 'core.button.Close','core.trigger.DbfindTrigger','core.grid.YnColumn','core.button.GenerateBarcode'
- ],
- init:function(){
- var me = this;
- me.FormUtil = Ext.create('erp.util.FormUtil');
- me.GridUtil = Ext.create('erp.util.GridUtil');
- me.BaseUtil = Ext.create('erp.util.BaseUtil');
- this.control({
- '#barCode': {
- specialkey: function(f, e){//按ENTER自动复制到下一行
- if (e.getKey() == e.ENTER) {
- if(f.value != null && f.value != ''){
- me.getBarInfo();
- Ext.getCmp('pr_partNumber').focus(false, 100);
- }
- }
- }
- },
- 'erpProdCreateBarcode': {
- },
- 'erpGenerateBarcodeButton': {
- click: function(btn){
- var pr_code = Ext.getCmp('pr_code').value;
- var number = Ext.getCmp('pr_partNumber').value;
- if(pr_code == null || pr_code ==''){
- Ext.Msg.alert('温馨提示',
- '请先选择物料编号');
- return;
- }else if(number == null || number ==''){
- Ext.Msg.alert('温馨提示',
- '请输入数量');
- return;
- }
- var re=/^(\-|\+)?\d+(\.\d+)?$/;
- var sum=0;
- number=number.replace(/,/ig,',');
- if(re.test(number)){
- var str = new Array();
- str = number.split( "," );
- for (var i = 0; i < str.length; i++ )
- {
- if(str[i] <= 0){
- Ext.Msg.alert('温馨提示',
- '数量必须大于0');
- return;
- }
- sum+=parseFloat(str[i]);
- }}else{
- showError("请输入正确的数量,例如20,30,40");
- return;
- }
- if (sum <= 0) {
- Ext.Msg.alert('温馨提示',
- '数量必须大于0');
- return;
- }
- if(pr_code && number){
- Ext.getCmp("pr_partNumber").setValue('');
- var batchcode = Ext.getCmp('batchCode').value;
- if(batchcode != null && batchcode != ''){
- me.batchGenerateBarcode(pr_code,number,batchcode);
- }else{
- me.batchGenerateBarcode(pr_code,number,'');
- }
- }
- }
- },
- 'erpCloseButton': {
- click: function(btn){
- me.FormUtil.beforeClose(me);
- }
- }
- });
- },
- onGridItemClick: function(selModel, record){//grid行选择
- this.GridUtil.onGridItemClick(selModel, record);
- },
- getForm: function(btn){
- return btn.ownerCt.ownerCt;
- },
- resize: function(form, grid){
- if(!this.resized && form && grid && form.items.items.length > 0){
- var height = window.innerHeight,
- fh = form.getEl().down('.x-panel-body>.x-column-inner').getHeight();
- if(Ext.isIE){
- height = screen.height*0.75;
- }
- form.setHeight(70 + fh);
- grid.setHeight(height - fh - 70);
- this.resized = true;
- }
- },
- setLoading : function(b) {
- var mask = this.mask;
- if (!mask) {
- this.mask = mask = new Ext.LoadMask(Ext.getBody(), {
- msg : "处理中,请稍后...",
- msgCls : 'z-index:10000;'
- });
- }
- if (b)
- mask.show();
- else
- mask.hide();
- },
- batchGenerateBarcode: function(pr_code,number,batchcode){
- var me=this;
- me.setLoading(true);
- Ext.Ajax.request({
- url : basePath +'scm/reserve/batchGenerateBarcode.action',
- params: {
- pr_code:pr_code,
- number:number,
- batchcode:batchcode
- },
- method : 'post',
- callback : function(options,success,response){
- me.setLoading(false);
- var res = new Ext.decode(response.responseText);
- if(res.success){
- var data = res.data;
- Ext.MessageBox.alert('提示', '条码生成成功!',function(){
- var win = new Ext.window.Window({
- id: 'winBar',
- height: '75%',
- width: '75%',
- maximizable: false,
- title:'<span>条码打印</span>',
- buttonAlign: 'center',
- layout: 'column',
- bodyStyle:"background-color:#F5F5F5;",
- items: [{
- xtype: 'gridpanel',
- id: 'grid',
- anchor : '100% 70%',
- columnWidth:1,
- multiSelect: true,
- multiselected: [],
- forceFit : true,
- checkOnly:true,
- columns: [
- {
- style :"text-align:center",
- text: 'ID',
- width: 0,
- hidden : true,
- dataIndex: 'bar_id',
- ignore: true,
- },{
- style :"text-align:center",
- text: '条码',
- flex : 7,
- dataIndex: 'bar_code',
- logic:"necessaryField",
- editor: {
- xtype: "displayfield",
- hideTrigger: true,
- store: null,
- queryMode: "local"
- }
- },{
- style :"text-align:center",
- text: '数量',
- logic:"necessaryField",
- flex : 3,
- dataIndex: 'bar_remain',
- editor: {
- xtype: "displayfield",
- hideTrigger: true,
- store: null,
- queryMode: "local"
- },
- xtype: 'numbercolumn',
- align: "left",
- format: ""
- }],
- GridUtil: Ext.create('erp.util.GridUtil'),
- listeners:{
- beforeedit:function(editor, e, eOpts){
- return false;//不可编辑
- }
- },
- selType:'checkboxmodel',
- dbfinds: [],
- columnLines: true,
- plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
- clicksToEdit: 10
- }),
- Ext.create('erp.view.core.plugin.CopyPasteMenu')],
- store: new Ext.data.Store({
- fields: ['bar_id', 'bar_code', 'bar_remain'],
- data: []
- }),
- onGridItemClick: function(selModel, record){// grid行选择
- this.GridUtil.onGridItemClick(selModel, record);
- },
- }],
- buttons : [{
- text : '打印条码',
- id : 'printNew',
- iconCls: 'x-button-icon-print',
- disabled : true,
- handler : function(btn) {
- var me = this;
- caller = 'Barcode!BaPrint';
- me.idS = '';
- var lps_Barcaller = 'Barcode!Print';
- var bool = false;
- var grid = Ext.getCmp('grid');
- var items = grid.selModel.getSelection();
- var idArray = [];
- Ext.each(items, function(item, index){
- if(this.data['bar_id'] != null && this.data['bar_id'] != ''
- && this.data['bar_id'] != '0' && this.data['bar_id'] != 0){
- bool = true;
- idArray.push(this.data['bar_id']);
- }
- });
- if(bool){
- var idS = idArray.toString();
- //me.print(idS,lps_Barcaller);
- me.idS = idS;
- me.zplPrint(lps_Barcaller);
- }else{
- showError("没有需要打印的行");
- }
- },
- zplPrint:function(caller){//zpl打印语句
- // 获取选择打印文件,用户选择分辨率,和打印机
- var me = this;
- if(!me.window){
- setup_web_print(function(printers,selected_printer){
- me.window = Ext.create('Ext.window.Window', {
- autoShow: true,
- title: '选择打印模板',
- width: 400,
- height: 300,
- layout: 'anchor',
- id :'template-win4',
- closeAction:'hide',
- items: [{
- anchor:'100% 100%',
- xtype:'form',
- buttonAlign : 'center',
- items:[{
- xtype: 'combo',
- id: 'printers',
- fieldLabel: '打印机列表',
- store: Ext.create('Ext.data.Store', {
- autoLoad: true,
- fields: ['display', 'value'],
- data:printers
- }),
- queryMode: 'local',
- displayField: 'display',
- valueField: 'value',
- width:361,
- allowBlank:false,
- value:selected_printer.uid,
- selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录
- style:'margin-left:15px;margin-top:15px;'
- },{
- xtype: 'combo',
- id: 'dpi',
- fieldLabel: '打印机分辨率',
- style:'margin-left:15px;margin-top:15px;',
- store: Ext.create('Ext.data.Store', {
- fields: ['display', 'value'],
- data : [{"display": '203dpi', "value": '203'},
- {"display": '300dpi', "value": '300'},
- {"display": '600dpi', "value": '600'},
- {"display": '1200dpi', "value": '1200'}]
- }),
- displayField: 'display',
- valueField: 'value',
- queryMode: 'local',
- value:resolutionCookie||'203',
- width:361,
- allowBlank:false,
- selectOnFocus:true//用户不能自己输入,只能选择列表中有的记录
- }]
- }],
- buttonAlign: 'center',
- buttons: [{
- text: '确定',
- handler: function(b) {
- var printers = Ext.getCmp('printers');
- var dpi = Ext.getCmp('dpi');
- if(printers && printers.value!= null){
- me.zebraPrint(caller,printers.value,dpi.value);
- b.ownerCt.ownerCt.close();
- }else{
- alert("请选择打印机 ");
- }
- }
- }, {
- text: '取消',
- handler: function(b) {
- b.ownerCt.ownerCt.close();
- }
- }]
- });
- });
- }else if(me.window.isHidden()){
- me.window.show();
- }
- },
- zebraPrint:function(caller,printer,dpi){
- var me = this;
- var params = new Object();
- params['condition'] = 'bar_id in ('+me.idS +")";
- sendData(caller,printer,dpi,params);
- }
- },
- {
- text : '取消',
- id : 'cancle',
- handler : function(btn) {
- var win = btn.ownerCt.ownerCt;
- win.close();
- }
- }
- ],
- });
- win.show();
- var ids = new Array();
- for(var i= 0;i<data.length;i++){
- ids.push(data[i].BAR_ID);
- }
- me.loadData(ids);
- Ext.getCmp('printNew').enable();
-
- var lps_Barcaller = 'Barcode!Print';
- var grid = Ext.getCmp("grid");
- var items = grid.store.data.items;
- var idArray = [];
- Ext.each(items, function(item, index){
- var id=item.data['bar_id'];
- if(id != null && id != ''&& id != '0' && id != 0){
- idArray.push(id);
- }
- })
- var idS = idArray.toString();
- //me.print(idS,lps_Barcaller);
- me.idS = idS;
- Ext.MessageBox.confirm('提示', '是否自动打印?',function(btn){
- if(btn=='yes'){
- me.zplPrint(lps_Barcaller);
- }
- });
- });
- }else if(res.exceptionInfo){
- showError(res.exceptionInfo);
- return;
- }
- }
- });
- },
- getBarInfo: function(){
- var bar = Ext.getCmp('barCode');
- if(bar && bar.value != null && bar.value != ''){
- var me=this;
- me.setLoading(true);
- Ext.Ajax.request({
- url : basePath +'scm/reserve/getBarInfo.action',
- params: {
- bar_code:bar.value,
- },
- method : 'post',
- callback : function(options,success,response){
- me.setLoading(false);
- var res = new Ext.decode(response.responseText);
- if(res.success){
- var data = res.data;
- var prod = data['prodcode'];
- var batch = data['batchcode'];
- var remain = data['remain'];
- var errMsg = data['errmsg'];
- Ext.getCmp("pr_code").setValue(prod);
- Ext.getCmp("batchCode").setValue(batch);
- Ext.getCmp("pr_partNumber").setValue(remain);
- Ext.getCmp("errMsg").setValue(errMsg);
- Ext.getCmp('errMsg').setFieldStyle('color:#FF0000;');
- if(errMsg == null || errMsg ==''){
- Ext.getCmp("errMsg").setValue('条码: '+Ext.getCmp('barCode').value+' 采集成功!');
- Ext.getCmp('errMsg').setFieldStyle('color:#22C32E;');
- }
- }else if(res.exceptionInfo){
- showError(res.exceptionInfo);
- return;
- }
- }
- });
- }
- } ,
- loadData: function(value) {
- var me = this;
- me.getFieldsValues("barcode",
- 'bar_id, bar_code, bar_remain', "bar_id in (" +value+") order by bar_id desc", [], function(data){
- var datas = Ext.JSON.decode(data), _datas = [];
- var grid = Ext.getCmp('grid');
- if(datas.length > 0) {
- var keys = Ext.Object.getKeys(datas[0]);
- Ext.Array.each(datas, function(d){
- var obj = {};
- Ext.Array.each(keys, function(key){
- obj[key.toLowerCase()] = d[key];
- });
- _datas.push(obj);
- });
- }
- store = grid.getStore();
- _datas.length > 0 && grid.store.loadData(_datas);
- grid.store.each(function(){
- this.dirty = true;
- });
- });
- },
- getFieldsValues: function(caller, fields, condition, data, fn){
- Ext.Ajax.request({
- url : basePath + 'common/getFieldsDatas.action',
- async: false,
- params: {
- caller: caller,
- fields: fields,
- condition: condition
- },
- method : 'post',
- callback : function(options,success,response){
- var localJson = new Ext.decode(response.responseText);
- if(localJson.exceptionInfo){
- showError(localJson.exceptionInfo);return;
- }
- if(localJson.success){
- data = localJson.data;
- fn && fn.call(null, localJson.data);
- }
- }
- });
- },
- zplPrint:function(caller){//zpl打印语句
- // 获取选择打印文件,用户选择分辨率,和打印机
- var me = this;
- if(!me.window){
- setup_web_print(function(printers,selected_printer){
- me.window = Ext.create('Ext.window.Window', {
- autoShow: true,
- title: '选择打印模板',
- width: 400,
- height: 300,
- layout: 'anchor',
- id :'template-win5',
- closeAction:'hide',
- items: [{
- anchor:'100% 100%',
- xtype:'form',
- buttonAlign : 'center',
- items:[{
- xtype: 'combo',
- id: 'printers',
- fieldLabel: '打印机列表',
- store: Ext.create('Ext.data.Store', {
- autoLoad: true,
- fields: ['display', 'value'],
- data:printers
- }),
- queryMode: 'local',
- displayField: 'display',
- valueField: 'value',
- width:361,
- allowBlank:false,
- value:selected_printer.uid,
- selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录
- style:'margin-left:15px;margin-top:15px;'
- },{
- xtype: 'combo',
- id: 'dpi',
- fieldLabel: '打印机分辨率',
- style:'margin-left:15px;margin-top:15px;',
- store: Ext.create('Ext.data.Store', {
- fields: ['display', 'value'],
- data : [{"display": '203dpi', "value": '203'},
- {"display": '300dpi', "value": '300'},
- {"display": '600dpi', "value": '600'},
- {"display": '1200dpi', "value": '1200'}]
- }),
- displayField: 'display',
- valueField: 'value',
- queryMode: 'local',
- value:resolutionCookie||'203',
- width:361,
- allowBlank:false,
- selectOnFocus:true//用户不能自己输入,只能选择列表中有的记录
- }]
- }],
- buttonAlign: 'center',
- buttons: [{
- text: '确定',
- handler: function(b) {
- var printers = Ext.getCmp('printers');
- var dpi = Ext.getCmp('dpi');
- if(printers && printers.value!= null){
- me.zebraPrint(caller,printers.value,dpi.value);
- b.ownerCt.ownerCt.close();
- }else{
- alert("请选择打印机 ");
- }
- }
- }, {
- text: '取消',
- handler: function(b) {
- b.ownerCt.ownerCt.close();
- }
- }]
- });
- });
- }else if(me.window.isHidden()){
- me.window.show();
- }
- },
- zebraPrint:function(caller,printer,dpi){
- var me = this;
- var params = new Object();
- params['condition'] = 'bar_id in ('+me.idS +")";
- sendData(caller,printer,dpi,params);
- }
- });
|