def get(self): loader = template.Loader(os.path.join(ROOT_DIR, 'revision')) result = loader.load("saldo_gap.js").generate() all_departs = RC.get_current(rc=self.session.rc).depart_cls # кнопки с департаментами РЦ departs = [{ "id": "%s" % i.id, "type": "button", "text": i.name, "action": "change_depart" } for i in all_departs] self.write({ 'def': [ #{'type':"button", 'text':'Печать', 'img':"print.gif", 'imgdis':"print_dis.gif", 'action':'do_print'}, #{'type':"separator"}, { 'type': "button", 'text': 'Excel (кратко)', 'action': 'do_csv', 'img': "excel24.png", 'imgdis': "excel24g.png" }, { 'type': "button", 'text': 'Excel (подробно)', 'action': 'do_csv_full', 'img': "excel24.png", 'imgdis': "excel24g.png" }, { 'type': "separator" }, { 'type': "text", 'text': "Подразделение:" }, { 'id': 'departs', 'type': "buttonSelect", 'mode': 'select', 'selected': all_departs[0].id, 'items': departs }, '''<table style='width:100%'> <tr><td colspan="2"><div id='sw_grid1' style="width:100%; height:250px;"></div></td></tr> <tr><td colspan="2"><span>Детализация:</span></td></tr> <tr><td colspan="2"><div id='sw_grid2' style="width:100%; height:300px;"></div></td></tr> </table> ''' ], 'cmd': result })
def get(self): # кнопки с департаментами РЦ deps = RC.get_current(rc=self.session.rc).depart_cls bdep = [{ "id": "dep%s" % i.id, "type": "button", "text": i.name, "action": "do_tool_2" } for i in deps] self.write({ 'def': [{ 'type': "text", 'text': " Подразделение:" }, { 'id': 'bdep', 'type': "buttonSelect", 'text': '-', 'items': bdep }, { 'type': "separator" }, { 'type': "button", 'img': "excel24.png", 'imgdis': "excel24g.png", 'action': 'do_tool_csv', 'title': 'Сохранить в CSV' }], 'cmd': '''var sw_grid = new dhtmlXGridObject({ parent: window.app.Panels["def"], columns:[ { type:"ro", sort:"str", align:"left", width:"*", label:"Сотрудник" }, { type:"ro", sort:"str", align:"left", width:"180", label:"Основная роль" }, { type:"ro", sort:"str", align:"left", width:"180", label:"Текущая роль" } ]}); window.Cleaner.push(sw_grid); window.do_tool_csv = function(){ self.GridCSV(sw_grid) } window.ids=0; window.do_tool_2 = function(ids2){ window.ids=ids2.substr(3); var text = self.Toolbars["def"].getListOptionText("bdep", ids2); self.SetTitle('Список сотрудников отдела: "'+text+'"'); self.Toolbars["def"].setItemText("bdep", text); self.LoadGrid(sw_grid, "/personnel/personnel/data?depart="+window.ids); } window.do_tool_2("dep%s");''' % deps[0].id })
def get(self): #self.execute("select id, name from tehno.type_tovar where hide=1 order by name") #all_types = self.cursor.fetchall() loader = template.Loader(os.path.join(ROOT_DIR, 'revision')) result = loader.load("auditor.js").generate()#all_types=all_types) all_departs = RC.get_current(rc=self.session.rc).depart_cls # кнопки с департаментами РЦ departs = [{"id":"%s" % i.id, "type":"button", "text":i.name} for i in all_departs] self.write({'def':[ {'type':"text", 'text':"Подразделение:"}, {'id':'departs', 'type':"buttonSelect", 'mode':'select', 'selected': all_departs[0].id, 'items':departs}, {'type':"separator"}, {'type':"button", 'text':'Печать', 'img':"print.gif", 'imgdis':"print_dis.gif", 'action':'do_tool_print'}, {'type':"separator"}, {'type':"button", 'img':"excel24.png", 'imgdis':"excel24g.png", 'action':'do_tool_revision', 'text':'Отправить задание на терминал'}, '''<table style='width:100%'> <tr> <!--<td style="width:200px;"><select style="width:100%;" id="combo_zone2" name="alfa1"></select></td>--> <td style="width:400px;"><select style="width:100%;" id="combo_zone1" name="alfa1"></select></td> <td style="width:150px;">Поиск продукта</td> </tr> <tr> <td ><span>Список ячеек с продуктом:</span></td> <td style="padding-left: 10px;"><span>Товарные остатки:</span> <b id="tovarsaldo"></b> </td> </tr> <tr><td colspan="2"><div id='sw_grid1' style="width:100%; height:250px;"></div></td></tr> <tr><td colspan="2"><span>История ячейки:</span></td></tr> <tr><td colspan="2"><div id='sw_grid2' style="width:100%; height:300px;"></div></td></tr> </table> '''], 'cmd': result })
def get(self): # кнопки с департаментами РЦ deps = RC.get_current(rc=self.session.rc).depart_cls bdep = [{"id":"dep%s" % i.id, "type":"button", "text":i.name, "action":"do_tool_2"} for i in deps] self.write({'def':[{'type':"button", 'text':'Печать', 'img':"print.gif", 'imgdis':"print_dis.gif", 'action':'do_tool_1'}, {'type':"separator"}, {'type':"button", 'img':"excel24.png", 'imgdis':"excel24g.png", 'action':'do_tool_csv', 'title':'Сохранить в CSV'}, {'type':"separator"}, {'type':"text", 'text':" Подразделение:"}, {'id':'bdep', 'type':"buttonSelect", 'text':'-', 'items':bdep}, ], 'cmd':'''var sw_grid = new dhtmlXGridObject({ parent: window.app.Panels["def"], columns:[ { type:"ro", sort:"str", align:"left", width:"*", label:"Сотрудник" }, { type:"ro", sort:"str", align:"left", width:"180", label:"Основная роль" }, { type:"ro", sort:"str", align:"left", width:"180", label:"Текущая роль" } ]}); window.Cleaner.push(sw_grid); window.ids=0; window.do_tool_csv = function(){ self.GridCSV(sw_grid) } window.do_tool_1 = function(){ var idr = sw_grid.getSelectedId(); if(!idr) self.AddMessage('Выберите сотрудника!',1); else self.PrintURL(%s,%s,'/personnel/prnuser/data?uid='+idr); } window.do_tool_2 = function(ids2){ window.ids=ids2.substr(3); var text = self.Toolbars["def"].getListOptionText("bdep", ids2); self.SetTitle('Печать бэйджика сотрудникам отдела: "'+text+'"'); self.Toolbars["def"].setItemText("bdep", text); self.LoadGrid(sw_grid, "/personnel/prnuser/data?depart="+window.ids); } window.do_tool_2("dep%s");''' % (badge_size[0], badge_size[1], deps[0].id,) })
def get(self): # кнопки с департаментами РЦ deps = RC.get_current(rc=self.session.rc).depart_cls bdep = [{ "id": "dep%s" % i.id, "type": "button", "text": i.name, "action": "do_tool_3" } for i in deps] period = Period.get_last_smen(rc=self.session.rc) tsmen = [] for i in TypeSmena.select(): x = { "id": "tsmen%s" % i.id, "type": "button", "text": i.name, "action": "do_tool_2" } if period and i.id == period.tsmena: x['selected'] = "true" tsmen.append(x) pid = period.id if period else 0 pts = period.tsmena if period else 1 pids = 'Правка смены: %s' % period.date.strftime( "%d.%m.%Y %H:%M") if pid else 'Открытие смены' rols = ','.join('[%s,"%s"]' % (i.id, i.name) for i in Role.select('id<>1')) self.write({ 'def': [ { 'type': "button", 'img': "accept24.png", 'imgdis': "accept24g.png", 'action': 'do_tool_1', 'text': 'Сохранить' if pid else "Открыть смену" }, { 'type': "separator" }, { 'type': "text", 'text': " Подразделение:" }, { 'id': 'bdep', 'type': "buttonSelect", 'text': '-', 'items': bdep }, { 'type': "separator" }, { 'type': "text", 'text': " Тип смены:" }, { 'id': 'tbsmen', 'type': "buttonSelect", 'text': 'Днев', 'items': tsmen, 'enabled': "false" if pid else "true" }, { 'type': "separator" }, { 'type': "button", 'img': "excel24.png", 'imgdis': "excel24g.png", 'action': 'do_tool_csv', 'title': 'Сохранить в CSV' }, ], 'cmd': '''var sw_grid = new dhtmlXGridObject({ parent: window.app.Panels["def"], columns:[ { type:"ro", sort:"str", align:"left", width:"180", label:"Сотрудник" }, { type:"coro", sort:"str", align:"left", width:"*", label:'Исполняемая роль в смене' }, { type:"ch", sort:"str", align:"center", width:"75", label:"В смене" } ]}); var combo = sw_grid.getCombo(1); var cmb = [%s]; for(var i in cmb) combo.put(cmb[i][0],cmb[i][1]); window.Cleaner.push(sw_grid); window.do_tool_csv = function(){ self.GridCSV(sw_grid) } window.ids=%s; //tsmen window.ids2=%s; //depart window.ids3=%s; //period (pid) //save window.do_tool_1 = function(){ sw_grid.editStop(); var dat="tsmen="+window.ids+"&period="+window.ids3; sw_grid.forEachRow(function(ids2){ if(!parseInt(sw_grid.cells(ids2, 2).getValue())){ dat=dat+"&"+ids2+"=0"; }else{ dat=dat+"&"+ids2+"="+parseInt(sw_grid.cells(ids2, 1).getValue()); } }); self.NetSendAsync("/personnel/openday/data", dat,function(resp) { self.LoadGrid(sw_grid, "/personnel/openday/data?period="+window.ids3+"&depart="+window.ids2); }); } //tsmen window.do_tool_2 = function(ids){ window.ids=ids.substr(5); var text = self.Toolbars["def"].getListOptionText("tbsmen", ids); self.Toolbars["def"].setItemText("tbsmen", text); self.Toolbars["def"].setListOptionSelected("tbsmen", ids); } window.do_tool_2("tsmen"+window.ids); //depart window.do_tool_3 = function(ids2){ window.ids2=ids2.substr(3); var text = self.Toolbars["def"].getListOptionText("bdep", ids2); self.Toolbars["def"].setItemText("bdep", text); self.LoadGrid(sw_grid, "/personnel/openday/data?period="+window.ids3+"&depart="+window.ids2); } self.SetTitle("%s"); window.do_tool_3("dep"+window.ids2);''' % (rols, pts, deps[0].id, pid, pids), })
def get(self): #self.execute("select id, name from tehno.type_tovar where hide=1 order by name") #all_types = self.cursor.fetchall() loader = template.Loader(os.path.join(ROOT_DIR, 'revision')) result = loader.load("auditor.js").generate() #all_types=all_types) all_departs = RC.get_current(rc=self.session.rc).depart_cls # кнопки с департаментами РЦ departs = [{ "id": "%s" % i.id, "type": "button", "text": i.name } for i in all_departs] self.write({ 'def': [{ 'type': "text", 'text': "Подразделение:" }, { 'id': 'departs', 'type': "buttonSelect", 'mode': 'select', 'selected': all_departs[0].id, 'items': departs }, { 'type': "separator" }, { 'type': "button", 'text': 'Печать', 'img': "print.gif", 'imgdis': "print_dis.gif", 'action': 'do_tool_print' }, { 'type': "separator" }, { 'type': "button", 'img': "excel24.png", 'imgdis': "excel24g.png", 'action': 'do_tool_revision', 'text': 'Отправить задание на терминал' }, '''<table style='width:100%'> <tr> <!--<td style="width:200px;"><select style="width:100%;" id="combo_zone2" name="alfa1"></select></td>--> <td style="width:400px;"><select style="width:100%;" id="combo_zone1" name="alfa1"></select></td> <td style="width:150px;">Поиск продукта</td> </tr> <tr> <td ><span>Список ячеек с продуктом:</span></td> <td style="padding-left: 10px;"><span>Товарные остатки:</span> <b id="tovarsaldo"></b> </td> </tr> <tr><td colspan="2"><div id='sw_grid1' style="width:100%; height:250px;"></div></td></tr> <tr><td colspan="2"><span>История ячейки:</span></td></tr> <tr><td colspan="2"><div id='sw_grid2' style="width:100%; height:300px;"></div></td></tr> </table> '''], 'cmd': result })
def get(self): out = self.cursor.var(cx_Oracle.CURSOR) all_tovar_types = self.proc("shiva.GetTovarTypeList", [self.session.rc, out]) # список типов товара tovar_types = [{ "id": i[0], "type": "button", "text": i[1] } for i in all_tovar_types[-1].fetchall()] all_storage_types = self.proc("shiva.GetStorageTypeList", [self.session.rc, out]) # список типов хранения storage_types = [{ "id": i[0], "type": "button", "text": i[1] } for i in all_storage_types[-1].fetchall()] res = self.execute("select id,name from vw_iq_status_cell") all_status = res.fetchall() all_items = [ { 'type': "button", 'text': 'Печать', 'img': "print.gif", 'imgdis': "print_dis.gif", 'action': 'do_print' }, { 'type': "button", 'text': 'Печать партии', 'img': "print.gif", 'imgdis': "print_dis.gif", 'action': 'do_print_party' }, { 'type': "button", 'text': 'Выделенные в CSV', 'img': "excel24.png", 'imgdis': "excel24g.png", 'action': 'do_csv', 'title': 'Сохранить в CSV' }, { 'type': "button", 'text': 'Все в CSV', 'img': "excel24.png", 'imgdis': "excel24g.png", 'action': 'do_csv_all', 'title': 'Сохранить все в CSV' }, ] edit_tools = [ { 'type': "button", 'text': 'Правка', 'img': "edit24.png", 'imgdis': "edit24g.png", 'action': 'do_tool_edit' }, { 'type': "separator" }, { 'type': "button", 'text': "Заблокировать", 'action': 'do_block', 'title': 'Заблокировать' }, { 'type': "button", 'text': "Разблокировать", 'action': 'do_unblock', 'title': 'Разблокировать' }, { 'type': "separator" }, ] if self.session.role != "26": all_items = edit_tools + all_items all_departs = RC.get_current(rc=self.session.rc).depart_cls # кнопки с департаментами РЦ departs = [{ "id": "%s" % i.id, "type": "button", "text": i.name } for i in all_departs] # фильтр ячеек is_all = [ { "id": "0", "type": "button", "text": "Все" }, { "id": "1", "type": "button", "text": "Заполненные" }, { "id": "2", "type": "button", "text": "Пустые" }, ] # фильтр ячеек is_block = [ { "id": "0", "type": "button", "text": "Все" }, { "id": "1", "type": "button", "text": "Не заблокированные" }, { "id": "2", "type": "button", "text": "Заблокированные" }, ] # годен до godenDo = [ { "id": "0", "type": "button", "text": "Не выбрано" }, { "id": "90", "type": "button", "text": "Истекает не позже 90 дней" }, { "id": "180", "type": "button", "text": "Истекает не позже 180 дней" }, ] loader = template.Loader(os.path.join(ROOT_DIR, 'warehouse')) result = loader.load("wareaddr.js").generate(departs=departs[0], is_all=is_all[0], is_block=is_block[0], all_status=all_status, godenDo=godenDo[0]) self.write({ 'def': [ { 'id': 'bdep', 'type': "buttonSelect", 'text': 'Режимы', 'items': all_items }, { 'type': "separator" }, { 'type': "text", 'text': "Подразделение:" }, { 'id': 'departs', 'type': "buttonSelect", 'mode': 'select', 'selected': all_departs[0].id, 'items': departs }, { 'type': "separator" }, { 'type': "text", 'text': "Ячейки:" }, { 'id': 'is_all', 'type': "buttonSelect", 'mode': 'select', 'selected': '1', 'items': is_all }, { 'type': "separator" }, { 'type': "text", 'text': "Блокировки:" }, { 'id': 'is_block', 'type': "buttonSelect", 'mode': 'select', 'selected': '0', 'items': is_block }, { 'type': "separator" }, { 'type': "text", 'text': "Срок Годности:" }, { 'id': 'godenDo', 'type': "buttonSelect", 'mode': 'select', 'selected': '0', 'items': godenDo }, { 'type': "separator" }, # {'type':"text", 'text':"Типы товара:"}, # {'id':'is_block', 'type':"buttonSelect", 'mode':'select', 'selected': '0', 'items':tovar_types}, # {'type':"separator"}, # {'type':"text", 'text':"Типы хранения:"}, # {'id':'is_block', 'type':"buttonSelect", 'mode':'select', 'selected': '0', 'items':storage_types}, # {'type':"separator"}, { 'type': "separator" }, { 'type': "button", 'img': "restart.png", 'action': 'update', 'text': 'Обновить' }, ], 'one': [{ 'type': "button", 'text': 'Сохранить', 'img': "accept24.png", 'imgdis': "accept24g.png", 'action': 'do_save' }, { 'type': "button", 'text': 'Отмена', 'img': "delete24.png", 'imgdis': "delete24g.png", 'action': 'do_cancel' }, '<div id="sw_form" />'], 'cmd': result })
def get(self): roles = '{value:"0",text:"Не определена"},' + ','.join('{value:"%s",text:"%s"}' % (i.id, i.name) for i in Role.select()) deps = RC.get_current(rc=self.session.rc).depart_cls deps1 = ','.join('{value:"%s",text:"%s"}' % (i.id, i.name) for i in deps) deps2 = [{"id":"dep%s" % i.id, "type":"button", "text":i.name, "action":"do_tool_6"} for i in deps] self.write({'def':[{'type':"button", 'text':'Новый', 'img':"add24.png", 'imgdis':"add24g.png", 'action':'do_tool_1'}, {'type':"button", 'text':'Правка', 'img':"edit24.png", 'imgdis':"edit24g.png", 'action':'do_tool_2'}, {'type':"button", 'text':'Удалить', 'img':"delete24.png", 'imgdis':"delete24g.png", 'action':'do_tool_3'}, {'type':"separator"}, {'type':"button", 'img':"excel24.png", 'imgdis':"excel24g.png", 'action':'do_tool_csv', 'title':'Сохранить в CSV'}, {'type':"separator"}, {'type':"text", 'text':" Подразделение:"}, {'id':"btndep", 'type':"buttonSelect", 'text':'-', 'items':deps2}], 'one':[{'type':"button", 'text':'Сохранить', 'img':"accept24.png", 'imgdis':"accept24g.png", 'action':'do_tool_4'}, {'type':"button", 'text':'Отмена', 'img':"delete24.png", 'imgdis':"delete24g.png", 'action':'do_tool_5'}, '<div id="sw_form" />'], 'cmd':'''var sw_grid = new dhtmlXGridObject({ parent: window.app.Panels["def"], columns:[ { type:"ro", sort:"str", align:"left", width:"*", label:"Сотрудник" }, { type:"ro", sort:"str", align:"left", width:"180", label:"Основная роль" }, { type:"ch", sort:"str", align:"center", width:"75", label:"Активность" } ]}); window.Cleaner.push(sw_grid); window.do_tool_csv = function(){ self.GridCSV(sw_grid) } var swForm = new dhtmlXForm("sw_form", [ {type:"input", name:"ulogin", bind:"ulogin", label:"Логин:", value: "", validate:"NotEmpty"}, {type:"input", name:"uname", bind:"uname", label:"ФИО:", value: ""}, {type:"password", name:"passw", bind:"passw", label:"Пароль:", value:"", validate:"NotEmpty"}, {type:"select", name:"urole", bind:"urole", label:"Основная роль", options:[''' + roles + ''']}, {type:"select", name:"udepart", bind:"udepart", label:"Подразделение", options:[''' + deps1 + ''']}, ]); window.Cleaner.push(swForm); // Всё это потому, что DHTMLX мутно и нестабильно работает с формами var frm_ulogin = swForm.getInput("ulogin"); var frm_uname = swForm.getInput("uname"); var frm_passw = swForm.getInput("passw"); window.ids=0; //Создать + Правка window.do_tool_12 = function(ids){ swForm.ids=ids; if(!!ids){ swForm.load("/personnel/epersonnel/data?user="******"urole", 0); swForm.setItemValue("passw", ""); swForm.setItemValue("udepart", 0); } self.ShowPanel("one"); } //Создать window.do_tool_1 = function(){window.do_tool_12(); } //Правка window.do_tool_2 = function(){ var ids = sw_grid.getSelectedRowId(); if (!ids){ app.AddMessage('Выберите сотрудника',2) } else { window.do_tool_12(ids) } } sw_grid.attachEvent("onRowDblClicked", do_tool_2); //Удалить window.do_tool_3 = function(){ var ids = sw_grid.getSelectedRowId(); if (!ids){ app.AddMessage('Выберите сотрудника',2); }else{ self.NetSend("/personnel/epersonnel/data", 'uid='+ids); self.LoadGrid(sw_grid, "/personnel/epersonnel/data?depart="+window.ids); } } //OK - ввели нового сотрудника window.do_tool_4 = function(){ if (frm_passw.value.length < 1 || frm_passw.value.length > 32) { app.AddMessage('Недопустимая длина пароля',2); frm_passw.focus(); return 0; } if (frm_ulogin.value.length < 2 || frm_ulogin.value.length > 32) { app.AddMessage('Недопустимая длина логина',2); frm_ulogin.focus(); return 0; } // Костыль к DHTMLX, иначе никак swForm.setItemValue("passw", frm_passw.value); var r = /\w/i; swForm.validate(); var dt=swForm.Serialize(); if(!!swForm.ids){ dt=dt+"&uid="+swForm.ids; } self.NetSend("/personnel/epersonnel/data", dt); self.ShowPanel("def"); self.LoadGrid(sw_grid, "/personnel/epersonnel/data?depart="+window.ids); } //Cancel window.do_tool_5 = function(){ self.ShowPanel("def") } //DEP window.do_tool_6 = function(ids){ if(ids.substr(0, 3) == "dep"){ var dep = self.Toolbars["def"].getListOptionText("btndep", ids); self.SetTitle('Управление персоналом: "'+dep+'"'); self.Toolbars["def"].setItemText("btndep", dep); window.ids=ids.substr(3); self.LoadGrid(sw_grid, "/personnel/epersonnel/data?depart="+window.ids); } } window.do_tool_6("dep%s");''' % deps[0].id })
def get(self): # кнопки с департаментами РЦ deps = RC.get_current(rc=self.session.rc).depart_cls bdep = [{ "id": "dep%s" % i.id, "type": "button", "text": i.name, "action": "do_tool_2" } for i in deps] rols = ','.join('[%s,"%s"]' % (i.id, i.name) for i in Role.select('id<>1')) self.write({ 'def': [{ 'type': "button", 'text': 'Сохранить', 'img': "save24.png", 'imgdis': "save24g.png", 'action': 'do_tool_1' }, { 'type': "separator" }, { 'type': "text", 'text': " Подразделение:" }, { 'id': 'bdep', 'type': "buttonSelect", 'text': '-', 'items': bdep }], 'cmd': '''var sw_grid = new dhtmlXGridObject({ parent: self.Panels["def"], columns:[ { type:"ro", sort:"str", align:"left", width:"*", label:"Сотрудник" }, { type:"coro", sort:"str", align:"left", width:"200", label:"Исполняемая роль" } ]}); var combo = sw_grid.getCombo(1); var cmb = [%s]; for(var i in cmb) combo.put(cmb[i][0],cmb[i][1]); window.Cleaner.push(sw_grid); window.ids=0; window.do_tool_1 = function(){ var dt=""; sw_grid.forEachRow(function(ids){ ids2=parseInt(sw_grid.cells(ids, 1).getValue()); if(!!ids2){ if(!!dt){dt+='&'} dt=dt+ids+"="+ids2; } }); self.NetSend("/personnel/roleoper/data", dt); self.LoadGrid(sw_grid, "/personnel/roleoper/data?depart="+window.ids); } window.do_tool_2 = function(ids2){ window.ids=ids2.substr(3); var text = self.Toolbars["def"].getListOptionText("bdep", ids2); self.SetTitle('Основные роли сотрудников отдела: "'+text+'"'); self.Toolbars["def"].setItemText("bdep", text); self.LoadGrid(sw_grid, "/personnel/roleoper/data?depart="+window.ids); } window.do_tool_2("dep%s");''' % ( rols, deps[0].id, ) })
def get(self): # кнопки с департаментами РЦ deps = RC.get_current(rc=self.session.rc).depart_cls bdep = [{ "id": "dep%s" % i.id, "type": "button", "text": i.name, "action": "do_tool_2" } for i in deps] self.write({ 'def': [ { 'type': "button", 'text': 'Печать', 'img': "print.gif", 'imgdis': "print_dis.gif", 'action': 'do_tool_1' }, { 'type': "separator" }, { 'type': "button", 'img': "excel24.png", 'imgdis': "excel24g.png", 'action': 'do_tool_csv', 'title': 'Сохранить в CSV' }, { 'type': "separator" }, { 'type': "text", 'text': " Подразделение:" }, { 'id': 'bdep', 'type': "buttonSelect", 'text': '-', 'items': bdep }, ], 'cmd': '''var sw_grid = new dhtmlXGridObject({ parent: window.app.Panels["def"], columns:[ { type:"ro", sort:"str", align:"left", width:"*", label:"Сотрудник" }, { type:"ro", sort:"str", align:"left", width:"180", label:"Основная роль" }, { type:"ro", sort:"str", align:"left", width:"180", label:"Текущая роль" } ]}); window.Cleaner.push(sw_grid); window.ids=0; window.do_tool_csv = function(){ self.GridCSV(sw_grid) } window.do_tool_1 = function(){ var idr = sw_grid.getSelectedId(); if(!idr) self.AddMessage('Выберите сотрудника!',1); else self.PrintURL(%s,%s,'/personnel/prnuser/data?uid='+idr); } window.do_tool_2 = function(ids2){ window.ids=ids2.substr(3); var text = self.Toolbars["def"].getListOptionText("bdep", ids2); self.SetTitle('Печать бэйджика сотрудникам отдела: "'+text+'"'); self.Toolbars["def"].setItemText("bdep", text); self.LoadGrid(sw_grid, "/personnel/prnuser/data?depart="+window.ids); } window.do_tool_2("dep%s");''' % ( badge_size[0], badge_size[1], deps[0].id, ) })
def get(self): out = self.cursor.var(cx_Oracle.CURSOR) all_tovar_types = self.proc("shiva.GetTovarTypeList", [self.session.rc, out]) # список типов товара tovar_types = [{"id": i[0], "type":"button", "text": i[1]} for i in all_tovar_types[-1].fetchall()] all_storage_types = self.proc("shiva.GetStorageTypeList", [self.session.rc, out]) # список типов хранения storage_types = [{"id": i[0], "type":"button", "text":i[1]} for i in all_storage_types[-1].fetchall()] res = self.execute("select id,name from vw_iq_status_cell") all_status = res.fetchall() all_items = [ {'type':"button", 'text':'Печать', 'img':"print.gif", 'imgdis':"print_dis.gif", 'action':'do_print'}, {'type':"button", 'text':'Печать партии', 'img':"print.gif", 'imgdis':"print_dis.gif", 'action':'do_print_party'}, {'type':"button", 'text':'Выделенные в CSV', 'img':"excel24.png", 'imgdis':"excel24g.png", 'action':'do_csv', 'title':'Сохранить в CSV'}, {'type':"button", 'text':'Все в CSV', 'img':"excel24.png", 'imgdis':"excel24g.png", 'action':'do_csv_all', 'title':'Сохранить все в CSV'}, ] edit_tools = [ {'type':"button", 'text':'Правка', 'img':"edit24.png", 'imgdis':"edit24g.png", 'action':'do_tool_edit'}, {'type':"separator"}, {'type':"button", 'text':"Заблокировать", 'action':'do_block', 'title':'Заблокировать'}, {'type':"button", 'text':"Разблокировать", 'action':'do_unblock', 'title':'Разблокировать'}, {'type':"separator"}, ] if self.session.role != "26": all_items = edit_tools + all_items all_departs = RC.get_current(rc=self.session.rc).depart_cls # кнопки с департаментами РЦ departs = [{"id":"%s" % i.id, "type":"button", "text":i.name} for i in all_departs] # фильтр ячеек is_all = [ {"id":"0", "type":"button", "text":"Все"}, {"id":"1", "type":"button", "text":"Заполненные"}, {"id":"2", "type":"button", "text":"Пустые"}, ] # фильтр ячеек is_block = [{"id":"0", "type":"button", "text":"Все"}, {"id":"1", "type":"button", "text":"Не заблокированные"}, {"id":"2", "type":"button", "text":"Заблокированные"}, ] # годен до godenDo = [{"id":"0", "type":"button", "text":"Не выбрано"}, {"id":"90", "type":"button", "text":"Истекает не позже 90 дней"}, {"id":"180", "type":"button", "text":"Истекает не позже 180 дней"}, ] loader = template.Loader(os.path.join(ROOT_DIR, 'warehouse')) result = loader.load("wareaddr.js").generate(departs=departs[0], is_all=is_all[0], is_block=is_block[0], all_status=all_status, godenDo=godenDo[0]) self.write({'def':[ {'id':'bdep', 'type':"buttonSelect", 'text':'Режимы', 'items': all_items }, {'type':"separator"}, {'type':"text", 'text':"Подразделение:"}, {'id':'departs', 'type':"buttonSelect", 'mode':'select', 'selected': all_departs[0].id, 'items':departs}, {'type':"separator"}, {'type':"text", 'text':"Ячейки:"}, {'id':'is_all', 'type':"buttonSelect", 'mode':'select', 'selected': '1', 'items':is_all}, {'type':"separator"}, {'type':"text", 'text':"Блокировки:"}, {'id':'is_block', 'type':"buttonSelect", 'mode':'select', 'selected': '0', 'items':is_block}, {'type':"separator"}, {'type':"text", 'text':"Срок Годности:"}, {'id':'godenDo', 'type':"buttonSelect", 'mode':'select', 'selected': '0', 'items':godenDo}, {'type':"separator"}, # {'type':"text", 'text':"Типы товара:"}, # {'id':'is_block', 'type':"buttonSelect", 'mode':'select', 'selected': '0', 'items':tovar_types}, # {'type':"separator"}, # {'type':"text", 'text':"Типы хранения:"}, # {'id':'is_block', 'type':"buttonSelect", 'mode':'select', 'selected': '0', 'items':storage_types}, # {'type':"separator"}, {'type':"separator"}, {'type':"button", 'img':"restart.png", 'action':'update', 'text':'Обновить'}, ], 'one':[{'type':"button", 'text':'Сохранить', 'img':"accept24.png", 'imgdis':"accept24g.png", 'action':'do_save'}, {'type':"button", 'text':'Отмена', 'img':"delete24.png", 'imgdis':"delete24g.png", 'action':'do_cancel'}, '<div id="sw_form" />'], 'cmd': result })
def get(self): # кнопки с департаментами РЦ deps = RC.get_current(rc=self.session.rc).depart_cls bdep = [{"id":"dep%s" % i.id, "type":"button", "text":i.name, "action":"do_tool_3"} for i in deps] period = Period.get_last_smen(rc=self.session.rc) tsmen = [] for i in TypeSmena.select(): x = {"id":"tsmen%s" % i.id, "type":"button", "text":i.name, "action":"do_tool_2"} if period and i.id == period.tsmena: x['selected'] = "true" tsmen.append(x) pid = period.id if period else 0 pts = period.tsmena if period else 1 pids = 'Правка смены: %s' % period.date.strftime("%d.%m.%Y %H:%M") if pid else 'Открытие смены' rols = ','.join('[%s,"%s"]' % (i.id, i.name) for i in Role.select('id<>1')) self.write({'def':[{'type':"button", 'img':"accept24.png", 'imgdis':"accept24g.png", 'action':'do_tool_1', 'text':'Сохранить' if pid else "Открыть смену"}, {'type':"separator"}, {'type':"text", 'text':" Подразделение:"}, {'id':'bdep', 'type':"buttonSelect", 'text':'-', 'items':bdep}, {'type':"separator"}, {'type':"text", 'text':" Тип смены:"}, {'id':'tbsmen', 'type':"buttonSelect", 'text':'Днев', 'items':tsmen, 'enabled':"false" if pid else "true"}, {'type':"separator"}, {'type':"button", 'img':"excel24.png", 'imgdis':"excel24g.png", 'action':'do_tool_csv', 'title':'Сохранить в CSV'}, ], 'cmd':'''var sw_grid = new dhtmlXGridObject({ parent: window.app.Panels["def"], columns:[ { type:"ro", sort:"str", align:"left", width:"180", label:"Сотрудник" }, { type:"coro", sort:"str", align:"left", width:"*", label:'Исполняемая роль в смене' }, { type:"ch", sort:"str", align:"center", width:"75", label:"В смене" } ]}); var combo = sw_grid.getCombo(1); var cmb = [%s]; for(var i in cmb) combo.put(cmb[i][0],cmb[i][1]); window.Cleaner.push(sw_grid); window.do_tool_csv = function(){ self.GridCSV(sw_grid) } window.ids=%s; //tsmen window.ids2=%s; //depart window.ids3=%s; //period (pid) //save window.do_tool_1 = function(){ sw_grid.editStop(); var dat="tsmen="+window.ids+"&period="+window.ids3; sw_grid.forEachRow(function(ids2){ if(!parseInt(sw_grid.cells(ids2, 2).getValue())){ dat=dat+"&"+ids2+"=0"; }else{ dat=dat+"&"+ids2+"="+parseInt(sw_grid.cells(ids2, 1).getValue()); } }); self.NetSendAsync("/personnel/openday/data", dat,function(resp) { self.LoadGrid(sw_grid, "/personnel/openday/data?period="+window.ids3+"&depart="+window.ids2); }); } //tsmen window.do_tool_2 = function(ids){ window.ids=ids.substr(5); var text = self.Toolbars["def"].getListOptionText("tbsmen", ids); self.Toolbars["def"].setItemText("tbsmen", text); self.Toolbars["def"].setListOptionSelected("tbsmen", ids); } window.do_tool_2("tsmen"+window.ids); //depart window.do_tool_3 = function(ids2){ window.ids2=ids2.substr(3); var text = self.Toolbars["def"].getListOptionText("bdep", ids2); self.Toolbars["def"].setItemText("bdep", text); self.LoadGrid(sw_grid, "/personnel/openday/data?period="+window.ids3+"&depart="+window.ids2); } self.SetTitle("%s"); window.do_tool_3("dep"+window.ids2);''' % (rols, pts, deps[0].id, pid, pids), })