Beispiel #1
0
    def a_tag(self, grupo_cat=None, con_dnis=True):
        """Devuelve la informacion del recuento para almacenar en tag rfid."""
        valores = []

        candidatos = Candidatura.para_recuento(grupo_cat)
        for candidato in candidatos:
            resultado = self.get_resultados(candidato.id_umv)
            valores.append(resultado)

        ordered_keys = sorted(self.campos_extra.keys())
        for key in ordered_keys:
            valores.append(self.campos_extra[key])

        ordered_keys = sorted(self.listas_especiales.keys())
        for key in ordered_keys:
            valores.append(self.listas_especiales[key])

        container = Container()

        # cod_mesa
        if SMART_PACKING:
            num_mesa = self.mesa.numero.encode('ascii')
            try:
                datos = pack(int(num_mesa), valores)
            except NameError:
                # hacemos "upgrade" a chip de 2k
                datos = pack(int(num_mesa), valores, max_bits=MAXBITS*2)
            container.datos = datos
        else:
            cod_mesa = self.mesa.codigo.encode('ascii')
            packed = pack(valores)
            datos = str(len(cod_mesa)).zfill(2).encode() + cod_mesa + packed

            container.datos = datos

        documentos = []
        for autoridad in self.autoridades:
            documentos.append(int(autoridad.nro_documento))

        if con_dnis:
            documentos = []
            for autoridad in self.autoridades:
                documentos.append(int(autoridad.nro_documento))
            len_documentos = len(documentos)
            if len_documentos == 1:
                documentos.append(0)
            elif len_documentos == 0:
                documentos = [0, 0]

            documentos = pack_slow(documentos, BITS_DNI)
            container.len_docs = len(documentos)
            container.documentos = documentos

            struct = struct_recuento_dni
        else:
            struct = struct_recuento

        container.grupo = int(grupo_cat) if grupo_cat is not None else 0

        return struct.build(container)
Beispiel #2
0
    def a_tag(self, grupo_cat=None, con_dnis=True):
        """Devuelve la informacion del recuento para almacenar en tag rfid."""
        valores = []

        candidatos = Candidatura.para_recuento(grupo_cat)
        for candidato in candidatos:
            resultado = self.get_resultados(candidato.id_umv)
            valores.append(resultado)

        ordered_keys = sorted(self.campos_extra.keys())
        for key in ordered_keys:
            valores.append(self.campos_extra[key])

        ordered_keys = sorted(self.listas_especiales.keys())
        for key in ordered_keys:
            valores.append(self.listas_especiales[key])

        container = Container()

        # cod_mesa
        if SMART_PACKING:
            num_mesa = self.mesa.numero.encode('ascii')
            try:
                datos = pack(int(num_mesa), valores)
            except NameError:
                # hacemos "upgrade" a chip de 2k
                datos = pack(int(num_mesa), valores, max_bits=MAXBITS * 2)
            container.datos = datos
        else:
            cod_mesa = self.mesa.codigo.encode('ascii')
            packed = pack(valores)
            datos = str(len(cod_mesa)).zfill(2).encode() + cod_mesa + packed

            container.datos = datos

        documentos = []
        for autoridad in self.autoridades:
            documentos.append(int(autoridad.nro_documento))

        if con_dnis:
            documentos = []
            for autoridad in self.autoridades:
                documentos.append(int(autoridad.nro_documento))
            len_documentos = len(documentos)
            if len_documentos == 1:
                documentos.append(0)
            elif len_documentos == 0:
                documentos = [0, 0]

            documentos = pack_slow(documentos, BITS_DNI)
            container.len_docs = len(documentos)
            container.documentos = documentos

            struct = struct_recuento_dni
        else:
            struct = struct_recuento

        container.grupo = int(grupo_cat) if grupo_cat is not None else 0

        return struct.build(container)
Beispiel #3
0
def encodear_string_apertura(string):
    string = six.text_type(string.upper())
    datos = []
    letra = None
    for char in string:
        codigo_letra = ord(char)
        if 65 <= codigo_letra <= 90:
            letra = codigo_letra - 64
        elif char == "'":
            letra = 28
        elif char == u"Ñ":
            letra = 29
        elif char == " ":
            letra = 30
        elif char == u"Á":
            letra = 1
        elif char == u"É":
            letra = 5
        elif char == u"Í":
            letra = 9
        elif char == u"Ó":
            letra = 15
        elif char == u"Ú":
            letra = 21
        elif char == u";":
            letra = 31

        if letra is not None:
            datos.append(letra)

    ret = pack_slow(datos, 5)
    return ret
Beispiel #4
0
    def encodear_autoridades(self):
        nombres = []
        dnis = []
        tipos = []
        for autoridad in self.autoridades:
            nombres.append(autoridad.apellido)
            nombres.append(autoridad.nombre)
            tipo = "%s" % TIPO_DOC.index(autoridad.tipo_documento)
            tipos.append(tipo.encode())
            dnis.append(int(autoridad.nro_documento))

        nombres = encodear_string_apertura(";".join(nombres))
        dnis = pack_slow(dnis, BITS_DNI)
        return nombres, dnis, tipos
Beispiel #5
0
    def encodear_autoridades(self):
        nombres = []
        dnis = []
        tipos = []
        for autoridad in self.autoridades:
            nombres.append(autoridad.apellido)
            nombres.append(autoridad.nombre)
            tipo = "%s" % TIPO_DOC.index(autoridad.tipo_documento)
            tipos.append(tipo.encode())
            dnis.append(int(autoridad.nro_documento))

        nombres = encodear_string_apertura(";".join(nombres))
        dnis = pack_slow(dnis, BITS_DNI)
        return nombres, dnis, tipos