Ejemplo n.º 1
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     column = index.column()
     row = index.row()
     self.updateRetiredList()
     if not variantEq(self.data(index, role), value):
         personColIndex = self.getColIndex('person_id')
         sceneColIndex = self.getColIndex('scene_id')
         visitTypeColIndex = self.getColIndex('visitType_id')
         if column == personColIndex:  # врач
             eventEditor = QtCore.QObject.parent(self)
             personId = forceRef(value)
             if not eventEditor.checkClientAttendaceEE(personId):
                 return False
         if column in [personColIndex, sceneColIndex,
                       visitTypeColIndex]:  # врач, место или тип
             result = CInDocTableModel.setData(self, index, value, role)
             if result:
                 item = self.items()[row]
                 item.setValue('service_id',
                               toVariant(self.getExactServiceId(item)))
                 self.emitCellChanged(
                     row, self.getColIndex('service_id'))  # услуга
             return result
         else:
             return CInDocTableModel.setData(self, index, value, role)
     else:
         return True
Ejemplo n.º 2
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     column = index.column()
     row = index.row()
     if not variantEq(self.data(index, role), value):
         if column == 2:  # специальность
             specialityId = forceRef(value)
             if not specialityId:
                 self.cols()[3].setFilter(u'')
             else:
                 self.cols()[3].setFilter(u'speciality_id = %s' %
                                          (specialityId))
             result = CInDocTableModel.setData(self, index, value, role)
             return result
         if column == 3:  # сотрудник
             personId = forceRef(value)
             if not personId:
                 self.cols()[2].setFilter(u'')
             else:
                 self.cols()[2].setFilter(
                     u'id IN (SELECT DISTINCT speciality_id FROM vrbPersonWithSpeciality WHERE id = %s)'
                     % (personId))
             result = CInDocTableModel.setData(self, index, value, role)
             return result
         return CInDocTableModel.setData(self, index, value, role)
     else:
         return True
Ejemplo n.º 3
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     result = CInDocTableModel.setData(self, index, value, role)
     if result:
         self.needSave = True
         if index.column() == 1 and bool(self.currentMasterId):
             self.emit(QtCore.SIGNAL('maintenanceDateChanged(int)'),
                       self.currentMasterId)
     return result
Ejemplo n.º 4
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     column = index.column()
     row = index.row()
     if role == QtCore.Qt.CheckStateRole:
         column = index.column()
         if column == 0:
             group = forceInt(self.items()[row].value('selectionGroup'))
             newState = 1 if forceInt(value) == QtCore.Qt.Checked else 0
             if group > 0:
                 newState = 1
             if group == 0:  # нулевая группа - всегда переключается
                 result = CInDocTableModel.setData(self, index, value, role)
                 self.emit(QtCore.SIGNAL('sumChanged()'))
                 return result
             if group == 1:  # первая группа - никогда не переключается
                 return False
             for itemIndex, item in enumerate(self.items()):
                 itemGroup = forceInt(item.value('selectionGroup'))
                 if itemGroup == group:
                     item.setValue(
                         'include',
                         QtCore.QVariant(newState if itemIndex ==
                                         row else 0))
             self.emitColumnChanged(0)
             self.emit(QtCore.SIGNAL('sumChanged()'))
             return True
         elif column == self.ciCash:
             payable = forceInt(self.items()[row].value('payable'))
             if payable == 1:
                 result = CInDocTableModel.setData(self, index, value, role)
                 self.emit(QtCore.SIGNAL('sumChanged()'))
                 return result
             else:
                 return False
     result = CInDocTableModel.setData(self, index, value, role)
     if result and role == QtCore.Qt.EditRole:
         if column == self.ciPrice or column == self.ciAmount:
             item = self.items()[row]
             price = forceDouble(item.value('price'))
             amount = forceDouble(item.value('amount'))
             sum = round(price * amount, 2)
             item.setValue('sum', toVariant(sum))
             self.emitCellChanged(row, column)
             self.emit(QtCore.SIGNAL('sumChanged()'))
     return result
Ejemplo n.º 5
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     result = CInDocTableModel.setData(self, index, value, role)
     if result and role == QtCore.Qt.CheckStateRole and index.column(
     ) == 1 and forceBool(value):
         for row, record in enumerate(self._items):
             if row != index.row():
                 record.setValue('isDefault', toVariant(False))
                 self.emitCellChanged(row, 1)
     return result
Ejemplo n.º 6
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     column = index.column()
     row = index.row()
     if column == 1:
         if forceInt(value) == 1:
             if row < len(self.items()):
                 record = self.items()[row]
                 record.setValue('service_id', QtCore.QVariant())
         self.emitCellChanged(row, 2)
     return CInDocTableModel.setData(self, index, value, role)
