Пример #1
0
 def ajaxAddData(self,code,val,dbeg,dend,wid,objid):
     try: 
         if objid == 'null':
             data = self.dbExecC(sql='select * from K_WARES_DATA_INS(?,?,?,?,?)',params=[wid,code,val,dbeg,dend],fetch='one')
         else:
             data = self.dbExecC(sql='select * from K_WARES_DATA_OBJ_INS(?,?,?,?,?,?)',params=[wid,code,val,dbeg,dend,objid],fetch='one')
     except FBExc, exc: return self.pyDumps({'errMes':exc[1]})
     return self.pyDumps(data=data,ext_data={'CODE':pu.convToWin(code),'VALUE':pu.convToWin(val),'DBEG':dbeg,'DEND':dend})
Пример #2
0
 def ajaxCategoryAddEdit(self, **kwargs):
     name = unicode(kwargs['Name'], "utf-8").encode("windows-1251")
     res = self.dbExec(sql='select * from CONTRACTORS_CATEGORY_INS_UPD(?,?,?,?,?,?,?,?,?,?,?)',
                 params=[self.ajaxValidate(kwargs['catid']),
                         self.ajaxValidate(name),
                         None,
                         None,
                         None,
                         self.ajaxValidate(kwargs['Higher']),
                         '0',
                         str(self.ajaxValidate(kwargs['ForOwner'])),
                         1,
                         self.ajaxValidate(pu.convToWin(kwargs['Code'])),
                         self.ajaxValidate(pu.convToWin(kwargs['ObjTypes']))], 
                 fetch='one')
     return self.pyDumps(res)
Пример #3
0
 def ajaxAddRecipeFull(self,**kwargs):
     t=self.trans()
     recipe = self.addRecipe(kwargs['waresid'],
                             kwargs['name'],
                             kwargs['amount'],
                             kwargs['typerec'],
                             kwargs['active'],
                             kwargs['description'],
                             kwargs['dateb'],
                             kwargs['datee'],
                             kwargs['objid'],
                             None,
                             t)
     components = json.loads(kwargs['comp'])
     for comp in components:
         self.addComponent(recipe['RECIPEID'],
                           comp['waresid'],
                           comp['amount'],
                           comp['netto'],
                           comp['num'],
                           comp['got'],
                           None,
                           t)
     t.commit()
     objname = recipe['OBJNAME']
     if objname is None: objname = ''
     obj= recipe['OBJ']
     if obj is None: obj = ''
     return self.pyDumps(data=[],ext_data={'ID':recipe['RECIPEID'],'CODE':kwargs['typerec'],'ENABLED':kwargs['active'],
                                           'TYPENAME':recipe['TYPENAME'],'NAME':pu.convToWin(kwargs['name']),'AMOUNT':kwargs['amount'],
                                           'UCODE':recipe['UCODE'],'DBEG':kwargs['dateb'],'DEND':kwargs['datee'],
                                           'OBJNAME':objname,'OBJID':obj})
Пример #4
0
    def tickets_tickets(self, ticketId=None, develId=None, reason=None, dtBeg=None, dtEnd=None, ticket=None, adminId=None, idBase=None, perm=None, ip=None):
        #t_l=self.dbExec(sql="select * from TEST(?)",
        #                  params=[self.cTime('15:10')],
        #                  fetch='one')
        #print "***", t_l['D'] , "***" , t_l['DT'] , "***" , t_l['T']

        """tickets_lst=self.dbExec(sql="select TICKET_ID, DEVEL_FIO, REASON, GRANT_STAMP, TICKET, DELETED_TIME, ADMIN_FIO, DB_IP, DB_NAME" \
                              " from T_GET(?,?,?,?,?,?,?,?)",
                          params=(self.cInt(ticketId),
                                  self.cInt(develId),
                                  pu.convToWin(self.cStr(reason)),
                                  self.cDateTime(dtBeg),
                                  self.cDateTime(dtEnd+' 23:59:59'),
                                  self.cStr(ticket),
                                  self.cInt(adminId),
                                  self.cInt(idBase)),
                          fetch='all')"""
        tickets_lst = self.tickets_get(ticketId=self.cInt(ticketId),
                                  develId=self.cInt(develId),
                                  reason=pu.convToWin(self.cStr(reason)),
                                  dtBeg=self.cDateTime(dtBeg),
                                  dtEnd=self.cDateTime(dtEnd+' 23:59:59'),
                                  ticket=self.cStr(ticket),
                                  adminId=self.cInt(adminId),
                                  idBase=self.cInt(idBase),
                                  perm=self.cStrE(perm),
                                  only_no_deleted=False,
                                  ip=self.cStrE(ip))
        return self.drawTemplate(templ=tickets_table, data=[tickets_lst])
