Fixed dp_reports + removed untested module dp_sequence_date_range_monthly
							parent
							
								
									89c7ff574b
								
							
						
					
					
						commit
						eaaa326fdc
					
				|  | @ -19,6 +19,6 @@ | ||||||
| # | # | ||||||
| ############################################################################## | ############################################################################## | ||||||
| 
 | 
 | ||||||
| import models | from . import models | ||||||
| 
 | 
 | ||||||
| # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| # | # | ||||||
| ############################################################################## | ############################################################################## | ||||||
| 
 | 
 | ||||||
| import ir_ui_menu | from . import ir_ui_menu | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||||||
|  |  | ||||||
|  | @ -19,11 +19,11 @@ | ||||||
| # | # | ||||||
| ############################################################################## | ############################################################################## | ||||||
| 
 | 
 | ||||||
| from openerp import fields, models | from odoo import fields, models | ||||||
| from openerp import api | from odoo import api | ||||||
| from openerp.tools.translate import _ | from odoo.tools.translate import _ | ||||||
| from openerp import SUPERUSER_ID | from odoo import SUPERUSER_ID | ||||||
| from openerp import tools | from odoo import tools | ||||||
| 
 | 
 | ||||||
| DISABLED_MENUS = [ | DISABLED_MENUS = [ | ||||||
| ] | ] | ||||||
|  |  | ||||||
|  | @ -10,12 +10,11 @@ | ||||||
|     'author': 'datenpol gmbh', |     'author': 'datenpol gmbh', | ||||||
|     'website': 'http://www.datenpol.at/', |     'website': 'http://www.datenpol.at/', | ||||||
|     'depends': [ |     'depends': [ | ||||||
|         'base', |         'base' | ||||||
|         'report' |  | ||||||
|     ], |     ], | ||||||
|     'data': [ |     'data': [ | ||||||
|         'data/paperformat.xml', |         'data/paperformat.xml', | ||||||
|         'reports/layouts.xml', |         'reports/report_templates.xml', | ||||||
|     ], |     ], | ||||||
|     # only loaded in demonstration mode |     # only loaded in demonstration mode | ||||||
|     'demo': [], |     'demo': [], | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| 
 | 
 | ||||||
| import report_helper | from . import report_helper | ||||||
|  | from . import res_company | ||||||
|  |  | ||||||
|  | @ -1,15 +1,8 @@ | ||||||
| from odoo import api, models | from odoo import api, models | ||||||
| from odoo.report import report_sxw |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ReportHelper(report_sxw.rml_parse): | class ReportHelper(models.AbstractModel): | ||||||
| 
 |     _name = "report.abstract_report" | ||||||
|     def __init__(self, cr, uid, name, context): |  | ||||||
|         super(ReportHelper, self).__init__(cr, uid, name, context=context) |  | ||||||
|         self.localcontext.update({ |  | ||||||
|             'field_set_in_lines': self._field_set_in_lines, |  | ||||||
|             'formatLang': self._formatLang, |  | ||||||
|         }) |  | ||||||
| 
 | 
 | ||||||
|     @api.model |     @api.model | ||||||
|     def _field_set_in_lines(self, lines, field): |     def _field_set_in_lines(self, lines, field): | ||||||
|  | @ -44,8 +37,3 @@ class ReportHelper(report_sxw.rml_parse): | ||||||
|             elif currency_obj and currency_obj.position == 'before': |             elif currency_obj and currency_obj.position == 'before': | ||||||
|                 res = '%s %s' % (currency_obj.symbol, res) |                 res = '%s %s' % (currency_obj.symbol, res) | ||||||
|         return res |         return res | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class AbstractReport(models.AbstractModel): |  | ||||||
|     _inherit = 'report.abstract_report' |  | ||||||
|     _wrapped_report_class = ReportHelper |  | ||||||
|  |  | ||||||
|  | @ -0,0 +1,9 @@ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | from odoo import models, fields, api | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Company(models.Model): | ||||||
|  |     _inherit = 'res.company' | ||||||
|  | 
 | ||||||
|  |     external_report_layout = fields.Selection(selection_add=[("custom", "Custom")]) | ||||||
|  | @ -2,34 +2,36 @@ | ||||||
| <odoo> | <odoo> | ||||||
|     <data> |     <data> | ||||||
| 
 | 
 | ||||||
