def inserir_data_entrega(self, data_entrega): if data_entrega: txt = ObjectValue(attribute_name='format_data_entrega', display_format='Data de entrega: %s', top=2.05 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9} self.elements.append(txt)
def __init__(self): super(BandaPagamento, self).__init__() self.elements = [] self.elements.append(Line(top=0.1 * cm, bottom=0.1 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) txt = Label(text='Pagamento', top=0.2 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 11, 'alignment': TA_CENTER, 'leading': 11} self.elements.append(txt) # Condicao de pagamento txt = ObjectValue(attribute_name='cond_pagamento.get_forma_display', display_format='Forma: %s', top=1 * cm, left=0.5 * cm, width=4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'leading': 9} self.elements.append(txt) txt = ObjectValue(attribute_name='cond_pagamento.n_parcelas', display_format='Nº de parcelas: %s', top=1 * cm, left=5 * cm, width=3 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'leading': 9} self.elements.append(txt) self.height = 2 * cm
def inserir_data_emissao(self, data_emissao): if data_emissao: txt = ObjectValue(attribute_name='format_data_emissao', display_format='Data: %s', top=1.45 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) else: txt = SystemField(expression='Data: %(now:%d/%m/%Y)s', top=1.45 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9} self.elements.append(txt)
def inserir_informacoes_email(self): if not self.ender_info: top = 1.1 * cm else: top = 2.1 * cm txt = ObjectValue(attribute_name='cliente.email_padrao.email', display_format='Email: %s', top=top, left=8.1 * cm, width=11.3 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt)
def __init__(self): super(DadosCliente, self).__init__() self.ender_info = False self.elements = [] txt = ObjectValue(attribute_name='cliente.nome_razao_social', top=0.3 * cm, left=0.3 * cm, width=8 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT_BOLD, 'fontSize': 12, 'leading': 12} self.elements.append(txt) self.height = 2.7 * cm
def inserir_informacoes_telefone(self): if not self.ender_info: top = 1.1 * cm else: top = 2.1 * cm txt = ObjectValue(attribute_name='fornecedor.telefone_padrao.telefone', display_format='Tel: %s', top=top, left=0.3 * cm, width=8 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt)
def inserir_nome_razao_social(self, nome_razao_social): if nome_razao_social: txt = ObjectValue(attribute_name='nome_razao_social', top=0.3 * cm, left=0.3 * cm, width=8 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 12, 'leading': 12 } self.elements.append(txt) self.height = 2.7 * cm
def inserir_vendedor(self): self.elements.append( Line(top=2.5 * cm, bottom=2.5 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) txt = ObjectValue(attribute_name='vendedor', display_format='Vendedor: %s', top=2.6 * cm, left=0.5 * cm, width=19.4 * cm, height=2 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'leading': 9} self.elements.append(txt)
def __init__(self): super(Observacoes, self).__init__() self.elements = [] self.elements.append( Line(top=0.1 * cm, bottom=0.1 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) txt = Label(text='Observações', top=0.2 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 11, 'alignment': TA_CENTER, 'leading': 11 } self.elements.append(txt) txt = ObjectValue(attribute_name='observacoes', top=0.8 * cm, left=0.5 * cm, width=19.4 * cm, height=2 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'leading': 9} self.elements.append(txt) self.height = 2 * cm
class band_summary(ReportBand): margin_top = 3 * cm height = 0.5 * cm elements = [ ObjectValue(attribute_name='neto', top=0.1 * cm, left=16.9 * cm, width=2 * cm, \ action=FIELD_ACTION_SUM, get_value=lambda instance: float( "%.2f" % (instance.neto * -1) if instance.tipo.startswith("NC") else "%.2f" % instance.neto), style={'alignment': TA_RIGHT}), ObjectValue(attribute_name='iva21', top=0.1 * cm, left=21.4 * cm, width=2 * cm, \ action=FIELD_ACTION_SUM, get_value=lambda instance: float( "%.2f" % (instance.iva21 * -1) if instance.tipo.startswith("NC") else "%.2f" % instance.iva21), style={'alignment': TA_RIGHT}), ObjectValue(attribute_name='total', top=0.1 * cm, left=26 * cm, width=2 * cm, \ action=FIELD_ACTION_SUM, get_value=lambda instance: float( "%.2f" % (instance.total * -1) if instance.tipo.startswith("NC") else "%.2f" % instance.total), style={'alignment': TA_RIGHT}), ] borders = {'top': Line()}
def inserir_informacoes_pf(self): txt = ObjectValue( attribute_name='fornecedor.pessoa_fis_info.format_cpf', top=0.3 * cm, left=8.1 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'leading': 10 } self.elements.append(txt) txt = ObjectValue( attribute_name='fornecedor.pessoa_fis_info.format_rg', top=0.3 * cm, left=13 * cm, width=6.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'leading': 10 } self.elements.append(txt)
def inserir_informacoes_pj(self, cnpj, ie): if cnpj: txt = ObjectValue(attribute_name='pessoa_jur_info.format_cnpj', top=0.3 * cm, left=8.1 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'leading': 10 } self.elements.append(txt) if ie: txt = ObjectValue(attribute_name='pessoa_jur_info.format_ie', top=0.3 * cm, left=13 * cm, width=6.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'leading': 10 } self.elements.append(txt)
def __init__(self): super(DadosPagamento.band_detail, self).__init__() txt = ObjectValue(attribute_name='indice_parcela', top=0 * cm, left=0 * cm, width=4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9} self.elements.append(txt) txt = ObjectValue(attribute_name='format_vencimento', top=0 * cm, left=4.1 * cm, width=4.1 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9} self.elements.append(txt) txt = ObjectValue(attribute_name='format_valor_parcela', top=0 * cm, left=8.3 * cm, width=4.5 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9} self.elements.append(txt) self.height = 0.6 * cm
class band_detail(DetailBand): height = 0.4 * cm elements = [ObjectValue(attribute_name='fecha_dd_mm_aaaa', top=0, left=0, width=2 * cm), ObjectValue(attribute_name='info_completa_informe', top=0, left=2.1 * cm, width=3.5 * cm), ObjectValue(attribute_name='cliente.razon_social', top=0, left=5.7 * cm, width=7 * cm, height=0.4 * cm, truncate_overflow=True), ObjectValue(attribute_name='cliente.cuit', top=0, left=13.7 * cm, width=2.5 * cm), ObjectValue(attribute_name='neto', get_value=lambda instance: "%.2f" % (instance.neto * -1) if instance.tipo.startswith( "NC") else "%.2f" % instance.neto, \ top=0, left=16.9 * cm, width=2 * cm, \ style={'alignment': TA_RIGHT}), Label(text="0.00", top=0 * cm, left=19.7 * cm, width=2 * cm, style={'alignment': TA_RIGHT}), ObjectValue(attribute_name='iva21', get_value=lambda instance: "%.2f" % (instance.iva21 * -1) if instance.tipo.startswith( "NC") else "%.2f" % instance.iva21, \ top=0, left=21.4 * cm, width=2 * cm, style={'alignment': TA_RIGHT}), Label(text="0.00", top=0 * cm, left=23.7 * cm, width=2 * cm, style={'alignment': TA_RIGHT}), ObjectValue(attribute_name='total', get_value=lambda instance: "%.2f" % (instance.total * -1) if instance.tipo.startswith( "NC") else "%.2f" % instance.total, \ top=0, left=26 * cm, width=2 * cm, style={'alignment': TA_RIGHT}), ]
def __init__(self): super(TotaisVenda, self).__init__() self.elements = [] self.elements.append( Line(top=0.1 * cm, bottom=0.1 * cm, left=0 * cm, right=19.4 * cm, stroke_width=0.3)) txt = Label(text='Totais', top=0.2 * cm, left=0 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 11, 'alignment': TA_CENTER, 'leading': 11 } self.elements.append(txt) txt = Label(text='Frete', top=1 * cm, left=0 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_frete', display_format='R$ %s', top=1.5 * cm, left=0 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = Label(text='Seguro', top=1 * cm, left=4 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_seguro', display_format='R$ %s', top=1.5 * cm, left=4 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = Label(text='Despesas', top=1 * cm, left=8 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_despesas', display_format='R$ %s', top=1.5 * cm, left=8 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = Label(text='Desconto', top=1 * cm, left=12 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_desconto', display_format='R$ %s', top=1.5 * cm, left=12 * cm, width=4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = Label(text='Impostos', top=1 * cm, left=16 * cm, width=3.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_impostos', display_format='R$ %s', top=1.5 * cm, left=16 * cm, width=3.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 10, 'alignment': TA_CENTER, 'leading': 10 } self.elements.append(txt) # Totais self.elements.append( Line(top=2.3 * cm, bottom=2.3 * cm, left=0.4 * cm, right=19 * cm, stroke_width=0.3)) txt = Label(text='Total sem impostos:', top=2.4 * cm, left=0 * cm, width=13.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'alignment': TA_RIGHT, 'leading': 10 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_total_sem_imposto', display_format='R$ %s', top=2.4 * cm, left=13.4 * cm, width=5.6 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 10, 'alignment': TA_RIGHT, 'leading': 10 } self.elements.append(txt) self.elements.append( Line(top=2.9 * cm, bottom=2.9 * cm, left=9.7 * cm, right=19 * cm, stroke_width=0.3)) txt = Label(text='Total:', top=3 * cm, left=0 * cm, width=13.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 11, 'alignment': TA_RIGHT, 'leading': 11 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_valor_total', display_format='R$ %s', top=3 * cm, left=13.4 * cm, width=5.6 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT_BOLD, 'fontSize': 10, 'alignment': TA_RIGHT, 'leading': 10 } self.elements.append(txt) self.height = 3.6 * cm
def __init__(self): super(DadosProdutos.band_detail, self).__init__() txt = ObjectValue(attribute_name='produto.codigo', top=0 * cm, left=0 * cm, width=2.1 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9 } self.elements.append(txt) txt = ObjectValue(attribute_name='produto.descricao', top=0 * cm, left=2.1 * cm, width=4.8 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9 } self.elements.append(txt) txt = ObjectValue(attribute_name='produto.format_unidade', top=0 * cm, left=6.9 * cm, width=1.5 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_quantidade', top=0 * cm, left=8.4 * cm, width=1.9 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_valor_unit', top=0 * cm, left=10.3 * cm, width=3.5 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_desconto', top=0 * cm, left=13.8 * cm, width=2.4 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9 } self.elements.append(txt) txt = ObjectValue(attribute_name='format_total', top=0 * cm, left=16.2 * cm, width=3.2 * cm, height=0.5 * cm) txt.style = { 'fontName': REPORT_FONT, 'fontSize': 9, 'alignment': TA_CENTER, 'leading': 9 } self.elements.append(txt)
def inserir_informacoes_endereco(self): self.ender_info = True txt = ObjectValue( attribute_name='cliente.endereco_padrao.format_endereco', display_format='Endereço: %s', top=1.1 * cm, left=0.3 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='cliente.endereco_padrao.municipio', display_format='Cidade: %s', top=1.6 * cm, left=0.3 * cm, width=8 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='cliente.endereco_padrao.uf', display_format='UF: %s', top=1.6 * cm, left=8.1 * cm, width=4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt) txt = ObjectValue(attribute_name='cliente.endereco_padrao.cep', display_format='CEP: %s', top=1.6 * cm, left=13 * cm, width=19.4 * cm, height=0.5 * cm) txt.style = {'fontName': REPORT_FONT, 'fontSize': 10, 'leading': 10} self.elements.append(txt)