Ejemplo n.º 1
0
def hisGet(object_name,
           action,
           datetime_from=None,
           datetime_to=None,
           format_lastdate=None):
    u"""Получить историю действий по объекту и действию за период:

    Принимает:
    object_name - имя объекта (таблицы или виртуального объекта)
    action - код действия: 'i' - insert, 'u' - update, 'd' - delete, None - без фильтра
    datetime_from - дата/время начала запрашиваемого периода (None - бесконечное прошлое) в cтроковом формате '%d.%m.%Y %H:%M:%S' или '%Y-%m-%d %H:%M:%S' или в mxDateTime
    datetime_to - дата/время конца запрашиваемого периода (None - бесконечное будущее)
    format_lastdate - формат поля LASTDATE (None - поле не форматируется в строку, а возвращается типа mxDateTime)

    Возвращает:
    Cписок записей в истории, отсортированный по LASTDATE, содержащий словари вида:
      {'ID_HISTORY': ID_HISTORY, 'ACTION_OUT': ACTION_OUT, 'DATA': DATA, 'LASTDATE': LASTDATE}, где
    ID_HISTORY - ID записи таблицы истории,
    ACTION_OUT - код действия: 'i' - insert, 'u' - update, 'd' - delete. Если action не None, то совпадает с ним.
    DATA - строка в json-формате '{"olds": {"FIELD1": val1, "FIELD2": val2, ...}, "news": {"FIELD1": val1, "FIELD2": val2, ...}}',
        где "olds" - старые значения полей (применимо для a in ('d','u')), "news" - новые значения полей (применимо для a in ('i','u'))
    LASTDATE - дата/время записи в истории

    """
    res = db.dbExec(sql='select * from HIS_GET(?,?,?,?)',
                    params=[object_name, action, datetime_from, datetime_to],
                    fetch='all',
                    id_system=-1)

    if format_lastdate:
        return pu.kbToPy(res, formats={'LASTDATE': format_lastdate})
    else:
        return pu.kbToPy(res)
Ejemplo n.º 2
0
def hisInsert(object_name, action, data=None):
    u"""Сохранить данные в истории действий по объекту и действию.

    Принимает:
    object_name - имя объекта (таблицы или виртуального объекта)
    action - код действия: 'i' - insert, 'u' - update, 'd' - delete
    data - сохраняемый сериализуемый объект. Для возможности однотипной обработки рекомендуется придерживаться формата словаря:
        {"olds": {"FIELD1": val1, "FIELD2": val2, ...}, "news": {"FIELD1": val1, "FIELD2": val2, ...}},
            где словарик "olds" - старые значения полей (применимо для a in ('d','u')), "news" - новые значения полей (применимо для a in ('i','u'))

    Возвращает словарь вида:
      {'ID_HISTORY': ID_HISTORY, 'LASTDATE': LASTDATE}, где
    ID_HISTORY - ID записи в таблице истории,
    LASTDATE - дата/время добавленной записи

    """
    res = db.dbExec(sql='execute procedure HIS_INSERT(?,?,?)',
                    params=[
                        object_name, action,
                        pu.decodeUStr(json.dumps(data, encoding="cp1251"))
                    ],
                    fetch='none',
                    id_system=-1)

    return pu.kbToPy(res)
Ejemplo n.º 3
0
 def getupdatenews(self, dbeg, dend):
     res = pu.kbToPy(
         db.dbExec(sql="select ud.id_update, ud.upload_stamp, eu.fio \
                         from upd_updates ud \
                             left join engine_users eu on ud.devel_id=eu.id_user \
                         where ud.upload_stamp >= ? and ud.upload_stamp < (? + 1)",
                   params=(dbeg, dend),
                   fetch='all',
                   id_system=-1))
     t = db.Trans(id_system=-1)
     for item in res:
         systems = pu.kbToPy(
             t.dbExec(
                 sql=
                 "select wn.id_system, es.show_name, wn.description, wn.redmine_url from \
                                 upd_whatsnew wn \
                                     left join engine_systems es on wn.id_system=es.id_system \
                                 where wn.id_update=?",
                 params=(item['ID_UPDATE'], ),
                 fetch='all'))
         item['sysinfo'] = systems
     t.commit()
     return self.pyDumps(res, formats={'UPLOAD_STAMP': '%d.%m.%Y %H:%M:%S'})
Ejemplo n.º 4
0
 def getTaskInfo(self,taskid):
     try:
         ext_data = self.listCaptions(taskid)
         data = self.dbExec(sql="select * from K_WH_TMVIEW_TASKINFO(?)",params=[taskid],fetch='one')
     except FBExc, exc: return self.pyDumps(data = {'errMes':exc[1]})
     return self.pyDumps(data=data,ext_data=py_utils.kbToPy(ext_data))
Ejemplo n.º 5
0
 def getTaskWares(self,taskid):
     try: 
         ext_data = self.listCaptions(taskid)
         data = self.dbExec(sql="SELECT * from K_DOCMANAG_LISTTASKWARES(?)",params=[taskid],fetch='all')
     except FBExc, exc: return self.pyDumps(data = {'errMes':exc[1]})
     return self.pyDumps(data=data,ext_data=py_utils.kbToPy(ext_data))
Ejemplo n.º 6
0
        return self.pyDumps(data=data,
                            ext_data={
                                'bdate': bdate,
                                'edate': edate,
                                'objid': objid
                            })

    getBadSelect.exposed = True

    def getObjects(self):
        return self.pyDumps(
            data=self.listZoneObjects(self.getIfaceVar('manid')),
            ext_data={'curzone': self.employeeObj(self.getIfaceVar('manid'))})

    getObjects.exposed = True

    def getDocs(self, bdate, edate, objid, wid):
        try:
            data = self.dbExec(
                sql="select * from K_WH_BADSELECT_DOCS(?,?,?,?)",
                params=[bdate, edate, objid, wid],
                fetch='all')
            ext_data = self.dbExec(sql="select * from k_wh_viewq(?)",
                                   params=[wid],
                                   fetch="one")
        except Exception, exc:
            return self.pyDumps({'errMes': exc[1]})
        return self.pyDumps(data=data, ext_data=py_utils.kbToPy(ext_data))

    getDocs.exposed = True