示例#1
0
 def create_pages(self):
     if not ACTA_DESGLOSADA:
         self.pages = [(cert, None, None)
                       for cert in self.secuencia_certificados]
     else:
         self.pages = []
         categorias = Categoria.many(sorted="posicion")
         for tipo_certificado in self.secuencia_certificados:
             for categoria in categorias:
                 self.pages.append(
                     (tipo_certificado, categoria.codigo, categoria.nombre))
示例#2
0
 def create_pages(self):
     if not ACTA_DESGLOSADA:
         self.pages = [(cert, None, None) for cert
                       in self.secuencia_certificados]
     else:
         self.pages = []
         categorias = Categoria.many(sorted="posicion")
         for tipo_certificado in self.secuencia_certificados:
             for categoria in categorias:
                 self.pages.append((tipo_certificado, categoria.codigo,
                                    categoria.nombre))
示例#3
0
    def imprimir_secuencia(self,
                           copias=False,
                           pre_page_callback=None,
                           post_page_callback=None,
                           waiting_paper_callback=None):
        """ pre_page_callback y post_page_callback reciben como parametro
            la page sobre la cual son llamados.
        """
        #self.modulo.rampa.desregistrar_eventos()

        # Solo modifico los callbacks de post y pre impresion de página si los
        # paso explicitamente para evitar que se sobreescriban en la
        # autorreferencia que hace esta funcion
        if pre_page_callback is not None:
            self.pre_page_callback = pre_page_callback
        if post_page_callback is not None:
            self.post_page_callback = post_page_callback
        if waiting_paper_callback is not None:
            self.waiting_paper_callback = waiting_paper_callback

        if copias:
            self.primer_acta = False
            if sesion.recuento.hora is None:
                self.callback = self.reset_copias
                tipo_acta = CIERRE_COPIA_FIEL
            else:
                tipo_acta = CIERRE_CERTIFICADO

            if not ACTA_DESGLOSADA:
                self.pages = [(tipo_acta, None, None)]
            elif sesion.recuento.cod_categoria is not None:
                categoria = Categoria.get(sesion.recuento.cod_categoria)
                self.pages = [(tipo_acta, sesion.recuento.cod_categoria,
                               categoria.nombre)]
            else:
                self.pages = []
                categorias = Categoria.all(sorted="posicion")
                for categoria in categorias:
                    self.pages.append(
                        (tipo_acta, categoria.codigo, categoria.nombre))
        try:
            page = self.pages.pop(0)

            def _inner(datos_sensores):
                tiene_tarjeta = datos_sensores['paper_out_1']
                if tiene_tarjeta:
                    if USA_ARMVE:
                        self.modulo.rampa.remover_nuevo_papel()
                    else:
                        sesion.impresora.remover_insertando_papel()

                    self.panel(RECUENTO_GENERANDO)
                    gobject.timeout_add(200, self.imprimir, page,
                                        self.imprimir_secuencia, copias)

            papel = sesion.impresora.full_paper_status()
            if papel is not None and papel['paper_out_1']:
                _inner(papel)
            else:
                if self.waiting_paper_callback is not None:
                    self.waiting_paper_callback(page)
                    if USA_ARMVE:
                        self.modulo.rampa.registrar_nuevo_papel(_inner)
                    else:
                        sesion.impresora.registrar_insertando_papel(_inner)
        except IndexError:
            self.callback()
示例#4
0
    def imprimir_secuencia(self, copias=False, pre_page_callback=None,
                           post_page_callback=None,
                           waiting_paper_callback=None):
        """ pre_page_callback y post_page_callback reciben como parametro
            la page sobre la cual son llamados.
        """
        #self.modulo.rampa.desregistrar_eventos()

        # Solo modifico los callbacks de post y pre impresion de página si los
        # paso explicitamente para evitar que se sobreescriban en la
        # autorreferencia que hace esta funcion
        if pre_page_callback is not None:
            self.pre_page_callback = pre_page_callback
        if post_page_callback is not None:
            self.post_page_callback = post_page_callback
        if waiting_paper_callback is not None:
            self.waiting_paper_callback = waiting_paper_callback

        if copias:
            self.primer_acta = False
            if sesion.recuento.hora is None:
                self.callback = self.reset_copias
                tipo_acta = CIERRE_COPIA_FIEL
            else:
                tipo_acta = CIERRE_CERTIFICADO

            if not ACTA_DESGLOSADA:
                self.pages = [(tipo_acta, None, None)]
            elif sesion.recuento.cod_categoria is not None:
                categoria = Categoria.get(sesion.recuento.cod_categoria)
                self.pages = [(tipo_acta, sesion.recuento.cod_categoria,
                               categoria.nombre)]
            else:
                self.pages = []
                categorias = Categoria.all(sorted="posicion")
                for categoria in categorias:
                    self.pages.append((tipo_acta, categoria.codigo,
                                       categoria.nombre))
        try:
            page = self.pages.pop(0)

            def _inner(datos_sensores):
                tiene_tarjeta = datos_sensores['paper_out_1']
                if tiene_tarjeta:
                    if USA_ARMVE:
                        self.modulo.rampa.remover_nuevo_papel()
                    else:
                        sesion.impresora.remover_insertando_papel()

                    self.panel(RECUENTO_GENERANDO)
                    gobject.timeout_add(200, self.imprimir, page,
                                        self.imprimir_secuencia, copias)
            papel = sesion.impresora.full_paper_status()
            if papel is not None and papel['paper_out_1']:
                _inner(papel)
            else:
                if self.waiting_paper_callback is not None:
                    self.waiting_paper_callback(page)
                    if USA_ARMVE:
                        self.modulo.rampa.registrar_nuevo_papel(_inner)
                    else:
                        sesion.impresora.registrar_insertando_papel(_inner)
        except IndexError:
            self.callback()