Ir al contenido
Odoo Menú
  • Iniciar sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • PdV para tiendas
    • PdV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en vivo
    • eLearning
    Cadena de suministro
    • Inventario
    • Manufactura
    • PLM
    • Compras
    • Mantenimiento
    • Calidad
    Recursos humanos
    • Empleados
    • Reclutamiento
    • Vacaciones
    • Evaluaciones
    • Referencias
    • Flotilla
    Marketing
    • Redes sociales
    • Marketing por correo
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyectos
    • Registro de horas
    • Servicio externo
    • Soporte al cliente
    • Planeación
    • Citas
    Productividad
    • Conversaciones
    • Aprobaciones
    • IoT
    • VoIP
    • Artículos
    • WhatsApp
    Aplicaciones externas Studio de Odoo Plataforma de Odoo en la nube
  • Industrias
    Venta minorista
    • Librería
    • Tienda de ropa
    • Mueblería
    • Tienda de abarrotes
    • Ferretería
    • Juguetería
    Alimentos y hospitalidad
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidora de bebidas
    • Hotel
    Bienes inmuebles
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión de bienes inmuebles
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Firma contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Manufactura
    • Textil
    • Metal
    • Muebles
    • Comida
    • Cervecería
    • Regalos corporativos
    Salud y ejercicio
    • Club deportivo
    • Óptica
    • Gimnasio
    • Especialistas en bienestar
    • Farmacia
    • Peluquería
    Trades
    • Personal de mantenimiento
    • Hardware y soporte de TI
    • Sistemas de energía solar
    • Zapateros y fabricantes de calzado
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin fines de lucro
    • Agencia para la protección del medio ambiente
    • Alquiler de anuncios publicitarios
    • Fotografía
    • Alquiler de bicicletas
    • Distribuidor de software
    Descubre todas las industrias
  • Odoo Community
    Aprende
    • Tutoriales
    • Documentación
    • Certificaciones
    • Capacitación
    • Blog
    • Podcast
    Fortalece la educación
    • Programa educativo
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtén el software
    • Descargar
    • Compara ediciones
    • Versiones
    Colabora
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Conviértete en partner
    • Servicios para partners
    • Registra tu firma contable
    Obtén servicios
    • Encuentra un partner
    • Encuentra un contador
    • Contacta a un consultor
    • Servicios de implementación
    • Referencias de clientes
    • Soporte
    • Actualizaciones
    GitHub YouTube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicita una demostración
  • Precios
  • Ayuda

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

  • CRM
  • e-Commerce
  • Contabilidad
  • Inventario
  • PoS
  • Proyectos
  • MRP
All apps
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

How to sum of them separate from currencies?

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
orders
3 Respuestas
8560 Vistas
Avatar
Rick

Hi,guys

we have a difficult question

On same sale order need to show multi currencies,but how to sum of separate from them?

E.g:

Total:

USD 500.00

EUR 200.00

CNY 100

Any good idea?

0
Avatar
Descartar
fasluca

Currency comes from price list. you can only select one currency for a price list..then how you are going to set this three currencies in same SO?

in which currency you want the sum??

Rick
Autor

Tks for your reply.There is only one currency on the same sales order that does not meet my requirements.I need multi currencies on same sales order.

fasluca

So you may have customized SO line to set different currency in each line..

You have to enable multi currency and one of them should be Base..

you haven't said which one is your base currency? ie in which currency you wan the sum)

Rick
Autor

My base currency is CNY, Now I can sum the base currency. In addition I need to sum these foreign currency lines

fasluca

if you have currency field in SO line...then you can calculate total easily

for line in self.order_line:

if line.currency_id.name == USD:

usd_total += line.subtotal

if line.currency_id.name == EUR:

eur_total += line.subtotal

if line.currency_id.name == CYN:

cyn_total += line.subtotal

like this

Rick
Autor

super!I'll try it! Thanks

fasluca

Make it as answer if you succeed

Rick
Autor

okay.

Avatar
Artem
Mejor respuesta

It is really hard to show or I know nothing about Odoo.

Add to your model something like this

@api.one
def _compute_amount_each_currency(self):
sums=dict([(l.currency_id.name,0) for l in self.expense_ticket_line_ids])
for line in self.expense_ticket_line_ids:
sums[line.currency_id.name]+=line.amount_currency
 self.amount_each_currency=json.dumps(sums)