Пример #5
0
 def ajaxEditData(self,val,id_data,id_obj):
     try: 
         if id_obj == '':
             data = self.dbExecC(sql='execute procedure K_WARES_DATA_EDIT(?,?)',params=[id_data,val],fetch='none')
         else:
             data = self.dbExecC(sql='execute procedure K_WARES_DATA_OBJ_EDIT(?,?)',params=[id_obj,val],fetch='none')
     except FBExc, exc: return self.pyDumps({'errMes':exc[1]})
     return self.pyDumps(data=data,ext_data={'VAL':pu.convToWin(val)})
Пример #6
0
 def ajaxBrandAddEdit(self, **kwargs):
     res = self.dbExec(sql='select * from CONTRACTORS_BRAND_INS_UPD(?,?,?,?,?)',
                 params=[self.ajaxValidate(kwargs['brandid']),
                         self.ajaxValidate(kwargs['Contractor']),
                         self.ajaxValidate(pu.convToWin(kwargs['Name'])),
                         1,
                         self.ajaxValidate(kwargs['Higher'])], 
                 fetch='one')
     return self.pyDumps(res)
Пример #7
0
 def ajaxAddEditAddress(self, **kwargs):
     res = self.dbExec(sql='select * from ADDADDRESS(?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
             params=[self.ajaxValidate(kwargs['AddId']),
                     self.ajaxValidate(pu.convToWin(kwargs['State'])),
                     self.ajaxValidate(pu.convToWin(kwargs['Rayon'])),
                     self.ajaxValidate(pu.convToWin(kwargs['City'])),
                     self.ajaxValidate(pu.convToWin(kwargs['Street'])),
                     self.ajaxValidate(kwargs['House']),
                     self.ajaxValidate(pu.convToWin(kwargs['Building'])),
                     self.ajaxValidate(kwargs['Room']),
                     self.ajaxValidate(kwargs['PostIndex']),
                     self.ajaxValidate(kwargs['OKATO']),
                     self.ajaxValidate(kwargs['StateCode']),
                     self.ajaxValidate(kwargs['Countryid']),
                     1,
                     kwargs['mode']],
             fetch='one')
     return self.pyDumps(res)
Пример #8
0
 def get_pwd_complexity_status(self, password=''):
     "Возвращает комплексность, статус и вердикт переданного пароля"
     # преобразовать в windows-1251
     password = pu.convToWin(password)
     complexity, status, verdict = pwd_complexity_status(password)
     return self.pyDumps(ext_data={'COMPLEXITY': complexity,
                                   'STATUS': status,
                                   'VERDICT': verdict
                                  })
Пример #9
0
    def ajaxBarcodeHTML(self, **kwargs):
        "Печать ШК или QR-кода"

        from app import mappings

        is_qr = self.cInt(kwargs['is_qr'])
        passwdBC = pu.convToWin(kwargs['passwdBC'])

        # проверка заполненности пароля
        if not passwdBC:
            return self.pyDumps(
                data={
                    'RES':
                    'error',
                    'ERROR_MSG':
                    _('Это поле должно быть заполнено.'
                      ),
                    'HTML':
                    '',
                    'BC':
                    '',
                    'LASTDATE':
                    ''
                })

        # валидация логина и пароля
        usr = verify_user(self.getUserVar('login'), passwdBC)
        if usr['ERROR_CODE']:
            return self.pyDumps(
                data={
                    'RES': 'error',
                    'ERROR_MSG': usr['ERROR_MSG'],
                    'HTML': '',
                    'BC': '',
                    'LASTDATE': ''
                })

        adminPanel = mappings.find_map_obj(ADMIN_PANEL_FULLREF)
        return adminPanel.ajaxBarcodeHTML(id_user=self.getUserVar('uid'),
                                          id_type=0,
                                          is_qr=is_qr)
Пример #10
0
 def ajaxStreetSel(self, street):
     res = self.dbExec(sql='select * from CONTRACTORS_STREET_FROM_RAYON(?)',
             params=[pu.convToWin(street)], 
             fetch='all')['datalist']
     return self.pyDumps(res)
