BtS)$Q^rd&_yQ0!h%CbqO@N^i&K!}kgVdReALhIzSno)
z7J*A!%44oZN5R>JeOJz*g$O_I4M$J4C!%ts}{e8e!k|pjf0zRFr+x{Fq)G{jVYs#
zy)&%u@3a1?^0mB6dW^5@GEbO-n@khcA7{}_T8?y5D;%r~nKfTw#
zd^xs+ld1`MeQY2kL9?8XNjKUI7>g!)<6aRK%Xuh?uEOK(<2i-&`gEe9wBt^D93#e1@p8R2y{E)RK~(CeL+0Bb=k?#ms_^kaz5HgSOpR!vAD<
zc1XkN?OVC5x;UFwV5N4T|B&6Rot&m7Ww{5(DfZk++?${uqjwMrt^yc*>i495e1DW;
z{(Y4bD>ZFnSHAQ2m@(nIyG3X8eBIQ4}^u
z6a23`*;F=<8|h2=aUi||QTaWMsh%IbVNRx2wG3h0*TUpm999C>h>+^@@l}{V&xBSl
z=05YNSt^@DHtHy;oAq#RSV}6r>8h~aA09O=Z+nZo;FPUjfUm`!!;BcDnz!+})6~7%
z+{+9|w;h6q*dq8X&v_)O9^|}a5F^7av<6SLj&ec{+>(0}V3fJpqez;Cpi!wH_
zEu`I7pLVvOcD~HAM6L8|U7PnH-9g)TZ?R;o;_qC3m`ked&Wu*LEy%zrae>zNgkyxm
zi%Ex_8LPSpZn@AN8Ld`oMJyVV&e%NW&=2C!US=%g>yQ*C`
zbj#Nh!`q<1E&hZ>X3AI{FXf5np)cs-EhcwW6@{~2aEcf53K>xZa<$ni+76va^k)$(
z%JKIt(}#Jsz}oW!w_bxlC3|Bl0;#!TFMq6uGmTK+F?n)AgY|b2g>II
zy&FmHf}DDi4kt{duKyj&f5o={3C=<5j}H4_7@NUx;)CDdki}23zu)Emg|3|Cj~rs~
zvdBn#Qbv-p^oF%G*{3-Hzc>9!;Y?3Q&juPQ?a1s&^9VrDAlSCcQOQqB<2+$3vNLd%
z+4RzAJ91TRhge=5m97e;VRa22@Wj}%l2xT3P(6spd@OnJJocr_ab73efEnEf9zsrR
zvYhb@t~@2jq~ds`w}Iat(N!wQhnq3WGz4MiwRuBK%CgZs91<pCyp&wC
z7=#LwC`18tWidae7#u#nEbV`hG12Zg^hrmVad=*z%c|SXhl0P{Fv&r%)Cy@f4e1LR
z(IDAL__`)JuWK~x$^O7>$L}}ZqGK&bGjOB>8Jq)njQ?wkfoz>jY@PH}-R(>qbsnP~
zt?MJLBuQf9!>MJAm-q=yC%J
zHY5oKs|c!>Gt0AOdgq!?x;RM~A5jKfb)vpZIMJVyj2c-e^TAk#WYyt{Ik*1Ca1AoP
zA(aZgw`4&j&nBi;#(2n>$daQIoSIpVH^Pwd8cB(
zZBU0J1YisLXn5ed@bYx5s;8Fjd(e|7*~X+1#J)anLHzKitj#V)z}URHDE6r$0OTrz3mR^An}c
zzq9>^Tl-VapE2BDa*)B%u78T?{wd+l0NF1IC*U~gqlCZ0W&i)Nw}Gt_%=+*2p
zXM*yV#*M$T{YqE<+2ucDxxWP5{2cV(Vf$a5eoV*zY>zYS^mB$Eng2@8|K9UI)ANtK
fKW8obKX`v7>lI~Sek@jWaJ35@n9hszk?;QiR}UXE
literal 0
HcmV?d00001
diff --git a/yuthon_salary/static/others/salary_year_thtz.xlsx b/yuthon_salary/static/others/salary_year_thtz.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..7ffcd0f49f60c048fdb8036f818873505d3a1bcb
GIT binary patch
literal 9409
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
U1N(EbVt{YOz=P%TNT2ln5BQ8SlK=n!
literal 0
HcmV?d00001
diff --git a/yuthon_salary/static/others/salary_year_thwg.xlsx b/yuthon_salary/static/others/salary_year_thwg.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..244a5a861b5b4b08a26c2e2515891dd296dc822a
GIT binary patch
literal 9499
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
F{|7Q
+
+
+
+
+
+
+
diff --git a/yuthon_salary/views/yuthon_salary_year_views.xml b/yuthon_salary/views/yuthon_salary_year_views.xml
index 8baf1e3fa..7f67d3e0e 100644
--- a/yuthon_salary/views/yuthon_salary_year_views.xml
+++ b/yuthon_salary/views/yuthon_salary_year_views.xml
@@ -4,7 +4,7 @@
yuthon.salary.year.tree
yuthon.salary.year
-
+
@@ -21,7 +21,6 @@
-
@@ -47,7 +46,6 @@
-
diff --git a/yuthon_salary/wizard/__init__.py b/yuthon_salary/wizard/__init__.py
index 54bf093a8..6c7de40ca 100644
--- a/yuthon_salary/wizard/__init__.py
+++ b/yuthon_salary/wizard/__init__.py
@@ -7,4 +7,5 @@ from . import put_return_wizard
from . import temporary_payslip_wizard
from . import payroll_labor_wizard
from . import payroll_retired_wizard
-from . import salary_print_wizard
\ No newline at end of file
+from . import salary_print_wizard
+from . import salary_year_wizard
\ No newline at end of file
diff --git a/yuthon_salary/wizard/salary_year_wizard.py b/yuthon_salary/wizard/salary_year_wizard.py
new file mode 100644
index 000000000..07b06c3e3
--- /dev/null
+++ b/yuthon_salary/wizard/salary_year_wizard.py
@@ -0,0 +1,103 @@
+# -*- coding: utf-8 -*-
+from odoo import models, fields, api, _, SUPERUSER_ID
+from odoo.exceptions import ValidationError, UserError
+from pypinyin import pinyin, Style
+import xlrd
+import base64
+import datetime
+from datetime import datetime
+
+
+class SalaryYearWizard(models.Model):
+ _name = 'salary.year.wizard'
+ _description = '年终奖导入弹窗'
+
+ company_id = fields.Many2one('res.company', string='公司', default=lambda self: self.env.company, store=True)
+ company_name = fields.Char(string='公司名称', related='company_id.name', store=True)
+
+ excel_file = fields.Binary(string="上传Excel表")
+ excel_name = fields.Char(string="文件名")
+
+ def confirm(self):
+ if not self.excel_file:
+ raise ValidationError('请上传文件。')
+ book = xlrd.open_workbook(file_contents=base64.decodebytes(self.excel_file))
+ sh = book.sheet_by_index(0)
+ for rx in range(1, sh.nrows):
+ row = sh.row(rx)
+ if self.company_id.name == '集团本部':
+ self.salary_year_ttjt_data(row)
+ elif self.company_id.name == '天河物管':
+ self.salary_year_thwg_data(row)
+ else:
+ self.salary_year_thlc_data(row)
+
+
+ def salary_year_ttjt_data(self,row):
+ employee_id = self.env['hr.employee'].search([('name', '=', row[0].value)], limit=1)
+ on_year_balance = row[1].value
+ former_year_balance = row[2].value
+ on_year_liquidation = row[3].value
+ former_year_liquidation = row[4].value
+ salary_year_id = self.env["yuthon.salary.year"].search([('employee_id', '=', employee_id.id)])
+ if salary_year_id:
+ salary_year_id.write({
+ 'on_year_balance': on_year_balance,
+ 'former_year_balance': former_year_balance,
+ 'on_year_liquidation': on_year_liquidation,
+ 'former_year_liquidation': former_year_liquidation,
+ })
+ else:
+ self.env["yuthon.salary.year"].create({
+ 'employee_id': employee_id.id,
+ 'on_year_balance': on_year_balance,
+ 'former_year_balance': former_year_balance,
+ 'on_year_liquidation': on_year_liquidation,
+ 'former_year_liquidation': former_year_liquidation,
+ })
+
+ def salary_year_thwg_data(self, row):
+ employee_id = self.env['hr.employee'].search([('name', '=', row[0].value)], limit=1)
+ one_three_salary = row[1].value
+ job_salary = row[2].value
+ test_salary = row[3].value
+ software_salary = row[4].value
+ safe_salary = row[5].value
+ outstanding_salary = row[6].value
+ leadership_salary = row[7].value
+ salary_year_id = self.env["yuthon.salary.year"].search([('employee_id', '=', employee_id.id)])
+ if not salary_year_id:
+ self.env["yuthon.salary.year"].create({
+ 'employee_id': employee_id.id,
+ 'one_three_salary': one_three_salary,
+ 'job_salary': job_salary,
+ 'test_salary': test_salary,
+ 'software_salary': software_salary,
+ 'safe_salary': safe_salary,
+ 'outstanding_salary': outstanding_salary,
+ 'leadership_salary': leadership_salary,
+ })
+ else:
+ salary_year_id.write({
+ 'one_three_salary': one_three_salary,
+ 'job_salary': job_salary,
+ 'test_salary': test_salary,
+ 'software_salary': software_salary,
+ 'safe_salary': safe_salary,
+ 'outstanding_salary': outstanding_salary,
+ 'leadership_salary': leadership_salary,
+ })
+
+ def salary_year_thlc_data(self, row):
+ employee_id = self.env['hr.employee'].search([('name', '=', row[0].value)], limit=1)
+ performance_salary = row[1].value
+ salary_year_id = self.env["yuthon.salary.year"].search([('employee_id', '=', employee_id.id)])
+ if not salary_year_id:
+ salary_year_id = self.env["yuthon.salary.year"].create({
+ 'employee_id': employee_id.id,
+ 'performance_salary': performance_salary,
+ })
+ else:
+ salary_year_id.write({
+ 'performance_salary': performance_salary,
+ })
\ No newline at end of file
diff --git a/yuthon_salary/wizard/salary_year_wizard.xml b/yuthon_salary/wizard/salary_year_wizard.xml
new file mode 100644
index 000000000..784fdf904
--- /dev/null
+++ b/yuthon_salary/wizard/salary_year_wizard.xml
@@ -0,0 +1,54 @@
+
+
+
+
+ 天河投资模板下载
+ self
+ /yuthon_salary/static/others/salary_year_thtz.xlsx
+
+
+
+ 天河物管模板下载
+ self
+ /yuthon_salary/static/others/salary_year_thwg.xlsx
+
+
+
+ 天河粮储模板下载
+ self
+ /yuthon_salary/static/others/salary_year_thlc.xlsx
+
+
+
+ 弹窗
+ salary.year.wizard
+
+
+
+
+
\ No newline at end of file