Siirry sisältöön
Odoo Menu
  • Kirjaudu sisään
  • Kokeile ilmaiseksi
  • Sovellukset
    Talous
    • Kirjanpito
    • Laskutus
    • Kulut
    • Datataulukot (BI)
    • Asiakirjat
    • Allekirjoita
    Myynti
    • CRM
    • Myynti
    • Kassajärjestelmä myymälään
    • Kassajärjestelmä ravintolaan
    • Tilaukset
    • Vuokraus
    Verkkosivut
    • Verkkosivun Rakennustyökalu
    • Verkkokauppa
    • Blogi
    • Foorumi
    • Livechat
    • Verkko-oppiminen
    Toimitusketju
    • Varastointi
    • Tuotanto
    • Tuotteen elinkaaren hallinta (PLM)
    • Ostot
    • Huolto
    • Laatu
    Henkilöstöhallinto
    • Työntekijät
    • Rekrytointi
    • Vapaat
    • Arvioinnit
    • Suositukset
    • Kuljetuskalusto
    Markkinointi
    • Somemarkkinointi
    • Sähköpostimarkkinointi
    • Tekstiviestimarkkinointi
    • Tapahtumat
    • Markkinoinnin automaatio
    • Kyselyt
    Palvelut
    • Projekti
    • Työaikakirjaukset
    • Kenttähuolto
    • Asiakaspalvelu
    • Suunnittelu
    • Ajanvaraukset
    Tuottavuus
    • Viestintä
    • Tekoäly
    • IoT
    • IP-puhe
    • Tietokirjasto
    • WhatsApp
    Kolmannen osapuolen sovellukset Odoo-Studio Odoo-Pilvialusta
  • Toimialat
    Vähittäiskauppa
    • Kirjakauppa
    • Vaatekauppa
    • Huonekaluliike
    • Ruokakauppa
    • Laitteistokauppa
    • Lelukauppa
    Ruoka & Majoitus
    • Baari ja Pubi
    • Ravintola
    • Pikaruoka
    • Majatalo
    • Juomien jakelija
    • Hotelli
    Kiinteistöt
    • Kiinteistönvälitystoimisto
    • Arkkitehtitoimisto
    • Rakentaminen
    • Kiinteistönhallinto
    • Puutarhanhoito
    • Kiinteistönomistajien yhdistys
    Konsultointi
    • Tilitoimisto
    • Odoo-kumppani
    • Markkinointitoimisto
    • Lakitoimisto
    • Osaajahankinta
    • Tilintarkastus & sertifiointi
    Tuotanto
    • Tekstiili
    • Metalli
    • Huonekalut
    • Ruoka
    • Panimo
    • Yrityslahjat
    Terveys & Liikunta
    • Urheiluseura
    • Silmälasiliike
    • Kuntokeskus
    • Hyvinvointialan ammattilaiset
    • Apteekki
    • Kampaamo
    Kaupat
    • Yleismies
    • IT-laitteisto & Tuki
    • Aurinkoenergiajärjestelmät
    • Suutari
    • Siivouspalvelut
    • LVI-palvelut
    Muut
    • Voittoa tavoittelematon järjestö
    • Ympäristötoimisto
    • Mainostaulujen vuokraus  
    • Valokuvaus
    • Leasing-pyörät
    • Ohjelmistojen jälleenmyyjä
    Selaa kaikkia toimialoja
  • Yhteisö
    Opi
    • Kurssit
    • Dokumentaatio
    • Todistukset
    • Koulutus
    • Blogi
    • Podcast
    Kannusta kouluttautumaan
    • Koulutusohjelmat
    • Scale Up! Liiketoimintapeli
    • Vieraile Odoolla
    Hanki ohjelmisto
    • Lataa
    • Vertaile versioita
    • Julkaisut
    Tee yhteistyötä
    • Github
    • Foorumi
    • Tapahtumat
    • Käännökset
    • Ryhdy kumppaniksi
    • Kumppanipalvelut
    • Rekisteröi tilitoimistosi
    Hanki palveluja
    • Löydä kumppani
    • Löydä kirjanpitäjä
    • Varaa asiantuntijatapaaminen
    • Implementaatiopalvelut
    • Asiakasreferenssit
    • Tuki
    • Versionkorotukset
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Varaa demo
  • Hinnoittelu
  • Asiakaspalvelu
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Kaikki kirjoitukset Ihmiset Merkit
Tunnisteet (Näytä kaikki)
odoo accounting v14 pos v15
Tietoa tästä foorumista
Sinun on rekisteröidyttävä, jotta voit olla vuorovaikutuksessa yhteisön kanssa.
Kaikki kirjoitukset Ihmiset Merkit
Tunnisteet (Näytä kaikki)
odoo accounting v14 pos v15
Tietoa tästä foorumista
Apua

Update the automatically generated payslip name

Tilaa

Saat ilmoituksen, kun tähän viestiin ilmaantuu aktiviteettia

Tämä kysymys on merkitty
serverpaysliponchangepayrollodoo13
1 Vastaa
5997 Näkymät
Avatar
Chassis Nigeria, Wale

Hello, I have been stuck trying to update the payslip name generated when the employee is changed;