Пример #11
0
 def ajaxRayonSel(self, state):
     res = self.dbExec(sql='select * from CONTRACTORS_RAYON_FROM_STATE(?)',
             params=[pu.convToWin(state)], 
             fetch='all')['datalist']
     return self.pyDumps(res)
Пример #12
0
 def ajaxCitySel(self, state):
     res = self.dbExec(sql='select * from CONTRACTORS_CITY_FROM_REGION(?)',
             params=[pu.convToWin(state)], 
             fetch='all')['datalist']
     return self.pyDumps(res)
Пример #13
0
 def ajaxAddEditContractor(self, **kwargs):
     Form = None
     ContId = self.ajaxValidate(kwargs['contid'])
     Name = self.ajaxValidate(pu.convToWin(kwargs['name']))
     Adress = self.ajaxValidate(kwargs['adress'])
     RealAdress = self.ajaxValidate(kwargs['realadress'])
     Code = self.ajaxValidate(kwargs['code'])
     Inn = self.ajaxValidate(kwargs['inn'])
     InnOne = self.ajaxValidate(kwargs['innone'])
     Okpo = self.ajaxValidate(kwargs['okpo'])
     OkpoOne = self.ajaxValidate(kwargs['okpoone'])
     Kpp = self.ajaxValidate(kwargs['kpp'])
     Bik = self.ajaxValidate(kwargs['bik'])
     BikOne = self.ajaxValidate(kwargs['bikone'])
     Chief = self.ajaxValidate(pu.convToWin(kwargs['chief']))
     PhoneChief = self.ajaxValidate(kwargs['phonechief'])
     MainAcc = self.ajaxValidate(pu.convToWin(kwargs['mainacc']))
     PhoneMA = self.ajaxValidate(kwargs['phonema'])
     Ogrp = self.ajaxValidate(kwargs['ogrp'])
     OgrpOne = self.ajaxValidate(kwargs['ogrpone'])
     RegDate = self.ajaxValidate(kwargs['regdate'])
     Status = self.ajaxValidate(kwargs['status'])
     Higher = self.ajaxValidate(kwargs['higher'])
     Descript = self.ajaxValidate(pu.convToWin(kwargs['descript']))
     Date1 = self.ajaxValidate(kwargs['date1'])
     Date2 = self.ajaxValidate(kwargs['date2'])
     IsBank = self.ajaxValidate(kwargs['isbank'])
     
     if Status is None:
         Status = '1'
     
     try:
         if ContId is None:
             res = self.dbExec(sql='select * from COMPANY_INS(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
                 params=[Form,
                         Name,
                         Adress,
                         RealAdress,
                         Okpo,
                         MainAcc,
                         PhoneMA,
                         Chief,
                         PhoneChief,
                         Higher,
                         Descript,
                         Inn,
                         Bik,
                         None,
                         None,
                         InnOne,
                         OkpoOne,
                         BikOne,
                         Kpp,
                         Code,
                         Status,
                         Ogrp,
                         None,
                         RegDate,
                         OgrpOne,
                         IsBank], 
                 fetch='one')
         else:
             res = self.dbExec(sql='select * from COMPANY_UPD(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
                 params=[ContId,
                         Form,
                         Name,
                         Adress,
                         RealAdress,
                         Okpo,
                         MainAcc,
                         PhoneMA,
                         Chief,
                         PhoneChief,
                         Higher,
                         Descript,
                         Inn,
                         Bik,
                         None,
                         None,
                         InnOne,
                         OkpoOne,
                         BikOne,
                         Kpp,
                         Code,
                         Status,
                         Ogrp,
                         None,
                         RegDate,
                         OgrpOne,
                         IsBank], 
                 fetch='one')
     except Exception, exc:
         return self.pyDumps({'MES':exc[1]})
