mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-19 11:32:06 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1,60 @@
|
|||
from odoo import _, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
# batch payslip processing
|
||||
class HrPayslipEmployees(models.TransientModel):
|
||||
_name = "hr.payslip.employees"
|
||||
_description = "Generate payslips for all selected employees"
|
||||
|
||||
employee_ids = fields.Many2many(
|
||||
"hr.employee", "hr_employee_group_rel", "payslip_id", "employee_id", "Employees"
|
||||
)
|
||||
|
||||
def compute_sheet(self):
|
||||
payslips = self.env["hr.payslip"]
|
||||
[data] = self.read()
|
||||
active_id = self.env.context.get("active_id")
|
||||
if active_id:
|
||||
[run_data] = (
|
||||
self.env["hr.payslip.run"]
|
||||
.browse(active_id)
|
||||
.read(["date_start",
|
||||
"date_end",
|
||||
"credit_note"
|
||||
#, "struct_id"
|
||||
])
|
||||
)
|
||||
from_date = run_data.get("date_start")
|
||||
to_date = run_data.get("date_end")
|
||||
#struct_id = run_data.get("struct_id")
|
||||
if not data["employee_ids"]:
|
||||
raise UserError(_("You must select employee(s) to generate payslip(s)."))
|
||||
for employee in self.env["hr.employee"].browse(data["employee_ids"]):
|
||||
slip_data = self.env["hr.payslip"].get_payslip_vals(
|
||||
from_date, to_date, employee.id #, contract_ids=False, struct_id=struct_id
|
||||
)
|
||||
res = {
|
||||
"employee_id": employee.id,
|
||||
"name": slip_data["value"].get("name"),
|
||||
#"struct_id": slip_data["value"].get("struct_id"),
|
||||
#"contract_ids": slip_data["value"].get("contract_ids"),
|
||||
#"struct_id": False, # hernad: izbaciti ovo?
|
||||
#"contract_id": False, # hernad: izbaciti ovo?
|
||||
"payslip_run_id": active_id,
|
||||
"input_line_ids": [
|
||||
(0, 0, x) for x in slip_data["value"].get("input_line_ids")
|
||||
],
|
||||
"worked_days_line_ids": [
|
||||
(0, 0, x) for x in slip_data["value"].get("worked_days_line_ids")
|
||||
],
|
||||
"date_from": from_date,
|
||||
"date_to": to_date,
|
||||
"credit_note": run_data.get("credit_note"),
|
||||
"company_id": employee.company_id.id,
|
||||
}
|
||||
payslips += self.env["hr.payslip"].create(res)
|
||||
payslips._compute_name()
|
||||
for payslip in payslips:
|
||||
payslip.onchange_dates()
|
||||
payslips.compute_sheet()
|
||||
return {"type": "ir.actions.act_window_close"}
|
||||
Loading…
Add table
Add a link
Reference in a new issue