添加功能
This commit is contained in:
@@ -91,20 +91,22 @@ class HrAttendanceMonthDetail(models.Model):
|
||||
('11', '11月份'),
|
||||
('12', '12月份')
|
||||
], string="考勤月份")
|
||||
required_attendance_days = fields.Float(string="应出勤天数")
|
||||
actual_attendance_days = fields.Float(string="实际出勤天数")
|
||||
compensatory_leave = fields.Float(string="调休(小时)")
|
||||
leave_of_absence = fields.Float(string="事假(小时)")
|
||||
leave_of_sick = fields.Float(string="病假(天)")
|
||||
statutory_leave = fields.Float(string="法定假(天)")
|
||||
work_overtime = fields.Float(string="加班(小时)")
|
||||
required_attendance_days = fields.Integer(string="应出勤天数")
|
||||
actual_attendance_days = fields.Integer(string="实际出勤天数")
|
||||
compensatory_leave = fields.Integer(string="调休(小时)")
|
||||
leave_of_absence = fields.Integer(string="事假(小时)")
|
||||
leave_of_sick = fields.Integer(string="病假(天)")
|
||||
statutory_leave = fields.Integer(string="法定假(天)")
|
||||
work_overtime = fields.Integer(string="加班(小时)")
|
||||
entry_date = fields.Date(string="入职时间")
|
||||
expected_date = fields.Date(string="离职日期")
|
||||
# todo 需要什么字段往上加什么
|
||||
# 打卡
|
||||
come_late = fields.Float(string="迟到(次)")
|
||||
is_early_card = fields.Float(string="早退(次)")
|
||||
is_no_card = fields.Float(string="缺卡(次)")
|
||||
come_late = fields.Integer(string="迟到")
|
||||
is_early_card = fields.Integer(string="早退")
|
||||
is_no_card = fields.Integer(string="缺卡")
|
||||
# 假期
|
||||
unpaid_leave = fields.Float(string="无薪假(小时)")
|
||||
unpaid_leave = fields.Integer(string="无薪假(小时)")
|
||||
|
||||
|
||||
note = fields.Char(string='备注')
|
||||
@@ -352,3 +354,9 @@ class HrAttendanceMonthDetail(models.Model):
|
||||
for record in self:
|
||||
# 更新用户的考勤明细
|
||||
record.analysis_attendance_month_detail()
|
||||
|
||||
def button_put(self):
|
||||
pass
|
||||
|
||||
def button_all_put(self):
|
||||
pass
|
||||
@@ -66,7 +66,7 @@
|
||||
<field name="department_id" optional="hide"/>
|
||||
<field name="current_year" />
|
||||
<field name="current_month" />
|
||||
<field name="signature" widget="image" options='{"size": [80, 40]}' />
|
||||
<field name="work_overtime" />
|
||||
<!-- todo 需要什么字段往上加什么-->
|
||||
<!-- 打卡-->
|
||||
<field name="come_late"/>
|
||||
@@ -75,9 +75,12 @@
|
||||
<!-- 请假-->
|
||||
<field name="unpaid_leave" />
|
||||
<!-- 其他-->
|
||||
<field name="note" optional="hide"/>
|
||||
<field name="company_id" optional="hide"/>
|
||||
<field name="entry_date"/>
|
||||
<field name="expected_date"/>
|
||||
<field name="note"/>
|
||||
<field name="company_id"/>
|
||||
<field name="state" widget="badge" decoration-info="state == 'unconfirmed'" decoration-success="state == 'confirmed'"/>
|
||||
<button name="button_put" string="发送" type="object" class="oe_highlight"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -152,4 +155,11 @@
|
||||
}
|
||||
</field>
|
||||
</record>
|
||||
<record id="all_data_attendance_put_month" model="ir.actions.server">
|
||||
<field name="name">批量发送</field>
|
||||
<field name="model_id" ref="yuthon_hr_attendance.model_hr_attendance_month_detail"/>
|
||||
<field name="binding_model_id" ref="yuthon_hr_attendance.model_hr_attendance_month_detail"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.button_all_put()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -217,16 +217,13 @@
|
||||
<xpath expr="//field[@name='work_email']" position="attributes">
|
||||
<attribute name="optional">hide</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="company_old"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='parent_id']" position="attributes">
|
||||
<attribute name="string">上级单位</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='job_id']" position="after">
|
||||
<field name="number" optional="hide"/>
|
||||
<field name="yuthon_company" optional="hide"/>
|
||||
<field name="use_user_type"/>
|
||||
<field name="number"/>
|
||||
<field name="user_number" optional="hide"/>
|
||||
<field name="mobile_phone"/>
|
||||
<field name="confirmation_date" optional="hide"/>
|
||||
@@ -251,9 +248,6 @@
|
||||
<field name="graduate_date" optional="hide"/>
|
||||
<field name="graduate_school" optional="hide"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="number"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='first_contract_date']" position="attributes">
|
||||
<attribute name="optional">hide</attribute>
|
||||
</xpath>
|
||||
|
||||
@@ -1,46 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<template id="issue_meeting_minutes_report_template">
|
||||
<template id="property_base_accounts_report_template">
|
||||
<t t-call="web.basic_layout" t-foreach="docs" t-as="doc">
|
||||
<div class="page">
|
||||
<h1 style="text-align:center;">
|
||||
<storng>
|
||||
<t t-esc="doc.name"/>
|
||||
<t t-esc="发票基本信息"/>
|
||||
<br/>
|
||||
<br/>
|
||||
</storng>
|
||||
</h1>
|
||||
<h2 style="text-align:center;">
|
||||
<storng>
|
||||
<t t-esc="doc.computed_meeting_name"/>
|
||||
</storng>
|
||||
</h2>
|
||||
<div style="text-indent: 4em;font-size: 24px;width: 900px;line-height: 2;" >
|
||||
<t t-esc="doc.meeting_date.strftime('%Y年%m月%d日')" />,
|
||||
<t t-if="doc.company_page == 'tz'">天河投资集团</t>
|
||||
<t t-elif="doc.company_page == 'wg'">天河物管集团</t>
|
||||
<t t-elif="doc.company_page == 'lc'">天河粮储集团</t>(下称“公司”)在
|
||||
<t t-esc="doc.meeting_id.room_id.name"/>(下称“会议”),召开了本年度
|
||||
第<t t-esc="doc.number_of_meetings"/>次<t t-esc="doc.meeting_type_id.name"/>,会议议题如下:<br/>
|
||||
</div>
|
||||
<div style="text-indent: 4em;font-size: 24px;width: 900px;line-height: 2;" >
|
||||
<t t-set="chinese_digits" t-value="['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']"/>
|
||||
<t t-set="counter" t-value="1"/>
|
||||
<t t-foreach="doc.meeting_minutes_ids" t-as="dm">
|
||||
<t t-esc="chinese_digits[counter]"/>、<t t-esc="dm.minutes_id.name"/>
|
||||
<t t-set="counter" t-value="counter + 1" />
|
||||
</t>
|
||||
</div>
|
||||
<div style="text-indent: 4em;font-size: 24px;width: 900px;line-height: 2;" >
|
||||
<t t-set="chinese_digits" t-value="['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']"/>
|
||||
<t t-set="counter" t-value="1" />
|
||||
<t t-foreach="doc.meeting_minutes_ids" t-as="dm">
|
||||
<span t-if="counter != 1" style="display: inline-block; width: 4em;"></span>
|
||||
<t t-esc="chinese_digits[counter]"/>、<t t-esc="dm.overview"/>
|
||||
<br/>
|
||||
<t t-set="counter" t-value="counter + 1" />
|
||||
</t>
|
||||
</div>
|
||||
填表说明:
|
||||
1、仅支持数电票的导入开具,不支持纸质发票批量导入开具;
|
||||
2、发票流水号:纳税人自定义,长度不超过20位;发票流水号为导入开具区分发票的唯一标识,用于关联发票的明细信息、特定业务信息、附加要素信息;
|
||||
3、发票类型:增值税专用发票、普通发票;
|
||||
4、不支持差额开具和减按开具模式;
|
||||
5、当开具的发票类型为增值税专用发票时,购买方纳税人识别号必填。当开具的发票类型为普票时,若购买方为企业的,购买方纳税人识别号必填。
|
||||
6、所有内容输入均为文本格式输入;
|
||||
7、若开具发票需要使用邮箱推送时:可填写购买方电子邮箱;
|
||||
8、“放弃享受减按1%征收率原因”填写说明:您在2023年1月1日以后取得的适用3%征收率的应税销售收入,可减按1%征收率征收增值税。若您有特殊情况,需要开具其他发票,请在【放弃享受减按1%征收率原因】字段中选择相应原因(小规模纳税人开具增值税普通发票可不填写此项)。
|
||||
9、含税标志: 在填写sheet页“2-发票明细信息”中,根据实际业务需要,当单价、金额为含税时,选择“是”,当单价、金额为不含税时,选择“否”。
|
||||
10、开具除特定业务外的普通发票:1、如受票方(发票抬头)为自然人,请根据实际需要提供姓名或姓。如您的姓名为张某某,可在名称栏次填写:张某某、张先生或张女士;2、如受票方(发票抬头)为自然人,并要求能将发票归集在个人票夹中展示,需要提供姓名及身份证号码(自然人纳税人识别号);3、如受票方(发票抬头)为个体工商户,需提供统一社会信用代码或纳税人识别号,并在受票方自然人标识栏次选择“否”。
|
||||
11、当“特定业务类型”为“农产品收购”、“光伏收购”、“报废产品收购”时,本模板中填写的“购买方名称”指实际的销售方名称,“购买方纳税人识别号”指实际的销售方纳税人识别号。
|
||||
12、当“特定业务类型”为“农产品收购”、“报废产品收购”时,“购买方名称”、“购买方纳税人识别号”、“购买方证件类型”、“购买方证件号码”、“购买方国籍(或地区)”为必填项;当“特定业务类型”为“光伏收购”且“受票方自然人标识”为“是”时,“购买方名称”、“购买方纳税人识别号”、“购买方证件类型”、“购买方证件号码”、“购买方国籍(或地区)”为必填项。
|
||||
13、当“特定业务类型”为““报废产品收购”时,购买方地址信息请填写在“购买方所在地区(报废产品收购必填)”列和“购买方详细地址(报废产品收购必填)”列,“购买方电话”为必填项。
|
||||
14、当“特定业务类型”为“报废产品收购”且商品和服务编码包含“报废机动车”类(即1110700000000000000、1110701000000000000、1110702000000000000、1110799000000000000之一)时,本模版中“报废产品销售类型”为必填,请根据真实业务情况选择(如为向出售者收购其自用的报废机动车,选择“销售自己使用过的报废产品”,其他情形请选择“销售收购的报废产品”);开具非“报废机动车”类商品和服务编码无需填写。
|
||||
15、当单张发票煤炭销售金额大于或等于1000万时,请在“每千克煤炭发热量(千卡)”、“干基全硫(%)(保留两位小数)”、“干燥无灰基挥发分(%)(保留两位小数)列填写具体信息;若单张发票煤炭销售金额小于1000万,则“每千克煤炭发热量(千卡)”、“干基全硫(%)(保留两位小数)”、“干燥无灰基挥发分(%)(保留两位小数)列无需填写。
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
@@ -20,7 +20,7 @@ class YuthonNotice(models.Model):
|
||||
start_date = fields.Date(string="生效日期", default=fields.Date.today())
|
||||
end_date = fields.Date(string="终止日期")
|
||||
sequence = fields.Integer(string="顺序", default=1, compute='_compute_sequence')
|
||||
employee_ids = fields.Many2many('hr.employee', string="人员范围", default=lambda self: self.env.user.employee_id)
|
||||
employee_ids = fields.Many2many('hr.employee', string="人员范围")
|
||||
notice_state = fields.Selection([('no', '未发布'), ('yes', '已发布'), ('stop', '已终止')], default='no',
|
||||
string="公告状态")
|
||||
notice_documents_ids = fields.Many2many('ir.attachment', string="附件")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from odoo import models, fields, api
|
||||
|
||||
import xlwt
|
||||
|
||||
class PropertyAccountsReceivable(models.Model):
|
||||
_name = 'property.accounts.receivable'
|
||||
@@ -37,4 +37,20 @@ class PropertyAccountsReceivable(models.Model):
|
||||
last_update_time = fields.Datetime(string='最后修改时间')
|
||||
|
||||
def unlink(self):
|
||||
return super().unlink()
|
||||
return super().unlink()
|
||||
|
||||
def report_button_xls(self):
|
||||
workbook = xlwt.Workbook() # 创建一个工作簿
|
||||
worksheet = workbook.add_sheet('Sheet1')
|
||||
for record in self:
|
||||
worksheet.write(1, 0, record.original_amount)
|
||||
action = {
|
||||
'type': 'ir.actions.act_url', # 表示将执行一个客户端动作。
|
||||
'tag': 'self',
|
||||
'context': dict({
|
||||
'url': 'yuthon_property/static/others/property_bases_account.xlsx',
|
||||
'module': 'yuthon_property', # 指定模块名称
|
||||
'content_type': 'application/vnd.ms-excel'
|
||||
}, **self._context)
|
||||
}
|
||||
return action
|
||||
@@ -25,5 +25,8 @@ class PropertyBankStatements(models.Model):
|
||||
def button_reconciliation(self):
|
||||
pass
|
||||
|
||||
def button_all_reconciliation(self):
|
||||
pass
|
||||
|
||||
def unlink(self):
|
||||
return super().unlink()
|
||||
Binary file not shown.
Binary file not shown.
@@ -44,4 +44,11 @@
|
||||
<field name="res_model">property.accounts.receivable</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
<record id="all_property_accounts_receivable_contract" model="ir.actions.server">
|
||||
<field name="name">批量导入合同</field>
|
||||
<field name="model_id" ref="yuthon_property.model_property_accounts_receivable"/>
|
||||
<field name="binding_model_id" ref="yuthon_property.model_property_accounts_receivable"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.report_button_xls()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -26,4 +26,11 @@
|
||||
<field name="res_model">property.bank.statements</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
<record id="all_data_property_bank_statements" model="ir.actions.server">
|
||||
<field name="name">批量对账</field>
|
||||
<field name="model_id" ref="yuthon_property.model_property_bank_statements"/>
|
||||
<field name="binding_model_id" ref="yuthon_property.model_property_bank_statements"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_yuthon_salary_wizard()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -27,8 +27,8 @@
|
||||
<field name="lv_name" column_invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="rank_salary" groups="yuthon_hr_employee.group_hr_employee_tt_user"/>
|
||||
<field name="base_salary"/>
|
||||
<field name="rank_salary" groups="yuthon_hr_employee.group_hr_employee_tt_user"/>
|
||||
<field name="position_subsidy" groups="yuthon_hr_employee.group_hr_employee_lc_user"/>
|
||||
<field name="performance_bonus" groups="yuthon_hr_employee.group_hr_employee_tt_user,yuthon_hr_employee.group_hr_employee_lc_user"/>
|
||||
<field name="integrated_subsidy" groups="yuthon_hr_employee.group_hr_employee_wg_user"/>
|
||||
@@ -85,7 +85,6 @@
|
||||
<field name="name">全部</field>
|
||||
<field name="res_model">hr.payroll.structure</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<field name="context">{'search_default_group_lv_name': 1}</field>
|
||||
</record>
|
||||
<record id="all_paroll_write_salary" model="ir.actions.server">
|
||||
<field name="name">批量更新职级类型</field>
|
||||
|
||||
Reference in New Issue
Block a user