Merge branch '11.0' into 11.0-test

This commit is contained in:
Jared Kipe
2018-11-21 06:20:41 -08:00
11 changed files with 96 additions and 28 deletions

View File

@@ -8,9 +8,28 @@
<field name="inherit_id" ref="hr_payroll.view_hr_payslip_line_filter"/>
<field name="arch" type="xml">
<data>
<xpath expr="//group" position="inside">
<xpath expr="//group" position="before">
<separator string="Date Account"/>
<filter name="this_week" string="This Week" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=7)).strftime('%Y-%m-%d')), ('date', '&lt;', (context_today() - datetime.timedelta(days=0)).strftime('%Y-%m-%d'))]"/>
<filter name="last_week" string="Last Week" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=14)).strftime('%Y-%m-%d')), ('date', '&lt;', (context_today() - datetime.timedelta(days=7)).strftime('%Y-%m-%d'))]"/>
<filter name="last_two_week" string="Two Weeks Ago" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=21)).strftime('%Y-%m-%d')), ('date', '&lt;', (context_today() - datetime.timedelta(days=14)).strftime('%Y-%m-%d'))]"/>
<filter name="last_three_week" string="Three Weeks Ago" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=28)).strftime('%Y-%m-%d')), ('date', '&lt;', (context_today() - datetime.timedelta(days=21)).strftime('%Y-%m-%d'))]"/>
<filter name="this_month" string="This Month" domain="[('date', '&gt;=', context_today().strftime('%Y-%m-01')), ('date', '&lt;=', (context_today().replace(day=28) + datetime.timedelta(days=4)).strftime('%Y-%m-01'))]"/>
<filter name="last_month" string="Last Month" domain="[('date', '&lt;', context_today().strftime('%Y-%m-01')), ('date', '&gt;=', (context_today().replace(day=1) - datetime.timedelta(days=1)).strftime('%Y-%m-01'))]"/>
<separator string="This Year"/>
<filter name="this_year_q1" string="This Year Q1" domain="[('date', '&gt;=', context_today().strftime('%Y-01-01')), ('date', '&lt;', context_today().strftime('%Y-04-01'))]" />
<filter name="this_year_q2" string="This Year Q2" domain="[('date', '&gt;=', context_today().strftime('%Y-04-01')), ('date', '&lt;', context_today().strftime('%Y-07-01'))]" />
<filter name="this_year_q3" string="This Year Q3" domain="[('date', '&gt;=', context_today().strftime('%Y-07-01')), ('date', '&lt;', context_today().strftime('%Y-10-01'))]" />
<filter name="this_year_q4" string="This Year Q4" domain="[('date', '&gt;=', context_today().strftime('%Y-10-01')), ('date', '&lt;=', context_today().strftime('%Y-12-31'))]" />
<separator string="Last Year"/>
<filter name="this_year_q1" string="Last Year Q1" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=365)).strftime('%Y-01-01')), ('date', '&lt;', (context_today() - datetime.timedelta(days=365)).strftime('%Y-04-01'))]" />
<filter name="this_year_q2" string="Last Year Q2" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=365)).strftime('%Y-04-01')), ('date', '&lt;', (context_today() - datetime.timedelta(days=365)).strftime('%Y-07-01'))]" />
<filter name="this_year_q3" string="Last Year Q3" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=365)).strftime('%Y-07-01')), ('date', '&lt;', (context_today() - datetime.timedelta(days=365)).strftime('%Y-10-01'))]" />
<filter name="this_year_q4" string="Last Year Q4" domain="[('date', '&gt;=', (context_today() - datetime.timedelta(days=365)).strftime('%Y-10-01')), ('date', '&lt;=', (context_today() - datetime.timedelta(days=365)).strftime('%Y-12-31'))]" />
</xpath>
<xpath expr="//group" position="inside">
<filter string="Account Date" name="date" context="{'group_by':'date'}"/>
</xpath>
</xpath>
</data>
</field>
</record>

View File