Пример #14
0
    def ajaxTicketAdd(self, develId, idBase, reason, perm, ips):
        #db_info = self.dbExec(sql="select DB_IP, DB_NAME, DB_LOCATION, SERVER_IP, SERVER_USER, TICKETS_PATH_HOME from ENGINE_GET_BASES_INFO(?)", params=[self.cInt(idBase)], fetch='one')
        #if db_info is None:
        #    raise TicketsException('Base with ID=%s not found!' % idBase)
        #dbs = db.get_bases_info(idBase)['dbs']
        #if len(dbs) == 0:
        #    raise TicketsException('Base with ID=%s not found!' % idBase)
        #db_info = dbs[0]
        #Переводим из строки в объект
        ips = json.loads(ips)
        db_info = db.get_bases_info(self.cInt(idBase))

        db_location = db_info['DB_LOCATION']
        server_user = db_info['SERVER_USER']
        server_ip = db_info['SERVER_IP']
        db_ip = db.db_ip_to_private(db_info['DB_IP'])
        db_name = db_info['DB_NAME']
        tickets_path_home = db_info['TICKETS_PATH_HOME']
        tickets_perm_path_home = db_info['TICKETS_PERM_PATH_HOME']

        devel = self.dbExec(sql="select DEVEL_LOGIN, DEVEL_FIO FROM T_DEVEL WHERE DEVEL_ID=?", params=[self.cInt(develId)], fetch='one')
        if devel is None:
            raise TicketsException('Developer with ID=%s not exists' % develId)

        reason = pu.convToWin(reason)
        devel_login = devel['DEVEL_LOGIN']
        devel_fio = devel['DEVEL_FIO']

        ticket = dublin.createLink(db_location=db_location, links_path=pu.iif(perm!='0', tickets_perm_path_home, tickets_path_home), login=devel_login, user=server_user, ip=server_ip)

        #print "55555555555555"
        #print perm, self.cStrE(perm)
        #print "55555555555555"
        conEngine = db.getConEng()
        group = dbEngine.ConnectionGroup()
        try:
            conDb = db.getConDb(self.cInt(idBase))
            group.add(conDb)
            #conEngine.commit()
            group.add(conEngine)
            group.begin()

            try:
                dic = db.dbExec(sql="select TICKET_ID, GRANT_STAMP from T_ADD(?,?,?,?,?,?)",
                    params=(self.cInt(develId),
                            reason,
                            ticket,
                            self.getUserVar('uid'),
                            self.cInt(idBase),
                            self.cStrE(perm)
                           ),
                    fetch='one',
                    id_system=-1,
                    con=conEngine,
                    conEngine=conEngine
                )
                grant_stamp = formatMxDateTime(dic['GRANT_STAMP'], '%d.%m.%Y %H:%M')

                for ip in ips:
                    """ip = db.dbExec(sql="select IP from T_DEVEL_IP where ID_DEVEL_IP=?",
                        params=[str(id_ip)],
                        fetch='one',
                        id_system=-1,
                        con=conEngine,
                        conEngine=conEngine
                        )['IP']
                    """
                    dic_ip = db.dbExec(sql="select ID_TICKETS_IP from T_ADD_IP(?,?)",
                        params=(dic['TICKET_ID'],
                                str(ip)
                               ),
                        fetch='one',
                        id_system=-1,
                        con=conEngine,
                        conEngine=conEngine
                        )
                    dic_base_ip = db.dbExecDirect(sql="INSERT INTO K_IP_CHECK (IP, DEVEL_FIO, TICKET_ID, PERM) VALUES(?,?,?,?)",
                        params=(str(ip),
                                devel_fio,
                                dic['TICKET_ID'],
                                self.cStrE(perm)
                               ),
                        fetch='none',
                        id_base=self.cInt(idBase),
                        con=conDb,
                        conEngine=conEngine
                        )
                #conEngine.savepoint('A')

            except:
                if group.count(): group.rollback()
                raise
            else:
                group.commit()

        finally:
            group.disband() #disband the group so that member connections can operate independently again.

        if dic is not None:
            pu.send_devel_mail(subject='Тикет выдан', body='Тикет: %s\nIP/port: %s\nБД: %s\nID тикета: %s\nПерманент: %s\nВремя выдачи: %s\nПричина: %s\nРазработчик: %s\nВыдал: %s%s' \
                % (ticket, db_ip, db_name, dic['TICKET_ID'], pu.iif(perm!='0', 'Да', 'Нет'), grant_stamp, reason, devel_fio, self.getUserVar('userfio'), signature), id_devel=develId)
            return self.pyDumps(ext_data={'TICKET_ID': dic['TICKET_ID'],
                                          'GRANT_STAMP': grant_stamp,
                                          #'REASON': dic['REASON'],
                                          'DEVEL_FIO': devel_fio,
                                          'TICKET': ticket,
                                          'ADMIN_FIO': self.getUserVar('userfio'),
                                          'DB_IP': db_ip,
                                          'DB_NAME': db_name
                                })
        else:
            return self.pyDumps(ext_data={'TICKET': 'no'})