예제 #1
0
파일: Col.py 프로젝트: soltanoff/pyqt_libs
 def paintCell(self, values):
     val = self.color
     if val:
         colorName = forceString(val)
         if colorName:
             return QtCore.QVariant(QtGui.QColor(colorName))
     return CCol.invalid
예제 #2
0
 def _load(self):
     table = self._db.table('INFORMATION_SCHEMA.ROUTINES')
     typeNameMap = {
         CDatabaseRoutine.FUNCTION: 'FUNCTION',
         CDatabaseRoutine.PROCEDURE: 'PROCEDURE'
     }
     cols = [table['ROUTINE_NAME'], table['ROUTINE_TYPE']]
     cond = [
         table['ROUTINE_SCHEMA'].eq(self._db.db.databaseName()),
         table['ROUTINE_TYPE'].eq(typeNameMap[self._routineType])
     ]
     self._routineMap = dict(
         (forceString(rec.value('ROUTINE_NAME')),
          CDatabaseRoutine(self._db, forceString(rec.value('ROUTINE_NAME')),
                           self._routineMap))
         for rec in self._db.iterRecordList(table, cols, cond))
예제 #3
0
    def enableBarCodeReader(self,
                            busyByEvent=False,
                            mode=CBarCodeReaderThread.omsMode,
                            createNew=False,
                            withoutSignals=False):
        isBarCodeReaderEnable = forceBool(
            getVal(QtGui.qApp.preferences.appPrefs, 'BarCodeReaderEnable',
                   False))
        scannerPort = forceString(
            getVal(QtGui.qApp.preferences.appPrefs, 'BarCodeReaderName',
                   u"COM3"))
        if isBarCodeReaderEnable:
            if (not hasattr(QtGui.qApp, 'barCodethread') or createNew) or \
                    (hasattr(QtGui.qApp, 'barCodethread') and QtGui.qApp.barCodethread.isFinished()):
                self.disableBarCodeReader()
                QtGui.qApp.barCodethread = CBarCodeReaderThread(scannerPort)
                QtGui.qApp.barCodethread.start()

            if not withoutSignals:
                QtGui.qApp.barCodethread.barCodeReader.read.connect(
                    self.barCodeResultHandler)
                QtGui.qApp.barCodethread.barCodeReader.error.connect(
                    self.onBarcodeReaderError)
            QtGui.qApp.barCodethread.busyByEvent = busyByEvent
            QtGui.qApp.barCodethread.setFunc(mode)
예제 #4
0
def databaseFormatSex(sex):
    sex = forceString(sex).upper()
    if sex == u'М':
        return 1
    elif sex == u'Ж':
        return 2
    else:
        return None
예제 #5
0
    def mimeData(self, indexes):
        idList = set()
        for index in indexes:
            idList.add(forceString(self.idList()[index.row()]))

        mimeData = QMimeData()
        mimeData.setText(u','.join(idList))
        return mimeData
예제 #6
0
 def __init__(self, database, tableName, field, fieldType=None):
     self.database = database  # type: CDatabase
     self.tableName = tableName
     if isinstance(field, QtSql.QSqlField):
         self.fieldName = database.escapeFieldName(field.name())
         self.field = field
         self.isSurrogate = False
     elif isinstance(field, (basestring, QString)):
         self.fieldName = forceString(field)
         self.field = QtSql.QSqlField(
             field, fieldType
             if isinstance(fieldType, QVariant.Type) else QVariant.String)
         self.isSurrogate = True
    def setEditorData(self, editor, value, record):
        subTable = self._caches[0].table
        cond = self._editorValueFilter
        if isinstance(cond, tuple) and len(cond) == 2:
            masterFieldName, slaveFieldName = self._editorValueFilter
            masterValue = record.value(masterFieldName)
            cond = subTable[slaveFieldName].eq(masterValue)

        if not self._mapMasterIdToItemIdList.has_key(cond):
            self._mapMasterIdToItemIdList[cond] = QtGui.qApp.db.getIdList(table=subTable,
                                                                          where=cond)
        editor.clear()
        if self._addNone:
            editor.addItem(u'Не выбрано', userData=toVariant(None))

        for itemId in self._mapMasterIdToItemIdList[cond]:
            itemText = forceString(self.toString(itemId, record))
            editor.addItem(itemText, userData=toVariant(itemId))
예제 #8
0
def formatSNILS(SNILS):
    if SNILS:
        s = forceString(SNILS) + ' ' * 14
        return s[0:3] + '-' + s[3:6] + '-' + s[6:9] + ' ' + s[9:11]
    else:
        return u''
