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})
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)
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})
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])
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)})
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)
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)
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 })
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)
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)
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)
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)
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]})
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'})