This is the documentation for older versions of Odoo (formerly OpenERP).

See the new Odoo user documentation.

See the new Odoo technical documentation.

Управление договорами на Услуги

Contracts can take different forms within OpenERP, depending on their nature. So you can have several distinct types of service contracts, such as:

  • договоры с фиксированной ценой,

  • договоры с возмещением расходов, с выставлением счета, когда услуга оказана,

  • договоры с фиксированной ценой, с ежемесячным выставлением счетов по мере оказания услуг.


Contract Quotations

Some companies commit to contracts on the basis of a requested volume at a certain price for a defined period. In such a case, the contract is represented by a pricelist for that specific customer.

The pricelist is linked in the Sales and Purchases tab of the Customers form, so that it is brought up whenever anything is bought from or sold to this partner (depending on whether it is a purchase or sales agreement). OpenERP automatically selects the price based on this agreed pricelist.

Fixed Price Contracts

Fixed price contracts for the sale of services are represented in OpenERP by a Sales Order. In this case, the supply of services is managed just like all other stockable or consumable products.

You can add new orders using the menu Sales ‣ Sales ‣ Quotations.

The new Sales Order document starts in the Draft Quotation state, so the estimate has no accounting impact on the system until it is confirmed. When you confirm the order, your estimate moves into the state Sale Order .


Процесс обработки Заказа на Продажу

Once the order has been approved, OpenERP will automatically generate an invoice and/or a delivery document proposal based on the parameters you set in the order.

The invoice will be managed by the system depending on the setting of the field Shipping Policy on the order's second tab Other Information:

  • Payment Before Delivery : OpenERP creates an invoice in the Draft state. Once this is confirmed and paid, the delivery is activated.

  • Выставление счета после доставки (Invoice on Order After Delivery) : после проверки и подтверждения Заказа выпускается Заказ на доставку (Delivery Order). Черновик счета в этом случае создается после завершения доставки.

  • Shipping & Manual Invoice : OpenERP starts the delivery from the confirmation of the order, and adds a button which you manually click when you are ready to create an invoice.

  • Invoice From The Delivery : invoices are created from the picking stage.


Delivery of an Order

The term 'delivery' should be taken in the broadest sense in OpenERP. The effect of a delivery depends on the configuration of the sold product.

If its type is either Stockable Product or Consumable, OpenERP will make a request for it to be sent for picking. If the product's type is Service, OpenERP's scheduler will create a task in the project management system, or create a subcontract purchase order if the product's Procurement Method is Make to Order.

Invoicing after delivery does as it says: invoicing for the services when the tasks have been closed.

When you sign a new contract, you can just enter the order into the system and OpenERP will track the order.

This works well for small orders. But for large valued service orders, you might want to invoice several times through the contract, for example:

  • 30% при заказе,

  • 40% по выполнении,

  • 30% через месяц после запуска системы в эксплуатацию.

In this case you should create several invoices for the one Sales Order. You have to do for this:

  • Do not handle invoicing automatically from the Sales Order but carry out manual invoicing instead,

Cost-reimbursement Contracts

Some contracts are not invoiced from a price fixed on the order but from the cost of the services carried out. That is usually what happens in the building sector or in large projects.

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

Для каждого договора создается аналитический счет. Для этого аналитического счета должны быть заполнены следующие поля:

  • Контрагент (Partner) : связанный с договором контрагент,

  • Прейскурант продаж (Sale Pricelist),

  • Выставление счетов (Invoicing).

Выбор ставки для счетов является косвенным методом указания того, что счета по проекту будут выставляться на основе стоимости, отраженной на счетах аналитики. Это может принимать различные формы, такие, как доставка услуг, закупка сырья и возмещение затрат.


Pricelists and Billing Rates

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

An example of this is a client project that is to be invoiced only indirectly from the analytic costs. Putting the pricelist on the analytic account makes it possible to compare the actual sales with a best case situation where all the services would be invoiced. To get this comparison you have to print the analytic balance from the analytic account.


Project Management and Analytic Accounts

