Перейти к содержимому
Odoo Меню
  • Войти
  • Попробовать бесплатно
  • Модули
    Финансы
    • Бухгалтерия
    • Выставление счетов
    • Расходы
    • Таблицы
    • Документооборот
    • Подпись
    Продажи
    • CRM
    • Продажи
    • POS Магазин
    • POS Ресторан
    • Подписки
    • Аренда
    Вебсайты
    • Конструктор вебсайтов
    • eCommerce
    • Блог
    • Форум
    • Онлайн-чат
    • Электронное обучение
    Логистика
    • Склад
    • Производство
    • PLM
    • Закупки
    • Обслуживание
    • Качество
    Отдел кадров
    • Сотрудники
    • Подбор персонала
    • Отпуска
    • Оценка персонала
    • Реферальная программа
    • Автопарк
    Маркетинг
    • SMM
    • E-mail рассылки
    • СМС рассылки
    • Мероприятия
    • Автоматизация маркетинга
    • Опросы
    Услуги
    • Проекты
    • Табели
    • Выездной сервис
    • Поддержка
    • Планирование
    • Встречи
    Продуктивность
    • Обсуждения
    • Искусственный интеллект
    • IoT
    • VoIP-телефония
    • Knowledge
    • WhatsApp
    Сторонние приложения Модуль Студия Odoo Платформа Odoo Cloud
  • Индустрии
    Розничная торговля
    • Книжный магазин
    • Магазин одежды
    • Мебельный магазин
    • Продуктовый магазин
    • Строительный магазин
    • Магазин игрушек
    Гостинично-ресторанный бизнес
    • Бар и паб
    • Ресторан
    • Фастфуд
    • Гостевой дом
    • Дистрибьютор напитков
    • Отель
    Недвижимость
    • Агентство недвижимости
    • Архитектурное бюро
    • Строительство
    • Управление недвижимостью
    • Ландшафтный дизайн
    • Товарищество собственников жилья
    Консалтинг
    • Бухгалтерская фирма
    • Партнер Odoo
    • Маркетинговое агентство
    • Юридическая фирма
    • Подбор персонала
    • Аудиторское бюро
    Производство
    • Текстиль
    • Металл
    • Мебель
    • Продукты питания
    • Пивоварня
    • Корпоративные сувениры
    Здоровье и фитнес
    • Спортивный комплекс
    • Магазин оптики
    • Фитнес-клуб
    • Велнес-центр
    • Аптека
    • Салон красоты
    Услуги
    • Специалист по бытовым услугам
    • Продажа и обслуживание IT-оборудования
    • Солнечные энергосистемы
    • Производство обуви
    • Клининг
    • Системы ОВКВ
    Прочее
    • Некоммерческая организация
    • Консалтинг в сфере устойчивого развития
    • Аренда рекламных щитов
    • Бизнес по фотосъемке
    • Прокат велосипедов
    • Реселлер программного обеспечения
    Все индустрии
  • Community
    Обучение
    • Видео уроки
    • Документация
    • Сертификация
    • Тренинг
    • Блог
    • Подкаст
    Образование и развитие
    • Образовательная программа
    • Деловая игра Scale Up!
    • Экскурсия в офис Odoo
    ПО
    • Скачать
    • Сравнить версии
    • Релизы
    Сотрудничество
    • Github
    • Форум
    • Мероприятия
    • Перевод
    • Стать партнером
    • Услуги для партнеров
    • Зарегистрировать бухгалтерскую фирму
    Услуги
    • Найти партнера
    • Найти бухгалтера
    • Встреча с экспертом
    • Услуги по внедрению
    • Отзывы клиентов
    • Поддержка
    • Обновления
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Заказать демонстрацию
  • Цены
  • Поддержка
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Все посты Люди Значки
Теги (Смотреть все)
odoo accounting v14 pos v15
Об этом форуме
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Все посты Люди Значки
Теги (Смотреть все)
odoo accounting v14 pos v15
Об этом форуме
Помощь

Configure PAYE tax in Salary Structure - Payroll App

Подписаться

Получайте уведомления о появлении активности в этом посте

Этот вопрос был отмечен
pythonpayrollstructuresalary_rule
3 Ответы
1518 Представления
Аватар
Patrick MANDENGUE

Hi Fam,

I am configuring payroll for my company, but I have a "small" issue with the setup for the PAYE Tax in the salary structure. the calculation for PAYE is defined by the Gross Salary as such:


def calculate_paye('GROSS'):
    """
    Calculate PAYE (Pay As You Earn) tax based on gross salary.
    :param gross: float or int - gross salary amount
    :return: float - calculated PAYE
    """
    if ['GROSS'].amount <= 490:
        return 0.0  # No tax for salaries <= 490
    else:
        return -25.0  # Flat tax amount (example)


Can someone help me to fix this as I keep getting an error:

Wrong python code defined for: - Employee: Ireana Gomesh - 

Version: False - 

Payslip: Salary Slip - Ireana Gomesh - February 2026 - 

Salary rule: PAYE Tax (PAYE) - 

Error: invalid syntax (, line 1)

0
Аватар
Отменить
Sujata

