コード例 #1
0
    def imprimeEtiquetas(self, data):
        tipo = data['formato']
        formato = FORMATOS_SUPORTADOS[tipo]

        p = []

        # protocolos não utilizados
        paginas = self.request.paginas
        if paginas:

            # TODO: refatorar, semelhante ao db.Protocolo.__init__
            ano = datetime.datetime.now().year
            session = Session()
            max_seq = session.bind.execute(
                'SELECT max(p.seq) from protocolo p where p.ano = %d' %
                ano).fetchone()[0]
            seq = max_seq is None and 1 or max_seq + 1

            for pagina in range(paginas):
                l = []
                for linha in range(formato['Linhas']):
                    c = []
                    for coluna in range(formato['Colunas']):
                        dv = calculaDigitoVerificador(seq, ano)
                        numero = "%08d/%04d-%02d" % (seq, ano, dv)
                        seq += 1
                        c.append(numero)
                    l.append(c)
                p.append(l)

        # protocolos e quantidades
        nq = []
        for i in range(10):
            numero = self.request.get('numero%d' % i, '')
            quantidade = self.request.get('quantidade%d' % i, 0)
            if numero and quantidade:
                for j in range(quantidade):
                    nq.append(numero)
        while nq:
            l = []
            for linha in range(formato['Linhas']):
                c = []
                for coluna in range(formato['Colunas']):
                    numero = nq.pop(0)
                    c.append(numero)
                    if not nq: break
                l.append(c)
                if not nq: break
            p.append(l)

        pagesize = formato['Papel'] == 'A4' and A4 or letter
        c = canvas.Canvas('/tmp/%s.pdf' % self.request.SESSION.id,
                          pagesize=pagesize)
        for numeros in p:
            geraPagina(formato, numeros, c, pagesize)
            c.showPage()
        c.save()

        go('download-etiquetas')
コード例 #2
0
 def render(self):
     session = Session()
     r = self.request
     content = session.query(db.Referencia).get((r.protocolo_id, r.referencia_id))
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u'Registro removido.'), 'info')
     go('list-referencia', protocolo_id=r.protocolo_id)
コード例 #3
0
ファイル: views.py プロジェクト: LeandroRoberto/il.spdo
 def render(self):
     session = Session()
     r = self.request
     content = session.query(db.PessoaOrigem).get((r.protocolo_id, r.pessoa_id))
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u'Registro removido.'), 'info')
     go('show-protocolo', id=r.protocolo_id)
コード例 #4
0
 def render(self):
     session = Session()
     r = self.request
     content = session.query(db.PessoaDestino).get((r.protocolo_id, r.pessoa_id))
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u'Registro removido.'), 'info')
     go('show-protocolo', id=r.protocolo_id)
コード例 #5
0
ファイル: views.py プロジェクト: rogeriofalcone/il.spdo
 def render(self):
     session = Session()
     r = self.request
     content = session.query(db.PessoaDestino).get((r.protocolo_id, r.pessoa_id))
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u"Registro removido."), "info")
     go("show-protocolo", id=r.protocolo_id)
コード例 #6
0
ファイル: views.py プロジェクト: rogeriofalcone/il.spdo
 def render(self):
     session = Session()
     content = session.query(db.Transicao).get(self.request.id)
     fluxo_id = content.fluxo_id
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u"Registro removido."), "info")
     go("list-transicao", fluxo_id=fluxo_id)
コード例 #7
0
ファイル: views.py プロジェクト: rogeriofalcone/il.spdo
 def render(self):
     session = Session()
     r = self.request
     content = session.query(db.Referencia).get((r.protocolo_id, r.referencia_id))
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u"Registro removido."), "info")
     go("list-referencia", protocolo_id=r.protocolo_id)
コード例 #8
0
 def render(self):
     session = Session()
     content = session.query(db.Transicao).get(self.request.id)
     fluxo_id = content.fluxo_id
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u'Registro removido.'), 'info')
     go('list-transicao', fluxo_id=fluxo_id)
