Example #1
0
    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
        })
Example #2
0
    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
        })
Example #3
0
File: auditor.py Project: uve/shiva
    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
         
            })
Example #4
0
File: prnuser.py Project: uve/shiva
    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,)
                     })
Example #5
0
File: openday.py Project: uve/shiva
    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),
        })
Example #6
0
File: auditor.py Project: uve/shiva
    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
        })
Example #7
0
    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
        })
Example #8
0
    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
                    })
Example #9
0
    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,
            )
        })
Example #10
0
    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,
            )
        })
Example #11
0
    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      
             })
Example #12
0
File: openday.py Project: uve/shiva
    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),
                    })