コード例 #1
0
 def test_compute_by_datetime(self):
     '''datetime打印处理'''
     obj = self.env['sell.order']
     data = DataModelProxy(obj)
     data._compute_by_datetime(
         obj._fields.get('create_date'),
         (datetime.datetime.now()).strftime('%Y-%m-%d %H:%M:%S'))
コード例 #2
0
 def test_by_selection(self):
     data = DataModelProxy(self.env['home.page'])
     home = self.env['home.page']
     data._compute_by_selection(home._fields.get('menu_type'),"all_business")
     home = self.env['sell.order']
     data = DataModelProxy(home)
     data._compute_by_selection(home._fields.get('state'),"done")
コード例 #3
0
 def test_by_selection(self):
     data = DataModelProxy(self.env['home.page'])
     home = self.env['home.page']
     data._compute_by_selection(home._fields.get('menu_type'),"all_business")
     home = self.env['sell.order']
     data = DataModelProxy(home)
     data._compute_by_selection(home._fields.get('state'),"done")
コード例 #4
0
 def test_datamodelproxy(self):
     data = DataModelProxy([{"type": 'selection'}])
     data.__getitem__(0)
     data = DataModelProxy([])
     data.__getattr__(0)
コード例 #5
0
 def test_datamodelproxy(self):
     data = DataModelProxy([{"type": 'selection'}])
     data.__getitem__(0)
     data = DataModelProxy([])
     data.__getattr__(0)
コード例 #6
0
 def test_compute_by_datetime(self):
     '''datetime打印处理'''
     obj = self.env['sell.order']
     data = DataModelProxy(obj)
     data._compute_by_datetime(obj._fields.get('create_date'), (datetime.datetime.now()).strftime('%Y-%m-%d %H:%M:%S'))
コード例 #7
0
    def create_source_docx_partner(self,
                                   cr,
                                   uid,
                                   ids,
                                   report,
                                   records,
                                   init_pay,
                                   context=None):
        # 2016-11-2 支持了图片
        # 1.导入依赖,python3语法
        # from . import report_helper
        # 2. 需要添加一个"tpl"属性获得模版对象
        tempname = tempfile.mkdtemp()
        temp_out_file = self.generate_temp_file(tempname)
        doc = DocxTemplate(misc.file_open(report.template_file).name)

        env = api.Environment(cr, uid, context)
        partner = env.get('partner').search([('id', '=',
                                              context.get('partner_id'))])
        simple_dict = {
            'partner_name': partner.name,
            'from_date': context.get('from_date'),
            'to_date': context.get('to_date'),
            'report_line': [],
            'init_pay': {},
            'final_pay': {}
        }
        if not records:
            if init_pay:
                simple_dict['init_pay'] = init_pay
                simple_dict['final_pay'] = init_pay
            doc.render({
                'obj': simple_dict,
                'tpl': doc
            }, report_helper.get_env())
            doc.save(temp_out_file)

            report_stream = ''
            with open(temp_out_file, 'rb') as input_stream:
                report_stream = input_stream.read()

            os.remove(temp_out_file)
            return report_stream, report.output_type

        data = DataModelProxy(records)
        for p_value in data:
            simple_dict['report_line'].append({
                'date':
                p_value.date,
                'name':
                p_value.name,
                'note':
                p_value.note,
                'amount':
                p_value.amount,
                'pay_amount':
                p_value.pay_amount,
                'discount_money':
                p_value.discount_money,
                'balance_amount':
                p_value.balance_amount
            })
        if data:
            simple_dict['init_pay'] = data[0].balance_amount - data[
                0].amount + data[0].pay_amount - data[0].discount_money
            simple_dict['final_pay'] = data[-1].balance_amount

        doc.render({'obj': simple_dict, 'tpl': doc}, report_helper.get_env())
        doc.save(temp_out_file)

        if report.output_type == 'pdf':
            temp_file = self.render_to_pdf(temp_out_file)
        else:
            temp_file = temp_out_file

        report_stream = ''
        with open(temp_file, 'rb') as input_stream:
            report_stream = input_stream.read()

        os.remove(temp_file)
        return report_stream, report.output_type