コード例 #9
0
ファイル: etiquetas.py プロジェクト: interlegis/il.spdo
    def imprimeEtiquetas(self, data):
        tipo = data['formato']
        formato = FORMATOS_SUPORTADOS[tipo]

        p = []

        # protocolos não utilizados
        paginas = self.request.paginas
        if paginas:

            # TODO: refatorar, semelhante ao db.Protocolo.__init__
            ano = datetime.datetime.now().year
            session = Session()
            max_seq = session.bind.execute('SELECT max(p.seq) from protocolo p where p.ano = %d' % ano).fetchone()[0]
            seq = max_seq is None and 1 or max_seq + 1            

            for pagina in range(paginas):
                l = []
                for linha in range(formato['Linhas']):
                    c = []
                    for coluna in range(formato['Colunas']):
                        dv = calculaDigitoVerificador(seq, ano)
                        numero = "%08d/%04d-%02d" % (seq, ano, dv)
                        seq += 1
                        c.append(numero)
                    l.append(c)
                p.append(l)
                
        # protocolos e quantidades
        nq = []
        for i in range(10):
            numero = self.request.get('numero%d' % i, '')
            quantidade = self.request.get('quantidade%d' % i, 0)
            if numero and quantidade:
                for j in range(quantidade):
                    nq.append(numero)                    
        while nq:
            l = []
            for linha in range(formato['Linhas']):
                c = []
                for coluna in range(formato['Colunas']):
                    numero = nq.pop(0)
                    c.append(numero)
                    if not nq: break
                l.append(c)
                if not nq: break
            p.append(l)

        pagesize = formato['Papel'] == 'A4' and A4 or letter
        c = canvas.Canvas('/tmp/%s.pdf' % self.request.SESSION.id, pagesize=pagesize)
        for numeros in p:
            geraPagina(formato, numeros, c, pagesize)
            c.showPage()
        c.save()

        go('download-etiquetas')
コード例 #10
0
 def render(self):
     session = Session()
     api = getUtility(ISPDOAPI)
     pessoa_id = api.getAuthPessoa().id
     content = session.query(db.Notificacao).get((pessoa_id, self.request.protocolo_id))
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u'Registro removido.'), 'info')
     go('list-notificacao')
コード例 #11
0
ファイル: views.py プロジェクト: rogeriofalcone/il.spdo
 def render(self):
     session = Session()
     api = getUtility(ISPDOAPI)
     pessoa_id = api.getAuthPessoa().id
     content = session.query(db.Notificacao).get((pessoa_id, self.request.protocolo_id))
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u"Registro removido."), "info")
     go("list-notificacao")
コード例 #12
0
 def render(self):
     session = Session()
     content = session.query(db.Observacao).get(self.request.id)
     protocolo_id = content.protocolo_id
     sc = getUtility(ISecurityChecker)
     sc.enforce('acessar_remove_observacao', protocolo_id=protocolo_id, observacao_id=self.request.id)
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u'Registro removido.'), 'info')
     go('show-protocolo', id=protocolo_id)
コード例 #13
0
ファイル: views.py プロジェクト: LeandroRoberto/il.spdo
 def render(self):
     session = Session()
     content = session.query(db.Anexo).get(self.request.id)
     protocolo_id = content.protocolo_id
     sc = getUtility(ISecurityChecker)
     sc.enforce('acessar_remove_anexo', protocolo_id=protocolo_id, anexo_id=self.request.id)
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u'Registro removido.'), 'info')
     go('show-protocolo', id=protocolo_id)
コード例 #14
0
ファイル: views.py プロジェクト: rogeriofalcone/il.spdo
 def render(self):
     session = Session()
     content = session.query(db.Observacao).get(self.request.id)
     protocolo_id = content.protocolo_id
     sc = getUtility(ISecurityChecker)
     sc.enforce("acessar_remove_observacao", protocolo_id=protocolo_id, observacao_id=self.request.id)
     session.delete(content)
     session.flush()
     status = IStatusMessage(self.request)
     status.add(_(u"Registro removido."), "info")
     go("show-protocolo", id=protocolo_id)