|         <template id="assets_common" inherit_id="report.assets_common"> |         <template id="report_assets_common" inherit_id="web.report_assets_common"> | ||||||
|             <xpath expr="." position="inside"> |             <xpath expr="." position="inside"> | ||||||
|                 <link rel="stylesheet" type="text/less" href="/dp_reports/static/src/less/report_backend.less"/> |                 <link rel="stylesheet" type="text/less" href="/dp_reports/static/src/less/report_backend.less"/> | ||||||
|             </xpath> |             </xpath> | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
|         <template id="report.external_layout"> |         <template id="external_layout" inherit_id="web.external_layout"> | ||||||
|             <!-- Multicompany --> |                 <xpath expr="." position="inside"> | ||||||
|             <t t-if="not o and doc"> |                     <t t-if="company.external_report_layout == 'custom'"> | ||||||
|                 <t t-set="o" t-value="doc"/> |                         <t t-call="dp_reports.external_layout_custom"><t t-raw="0"/></t> | ||||||
|                     </t> |                     </t> | ||||||
|             <t t-if="o and 'company_id' in o"> |                 </xpath> | ||||||
|                 <t t-set="company" t-value="o.company_id"/> |         </template> | ||||||
|             </t> | 
 | ||||||
|             <t t-if="not o or not 'company_id' in o"> |         <template id="external_layout_custom"> | ||||||
|                 <t t-set="company" t-value="res_company"/> |             <t t-call="dp_reports.external_layout_header"/> | ||||||
|             </t> | 
 | ||||||
|             <t t-call="report.external_layout_header"/> |             <div class="article o_dp_report_layout"> | ||||||
|                 <t t-raw="0"/> |                 <t t-raw="0"/> | ||||||
|  |             </div> | ||||||
|  | 
 | ||||||