Try this instead:
result = 0.0
# Access GROSS using its code
gross = payslip.get_rule_value('GROSS')
if gross <= 490:
result = 0.0 # No tax for salaries <= 490
else:
result = -25.0 # Flat tax amount

Alternative (if above doesn't work):
result = 0.0
# Direct calculation using same formula as GROSS
gross = categories.BASIC + categories.ALW
if gross <= 490:
result = 0.0
else:
result = -25.0

Also verify:
1. Your GROSS rule code field is exactly GROSS (case-sensitive)
2. PAYE rule sequence number is higher than GROSS rule
3. Both rules are in the same salary structure

Аватар
Cybrosys Techno Solutions Pvt.Ltd
Лучший ответ

Hi,


Try the following code,


# Get Gross Salary from salary categories

gross = categories.GROSS or 0.0


# PAYE calculation

if gross <= 490:

    result = 0.0

else:

    result = -25.0


Hope it helps


0
Аватар
Отменить
Patrick MANDENGUE
Автор

when Conditions based on: Always true

Computation
# Get Gross Salary from salary categories
gross = categories.GROSS or 0.0
# PAYE calculation
if gross <= 490:
result = 0.0
else:
result = -25.0

Feeback: Error: AttributeError("'DefaultDictPayroll' object has no attribute 'GROSS'") while evaluating
'# Get Gross Salary from salary categories\r\ngross = categories.GROSS or 0.0\r\n\r\n# PAYE calculation\r\nif gross <= 490:\r\n result = 0.0\r\nelse:\r\n result = -25.0'

When the conditions are based on python Expression
result = 'BASIC' in inputs
result = 'ALW' in inputs

Computation
# Direct calculation using same formula as GROSS
gross = categories.BASIC + categories.ALW # Access the GROSS salary rule
if gross <= 490:
result = 0.0 # No tax for salaries <= 490
else:
result = -25.0 # Flat tax amount

There is no Error, but PAYE Tax doesn't appear when we compute sheet in the Employee payslip (Strange)

Patrick MANDENGUE
Автор

please do you have a whatsapp number?

Аватар
Sujata
Лучший ответ

Hi Patrick,

Thanks for the details! Since GROSS is a salary rule (not a category), here's the code that can help:

result = 0.0
gross = rules.GROSS.amount  # Access the GROSS salary rule
if gross <= 490:
    result = 0.0  # No tax for salaries <= 490
else:
    result = -25.0  # Flat tax amount

Changes Required:

  • Use rules.GROSS.amount to get the value from your GROSS salary rule
  • Assign to result variable (required in Odoo)
  • Remove the function definition (def) as Odoo automatically wraps your code in a function context

Important: Make sure your PAYE rule has a higher sequence number than the GROSS rule so it calculates after GROSS is computed.

0
Аватар
Отменить
Patrick MANDENGUE
Автор

- Error: AttributeError("'DefaultDictPayroll' object has no attribute 'GROSS'") while evaluating
'result = 0.0\r\ngross = rules.GROSS.amount # Access the GROSS salary rule\r\nif gross <= 490:\r\n result = 0.0 # No tax for salaries <= 490\r\nelse:\r\n result = -25.0 # Flat tax amount'

Аватар
Patrick MANDENGUE
Автор Лучший ответ
version: Odoo 19.0+e (Enterprise Edition)


Taxable Salary (code = GROSS) is Salary Rule

python code

result = categories['BASIC'] + categories['ALW'] 

0
Аватар
Отменить
Не оставайтесь в стороне – присоединяйтесь к обсуждению!

Создайте аккаунт сегодня, чтобы получить доступ к эксклюзивным функциям и стать частью нашего замечательного сообщества!

Регистрация
Похожие посты Ответы Просмотры Активность
Payroll > Salary_rule > Python condition
python payroll condition salary_rule
Аватар
1
сент. 17
7968
Attendance allownce
payroll salary_rule
Аватар
0
янв. 20
4408
Payroll Module
python payroll
Аватар
0
дек. 17
4806
Compute Salary Rule from other Rules
payroll payslip salary_rule
Аватар
Аватар
Аватар
Аватар
4
сент. 25
8453
How can I call a function from a salary rule of type python code? Решено
python calculation salary_rule
Аватар
Аватар
2
дек. 24
14362
Сообщество
  • Видео уроки
  • Документация
  • Форум
Открытый исходный код
  • Скачать
  • Github
  • Runbot
  • Перевод
Услуги
  • Хостинг Odoo.sh
  • Поддержка
  • Обновление
  • Индивидуальные решения по доработке
  • Образование
  • Найти бухгалтера
  • Найти партнера
  • Стать партнером
О нас
  • Наша компания
  • Активы бренда
  • Cвяжитесь с нами
  • Вакансии
  • Мероприятия
  • Подкаст
  • Блог
  • Клиенты
  • Правовые документы • Конфиденциальность
  • Безопасность
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk Slovenščina Español (América Latina) Español Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo – это набор бизнес-модулей с открытым исходным кодом, который закроет все потребности вашей компании: CRM, E-commerce, Бухгалтерия, Склад, POS, управление проектами и др.

Odoo сочетает в себе простоту использования и полную интеграцию всех бизнес-процессов в одной системе.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now