Source code for stoqlib.reporting.utils

# -*- coding: utf-8 -*-
# vi:si:et:sw=4:sts=4:ts=4

##
## Copyright (C) 2005-2013 Async Open Source
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU Lesser General Public License
## as published by the Free Software Foundation; either version 2
## of the License, or (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU Lesser General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., or visit: http://www.gnu.org/.
##
##
## Author(s): Stoq Team <stoq-devel@async.com.br>
##

""" Useful functions related to reports building and visualization. """

import base64
import logging
import platform

from kiwi.environ import environ

from stoqlib.database.runtime import get_current_branch, get_default_store
from stoqlib.exceptions import DatabaseInconsistency
from stoqlib.lib.formatters import format_phone_number
from stoqlib.lib.parameters import sysparam
from stoqlib.lib.translation import stoqlib_gettext

_ = stoqlib_gettext
_system = platform.system()
log = logging.getLogger(__name__)
# a list of programs to be tried when a report needs be viewed


[docs]def get_logo_data(store): logo_domain = sysparam.get_object(store, 'CUSTOM_LOGO_FOR_REPORTS') if logo_domain and logo_domain.image: data = logo_domain.image else: data = environ.get_resource_string('stoq', 'pixmaps', 'stoq_logo_bgwhite.png') return 'data:image/png;base64,' + base64.b64encode(data)
[docs]def get_header_data(): default_store = get_default_store() branch = get_current_branch(default_store) person = branch.person company = person.company main_address = person.get_main_address() if not person.name: # pragma nocover raise DatabaseInconsistency("The person by ID %r should have a " "name at this point" % (person.id, )) data = { 'title': branch.get_description(), 'lines': [], } # Address if main_address: address_parts = [] address_parts.append(main_address.get_address_string()) if main_address.postal_code: address_parts.append(main_address.postal_code) if main_address.get_city(): address_parts.append(main_address.get_city()) if main_address.get_state(): address_parts.append(main_address.get_state()) if address_parts: data['lines'].append(' - '.join(address_parts)) # Contact contact_parts = [] if person.phone_number: contact_parts.append(format_phone_number(person.phone_number)) if person.mobile_number: contact_parts.append(format_phone_number(person.mobile_number)) if person.fax_number: contact_parts.append(_("Fax: %s") % format_phone_number(person.fax_number)) if person.email: contact_parts.append(person.email) if contact_parts: data['lines'].append(' - '.join(contact_parts)) # Company details if company: company_parts = [] if company.get_cnpj_number(): company_parts.append(_("CNPJ: %s") % company.cnpj) if company.get_state_registry_number(): company_parts.append(_("State Registry: %s") % company.state_registry) if company_parts: data['lines'].append(' - '.join(company_parts)) return data