diff --git a/.gitignore b/.gitignore
index 9b6acd2..dcb7ddb 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
*.pyc
idea/
+.DS_store
diff --git a/README.md b/README.md
index 1ce42aa..18ccc54 100755
--- a/README.md
+++ b/README.md
@@ -1,9 +1 @@
-# Account Contracts
-
-## Summary
-Create and storage form for contracts. Generate a print form of document of contract.
-
-## Features
-- Contract management: create, sign, close, renew
-- Create .docx form of contract using any document template
-- Fields in document fill from Odoo models
+# DOCS report
diff --git a/TODOLIST.md b/TODOLIST.md
deleted file mode 100755
index 01f3874..0000000
--- a/TODOLIST.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# TODO LIST
-
-## Features
-
-## Fixes
- - Change all `parents` to `genitive`
- - Merge `document_type` and `template_type` in `res.partner.document.template`
- - Change `annex_number` to `annex_counter`
-
-## Big feature
- - Separate XML actions that generates transient fields for all types of documents
diff --git a/__init__.py b/__init__.py
index 9b42961..0650744 100755
--- a/__init__.py
+++ b/__init__.py
@@ -1,2 +1 @@
from . import models
-from . import wizard
diff --git a/__manifest__.py b/__manifest__.py
index 4995f1a..15bba6b 100755
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -1,28 +1,17 @@
# -*- coding: utf-8 -*-
{
- "name": "Client Contracts",
+ "name": "DOCX report",
"summary": """
- Print forms for contracts with clients""",
- "description": """
- Module for storing and creating print forms for contracts.
- """,
+ Print docx report from docx template""",
+ "description": """""",
"author": "RYDLAB",
"website": "http://rydlab.ru",
- "category": "Invoicing & Payments",
- "version": "14.0.1.0.0",
- "depends": ["base", "contacts", "hr", "l10n_ru", "sale", "sale_margin"],
+ "category": "Technical",
+ "version": "0.0.1",
+ "depends": ["base"],
"external_dependencies": {"python": ["docxtpl", "num2words"]},
"data": [
"data/assets_extension.xml",
- "data/fields_default.xml",
- "data/payment_terms.xml",
- "security/ir.model.access.csv",
- "views/res_partner_contract.xml",
- "views/res_partner_contract_annex.xml",
- "views/res_partner_contract_field.xml",
- "views/res_partner_document_template.xml",
- "views/res_partner.xml",
- "views/sale_order.xml",
- "wizard/res_partner_contract_wizard.xml",
+ "views/ir_actions_report_views.xml",
],
}
diff --git a/data/fields_default.xml b/data/fields_default.xml
deleted file mode 100755
index f88fbfa..0000000
--- a/data/fields_default.xml
+++ /dev/null
@@ -1,1114 +0,0 @@
-
-
-
-
-
-
- Generate Context for Contract
-
-
- code
-
-
-# Aliases
-self = record # res.partner.contract
-
-partner = self.partner_id # res.partner
-seller = self.company_id.partner_id
-
-# Functions
-_ = self._
-get_date = self.get_date
-
-# Parse date
-months = ["",
- "января", "февраля", "марта", "апреля",
- "мая", "июня", "июля", "августа",
- "сентября", "октября", "ноября", "декабря",
-]
-date = get_date()
-dd = date.day
-mm = date.month
-yyyy = date.year
-yy = yyyy % 100
-MM = months[mm]
-
-dd = dd if dd // 10 else '0{}'.format(dd)
-mm = mm if mm // 10 else '0{}'.format(mm)
-
-# ctx keys must be decalared in this xml with id equal to "contract_field_{technical_name}"
-ctx = {
- "contract_number": self.name,
-
- "dd": dd,
- "mm": mm,
- "MM": MM,
- "yy": yy,
- "yyyy": yyyy,
-
- "seller_name": seller.name_write,
- "seller_company_form": _(dict(seller._fields['company_form'].selection).get(seller.company_form)),
- "seller_representer_name": seller.representative_id.name,
- "seller_representer_name_parent": seller.representative_id.name_genitive,
- "seller_representer_name_initials": seller.representative_id.name_initials,
- "seller_representer_function": seller.representative_id.function,
- "seller_representer_function_parent": seller.representative_id.function_genitive,
- "seller_representer_document_parent": seller.representative_document,
- "seller_inn": seller.vat,
- "seller_kpp": seller.iec,
- "seller_ogrn": seller.psrn,
- "seller_business_address": seller.full_address,
- "seller_phone": seller.phone,
- "seller_whatsapp": seller.whatsapp,
- "seller_telegram": seller.telegram,
- "seller_email": seller.email,
-
- "partner_name": partner.name_write,
- "partner_inn": partner.vat,
- "partner_business_address": partner.full_address,
- "partner_phone": partner.phone,
- "partner_whatsapp": partner.whatsapp,
- "partner_telegram": partner.telegram,
- "partner_email": partner.email,
-}
-
-seller_bank = seller.bank_ids and seller.bank_ids[0]
-if seller_bank:
-
- bank = seller_bank.bank_id
- bank_name = bank and bank.name or ""
- bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
- seller_bank_name = "{} {}".format(bank_name, bank_city).strip()
-
- ctx.update({
- "seller_bank": seller_bank_name,
- "seller_rs": seller_bank.acc_number,
- "seller_ks": bank.corr_account,
- "seller_bic": bank.bic,
- })
-
-partner_bank = partner.bank_ids and partner.bank_ids[0]
-if partner_bank:
-
- bank = partner_bank.bank_id
- bank_name = bank and bank.name or ""
- bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
- partner_bank_name = "{} {}".format(bank_name, bank_city).strip()
-
- ctx.update({
- "partner_bank": partner_bank_name,
- "partner_rs": partner_bank.acc_number,
- "partner_ks": bank.corr_account,
- "partner_bic": bank.bic,
- })
-
-# Person
-if not partner.is_company:
- ctx.update({
- "partner_representer_name": partner.name_write,
- "partner_representer_name_initials": partner.name_initials,
- "partner_representer_passport_number": partner.passport_number,
- "partner_representer_passport_date": partner.passport_date,
- "partner_representer_passport_department": partner.passport_department,
- "partner_representer_passport_department_code": partner.passport_department_code,
- })
- if not partner.name_write:
- ctx.update({
- "partner_name": partner.name,
- "partner_representer_name": partner.name,
- })
-else:
- # Company
- ctx.update({
- "partner_company_form": _(dict(partner._fields['company_form'].selection).get(partner.company_form)),
- "partner_representer_name": partner.representative_id.name,
- "partner_representer_name_parent": partner.representative_id.name_genitive,
- "partner_representer_name_initials": partner.representative_id.name_initials,
- "partner_representer_function": partner.representative_id.function,
- "partner_representer_function_parent": partner.representative_id.function_genitive,
- "partner_representer_document_parent": partner.representative_document,
- })
-
- if partner.company_form == 'sp':
- # Sole Proprietor
- ctx.update({
- "partner_ip_number": partner.sp_register_number,
- "partner_ip_date": partner.sp_register_date,
- "partner_ogrnip": partner.psrn_sp,
- "partner_representer_passport_number": partner.representative_id.passport_number,
- "partner_representer_passport_date": partner.representative_id.passport_date,
- "partner_representer_passport_department": partner.representative_id.passport_department,
- "partner_representer_passport_department_code": partner.representative_id.passport_department_code,
- })
- if partner.company_form == 'plc':
- # Private Limited Company
- ctx.update({
- "partner_kpp": partner.iec,
- "partner_ogrn": partner.psrn,
- })
-
-
-action = ctx
-
-
-
-
-
-
- Generate Context for Annex
-
-
- code
-
-
-# Aliases
-self = record # res.partner.contract.annex
-
-seller = self.company_id.partner_id
-partner = self.partner_id
-
-# Functions
-_ = self.contract_id._
-get_date = self.contract_id.get_date
-
-# Parse date
-months = ["",
- "января", "февраля", "марта", "апреля",
- "мая", "июня", "июля", "августа",
- "сентября", "октября", "ноября", "декабря",
-]
-date = get_date()
-dd = date.day
-mm = date.month
-yyyy = date.year
-yy = yyyy % 100
-MM = months[mm]
-
-dd = dd if dd // 10 else '0{}'.format(dd)
-mm = mm if mm // 10 else '0{}'.format(mm)
-
-order_date = self.order_id.date_order
-
-# ctx keys must be decalared in this xml with id equal to "contract_field_{technical_name}"
-ctx = {
- "contract_number": self.contract_id.name,
-
- "annex_name": self.name,
- "annex_number": self.counter,
-
- "order_name": self.order_id.name,
- "order_date": "{} {} {}".format(order_date.day, months[order_date.month], order_date.year),
-
- "design_cost": self.to_fixed(self.design_cost),
- "design_period": self.design_period,
- "design_doc_cost": self.to_fixed(self.design_doc_cost),
- "design_doc_period": self.design_doc_period,
- "delivery_address": self.delivery_address,
- "delivery_period": self.delivery_period,
- "installation_address": self.installation_address,
- "installation_cost": self.to_fixed(self.installation_cost),
- "installation_period": self.installation_period,
- "total_cost": self.to_fixed(self.total_cost),
-
- "payment_part_one": self.payment_part_one,
- "payment_part_two": self.payment_part_two,
- "payment_part_three": self.payment_part_three,
- "delivery_period": self.delivery_period,
-
- "dd": dd,
- "mm": mm,
- "MM": MM,
- "yy": yy,
- "yyyy": yyyy,
-
- "seller_name": seller.name_write,
- "seller_company_form": _(dict(seller._fields['company_form'].selection).get(seller.company_form)),
- "seller_representer_name": seller.representative_id.name,
- "seller_representer_name_parent": seller.representative_id.name_genitive,
- "seller_representer_name_initials": seller.representative_id.name_initials,
- "seller_representer_function": seller.representative_id.function,
- "seller_representer_function_parent": seller.representative_id.function_genitive,
-
- "seller_inn": seller.vat,
- "seller_kpp": seller.iec,
- "seller_ogrn": seller.psrn,
- "seller_business_address": seller.full_address,
- "seller_phone": seller.phone,
- "seller_email": seller.email,
-
- "partner_name": partner.name_write,
- "partner_representer_name": partner.representative_id.name,
- "partner_representer_name_initials": partner.representative_id.name_initials,
- "partner_inn": partner.vat,
- "partner_business_address": partner.full_address,
- "partner_phone": partner.phone,
- "partner_email": partner.email,
-}
-
-seller_bank = seller.bank_ids and seller.bank_ids[0]
-if seller_bank:
-
- bank = seller_bank.bank_id
- bank_name = bank and bank.name or ""
- bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
- seller_bank_name = "{} {}".format(bank_name, bank_city).strip()
-
- ctx.update({
- "seller_bank": seller_bank_name,
- "seller_rs": seller_bank.acc_number,
- "seller_ks": bank.corr_account,
- "seller_bic": bank.bic,
- })
-
-partner_bank = partner.bank_ids and partner.bank_ids[0]
-if partner_bank:
-
- bank = partner_bank.bank_id
- bank_name = bank and bank.name or ""
- bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
- partner_bank_name = "{} {}".format(bank_name, bank_city).strip()
-
- ctx.update({
- "partner_bank": partner_bank_name,
- "partner_rs": partner_bank.acc_number,
- "partner_ks": bank.corr_account,
- "partner_bic": bank.bic,
- })
-
-
-# Person
-if not partner.is_company:
- ctx.update({
- "partner_representer_name": partner.name_write,
- "partner_representer_name_initials": partner.name_initials,
- "partner_representer_passport_number": partner.passport_number,
- "partner_representer_passport_date": partner.passport_date,
- "partner_representer_passport_department": partner.passport_department,
- })
- if not partner.name_write:
- ctx.update({
- "partner_name": partner.name,
- "partner_representer_name": partner.name,
- })
-else:
- # Company
- ctx.update({
- "partner_company_form": _(dict(partner._fields['company_form'].selection).get(partner.company_form)),
- "partner_representer_name_parent": partner.representative_id.name_genitive,
- "partner_representer_document_parent": partner.representative_document,
- "partner_representer_function": partner.representative_id.function,
- "partner_representer_function_parent": partner.representative_id.function_genitive,
- })
-
- if partner.company_form == 'sp':
- # Sole Proprietor
- ctx.update({
- "partner_ip_number": partner.sp_register_number,
- "partner_ip_date": partner.sp_register_date,
- "partner_ogrnip": partner.psrn_sp,
- "partner_representer_passport_number": partner.representative_id.passport_number,
- "partner_representer_passport_date": partner.representative_id.passport_date,
- "partner_representer_passport_department": partner.representative_id.passport_department,
- })
- if partner.company_form == 'plc':
- # Private Limited Company
- ctx.update({
- "partner_kpp": partner.iec,
- "partner_ogrn": partner.psrn,
- })
-
-action = ctx
-
-
-
-
-
- Generate Context for Sale order
-
-
- code
-
-
-# Aliases
-self = record # sale.order
-
-seller = self.company_id.partner_id
-partner = self.partner_id
-
-# Functions
-_ = self._t
-to_fixed = self.env["client_contracts.utils"].to_fixed
-
-# Parse date
-months = ["",
- "января", "февраля", "марта", "апреля",
- "мая", "июня", "июля", "августа",
- "сентября", "октября", "ноября", "декабря",
-]
-offer_date = self.date_order
-dd = offer_date.day
-mm = offer_date.month
-yyyy = offer_date.year
-yy = yyyy % 100
-MM = months[mm]
-
-dd = dd if dd // 10 else '0{}'.format(dd)
-mm = mm if mm // 10 else '0{}'.format(mm)
-
-# ctx keys must be declared in this xml with id equal to "contract_field_{technical_name}"
-ctx = {
- # For manual filling on offer creation
- "offer_subject": "",
- "object_name": "",
- "object_address": "",
-
- # Fields from models
- "offer_name": self.name,
- "offer_date": "{} {} {}".format(offer_date.day, months[offer_date.month], offer_date.year),
-
- "commitment_date": self.commitment_date,
- "amount_untaxed": to_fixed(self.amount_untaxed),
- "amount_tax": to_fixed(self.amount_tax),
- "amount_total": to_fixed(self.amount_total),
- "currency_symbol": self.currency_id.symbol,
- "terms_and_conditions": self.note,
-
- "dd": dd,
- "mm": mm,
- "MM": MM,
- "yy": yy,
- "yyyy": yyyy,
-
- "seller_name": seller.name_write,
- "seller_company_form": _(dict(seller._fields['company_form'].selection).get(seller.company_form)),
-
- "seller_inn": seller.vat,
- "seller_kpp": seller.iec,
- "seller_ogrn": seller.psrn,
- "seller_business_address": seller.full_address,
- "seller_phone": seller.phone,
- "seller_email": seller.email,
-}
-
-seller_bank = seller.bank_ids and seller.bank_ids[0]
-if seller_bank:
-
- bank = seller_bank.bank_id
- bank_name = bank and bank.name or ""
- bank_city = "г. {city}".format(city=bank.city) if bank and bank.city else ""
- seller_bank_name = "{} {}".format(bank_name, bank_city).strip()
-
- ctx.update({
- "seller_bank": seller_bank_name,
- "seller_rs": seller_bank.acc_number,
- "seller_ks": bank.corr_account,
- "seller_bic": bank.bic,
- })
-
-action = ctx
-
-
-
-
-
-
- Number in Words
- number2words
- Function
- -1
-
-
-
- Currency Number in Words
- currency2words
- Function
- -1
-
-
-
-
-
- Offer subject
- offer_subject
-
- What we offers to our customer, i.e. 'power panels supply' or 'jobs execution and equipment supply'
-
- 1
-
-
-
- Object name
- object_name
-
- Object name this offer is made for
-
- 1
-
-
-
- Object address
- object_address
-
- Object's address this offer is made for
-
- 1
-
-
-
-
- Offer name
- offer_name
- Sale order number
- 1
-
-
-
- Offer date
- offer_date
-
- Sale order creation date or confirmation date, if confirmed.
-
- 2
-
-
-
- Commitment date
- commitment_date
-
- Date when executor's commitment should be fulfilled
-
- 3
-
-
-
- Products amount
- products_amount
-
- Total products amount in Sale order, including services and goods.
-
- 3
-
-
-
- Amount untaxed
- amount_untaxed
-
- Sale order total amount without taxes
-
- 4
-
-
-
- Amount tax
- amount_tax
-
- Sale order total taxes amount
-
- 4
-
-
-
- Amount total
- amount_total
-
- Sale order total amount including taxes
-
- 4
-
-
-
- Currency symbol
- currency_symbol
-
- Symbol for used currency, for displaying in documents
-
- 4
-
-
-
- Terms and conditions
- terms_and_conditions
-
- Terms and conditions from Sale order
-
- 4
-
-
-
-
-
- Contract Number
- contract_number
-
- 1
-
-
-
- Annex Name
- annex_name
-
- 2
-
-
-
- Annex Number
- annex_number
-
- 2
- False
-
-
-
- Order Name
- order_name
-
- 3
-
-
-
- Order Date
- order_date
-
- 4
-
-
-
- Design Cost
- design_cost
-
- False
-
-
-
- Design Period
- design_period
-
- False
-
-
-
- Design Documentation Period
- design_doc_period
-
- False
-
-
-
- Design Documentation Cost
- design_doc_cost
-
- False
-
-
-
- Delivery Address
- delivery_address
-
- False
-
-
-
- Delivery Period
- delivery_period
-
- False
-
-
-
- Installation Address
- installation_address
-
- False
-
-
-
- Installation Cost
- installation_cost
-
- False
-
-
-
- Installation Period
- installation_period
-
- False
-
-
-
- Total Cost
- total_cost
-
- False
-
-
-
- Day
- dd
- Number
- 11
-
-
-
- Month
- mm
- Number
- 16
- False
-
-
-
- Month
- MM
- Word
- 24
-
-
-
- Year
- yy
- Short
- 40
- False
-
-
-
- Year
- yyyy
- Full
- 32
-
-
-
- Amount Whole Part
- amount_whole
-
-
-
-
- Amount Fractional Part
- amount_fractional
-
-
-
-
- Payment Part 1
- payment_part_one
-
- 35
-
-
-
- Payment Part 2
- payment_part_two
-
- 36
-
-
-
- Payment Part 3
- payment_part_three
-
- 37
-
-
-
-
-
-
- Name
- seller_name
- Seller
- 48
-
-
-
- Institutional-Legal Form
- seller_company_form
- Seller
- 56
-
-
-
- IP Number
- seller_ip_number
- Seller IP Certificate
- 64
-
-
-
- IP Issued on
- seller_ip_date
- Seller IP Certificate
- 72
-
-
-
- Name
- seller_representer_name
- Seller Representative
- 80
-
-
-
- Name Genitive
- seller_representer_name_parent
- Seller Representative
- 88
-
-
-
- Name Initials
- seller_representer_name_initials
- Seller Representative
- 96
-
-
-
- Function
- seller_representer_function
- Seller Representative
- 104
-
-
-
- Function Genitive
- seller_representer_function_parent
- Seller Representative
- 112
-
-
-
- Document Genitive
- seller_representer_document_parent
- Seller Representative
- 120
-
-
-
- Passport №
- seller_representer_passport_number
- Seller Representative
- 128
-
-
-
- Passport Issued on
- seller_representer_passport_date
- Seller Representative
- 136
-
-
-
- Passport Issued by
- seller_representer_passport_department
- Seller Representative
- 144
-
-
-
- Passport Department Code
- seller_representer_passport_department_code
- Seller Representative
- 146
-
-
-
- INN
- seller_inn
- Seller
- 152
-
-
-
- PSRN
- seller_ogrn
- Seller
- 160
-
-
-
- PSRN-IP
- seller_ogrnip
- Seller
- 168
-
-
-
- KPP
- seller_kpp
- Seller
- 176
-
-
-
- OKPO
- seller_okpo
- Seller
- 184
-
-
-
- Bank Name
- seller_bank
- Seller
- 192
-
-
-
- Bank Payment Account
- seller_rs
- Seller
- 200
-
-
-
- Bank Corresponding Account
- seller_ks
- Seller
- 208
-
-
-
- BIC
- seller_bic
- Seller
- 216
-
-
-
- Business Address
- seller_business_address
- Seller
- 224
-
-
-
- Phone
- seller_phone
- Seller
- 232
-
-
-
- WhatsApp
- seller_whatsapp
- Seller
- 233
-
-
-
- Telegram
- seller_telegram
- Seller
- 234
-
-
-
- Email
- seller_email
- Seller
- 240
-
-
-
-
-
-
- Name
- partner_name
- Partner
- 248
-
-
-
- Institutional-Legal Form
- partner_company_form
- Partner
- 256
-
-
-
- IP Number
- partner_ip_number
- Partner IP Certificate
- 264
-
-
-
- IP Issued on
- partner_ip_date
- Partner IP Certificate
- 272
-
-
-
- Name
- partner_representer_name
- Partner Representative
- 280
-
-
-
- Name Genitive
- partner_representer_name_parent
- Partner Representative
- 288
-
-
-
- Name Initials
- partner_representer_name_initials
- Partner Representative
- 296
-
-
-
- Function
- partner_representer_function
- Partner Representative
- 304
-
-
-
- Function Genitive
- partner_representer_function_parent
- Partner Representative
- 312
-
-
-
- Document Genitive
- partner_representer_document_parent
- Partner Representative
- 320
-
-
-
- Passport №
- partner_representer_passport_number
- Partner Representative
- 328
-
-
-
- Passport Issued on
- partner_representer_passport_date
- Partner Representative
- 336
-
-
-
- Passport Issued by
- partner_representer_passport_department
- Partner Representative
- 344
-
-
-
- Passport Department Code
- partner_representer_passport_department_code
- Partner Representative
- 346
-
-
-
- INN
- partner_inn
- Partner
- 352
-
-
-
- PSRN
- partner_ogrn
- Partner
- 360
-
-
-
- PSRN-IP
- partner_ogrnip
- Partner
- 368
-
-
-
- KPP
- partner_kpp
- Partner
- 376
-
-
-
- OKPO
- partner_okpo
- Partner
- 384
-
-
-
- Bank
- partner_bank
- Partner
- 392
-
-
-
- Bank Payment Account
- partner_rs
- Partner
- 400
-
-
-
- Bank Corresponding Account
- partner_ks
- Partner
- 408
-
-
-
- BIC
- partner_bic
- Partner
- 416
-
-
-
- Business Address
- partner_business_address
- Partner
- 424
-
-
-
- Phone
- partner_phone
- Partner
- 432
-
-
-
- WhatsApp
- partner_whatsapp
- Partner
- 433
-
-
-
- Telegram
- partner_telegram
- Partner
- 434
-
-
-
- Email
- partner_email
- Partner
- 440
-
-
-
-
diff --git a/data/payment_terms.xml b/data/payment_terms.xml
deleted file mode 100755
index 90c1822..0000000
--- a/data/payment_terms.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- 100% Prepaid
- Payment terms: 100% Prepaid
- 1
-
-
- 100% Postpaid
- Payment terms: 100% Postpaid
- 2
-
-
- 2 stages
- Payment terms: Partial 2 Stages
- 3
-
-
- 3 stages
- Payment terms: Partial 3 Stages
- 4
-
-
-
-
diff --git a/i18n/client_contracts.pot b/i18n/client_contracts.pot
deleted file mode 100644
index c6f3797..0000000
--- a/i18n/client_contracts.pot
+++ /dev/null
@@ -1,1561 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * client_contracts
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 14.0+e-20210305\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-12 11:35+0000\n"
-"PO-Revision-Date: 2021-05-12 11:35+0000\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_commitment_date
-msgid ""
-"\n"
-" Date when executor's commitment should be fulfilled\n"
-" "
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_offer_date
-msgid ""
-"\n"
-" Sale order creation date or confirmation date, if confirmed.\n"
-" "
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_amount_total
-msgid ""
-"\n"
-" Sale order total amount\n"
-" "
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__contract_count
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__contract_count
-msgid "# of contracts"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_postpayment
-msgid "100% Postpaid"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_prepaid
-msgid "100% Prepaid"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_partial_2
-msgid "2 stages"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_partial_3
-msgid "3 stages"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_product_product__description_sale
-msgid ""
-"A product's description you want to tell to your customers.\n"
-"This description will be copied to every Sales Order, Delivery Order and Customer Invoice/Credit Note"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#, python-format
-msgid "Act of Acceptance and Delivery"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#, python-format
-msgid "Act of Acceptance and Transfer"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_needaction
-msgid "Action Needed"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_ids
-msgid "Activities"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_exception_decoration
-msgid "Activity Exception Decoration"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_state
-msgid "Activity State"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_type_icon
-msgid "Activity Type Icon"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__street_actual
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__street_actual
-msgid "Actual Address"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__date_conclusion_fix
-msgid "Actual signing date"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#, python-format
-msgid "Addition"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_amount_fractional
-msgid "Amount Fractional Part"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_amount_whole
-msgid "Amount Whole Part"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_amount_total
-msgid "Amount total"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__template_type__annex
-#, python-format
-msgid "Annex"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_annex_name
-msgid "Annex Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_annex_number
-msgid "Annex Number"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order__contract_annex_ids
-msgid "Annex for this Sale order"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Annexed Specifications"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__contract_annex_ids
-msgid "Annexes"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__contract_annex_ids
-msgid "Annexes to this contract"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#, python-format
-msgid "Approval List"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_attachment_count
-msgid "Attachment Count"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_bic
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_bic
-msgid "BIC"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_bank
-msgid "Bank"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ks
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ks
-msgid "Bank Corresponding Account"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_bank
-msgid "Bank Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_rs
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_rs
-msgid "Bank Payment Account"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#, python-format
-msgid "Bill"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_business_address
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_business_address
-msgid "Business Address"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__signature
-msgid "Client signature"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Close"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_contract__state__close
-msgid "Closed"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_commitment_date
-msgid "Commitment date"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__company_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__company_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__company_id
-msgid "Company"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__company_type
-msgid "Company Type"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner
-msgid "Contact"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#: model:ir.model,name:client_contracts.model_res_partner_contract
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__contract_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient___contract_wizard_id
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_contract_wizard__target__res_partner_contract
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__template_type__contract
-#: model:ir.ui.menu,name:client_contracts.res_partner_menu_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-#, python-format
-msgid "Contract"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_annex
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order__contract_annex_id
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_contract_wizard__target__res_partner_contract_annex
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Contract Annex"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__contract_annex_number
-msgid "Contract Annex Number"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_annex__counter
-msgid "Contract Annexes counter"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_field
-msgid "Contract Field"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_field_transient
-msgid "Contract Field Transient"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.actions.act_window,name:client_contracts.res_partner_contract_field_action
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__transient_field_ids
-msgid "Contract Fields"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_contract_number
-msgid "Contract Number"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__name
-msgid "Contract number"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Contract parameters"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.actions.act_window,name:client_contracts.res_partner_contract_action
-#: model:ir.actions.act_window,name:client_contracts.res_partner_contract_partner_action
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__client_contract_ids
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__client_contract_ids
-#: model:ir.ui.menu,name:client_contracts.res_partner_contract_menu_act
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_tree
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_view_buttons
-msgid "Contracts"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__contract_annex_number
-msgid "Counter for generate Annex name"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__create_date_ts
-msgid "Create Date Ts"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_wizard_print_document_view
-msgid "Create a document"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.view_order_form
-msgid "Create offer document"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__create_uid
-msgid "Created by"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__create_date
-msgid "Created on"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__currency_id
-msgid "Currency"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_currency2words
-msgid "Currency Number in Words"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_dd
-msgid "Day"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Delivery"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__delivery_address
-#: model:res.partner.contract.field,name:client_contracts.contract_field_delivery_address
-msgid "Delivery Address"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_delivery_period
-msgid "Delivery Period"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__delivery_period
-msgid "Delivery Period (days)"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order__delivery_time
-msgid "Delivery Time"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__description
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__description
-msgid "Description"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field__description
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field_transient__description
-msgid ""
-"Description for this field to be showed in fields list in print form "
-"creation wizard."
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Design"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__design_cost
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_cost
-msgid "Design Cost"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_doc_cost
-msgid "Design Documentation Cost"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_doc_period
-msgid "Design Documentation Period"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__design_period
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_period
-msgid "Design Period"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_account_move__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_client_contracts_utils__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_product_product__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__display_name
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order__display_name
-msgid "Display Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__document_type_name
-msgid "Document"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_document_parent
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_document_parent
-msgid "Document Genitive"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__document_name
-msgid "Document Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_document_template
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__document_template
-msgid "Document Template"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.actions.act_window,name:client_contracts.res_partner_document_template_action
-msgid "Document Templates"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__design_doc_cost
-msgid "Documentation Design Cost"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__design_doc_period
-msgid "Documentation Design Period (days)"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__email
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_email
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_email
-msgid "Email"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__email
-msgid "Email of the related partner (if exist) or False"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__contract_field_id
-msgid "Field"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/wizard/res_partner_contract_wizard.py:0
-#, python-format
-msgid ""
-"Field \"%s\" specified in template, not found in model "
-"\"res.partner.contract.field\""
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__date_conclusion_fix
-msgid "Field for pointing out manually when contract is signed or closed"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.ui.menu,name:client_contracts.res_partner_menu_contracts_fields
-msgid "Fields"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_follower_ids
-msgid "Followers"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_channel_ids
-msgid "Followers (Channels)"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_partner_ids
-msgid "Followers (Partners)"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__activity_type_icon
-msgid "Font awesome icon e.g. fa-tasks"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_yyyy
-msgid "Full"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__full_address
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__full_address
-msgid "Full Address"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_currency2words
-#: model:res.partner.contract.field,description:client_contracts.contract_field_number2words
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_function
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_function
-msgid "Function"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_function_parent
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_function_parent
-msgid "Function Genitive"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.actions.server,name:client_contracts.action_get_annex_context
-msgid "Generate Context for Annex"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.actions.server,name:client_contracts.action_get_contract_context
-msgid "Generate Context for Contract"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.actions.server,name:client_contracts.action_get_so_context
-msgid "Generate Context for Sale order"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_account_move__id
-#: model:ir.model.fields,field_description:client_contracts.field_client_contracts_utils__id
-#: model:ir.model.fields,field_description:client_contracts.field_product_product__id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__id
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order__id
-msgid "ID"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_inn
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_inn
-msgid "INN"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ip_date
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ip_date
-msgid "IP Issued on"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ip_number
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ip_number
-msgid "IP Number"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_exception_icon
-msgid "Icon"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__activity_exception_icon
-msgid "Icon to indicate an exception activity."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__res_id
-msgid "Id of the followed resource"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner__telegram
-#: model:ir.model.fields,help:client_contracts.field_res_users__telegram
-msgid "If a contact have a Telegram number or identifier"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner__whatsapp
-#: model:ir.model.fields,help:client_contracts.field_res_users__whatsapp
-msgid "If a contact have a WhatsApp number"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__message_needaction
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__message_unread
-msgid "If checked, new messages require your attention."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__message_has_error
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__message_has_sms_error
-msgid "If checked, some messages have a delivery error."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__is_active
-msgid ""
-"If the related partner is active (if exist) or if related channel exist"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__company_type__person
-msgid "Individual"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Info"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Installation"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__installation_address
-#: model:res.partner.contract.field,name:client_contracts.contract_field_installation_address
-msgid "Installation Address"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__installation_cost
-#: model:res.partner.contract.field,name:client_contracts.contract_field_installation_cost
-msgid "Installation Cost"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_installation_period
-msgid "Installation Period"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__installation_period
-msgid "Installation Period (days)"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_company_form
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_company_form
-msgid "Institutional-Legal Form"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__is_active
-msgid "Is Active"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_is_follower
-msgid "Is Follower"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__function_genitive
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__function_genitive
-msgid "Job position genitive"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_account_move
-msgid "Journal Entry"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_kpp
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_kpp
-msgid "KPP"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_account_move____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_client_contracts_utils____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_product_product____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template____last_update
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order____last_update
-msgid "Last Modified on"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__write_uid
-msgid "Last Updated by"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__write_date
-msgid "Last Updated on"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Leave empty for compute"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__channel_id
-msgid "Listener"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_main_attachment_id
-msgid "Main Attachment"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_has_error
-msgid "Message Delivery error"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__subtype_ids
-msgid ""
-"Message subtypes followed, meaning subtypes that will be pushed onto the "
-"user's Wall."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_ids
-msgid "Messages"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_MM
-#: model:res.partner.contract.field,name:client_contracts.contract_field_mm
-msgid "Month"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__name
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_name
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_name
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_name
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_name
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__name_genitive
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__name_genitive
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_name_parent
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_name_parent
-msgid "Name Genitive"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__name_initials
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__name_initials
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_name_initials
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_name_initials
-msgid "Name Initials"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field__technical_name
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field_transient__technical_name
-msgid "Name for using in templates"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_info_inherit_view
-msgid "Name in ERP"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__name_write
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__name_write
-msgid "Name in contracts"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__name
-msgid "Name of the related partner (if exist) or the related channel"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_contract__state__draft
-msgid "New"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_date_deadline
-msgid "Next Activity Deadline"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_summary
-msgid "Next Activity Summary"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_type_id
-msgid "Next Activity Type"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_dd
-#: model:res.partner.contract.field,description:client_contracts.contract_field_mm
-msgid "Number"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_number2words
-msgid "Number in Words"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_needaction_counter
-msgid "Number of Actions"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_has_error_counter
-msgid "Number of errors"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__message_needaction_counter
-msgid "Number of messages which requires an action"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__message_has_error_counter
-msgid "Number of messages with delivery error"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__message_unread_counter
-msgid "Number of unread messages"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_okpo
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_okpo
-msgid "OKPO"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#: code:addons/client_contracts/models/sale_order.py:0
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_contract_wizard__target__sale_order
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type__offer
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type_name__offer
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__template_type__offer
-#, python-format
-msgid "Offer"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_offer_date
-msgid "Offer date"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_offer_name
-msgid "Offer name"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_order_date
-msgid "Order Date"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_order_name
-msgid "Order Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ogrn
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ogrn
-msgid "PSRN"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ogrnip
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ogrnip
-msgid "PSRN-IP"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner__representative_document
-#: model:ir.model.fields,help:client_contracts.field_res_users__representative_document
-msgid "Parent Case"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__partner_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__partner_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__partner_id
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_bank
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_bic
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_business_address
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_company_form
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_email
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_inn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_kpp
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ks
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ogrn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ogrnip
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_okpo
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_phone
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_rs
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_telegram
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_whatsapp
-msgid "Partner"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ip_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ip_number
-msgid "Partner IP Certificate"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_document_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_function
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_function_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_name_initials
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_name_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_department
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_department_code
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_number
-msgid "Partner Representative"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_department_code
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_department_code
-msgid "Passport Department Code"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_department
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_department
-msgid "Passport Issued by"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_date
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_date
-msgid "Passport Issued on"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_number
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_number
-msgid "Passport №"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Payment"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__payment_part_one
-msgid "Payment 1 Part (%)"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__payment_part_two
-msgid "Payment 2 Part (%)"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__payment_part_three
-msgid "Payment 3 Part (%)"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_payment_part_one
-msgid "Payment Part 1"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_payment_part_two
-msgid "Payment Part 2"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_payment_part_three
-msgid "Payment Part 3"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order__payment_term_id
-msgid "Payment Terms"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_postpayment
-msgid "Payment terms: 100% Postpaid"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_prepaid
-msgid "Payment terms: 100% Prepaid"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_partial_2
-msgid "Payment terms: Partial 2 Stages"
-msgstr ""
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_partial_3
-msgid "Payment terms: Partial 3 Stages"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner__representative_id
-#: model:ir.model.fields,help:client_contracts.field_res_users__representative_id
-msgid "Person representing company"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_phone
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_phone
-msgid "Phone"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Print"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_contract.py:0
-#: code:addons/client_contracts/models/sale_order.py:0
-#, python-format
-msgid "Print Form of Contract"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/account_invoice.py:0
-#: code:addons/client_contracts/models/res_partner_contract_annex.py:0
-#, python-format
-msgid "Print Form of Contract Annex"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__company_type__plc
-msgid "Private Limited Company"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_product_product
-msgid "Product"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_wizard__target
-msgid "Record of contract or annex entity, from where wizard has been called"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__res_id
-msgid "Related Document ID"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__res_model
-msgid "Related Document Model Name"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Renew"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__representative_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__representative_id
-msgid "Representative"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__representative_document
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__representative_document
-msgid "Representative acts on the basis of"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__activity_user_id
-msgid "Responsible User"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_has_sms_error
-msgid "SMS Delivery error"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_product_product__description_sale
-msgid "Sale Description"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__order_id
-msgid "Sale order"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_annex__order_id
-msgid "Sale order for this annex."
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_offer_name
-msgid "Sale order number"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_sale_order
-msgid "Sales Order"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.search_res_partner_contract_filter
-msgid "Search Contract"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_bank
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_bic
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_business_address
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_company_form
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_email
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_inn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_kpp
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ks
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ogrn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ogrnip
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_okpo
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_phone
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_rs
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_telegram
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_whatsapp
-msgid "Seller"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ip_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ip_number
-msgid "Seller IP Certificate"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_document_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_function
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_function_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_name_initials
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_name_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_department
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_department_code
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_number
-msgid "Seller Representative"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__sequence
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__sequence
-msgid "Sequence"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_yy
-msgid "Short"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Sign"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_contract__state__sign
-msgid "Signed"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__date_conclusion
-msgid "Signing Date"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__date_conclusion
-msgid "Signing date in system"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__company_type__sp
-msgid "Sole Proprietor"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:0
-#, python-format
-msgid "Specification"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__specification_name
-msgid "Specification Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__state
-msgid "Status"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__activity_state
-msgid ""
-"Status based on activities\n"
-"Overdue: Due date is already passed\n"
-"Today: Activity date is today\n"
-"Planned: Future activities."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__subtype_ids
-msgid "Subtype"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__target
-msgid "Target"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__technical_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__technical_name
-msgid "Technical Name"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_sale_order__contract_annex_ids
-msgid ""
-"Technical field for binding with contract annex\n"
-"In form this link showed in 'contract_annex_id' field."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__telegram
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__telegram
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_telegram
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_telegram
-msgid "Telegram"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_wizard_print_document_view
-msgid "Template"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__attachment_id
-msgid "Template Attachment"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__template_type
-msgid "Template Type"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.ui.menu,name:client_contracts.res_partner_menu_contracts_templates
-msgid "Templates"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/account_invoice.py:0
-#, python-format
-msgid "There is a Sale order without annex."
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/account_invoice.py:0
-#, python-format
-msgid "There is a Sale order without binding contract."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner__name_write
-#: model:ir.model.fields,help:client_contracts.field_res_users__name_write
-msgid "This name used in contracts"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field__visible
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field_transient__visible
-msgid ""
-"To show this field in fields list in print form creation wizard\n"
-"User can change showed field's values in wizard."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex__total_cost
-#: model:res.partner.contract.field,name:client_contracts.contract_field_total_cost
-msgid "Total Cost"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard__transient_field_ids_hidden
-msgid "Transient Field Ids Hidden"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template__document_type
-msgid "Type of document"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__activity_exception_decoration
-msgid "Type of the exception activity on record."
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_unread
-msgid "Unread Messages"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__message_unread_counter
-msgid "Unread Messages Counter"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__value
-msgid "Value"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_wizard_print_document_view
-msgid "Values"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field__visible
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__visible
-msgid "Visible"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract__website_message_ids
-msgid "Website Messages"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract__website_message_ids
-msgid "Website communication history"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner__whatsapp
-#: model:ir.model.fields,field_description:client_contracts.field_res_users__whatsapp
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_whatsapp
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_whatsapp
-msgid "WhatsApp"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_MM
-msgid "Word"
-msgstr ""
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_yy
-#: model:res.partner.contract.field,name:client_contracts.contract_field_yyyy
-msgid "Year"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_client_contracts_utils
-msgid "client_contracts.utils"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/sale_order.py:0
-#, python-format
-msgid "from"
-msgstr ""
-
-#. module: client_contracts
-#: model_terms:ir.ui.view,arch_db:client_contracts.res_partner_contract_info_inherit_view
-msgid "i.e. Ural Bank for Reconstruction and Development"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_wizard
-msgid "res.partner.contract.wizard"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_contract_annex.py:0
-#, python-format
-msgid "{name} from {date}"
-msgstr ""
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_contract.py:0
-#, python-format
-msgid "{type} {number} from {date}"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type_name__act_at
-msgid "Акт приема-передачи"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type_name__act_ad
-msgid "Акт сдачи-приемки"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type__contract
-msgid "Договор"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type__addition
-msgid "Дополнение"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type_name__approval_list
-msgid "Лист согласования"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type__annex
-msgid "Приложение"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type_name__specification
-msgid "Спецификация"
-msgstr ""
-
-#. module: client_contracts
-#: model:ir.model.fields.selection,name:client_contracts.selection__res_partner_document_template__document_type_name__bill
-msgid "Счёт"
-msgstr ""
diff --git a/i18n/ru.po b/i18n/ru.po
deleted file mode 100755
index 4cd25b6..0000000
--- a/i18n/ru.po
+++ /dev/null
@@ -1,1140 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * client_contracts
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 11.0-20191106\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-18 13:42+0000\n"
-"PO-Revision-Date: 2021-05-12 16:28+0500\n"
-"Last-Translator: Stepan Savelyev\n"
-"Language-Team: RYDLAB\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: \n"
-"Language: ru\n"
-"X-Generator: Poedit 2.4.3\n"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_count
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_contract_count
-msgid "# of contracts"
-msgstr "кол-во договоров"
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_postpayment
-msgid "100% Postpaid"
-msgstr "100% постоплата"
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_prepaid
-msgid "100% Prepaid"
-msgstr "100% предоплата"
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_partial_2
-msgid "2 stages"
-msgstr "Оплата в 2 этапа"
-
-#. module: client_contracts
-#: model:account.payment.term,name:client_contracts.payment_term_partial_3
-msgid "3 stages"
-msgstr "Оплата в 3 этапа"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:31
-#: selection:res.partner.document.template,document_type_name:0
-#, python-format
-msgid "Act of Acceptance and Delivery"
-msgstr "Акт сдачи-приемки"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:30
-#: selection:res.partner.document.template,document_type_name:0
-#, python-format
-msgid "Act of Acceptance and Transfer"
-msgstr "Акт приема-передачи"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_street_actual
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_street_actual
-msgid "Actual Address"
-msgstr "Актуальный адрес"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:21
-#: selection:res.partner.document.template,document_type:0
-#, python-format
-msgid "Addition"
-msgstr "Дополнение"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_amount_fractional
-msgid "Amount Fractional Part"
-msgstr "Дробная часть суммы"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_amount_whole
-msgid "Amount Whole Part"
-msgstr "Целая часть суммы"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:20
-#: selection:res.partner.document.template,document_type:0
-#: selection:res.partner.document.template,template_type:0
-#, python-format
-msgid "Annex"
-msgstr "Приложение"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_annex_name
-msgid "Annex Name"
-msgstr "Наименование приложения"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_annex_number
-msgid "Annex Number"
-msgstr "Номер приложения"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Annexed Specifications"
-msgstr "Приложенные спецификации"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_contract_annex_ids
-msgid "Annexes"
-msgstr "Приложения"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_contract_annex_ids
-msgid "Annexes to this contract"
-msgstr "Приложения к договору"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:29
-#: selection:res.partner.document.template,document_type_name:0
-#, python-format
-msgid "Approval List"
-msgstr "Лист согласования"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_bic
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_bic
-msgid "BIC"
-msgstr "БИК"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_bank
-msgid "Bank"
-msgstr "Банк"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ks
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ks
-msgid "Bank Corresponding Account"
-msgstr "Корр. счёт"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_bank
-msgid "Bank Name"
-msgstr "Наименование банка"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_rs
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_rs
-msgid "Bank Payment Account"
-msgstr "Расчётный счёт"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:27
-#: selection:res.partner.document.template,document_type_name:0
-#, python-format
-msgid "Bill"
-msgstr "Счёт"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_business_address
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_business_address
-msgid "Business Address"
-msgstr "Юридический адрес"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_signature
-msgid "Client signature"
-msgstr "Подпись или печать"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Close"
-msgstr "Закрыть"
-
-#. module: client_contracts
-#: selection:res.partner.contract,state:0
-msgid "Closed"
-msgstr "Закрыт"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_company_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_company_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_company_id
-msgid "Company"
-msgstr "Компания"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_company_type
-msgid "Company Type"
-msgstr "Тип компании"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_date_conclusion
-msgid "Conclusion Date"
-msgstr "Дата подписания"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner
-msgid "Contact"
-msgstr "Контакт"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:19
-#: model:ir.model,name:client_contracts.model_res_partner_contract
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_contract_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient__contract_wizard_id
-#: model:ir.ui.menu,name:client_contracts.res_partner_menu_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-#: selection:res.partner.contract.wizard,target:0
-#: selection:res.partner.document.template,document_type:0
-#: selection:res.partner.document.template,template_type:0
-#, python-format
-msgid "Contract"
-msgstr "Договор"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_annex
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order_contract_annex_id
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-#: selection:res.partner.contract.wizard,target:0
-msgid "Contract Annex"
-msgstr "Приложение к договору"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_contract_annex_number
-msgid "Contract Annex Number"
-msgstr "Счётчик приложений к договору"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_field
-msgid "Contract Field"
-msgstr "Поле договора"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_field_transient
-msgid "Contract Field Transient"
-msgstr "Фактическое поле договора"
-
-#. module: client_contracts
-#: model:ir.actions.act_window,name:client_contracts.res_partner_contract_field_action
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_transient_field_ids
-msgid "Contract Fields"
-msgstr "Поля договора"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_contract_number
-msgid "Contract Number"
-msgstr "Номер договора"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_name
-msgid "Contract number"
-msgstr "Номер договора"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Contract parameters"
-msgstr "Информация"
-
-#. module: client_contracts
-#: model:ir.actions.act_window,name:client_contracts.res_partner_contract_action
-#: model:ir.actions.act_window,name:client_contracts.res_partner_contract_partner_action
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_client_contract_ids
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_client_contract_ids
-#: model:ir.ui.menu,name:client_contracts.res_partner_contract_menu_act
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_tree
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_view_buttons
-msgid "Contracts"
-msgstr "Договоры"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_contract_annex_number
-msgid "Counter for generate Annex name"
-msgstr "Счётчик для генерации имени приложения к договору"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_annex_counter
-msgid "Counter of Contract Annexes"
-msgstr "Счётчик приложений к договору"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_create_date_ts
-msgid "Create Date Ts"
-msgstr "Создан (таймстамп)"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_wizard_print_document_view
-msgid "Create a document"
-msgstr "Создать документ"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_create_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_create_uid
-msgid "Created by"
-msgstr "Создано"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_create_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_create_date
-msgid "Created on"
-msgstr "Создан"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_currency_id
-msgid "Currency"
-msgstr "Валюта"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_currency2words
-msgid "Currency Number in Words"
-msgstr "Денежный формат числа прописью"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_date_conclusion_fix
-msgid "Date of manual conclusion"
-msgstr "Дата подписания"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_date_conclusion
-msgid "Date of system conclusion"
-msgstr "Дата подписания в системе"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_dd
-msgid "Day"
-msgstr "День"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Delivery"
-msgstr "Доставка"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_delivery_address
-#: model:res.partner.contract.field,name:client_contracts.contract_field_delivery_address
-msgid "Delivery Address"
-msgstr "Адрес доставки"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_delivery_period
-msgid "Delivery Period"
-msgstr "Срок поставки"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_delivery_period
-msgid "Delivery Period (days)"
-msgstr "Срок поставки изделий"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_sale_order_delivery_time
-msgid "Delivery Time"
-msgstr "Срок доставки"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_description
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_description
-msgid "Description"
-msgstr "Описание"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Design"
-msgstr "Дизайн"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_design_cost
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_cost
-msgid "Design Cost"
-msgstr "Стоимость разработки дизайна"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_doc_cost
-msgid "Design Documentation Cost"
-msgstr "Стоимость разработки КД"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_doc_period
-msgid "Design Documentation Period"
-msgstr "Срок разработки КД"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_design_period
-#: model:res.partner.contract.field,name:client_contracts.contract_field_design_period
-msgid "Design Period"
-msgstr "Срок разработки дизайна"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_display_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_display_name
-msgid "Display Name"
-msgstr "Отображаемое Имя"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_document_type_name
-msgid "Document"
-msgstr "Документ"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_document_parent
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_document_parent
-msgid "Document Genitive"
-msgstr "Документ (род.падеж)"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_document_name
-msgid "Document Name"
-msgstr "Имя документа"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_document_template
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_document_template
-msgid "Document Template"
-msgstr "Шаблон документа"
-
-#. module: client_contracts
-#: model:ir.actions.act_window,name:client_contracts.res_partner_document_template_action
-msgid "Document Templates"
-msgstr "Шаблоны документов"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_design_doc_cost
-msgid "Documentation Design Cost"
-msgstr "Стоимость разработки КД"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_design_doc_period
-msgid "Documentation Design Period (days)"
-msgstr "Срок подготовки КД"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_email
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_email
-msgid "Email"
-msgstr "Эл. почта"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_contract_field_id
-msgid "Field"
-msgstr "Поле"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_date_conclusion_fix
-msgid "Field for manual edit when contract is signed or closed"
-msgstr "Поле для ручного редактирования, когда договор подписан либо закрыт"
-
-#. module: client_contracts
-#: model:ir.ui.menu,name:client_contracts.res_partner_menu_contracts_fields
-msgid "Fields"
-msgstr "Поля"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_yyyy
-msgid "Full"
-msgstr "Полный"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_full_address
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_full_address
-msgid "Full Address"
-msgstr "Полный адрес"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_currency2words
-#: model:res.partner.contract.field,description:client_contracts.contract_field_number2words
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_function
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_function
-msgid "Function"
-msgstr "Должность"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_function_genitive
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_function_genitive
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_function_parent
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_function_parent
-msgid "Function Genitive"
-msgstr "Должность (род.падеж)"
-
-#. module: client_contracts
-#: model:ir.actions.server,name:client_contracts.action_get_annex_context
-#: model:ir.actions.server,name:client_contracts.action_get_contract_context
-msgid "Generate Context for Contract"
-msgstr "Generate Context for Contract"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_id
-msgid "ID"
-msgstr "Номер"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_inn
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_inn
-msgid "INN"
-msgstr "ИНН"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ip_date
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ip_date
-msgid "IP Issued on"
-msgstr "ИП Выдан"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ip_number
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ip_number
-msgid "IP Number"
-msgstr "ИП Серия и номер"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_telegram
-#: model:ir.model.fields,help:client_contracts.field_res_users_telegram
-msgid "If a contact have a Telegram number or identifier"
-msgstr "Номер или идентификатор в Telegram"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_whatsapp
-#: model:ir.model.fields,help:client_contracts.field_res_users_whatsapp
-msgid "If a contact have a WhatsApp number"
-msgstr "Номер в WhatsApp"
-
-#. module: client_contracts
-#: selection:res.partner.document.template,company_type:0
-msgid "Individual"
-msgstr "Физическое лицо"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Info"
-msgstr "Информация"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Installation"
-msgstr "Монтаж"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_installation_address
-#: model:res.partner.contract.field,name:client_contracts.contract_field_installation_address
-msgid "Installation Address"
-msgstr "Монтаж по адресу"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_installation_cost
-#: model:res.partner.contract.field,name:client_contracts.contract_field_installation_cost
-msgid "Installation Cost"
-msgstr "Стоимость монтажа"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_installation_period
-msgid "Installation Period"
-msgstr "Срок монтажа изделий"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_installation_period
-msgid "Installation Period (days)"
-msgstr "Срок монтажа изделий"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_company_form
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_company_form
-msgid "Institutional-Legal Form"
-msgstr "Огранизационно-правовая форма"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_account_invoice
-msgid "Invoice"
-msgstr "Счёт"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_kpp
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_kpp
-msgid "KPP"
-msgstr "КПП"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract___last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex___last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field___last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient___last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard___last_update
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template___last_update
-msgid "Last Modified on"
-msgstr "Последнее изменение"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_write_uid
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_write_uid
-msgid "Last Updated by"
-msgstr "Последний раз обновил"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_write_date
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_write_date
-msgid "Last Updated on"
-msgstr "Последнее обновление"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Leave empty for compute"
-msgstr "Оставить пустым для автозаполнения"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_MM
-#: model:res.partner.contract.field,name:client_contracts.contract_field_mm
-msgid "Month"
-msgstr "Месяц"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_name
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_name
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_name
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_name
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_name
-msgid "Name"
-msgstr "Название"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_name_genitive
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_name_genitive
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_name_parent
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_name_parent
-msgid "Name Genitive"
-msgstr "Имя (род.падеж)"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_name_initials
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_name_initials
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_name_initials
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_name_initials
-msgid "Name Initials"
-msgstr "Фамилия с инициалами"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_info_inherit_view
-msgid "Name in ERP"
-msgstr "Название в ERP"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_name_write
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_name_write
-msgid "Name in contracts"
-msgstr "Название в договоре"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field_technical_name
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_field_transient_technical_name
-msgid "Name uses in template"
-msgstr "Имя поля, используемое в шаблоне"
-
-#. module: client_contracts
-#: selection:res.partner.contract,state:0
-msgid "New"
-msgstr "Новый"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_dd
-#: model:res.partner.contract.field,description:client_contracts.contract_field_mm
-msgid "Number"
-msgstr "Число"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_number2words
-msgid "Number in Words"
-msgstr "Число прописью"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_okpo
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_okpo
-msgid "OKPO"
-msgstr "ОКПО"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_order_id
-msgid "Order"
-msgstr "Заказ"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_order_date
-msgid "Order Date"
-msgstr "Дата заказа"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_order_name
-msgid "Order Name"
-msgstr "Имя заказа"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_annex_order_id
-msgid "Orders with this partner which are not uses in annexes yet"
-msgstr ""
-"Заказы, заключённые с этим партнёром и ещё не использующиеся в приложениях"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ogrn
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ogrn
-msgid "PSRN"
-msgstr "ОГРН"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_ogrnip
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_ogrnip
-msgid "PSRN-IP"
-msgstr "ОГРНИП"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_representative_document
-#: model:ir.model.fields,help:client_contracts.field_res_users_representative_document
-msgid "Parent Case"
-msgstr "В родительном падеже"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_partner_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_partner_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_partner_id
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_bank
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_bic
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_business_address
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_company_form
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_email
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_inn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_kpp
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ks
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ogrn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ogrnip
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_okpo
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_phone
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_rs
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_telegram
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_whatsapp
-msgid "Partner"
-msgstr "Партнёр"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ip_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_ip_number
-msgid "Partner IP Certificate"
-msgstr "Партнёр; Сертификат о регистрации ИП"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_document_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_function
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_function_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_name_initials
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_name_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_department
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_department_code
-#: model:res.partner.contract.field,description:client_contracts.contract_field_partner_representer_passport_number
-msgid "Partner Representative"
-msgstr "Представитель Партнёра"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_department_code
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_department_code
-msgid "Passport Department Code"
-msgstr "Код подразделения, выдавшего паспорт"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_department
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_department
-msgid "Passport Issued by"
-msgstr "Паспорт выдан"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_date
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_date
-msgid "Passport Issued on"
-msgstr "Паспорт выдан"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_representer_passport_number
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_representer_passport_number
-msgid "Passport №"
-msgstr "Паспорт №"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_annex_view_form
-msgid "Payment"
-msgstr "Платеж"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_payment_part_one
-msgid "Payment 1 Part (%)"
-msgstr "Оплата первой части в размере (%)"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_payment_part_two
-msgid "Payment 2 Part (%)"
-msgstr "Оплата второй части в размере (%)"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_payment_part_three
-msgid "Payment 3 Part (%)"
-msgstr "Оплата третьей части в размере (%)"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_payment_part_one
-msgid "Payment Part 1"
-msgstr "Оплата первой части (%)"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_payment_part_two
-msgid "Payment Part 2"
-msgstr "Оплата второй части (%)"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_payment_part_three
-msgid "Payment Part 3"
-msgstr "Оплата третьей части (%)"
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_postpayment
-msgid "Payment terms: 100% Postpaid"
-msgstr "Условия оплаты: постоплата"
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_prepaid
-msgid "Payment terms: 100% Prepaid"
-msgstr "Условия оплаты: 100% предоплата"
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_partial_2
-msgid "Payment terms: Partial 2 Stages"
-msgstr "Условия оплаты: частично в 2 этапа"
-
-#. module: client_contracts
-#: model:account.payment.term,note:client_contracts.payment_term_partial_3
-msgid "Payment terms: Partial 3 Stages"
-msgstr "Условия оплаты: частично в 3 этапа"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_representative_id
-#: model:ir.model.fields,help:client_contracts.field_res_users_representative_id
-msgid "Person, who represents company"
-msgstr "Представитель компании"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_phone
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_phone
-msgid "Phone"
-msgstr "Телефон"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Print"
-msgstr "Печать"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_contract.py:98
-#, python-format
-msgid "Print Form of Contract"
-msgstr "Форма печати договора"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/account_invoice.py:31
-#: code:addons/client_contracts/models/res_partner_contract_annex.py:110
-#, python-format
-msgid "Print Form of Contract Annex"
-msgstr "Форма печати приложения к договору"
-
-#. module: client_contracts
-#: selection:res.partner.document.template,company_type:0
-msgid "Private Limited Company"
-msgstr "Общество с ограниченной ответственностью"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_sale_order
-msgid "Quotation"
-msgstr "Оферта"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_res_model
-msgid "Related Document Model Name"
-msgstr "Related Document Model Name"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Renew"
-msgstr "Возобновлено"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_representative_id
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_representative_id
-msgid "Representative"
-msgstr "Представитель"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_representative_document
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_representative_document
-msgid "Representative acts on the basis of"
-msgstr "Представитель действует на основании"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.search_res_partner_contract_filter
-msgid "Search Contract"
-msgstr "Поиск договора"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_bank
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_bic
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_business_address
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_company_form
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_email
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_inn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_kpp
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ks
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ogrn
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ogrnip
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_okpo
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_phone
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_rs
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_telegram
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_whatsapp
-msgid "Seller"
-msgstr "Продавец"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ip_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_ip_number
-msgid "Seller IP Certificate"
-msgstr "Продавец; Сертификат о регистрации ИП"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_document_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_function
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_function_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_name
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_name_initials
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_name_parent
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_date
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_department
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_department_code
-#: model:res.partner.contract.field,description:client_contracts.contract_field_seller_representer_passport_number
-msgid "Seller Representative"
-msgstr "Представитель Продавца"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_sequence
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_sequence
-msgid "Sequence"
-msgstr "Нумерация"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_yy
-msgid "Short"
-msgstr "Сокращенно"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_form
-msgid "Sign"
-msgstr "Подписано"
-
-#. module: client_contracts
-#: selection:res.partner.contract,state:0
-msgid "Signed"
-msgstr "Подписан"
-
-#. module: client_contracts
-#: selection:res.partner.document.template,company_type:0
-msgid "Sole Proprietor"
-msgstr "Индивидуальный предприниматель"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_document_template.py:28
-#: selection:res.partner.document.template,document_type_name:0
-#, python-format
-msgid "Specification"
-msgstr "Спецификация"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_specification_name
-msgid "Specification Name"
-msgstr "Имя спецификации"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_state
-msgid "Status"
-msgstr "Статус"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_target
-msgid "Target"
-msgstr "Ссылка"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_technical_name
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_technical_name
-msgid "Technical Name"
-msgstr "Техническое название"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_telegram
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_telegram
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_telegram
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_telegram
-msgid "Telegram"
-msgstr "Telegram"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_wizard_print_document_view
-msgid "Template"
-msgstr "Шаблон"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_attachment_id
-msgid "Template Attachment"
-msgstr "Вложение-шаблон"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_template_type
-msgid "Template Type"
-msgstr "Тип шаблона"
-
-#. module: client_contracts
-#: model:ir.ui.menu,name:client_contracts.res_partner_menu_contracts_templates
-msgid "Templates"
-msgstr "Шаблоны"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/account_invoice.py:20
-#, python-format
-msgid ""
-"There is no binding contract. It is necessary to link the order with the "
-"annex to the contract."
-msgstr ""
-"Отсутствует связанный договор. Необходимо связать заказ с приложением к "
-"договору."
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_name_write
-#: model:ir.model.fields,help:client_contracts.field_res_users_name_write
-msgid "This name uses in contracts"
-msgstr "Наименование, используемое при заполнении договоров"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_annex_total_cost
-#: model:res.partner.contract.field,name:client_contracts.contract_field_total_cost
-msgid "Total Cost"
-msgstr "Общая стоимость"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_wizard_transient_field_ids_hidden
-msgid "Transient Field Ids Hidden"
-msgstr "Transient Field Ids Hidden"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_document_template_document_type
-msgid "Type of document"
-msgstr "Вид документа"
-
-#. module: client_contracts
-#: model:ir.model.fields,help:client_contracts.field_res_partner_contract_annex_currency_id
-msgid "Utility field to express amount currency"
-msgstr "Служебное поле, чтобы выразить суммы в валюте"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_value
-msgid "Value"
-msgstr "Значение"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_wizard_print_document_view
-msgid "Values"
-msgstr "Значения"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_transient_visible
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_contract_field_visible
-msgid "Visible"
-msgstr "Видимый"
-
-#. module: client_contracts
-#: model:ir.model.fields,field_description:client_contracts.field_res_partner_whatsapp
-#: model:ir.model.fields,field_description:client_contracts.field_res_users_whatsapp
-#: model:res.partner.contract.field,name:client_contracts.contract_field_partner_whatsapp
-#: model:res.partner.contract.field,name:client_contracts.contract_field_seller_whatsapp
-msgid "WhatsApp"
-msgstr "WhatsApp"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,description:client_contracts.contract_field_MM
-msgid "Word"
-msgstr "Слово"
-
-#. module: client_contracts
-#: model:res.partner.contract.field,name:client_contracts.contract_field_yy
-#: model:res.partner.contract.field,name:client_contracts.contract_field_yyyy
-msgid "Year"
-msgstr "Год"
-
-#. module: client_contracts
-#: model:ir.ui.view,arch_db:client_contracts.res_partner_contract_info_inherit_view
-msgid "i.e. Ural Bank for Reconstruction and Development"
-msgstr "напр. «Уральский банк реконструкции и развития»"
-
-#. module: client_contracts
-#: model:ir.model,name:client_contracts.model_res_partner_contract_wizard
-msgid "res.partner.contract.wizard"
-msgstr "res.partner.contract.wizard"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_contract_annex.py:63
-#, python-format
-msgid "{name} from {date}"
-msgstr "{name} от {date}"
-
-#. module: client_contracts
-#: code:addons/client_contracts/models/res_partner_contract.py:111
-#, python-format
-msgid "{type} {number} from {date}"
-msgstr "{type} {number} от {date}"
diff --git a/models/__init__.py b/models/__init__.py
index 6227352..a248cf2 100755
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -1,9 +1 @@
-from . import account_invoice
-from . import product_product
-from . import res_partner
-from . import res_partner_contract
-from . import res_partner_contract_annex
-from . import res_partner_contract_field
-from . import res_partner_contract_field_transient
-from . import res_partner_document_template
-from . import sale_order
+from . import ir_actions_report
diff --git a/models/account_invoice.py b/models/account_invoice.py
deleted file mode 100755
index b23e588..0000000
--- a/models/account_invoice.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from odoo import models, _
-from odoo.exceptions import UserError
-from ..utils import MODULE_NAME
-
-
-class AccountInvoice(models.Model):
- _inherit = "account.move"
-
- @staticmethod
- def check_contract_presence(sale_order_ids):
- error_message = ""
- if any(not so.contract_annex_id.contract_id for so in sale_order_ids):
- error_message = _("There is a Sale order without binding contract.")
- if any(not so.contract_annex_id for so in sale_order_ids):
- error_message = _("There is a Sale order without annex.")
- if error_message:
- raise UserError(error_message)
-
- def action_invoice_print(self):
- """
- for so in self.env["sale.order"].search([]):
- if self.id in so.invoice_ids.ids:
- order = so
- break
- else:
- return super().action_invoice_print()
-
- if not order.contract_annex_id or not order.contract_annex_id.contract_id:
- raise UserError(
- _(
- "There is no binding contract. It is necessary to link the order with the annex to the contract."
- )
- )
- self.sent = True
- """
-
- sale_orders_ids = self.env["sale.order"].search(
- [("invoice_ids", "in", self.ids)]
- )
- if not sale_orders_ids:
- return super().action_invoice_print()
-
- self.check_contract_presence(sale_orders_ids)
- self.filtered(lambda inv: not inv.is_move_sent).write({"is_move_sent": True})
-
- view = self.env.ref(
- "{}.res_partner_wizard_print_document_view".format(MODULE_NAME)
- )
- # annex = order.contract_annex_id
- return {
- "name": _("Print Form of Contract Annex"),
- "type": "ir.actions.act_window",
- "res_model": "res.partner.contract.wizard",
- "view_mode": "form",
- "view_id": view.id,
- "target": "new",
- "context": {
- # "self_id": annex.id,
- "active_ids": self.ids,
- "active_model": "res.partner.contract.annex",
- # "company_form": annex.partner_id.company_form
- # if annex.partner_id.is_company
- # else "person",
- "attachment_model": self._name,
- "attachment_res_id": self.id,
- },
- }
diff --git a/models/ir_actions_report.py b/models/ir_actions_report.py
new file mode 100644
index 0000000..67a15f3
--- /dev/null
+++ b/models/ir_actions_report.py
@@ -0,0 +1,183 @@
+import io
+from collections import OrderedDict
+from jinja2 import Environment as Jinja2Environment
+from logging import getLogger
+
+from docxcompose.composer import Composer
+from docx import Document
+from docxtpl import DocxTemplate
+
+from odoo import _, api, fields, models, SUPERUSER_ID
+from odoo.exceptions import AccessError, UserError
+from odoo.sql_db import TestCursor
+from odoo.tools.safe_eval import safe_eval, time
+
+from ..utils.num2words import num2words_, num2words_currency
+
+_logger = getLogger(__name__)
+
+
+class IrActionsReport(models.Model):
+ _inherit = "ir.actions.actions"
+
+ report_name = fields.Char(required=False)
+ report_type = fields.Selection(
+ selection_add=[("docx-docx", "DOCX")], ondelete="cascade"
+ )
+ report_docx_template = fields.Binary(
+ string="Report docx template",
+ )
+
+ def _render_docx_docx(self, res_ids=None, data=None):
+ if not data:
+ data = {}
+ data.setdefault("report_type", "docx")
+
+ # access the report details with sudo() but evaluation context as current user
+ self_sudo = self.sudo()
+
+ save_in_attachment = OrderedDict()
+ # Maps the streams in `save_in_attachment` back to the records they came from
+ stream_record = dict()
+ if res_ids:
+ Model = self.env[self_sudo.model]
+ record_ids = Model.browse(res_ids)
+ docx_record_ids = Model
+ if self_sudo.attachment:
+ for record_id in record_ids:
+ attachment = self_sudo.retrieve_attachment(record_id)
+ if attachment:
+ stream = self_sudo._retrieve_stream_from_attachment(attachment)
+ save_in_attachment[record_id.id] = stream
+ stream_record[stream] = record_id
+ if not self_sudo.attachment_use or not attachment:
+ docx_record_ids += record_id
+ else:
+ docx_record_ids = record_ids
+ res_ids = docx_record_ids.ids
+
+ if save_in_attachment and not res_ids:
+ _logger.info("The DOCS report has been generated from attachments.")
+ return self_sudo._post_docx(save_in_attachment), "docx"
+
+ template = self.report_docx_template
+ template_path = template._full_path(template.store_fname)
+
+ doc = DocxTemplate(template_path)
+
+ jinja_env = Jinja2Environment()
+
+ functions = {
+ "number2words": num2words_,
+ "currency2words": num2words_currency,
+ }
+ jinja_env.globals.update(**functions)
+
+ doc.render(data, jinja_env)
+
+ docx_content = io.BytesIO()
+ doc.save(docx_content)
+ docx_content.seek(0)
+
+ if res_ids:
+ _logger.info(
+ "The DOCS report has been generated for model: %s, records %s."
+ % (self_sudo.model, str(res_ids))
+ )
+ return (
+ self_sudo._post_docx(
+ save_in_attachment, docx_content=docx_content, res_ids=res_ids
+ ),
+ "docx",
+ )
+ return docx_content, "docx"
+
+ def _post_docx(self, save_in_attachment, docx_content=None, res_ids=None):
+ def close_streams(streams):
+ for stream in streams:
+ try:
+ stream.close()
+ except Exception:
+ pass
+
+ if len(save_in_attachment) == 1 and not docx_content:
+ return list(save_in_attachment.values())[0].getvalue()
+
+ streams = []
+
+ if docx_content:
+ # Build a record_map mapping id -> record
+ record_map = {
+ r.id: r
+ for r in self.env[self.model].browse(
+ [res_id for res_id in res_ids if res_id]
+ )
+ }
+
+ # If no value in attachment or no record specified, only append the whole docx.
+ if not record_map or not self.attachment:
+ streams.append(docx_content)
+ else:
+ if len(res_ids) == 1:
+ # Only one record, so postprocess directly and append the whole docx.
+ if (
+ res_ids[0] in record_map
+ and not res_ids[0] in save_in_attachment
+ ):
+ new_stream = self._postprocess_docx_report(
+ record_map[res_ids[0]], docx_content
+ )
+ # If the buffer has been modified, mark the old buffer to be closed as well.
+ if new_stream and new_stream != docx_content:
+ close_streams([docx_content])
+ docx_content = new_stream
+ streams.append(docx_content)
+ else:
+ streams.append(docx_content)
+
+ if self.attachment_use:
+ for stream in save_in_attachment.values():
+ streams.append(stream)
+
+ if len(streams) == 1:
+ result = streams[0].getvalue()
+ else:
+ try:
+ result = self._merge_docx(streams)
+ except Exception:
+ raise UserError(_("One of the documents, you try to merge is fallback"))
+
+ close_streams(streams)
+ return result
+
+ def _postprocess_docx_report(self, record, buffer):
+ attachment_name = safe_eval(self.attachment, {"object": record, "time": time})
+ if not attachment_name:
+ return None
+ attachment_vals = {
+ "name": attachment_name,
+ "raw": buffer.getvalue(),
+ "res_model": self.model,
+ "res_id": record.id,
+ "type": "binary",
+ }
+ try:
+ self.env["ir.attachment"].create(attachment_vals)
+ except AccessError:
+ _logger.info(
+ "Cannot save DOCX report %r as attachment", attachment_vals["name"]
+ )
+ else:
+ _logger.info(
+ "The DOCX document %s is now saved in the database",
+ attachment_vals["name"],
+ )
+ return buffer
+
+ def _merge_docx(self, streams):
+ writer = Document()
+ composer = Composer(writer)
+ for stream in streams:
+ reader = Document(stream)
+ composer.append(reader)
+ return composer.getvalue()
diff --git a/models/product_product.py b/models/product_product.py
deleted file mode 100644
index 71a55ef..0000000
--- a/models/product_product.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from odoo import fields, models
-
-
-class ProductProduct(models.Model):
- _inherit = "product.product"
-
- description_sale = fields.Text(
- "Sale Description",
- translate=True,
- help="A product's description you want to tell to your customers.\n"
- "This description will be copied to every Sales Order, Delivery Order and Customer Invoice/Credit Note",
- )
diff --git a/models/res_partner.py b/models/res_partner.py
deleted file mode 100755
index 8f6025f..0000000
--- a/models/res_partner.py
+++ /dev/null
@@ -1,73 +0,0 @@
-from odoo import api, fields, models
-
-
-class ResPartner(models.Model):
- _inherit = "res.partner"
-
- name_write = fields.Char(
- string="Name in contracts",
- help="This name used in contracts",
- )
- name_genitive = fields.Char(
- string="Name Genitive",
- )
- name_initials = fields.Char(
- string="Name Initials",
- )
- function_genitive = fields.Char(
- string="Job position genitive",
- )
- client_contract_ids = fields.One2many(
- "res.partner.contract",
- "partner_id",
- string="Contracts",
- )
- contract_count = fields.Integer(
- compute="_compute_contract_count", string="# of contracts"
- )
- full_address = fields.Char(
- compute="_compute_full_address"
- ) # Check for res.partner.contact_address in base/res
- street_actual = fields.Many2one(
- "res.partner",
- string="Actual Address",
- )
- representative_id = fields.Many2one(
- "res.partner", string="Representative", help="Person representing company"
- )
- representative_document = fields.Char(
- string="Representative acts on the basis of",
- help="Parent Case",
- )
- signature = fields.Binary(string="Client signature")
- whatsapp = fields.Char(
- string="WhatsApp",
- help="If a contact have a WhatsApp number",
- )
- telegram = fields.Char(
- string="Telegram",
- help="If a contact have a Telegram number or identifier",
- )
-
- @api.depends("street", "street2", "city", "state_id", "zip", "country_id")
- def _compute_full_address(self):
- for record in self:
- address_data = filter(
- None,
- map(
- lambda s: s and s.strip(),
- [
- record.zip,
- record.street,
- record.street2,
- record.city,
- record.country_id.l10n_ru_short_name or record.country_id.name,
- ],
- ),
- )
- record.full_address = ", ".join(address_data)
-
- @api.depends("self.client_contract_ids")
- def _compute_contract_count(self):
- self.ensure_one()
- self.contract_count = len(self.client_contract_ids)
diff --git a/models/res_partner_contract.py b/models/res_partner_contract.py
deleted file mode 100755
index 6320247..0000000
--- a/models/res_partner_contract.py
+++ /dev/null
@@ -1,157 +0,0 @@
-import datetime
-
-from odoo import _, fields, models
-
-from ..utils import MODULE_NAME
-
-# from ..utils.misc import Extension, IDocument
-
-
-class PartnerContract(models.Model): # , IDocument, Extension):
- _name = "res.partner.contract"
- _description = "Contract"
- _inherit = [
- "mail.thread",
- "mail.activity.mixin",
- "mail.followers",
- "client_contracts.utils",
- ]
-
- def _get_default_name(self):
- """Returns name format `№YYMM-D-N`,
- where N is a sequence number of contracts which are created this day
- """
- current_day_ts = (
- datetime.datetime.now()
- .replace(minute=0, hour=0, second=0, microsecond=0)
- .timestamp()
- )
-
- contracts_today = self.search([("create_date_ts", ">=", current_day_ts)])
-
- contract_date = "{format_date}-{number}".format(
- format_date=datetime.date.strftime(datetime.date.today(), "%y%m-%d"),
- number=len(contracts_today) + 1,
- )
-
- return contract_date
-
- @staticmethod
- def _get_default_create_date_ts():
- """Returns timestamp of now by local datetime"""
- return datetime.datetime.now().timestamp()
-
- partner_id = fields.Many2one(
- "res.partner",
- string="Partner",
- default=lambda self: self.env.context.get("active_id"),
- required=True,
- )
- company_id = fields.Many2one(
- "res.company",
- string="Company",
- default=lambda self: self.env.company,
- )
- create_date_ts = fields.Char(default=_get_default_create_date_ts)
- res_model = fields.Char(default=lambda self: self._name)
- name = fields.Char(
- string="Contract number",
- default=_get_default_name,
- )
- create_date = fields.Datetime(string="Created on")
- date_conclusion = fields.Date(
- string="Signing date in system",
- )
- date_conclusion_fix = fields.Date(
- string="Actual signing date",
- help="Field for pointing out manually when contract is signed or closed",
- default=lambda self: self.date_conclusion,
- )
- contract_annex_ids = fields.One2many(
- comodel_name="res.partner.contract.annex",
- inverse_name="contract_id",
- string="Annexes",
- help="Annexes to this contract",
- )
- contract_annex_number = fields.Integer(
- default=1, help="Counter for generate Annex name"
- )
- state = fields.Selection(
- [
- ("draft", "New"),
- ("sign", "Signed"),
- ("close", "Closed"),
- ],
- string="Status",
- readonly=True,
- copy=False,
- index=True,
- tracking=True,
- track_sequence=3,
- default="draft",
- )
-
- def action_sign(self):
- self.write({"state": "sign", "date_conclusion": fields.Date.today()})
-
- def action_close(self):
- self.write({"state": "close"})
-
- def action_renew(self):
- self.write({"state": "draft"})
-
- def action_print_form(self):
- self.ensure_one()
- view = self.env.ref(
- "{}.res_partner_wizard_print_document_view".format(MODULE_NAME)
- )
- return {
- "name": _("Print Form of Contract"),
- "type": "ir.actions.act_window",
- "res_model": "res.partner.contract.wizard",
- "view_mode": "form",
- "view_id": view.id,
- "target": "new",
- "context": {
- "self_id": self.id,
- "active_model": self._name,
- "company_form": self.partner_id.company_form
- if self.partner_id.is_company
- else "person",
- },
- }
-
- def get_name_by_document_template(self, document_template_id):
- self.ensure_one()
- return self.name
-
- def get_filename_by_document_template(self, document_template_id):
- self.ensure_one()
- return _("{type} {number} from {date}").format(
- type=_(
- dict(document_template_id._fields["document_type"].selection).get(
- document_template_id.document_type
- )
- ),
- number=self.name,
- date=self.get_date().strftime("%d.%m.%Y"),
- )
-
- def get_date(self):
- """Uses in xml action (data/fields_default)
-
- Returns:
- datetime.datetime -- date_conclusion_fix or date_conclusion or create_date
- """
- self.ensure_one()
- date = self.date_conclusion_fix or self.date_conclusion
- return date or self.create_date
-
- @staticmethod
- def _(arg):
- """Uses in xml action (data/fields_default)
-
- Arguments:
- arg {str} -- String to translate
- """
- return _(arg)
diff --git a/models/res_partner_contract_annex.py b/models/res_partner_contract_annex.py
deleted file mode 100755
index 84c4a45..0000000
--- a/models/res_partner_contract_annex.py
+++ /dev/null
@@ -1,236 +0,0 @@
-import math
-import logging
-
-from odoo import _, api, fields, models
-
-from ..utils import MODULE_NAME
-
-# from ..utils.misc import Extension, IDocument
-_logger = logging.getLogger(__name__)
-
-
-class ContractOrderAnnex(models.Model): # , IDocument, Extension):
- _name = "res.partner.contract.annex"
- _inherit = ["client_contracts.utils"]
- _description = "Contract Annex"
-
- name = fields.Char(
- string="Name",
- )
- display_name = fields.Char(
- compute="_compute_display_name",
- )
- specification_name = fields.Char(
- compute="_compute_specification_name",
- )
-
- contract_id = fields.Many2one(
- "res.partner.contract",
- string="Contract",
- readonly=True,
- )
- company_id = fields.Many2one(
- comodel_name="res.company",
- related="contract_id.company_id",
- )
- partner_id = fields.Many2one(
- comodel_name="res.partner",
- related="contract_id.partner_id",
- )
- order_id = fields.Many2one(
- comodel_name="sale.order",
- string="Sale order",
- help="Sale order for this annex.",
- required=True,
- )
- date_conclusion = fields.Date(
- string="Signing Date",
- default=fields.Date.today(),
- )
- counter = fields.Integer(
- string="№",
- help="Contract Annexes counter",
- )
- currency_id = fields.Many2one(
- comodel_name="res.currency",
- string="Currency",
- default=lambda self: self.env.company.currency_id.id,
- )
-
- design_period = fields.Integer(
- string="Design Period",
- )
- design_cost = fields.Monetary(
- string="Design Cost",
- currency_field="currency_id",
- )
-
- design_doc_period = fields.Integer(
- string="Documentation Design Period (days)",
- )
- design_doc_cost = fields.Monetary(
- string="Documentation Design Cost",
- currency_field="currency_id",
- )
-
- delivery_address = fields.Char(
- string="Delivery Address",
- )
- delivery_period = fields.Integer(string="Delivery Period (days)")
-
- installation_address = fields.Char(
- string="Installation Address",
- )
- installation_period = fields.Integer(
- string="Installation Period (days)",
- )
- installation_cost = fields.Integer(
- string="Installation Cost",
- )
-
- total_cost = fields.Monetary(
- string="Total Cost",
- currency_field="currency_id",
- )
-
- payment_part_one = fields.Float(
- string="Payment 1 Part (%)",
- default=100,
- digits="Account",
- )
- payment_part_two = fields.Float(
- string="Payment 2 Part (%)",
- digits="Account",
- )
- payment_part_three = fields.Float(
- string="Payment 3 Part (%)",
- digits="Account",
- )
-
- @api.depends("name")
- def _compute_display_name(self):
- for record in self:
- record.display_name = "№{} {}".format(
- record.counter or record.contract_id.contract_annex_number, record.name
- )
-
- @api.depends("contract_id", "order_id")
- def _compute_specification_name(self):
- self.specification_name = _("{name} from {date}").format(
- name="{}-{}".format(self.contract_id.name, self.order_id.name),
- date=self.contract_id.get_date().strftime("%d.%m.%Y"),
- )
-
- @api.onchange("order_id")
- def _domain_order_id(self):
- """Using domain function because of
- simple domain does not working properly because of
- contract_id is still False"""
- return {
- "domain": {
- "order_id": [
- ("partner_id", "=", self.contract_id.partner_id.id),
- ("contract_annex_id", "=", False),
- ]
- }
- }
-
- @api.onchange("order_id")
- def _onchange_order_id(self):
- contract_number = self.contract_id.name
- order_number = self.order_id.name or "SO###"
-
- self.name = "{contract}-{order}".format(
- contract=contract_number,
- order=order_number,
- )
-
- def create(self, values_list):
- _logger.debug("\n\n Values: %s\n\n", values_list)
- if isinstance(values_list, dict):
- values_list = [values_list]
- _logger.debug("\n\n Values fixed: %s\n\n", values_list)
- records = super(ContractOrderAnnex, self).create(values_list)
- for record in records:
- # Fill annex_id to domain it in future
- # record.order_id.contract_annex_id = record.id
- # Counter
- record.counter = record.contract_id.contract_annex_number
- record.contract_id.contract_annex_number += (
- 1 # TODO: should I use a sequence?
- )
- return records
-
- def action_print_form(self):
- view = self.env.ref(
- "{}.res_partner_wizard_print_document_view".format(MODULE_NAME)
- )
- return {
- "name": _("Print Form of Contract Annex"),
- "type": "ir.actions.act_window",
- "res_model": "res.partner.contract.wizard",
- "view_mode": "form",
- "view_id": view.id,
- "target": "new",
- "context": {
- "self_id": self.id,
- "active_model": self._name,
- "company_form": self.partner_id.company_form
- if self.partner_id.is_company
- else "person",
- },
- }
-
- def get_name_by_document_template(self, document_template_id):
- active_invoices = self.order_id.invoice_ids.filtered(
- lambda r: r.state not in ("draft", "cancel")
- )
- bill_name = active_invoices and active_invoices[-1].number
-
- return (
- {
- "bill": "{bill_name}",
- "specification": "{counter} {name}",
- "approval_list": "{counter}.1 {name}-1",
- "act_at": "{counter}.2 {name}-2",
- "act_ad": "{counter}.3 {name}-3",
- }
- .get(document_template_id.document_type_name, "Unknown")
- .format(
- counter=self.counter,
- name=self.name,
- bill_name=(bill_name or "Счёт отсутствует"),
- )
- )
-
- def get_filename_by_document_template(self, document_template_id):
- return "{type} №{name}".format(
- type=_(
- dict(document_template_id._fields["document_type"].selection).get(
- document_template_id.document_type
- )
- ),
- name={
- "bill": "{counter} {type} {name}",
- "specification": "{counter} {type} {name}",
- "approval_list": "{counter}.1 {type} {name}-1",
- "act_at": "{counter}.2 {type} {name}-2",
- "act_ad": "{counter}.3 {type} {name}-3",
- }
- .get(document_template_id.document_type_name, "Unknown")
- .format(
- counter=self.counter,
- type=_(
- dict(
- document_template_id._fields["document_type_name"].selection
- ).get(document_template_id.document_type_name)
- ),
- name=self.name,
- ),
- )
-
- def modf(self, arg):
- """Math.modf function for using in XML ir.action.server code
- Uses in data/fields_default.xml
- """
- return math.modf(arg)
diff --git a/models/res_partner_contract_field.py b/models/res_partner_contract_field.py
deleted file mode 100755
index 0d8f3e3..0000000
--- a/models/res_partner_contract_field.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from odoo import fields, models
-
-
-class ContractField(models.Model):
- _name = "res.partner.contract.field"
- _description = "Contract Field"
- _order = "sequence"
-
- name = fields.Char(
- string="Name",
- required=True,
- translate=True,
- )
- technical_name = fields.Char(
- string="Technical Name",
- help="Name for using in templates",
- required=True,
- )
- description = fields.Char(
- string="Description",
- help="Description for this field to be showed in fields list in print form creation wizard.",
- translate=True,
- default="",
- )
- sequence = fields.Integer(
- string="Sequence",
- )
- visible = fields.Boolean(
- string="Visible",
- help="To show this field in fields list in print form creation wizard\n"
- "User can change showed field's values in wizard.",
- default=True,
- )
diff --git a/models/res_partner_contract_field_transient.py b/models/res_partner_contract_field_transient.py
deleted file mode 100755
index efbff8e..0000000
--- a/models/res_partner_contract_field_transient.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from odoo import fields, models
-
-
-class ContractFieldTransient(models.TransientModel):
- _name = "res.partner.contract.field.transient"
- _description = "Contract Field Transient"
-
- _contract_wizard_id = fields.Many2one(
- "res.partner.contract.wizard",
- string="Contract",
- readonly=True,
- )
- contract_field_id = fields.Many2one(
- "res.partner.contract.field",
- string="Field",
- )
- name = fields.Char(
- related="contract_field_id.name",
- string="Name",
- readonly=True,
- )
- technical_name = fields.Char(
- related="contract_field_id.technical_name",
- string="Technical Name",
- readonly=True,
- )
- description = fields.Char(
- related="contract_field_id.description",
- string="Description",
- readonly=True,
- )
- visible = fields.Boolean(
- related="contract_field_id.visible",
- )
- value = fields.Char(
- string="Value",
- default="",
- )
diff --git a/models/res_partner_document_template.py b/models/res_partner_document_template.py
deleted file mode 100755
index f488b0c..0000000
--- a/models/res_partner_document_template.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from odoo import _, fields, models
-
-
-class DocumentTemplate(models.Model):
- _name = "res.partner.document.template"
- _description = "Document Template"
- _order = "template_type desc,company_type,sequence"
-
- name = fields.Char()
- attachment_id = fields.Many2one(
- "ir.attachment",
- string="Template Attachment",
- ondelete="cascade",
- required=True,
- )
- document_type = fields.Selection(
- string="Type of document",
- selection=[
- ("contract", _("Contract")),
- ("annex", _("Annex")),
- ("addition", _("Addition")),
- ("offer", _("Offer")),
- ],
- )
- document_type_name = fields.Selection(
- string="Document",
- selection=[
- ("offer", _("Offer")),
- ("bill", _("Bill")),
- ("specification", _("Specification")),
- ("approval_list", _("Approval List")),
- ("act_at", _("Act of Acceptance and Transfer")),
- ("act_ad", _("Act of Acceptance and Delivery")),
- ],
- )
- company_type = fields.Selection(
- selection=[
- ("person", "Individual"),
- ("sp", "Sole Proprietor"),
- ("plc", "Private Limited Company"),
- ]
- )
- template_type = fields.Selection(
- selection=[
- ("contract", "Contract"),
- ("annex", "Annex"),
- ("offer", _("Offer")),
- ]
- )
- sequence = fields.Integer()
diff --git a/models/sale_order.py b/models/sale_order.py
deleted file mode 100755
index c6c6c27..0000000
--- a/models/sale_order.py
+++ /dev/null
@@ -1,95 +0,0 @@
-from odoo import api, fields, models, _
-
-from ..utils import MODULE_NAME
-
-
-class SaleOrder(models.Model):
- _inherit = "sale.order"
-
- # TODO: exists original field "commitment_date".
- delivery_time = fields.Integer(
- string="Delivery Time",
- default=45,
- )
- contract_annex_id = fields.Many2one(
- comodel_name="res.partner.contract.annex",
- string="Contract Annex",
- compute="get_contract_annex_id",
- )
- contract_annex_ids = fields.One2many(
- comodel_name="res.partner.contract.annex",
- inverse_name="order_id",
- string="Annex for this Sale order",
- help="Technical field for binding with contract annex\n"
- "In form this link showed in 'contract_annex_id' field.",
- )
-
- # Extend default field for showing payment terms created by this module only.
- payment_term_id = fields.Many2one(
- comodel_name="account.payment.term",
- domain=lambda self: [("id", "in", self._get_payment_terms())],
- )
-
- def _get_payment_terms(self):
- terms = [
- self.env.ref("{}.{}".format(MODULE_NAME, external_id)).id
- for external_id in (
- "payment_term_prepaid",
- "payment_term_postpayment",
- "payment_term_partial_2",
- "payment_term_partial_3",
- )
- ]
- return terms
-
- @api.onchange("contract_annex_ids")
- def get_contract_annex_id(self):
- if self.contract_annex_ids:
- self.contract_annex_id = self.contract_annex_ids[0].id
- else:
- self.contract_annex_id = False
-
- def action_print_form(self):
- self.ensure_one()
- view = self.env.ref(
- "{}.res_partner_wizard_print_document_view".format(MODULE_NAME)
- )
- return {
- "name": _("Print Form of Contract"),
- "type": "ir.actions.act_window",
- "res_model": "res.partner.contract.wizard",
- "view_mode": "form",
- "view_id": view.id,
- "target": "new",
- "context": {
- "self_id": self.id,
- "active_model": self._name,
- "company_form": self.partner_id.company_form
- if self.partner_id.is_company
- else "person",
- "attachment_model": "sale.order",
- },
- }
-
- def get_filename_by_document_template(self, document_template_id):
- self.ensure_one()
- return "{doc_type} {number} {from_} {date}".format(
- doc_type=_("Offer"),
- number=self.name,
- from_=_("from"),
- date=self.date_order.strftime("%d.%m.%Y"),
- )
-
- @staticmethod
- def _t(arg):
- """Uses in xml action (data/fields_default)
- Arguments:
- arg {str} -- String to translate
- """
- return _(arg)
-
- @staticmethod
- def to_fixed(number, digit=2):
- if isinstance(number, str) and number.isdigit():
- number = float(number)
- return f"{number:.{digit}f}"
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
deleted file mode 100755
index 9ff1cd8..0000000
--- a/security/ir.model.access.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
-
-access_contracts_contracts,access_contracts_contracts,model_res_partner_contract,base.group_user,1,1,1,1
-
-access_contracts_field,access_contracts_field,model_res_partner_contract_field,base.group_user,1,0,0,0
-access_contracts_field_manager,access_contracts_field,model_res_partner_contract_field,base.group_no_one,1,1,1,1
-
-access_contracts_field_transient,access_contracts_field_transient,model_res_partner_contract_field_transient,base.group_user,1,1,1,1
-access_contracts_field_contract_annex,access_contracts_field_contract_annex,model_res_partner_contract_annex,base.group_user,1,1,1,1
-access_contract_document_template,access_contract_document_template,model_res_partner_document_template,base.group_user,1,0,0,0
-access_contract_document_template_manager,access_contract_document_template,model_res_partner_document_template,base.group_no_one,1,1,1,1
-access_contracts_wizard,access_contracts_wizard,model_res_partner_contract_wizard,base.group_user,1,1,1,1
diff --git a/utils/__init__.py b/utils/__init__.py
index 73af1c3..6d0f55e 100755
--- a/utils/__init__.py
+++ b/utils/__init__.py
@@ -1,3 +1 @@
-from . import misc
-
MODULE_NAME = __package__.split(".")[-2]
diff --git a/utils/docxtpl.py b/utils/docxtpl.py
deleted file mode 100755
index 9971000..0000000
--- a/utils/docxtpl.py
+++ /dev/null
@@ -1,26 +0,0 @@
-import io
-
-from docxtpl import DocxTemplate
-from jinja2 import Environment as Jinja2Environment
-
-from .num2words import num2words_, num2words_currency
-
-
-def get_document_from_values_stream(path_to_template: str, vals: dict):
- doc = DocxTemplate(path_to_template)
-
- jinja_env = Jinja2Environment()
-
- functions = {
- "number2words": num2words_,
- "currency2words": num2words_currency,
- }
- jinja_env.globals.update(**functions)
-
- doc.render(vals, jinja_env)
-
- file_stream = io.BytesIO()
- doc.save(file_stream)
- file_stream.seek(0)
-
- return file_stream
diff --git a/utils/misc.py b/utils/misc.py
deleted file mode 100755
index 813fca3..0000000
--- a/utils/misc.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from odoo import models
-
-
-class Utils(models.AbstractModel):
- _name = "client_contracts.utils"
-
- @staticmethod
- def to_fixed(number, digit=2):
- if isinstance(number, str) and number.isdigit():
- number = float(number)
- return f"{number:.{digit}f}"
diff --git a/views/ir_actions_report_views.xml b/views/ir_actions_report_views.xml
new file mode 100755
index 0000000..1b81cfe
--- /dev/null
+++ b/views/ir_actions_report_views.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ ir.actions.report.inherit.view.form
+ ir.actions.report
+
+
+
+ {'required': [('report_type', 'not in', ['docx-docx'])]}
+
+
+
+
+
+
+
+
diff --git a/views/res_partner.xml b/views/res_partner.xml
deleted file mode 100755
index c8613ec..0000000
--- a/views/res_partner.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
- Contract Fields
- ir.actions.act_window
- res.partner.contract.field
- tree,form
-
-
-
-
- Document Templates
- ir.actions.act_window
- res.partner.document.template
- tree,form
-
-
-
- res.partner.contract.info
- res.partner
-
-
-
-
-
- Name in ERP
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- res.partner.contract.view.buttons
- res.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/views/res_partner_contract.xml b/views/res_partner_contract.xml
deleted file mode 100755
index 6e2c40d..0000000
--- a/views/res_partner_contract.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
- Contracts
- res.partner.contract
-
-
-
-
-
-
-
-
-
-
-
-
- Contract Form
- res.partner.contract
-
-
-
-
-
-
-
-
- res.partner.contract.inherit.view.form
- res.partner.contract
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- res_partner_contract_search
- res.partner.contract
-
-
-
-
-
-
-
-
- Contracts
- res.partner.contract
- tree,form
- {}
-
-
-
- Contracts
- res.partner.contract
- tree,form
- {'search_default_partner_id': active_id}
-
-
-
diff --git a/views/res_partner_contract_annex.xml b/views/res_partner_contract_annex.xml
deleted file mode 100755
index 9157dcb..0000000
--- a/views/res_partner_contract_annex.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
- res.partner.contract.annex.view.form
- res.partner.contract.annex
-
-
-
-
-
-
-
-
-
diff --git a/views/res_partner_contract_field.xml b/views/res_partner_contract_field.xml
deleted file mode 100755
index ab4059b..0000000
--- a/views/res_partner_contract_field.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
- res.partner.contract.field.view.tree
- res.partner.contract.field
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/views/res_partner_document_template.xml b/views/res_partner_document_template.xml
deleted file mode 100755
index 0658f0f..0000000
--- a/views/res_partner_document_template.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- res.partner.document.template.view.tree
- res.partner.document.template
-
-
-
-
-
-
-
-
-
-
diff --git a/views/sale_order.xml b/views/sale_order.xml
deleted file mode 100755
index 561c9fe..0000000
--- a/views/sale_order.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- sale.order.inherit.view.form
- sale.order
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/wizard/__init__.py b/wizard/__init__.py
deleted file mode 100755
index 8d7b1b4..0000000
--- a/wizard/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from . import res_partner_contract_wizard
diff --git a/wizard/res_partner_contract_wizard.py b/wizard/res_partner_contract_wizard.py
deleted file mode 100755
index 13bd372..0000000
--- a/wizard/res_partner_contract_wizard.py
+++ /dev/null
@@ -1,369 +0,0 @@
-import base64
-import logging
-
-from odoo import api, fields, models, _
-from odoo.exceptions import ValidationError, UserError
-
-from ..utils import MODULE_NAME
-from ..utils.docxtpl import get_document_from_values_stream
-
-_logger = logging.getLogger(__name__)
-
-
-class ContractWizard(models.TransientModel):
- _name = "res.partner.contract.wizard"
- _inherit = ["client_contracts.utils"]
-
- def _default_target(self):
- return "{model},{target_id}".format(
- model=self.env.context.get("active_model"),
- target_id=int(self.env.context.get("self_id")),
- )
-
- def _default_document_template(self):
- return self.env["res.partner.document.template"].search(
- self._get_template_domain(), limit=1
- )
-
- def _get_template_domain(self):
- template_type = {
- "res.partner.contract": "contract",
- "res.partner.contract.annex": "annex",
- "sale.order": "offer",
- }.get(self.active_model, False)
- company_type = self.env.context.get("company_form", False)
- document_template_domain = [
- ("template_type", "=", template_type),
- ("company_type", "=", company_type),
- ]
- return document_template_domain
-
- target = fields.Reference(
- selection=[
- ("res.partner.contract", "Contract"),
- ("res.partner.contract.annex", "Contract Annex"),
- ("sale.order", "Offer"),
- ],
- string="Target",
- default=_default_target,
- help="Record of contract or annex entity, from where wizard has been called",
- )
- company_id = fields.Many2one(
- comodel_name="res.partner",
- string="Company",
- compute="_compute_company_id",
- )
- partner_id = fields.Many2one(
- comodel_name="res.partner",
- string="Partner",
- compute="_compute_partner_id",
- )
- document_name = fields.Char(
- string="Document Name", compute="_compute_document_name"
- )
- document_template = fields.Many2one(
- comodel_name="res.partner.document.template",
- string="Document Template",
- default=_default_document_template,
- domain=lambda self: self._get_template_domain(),
- readonly=False,
- )
- transient_field_ids = fields.One2many(
- comodel_name="res.partner.contract.field.transient",
- inverse_name="_contract_wizard_id",
- string="Contract Fields",
- )
- transient_field_ids_hidden = fields.One2many(
- comodel_name="res.partner.contract.field.transient",
- inverse_name="_contract_wizard_id",
- )
-
- @api.depends("target")
- def _compute_company_id(self):
- if self.target and self.target.company_id:
- self.company_id = self.target.company_id.id
- else:
- self.company_id = self.env.company.id
-
- @api.depends("target")
- def _compute_partner_id(self):
- if self.target:
- self.partner_id = self.target.partner_id
-
- @api.depends("document_template", "target")
- def _compute_document_name(self):
- self.document_name = self.target.get_name_by_document_template(
- self.document_template
- )
-
- @api.constrains("document_template")
- def _check_document_template(self):
- if not self.document_template:
- raise ValidationError("You did not set up the template...")
-
- @api.onchange("document_template")
- def _domain_document_template(self):
- return {
- "domain": {
- "document_template": self._get_template_domain(),
- }
- }
-
- @api.onchange("document_template")
- def _onchange_document_template(self):
- """Creates transient fields for generate contract template
- Looks as a tree view of *_contract_field_transient model in xml
- """
-
- def get_contract_field_data(field_name, field_value):
- rec = self.env["res.partner.contract.field"].search(
- [("technical_name", "=", field_name)]
- )
- if not rec:
- raise UserError(
- _(
- 'Field "%s" specified in template, not found in model "res.partner.contract.field"'
- )
- % field_name
- )
- return {
- "contract_field_id": rec.id,
- "visible": rec.visible,
- "value": field_value,
- }
-
- model_to_action = {
- "res.partner.contract": "action_get_contract_context",
- "res.partner.contract.annex": "action_get_annex_context",
- "sale.order": "action_get_so_context",
- }
- action_external_id = "{}.{}".format(
- MODULE_NAME, model_to_action[self.active_model]
- )
- action_rec = self.env.ref(action_external_id)
- action_rec.model_id = (
- self.env["ir.model"].search([("model", "=", self.active_model)]).id
- )
-
- # Get dictionary for `transient_fields_ids` with editable fields
- # With data from Odoo database
- contract_context_values = action_rec.with_context(
- {"onchange_self": self.target}
- ).run()
-
- transient_fields_data = [
- get_contract_field_data(field_name, field_value)
- for field_name, field_value in contract_context_values.items()
- ]
- transient_fields_hidden_data = list(
- filter(lambda item: not item["visible"], transient_fields_data)
- )
- transient_fields_data = list(
- filter(lambda item: item["visible"], transient_fields_data)
- )
-
- self.transient_field_ids = [
- (
- 6,
- False,
- self.env["res.partner.contract.field.transient"]
- .create(transient_fields_data)
- .ids,
- )
- ]
- self.transient_field_ids_hidden = [
- (
- 6,
- False,
- self.env["res.partner.contract.field.transient"]
- .create(transient_fields_hidden_data)
- .ids,
- )
- ]
-
- # Other
- def get_docx_contract(self):
- template = self.document_template.attachment_id
- template_path = template._full_path(template.store_fname)
-
- payload = self.payload()
- binary_data = get_document_from_values_stream(template_path, payload).read()
- encoded_data = base64.b64encode(binary_data)
-
- get_fn = self.target.get_filename_by_document_template
- attachment_name = "{}.docx".format(get_fn(self.document_template or "Unknown"))
-
- document_as_attachment = (
- self.env["ir.attachment"]
- .sudo()
- .create(
- {
- "name": attachment_name,
- "store_fname": attachment_name,
- "type": "binary",
- "datas": encoded_data,
- }
- )
- )
- return self.afterload(document_as_attachment)
-
- def get_so_lines(self):
- """
- Generates lines for printing from Sale order lines, including folding groups
- ended with text "--fold".
- :return: 2 values: lines data with folded groups and total amount of SO.
- """
-
- def number_generator(n=1):
- while True:
- yield n
- n += 1
-
- sale_order_rec = (
- self.target if self.target._name == "sale.order" else self.target.order_id
- )
- counter = number_generator()
- lines_data = []
- folded_group = False
- group_description = ""
- group_amount = 0.0
-
- for item in sale_order_rec.order_line:
- # Folded group ends #
- if item.display_type == "line_section" and folded_group:
- folded_group = False
- lines_data.append(
- {
- "number": next(counter),
- "vendor_code": "",
- "label": group_description,
- "count": 1.0,
- "unit": self.env.ref("uom.product_uom_unit").name,
- "cost_wo_vat": self.to_fixed(group_amount),
- "subtotal": self.to_fixed(group_amount),
- "display_type": False,
- }
- )
- # Folded group starts #
- if item.display_type == "line_section" and item.name.find("--fold") >= 0:
- folded_group = True
- group_amount = 0.0
- index_for_cut = item.name.find("--fold")
- group_description = item.name[:index_for_cut].strip()
- # Regular, unfolded group or comment or regular line with product #
- if (
- item.display_type == "line_note"
- or item.display_type == "line_section"
- and item.name.find("--fold") == -1
- or not item.display_type
- ) and not folded_group:
- lines_data.append(
- {
- "number": next(counter) if not item.display_type else "",
- "vendor_code": item.product_id.default_code
- if (item.product_id and item.product_id.default_code)
- else "",
- "label": item.product_id.display_name
- if item.product_id
- else "",
- "description": item.name,
- "count": item.product_uom_qty,
- "unit": item.product_uom.name if item.product_uom else "",
- "cost": self.to_fixed(item.price_unit),
- "cost_wo_vat": self.to_fixed(item.price_reduce_taxexcl),
- "discount": item.discount,
- "subtotal": self.to_fixed(item.price_subtotal),
- "display_type": item.display_type,
- }
- )
- # Line with product or comment inside folded group #
- if folded_group and not item.display_type:
- group_amount += item.price_subtotal
- # Last folded group handling #
- if folded_group and group_description:
- lines_data.append(
- {
- "number": next(counter),
- "vendor_code": "",
- "label": group_description,
- "count": 1.0,
- "unit": self.env.ref("uom.product_uom_unit").name,
- "cost_wo_vat": self.to_fixed(group_amount),
- "subtotal": self.to_fixed(group_amount),
- "display_type": False,
- }
- )
- return lines_data, sale_order_rec.amount_total
-
- def payload(self):
- # Collect fields into a key-value structure
- fields = {
- transient_field.technical_name: transient_field.value
- for transient_field in (
- self.transient_field_ids + self.transient_field_ids_hidden
- )
- }
- # Extend with special case
- if self.target._name == "res.partner.contract.annex":
- fields.update(
- {
- "annex_name": self.document_name,
- "specification_name": self.target.specification_name,
- }
- )
- # Extend with order product lines
- if (
- self.target._name == "sale.order"
- or hasattr(self.target, "order_id")
- and self.target.order_id.order_line
- ):
- so_lines, total_amount = self.get_so_lines()
- fields.update(
- {
- "products": so_lines,
- "total_amount": total_amount,
- "products_amount": len(
- list(filter(lambda rec: not rec["display_type"], so_lines))
- ),
- }
- )
- return self.middleware_fields(fields)
-
- def afterload(self, result):
- res_id = self.target.id
- if hasattr(self.target, "contract_id"):
- res_id = self.target.contract_id.id
- target_model = (
- self.target._name
- if self.target._name
- not in ("res.partner.contract", "res.partner.contract.annex")
- else "res.partner.contract"
- )
- self.env["mail.message"].create(
- {
- "model": self.env.context.get("attachment_model") or target_model,
- "res_id": self.env.context.get("attachment_res_id", res_id),
- "message_type": "comment",
- "attachment_ids": [(4, result.id, False)],
- }
- )
- return result
-
- @staticmethod
- def middleware_fields(kv):
- """
- Removes items without values from dictionary.
- :kv: dict.
- """
- # Debug False values
- empty = []
- for k, v in list(kv.items()):
- if not v:
- empty.append(k)
- kv.pop(k)
- _logger.debug("Empty fields: {}".format(empty))
- return kv
-
- @property
- def active_model(self):
- return self.env.context.get("active_model")
diff --git a/wizard/res_partner_contract_wizard.xml b/wizard/res_partner_contract_wizard.xml
deleted file mode 100755
index 2890da8..0000000
--- a/wizard/res_partner_contract_wizard.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- Generate Document
- res.partner.contract.wizard
-
-
-
-
-
-
-
diff --git a/Шаблон_КП.docx b/Шаблон_КП.docx
deleted file mode 100644
index 030a0bb..0000000
Binary files a/Шаблон_КП.docx and /dev/null differ