0.00
23 читателя, 55 топиков

Существенные изменения в модуле Accounting (v9)

Колеги,

до сих пор я не спешил переключаться на девятую версию Odoo, настораживало изменение политики лицензирования. Но в связи с новыми проектами, последний месяц кручу девятку Community. Подключил в CentOS репозиторий «ночных сборок» и инсталлировал продукт. Это в добавок к развернутой восьмерке из репозитория на GitHub. Естественно, запускаются версии с разными системными и postgres пользователями и работают параллельно на разных портах.

Поставил задачу переноса данных из рабочей учетной системы на v8 штатным экспортом / импортов CSV в v9.
Пока только справочники производственной компании (включая иерархию спецификаций и маршруты), но без операционных данных.
Если кто уже такую работу проделал будет интересно, на какие подводные камни натолкнулись?

Что стало откровением, так это настройка Плана счетов.

1. Из Odoo выбросили счета типа View, т.е. промежуточные уровни консолидации, соответствующие «синтетическим счетам» в российской бухгалтерии.

Технически это означает, что из модели account.account убрали поле «parent_id», а из account.account.type исчезло значение типа «view».

2. Теперь счета в Odoo представляются гладким списком, концепт «иерархии плана счетов» — просто исключен из употребления…

3. В качестве компенсации предложено использовать механизм группировки счетов по тэгам.

Ссылка: Odoo Accounting Roadmap

С точки зрения приспосабливания к Odoo российского плана счетов, проблема, вроде бы, переходит в разряд неразрешимых.

Но у меня как раз этой проблемы нет, поскольку я показываю заказчикам, что российская бухгалтерия на законодательном уровне отказывается от организации учета под нужды управления предприятием и бизнесом в целом. А раз так, то предпринимателю и его топам волей-неволей приходится строить управленческий учет на иных принципах нежели российские ПБУ.

Осознав это, можно снова возвращаться к оценке инноваций в модуле Odoo Accounting.
Для бухгалтера концепт иерархии плана счетов не подлежит сомнению, в первую очередь это традиция и привычка. Для программиста же группировка «по предку» или «по тэгу» — лишь привходящее условие, ограничение.

Предлагаю обменяться мнениями, независимо, вы уже работаете над проектом с учетом финансов в Odoo v9 или только просматриваете возможности.

Виктор Кобыща

Как заниматься любимым делом иметь прибыль и удовольствие!

Думаю, что большинству людей приходила мысль: “Как заниматься любимым делом и хорошо на этом зарабатывать?”
Я так же, не исключение в этом.

Каждый готов это сделать! Вопрос только: КАК?

Читать дальше →

Динамический домен для поля Many2one

Коллеги, подскажите, как навесить вычисляемый домен в таком случае:

В Odoo 8 есть сущность «Договор», в которой
1. Указан «Поставщик» — ссылка на сущность «Партнер»
2. Есть поле «Ответственный со стороны поставщика» — ссылка на сущность «Контакт»

«Партнер» и «Контакт» связаны Many2Many

Нужно, чтобы в поле «Ответственный со стороны поставщика», в лукапе показывались только те контакты, которые связаны с указанным поставщиком.

