Ejemplo n.º 1
0
    def loadChildrenItems(self, group):
        db = QtGui.qApp.db

        tableActionType = db.table('ActionType')
        cond = [
            tableActionType['showInForm'].eq(1),
            tableActionType['deleted'].eq(0)
        ]
        if isinstance(group, CActionTypeClassTreeItem):
            cond.append(tableActionType['class'].eq(group._class))
        elif group.id() is None:
            cond.append(tableActionType['class'].inlist(self._classes))
        if self._enabledActionTypeIdList is not None:
            cond.append(tableActionType['id'].inlist(
                set(self._enabledActionTypeIdList)))
        if self._disabledActionTypeIdList:
            cond.append(tableActionType['id'].notInlist(
                self._disabledActionTypeIdList))

        mapGroupIdToItems = {}
        mapIdToItems = {}

        cols = ['id', 'class', 'group_id', 'code', 'name', 'sex', 'age']
        for record in db.iterRecordList(tableActionType,
                                        cols,
                                        cond,
                                        order='code'):
            if recordAcceptable(self._clientSex, self._clientAge, record):
                id = forceInt(record.value('id'))
                code = forceStringEx(record.value('code'))
                name = forceStringEx(record.value('name'))
                groupId = forceRef(record.value('group_id'))
                class_ = forceInt(record.value('class'))
                item = CActionTypeTreeItem(group, id, code, name, self, class_)
                item._items = []
                items = mapGroupIdToItems.setdefault(groupId, [])
                items.append(item)
                mapIdToItems[id] = item

        if not self._leavesVisible:
            leavesIdSet = set(mapIdToItems.keys()) - set(
                mapGroupIdToItems.keys())
            filterFunc = lambda item: item._id not in leavesIdSet
        else:
            filterFunc = None
        for groupId, items in mapGroupIdToItems.iteritems():
            groupItem = mapIdToItems.get(groupId, None)
            if groupItem:
                if filterFunc:
                    items = filter(filterFunc, items)
                for item in items:
                    item._parent = groupItem
                groupItem._items = items
        return mapGroupIdToItems.get(group.id(), [])
Ejemplo n.º 2
0
 def recordAcceptable(self, record):
     return recordAcceptable(self.__clientSex, self.__clientAge, record) and self.recordAcceptableByClientHurt(record)
Ejemplo n.º 3
0
 def recordAcceptable(self, record):
     return recordAcceptable(self.clientSex, self.clientAge, record)
Ejemplo n.º 4
0
    def prepareActions(self, recommendationList):
        if recommendationList is None:
            recommendationList = []

        def recordAcceptable(specialityId, sex, age):
            if specialityId:
                if specialityId != self.personSpecialityId:
                    return False
            if sex:
                if sex != self.clientSex:
                    return False
            if age:
                if self.clientAge == None:
                    return False
                ageSelector = parseAgeSelector(age)
                return checkAgeSelector(ageSelector, self.clientAge)
            return True

        db = QtGui.qApp.db
        table = db.table('EventType_Action')
        tableActionType = db.table('ActionType')
        cond = [table['eventType_id'].eq(self.eventTypeId)]
        for record in db.getRecordList(
                table.innerJoin(
                    tableActionType,
                    tableActionType['id'].eq(table['actionType_id'])),
                'actionType_id, speciality_id, EventType_Action.sex as sex, EventType_Action.age as age, selectionGroup, isCompulsory, EventType_Action.defaultOrg_id as defaultOrg_id, CONCAT_WS(\'|\', ActionType.code, ActionType.name) AS actionTypeName',
                cond):
            actionTypeId = forceRef(record.value('actionType_id'))
            specialityId = forceRef(record.value('speciality_id'))
            sex = forceInt(record.value('sex'))
            age = forceString(record.value('age'))
            selectionGroup = forceString(record.value('selectionGroup'))
            notDeleted = forceInt(record.value('isCompulsory'))
            org_id = forceRef(record.value('defaultOrg_id'))
            if recordAcceptable(specialityId, sex, age) and selectionGroup > 0:
                for model in [
                        self.tabStatus.modelAPActions,
                        self.tabMisc.modelAPActions
                ]:
                    if notDeleted:
                        model.notDeletedActionTypes[
                            actionTypeId] = forceString(
                                record.value('actionTypeName'))
                    if actionTypeId in model.actionTypeIdList:
                        model.addRow(actionTypeId)
                        record = model.items()[-1][0]
                        record.setValue('org_id', toVariant(org_id))
                        break

        tableActionType = db.table('ActionType')
        actionTypeIdRecList = [
            forceInt(rec.value('actionType_id')) for rec in recommendationList
        ]
        records = db.getRecordList(
            tableActionType,
            where=tableActionType['id'].inlist(actionTypeIdRecList))
        for record in records:
            actionTypeId = forceInt(record.value('id'))
            orgId = forceRef(record.value('defaultOrg_id'))
            for model in [
                    self.tabStatus.modelAPActions, self.tabMisc.modelAPActions
            ]:
                if actionTypeId in model.actionTypeIdList:
                    model.addRow(actionTypeId)
                    record = model.items()[-1][0]
                    record.setValue('org_id', toVariant(orgId))