Passa al contenuto
Odoo Menu
  • Accedi
  • Provalo gratis
  • App
    Finanze
    • Contabilità
    • Fatturazione
    • Note spese
    • Fogli di calcolo (BI)
    • Documenti
    • Firma
    Vendite
    • CRM
    • Vendite
    • Punto vendita Negozio
    • Punto vendita Ristorante
    • Abbonamenti
    • Noleggi
    Siti web
    • Configuratore sito web
    • E-commerce
    • Blog
    • Forum
    • Live chat
    • E-learning
    Supply chain
    • Magazzino
    • Produzione
    • PLM
    • Acquisti
    • Manutenzione
    • Qualità
    Risorse umane
    • Dipendenti
    • Assunzioni
    • Ferie
    • Valutazioni
    • Referral dipendenti
    • Parco veicoli
    Marketing
    • Social marketing
    • E-mail marketing
    • SMS marketing
    • Eventi
    • Marketing automation
    • Sondaggi
    Servizi
    • Progetti
    • Fogli ore
    • Assistenza sul campo
    • Helpdesk
    • Pianificazione
    • Appuntamenti
    Produttività
    • Comunicazioni
    • Approvazioni
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    App di terze parti Odoo Studio Piattaforma cloud Odoo
  • Settori
    Retail
    • Libreria
    • Negozio di abbigliamento
    • Negozio di arredamento
    • Alimentari
    • Ferramenta
    • Negozio di giocattoli
    Cibo e ospitalità
    • Bar e pub
    • Ristorante
    • Fast food
    • Pensione
    • Grossista di bevande
    • Hotel
    Agenzia immobiliare
    • Agenzia immobiliare
    • Studio di architettura
    • Edilizia
    • Gestione immobiliare
    • Impresa di giardinaggio
    • Associazione di proprietari immobiliari
    Consulenza
    • Società di contabilità
    • Partner Odoo
    • Agenzia di marketing
    • Studio legale
    • Selezione del personale
    • Audit e certificazione
    Produzione
    • Tessile
    • Metallo
    • Arredamenti
    • Alimentare
    • Birrificio
    • Ditta di regalistica aziendale
    Benessere e sport
    • Club sportivo
    • Negozio di ottica
    • Centro fitness
    • Centro benessere
    • Farmacia
    • Parrucchiere
    Commercio
    • Tuttofare
    • Hardware e assistenza IT
    • Ditta di installazione di pannelli solari
    • Calzolaio
    • Servizi di pulizia
    • Servizi di climatizzazione
    Altro
    • Organizzazione non profit
    • Ente per la tutela ambientale
    • Agenzia di cartellonistica pubblicitaria
    • Studio fotografico
    • Punto noleggio di biciclette
    • Rivenditore di software
    Carica tutti i settori
  • Community
    Apprendimento
    • Tutorial
    • Documentazione
    • Certificazioni 
    • Formazione
    • Blog
    • Podcast
    Potenzia la tua formazione
    • Programma educativo
    • Scale Up! Business Game
    • Visita Odoo
    Ottieni il software
    • Scarica
    • Versioni a confronto
    • Note di versione
    Collabora
    • Github
    • Forum
    • Eventi
    • Traduzioni
    • Diventa nostro partner
    • Servizi per partner
    • Registra la tua società di contabilità
    Ottieni servizi
    • Trova un partner
    • Trova un contabile
    • Incontra un esperto
    • Servizi di implementazione
    • Testimonianze dei clienti
    • Supporto
    • Aggiornamenti
    GitHub Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Richiedi una demo
  • Prezzi
  • Aiuto

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Contabilità
  • Magazzino
  • PoS
  • Progetti
  • MRP
All apps
È necessario essere registrati per interagire con la community.
Tutti gli articoli Persone Badge
Etichette (Mostra tutto)
odoo accounting v14 pos v15
Sul forum
È necessario essere registrati per interagire con la community.
Tutti gli articoli Persone Badge
Etichette (Mostra tutto)
odoo accounting v14 pos v15
Sul forum
Assistenza

Odoo 11: Wrong values when using widget float_time in qweb report

Iscriviti

Ricevi una notifica quando c'è un'attività per questo post

La domanda è stata contrassegnata
float_timeWidgetsqweb-reportodoo11community
2 Risposte
6323 Visualizzazioni
Avatar
TK

I am customizing the attendance model and made a wizard that displays a table with an overview of worktime, begin, end and overtime. 

Fields worktime, begin, end and overtime are all fields.Float()

I am using widget='float_time' to display them in the form view of the model. 






I wanted to create a report of that overview that is displayed as qweb-html and can be printed if necessary. 

I created an xml template and used 

It seemed to work because the end field was printed like 18:21.

I compared the form view and the qweb view and discovered that the values are different. 

Some values are just one minute below or above the form view value (ok the rounding seems to work differently) but others are completely nonsense. 