Пробовал писать в модели сущности «Договор»:

	@api.onchange('vendor_id')
	def onchange_vendor(self):
		res = {}
		if self.vendor_id:
			vendor_contact_ids = self.vendor_id.contact_ids.mapped('id')
			res['domain'] = {'vendcontact_id': [('id', 'in', vendor_contact_ids)]}
		else:
			res['domain'] = {'vendcontact_id': [('id', 'in', [])]

		return res

Этот метод срабатывает только при создании нового договора или при изменении поля «Поставщик». Как быть в случае, когда форма уже существующего договора открывается на редактирование, но пользователь не трогает поле «Поставщик»?

Документация Odoo (OpenERP)

Документация по Odoo (OpenERP) всегда была недостаточно хороша. В основном это происходит по причине слишком быстрого развития проекта. TinyERP быстро эволюционировала в OpenERP и сейчас в Odoo. В данный момент команда Odoo решает, как правильно распределить ресурсы разработчиков: улучшить взаимодействие пользователей с Odoo, сделав его максимально интуитивным или работать над документацией, которая в этом случае должна быть практически полностью переписана с нуля каждый год, когда выходит новая версия.

Odoo планирует создание четырех документов для 8й версии. Первые два более приоритетны, и над оставшимися двумя разработчики будут работать по мере нахождения на это свободного времени.

  • Руководство разработчика
  • Руководство дизайнера
  • Справочник разработчика
  • Руководство по использованию нового API

Так сообщество Odoo и различные разработчики пришли/должны придти на помощь для достижения успеха.

Так какие ресурсы уже доступны в сети?

Читать дальше →

Русский перевод Odoo 8.0

Дорогое сообщество Odoo хочу вам предложить некоторые уже готовые наработки по переводу. Я сам в своей работе использую Odoo и за собственный счет сделал перевод почти всех модулей Odoo 8.0. Еще осталась бухгалтерия и склад. Доступ где ведется перевод здесь translate.starlight-biz.com Ресурс закрыл но перевод остался смотрите ниже.

Сейчас можно скачать текущий пакет перевода отсюда.

Но есть одна проблема. В одном из модулей (диапазон модулей где возможно произошла ошибка есть) где то не правильный формат перевода. И по этому у меня выпадает ошибка при нажатии в русской версии на пункте меню Настройки- Общие настройки такая ошибка
Uncaught Error: Invalid XML: <form string="Общие настройки" class="oe_form_configuration"><header><button string="Применить" type="object" name="execute" class="oe_highlight"/>.......


Не все сюда вывел но смысл понятен, где то нарушена разметка страницы.

Я готов закончить перевод полностью и откорректировать термины, но вот эти оплошности перевода нужно постараться найти и исправить. Прошу вас присоеденится к этому. Все кто заинтересован, можете скачать перевод, использовать его и дать обратную связь, где и что исправить и может найдете ошибку. Буду очень признателен, и спасибо тем кто присоеденится!

После обновления языков этих модулей у меня вылезла ошибка, что описал выше.
hr_gamification
marketing_campaign
marketing_crm
mass_mailing
product
product_email_template
product_expiry
product_extended
product_margin
report
report_webkit
edi
event_sale
fetchmail
fleet
gamification
gamification_sale_crm
google_calendar
google_drive
l10n_multilang
note

Наследование sale.order в Odoo 8

Имеется Odoo (OpenERP) 8.
Нужно добавить поле в sale.order

Вот так:
from openerp import models, fields

class SomeClass(models.Model):
    _inherit = 'sale.order'

    description = fields.Char(default="Some text")


На что odoo ругается следующим образом:


<ERROR sandbox werkzeug: Error on request:

Закладка с PriceList в Продуктах

Price List — формирования цены / odoo 8.0

В модуле Pricelist можно формировать цены. Нас интересует зависиместь цены от количества.

Для примера добим три продукта.
(Warehouse -> Product)

Maketesana A4 — Ед.изм. = unit — Цена ставиться в Product-Product за единицу.
Izciršana 2 — Ед.изм. = blank — Цена ставиться в PriceListe зависит от заготовок.
Salimešana — Ед.изм. = circulation Цена ставиться в PriceListe зависит от тиража.

Количество от большего к меньшему, регулируется последовательностью(sequances), тогда система проверяет количества в PriceListe при продажи и ставит соответствующую цену.

Salimešana — Ед.изм. = circulation — Цена ставиться в PriceListe зависит от тиража.
1500 — 0.0441
1250 — 0.0464
1500 — 0.0488

897 3-cir-1500 [3] Salimešana 1 shov 1500 Public Price
898 3-cir-1250 [3] Salimešana 1 shov 1250 Public Price
899 3-cir-1000 [3] Salimešana 1 shov 1000 Public Price

Но если все это добавлять в PriceList Versions – получается не удобно.

Module Pricelist_tab – закладка Prices продуктах

В закладке мы можем видеть в каких Праислистах участвует продукт.
Праислист может быть назначен продукту и категории.

Прямо из Продуктов можно добавлять цены.

Wizard Add Price for circulation and blanks

[[Circulation-Blank]] — Тираж и Заготовки

Circulation

seq rule name price_version min_quan

80 от 1500 — до 1750 cir. Manufacture ver.1.0 1500
90 от 1250 — до 1500 cir. Manufacture ver.1.0 1250
100 от 1000 — до 1250 cir. Manufacture ver.1.0 1000

Кнопка / wizard. Которая позволит добавлять количества из шаблона. для тиража либо для заготовок.

На закладке (Prices) кнопка «Add Price». По нажатию кнопки открывается wizard окно. Выбираем версию Pricelist и тип(тираж или заготовки)
Жмём ок и добавляются записи от… до….
Остаётся только добавить цены к этим позициям.

Сами данные для шаблона лежат в Sale->Pricelists Tab->Res.ext Config

Модуль - Mail_organizer

Модуль — Mail_organizer

/openerp/addons/mail/mail_message.py

def check_access_rule

Эта штука не позволяет привязывать письмо с вложением, если ты не Супер Пользователь.

Комментируем код.


        # Calculate remaining ids: if not void, raise an error
        #other_ids = other_ids.difference(set(document_related_ids))
        #if not other_ids:
        #    return
        #raise orm.except_orm(_('Access Denied'),
        #                    _('The requested operation cannot be completed due to security restrictions. Please contact your system administrator.\n\n(Document type: %s, Operation: %s)') % \
        #                    (self._description, operation))


Еще если, очень хочется стирать сообщения, можно добавить в
openerp/addon-other/mail_organizer/static/src/xml/mail.xml


<template>
…
...
    <t t-extend="mail.thread.message">
        <t t-jquery=".oe_msg_icons span:first-child()" t-operation="after">
            <span class="oe_msg_delete"><a title="Delete" class="oe_e">X</a></span>
        </t>
    </t>
</template>