Analytic Accounts is only available once you have installed the module account_analytic_analysis. It provides various global financial and operational views of a project manager's projects.

Fixed-price Contracts Invoiced as Services are Worked

For large-valued projects, fixed-price invoicing based on the sales order is not always appropriate. In the case of a services project planned to run for about six months, invoicing could be based on the following:

  • 30% при заказе,

  • 30% в середине проекта,

  • 40% при завершении проекта.

Такой или подобный подход часто используется компаниями. Однако данный метод выставления счетов может создать много проблем для организации и выставления счетов по проекту:

  • It is extremely difficult to determine if the project is on track or not. The endpoint is fuzzy, which can result in a tricky discussion with the client at the moment of final invoicing.

  • Если проект занимает больше или меньше времени, чем было спрогнозировано, это соответственно вызовет занижения или завышения сумм выставляемых в процессе выполнения проекта счетов.

  • Whether you get a proper return can depend on the client. For example, if the client takes a long time to sign off on project acceptance, you cannot invoice the remaining 40% even though you might have supplied the agreed service properly.

  • The account manager and the project manager are often different people. The project manager has to alert the account manager about the moment that the client can be invoiced, but that moment can easily be forgotten or mistaken.

  • The project can be fixed for service costs but have agreed extras, such as reimbursement for travel expenses. Invoicing from the order does not adapt well to such an approach.

OpenERP provides a third method for invoicing services that can be useful on long projects. This consists of invoicing the project periodically on the basis of time worked up to a fixed amount that cannot be exceeded. At the end of the project, a final invoice or a credit note is generated to meet the total amount of value fixed for the project.

Для настройки такого проекта необходимо установить почасовые ставки для выставления счетов, прейскурант и максимальную сумму на аналитическом счете для проекта. Затем за услуги выставляется счет, на протяжении всего проекта различными руководителями проекта и менеджерами, как и в проектах, которые оплачиваются по затраченному времени. Менеджеры могут применить скидку в окончательном счете, если проект занял больше времени, чем допускалось в соответствии с контрактом.

When the project is finished you can generate the closing invoice. This automatically calculates the final balance of the bill, taking the amounts already charged into account. If the amount already invoiced is greater than the maximum agreed amount, then OpenERP generates a draft credit note.

Этот подход дает много преимуществ по сравнению с традиционными методами выставления счетов по этапам для договоров с фиксированной ценой:

  • Договоры с фиксированной ценой и возмещением расходов оплачиваются сходными способами, что делает процесс подготовки счетов в компании довольно простым и систематическим, даже тогда, когда проекты носят смешанный характер.

  • Все счета выставляются на основе отработанного времени, облегчая прогнозирование выставления счетов при помощи планов, связанных с различными аналитическими счетами.

  • Такой метод работы обучает руководителей проектов так же, как и клиентов, потому что возникает необходимость перерасчета за выполненные работы при пробуксовке проекта.

  • Выставление счетов следует общему курсу проекта и позволяет избежать зависимости поставщика от благоволения клиента при утверждении определенной фазы.

  • Выставление счетов по затратам происходит по тому же самому рабочему циклу, и следовательно, существенно упрощается.


Обсуждение договоров

При обсуждении договоров, клиент часто не обращает внимания на режим выставления счетов. Так что часто можно достаточно просто применить этот метод выставления счета.

Contracts Limited to a Quantity

Finally, certain contracts are expressed in terms of a quantity rather than a fixed amount. Support contracts comprising a number of prepaid hours are a case in point. To generate such contracts in OpenERP you should start by installing the module account_analytic_analysis.

Теперь вы можете установить максимальное количество отрабатываемых часов для каждого счета аналитики. Когда сотрудники вносят количество часов, отработанное ими по проекту, в табели, часы автоматически вычитаются из максимума, установленного для каждого аналитического счета.

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

Договор с клиентом может быть ограничен определенным количеством часов, и также может быть ограничен по длительности. Чтобы задать ограничение по длительности, необходимо указать дату окончания в соответствующем аналитическом счете.