Ejemplo n.º 7
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     column = index.column()
     row = index.row()
     if not variantEq(self.data(index, role), value):
         if column == 1:
             QtCore.QObject.parent(self).checkReturnBlank(
                 row, column,
                 QtCore.QObject.parent(self).tblBlankTempInvalidMoving,
                 self)
             QtCore.QObject.parent(self).checkDoubleNumber(
                 forceInt(value), row, column,
                 QtCore.QObject.parent(self).tblBlankTempInvalidMoving,
                 self)
             return CInDocTableModel.setData(self, index, value, role)
         elif column == 2:
             QtCore.QObject.parent(self).checkReturnBlank(
                 row, column,
                 QtCore.QObject.parent(self).tblBlankTempInvalidMoving,
                 self)
             QtCore.QObject.parent(self).checkDoubleNumber(
                 forceInt(value), row, column,
                 QtCore.QObject.parent(self).tblBlankTempInvalidMoving,
                 self)
             return CInDocTableModel.setData(self, index, value, role)
         elif column == 3:
             self._cols[4].orgStructureId = forceRef(value)
             return CInDocTableModel.setData(self, index, value, role)
         elif column == 5:
             QtCore.QObject.parent(self).checkReturnBlank(
                 row, column,
                 QtCore.QObject.parent(self).tblBlankTempInvalidMoving,
                 self)
             result = CInDocTableModel.setData(self, index, value, role)
             if result:
                 QtCore.QObject.parent(self).updateTempInvalidBlankParty()
             return result
         elif column == 6:
             QtCore.QObject.parent(self).checkReturnBlank(
                 row, column,
                 QtCore.QObject.parent(self).tblBlankTempInvalidMoving,
                 self)
             result = CInDocTableModel.setData(self, index, value, role)
             if result:
                 QtCore.QObject.parent(self).updateTempInvalidBlankParty()
             return result
         elif column == 8:
             QtCore.QObject.parent(self).checkReturnBlank(
                 row, column,
                 QtCore.QObject.parent(self).tblBlankTempInvalidMoving,
                 self)
             result = CInDocTableModel.setData(self, index, value, role)
             if result:
                 QtCore.QObject.parent(self).updateTempInvalidBlankParty()
             return result
         return CInDocTableModel.setData(self, index, value, role)
     else:
         return True
Ejemplo n.º 8
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     if role == QtCore.Qt.CheckStateRole:
         column = index.column()
         row = index.row()
         group = forceInt(self.items()[row].value('selectionGroup'))
         newState = 1 if forceInt(value) == QtCore.Qt.Checked else 0
         if group>0:
             newState = 1
         if group == 0:  # нулевая группа - всегда переключается
             return CInDocTableModel.setData(self, index, value, role)
         if group == 1:  # первая группа - никогда не переключается
             return False
         for itemIndex, item in enumerate(self.items()):
             itemGroup = forceInt(item.value('selectionGroup'))
             if itemGroup == group:
                 item.setValue('include',  QtCore.QVariant(newState if itemIndex == row else 0))
                 self.emitCellChanged(itemIndex, 0)
         self.emitColumnChanged(0)
         return True
     return CInDocTableModel.setData(self, index, value, role)
Ejemplo n.º 9
0
    def setData(self, index, value, role=QtCore.Qt.EditRole):
        column = index.column()
        row = index.row()
        if not variantEq(self.data(index, role), value):
            if column == 0:  # код МКБ
                newMKB = forceString(value)
                if not newMKB:
                    specifiedMKB = ''
                    specifiedCharacterId = None
                    specifiedTraumaTypeId = None
                else:
                    acceptable, specifiedMKB, specifiedMKBEx, specifiedCharacterId, specifiedTraumaTypeId = QtCore.QObject.parent(
                        self).specifyDiagnosis(newMKB)
                    if not acceptable:
                        return False
                value = toVariant(specifiedMKB)
                result = CInDocTableModel.setData(self, index, value, role)
                #self.emitResultChanged(item.value('result_id'))
                self.emitResultChanged(self.items()[row].value('result_id'))
                if result:
                    self.updateCharacterByMKB(row, specifiedMKB,
                                              specifiedCharacterId)
                    self.updateTraumaType(row, specifiedMKB,
                                          specifiedTraumaTypeId)
                return result
            if column == 1:  # доп. код МКБ
                newMKB = forceString(value)
                if not newMKB:
                    pass
                else:
                    acceptable = QtCore.QObject.parent(self).checkDiagnosis(
                        newMKB, True)
                    if not acceptable:
                        return False
                value = toVariant(newMKB)
                result = CInDocTableModel.setData(self, index, value, role)
                return result

            return CInDocTableModel.setData(self, index, value, role)
        else:
            return True
Ejemplo n.º 10
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     result = CInDocTableModel.setData(self, index, value, role)
     if result and index.column() == 3:
         self.emitSumChanged()
     return result
Ejemplo n.º 11
0
 def setData(self, index, value, role=QtCore.Qt.EditRole):
     if index.column() == 0 and role == QtCore.Qt.EditRole:
         value = QtCore.QVariant(max(0, forceInt(value)-1)%self.colOffset.high)
     return CInDocTableModel.setData(self, index, value, role)