amount_each_currency = fields.Text(compute='_compute_amount_each_currency')

So we have got the field with the sums for each currency. This is the easiest part.

And now show time!

I'm still upset that <templetes> is available only in a kanban view. Am I right?

So in a form view I see only two ways. The first is to add another text field with appropriate text like 'Totals EUR: xxx, CYN: xxx, USD: xxx' in one line and add this field to the view. Baldly but I can't find another way.

A report is more flexible and here we can make it nice looking.  Create a model with the render_html function

class ReportSometing(models.AbstractModel):
    @api.one
    def render_html(self, data=None):
    [...]
    if objects[0]:
     sums=json.loads(objects[0].amount_each_currency)
      sums=[[key,value] for key,value in sums.items()]
    else:
     sums=[]
    docargs = {
        'sums': sums,
    }
    [...]

and convert the field with each currency totals into the list of lists of a currency name and its amount.

Insert into the report something like the following and get the profit.

<t t-foreach="sums" t-as="i">
     <p><t t-esc="i[0]"/><t t-esc="i[1]"/></p>
</t>

Season with any decoration.


Well.. the second way is to create a separate table with sums for each currency like the class AccountInvoiceLine(models.Model). The code is in brief. I did not test the whole idea.

class ExpenseTicket(models.Model):
    expense_ticket_currency_ids = fields.One2many('expense.ticket.currency', 'expenseticket_id')

class ExpenseTicketCurrency(models.Model):
_name = "expense.ticket.currency"
expenseticket_id = fields.Many2one('expense.ticket', string='', ondelete='cascade', index=True)
    currency_id = fields.Many2one('res.currency',string='Currency')
    amount_currency=fields.Monetary(string='Amount', currency_field='currency_id')

In a view we can use 'tree'

<field name="expense_ticket_currency_ids">
 <tree string="">
 <field name="currency_id"/>
 <field name="amount_currency"/>
 </tree>
</field>

The last part is to write functions to store data into ExpenseTicketCurrency.

0
Avatar
Descartar
Avatar
Rick
Autor Mejor respuesta

Question again

 

There are some products(services type) on the sales order line of the same sales order, which are in different currencies.

How to sum them group by different currencies and show on sale order form?

E.g:

Ocean Freight USD 10.00

Truck charge USD 5.00

Documents Fee EUR 50.00

Discharge Fee CNY 100


                                      Total : USD xx.xx

                                                  EUR xx.xx

                                                  CNY xx.xx

                                                                                    

Any good idea?

0
Avatar
Descartar
Artem

The answer is below. I do not know your format of invoice lines but referring to invoice lines of the standard accounting module the code should be changed and added to '_compute_amount(self)' of the AccountInvoice.

amount_untaxed_sums=dict([(l.currency_id.name,0) for l in self.invoice_line_ids])

for line in self.invoice_line_ids:

amount_untaxed_sums[line.currency_id.name]+=line.price_subtotal

I did not test the code in Odoo but it should work.

Rick
Autor

Tks for your reply.I'll try it .

Artem

The code sums up perfectly, but I have problems with the show part.

Artem

Please check my answer I believe it contains many good ideas.

¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Registrarse
Publicaciones relacionadas Respuestas Vistas Actividad
[newbie] order management only
orders
Avatar
2
oct 25
3346
Odoo 17 Online, how to create purchase orders for non stock goods
orders
Avatar
Avatar
1
mar 24
3524
Create a new order line on a sale order with Automated Action Resuelto
orders
Avatar
Avatar
1
mar 23
7083
How Can Admin Receive Notification for Order placed in Shop - Odoo 10
orders
Avatar
Avatar
Avatar
2
mar 21
10720
Creating recurring invoice Resuelto
orders subscription
Avatar
Avatar
Avatar
2
oct 25
17368
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento en Odoo.sh
  • Soporte
  • Actualizaciones del software
  • Desarrollos personalizados
  • Educación
  • Encuentra un contador
  • Encuentra un partner
  • Conviértete en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contáctanos
  • Empleos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidad
  • Seguridad
الْعَرَبيّة 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 es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Sitio web hecho con

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