예제 #9
0
# -*- coding: utf-8 -*-
import re
from PyQt4.QtCore import *

from Utils.Forcing import forceString, forceStringEx, forceInt

trim = lambda x: forceString(x).strip()


# TODO: soltanoff: странный метод... Нужно сделать проще, зачем так сложно?
def nameCase(text):
    result = u''
    up = True
    for symbol in text:
        if symbol.isalpha():
            if up:
                result += symbol.upper()
                up = False
            else:
                result += symbol.lower()
        else:
            up = True
            result += symbol
    return result


def isNameValid(name):
    return not re.search(r'''[0-9a-zA-Z`~!@#$%^&*_=+\\|{}[\];:"<>?/().,]''',
                         forceStringEx(name))

예제 #10
0
    def readOMSBarCode(message):
        sixBitEncoding = {
            0: u' ',
            1: u'.',
            2: u'-',
            3: u'"',
            4: u'0',
            5: u'1',
            6: u'2',
            7: u'3',
            8: u'4',
            9: u'5',
            10: u'6',
            11: u'7',
            12: u'8',
            13: u'9',
            14: u'А',
            15: u'Б',
            16: u'В',
            17: u'Г',
            18: u'Д',
            19: u'Е',
            20: u'Ё',
            21: u'Ж',
            22: u'З',
            23: u'И',
            24: u'Й',
            25: u'К',
            26: u'Л',
            27: u'М',
            28: u'Н',
            29: u'О',
            30: u'П',
            31: u'Р',
            32: u'С',
            33: u'Т',
            34: u'У',
            35: u'Ф',
            36: u'Х',
            37: u'Ц',
            38: u'Ч',
            39: u'Ш',
            40: u'Щ',
            41: u'Ь',
            42: u'Ъ',
            43: u'Ы',
            44: u'Э',
            45: u'Ю',
            46: u'Я',
            47: u' ',
            48: u' ',
            49: u' ',
            50: u' ',
            51: u' ',
            52: u' ',
            53: u' ',
            54: u' ',
            55: u' ',
            56: u' ',
            57: u' ',
            58: u' ',
            59: u' ',
            60: u' ',
            61: u' ',
            62: u' ',
            63: u'|',
        }

        polisN = 0
        for i in message[1:9]:
            polisN = (polisN << 8) | i

        name = u''
        pos = 0
        rest = 0
        for i in message[9:60]:
            posMod = pos % 3
            if posMod == 0:
                name += sixBitEncoding[(i >> 2)]
                rest = i & 0x03
            elif posMod == 1:
                name += sixBitEncoding[(rest << 4) | (i >> 4)]
                rest = i & 0x0F
            elif posMod == 2:
                name += sixBitEncoding[(rest << 2) | (i >> 6)]
                name += sixBitEncoding[(i & 0x3F)]
                rest = 0
            pos += 1

        sex = message[60]

        bDays = 0  # birthDate
        for i in message[61:63]:
            bDays = (bDays << 8) | i

        dateBeg = datetime.date(1900, 1, 1)
        bDate = dateBeg + datetime.timedelta(days=bDays)

        pDays = 0
        for i in message[63:65]:
            pDays = (pDays << 8) | i

        polisEndDate = dateBeg + datetime.timedelta(days=pDays)

        ecp = u''
        for i in message[65:131]:
            ecp += u'%02X' % i

        nameSplit = name.split('|')
        endDate = QtCore.QDate(polisEndDate) if datetime.date(
            1900, 1, 1) != polisEndDate else QtCore.QDate()
        result = dict()
        result['lastName'] = nameSplit[0].strip()
        result['firstName'] = nameSplit[1].strip()
        result['patrName'] = nameSplit[2].strip()
        result['sex'] = sex
        result['bDate'] = QtCore.QDate(bDate)  # birth date
        result['number'] = forceString(polisN)
        # duration (срок действия)
        result['endDate'] = endDate
        result['errorMessage'] = u''
        return result
예제 #11
0
 def formatNative(self, values):
     return forceString(self.getValues(values)[0])
예제 #12
0
 def setEditorData(self, editor, value, record):
     index = editor.findText(forceString(value), Qt.MatchFixedString)
     if index < 0:
         index = 0
     editor.setCurrentIndex(index)
예제 #13
0
 def toString(self, val, record):
     str = forceString(val).lower()
     for item in self.values:
         if item.lower() == str:
             return toVariant(item)
     return toVariant(u'{' + forceString(val) + u'}')
예제 #14
0
 def getBackgroundColor(self, values):
     val = values[0]
     colorName = forceString(val)
     if colorName:
         return QVariant(QtGui.QColor(colorName))
     return CCol.invalid