コード例 #15
0
ファイル: protocolo.py プロジェクト: interlegis/il.spdo
 def consultarProtocolo(self, data):
     status = IStatusMessage(self.request)
     session = Session()
     query = session.query(db.Protocolo)
     clause = or_(db.Protocolo.numero.contains(data['numero']),
                  db.Protocolo.numero.ilike(data['numero']))
     protocolo = query.filter(clause).first()
     if protocolo is None:
         status.add(_(u'Verifique o número informado. Protocolo: ' + data['numero']), 'error')
         go('search-protocolo-barra')
     else:
         go('show-protocolo', id=protocolo.id)
コード例 #16
0
ファイル: protocolo.py プロジェクト: interlegis/il.spdo
 def consultarProtocolos(self, data):
     r = self.request.response
     for campo in ['tipoprotocolo', 'tipodocumento_id', 'assunto', 'situacao_id',
                   'origem', 'destino', 'area_id', 'tempo_inativo']:
         cookie_name = 'search-protocolo-' + campo
         if data[campo] is None:
             r.expireCookie(cookie_name)
         else:
             v = data[campo]
             # API de cookies do Zope não suporta unicode
             if type(v) == type(u''):
                 v = v.encode('utf-8')
             r.setCookie(cookie_name, v)
     go('search-protocolo')
コード例 #17
0
ファイル: protocolo.py プロジェクト: rogeriofalcone/il.spdo
 def consultarProtocolo(self, data):
     status = IStatusMessage(self.request)
     session = Session()
     query = session.query(db.Protocolo)
     clause = or_(db.Protocolo.numero.contains(data['numero']),
                  db.Protocolo.numero.ilike(data['numero']))
     protocolo = query.filter(clause).first()
     if protocolo is None:
         status.add(
             _(u'Verifique o número informado. Protocolo: ' +
               data['numero']), 'error')
         go('search-protocolo-barra')
     else:
         go('show-protocolo', id=protocolo.id)
コード例 #18
0
ファイル: tramite.py プロジェクト: interlegis/il.spdo
 def receberProtocolo(self, data):
     status = IStatusMessage(self.request)
     session = Session()
     protocolo = session.query(Protocolo).filter_by(numero=data['numero']).first()
     if protocolo is None:
         status.add(_(u'Verifique o número informado. Protocolo: ' + data['numero']), 'error')
     else:
         sc = getUtility(ISecurityChecker)
         if not sc.check('tramitar_recebimento', protocolo_id=protocolo.id):
             status.add(_(u'Protocolo não disponível para recebimento. Protocolo: ') + protocolo.numero, 'error')
         else:
             api = getUtility(ISPDOAPI)
             api.TramiteRecebimento([protocolo.id])
             status.add(_(u'Protocolo recebido com sucesso! Protocolo: ') + protocolo.numero, 'info')            
     go('recebimento-tramite-barra')
コード例 #19
0
ファイル: protocolo.py プロジェクト: rogeriofalcone/il.spdo
 def consultarProtocolos(self, data):
     r = self.request.response
     for campo in [
             'tipoprotocolo', 'tipodocumento_id', 'assunto', 'situacao_id',
             'origem', 'destino', 'area_id', 'tempo_inativo'
     ]:
         cookie_name = 'search-protocolo-' + campo
         if data[campo] is None:
             r.expireCookie(cookie_name)
         else:
             v = data[campo]
             # API de cookies do Zope não suporta unicode
             if type(v) == type(u''):
                 v = v.encode('utf-8')
             r.setCookie(cookie_name, v)
     go('search-protocolo')
