def setPreferences(self, preferences): operatorPassword = forceString( getPref(preferences, 'operatorPassword', u'')) self.setPassword(operatorPassword) self.chkRemeberPassword.setChecked(bool(operatorPassword)) self.chkAutoExportDuringZReport.setChecked( forceBool(getPref(preferences, 'isAutoExportDuringZReport', True))) self.edtExportDir.setText( forceString( getPref(preferences, 'exportDir', QtCore.QDir.homePath()))) exportEncoding = forceString( getPref(preferences, 'exportEncoding', 'utf8')) self.cmbExportFileEncoding.setCurrentIndex( self.cmbExportFileEncoding.findText(exportEncoding, flags=QtCore.Qt.MatchExactly)) exportFormat = forceString(getPref(preferences, 'exportFormat', 'txt')) self.cmbExportFormat.setCurrentIndex( self.cmbExportFormat.findText(exportFormat, flags=QtCore.Qt.MatchExactly)) self.chkFillPersonDocument.setChecked( forceBool(getPref(preferences, 'fillPersonDocument', False))) fileNameLangCode = forceString( getPref(preferences, 'fileNameLangCode', u'ru')) fileNameLangIdx = 0 if fileNameLangCode in self.fileNameLanguages['codes']: fileNameLangIdx = self.fileNameLanguages['codes'].index( fileNameLangCode) self.cmbFileNameLanguage.setCurrentIndex(fileNameLangIdx) self.chkDoublePrintCheck.setChecked( forceBool(getPref(preferences, 'doublePrintCheck', False)))
def _initByRecord(self, record): self._temporary = forceBool(record.value('temporary')) self._outcome = forceBool(record.value('outcome')) self._grp = forceInt(record.value('grp')) from Events.EventInfo import CFinanceInfo self._finance = self.getInstance(CFinanceInfo, forceRef(record.value('finance_id')))
def setParams(self, params): self.edtBegDate.setDate( params.get('begDate', QtCore.QDate.currentDate())) self.edtEndDate.setDate( params.get('endDate', QtCore.QDate.currentDate())) self.cmbEventType.setValue(params.get('eventTypeId', None)) self.cmbOrgStructure.setValue(params.get('orgStructureId', None)) self.cmbFinance.setValue(params.get('financeId', None)) self.cmbDiagnosisType.setValue(params.get('diagnosisType', None)) MKBFilter = params.get('MKBFilter', 0) self.cmbMKBFilter.setCurrentIndex(MKBFilter if MKBFilter else 0) self.edtMKBFrom.setText(params.get('MKBFrom', 'A00')) self.edtMKBTo.setText(params.get('MKBTo', 'Z99.9')) MESFilter = params.get('MESFilter', 0) self.cmbMES.setCurrentIndex(MESFilter) self.edtMESFrom.setText(params.get('MESFrom', '')) self.edtMESTo.setText(params.get('MESTo', '')) self.cmbResult.setCurrentIndex(params.get('result', 0)) arg = params.get('outputColumns', False) if type(arg) == QtCore.QVariant: arg = arg.toPyObject() if set(columns.keys()) == set(arg.keys()): for key in columns.keys(): try: self.callObjectAtributeMethod( 'chk%s' % key, 'setChecked', forceBool(arg[key.lower()]) if arg else True) except KeyError: self.callObjectAtributeMethod( 'chk%s' % key, 'setChecked', forceBool(arg[key]) if arg else True)
def processRecord(self, record, reportData, forcekeyVal, rowSize): rowKey = forcekeyVal(record.value('rowKey')) clientAge = forceInt(record.value('clientAge')) isVillager = forceBool(record.value('isVillager')) category = forceInt(record.value('category')) hasActionByIllness = forceBool(record.value('hasActionByIllness')) cnt = forceInt(record.value('cnt')) row = reportData.setdefault(rowKey, [0] * rowSize) if category in [2, 3, 4, 5]: row[0] += cnt if isVillager: row[1] += cnt if clientAge < 18: row[2] += cnt if category == 2 and hasActionByIllness: if isVillager: row[3] += cnt if clientAge >= 18: row[4] += cnt else: row[5] += cnt elif category in [6, 7, 8]: row[6] += cnt if isVillager: row[7] += cnt if clientAge < 18: row[9] += cnt if category in [6, 7] and hasActionByIllness: row[8] += cnt if clientAge < 18: row[10] += cnt
def setParams(self): currentDate = QtCore.QDate().currentDate() month = currentDate.month() year = currentDate.year() begDate = forceDate( getVal(QtGui.qApp.preferences.appPrefs, 'begDate', None)) if not begDate: begDate = QtCore.QDate(year, month, 1) self.edtBegDate.setDate(begDate) endDate = forceDate( getVal(QtGui.qApp.preferences.appPrefs, 'endDate', None)) if not endDate: endDate = QtCore.QDate(year, month, 15) self.edtEndDate.setDate(endDate) self.chkTemperature.setChecked( forceBool( getVal(QtGui.qApp.preferences.appPrefs, 'chkTemperature', False))) self.chkPulse.setChecked( forceBool( getVal(QtGui.qApp.preferences.appPrefs, 'chkPulse', False))) self.chkAPMax.setChecked( forceBool( getVal(QtGui.qApp.preferences.appPrefs, 'chkAPMax', False))) self.chkAPMin.setChecked( forceBool( getVal(QtGui.qApp.preferences.appPrefs, 'chkAPMin', False))) multipleDimension = forceInt( getVal(QtGui.qApp.preferences.appPrefs, 'multipleDimension', 0)) if not multipleDimension: multipleDimension = 2 self.edtMultipleDimension.setValue(multipleDimension)
def on_cmbMes_editTextChanged(self, text): mesId = forceRef(self.cmbMes.value()) if forceBool(mesId): pass # self.chkHTG.setEnabled(True) self.btnCheckMes.setEnabled(forceBool(mesId)) self.btnShowMes.setEnabled(forceBool(mesId))
def loadPreferences(self, preferences): CDialogBase.loadPreferences(self, preferences) self.rbByPeriod.setChecked( forceBool(getPref(preferences, 'byPeriod', False))) self.edtLeavedDate.setDate( forceDate( getPref(preferences, 'leavedDate', QtCore.QDate.currentDate()))) self.chkByReceivedDate.setChecked( forceBool(getPref(preferences, 'byReceivedDate', False))) self.edtReceivedBegDate.setDate( forceDate( getPref(preferences, 'receivedBegDate', QtCore.QDate.currentDate()))) self.edtReceivedEndDate.setDate( forceDate( getPref(preferences, 'receivedEndDate', QtCore.QDate.currentDate()))) self.chkByLeavedDate.setChecked( forceBool(getPref(preferences, 'byLeavedDate', True))) self.edtLeavedBegDate.setDate( forceDate( getPref(preferences, 'leavedBegDate', QtCore.QDate.currentDate()))) self.edtLeavedEndDate.setDate( forceDate( getPref(preferences, 'leavedEndDate', QtCore.QDate.currentDate()))) self.cmbOrgStructure.setValue( forceRef( getPref(preferences, 'orgStructureId', QtGui.qApp.currentOrgStructureId())))
def setRecord(self, record): CItemEditorBaseDialog.setRecord(self, record) self.edtCode.setText(forceString(record.value(rbCode))) self.edtName.setText(forceString(record.value(rbName))) self.chkAllowMeals.setChecked(forceBool(record.value('allow_meals'))) self.chkNoCourting.setChecked( forceBool(record.value('noCourtingAtReanimation')))
def loadPreferences(self, preferences): self.chkActionType.setChecked( forceBool(getPref(preferences, 'chkActionType', True)) and self.chkActionType.isEnabled()) self.chkBarCode.setChecked( forceBool(getPref(preferences, 'chkBarCode', True)) and self.chkBarCode.isEnabled()) self.chkClientBirthday.setChecked( forceBool(getPref(preferences, 'chkClientBirthday', True)) and self.chkClientBirthday.isEnabled()) self.chkClientName.setChecked( forceBool(getPref(preferences, 'chkClientName', True)) and self.chkClientName.isEnabled()) self.chkClientSex.setChecked( forceBool(getPref(preferences, 'chkClientSex', True)) and self.chkClientSex.isEnabled()) self.chkDatetime.setChecked( forceBool(getPref(preferences, 'chkDatetime', True)) and self.chkDatetime.isEnabled()) self.chkLabel.setChecked( forceBool(getPref(preferences, 'chkLabel', True)) and self.chkLabel.isEnabled()) self.chkNotes.setChecked( forceBool(getPref(preferences, 'chkNotes', True)) and self.chkNotes.isEnabled()) self.chkRowNumber.setChecked( forceBool(getPref(preferences, 'chkRowNumber', True)) and self.chkRowNumber.isEnabled()) self.chkSetPerson.setChecked( forceBool(getPref(preferences, 'chkSetPerson', True)) and self.chkSetPerson.isEnabled()) CDialogBase.loadPreferences(self, preferences)
def loadChildren(self): self.timestamp = QtCore.QDateTime.currentDateTime() self.checkSum = self.getCheckSum() if not self.orgId: self._items = [] return self._items db = QtGui.qApp.db table = db.table('OrgStructure') # if self.purpose == COrgStructureTreePurpose.areaSelector: if self.filter: cond = self.filter else: cond = [ table['deleted'].eq(0), table['organisation_id'].eq(self.orgId) ] if not isinstance(cond, list): cond = [cond] cond.append(table['type'].ne(99)) mapIdToNodes = {None: (self.emptyRootName, False, False, u'')} mapParentIdToIdList = {} query = db.query( db.selectStmt( table, 'parent_id, id, code, isArea, hasStocks, bookkeeperCode', where=cond, order='code')) while query.next(): record = query.record() parentId = forceRef(record.value('parent_id')) id = forceInt(record.value('id')) code = forceString(record.value('code')) isArea = forceBool(record.value('isArea')) hasStocks = forceBool(record.value('hasStocks')) bookkeeperCode = forceString(record.value('bookkeeperCode')) mapIdToNodes[id] = code, isArea, hasStocks, bookkeeperCode idList = mapParentIdToIdList.setdefault(parentId, []) idList.append(id) if self.purpose == COrgStructureTreePurpose.areaSelector: filter = lambda node: node[1] elif self.purpose == COrgStructureTreePurpose.storageSelector: filter = lambda node: node[2] else: filter = None if filter: self._filterNodes(mapIdToNodes, mapParentIdToIdList, self._id, filter, set()) self._code, self._isArea, self._hasStocks, self._bookkeeperCode = mapIdToNodes[ self._id] self._generateItems(mapIdToNodes, mapParentIdToIdList, self, set()) return self._items
def setParams(self, params): self.cmbEventType.setValue(params.get('eventTypeId', None)) self.cmbOrgStructure.setValue(params.get('orgStructureId', None)) self.lstEventType.setValues(params.get('eventTypeIdMulti', [])) self.lstOrgStructure.setValues(params.get('orgStructureIdMulti', [])) self.chkEventTypeMulti.setChecked(forceBool(params.get('chkEventType', False))) self.chkOrgStructureMulti.setChecked(forceBool(params.get('chkOrgStructure', False))) self.edtDays.setText(params.get('days', '')) self.on_chkEventTypeMulti_clicked(self.chkEventTypeMulti.isChecked()) self.on_chkOrgStructureMulti_clicked(self.chkOrgStructureMulti.isChecked())
def updateTotalSum(self): s = 0.0 for item in self.modelDiagnostics.items(): if forceBool(item.value('include')) and forceBool( item.value('cash')): s += forceDouble(item.value('sum')) for item in self.modelActions.items(): if forceBool(item.value('include')) and forceBool( item.value('cash')): s += forceDouble(item.value('sum')) self.lblSumValue.setText('%.2f' % s)
def on_selectionModelItems_currentChanged(self, current, previous): row = self.tblItems.currentIndex().row() items = self.tblItems.model().items() self.actEdit.setEnabled( row >= 0 and row != len(items) and (items[row].value('id').isNull() or not forceBool(items[row].value('sentToMiac')))) self.actDelete.setEnabled( row >= 0 and row != len(items) and not forceBool(items[row].value('sentToMiac'))) self.actPrint.setEnabled(row != len(items))
def setParams(self, params): date = QtCore.QDate.currentDate() self.edtReportDate.setDate(params.get('reportDate', date)) self.edtReportDate.setMaximumDate(date) self.edtConfirmDate.setDate(params.get('confirmEISDate', QtCore.QDate())) self.cmbInsurerDoctors.setValue(params.get('insurerId', None)) self.edtAgeFrom.setValue(params.get('ageFrom', 0)) self.edtAgeTo.setValue(params.get('ageTo', 150)) self.cmbSex.setCurrentIndex(params.get('sex', 0)) self.cmbAttachmentOrgStructureId.setValue(params.get('attachmentOrgStructureId', None)) self.chkShowRegAddress.setChecked(forceBool(params.get('isShowRegAddress', False))) self.chkShowLocAddress.setChecked(forceBool(params.get('isShowLocAddress', False)))
def checkMKBCode(self, code, parentCode): db = QtGui.qApp.db error = u'Введённый код МКБ %s не входит в группу %s' % (code, parentCode) duplicate = u'Ведённый код МКБ уже существует' success = u'Ok' if not forceBool( db.translate('MKB_Tree', 'DiagID', parentCode, 'parent_code')): if code[1:4] > code[1:8]: return u'%s должно быть меньше чем %s' % (code[1:4], code[1:8]) conds = ["parent_code = '%s'" % parentCode] if self.itemId(): conds.append("not id = '%s'" % forceString(self.itemId())) recordList = db.getRecordList('MKB_Tree', [ 'Right(Left(DiagID, 4), 3) as min', 'Left(Right(DiagID, 4), 3) as max' ], db.joinAnd(conds)) if forceString( recordList[0].value('min')) > code[1:4] or forceString( recordList[-1].value('max')) < code[5:8]: return u"Ведённый диапазон %s входит в диапазон данного класса с %s-%s" % ( code, forceString(recordList[0].value('min')), forceString(recordList[-1].value('max'))) for record in recordList: minCode = forceString(record.value('min')) maxCode = forceString(record.value('max')) if not ((minCode < code[1:4] and maxCode < code[1:4]) or (minCode > code[5:8] and maxCode > code[5:8])): return u"Ведённый диапазон %s прересекается с (%s-%s)" % ( code, minCode, maxCode) return success cond = ["DiagID = '%s'" % code] if self.itemId(): cond.append("not id = '%s'" % forceString(self.itemId())) if forceBool( QtGui.qApp.db.getRecordEx('MKB_Tree', 'DiagID', db.joinAnd(cond))): return duplicate if len(code) == 3: if parentCode[1] == code[0] \ and forceInt(parentCode[2:4]) <= forceInt(code[1:3]) \ and forceInt(parentCode[6:8]) >= forceInt((code[1:3])): return success elif len(code) > 3: if parentCode in code: return success return error return error
def __init__(self): preferences = getPref(QtGui.qApp.preferences.appPrefs, 'MIACExchange_Stattalons', {}) self.address = forceString(getPref( preferences, 'address', '')) or FileServiceLocator.BasicHttpBinding_IFileService_address self.postBoxName = forceString( getPref(preferences, 'postBoxName', '')) or CMIACExchangePreferences.defaultPostBoxName self.compress = forceBool(getPref(preferences, 'compress', True)) self.sendByDefault = forceBool( getPref(preferences, 'sendByDefault', False))
def processRecord(self, record, reportData, forceKeyVal, rowSize, financeIndexes): rowKey = forceKeyVal(record.value('rowKey')) cnt = forceInt(record.value('cnt')) atAmbulance = forceBool(record.value('atAmbulance')) atHome = forceBool(record.value('atHome')) eventGoalCode = forceString(record.value('eventGoalCode')) clientAge = forceInt(record.value('clientAge')) clientVillager = forceBool(record.value('clientVillager')) financeId = forceInt(record.value('financeId')) prophylaxy = eventGoalCode == self.prophylaxyEventGoalCode row = reportData.setdefault(rowKey, [0] * rowSize) if atAmbulance: row[0] += cnt if clientVillager: row[1] += cnt if clientAge <= 17: row[2] += cnt elif clientAge >= 60: row[3] += cnt for k in self.cureEventGoalCode: if eventGoalCode == k: row[4] += cnt if clientAge <= 17: row[5] += cnt elif clientAge >= 60: row[6] += cnt if prophylaxy: row[7] += cnt elif atHome: row[8] += cnt for k in self.cureEventGoalCode: if eventGoalCode == k: row[9] += cnt if clientAge <= 1: row[10] += cnt row[11] += cnt elif clientAge <= 17: row[10] += cnt elif clientAge >= 60: row[12] += cnt elif prophylaxy: if clientAge <= 17: row[13] += cnt elif clientAge >= 60: row[14] += cnt if financeId in financeIndexes: row[15 + financeIndexes[financeId]] += cnt
def loadItems(self): u""" Загрузка данных в модель _tables - данные о таблицах _items - данные о полях с сылкой на таблицы """ self._items = {} self._tables = {} db = QtGui.qApp.db tableTable = db.table(self.tableTableName) tableField = db.table(self.tableFieldName) cond = [] if tableField.hasField('deleted'): cond.append(tableField['deleted'].eq(0)) cols = [ 'id', 'name', 'field', 'rcTable_id', 'ref_id', 'description', 'visible' ] recordList = db.getRecordList(tableField, cols, cond, order=self.order) for record in recordList: visible = forceBool(record.value('visible')) if not visible: continue self._items[forceString(record.value('id'))] = { 'name': forceString(record.value('name')), 'field': forceString(record.value('field')), 'tableId': forceRef(record.value('rcTable_id')), 'refId': forceString(record.value('ref_id')), 'description': forceString(record.value('description')), 'visible': forceBool(record.value('visible')) } cond = [] if tableTable.hasField('deleted'): cond.append(tableTable['deleted'].eq(0)) cols = [ tableTable['id'], tableTable['name'], tableTable['table'], tableTable['group'] ] recordList = db.getRecordList(tableTable, cols, cond) for record in recordList: self._tables[forceRef(record.value('id'))] = { 'table': forceString(record.value('table')), 'tableName': forceString(record.value('name')), 'group': forceString(record.value('group')), }
def _initByRecord(self, record): self._groupId = forceRef(record.value('group_id')) self._eisLegacy = forceBool(record.value('eisLegacy')) self._license = forceBool(record.value('license')) self._infis = forceString(record.value('infis')) self._begDate = CDateInfo(record.value('begDate')) self._endDate = CDateInfo(record.value('endDate')) self._qualityLevel = forceInt(record.value('qualityLevel')) self._medicalAidProfile = self.getInstance( CMedicalAidProfileInfo, forceRef(record.value('medicalAidProfile_id'))) self._medicalAidKind = self.getInstance( CMedicalAidKindInfo, forceRef(record.value('medicalAidKind_id'))) self._medicalAidType = self.getInstance( CMedicalAidTypeInfo, forceRef(record.value('medicalAidType_id')))
def processReceived(record): orgStructureId = forceRef(record.value('orgStructureId')) financeCode = forceString(record.value('financeCode')) isUrgent = forceBool(record.value('isUrgent')) deliveredBy = forceInt(record.value('deliveredBy')) isMoscowResident = forceBool(record.value('isMoscowResident')) received = forceInt(record.value('received')) veterans = forceInt(record.value('veterans')) dataRow = reportData[orgStructureId] dataRow[columnIndex['received']] += received if not isMoscowResident: dataRow[columnIndex['receivedNonMoscow']] += received if isUrgent: dataRow[columnIndex['isUrgent']] += received if not isMoscowResident: dataRow[columnIndex['isUrgentNonMoscow']] += received if deliveredBy: dataRow[deliveredByIndex[deliveredBy]] += received if not isMoscowResident: dataRow[deliveredByIndex[deliveredBy]] += received dataRow[columnIndex['veterans']] += veterans if financeCode in nonBudgetFinanceCodes: financeDataRow = reportFinanceData[financeCode] financeDataRow[columnIndex['received']] += received if not isMoscowResident: financeDataRow[ columnIndex['receivedNonMoscow']] += received if isUrgent: financeDataRow[columnIndex['isUrgent']] += received if not isMoscowResident: financeDataRow[ columnIndex['isUrgentNonMoscow']] += received if deliveredBy: financeDataRow[deliveredByIndex[deliveredBy]] += received if not isMoscowResident: financeDataRow[ deliveredByIndex[deliveredBy]] += received financeDataRow[columnIndex['veterans']] += veterans
def initByRecord(self, record): self._begPerson = self.getInstance( CPersonInfo, forceRef(record.value('begPerson_id'))) self._begDate = CDateInfo(forceDate(record.value('begDate'))) self._endPerson = self.getInstance( CPersonInfo, forceRef(record.value('endPerson_id'))) self._endDate = CDateInfo(forceDate(record.value('endDate'))) self._numberPermit = forceString(record.value('numberPermit')) self._begDatePermit = CDateInfo( forceDate(record.value('begDatePermit'))) self._endDatePermit = CDateInfo( forceDate(record.value('endDatePermit'))) self._isExternal = forceBool(record.value('isExternal')) self._regime = self.getInstance(CTempInvalidRegimeInfo, forceRef(record.value('regime_id'))) self._break = self.getInstance(CTempInvalidBreakInfo, forceRef(record.value('break_id'))) self._breakDate = CDateInfo(forceDate(record.value('breakDate'))) self._note = forceString(record.value('note')) self._result = self.getInstance(CTempInvalidResultInfo, forceRef(record.value('result_id'))) self._directDateOnKAK = CDateInfo( forceDate(record.value('directDateOnKAK'))) self._expert = self.getInstance(CPersonInfo, forceRef(record.value('expert_id'))) self._dateKAK = CDateInfo(forceDate(record.value('dateKAK'))) self._begDateHospital = CDateInfo( forceDate(record.value('begDateHospital'))) self._endDateHospital = CDateInfo( forceDate(record.value('endDateHospital')))
def loadLogicalDeviceInfo(self): if not self._ecrDriver: return deviceSettings = self._ecrDriver.DevicesSettings deviceSettingsInfo = dict(re.findall(ur'(?P<name>[\w0-9]+)=(?P<value>[\w0-9]+)', deviceSettings)) countDevices = forceInt(deviceSettingsInfo.get('Count', 0)) currentDeviceNumber = forceInt(deviceSettingsInfo.get('CurrentDeviceNumber', -1)) if currentDeviceNumber not in xrange(countDevices): return for deviceIndex in xrange(countDevices): if forceInt(deviceSettingsInfo.get('DeviceNumber%d' % deviceIndex, -1)) != currentDeviceNumber: continue self._ecrDriver.CurrentDeviceIndex = deviceIndex self._ecrDriver.CurrentDeviceNumber = currentDeviceNumber if deviceSettingsInfo.has_key('MachineNumber%d' % deviceIndex): self._ecrDriver.MachineName = forceString(deviceSettingsInfo['MachineNumber%d' % deviceIndex]) if deviceSettingsInfo.has_key('PortNumber%d' % deviceIndex): self._ecrDriver.PortNumber = forceInt(deviceSettingsInfo['PortNumber%d' % deviceIndex]) if deviceSettingsInfo.has_key('BaudRate%d' % deviceIndex): self._ecrDriver.BaudRate = forceInt(deviceSettingsInfo['BaudRate%d' % deviceIndex]) if deviceSettingsInfo.has_key('Model%d' % deviceIndex): self._ecrDriver.Model = forceString(deviceSettingsInfo['Model%d' % deviceIndex]) if deviceSettingsInfo.has_key('AccessPassword%d' % deviceIndex): self._ecrDriver.AccessPassword = forceString(deviceSettingsInfo['AccessPassword%d' % deviceIndex]) if deviceSettingsInfo.has_key('UseAccessPassword%d' % deviceIndex): self._ecrDriver.UseAccessPassword = forceBool(deviceSettingsInfo['UseAccessPassword%d' % deviceIndex]) if deviceSettingsInfo.has_key('WriteLogFile%d' % deviceIndex): self._ecrDriver.WriteLogFile = forceInt(deviceSettingsInfo['WriteLogFile%d' % deviceIndex])
def exportInt(self): dbf, query = self.prepareToExport() insurerCode = forceString( QtGui.qApp.db.translate('Organisation', 'id', self.cmbInsurer.value(), 'infisCode')) self.log(u'ЛПУ: код инфис: "%s".' % insurerCode) if not insurerCode: self.log(u'<b><font color=red>ОШИБКА</font></b>:' u'Для текущего ЛПУ не задан код инфис') self.exportedClients = set() # Составляем множество событий, содержащих услуги с модернизацией query.exec_() # встаем перед первой записью while query.next(): QtGui.qApp.processEvents() record = query.record() if self.aborted: break if not forceBool(record.value('bookkeeperCode')): self.log( u'<b><font color=red>ОШИБКА</font></b>:' u'Для подразделения %s не указан код бухгалтерии. Данные выгружены не будут.' % forceString(record.value('orgStructureName'))) continue self.progressBar.step() self.process(dbf, record, insurerCode) dbf.close()
def loadData(self): def addGap(gapList, record): bTime = forceTime(record.value('begTime')) eTime = forceTime(record.value('endTime')) if bTime < eTime: gapList.append((bTime, eTime)) elif bTime > eTime: gapList.append((bTime, QtCore.QTime(23, 59, 59, 999))) gapList.append((QtCore.QTime(0, 0), eTime)) db = QtGui.qApp.db orgStructureBaseId = self.orgStructureId result = [] orgStructureId = orgStructureBaseId while orgStructureId: recordsOrgStructureGap = db.getRecordList('OrgStructure_Gap', 'begTime, endTime', 'master_id=%d' %(orgStructureId), 'begTime, endTime') for record in recordsOrgStructureGap: addGap(result, record) recordInheritGaps = db.getRecordEx('OrgStructure', 'inheritGaps', 'id=%d'%(orgStructureId)) inheritGaps = forceBool(recordInheritGaps.value(0)) if recordInheritGaps else (False if recordsOrgStructureGap else True) if not inheritGaps: break orgStructureId = forceRef(db.translate('OrgStructure', 'id', orgStructureId, 'parent_id')) result.sort() for begTimeGap, endTimeGap in result: item = [ begTimeGap, endTimeGap ] self.items.append(item) self.reset()
def __init__(self, parent): CItemEditorBaseDialog.__init__(self, parent, 'rbMenu') self.addModels('MenuContent', CMenuContent(self)) self.setupUi(self) self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowMaximizeButtonHint | QtCore.Qt.WindowCloseButtonHint) self.setWindowTitleEx(u'Шаблон питания') self.setModels(self.tblMenuContent, self.modelMenuContent, self.selectionModelMenuContent) self.setupDirtyCather() self.cmbDiet.setTable('rbDiet') self.cmbCourtingDiet.setTable('rbDiet') # self.addObject('actDelRows', QtGui.QAction(u'Удалить выделенные строки', self)) # self.addObject('mnuMenuContent', QtGui.QMenu(self)) # self.mnuMenuContent.addAction(self.actDelRows) # self.tblMenuContent.setPopupMenu(self.mnuMenuContent) db = QtGui.qApp.db tableRBDiet = db.table('rbDiet') records = db.getRecordList(tableRBDiet) self.dietMap = {} for record in records: dietId = forceInt(record.value('id')) dietCode = forceString(record.value('code')) dietName = forceString(record.value('name')) allowMeals = forceBool(record.value('allow_meals')) self.dietMap[dietId] = { 'code': dietCode, 'name': dietName, 'allow_meals': allowMeals } self.tblMenuContent.addPopupDelRow()
def on_actDelete_triggered(self): row = self.tblItems.selectionModel().currentIndex().row() if row < self.tblItems.model().rowCount() - 1: item = self.tblItems.model().items()[row] if not forceBool(item.value('sentToMiac')): self.tblItems.model().removeRows(row, 1) self.tblItems.model().reset()
def setRecord(self, record): CItemEditorBaseDialog.setRecord(self, record) setLineEditValue(self.edtCode, record, 'code') setLineEditValue(self.edtName, record, 'name') setRBComboBoxValue(self.cmbUnit, record, 'unit_id') setRBComboBoxValue(self.cmbGroup, record, 'group_id') if self.otherTable: setLineEditValue(self.edtMnn, record, 'MNN') setLineEditValue(self.edtMnnLat, record, 'latinMNN') else: setLineEditValue(self.edtMnn, record, 'mnn') setLineEditValue(self.edtMnnLat, record, 'latinMnn') setLineEditValue(self.edtTradeName, record, 'tradeName') setLineEditValue(self.edtIssueForm, record, 'issueForm') setLineEditValue(self.edtIssueFormLat, record, 'latinIssueForm') setLineEditValue(self.edtConcentration, record, 'concentration') if forceBool(record.value('isDrugs')): self.rbtnIsDrugYes.setChecked(True) else: self.rbtnIsDrugNo.setChecked(True) setRBComboBoxValue(self.cmbBaseUnit, record, 'baseUnit_id') setRBComboBoxValue(self.cmbMinIndivUnit, record, 'minIndivisibleUnit_id') setLineEditValue(self.edtBaseUnitsInMinIndiv, record, 'baseUnitsInMinIndivisibleUnit') setLineEditValue(self.edtMinIndivInPacking, record, 'minIndivisibleUnitsInPackingUnit') setRBComboBoxValue(self.cmbPackingUnit, record, 'packingUnit_id')
def setClientId(self, clientId): self.clientId = clientId if clientId: if u'онко' in forceString(QtGui.qApp.db.translate('Organisation', 'id', QtGui.qApp.currentOrgId(), 'infisCode')): vipRecord = QtGui.qApp.db.getRecordEx( QtGui.qApp.db.table('ClientVIP'), [ QtGui.qApp.db.table('ClientVIP')['client_id'], QtGui.qApp.db.table('ClientVIP')['color'] ], [ QtGui.qApp.db.table('ClientVIP')['deleted'].eq(0), QtGui.qApp.db.table('ClientVIP')['client_id'].eq(self.clientId) ] ) self.isVipClient = forceBool(vipRecord); if self.isVipClient: self.vipColor = forceString(vipRecord.value('color')) self.txtClientInfoBrowser.setHtml(getClientBanner(clientId)) self.checkVipPerson(self.txtClientInfoBrowser) db = QtGui.qApp.db table = db.table('Client') record = db.getRecord(table, 'sex, birthDate', clientId) if record: self.clientSex = forceInt(record.value('sex')) self.clientBirthDate = forceDate(record.value('birthDate')) self.clientAge = calcAgeTuple(self.clientBirthDate, self.date) else: self.txtClientInfoBrowser.setText('')
def __init__(self, parent, idList): CDialogBase.__init__(self, parent) self.setupUi(self) db = QtGui.qApp.db self._syncDatetime = None self._deathAttachTypeId = forceRef(db.translate('rbAttachType', 'code', '8', 'id')) self._attachedIdList = [] self._deattachedIdList = [] if idList: tableACI = db.table('AttachedClientInfo') cols = [ tableACI['id'], db.makeField(tableACI['endDate'].isNull()).alias('toAttach') ] for rec in db.iterRecordList(tableACI, cols, tableACI['id'].inlist(idList)): id = forceRef(rec.value('id')) if forceBool(rec.value('toAttach')): self._attachedIdList.append(id) else: self._deattachedIdList.append(id) self.edtSelectedA.setText(str(len(self._attachedIdList))) self.edtSelectedD.setText(str(len(self._deattachedIdList))) self.resetProgressBar() self.setWindowTitle(u'Синхронизация с ТФОМС')
def getReportData(self, orgStructureIdList): db = self.db tableOrgStructure = db.table('OrgStructure') orgStructurePath = db.func.getOrgStructurePath(tableOrgStructure['id']) cols = [ tableOrgStructure['id'], tableOrgStructure['name'], db.makeField(tableOrgStructure['isArea'].ne( COrgStructureAreaInfo.No)).alias('isArea'), orgStructurePath.alias('path') ] cond = [tableOrgStructure['id'].inlist(orgStructureIdList)] order = [orgStructurePath.desc(), tableOrgStructure['name']] isArea = {} name = {} count = {} path = {} for rec in db.iterRecordList(tableOrgStructure, cols, cond, order=order): orgStructureId = forceRef(rec.value('id')) path[orgStructureId] = forceString(rec.value('path')) isArea[orgStructureId] = forceBool(rec.value('isArea')) name[orgStructureId] = forceString(rec.value('name')) count[orgStructureId] = getAttachedCount(orgStructureId) idList = sorted( count.keys(), key=lambda orgStructureId: (-path[orgStructureId].count('.'), name[orgStructureId])) return [(isArea[orgStructureId], name[orgStructureId], count[orgStructureId]) for orgStructureId in idList]