|             <t t-call="dp_reports.external_layout_footer"/> |             <t t-call="dp_reports.external_layout_footer"/> | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
|         <!-- Report Header Full --> |         <!-- Report Header Full --> | ||||||
|         <template id="report.external_layout_header"> |         <template id="external_layout_header"> | ||||||
|             <div class="header" style="font-size:10pt;"> |             <div class="header" style="font-size:10pt;"> | ||||||
|                 <div class="row"> |                 <div class="row"> | ||||||
|                     <div class="col-xs-7"> |                     <div class="col-xs-7"> | ||||||
|                         <img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % company.logo" |                         <img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % company.logo.decode()" | ||||||
|                              style="max-height: 85px;"/> |                              style="max-height: 85px;"/> | ||||||
|                         <div style="margin-top: 15mm;"> |                         <div style="margin-top: 15mm;"> | ||||||
|                             <div name="company_address" |                             <div name="company_address" | ||||||
|  | @ -10,8 +10,7 @@ | ||||||
|     'author': 'datenpol gmbh', |     'author': 'datenpol gmbh', | ||||||
|     'website': 'http://www.datenpol.at/', |     'website': 'http://www.datenpol.at/', | ||||||
|     'depends': [ |     'depends': [ | ||||||
|         'dp_reports', |         'account_invoicing' | ||||||
|         'account' |  | ||||||
|     ], |     ], | ||||||
|     'data': [ |     'data': [ | ||||||
|         'reports/invoice.xml', |         'reports/invoice.xml', | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| import report_helper | from . import report_helper | ||||||
|  |  | ||||||
|  | @ -8,3 +8,16 @@ class AccountInvoice(models.AbstractModel): | ||||||
|     _inherit = 'report.abstract_report' |     _inherit = 'report.abstract_report' | ||||||
|     _template = 'account.report_invoice' |     _template = 'account.report_invoice' | ||||||
| 
 | 
 | ||||||
|  |     @api.model | ||||||
|  |     def get_report_values(self, docids, data=None): | ||||||
|  |         model = 'account.invoice' | ||||||
|  |         docs = self.env[model].browse(docids) | ||||||
|  |         return { | ||||||
|  |             'doc_ids': docids, | ||||||
|  |             'doc_model': model, | ||||||
|  |             'docs': docs, | ||||||
|  |             'data': data, | ||||||
|  |             'field_set_in_lines': self._field_set_in_lines, | ||||||
|  |             'formatLang': self._formatLang, | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
|     <data> |     <data> | ||||||
|         <!-- Invoice Body --> |         <!-- Invoice Body --> | ||||||
|         <template id="report_invoice_document"> |         <template id="report_invoice_document"> | ||||||
|             <t t-call="report.external_layout"> |             <t t-call="web.external_layout"> | ||||||
|                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> | ||||||
|                 <div class="page"> |                 <div class="page"> | ||||||
|                     <div class="row"> |                     <div class="row"> | ||||||
|  | @ -57,13 +57,12 @@ | ||||||
|                         </div> |                         </div> | ||||||
|                     </div> |                     </div> | ||||||
| 
 | 
 | ||||||
|                     <div class="row oe_mt32"> |                     <div class="row mt32"> | ||||||
|                         <div class="col-xs-12 text-left"> |                         <div class="col-xs-12 text-left"> | ||||||
|                             <h4> |                             <h4> | ||||||
|                                 <span t-if="o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')"> |                                 <span t-if="o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')"> | ||||||
|                                     Rechnung |                                     Rechnung | ||||||
|                                 </span> |                                 </span> | ||||||
|                                 <span t-if="o.type == 'out_invoice' and o.state == 'proforma2'">Proforma Rechnung</span> |  | ||||||
|                                 <span t-if="o.type == 'out_invoice' and o.state == 'draft'">Rechnungsentwurf</span> |                                 <span t-if="o.type == 'out_invoice' and o.state == 'draft'">Rechnungsentwurf</span> | ||||||
|                                 <span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Stornierte Rechnung</span> |                                 <span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Stornierte Rechnung</span> | ||||||
|                                 <span t-if="o.type == 'out_refund'">Gutschrift</span> |                                 <span t-if="o.type == 'out_refund'">Gutschrift</span> | ||||||
|  | @ -74,7 +73,7 @@ | ||||||
|                         </div> |                         </div> | ||||||
|                     </div> |                     </div> | ||||||
| 
 | 
 | ||||||
|                     <table class="oe_mt32 table table-condensed"> |                     <table class="mt32 table table-condensed"> | ||||||
|                         <t t-set="art_number_is_set" |                         <t t-set="art_number_is_set" | ||||||
|                            t-value="field_set_in_lines(o.invoice_line_ids, 'product_id.default_code')"/> |                            t-value="field_set_in_lines(o.invoice_line_ids, 'product_id.default_code')"/> | ||||||
|                         <t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/> |                         <t t-set="discount_is_set" t-value="field_set_in_lines(o.invoice_line_ids, 'discount')"/> | ||||||
|  | @ -121,7 +120,7 @@ | ||||||
| 
 | 
 | ||||||
|                     <div class="row"> |                     <div class="row"> | ||||||
| 
 | 
 | ||||||
|                         <div class="oe_mt32 col-xs-4 pull-right"> |                         <div class="mt32 col-xs-4 pull-right"> | ||||||
|                             <table class="table table-condensed"> |                             <table class="table table-condensed"> | ||||||
|                                 <tr class="border-black"> |                                 <tr class="border-black"> | ||||||
|                                     <td> |                                     <td> | ||||||
|  | @ -169,7 +168,7 @@ | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
|         <template id="account.report_invoice"> |         <template id="account.report_invoice"> | ||||||
|             <t t-call="report.html_container"> |             <t t-call="web.html_container"> | ||||||
|                 <t t-foreach="docs" t-as="o"> |                 <t t-foreach="docs" t-as="o"> | ||||||
|                     <t t-call="dp_reports_account.report_invoice_document" t-lang="o.partner_id.lang"/> |                     <t t-call="dp_reports_account.report_invoice_document" t-lang="o.partner_id.lang"/> | ||||||
|                 </t> |                 </t> | ||||||
|  | @ -178,7 +177,11 @@ | ||||||
| 
 | 
 | ||||||
|     </data> |     </data> | ||||||
| 
 | 
 | ||||||
|     <record id="account.account_invoices" model="ir.actions.report.xml"> |     <record id="account.account_invoices" model="ir.actions.report"> | ||||||
|  |         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|  |     <record id="account.account_invoices_without_payment" model="ir.actions.report"> | ||||||
|         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> |         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> | ||||||
|     </record> |     </record> | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -1,3 +1,3 @@ | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| 
 | 
 | ||||||
| import report_helper | from . import report_helper | ||||||
|  |  | ||||||
|  | @ -8,9 +8,36 @@ class PurchaseQuotation(models.AbstractModel): | ||||||
|     _inherit = 'report.abstract_report' |     _inherit = 'report.abstract_report' | ||||||
|     _template = 'purchase.report_purchasequotation' |     _template = 'purchase.report_purchasequotation' | ||||||
| 
 | 
 | ||||||
|  |     @api.model | ||||||
|  |     def get_report_values(self, docids, data=None): | ||||||
|  |         model = 'purchase.order' | ||||||
|  |         docs = self.env[model].browse(docids) | ||||||
|  |         return { | ||||||
|  |             'doc_ids': docids, | ||||||
|  |             'doc_model': model, | ||||||
|  |             'docs': docs, | ||||||
|  |             'data': data, | ||||||
|  |             'field_set_in_lines': self._field_set_in_lines, | ||||||
|  |             'formatLang': self._formatLang, | ||||||
|  |         } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class PurchaseOrder(models.AbstractModel): | class PurchaseOrder(models.AbstractModel): | ||||||
|     _name = 'report.purchase.report_purchaseorder' |     _name = 'report.purchase.report_purchaseorder' | ||||||
|     _inherit = 'report.abstract_report' |     _inherit = 'report.abstract_report' | ||||||
|     _template = 'purchase.report_purchaseorder' |     _template = 'purchase.report_purchaseorder' | ||||||
| 
 | 
 | ||||||
|  |     @api.model | ||||||
|  |     def get_report_values(self, docids, data=None): | ||||||
|  |         model = 'purchase.order' | ||||||
|  |         docs = self.env[model].browse(docids) | ||||||
|  |         return { | ||||||
|  |             'doc_ids': docids, | ||||||
|  |             'doc_model': model, | ||||||
|  |             'docs': docs, | ||||||
|  |             'data': data, | ||||||
|  |             'field_set_in_lines': self._field_set_in_lines, | ||||||
|  |             'formatLang': self._formatLang, | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| <odoo> | <odoo> | ||||||
|     <data> |     <data> | ||||||
|         <template id="report_purchaseorder_document"> |         <template id="report_purchaseorder_document"> | ||||||
|             <t t-call="report.external_layout"> |             <t t-call="web.external_layout"> | ||||||
|                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> | ||||||
|                 <div class="page"> |                 <div class="page"> | ||||||
|                     <div class="row"> |                     <div class="row"> | ||||||
|  | @ -158,7 +158,7 @@ | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
|         <template id="purchase.report_purchaseorder"> |         <template id="purchase.report_purchaseorder"> | ||||||
|             <t t-call="report.html_container"> |             <t t-call="web.html_container"> | ||||||
|                 <t t-foreach="docs" t-as="o"> |                 <t t-foreach="docs" t-as="o"> | ||||||
|                     <t t-call="dp_reports_purchase.report_purchaseorder_document" t-lang="o.partner_id.lang"/> |                     <t t-call="dp_reports_purchase.report_purchaseorder_document" t-lang="o.partner_id.lang"/> | ||||||
|                 </t> |                 </t> | ||||||
|  | @ -168,7 +168,7 @@ | ||||||
| 
 | 
 | ||||||
|     </data> |     </data> | ||||||
| 
 | 
 | ||||||
|     <record id="purchase.action_report_purchase_order" model="ir.actions.report.xml"> |     <record id="purchase.action_report_purchase_order" model="ir.actions.report"> | ||||||
|         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> |         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> | ||||||
|     </record> |     </record> | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| <odoo> | <odoo> | ||||||
|     <data> |     <data> | ||||||
|         <template id="report_purchasequotation_document"> |         <template id="report_purchasequotation_document"> | ||||||
|             <t t-call="report.external_layout"> |             <t t-call="web.external_layout"> | ||||||
|                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> | ||||||
|                 <div class="page"> |                 <div class="page"> | ||||||
|                     <div class="row"> |                     <div class="row"> | ||||||
|  | @ -141,17 +141,16 @@ | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
|         <template id="purchase.report_purchasequotation"> |         <template id="purchase.report_purchasequotation"> | ||||||
|             <t t-call="report.html_container"> |             <t t-call="web.html_container"> | ||||||
|                 <t t-foreach="docs" t-as="o"> |                 <t t-foreach="docs" t-as="o"> | ||||||
|                     <t t-call="dp_reports_purchase.report_purchasequotation_document" t-lang="o.partner_id.lang"/> |                     <t t-call="dp_reports_purchase.report_purchasequotation_document" t-lang="o.partner_id.lang"/> | ||||||
|                 </t> |                 </t> | ||||||
|             </t> |             </t> | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     </data> |     </data> | ||||||
| 
 | 
 | ||||||
|     <record id="purchase.report_purchase_quotation" model="ir.actions.report.xml"> |     <record id="purchase.report_purchase_quotation" model="ir.actions.report"> | ||||||
|         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> |         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> | ||||||
|     </record> |     </record> | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -1,3 +1,3 @@ | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| 
 | 
 | ||||||
| import report_helper | from . import report_helper | ||||||
|  |  | ||||||
|  | @ -8,3 +8,15 @@ class SaleOrder(models.AbstractModel): | ||||||
|     _inherit = 'report.abstract_report' |     _inherit = 'report.abstract_report' | ||||||
|     _template = 'sale.report_saleorder' |     _template = 'sale.report_saleorder' | ||||||
| 
 | 
 | ||||||
|  |     @api.model | ||||||
|  |     def get_report_values(self, docids, data=None): | ||||||
|  |         model = 'sale.order' | ||||||
|  |         docs = self.env[model].browse(docids) | ||||||
|  |         return { | ||||||
|  |             'doc_ids': docids, | ||||||
|  |             'doc_model': model, | ||||||
|  |             'docs': docs, | ||||||
|  |             'data': data, | ||||||
|  |             'field_set_in_lines': self._field_set_in_lines, | ||||||
|  |             'formatLang': self._formatLang, | ||||||
|  |         } | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
|     <data> |     <data> | ||||||
|         <!-- Sale Order Body --> |         <!-- Sale Order Body --> | ||||||
|         <template id="report_saleorder_document"> |         <template id="report_saleorder_document"> | ||||||
|             <t t-call="report.external_layout"> |             <t t-call="web.external_layout"> | ||||||
|                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> | ||||||
|                 <div class="page"> |                 <div class="page"> | ||||||
|                     <div class="row"> |                     <div class="row"> | ||||||
|  | @ -172,7 +172,7 @@ | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
|         <template id="sale.report_saleorder"> |         <template id="sale.report_saleorder"> | ||||||
|             <t t-call="report.html_container"> |             <t t-call="web.html_container"> | ||||||
|                 <t t-foreach="docs" t-as="o"> |                 <t t-foreach="docs" t-as="o"> | ||||||
|                     <t t-call="dp_reports_sale.report_saleorder_document" t-lang="o.partner_id.lang"/> |                     <t t-call="dp_reports_sale.report_saleorder_document" t-lang="o.partner_id.lang"/> | ||||||
|                 </t> |                 </t> | ||||||
|  | @ -182,7 +182,7 @@ | ||||||
| 
 | 
 | ||||||
|     </data> |     </data> | ||||||
| 
 | 
 | ||||||
|     <record id="sale.report_sale_order" model="ir.actions.report.xml"> |     <record id="sale.action_report_saleorder" model="ir.actions.report"> | ||||||
|         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> |         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> | ||||||
|     </record> |     </record> | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -1,3 +1,3 @@ | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| 
 | 
 | ||||||
| import report_helper | from . import report_helper | ||||||
|  |  | ||||||
|  | @ -8,3 +8,15 @@ class StockPicking(models.AbstractModel): | ||||||
|     _inherit = 'report.abstract_report' |     _inherit = 'report.abstract_report' | ||||||
|     _template = 'stock.report_deliveryslip' |     _template = 'stock.report_deliveryslip' | ||||||
| 
 | 
 | ||||||
|  |     @api.model | ||||||
|  |     def get_report_values(self, docids, data=None): | ||||||
|  |         model = 'stock.picking' | ||||||
|  |         docs = self.env[model].browse(docids) | ||||||
|  |         return { | ||||||
|  |             'doc_ids': docids, | ||||||
|  |             'doc_model': model, | ||||||
|  |             'docs': docs, | ||||||
|  |             'data': data, | ||||||
|  |             'field_set_in_lines': self._field_set_in_lines, | ||||||
|  |             'formatLang': self._formatLang, | ||||||
|  |         } | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
|     <data> |     <data> | ||||||
|         <!-- Sale Order Body --> |         <!-- Sale Order Body --> | ||||||
|         <template id="report_stockpicking_document"> |         <template id="report_stockpicking_document"> | ||||||
|             <t t-call="report.external_layout"> |             <t t-call="web.external_layout"> | ||||||
|                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> |                 <t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})"/> | ||||||
|                 <div class="page"> |                 <div class="page"> | ||||||
|                     <div class="row"> |                     <div class="row"> | ||||||
|  | @ -61,15 +61,15 @@ | ||||||
|                     <table class="oe_mt32 table table-condensed"> |                     <table class="oe_mt32 table table-condensed"> | ||||||
|                         <t t-set="art_number_is_set" |                         <t t-set="art_number_is_set" | ||||||
|                            t-value="field_set_in_lines(o.move_lines, 'product_id.default_code')"/> |                            t-value="field_set_in_lines(o.move_lines, 'product_id.default_code')"/> | ||||||
|                         <t t-set="lot_ids_is_set" |                         <!--<t t-set="lot_ids_is_set"--> | ||||||
|                            t-value="field_set_in_lines(o, 'pack_operation_product_ids.pack_lot_ids')"/> |                            <!--t-value="field_set_in_lines(o, 'pack_operation_product_ids.pack_lot_ids')"/>--> | ||||||
|                         <thead> |                         <thead> | ||||||
|                             <tr> |                             <tr> | ||||||
|                                 <th class="text-center">Pos</th> |                                 <th class="text-center">Pos</th> | ||||||
|                                 <th class="text-center" t-if="art_number_is_set">Art-Nr.</th> |                                 <th class="text-center" t-if="art_number_is_set">Art-Nr.</th> | ||||||
|                                 <th class="text-left">Bezeichnung</th> |                                 <th class="text-left">Bezeichnung</th> | ||||||
|                                 <th class="text-center">Menge</th> |                                 <th class="text-center">Menge</th> | ||||||
|                                 <th class="text-right" t-if="lot_ids_is_set">Fertigungslos</th> |                                 <!--<th class="text-right" t-if="lot_ids_is_set">Fertigungslos</th>--> | ||||||
|                             </tr> |                             </tr> | ||||||
|                         </thead> |                         </thead> | ||||||
|                         <tbody class=""> |                         <tbody class=""> | ||||||
|  | @ -88,11 +88,11 @@ | ||||||
|                                 <td class="text-center"> |                                 <td class="text-center"> | ||||||
|                                     <span t-field="move_line.product_uom_qty"/> |                                     <span t-field="move_line.product_uom_qty"/> | ||||||
|                                 </td> |                                 </td> | ||||||
|                                 <td class="text-right" t-if="lot_ids_is_set"> |                                 <!--<td class="text-right" t-if="lot_ids_is_set">--> | ||||||
|                                     <t t-foreach="o.pack_operation_product_ids.pack_lot_ids" t-as="pack_lot"> |                                     <!--<t t-foreach="o.pack_operation_product_ids.pack_lot_ids" t-as="pack_lot">--> | ||||||
|                                         <div class="co-xs-12" t-field="pack_lot.lot_id.name"/> |                                         <!--<div class="co-xs-12" t-field="pack_lot.lot_id.name"/>--> | ||||||
|                                     </t> |                                     <!--</t>--> | ||||||
|                                 </td> |                                 <!--</td>--> | ||||||
|                             </tr> |                             </tr> | ||||||
|                         </tbody> |                         </tbody> | ||||||
|                     </table> |                     </table> | ||||||
|  | @ -107,7 +107,7 @@ | ||||||
|         </template> |         </template> | ||||||
| 
 | 
 | ||||||
|         <template id="stock.report_deliveryslip"> |         <template id="stock.report_deliveryslip"> | ||||||
|             <t t-call="report.html_container"> |             <t t-call="web.html_container"> | ||||||
|                 <t t-foreach="docs" t-as="o"> |                 <t t-foreach="docs" t-as="o"> | ||||||
|                     <t t-call="dp_reports_stock.report_stockpicking_document" t-lang="o.partner_id.lang"/> |                     <t t-call="dp_reports_stock.report_stockpicking_document" t-lang="o.partner_id.lang"/> | ||||||
|                 </t> |                 </t> | ||||||
|  | @ -117,7 +117,7 @@ | ||||||
| 
 | 
 | ||||||
|     </data> |     </data> | ||||||
| 
 | 
 | ||||||
|     <record id="stock.action_report_delivery" model="ir.actions.report.xml"> |     <record id="stock.action_report_delivery" model="ir.actions.report"> | ||||||
|         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> |         <field name="paperformat_id" ref="dp_reports.paperformat_a4_european"/> | ||||||
|     </record> |     </record> | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| # -*- coding: utf-8 -*- |  | ||||||
| ############################################################################## |  | ||||||
| # |  | ||||||
| #    datenpol gmbh |  | ||||||
| #    Copyright (C) 2013-TODAY datenpol gmbh (<http://www.datenpol.at/>) |  | ||||||
| # |  | ||||||
| #    This program is free software: you can redistribute it and/or modify |  | ||||||
| #    it under the terms of the GNU Affero General Public License as |  | ||||||
| #    published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. |  | ||||||
| # |  | ||||||
| #    You should have received a copy of the GNU Affero General Public License |  | ||||||
| #    along with this program.  If not, see <http://www.gnu.org/licenses/>. |  | ||||||
| # |  | ||||||
| ############################################################################## |  | ||||||
| 
 |  | ||||||
| import models |  | ||||||
| 
 |  | ||||||
| # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |  | ||||||
|  | @ -1,41 +0,0 @@ | ||||||
| # -*- coding: utf-8 -*- |  | ||||||
| ############################################################################## |  | ||||||
| # |  | ||||||
| #    datenpol gmbh |  | ||||||
| #    Copyright (C) 2013-TODAY datenpol gmbh (<http://www.datenpol.at/>) |  | ||||||
| # |  | ||||||
| #    This program is free software: you can redistribute it and/or modify |  | ||||||
| #    it under the terms of the GNU Affero General Public License as |  | ||||||
| #    published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. |  | ||||||
| # |  | ||||||
| #    You should have received a copy of the GNU Affero General Public License |  | ||||||
| #    along with this program.  If not, see <http://www.gnu.org/licenses/>. |  | ||||||
| # |  | ||||||
| ############################################################################## |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # noinspection PyStatementEffect |  | ||||||
| { |  | ||||||
|     'name': 'datenpol Sequence date range monthly', |  | ||||||
|     'category': 'Custom', |  | ||||||
|     'version': '1.0', |  | ||||||
|     'description': """Für jeden Monat gibt es eine eigenen Nummernkreis""", |  | ||||||
|     'author': 'datenpol gmbh', |  | ||||||
|     'website': 'http://www.datenpol.at/', |  | ||||||
|     'depends': [ |  | ||||||
|         'base', |  | ||||||
|     ], |  | ||||||
|     'data': [ |  | ||||||
|         'views/ir_sequence_view.xml', |  | ||||||
|     ], |  | ||||||
|     'installable': True, |  | ||||||
|     'auto_install': False, |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |  | ||||||
|  | @ -1,26 +0,0 @@ | ||||||
| # -*- coding: utf-8 -*- |  | ||||||
| ############################################################################## |  | ||||||
| # |  | ||||||
| #    OpenERP, Open Source Management Solution |  | ||||||
| #    Copyright (C) 20014-2016 datenpol gmbh (<http://www.datenpol.at/>). |  | ||||||
| # |  | ||||||
| #    This program is free software: you can redistribute it and/or modify |  | ||||||
| #    it under the terms of the GNU Affero General Public License as |  | ||||||
| #    published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. |  | ||||||
| # |  | ||||||
| #    You should have received a copy of the GNU Affero General Public License |  | ||||||
| #    along with this program.  If not, see <http://www.gnu.org/licenses/>. |  | ||||||
| # |  | ||||||
| ############################################################################## |  | ||||||
| 
 |  | ||||||
| import ir_sequence |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: |  | ||||||
|  | @ -1,60 +0,0 @@ | ||||||
| # -*- coding: utf-8 -*- |  | ||||||
| ############################################################################## |  | ||||||
| # |  | ||||||
| #    datenpol gmbh |  | ||||||
| #    Copyright (C) 2013-TODAY datenpol gmbh (<http://www.datenpol.at/>) |  | ||||||
| # |  | ||||||
| #    This program is free software: you can redistribute it and/or modify |  | ||||||
| #    it under the terms of the GNU Affero General Public License as |  | ||||||
| #    published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. |  | ||||||
| # |  | ||||||
| #    You should have received a copy of the GNU Affero General Public License |  | ||||||
| #    along with this program.  If not, see <http://www.gnu.org/licenses/>. |  | ||||||
| # |  | ||||||
| ############################################################################## |  | ||||||
| 
 |  | ||||||
| from odoo import api, fields, models |  | ||||||
| from datetime import datetime, timedelta |  | ||||||
| from dateutil.relativedelta import relativedelta |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class IrSequence(models.Model): |  | ||||||
|     _inherit = 'ir.sequence' |  | ||||||
| 
 |  | ||||||
|     monthly_date_range = fields.Boolean('Monthly date_range') |  | ||||||
| 
 |  | ||||||
|     def _create_date_range_seq(self, date): |  | ||||||
|         year = fields.Date.from_string(date).strftime('%Y') |  | ||||||
|         if self.monthly_date_range: |  | ||||||
|             month = fields.Date.from_string(date).strftime('%m') |  | ||||||
|             last_day = datetime(int(year), int(month), 1) + relativedelta(day=31) |  | ||||||
|             date_from = '{}-{}-01'.format(year, month) |  | ||||||
|             date_to = '{}-{}-{}'.format(year, month, last_day.day) |  | ||||||
|         else: |  | ||||||
|             date_from = '{}-01-01'.format(year) |  | ||||||
|             date_to = '{}-12-31'.format(year) |  | ||||||
|         date_range = self.env['ir.sequence.date_range'].search \ |  | ||||||
|             ([('sequence_id', '=', self.id), ('date_from', '>=', date), ('date_from', '<=', date_to)], |  | ||||||
|              order='date_from desc', limit=1) |  | ||||||
|         if date_range: |  | ||||||
|             date_to = datetime.strptime(date_range.date_from, '%Y-%m-%d') + timedelta(days=-1) |  | ||||||
|             date_to = date_to.strftime('%Y-%m-%d') |  | ||||||
|         date_range = self.env['ir.sequence.date_range'].search \ |  | ||||||
|             ([('sequence_id', '=', self.id), ('date_to', '>=', date_from), ('date_to', '<=', date)], |  | ||||||
|              order='date_to desc', |  | ||||||
|              limit=1) |  | ||||||
|         if date_range: |  | ||||||
|             date_from = datetime.strptime(date_range.date_to, '%Y-%m-%d') + timedelta(days=1) |  | ||||||
|             date_from = date_from.strftime('%Y-%m-%d') |  | ||||||
|         seq_date_range = self.env['ir.sequence.date_range'].sudo().create({ |  | ||||||
|             'date_from': date_from, |  | ||||||
|             'date_to': date_to, |  | ||||||
|             'sequence_id': self.id, |  | ||||||
|         }) |  | ||||||
|         return seq_date_range |  | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 2.2 KiB | 
|  | @ -1,18 +0,0 @@ | ||||||
| <?xml version="1.0" encoding="utf-8"?> |  | ||||||
| <odoo> |  | ||||||
|     <data> |  | ||||||
| 
 |  | ||||||
|         <!-- IR_SEQUENCE - EXTENDED FORM --> |  | ||||||
|         <record id="dp_ir_sequence_form" model="ir.ui.view"> |  | ||||||
|             <field name="name">dp_ir_sequence_form</field> |  | ||||||
|             <field name="model">ir.sequence</field> |  | ||||||
|             <field name="inherit_id" ref="base.sequence_view"/> |  | ||||||
|             <field name="arch" type="xml"> |  | ||||||
|                 <field name="use_date_range" position="after"> |  | ||||||
|                     <field name="monthly_date_range"/> |  | ||||||
|                 </field> |  | ||||||
|             </field> |  | ||||||
|         </record> |  | ||||||
| 
 |  | ||||||
|     </data> |  | ||||||
| </odoo> |  | ||||||
		Loading…
	
		Reference in New Issue