@@ -41,6 +41,22 @@ New Payslip Categories for:
* California Unemployment Insurance Tax
* California Employee Training Tax
Upgrading to 11.0.2018.1.0
==========================
If you were using this prior to November 2018, then you have more Contribution registers
and partners than you need! Simply run the following before installing the new code and upgrading.
Odoo Shell code::
main_cr = env.ref('l10n_us_ca_hr_payroll.contrib_register_cador_uit')
old_1 = env.ref('l10n_us_ca_hr_payroll.contrib_register_cador_withhold')
old_2 = env.ref('l10n_us_ca_hr_payroll.contrib_register_cador_ett')
old_3 = env.ref('l10n_us_ca_hr_payroll.contrib_register_cador_sdi')
lines = env['hr.payslip.line'].search([('register_id', 'in', [old_1.id, old_2.id, old_3.id])])
lines.write({'register_id': main_cr.id})
env.cr.commit()
=======
License

View File

@@ -4,7 +4,7 @@
'license': 'AGPL-3',
'category': 'Localization',
'depends': ['l10n_us_hr_payroll'],
'version': '11.0.2018.0.0',
'version': '11.0.2018.1.0',
'description': """
USA::California Payroll Rules.
==============================

View File

@@ -3,7 +3,7 @@
<data>
<!-- CONTRIBUTION REGISTERS -->
<record id="res_partner_cador_uit" model="res.partner">
<field name="name">California Department of Taxation - Unemployment Insurance Tax</field>
<field name="name">California Department of Taxation (CA DE88)</field>
<field name="supplier">1</field>
<field eval="0" name="customer"/>
</record>
@@ -11,38 +11,44 @@
<field name="name">California Department of Taxation - Income Tax Withholding</field>
<field name="supplier">1</field>
<field eval="0" name="customer"/>
<field eval="False" name="active"/>
</record>
<record id="res_partner_cador_ett" model="res.partner">
<field name="name">California Department of Taxation - Employment Training Tax</field>
<field name="supplier">1</field>
<field eval="0" name="customer"/>
<field eval="False" name="active"/>
</record>
<record id="res_partner_cador_sdi" model="res.partner">
<field name="name">California Department of Taxation - State Disability Insurance</field>
<field name="supplier">1</field>
<field eval="0" name="customer"/>
<field eval="False" name="active"/>
</record>
<record id="contrib_register_cador_uit" model="hr.contribution.register">
<field name="name">California Unemployment Insurance Tax</field>
<field name="note">California Department of Taxation - Unemployment Insurance Tax</field>
<field name="name">California (CA DE88)</field>
<field name="note">California Department of Taxation (CA DE88)</field>
<field name="partner_id" ref="res_partner_cador_uit"/>
</record>
<record id="contrib_register_cador_withhold" model="hr.contribution.register">
<field name="name">California Income Tax Withholding</field>
<field name="note">California Department of Taxation - Income Tax Withholding</field>
<field name="partner_id" ref="res_partner_cador_withhold"/>
</record>
<record id="contrib_register_cador_ett" model="hr.contribution.register">
<field name="name">Employment Training Tax</field>
<field name="note">California Department of Taxation - Employment Training Tax</field>
<field name="partner_id" ref="res_partner_cador_ett"/>
</record>
<record id="contrib_register_cador_sdi" model="hr.contribution.register">
<field name="name">State Disability Insurance</field>
<field name="note">California Department of Taxation - State Disability Insurance</field>
<field name="partner_id" ref="res_partner_cador_sdi"/>
</record>
<!-- These are deprecated in favor of a single grouped register for CA DE88 -->
<!-- They are left here in case their details or structure is needed later. -->
<!--<record id="contrib_register_cador_withhold" model="hr.contribution.register">-->
<!--<field name="name">California Income Tax Withholding</field>-->
<!--<field name="note">California Department of Taxation - Income Tax Withholding</field>-->
<!--<field name="partner_id" ref="res_partner_cador_withhold"/>-->
<!--</record>-->
<!--<record id="contrib_register_cador_ett" model="hr.contribution.register">-->
<!--<field name="name">Employment Training Tax</field>-->
<!--<field name="note">California Department of Taxation - Employment Training Tax</field>-->
<!--<field name="partner_id" ref="res_partner_cador_ett"/>-->
<!--</record>-->
<!--<record id="contrib_register_cador_sdi" model="hr.contribution.register">-->
<!--<field name="name">State Disability Insurance</field>-->
<!--<field name="note">California Department of Taxation - State Disability Insurance</field>-->
<!--<field name="partner_id" ref="res_partner_cador_sdi"/>-->
<!--</record>-->
<!-- HR SALARY RULE CATEGORIES-->

View File

@@ -87,7 +87,7 @@ result = categories.CA_ETT_WAGES
if result_rate == 0.0:
result = 0.0
</field>
<field name="register_id" ref="contrib_register_cador_ett"/>
<field name="register_id" ref="contrib_register_cador_uit"/>
<field name="appears_on_payslip" eval="False"/>
</record>
@@ -131,7 +131,7 @@ result = categories.CA_SDI_WAGES
if result_rate == 0.0:
result = 0.0
</field>
<field name="register_id" ref="contrib_register_cador_sdi"/>
<field name="register_id" ref="contrib_register_cador_uit"/>
<field name="appears_on_payslip" eval="False"/>
</record>
@@ -569,7 +569,7 @@ if not low_income:
result = -tax
</field>
<field name="register_id" ref="contrib_register_cador_withhold"/>
<field name="register_id" ref="contrib_register_cador_uit"/>
</record>
</data>

View File

@@ -13,6 +13,7 @@ Adds "todo" lines onto Project Tasks, and improves sub-tasks.
'project',
],
'data': [
'security/ir.model.access.csv',
'views/project_views.xml',
],
'installable': True,

View File

@@ -11,13 +11,17 @@ class ProjectTask(models.Model):
def _compute_subtask_count(self):
for task in self:
task.subtask_count = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id)])
task.subtask_count_done = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id), ('stage_id.fold', '=', True)])
if task.subtask_count:
task.subtask_count_done = self.search_count([('id', 'child_of', task.id), ('id', '!=', task.id),
('stage_id.fold', '=', True)])
else:
task.subtask_count_done = 0
class ProjectTaskLine(models.Model):
_name = 'project.task.line'
_description = 'Task Todos'
_order = 'sequence, id desc'
_order = 'sequence, id asc'
task_id = fields.Many2one('project.task', required=True)
name = fields.Char(string='Name')

View File

@@ -0,0 +1,3 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_project_task_line","access_project_task_line","model_project_task_line","base.group_user",1,1,1,1
"access_project_task_line_public","access_project_task_line public","model_project_task_line","base.group_public",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_project_task_line access_project_task_line model_project_task_line base.group_user 1 1 1 1
3 access_project_task_line_public access_project_task_line public model_project_task_line base.group_public 1 0 0 0

1
purchase_discount Symbolic link
View File

@@ -0,0 +1 @@
./external/hibou-oca/purchase-workflow/purchase_discount

View File

@@ -71,7 +71,7 @@ class RMA(models.Model):
raise UserError(_('You must have a sale order for this RMA.'))
if not self.template_id.in_require_return:
group_id = self.sale_order_id.procurement_group_id.id if self.sale_order_id.procurement_group_id else 0
sale_id = self.sale_order_id
sale_id = self.sale_order_id.id
values = self.template_id._values_for_in_picking(self)
update = {'sale_id': sale_id, 'group_id': group_id}
update_lines = {'group_id': group_id}
@@ -95,7 +95,7 @@ class RMA(models.Model):
raise UserError(_('You must have a sale order for this RMA.'))
if not self.template_id.out_require_return:
group_id = self.sale_order_id.procurement_group_id.id if self.sale_order_id.procurement_group_id else 0
sale_id = self.sale_order_id
sale_id = self.sale_order_id.id
values = self.template_id._values_for_out_picking(self)
update = {'sale_id': sale_id, 'group_id': group_id}
update_lines = {'to_refund_so': self.template_id.in_to_refund_so, 'group_id': group_id}

View File

@@ -36,4 +36,22 @@
</xpath>
</template>
<template id="my_task_todo" inherit_id='project.portal_my_task' name="Todo List (requires project_task_line)" customize_show="True" active="False">
<xpath expr="//t[@t-if='task.description']" position="before">
<t t-if="task.line_ids">
<div class="col-md-12">
<strong>Todo List</strong>
<ul class="list-unstyled">
<li t-foreach="task.line_ids" t-as="line">
<span t-if="line.kanban_state == 'normal'" class="text-muted"><i class="fa fa-circle"></i></span>
<span t-if="line.kanban_state == 'done'" class="text-success"><i class="fa fa-check-circle"></i></span>
<span t-if="line.kanban_state == 'blocked'" class="text-danger"><i class="fa fa-times-circle"></i></span>
<span t-field="line.name"/>
</li>
</ul>
</div>
</t>
</xpath>
</template>
</odoo>