コード例 #20
0
 def receberProtocolo(self, data):
     status = IStatusMessage(self.request)
     session = Session()
     protocolo = session.query(Protocolo).filter_by(
         numero=data['numero']).first()
     if protocolo is None:
         status.add(
             _(u'Verifique o número informado. Protocolo: ' +
               data['numero']), 'error')
     else:
         sc = getUtility(ISecurityChecker)
         if not sc.check('tramitar_recebimento', protocolo_id=protocolo.id):
             status.add(
                 _(u'Protocolo não disponível para recebimento. Protocolo: '
                   ) + protocolo.numero, 'error')
         else:
             api = getUtility(ISPDOAPI)
             api.TramiteRecebimento([protocolo.id])
             status.add(
                 _(u'Protocolo recebido com sucesso! Protocolo: ') +
                 protocolo.numero, 'info')
     go('recebimento-tramite-barra')
コード例 #21
0
ファイル: base.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     go('show-'+vs(self.klass), id=self.rec_id())
コード例 #22
0
ファイル: transicao.py プロジェクト: rogeriofalcone/il.spdo
 def nextURL(self):
     api = getUtility(ISPDOAPI)
     fluxo_id = api.getFluxoId()
     go('list-transicao', fluxo_id=fluxo_id)
コード例 #23
0
 def cancelURL(self):
     go('list-protocolo')
コード例 #24
0
 def nextURL(self):
     go('envio-tramite')
コード例 #25
0
 def nextURL(self):
     go('list-' + vs(self.klass))
コード例 #26
0
ファイル: notificacao.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     go('list-notificacao')
コード例 #27
0
ファイル: tramite.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     go('envio-tramite')
コード例 #28
0
 def nextURL(self):
     go('recebimento-tramite')
コード例 #29
0
ファイル: transicao.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     api = getUtility(ISPDOAPI)
     fluxo_id = api.getFluxoId()
     go('list-transicao', fluxo_id=fluxo_id)
コード例 #30
0
ファイル: anexo.py プロジェクト: rogeriofalcone/il.spdo
 def nextURL(self):
     api = getUtility(ISPDOAPI)
     protocolo_id = api.getProtocoloId()
     go("show-protocolo", id=protocolo_id)
コード例 #31
0
 def nextURL(self):
     go('list-notificacao')
コード例 #32
0
ファイル: protocolo.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     go('show-protocolo', id=self.protocolo_id)
コード例 #33
0
ファイル: referencia.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     api = getUtility(ISPDOAPI)
     protocolo_id = api.getProtocoloId()
     go('list-referencia', protocolo_id=protocolo_id)
コード例 #34
0
ファイル: base.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     go('list-'+vs(self.klass))
コード例 #35
0
ファイル: base.py プロジェクト: interlegis/il.spdo
 def editURL(self):
     go('edit-'+vs(self.klass), id=self.rec_id())
コード例 #36
0
 def nextURL(self):
     go('recuperacao-tramite')
コード例 #37
0
ファイル: tramite.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     go('recuperacao-tramite')
コード例 #38
0
 def nextURL(self):
     api = getUtility(ISPDOAPI)
     protocolo_id = api.getProtocoloId()
     go('show-protocolo', id=protocolo_id)
コード例 #39
0
 def editURL(self):
     go('edit-' + vs(self.klass), id=self.rec_id())
コード例 #40
0
ファイル: protocolo.py プロジェクト: interlegis/il.spdo
 def cancelURL(self):
     go('list-protocolo')
コード例 #41
0
 def nextURL(self):
     go('show-' + vs(self.klass), id=self.rec_id())
コード例 #42
0
ファイル: protocolo.py プロジェクト: rogeriofalcone/il.spdo
 def nextURL(self):
     go('show-protocolo', id=self.protocolo_id)
コード例 #43
0
 def nextURL(self):
     api = getUtility(ISPDOAPI)
     protocolo_id = api.getProtocoloId()
     go('list-referencia', protocolo_id=protocolo_id)
コード例 #44
0
ファイル: tramite.py プロジェクト: interlegis/il.spdo
 def nextURL(self):
     go('recebimento-tramite')