81 lines
4.6 KiB
Python
81 lines
4.6 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""Данные воинского учёта на карточке сотрудника.
|
||
|
||
Минимальный набор признаков, достаточный для агрегатов форм воинского
|
||
учёта (6, 18, 19): отношение к воинской обязанности, состав (офицеры /
|
||
прочие), пребывание в запасе, бронирование и мобпредписание, а также
|
||
категория должности для группировки в формах.
|
||
|
||
Это ОБРАЗЕЦ: состав полей и справочники уточняются у специалиста по ВУ.
|
||
"""
|
||
from odoo import fields, models
|
||
|
||
# Категория должности для группировки в формах 6 и 19.
|
||
MIL_JOB_CATEGORY = [
|
||
('manager', 'Руководители'),
|
||
('specialist', 'Специалисты'),
|
||
('clerk', 'Служащие'),
|
||
('worker', 'Рабочие'),
|
||
]
|
||
|
||
# Состав граждан, пребывающих в запасе (деление в формах 6/18).
|
||
MIL_RANK_GROUP = [
|
||
('officer', 'Офицеры (и генералы)'),
|
||
('soldier', 'Прапорщики, мичманы, сержанты, старшины, солдаты и матросы'),
|
||
]
|
||
|
||
|
||
class HrEmployee(models.Model):
|
||
_inherit = 'hr.employee'
|
||
|
||
rsbu_mil_liable = fields.Boolean(
|
||
string='Военнообязанный',
|
||
help='Сотрудник подлежит воинскому учёту (военнообязанный или '
|
||
'призывник).')
|
||
rsbu_mil_in_reserve = fields.Boolean(
|
||
string='Пребывает в запасе',
|
||
help='Гражданин РФ, пребывающий в запасе (для форм 6/18/19).')
|
||
rsbu_mil_rank_group = fields.Selection(
|
||
selection=MIL_RANK_GROUP, string='Состав',
|
||
help='Состав для деления в отчётах: офицеры либо '
|
||
'прапорщики/сержанты/солдаты.')
|
||
rsbu_mil_conscript = fields.Boolean(
|
||
string='Подлежит призыву',
|
||
help='Гражданин, подлежащий призыву на военную службу (не в запасе).')
|
||
rsbu_mil_booked = fields.Boolean(
|
||
string='Забронирован',
|
||
help='Гражданин, пребывающий в запасе, забронированный за '
|
||
'организацией на период мобилизации и военное время.')
|
||
rsbu_mil_mobilization_order = fields.Boolean(
|
||
string='Имеет мобпредписание',
|
||
help='Наличие мобилизационного предписания в военном билете.')
|
||
rsbu_mil_limited_fit = fields.Boolean(
|
||
string='Ограниченно годен',
|
||
help='Ограниченно годен к военной службе (категория годности «В»).')
|
||
rsbu_mil_job_category = fields.Selection(
|
||
selection=MIL_JOB_CATEGORY, string='Категория должности (ВУ)',
|
||
help='Категория должности для группировки в формах 6 и 19 '
|
||
'(руководители/специалисты/служащие/рабочие).')
|
||
rsbu_mil_vus = fields.Char(
|
||
string='ВУС',
|
||
help='Военно-учётная специальность (код по военному билету).')
|
||
rsbu_mil_rank = fields.Char(
|
||
string='Воинское звание',
|
||
help='Воинское звание по военному билету.')
|
||
rsbu_mil_fitness = fields.Selection(
|
||
selection=[
|
||
('A', 'А — годен'),
|
||
('B', 'Б — годен с незначительными ограничениями'),
|
||
('V', 'В — ограниченно годен'),
|
||
('G', 'Г — временно не годен'),
|
||
('D', 'Д — не годен'),
|
||
],
|
||
string='Категория годности',
|
||
help='Категория годности к военной службе.')
|
||
rsbu_mil_commissariat = fields.Char(
|
||
string='Военный комиссариат',
|
||
help='Наименование военкомата, в котором состоит на учёте.')
|
||
rsbu_mil_is_driver = fields.Boolean(
|
||
string='Водитель (ВУ)',
|
||
help='Отметка «из них водители» для формы 19.')
|