Especially the field overtime differs a lot. 

Form view: -06:40  qweb: -07:19

the correct value that I calculated by hand is -06:40 meaning a float value of -6.66666


Question 1) Where is the calculation difference ? What function is used by the form view and what function is used by the qweb view ?

I only found /web/static/src/js/fields/field_utils.js where there is a formatFloatTime() and a parseFloatTime() function. 


Question 2) Why are the qweb values sometimes completely wrong? 


Yes, I made sure that the field values are completely identical. I even displayed the float values in the qweb report and could validate that they are correct. It is "only" a formatting issue.

0
Avatar
Abbandona
TK
Autore

test

TK
Autore

I finally found the answer and if somebody comes across this ...here you are ...

There are indeed two places where conversion is made:

#####################################################

Form view: Javascript method in /web/static/src/js/fields/field_utils.js

#####################################################

function formatFloatTime(value) {

var pattern = '%02d:%02d';

if (value < 0) {

value = Math.abs(value);

pattern = '-' + pattern;

}

var hour = Math.floor(value);

var min = Math.round((value % 1) * 60);

if (min === 60){

min = 0;

hour = hour + 1;

}

return _.str.sprintf(pattern, hour, min);

###########################

QWeb view:

In module base/ir/ir_qweb/fields.py

###########################

class FloatTimeConverter(models.AbstractModel):

""" ``float_time`` converter, to display integral or fractional values as

human-readable time spans (e.g. 1.5 as "01:30").

Can be used on any numerical field.

"""

_name = 'ir.qweb.field.float_time'

_inherit = 'ir.qweb.field'

@api.model

def value_to_html(self, value, options):

hours, minutes = divmod(value * 60, 60)

return '%02d:%02d' % (hours, minutes)

It seems that Math.round and Math.floor behaves differently compared to python divmod function. At least I had huge differences.

Avatar
TK
Autore Risposta migliore

Thanks for your answer Karthikeyan if I understand it right, you say there is no difference using the widget in form view and in qweb, but I had different results. There must be a difference. 

Unforunately, I am not used to debugging of javascript otherwise I could follow the code step by step as I do in python code. 


Reply to comment:

If there is a difference while printing in excel where does this come from? Please explain if you know.

0
Avatar
Abbandona
Begineer

Yeah, the difference will arise only if you print that in excel report

Avatar
Begineer
Risposta migliore

Hi,

    I guess you figured its a formatting issue,

In form view you have used the widget float_time,  to convert the float value into time format (HH:MM)

Same goes while generating a qweb ,  

span t-field="o.your_float_field" t-options= '{"widget": "float_time"}'


I couldn't open and close span tag , make sure you do.

Hope it helps,

Thanks


0
Avatar
Abbandona
Ti stai godendo la conversazione? Non leggere soltanto, partecipa anche tu!

Crea un account oggi per scoprire funzionalità esclusive ed entrare a far parte della nostra fantastica community!

Registrati
Post correlati Risposte Visualizzazioni Attività
Print values of field variables declared inside html content Odoo11? Risolto
html qweb-report odoo11community
Avatar
Avatar
Avatar
Avatar
7
nov 18
13380
Odoo stays in the loading screen after report is generated
report bug qweb-report odoo11 odoo11community
Avatar
Avatar
3
gen 23
7184
Qweb Report : which font display proper output when print PDF in DOT-MATRIX printer ? [ODOO V11 CE]
printer linux_system qweb-report odoo11community dot-matrix
Avatar
Avatar
1
set 20
7088
while print pdf report it takes too much loading time.
loading wkhtmltopdf qweb-report odoo11community printpdf
Avatar
Avatar
1
dic 19
6762
Conversion from float_time to float
float_time
Avatar
Avatar
Avatar
2
nov 24
9005
Community
  • Tutorial
  • Documentazione
  • Forum
Open source
  • Scarica
  • Github
  • Runbot
  • Traduzioni
Servizi
  • Hosting Odoo.sh
  • Supporto
  • Aggiornamenti
  • Sviluppi personalizzati
  • Formazione
  • Trova un contabile
  • Trova un partner
  • Diventa nostro partner
Chi siamo
  • La nostra azienda
  • Branding
  • Contattaci
  • Lavora con noi
  • Eventi
  • Podcast
  • Blog
  • Clienti
  • Note legali • Privacy
  • Sicurezza
الْعَرَبيّة 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 ภาษาไทย Türkçe українська Tiếng Việt

Odoo è un gestionale di applicazioni aziendali open source pensato per coprire tutte le esigenze della tua azienda: CRM, Vendite, E-commerce, Magazzino, Produzione, Fatturazione elettronica, Project Management e molto altro.

Il punto di forza di Odoo è quello di offrire un ecosistema unico di app facili da usare, intuitive e completamente integrate tra loro.

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