This is my code:

    def onchange_employee_id(self, date_from, date_to, employee_id=False, contract_id=False):


        # defaults

        res = {

            'value': {

                'line_ids': [],

                # delete old input lines

                'input_line_ids': [(2, x,) for x in self.input_line_ids.ids],

                # delete old worked days lines

                'worked_days_line_ids': [(2, x,) for x in self.worked_days_line_ids.ids],

                # 'details_by_salary_head':[], TODO put me back

                'name': '',

                'contract_id': False,

                'struct_id': False,

            }

        }

        if (not employee_id) or (not date_from) or (not date_to):

            return res

        ttyme = datetime.combine(fields.Date.from_string(date_from), time.max)

        employee = self.env['hr.employee'].browse(employee_id)

        locale = self.env.context.get('lang') or 'en_US'

        res['value'].update({

            'name': _('Pay Slip of %s for %s') % (

            employee.name, tools.ustr(babel.dates.format_date(date=ttyme, format='MMMM-y', locale=locale))),

            'company_id': employee.company_id.id,

        })


        if not self.env.context.get('contract'):

            # fill with the first contract of the employee

            contract_ids = self.get_contract(employee, date_from, date_to)

        else:

            if contract_id:

                # set the list of contract for which the input have to be filled

                contract_ids = [contract_id]

            else:

                # if we don't give the contract, then the input to fill should be for all current contracts of the employee

                contract_ids = self.get_contract(employee, date_from, date_to)


        if not contract_ids:

            return res

        contract = self.env['hr.contract'].browse(contract_ids[0])

        res['value'].update({

            'contract_id': contract.id

        })

        struct = contract.struct_id

        if not struct:

            return res

        res['value'].update({

            'struct_id': struct.id,

        })

        # computation of the salary input

        contracts = self.env['hr.contract'].browse(contract_ids)

        worked_days_line_ids = self.get_worked_day_lines(contracts, date_from, date_to)

        input_line_ids = self.get_inputs(contracts, date_from, date_to)

        res['value'].update({

            'worked_days_line_ids': worked_days_line_ids,

            'input_line_ids': input_line_ids,

        })

        return res

>> I changed the original payslip name and the time function but still, nothing changes

0
Avatar
Hylkää
Chassis Nigeria, Wale
Tekijä

Hello Sudir, thanks for the response. Any edit on the code doesn't seem to change anything on the payslip so I am beginning to think the file I am editing is the wrong file.

This is the location of the file I am editing - /odoo/custom/addons/hr_payroll_community/models/hr_payslip.py

Avatar
Sudhir Arya (ERP Harbor Consulting Services)
Paras vastaus

 Try the following code:

#OCA (if you are using OCA payroll module)

@api.onchange("employee_id", "date_from", "date_to")
def onchange_employee(self):
super(YourClassName, self)._onchange_employee()
if (not self.employee_id) or (not self.date_from) or (not self.date_to):
return
self.name = _('Pay Slip of %s for %s') % (employee.name, tools.ustr(babel.dates.format_date(date=ttyme, format='MMMM-y', locale=locale)))

#Enterprise (if you are using enterprise module)

@api.onchange('employee_id', 'struct_id', 'contract_id', 'date_from', 'date_to')
def _onchange_employee(self):
super(YourClassName, self)._onchange_employee()
if (not self.employee_id) or (not self.date_from) or (not self.date_to):
return
self.name = _('Pay Slip of %s for %s') % (employee.name, tools.ustr(babel.dates.format_date(date=ttyme, format='MMMM-y', locale=locale)))


4
Avatar
Hylkää
Nautitko keskustelusta? Älä vain lue, vaan osallistu!

Luo tili jo tänään nauttiaksesi yksinoikeusominaisuuksista ja osallistuaksesi mahtavaan yhteisöömme!

Rekisteröidy
Aiheeseen liittyviä artikkeleita Vastaukset Näkymät Toimenpide
Calculate total Business days within a given date range on payslip - CE V13
payslip salary_rules WORK100 payrollodoo13
Avatar
Avatar
2
heinäk. 20
7099
V10 Passing One2Many values into Transient Model One2Many (TypeError from onchange & DataError from default)
one2many payslip onchange passing transientmodel
Avatar
0
huhtik. 20
6461
How to Reduce Cron Job Execution Time in Odoo 17?
server
Avatar
0
toukok. 26
1
HostNoc as My Go-To Server Provider – Sharing My Experience
server
Avatar
0
kesäk. 25
2
How can I get the number of days of the period in Payslip
payslip
Avatar
0
jouluk. 23
2558
Yhteisö
  • Kurssit
  • Dokumentaatio
  • Foorumi
Avoin lähdekoodi
  • Lataa
  • Github
  • Runbot
  • Käännökset
Palvelut
  • Odoo.sh hosting
  • Tuki
  • Versionkorotus
  • Räätälöidyt kehitykset
  • Koulutus
  • Löydä kirjanpitäjä
  • Löydä kumppani
  • Ryhdy kumppaniksi
Meistä
  • Yrityksemme
  • Brändimateriaalit
  • Ota yhteyttä
  • Työpaikat
  • Tapahtumat
  • Podcast
  • Blogi
  • Asiakkaat
  • Oikeudelliset tiedot • Yksityisyys
  • Tietoturva
الْعَرَبيّة 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 on kokoelma avoimen lähdekoodin yrityssovelluksia, jotka kattavat kaikki yrityksesi tarpeet: asiakkuudenhallinta eli CRM, verkkokauppa, kirjanpito, varastointi, kassajärjestelmä, projektinhallinta, jne.

Odoon ainutlaatuinen arvolupaus on olla samanaikaisesti erittäin helppokäyttöinen ja täysin integroitu.

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