added new module dp_sequence_date_range_monthly, which allows it to have a number range monthly instead of yearly
parent
3d8176991f
commit
efbf71d577
|
|
@ -0,0 +1,24 @@
|
||||||
|
# -*- 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:
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
# -*- 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:
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
# -*- 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:
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
# -*- 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.
|
After Width: | Height: | Size: 2.2 KiB |
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?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>
|
||||||
|
|
@ -141,13 +141,15 @@ class Config():
|
||||||
# 'number_next_actual': 1,
|
# 'number_next_actual': 1,
|
||||||
'prefix': '%(y)s',
|
'prefix': '%(y)s',
|
||||||
'padding': 4,
|
'padding': 4,
|
||||||
'use_date_range': True
|
'use_date_range': True,
|
||||||
|
'monthly_date_range': False
|
||||||
},
|
},
|
||||||
'account.invoice': {
|
'account.invoice': {
|
||||||
# 'number_next_actual': 0001,
|
# 'number_next_actual': 0001,
|
||||||
'prefix': '%(y)s%(month)s',
|
'prefix': '%(y)s%(month)s',
|
||||||
'padding': 4,
|
'padding': 4,
|
||||||
'use_date_range': True
|
'use_date_range': True,
|
||||||
|
'monthly_date_range': False
|
||||||
},
|
},
|
||||||
# Wenn 'account.invoice_refund' auskommentiert ist, dann wird
|
# Wenn 'account.invoice_refund' auskommentiert ist, dann wird
|
||||||
# für die Gutschrift der selbe Nummernkreis verwendet
|
# für die Gutschrift der selbe Nummernkreis verwendet
|
||||||
|
|
@ -157,7 +159,8 @@ class Config():
|
||||||
'implementation': 'no_gap',
|
'implementation': 'no_gap',
|
||||||
'prefix': '%(y)s',
|
'prefix': '%(y)s',
|
||||||
'padding': 4,
|
'padding': 4,
|
||||||
'use_date_range': True
|
'use_date_range': True,
|
||||||
|
'monthly_date_range': False
|
||||||
},
|
},
|
||||||
#'picking.out': {
|
#'picking.out': {
|
||||||
# # 'number_next_actual': 1,
|
# # 'number_next_actual': 1,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue