From da2c25fca3e5a58305854ca0e64251a70d9757cc Mon Sep 17 00:00:00 2001 From: Sergey Korobkov Date: Tue, 18 Feb 2025 13:08:42 +0300 Subject: [PATCH] dr_catalog_pricelist release --- dr_catalog_pricelist/.DS_Store | Bin 0 -> 6148 bytes dr_catalog_pricelist/__init__.py | 1 + dr_catalog_pricelist/__manifest__.py | 24 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 224 bytes .../i18n/dr_catalog_pricelist.pot | 332 +++++++++++++++++ dr_catalog_pricelist/i18n/ru.po | 343 ++++++++++++++++++ dr_catalog_pricelist/report/.DS_Store | Bin 0 -> 6148 bytes dr_catalog_pricelist/report/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 229 bytes .../catalog_report_parser.cpython-310.pyc | Bin 0 -> 2808 bytes .../report/catalog_report_parser.py | 81 +++++ .../report/catalog_report_view.xml | 175 +++++++++ .../report/report_registration.xml | 28 ++ .../security/ir.model.access.csv | 2 + dr_catalog_pricelist/static/.DS_Store | Bin 0 -> 6148 bytes .../static/description/icon.png | Bin 0 -> 16534 bytes .../static/description/no_img.png | Bin 0 -> 6078 bytes dr_catalog_pricelist/wizard/.DS_Store | Bin 0 -> 6148 bytes dr_catalog_pricelist/wizard/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 232 bytes .../catalog_pricelist_wizard.cpython-310.pyc | Bin 0 -> 3070 bytes .../wizard/catalog_pricelist_wizard.py | 67 ++++ .../wizard/catalog_pricelist_wizard_view.xml | 65 ++++ 23 files changed, 1120 insertions(+) create mode 100644 dr_catalog_pricelist/.DS_Store create mode 100644 dr_catalog_pricelist/__init__.py create mode 100644 dr_catalog_pricelist/__manifest__.py create mode 100644 dr_catalog_pricelist/__pycache__/__init__.cpython-310.pyc create mode 100644 dr_catalog_pricelist/i18n/dr_catalog_pricelist.pot create mode 100644 dr_catalog_pricelist/i18n/ru.po create mode 100644 dr_catalog_pricelist/report/.DS_Store create mode 100644 dr_catalog_pricelist/report/__init__.py create mode 100644 dr_catalog_pricelist/report/__pycache__/__init__.cpython-310.pyc create mode 100644 dr_catalog_pricelist/report/__pycache__/catalog_report_parser.cpython-310.pyc create mode 100644 dr_catalog_pricelist/report/catalog_report_parser.py create mode 100644 dr_catalog_pricelist/report/catalog_report_view.xml create mode 100644 dr_catalog_pricelist/report/report_registration.xml create mode 100644 dr_catalog_pricelist/security/ir.model.access.csv create mode 100644 dr_catalog_pricelist/static/.DS_Store create mode 100644 dr_catalog_pricelist/static/description/icon.png create mode 100644 dr_catalog_pricelist/static/description/no_img.png create mode 100644 dr_catalog_pricelist/wizard/.DS_Store create mode 100644 dr_catalog_pricelist/wizard/__init__.py create mode 100644 dr_catalog_pricelist/wizard/__pycache__/__init__.cpython-310.pyc create mode 100644 dr_catalog_pricelist/wizard/__pycache__/catalog_pricelist_wizard.cpython-310.pyc create mode 100644 dr_catalog_pricelist/wizard/catalog_pricelist_wizard.py create mode 100644 dr_catalog_pricelist/wizard/catalog_pricelist_wizard_view.xml diff --git a/dr_catalog_pricelist/.DS_Store b/dr_catalog_pricelist/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e6d2860fbbc6e818ac65b7f18f6dcbfa1288c72d GIT binary patch literal 6148 zcmeHKyH3ME5S#@IMM{&B@_r#5yT7JzKt+cmHPu%Ig9qGl=@SDnaJcp9SUKibpo@Z5EWN#?vmYa8sb#vNXV^*1=; z1#jqx=W*bKGoGk>?8bo)x;_~?q8$e2ch5*NkPIXP$v`sj{}^D;R#_|^(*R3S vYYX*}`Yp`0bQ){LL~F%dXe+)QEnAZ9rm9i%rl&ZR0KVCb8b89x~AD<4-*bmuJIMx6F literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/i18n/dr_catalog_pricelist.pot b/dr_catalog_pricelist/i18n/dr_catalog_pricelist.pot new file mode 100644 index 0000000..09349dc --- /dev/null +++ b/dr_catalog_pricelist/i18n/dr_catalog_pricelist.pot @@ -0,0 +1,332 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * dr_catalog_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-03-12 10:42+0000\n" +"PO-Revision-Date: 2024-03-12 10:42+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: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Unit(s)" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__image +msgid "Add Logo In Report" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Advanced" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Advanced Options" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__attribute_bg_color +msgid "Attribute background Color" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Attributes" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Available:" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_height +msgid "Barcode Height" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_type +msgid "Barcode Type" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_width +msgid "Barcode Width" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Cancel" +msgstr "Отмена" + +#. module: dr_catalog_pricelist +#: model:ir.actions.act_window,name:dr_catalog_pricelist.action_catalog_pricelist_wizard +#: model:ir.model,name:dr_catalog_pricelist.model_catalog_pricelist_report_wizard +msgid "Catalog Pricelist Report" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model,name:dr_catalog_pricelist.model_report_dr_catalog_pricelist_catalog_report +msgid "Catalog report." +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__codabar +msgid "Codabar" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__codell +msgid "Code11" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__code128 +msgid "Code128" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__create_uid +msgid "Created by" +msgstr "Менеджер" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__create_date +msgid "Created on" +msgstr "Дата создания" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Currency:" +msgstr "Валюта:" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__custom_title +msgid "Custom Title" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Description" +msgstr "Описание" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__ean13 +msgid "EAN13" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__ean8 +msgid "EAN8" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__valid_until +msgid "Expiration Date" +msgstr "Действителен до" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Expiration Date:" +msgstr "Действителен до:" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__extended39 +msgid "Extended39" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__extended93 +msgid "Extended93" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__fim +msgid "FIM" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__id +msgid "ID" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Incoming:" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__language_id +msgid "Language" +msgstr "Язык" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard____last_update +msgid "Last Modified on" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__msi +msgid "MSI" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Main Settings" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__postnet +msgid "Postnet" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__pricelist_id +msgid "Pricelist" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__pricelist_date +msgid "Pricelist Date" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Pricelist Date:" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Prices" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Print" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__print_attributes +msgid "Print Attributes" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__available_quantity +msgid "Print Available Quantity" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_print +msgid "Print Barcode" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__print_brands +msgid "Print Brands" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__print_images +msgid "Print Image" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__incoming_quantity +msgid "Print Incoming Quantity" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Print Options" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Product" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.actions.report,name:dr_catalog_pricelist.action_catalog_report +msgid "Product Catalog" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__qr +msgid "QR" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__qty_1 +msgid "Qty 1" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__qty_2 +msgid "Qty 2" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__qty_3 +msgid "Qty 3" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Quantities" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Settings" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__standard39 +msgid "Standard39" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__standard93 +msgid "Standard93" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__usps_4stater +msgid "USPS_4Stater" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Unit(s)" +msgstr "Штук" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__i2of5 +msgid "i2of5" +msgstr "" diff --git a/dr_catalog_pricelist/i18n/ru.po b/dr_catalog_pricelist/i18n/ru.po new file mode 100644 index 0000000..358bb8a --- /dev/null +++ b/dr_catalog_pricelist/i18n/ru.po @@ -0,0 +1,343 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * dr_catalog_pricelist +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-03-12 10:42+0000\n" +"PO-Revision-Date: 2024-03-12 10:42+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" +"Language: ru\n" +"Plural-Forms: \n" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Unit(s)" +msgstr "шт." + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__image +msgid "Add Logo In Report" +msgstr "Добавить логотип в отчет" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Advanced" +msgstr "Дополнительные" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Advanced Options" +msgstr "Дополнительные опции" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__attribute_bg_color +msgid "Attribute background Color" +msgstr "Цвет фона атрибута" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Attributes" +msgstr "Атрибуты" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Available:" +msgstr "Доступно:" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Forecasted:" +msgstr "Прогноз:" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_height +msgid "Barcode Height" +msgstr "Высота штрих-кода" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_type +msgid "Barcode Type" +msgstr "Тип штрих-кода" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_width +msgid "Barcode Width" +msgstr "Ширина штрих-кода" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Cancel" +msgstr "Отмена" + +#. module: dr_catalog_pricelist +#: model:ir.actions.act_window,name:dr_catalog_pricelist.action_catalog_pricelist_wizard +#: model:ir.model,name:dr_catalog_pricelist.model_catalog_pricelist_report_wizard +msgid "Catalog Pricelist Report" +msgstr "Коммерческое предложение" + +#. module: dr_catalog_pricelist +#: model:ir.model,name:dr_catalog_pricelist.model_report_dr_catalog_pricelist_catalog_report +msgid "Catalog report." +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__codabar +msgid "Codabar" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__codell +msgid "Code11" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__code128 +msgid "Code128" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__create_uid +msgid "Created by" +msgstr "Создано пользователем" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__create_date +msgid "Created on" +msgstr "Дата создания" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Currency:" +msgstr "Валюта:" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__custom_title +msgid "Custom Title" +msgstr "Заголовок" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Description" +msgstr "Описание" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__display_name +msgid "Display Name" +msgstr "Отображаемое имя" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__ean13 +msgid "EAN13" +msgstr "EAN13" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__ean8 +msgid "EAN8" +msgstr "EAN8" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__valid_until +msgid "Expiration Date" +msgstr "Срок действия" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Expiration Date:" +msgstr "Срок действия:" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__extended39 +msgid "Extended39" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__extended93 +msgid "Extended93" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__fim +msgid "FIM" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__id +msgid "ID" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Incoming:" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__language_id +msgid "Language" +msgstr "Язык" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard____last_update +msgid "Last Modified on" +msgstr "Исправлено" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__write_uid +msgid "Last Updated by" +msgstr "Обновил" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__write_date +msgid "Last Updated on" +msgstr "Обновлено" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__msi +msgid "MSI" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Main Settings" +msgstr "Основные настройки" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__postnet +msgid "Postnet" +msgstr "" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__pricelist_id +msgid "Pricelist" +msgstr "Прайс-лист" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__pricelist_date +msgid "Pricelist Date" +msgstr "Дата КП" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Pricelist Date:" +msgstr "Дата КП:" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Prices" +msgstr "Цены" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Print" +msgstr "Печать" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__print_attributes +msgid "Print Attributes" +msgstr "Печать атрибутов" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__available_quantity +msgid "Print Available Quantity" +msgstr "Печатать доступное кол-во" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__forecasted_quantity +msgid "Print Forecasted Quantity" +msgstr "Печатать прогнозируемое кол-во" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__barcode_print +msgid "Print Barcode" +msgstr "Печать штрих-кода" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__print_brands +msgid "Print Brands" +msgstr "Печать брендов" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__print_images +msgid "Print Image" +msgstr "Печать изображения" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__incoming_quantity +msgid "Print Incoming Quantity" +msgstr "Печатать ожидаемое кол-во" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Print Options" +msgstr "Настройки печати" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Product" +msgstr "Наименование" + +#. module: dr_catalog_pricelist +#: model:ir.actions.report,name:dr_catalog_pricelist.action_catalog_report +msgid "Product Catalog" +msgstr "Каталог продукции" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__qr +msgid "QR" +msgstr "QR" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__qty_1 +msgid "Qty 1" +msgstr "Кол-во 1" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__qty_2 +msgid "Qty 2" +msgstr "Кол-во 2" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields,field_description:dr_catalog_pricelist.field_catalog_pricelist_report_wizard__qty_3 +msgid "Qty 3" +msgstr "Кол-во 3" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Quantities" +msgstr "Количество" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_pricelist_wizard_form_view +msgid "Settings" +msgstr "Настройки" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__standard39 +msgid "Standard39" +msgstr "Стандарт39" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__standard93 +msgid "Standard93" +msgstr "Стандарт93" + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__usps_4stater +msgid "USPS_4Stater" +msgstr "" + +#. module: dr_catalog_pricelist +#: model_terms:ir.ui.view,arch_db:dr_catalog_pricelist.catalog_main_report +msgid "Unit(s)" +msgstr "шт." + +#. module: dr_catalog_pricelist +#: model:ir.model.fields.selection,name:dr_catalog_pricelist.selection__catalog_pricelist_report_wizard__barcode_type__i2of5 +msgid "i2of5" +msgstr "" diff --git a/dr_catalog_pricelist/report/.DS_Store b/dr_catalog_pricelist/report/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0iGaVI#9@}+mpu3!}d2{6)jx85)zCA7X$w}67#zG^xjz*b|-B=TQ{L)|E& dePCl5<6O5oaK3i^FyC8{ol%E0%%|#td;oX?JU0LU literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/report/__pycache__/catalog_report_parser.cpython-310.pyc b/dr_catalog_pricelist/report/__pycache__/catalog_report_parser.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..97ad77d159efe4cf4f8bdb6293226f5b96565316 GIT binary patch literal 2808 zcmai0OOG2x5bo~jd3bE^Cc7fZLJ|_*CWMPzy=}&EP+T!Sc*oo)3eSvW6x~& zY=W)vDUnDHIdI{WgMHwTf56Y++*b~WUx0)ZEmb}CKB7gm)$QtMbyt1$)nv`4PoVsI z<$3&DjgUXEbGUHmT!X6Khei-VQ_`m$+Gia`vCmSg&pVuw8$?)wKO}<3tY<&4I*zb! zk(Top>?19vtuRlt)6YblsutDt?KBIEKxVrG5#f@!AX3esVMb}Yd<9RBS} z6{--d8vcoLA9W&U!dudF)v9E%(Ozrc1f?3+wRyY?b7Md zZ(wAnR@yN3;bT(L3Hym`Q^ADw(3{e+n~zFPY#|R(fTvXRncx!OX(g zFUiCyt+H17Q>&U=A*H`Yc2;*@EBVBIL`t{xg#FZ-Qc8A~OO8(19G%EzCUzt9oVc6G zVMO7+^MW#ix(rnzAn*~7$X#}eJfoZ7E)T2_cY{QL?9PsQHXnx5o{@jLt9P<~yqbwD ztD5&dYF}9mg~$f#a{OZtCgWwkJ>%RL#blf&WGAtOT+$_ z2-lbJws>uyjIM4Rc5yrC#s&HkpPIyhfXVh+nnhu%)Jh&%aGrOInMJ!{Xxk#cyd)qSW-;IY#vqb1cqta|M>a-K)c{~uUy5=fQx8)+9 zu{6^V?CgevA}Nws>DoTlIBMt1HlO>Qj$4sK-#^dz^Wc!_VKt5r>}GV|(0U6o3A6ZjUZ*{GY`m z^v%4WjIm>4|{<)fEw#Knc16@V{%TUl<{ z)_gmY{UbO=B{o!pZrc^Qr5D3os|Icg(Fb<%$c8VeV`KkzIq3$Qe z9pEh1zM?Jg@G~mU!(o*@jVb*#vz(Ig7Fm0vnb<}HA*5;TQUPO&(%O!S-j!yrFzRd_tJum2I1j`0g^*c0z zj)6|cTv%hE)3H-v%u~Tv$b+t^Af~ly?5T zV5O7)0Igeq2B1DN@savUKD9*ii6s`E*1(60n{ol(^|>Y^PsXa9hJ&tgTc?iVZrF{1 zzebC*Flo=j#YzMwB#w)8V?P#g?a70+vuq%dDZy+0LHx>BaHytTkwvfx;u!^#=)jR# zq%<#L2xu;Wj=xxJ3BNbI`Q>3Q!K*1FmK?NX+E&Wo*pi4^T4tkp|=n zHikG%W1zQWh@;}=;9i*S#tQGMK81z@JK*muJrBImfVyDV!=Y>sxMHut*o-wCU=bLd z{g6|DQJy=0k1o7`VC3#2%8n#m3^j~#gXA?3Fjry1oj@{0bU`A8)GL=U#UhS`H3f{9 zwmMU?9!Ld;gvUzVtk-Eu9dICaK~3+8qfCF28b^>LY{(UUqDqT zaJ1x}u_E{YtPU1!(9yYLtZ5Fb(g>Qb)zDsGfENVX4-l-opgGWu07)iABtg#&0)%p) zZL=0;MXVy3TT;7w}z!pkOn=) F{sop&-U9#t literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/report/catalog_report_parser.py b/dr_catalog_pricelist/report/catalog_report_parser.py new file mode 100644 index 0000000..ccdfe2e --- /dev/null +++ b/dr_catalog_pricelist/report/catalog_report_parser.py @@ -0,0 +1,81 @@ +from odoo import api, models +from odoo.tools import float_round + +class CatalogReport(models.AbstractModel): + """Catalog report.""" + + _name = 'report.dr_catalog_pricelist.catalog_report' + _description = "Catalog report." + + def _get_categorie_data(self, products, product_quantities, pricelist): + categ_lst = [] + categories_data = self.env['product.category'] + for product in products: + categories_data |= product.categ_id + + for category in categories_data: + products_categ = products.filtered( + lambda product: product.categ_id == category) + prices = {} + for categ_product in products_categ: + prices[categ_product.id] = dict.fromkeys( + product_quantities, 0.0) + for quantity in product_quantities: + prices[categ_product.id][quantity] = self._get_price_data( + pricelist, categ_product, quantity) + categ_lst.append({ + 'category': category, + 'products': products_categ, + 'prices': prices, + }) + return categ_lst + + def _quantity(self, data): + """Get Product Quantity.""" + form = data and data.get('form') or {} + return sorted([form[key] for key in form if key.startswith('qty') and + form[key]]) + + @api.model + def _get_report_values(self, docids, data = None): + rate = 0.0 + pricelist = False + symbol = '' + currency_name = '' + lang = zip(self.env['res.lang'].browse(data['form']['language_id'])) + docs = self.env['product.product'].browse(data.get('ids')).with_context(lang = lang) + product_quantities = self._quantity(data) + if data['form']['pricelist_id']: + pricelist = self.env['product.pricelist'].browse( + data['form']['pricelist_id'][0]) + currency_name = pricelist and \ + pricelist.currency_id.name or False + symbol = pricelist.currency_id.symbol or False + + return { + 'doc_ids': docs, + 'doc_model': 'product.product', + 'docs': docs, + 'test': data, + 'rate': rate or 00, + 'symbol': symbol or False, + 'currency_name': currency_name or False, + 'lang': lang, + 'data': dict( + data, + quantities = product_quantities, + categories_data = self._get_categorie_data( + docs, product_quantities, pricelist) + ), + + } + + def _get_price_data(self, pricelist, prod, qty): + sale_price = self.env[ + 'decimal.precision'].precision_get('Product Price') + price = {} + if pricelist: + price = pricelist._get_product_price(prod, qty, False) + if not price: + price = prod.list_price + return float_round(price, precision_digits = sale_price) diff --git a/dr_catalog_pricelist/report/catalog_report_view.xml b/dr_catalog_pricelist/report/catalog_report_view.xml new file mode 100644 index 0000000..d1d02f7 --- /dev/null +++ b/dr_catalog_pricelist/report/catalog_report_view.xml @@ -0,0 +1,175 @@ + + + + + + + \ No newline at end of file diff --git a/dr_catalog_pricelist/report/report_registration.xml b/dr_catalog_pricelist/report/report_registration.xml new file mode 100644 index 0000000..3d96e65 --- /dev/null +++ b/dr_catalog_pricelist/report/report_registration.xml @@ -0,0 +1,28 @@ + + + + Legal Catalog Report + + A4 + 0 + 0 + Portrait + 50 + 30 + 7 + 7 + + 45 + 90 + + + + catalog.pricelist.report.wizard + Product Catalog + qweb-pdf + dr_catalog_pricelist.catalog_report + + dr_catalog_pricelist.catalog_report + + + diff --git a/dr_catalog_pricelist/security/ir.model.access.csv b/dr_catalog_pricelist/security/ir.model.access.csv new file mode 100644 index 0000000..bae314c --- /dev/null +++ b/dr_catalog_pricelist/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +dr_catalog_pricelist.access_catalog_pricelist_report_wizard,access_catalog_pricelist_report_wizard,dr_catalog_pricelist.model_catalog_pricelist_report_wizard,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/dr_catalog_pricelist/static/.DS_Store b/dr_catalog_pricelist/static/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4fa85caf08a3ebb06f21e95327cd0c06984ff992 GIT binary patch literal 6148 zcmeHKyH3ME5S)b+kM|7|!O zj?d$G^b(mAkOERb3P=Gda3KY%v9324x=+_g0V!}j3i$V-(H(o?lo+25h8O{eE2hJ^ zj#+}(JVES*QzA1oODZv`RwITbo%vREy>LoQI;@5dt0!AcC>BrW{VmF2JyB5#NP)Qm zx4GSV|9_zWG5^m=+DQQ^a8(M}YX7+3@s+B#E?&-iZKFTYz2=+l#&u8_q8$^X9dqOD e_%4dFuKAkhy>LnlI`cs%>Sw@pkx7C7R^SJK?G`5h literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/static/description/icon.png b/dr_catalog_pricelist/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..49ade6890955dcf1fc9c90eb77f205963f22c855 GIT binary patch literal 16534 zcmeHuXCRzg*Y-V=5rbfmO7!S82@!qtMDK!VDS8mS8zn&`L>JL}=jb&?oD)Qls0mRL zM2+4VzCGl;?|II1-XGu3?|Yv=L1x|i-h1s;u63<7q3Ws%q{P(35CoClz9p*(L2&RZ z973K3KQ`R^_rMRBlcs_+RMLHU4uTk<+p<#H?#4fpJrW-1cpQyuiC;Go4`B{ax|_jT z`-f3d$t8azuf{3fP!SQWn$wIW6Vxv}f_A9*uO4Pl{_%vKIZpe zlTT3>LfBFC{4E4Y^#j+9X0|t;lLYo@ZGWxb=HB-H;c>v0?o zisea^j)Yhoqb+?}^FGxY%i5v7xCBP!FZ4+{%DggjCxN5N)J&^|-3ll-&G%z%G#<~S zM5J4@XI!Xk4;Wrwb(XSeO6%`E^4UIm5s^+6P6JConaT~>qcnzWK8|fKgs(*Rc zNP{Qk34~B&#XvD<`VZ1E_L{GLT|(HN9ybII!&`;Pp0-IZFfOp0Jg_);(;o5h#0 zZ*bdB@%+9aVcY0MW$yrK1|~QXQ`)L46xtrE*coe(&$ape`_P`K==g@sYg>eL34>hI%{tTgAjc-kgW7&I>&iRM){zTBJPmm%wOJFNcBi;ckqiIHcJ z`)>i+LA5%v5{0t7m*&nLjnTiE@XBs{&y2!guEG%5i?0+eY;4E0>nZep<}BZt_O0F} zq%UMcnGdO{^iGpqS>5^Z>3I(Gdjm<}iFMeF&9b#dW=&RL*UYr2-O*XNX{rbE zoV}JoaxYDF&lyJUONRszaW9@j}RHVlLpt-c48_d6pG} zJ8XQA!O#x>6ZLEC9)2RXREb%5g&8NFLGX!Z-WOeB+uJ<#%UfIw5ZFybKw)W*QbqT> ziF;HR;paitJ8wp4pcv-;CY43a?GioA;kM-0VH4$wsr+y6*n|-UEEq_;v*t!A*RHn6 zt(2by^a$*^-IWF7MDvbM-)f`?QS7NeaT0yh%{$vxaY>6Ak_arp=3c*;WLMOM{#;rS zf3z?#O2?b>>(An%d(GB-M{rC~b?8uWO6DKMH1d1-7hs4qd%cF=l45o?@jGyJ*E(_dXP6a2`HcU<;4SjBKL_VjEP`q%%r!c9_ zod9k|g@)dyq_%EI#%fHm8`3LLK*7-^I#xU;(dS-Bs`%B-v;POIR z?z)R8r&ydKgqsFBUJ3N=IG#rF22Re?sPYG9Cpz><%){kzCoZ*GP45qYj zq*Biq>+c-)d%X`QWK@>{MoAiMU6W03)8wx0=l*rOfIAG*zAe;UQ}I+&?X!sG_M~lU z2_r)QR7Svpn$6Mg<@lETFcl3IWYNrxcyloHw)Ab;BN-rWnM;V6yh$(p{nm$#Ri#28 zs`A&BJZc+Zh;$%BzrSe9jj|%Pqr-Rm4CUZa4OeLG8od9iWQ1Seyz;g zq$;`S`i6uI`MW#>3wiW?V6(8Yu|P<9OiPXckw#q5xN8GsGF|{+V6=t-8FB0eVO^-PA;6>7p!R>qo|o3JC>n+*et+tiy$SdYHDpRnEnDEF+4< z+)W^hp1}~nuTr3)dx_Pt#-$@w<-fV^7r#Et{a}qmzY_4UNkzyrsg1?4TnHqD{|5Z^ z-mA(kiGicr6~jA@dI=E*7({%CGsE_YZTm8$W~4-b6VrgzLwG8i5Q zNMo^!Z(dQcgQ7{wQNJH$DM1bNE|6J0oTs}sgOgh8D1XKTJ&c@6zKZAm_5k(2WW|q~HcpWR3d-k6tY~P$ifNRjy~3u_tNN1w9VStn>Y|#A&>U+B?)bv>aC2Tp zcQLX4wOuZE8G=2MVJ?xzV1n|V_SpBP|^{O!*xEjx@{&FfchtE#6 z)QsbDASDX^6oeBQQ>x1*HJ(eqd0r_!uW{8^el@j^dp9g&2ZhO);;bD?oRiS2{1AGp zB4DP;tM|vYh5L}0zqJYkE0Y}C>~m71$$uv*yV1I+=cc6*dUvcdsx?d(|K`HkvHH2C zzN%p!7@?l_+t(IV?bA4-xS`kbNVvZ!aJjEVvNk%~5n1WHA-CXmw=1$%nz>MrkXQY9 zK}A;`GfhUlLDrTDbF<+7uD@RA?HZ4pr14CH5TzreqDRkcvquRg>#`j04GC5}j*CT=T39>uFjZDsJriw@m0hFx_+ zp?Q5ybmVIZz4On<%5e2e-;UoqZY4PLrgkG5!4qGlv-Dm-iO#Cp*AOwQ{+77jn zq>+Q%I_3x!`DHa%Mm$|2-u&nNXIVhM>J{D=Kj)W*-`#q1g~_e@?yw>-v8`blE;$ak zKQXYeb8iK`J#ot0J@N*;0*&WCK6cSbtfDu*!VgyuN(>Y&o~x?~(=2sUuV0IL5h>=l zAno{Y`UyJ(Qvx=jl;#v?CD=eu8A;_xNB;9OUoSVu26H3@1})#TalK5ga}fQV`j39a zVVqR?AG4Ifj1zcVSo*F1kfz|eezf8miPk(4!*Mkj9DV76?3CJN`MiRS5fGW~>qM;c zB5XnMvZbOoDIHkk#qF)`zmU8%5gIARZFH;ThDtb;K_!3BKOP~4lJbIRi)sN;)$~&m6H2CH%er7K_@dL1ms~OU=W_fJKi{7R7CUG0dUP_TJ$OBdbn(Llpvgol za|AXfVRF5BuR~YKZ!~l6regkd>};l&{!FhX{q$AjO(qO<6E2x!YqNP^cCA-$=apTC zc6_$JW6&H4{+;CAH8~9?#PI-y8zRG!H7x(q9X@MnA=atOe?+Ws-ce zH2kWLl(e{;-tSr-m85FLlyOcd1*CP4E-Cd<%09&M;%JRQ@fC%qRa_C@y3|+zh6^Mm zuC>X9!Ho-rqfzD^Et3u7`v|zH;)lR>g`!uImNV+(V4uBAmc`9u^sd&MLNtnjtuieD zjvUZ_sn?ki*A{ZUboBkQpXhM%Vzq!0nLt+vF#7fH2l+2_*FVbfWyGA9Hi|X>863ZL znfyezCzQ<5ZCJHFcZ|OO` zpLk0H1Juz0?J)E7*Hh++FGdbj?r`fTvUuV4#d^4qXgWo@6yWBPl#%k7C_*~ zWyIGJ!cu{YNT^J@Ra7Rfi^^>fH)|zk%RpN#g|qgzugTaSZP+?3DY6u(re162=!)_h zX1gtij8Ov!Hr47CUv=W>5e3DheInO&nJ@N?5CsvsPYNv61`B*eoxOAuaQ*e$Q{W-Lmu@v7farW6%%~ zZVna@6+aTp-nf6DY86KYLqi{KyesVsvx@7Vw{i6S#_~c1T#(A}k1B(%VH{x$1BArv z9^}d#EKv&EqBCCC48A6Uwd{qYQq~zFN9xVml>=)PV)>xh||Aq0~v9}>kx@w;VBa& z)f2q(7(}^)6iGOEyeS=t{}F#m+w_u#-Ik;U!mlVdZU@+Q4-5w`N6CgiFx3}Nc{ROgL)b42QV zb6=5`It08E{a+#u{uGd!YuLqTph#AWJJTdp`#bp?HN8?Z z8aW?Oz(rG%N=M-&sbHO|5Dhp$28fVz5*lEgCIO|v*Gw{ya;S&no2MinEFiHjJol7U zAy`6^Su9`w@?`FzW1>sSgZF3f;jCkKkB9&7%hW`q8sztE5dO4C{BtEclE$Fe=F_ts zjuiLr!I9YCkz77$Pw6Fl)GDS3az6gr(l?lv|MCWPU*L_9e7Q^Hx0R@R+ z3uHJADu@YJz;?xRX!NxZn6Q>7*PB4lU?@6C0VL2v-$QTO?p|Vh&oH(%O%nm1#p;HEg&rT5lm>) zOK@+hwC2Lqow@Zx2aTWg@5Y02I{J0227PPiinG^|XbNk(uTp>^f>QtuB5F=8==O-~ zM)Yq@1n^PS&PKrGA@~@CV3_zu(X@rwIfH3tHXce6RSc{DeLU!CM~tVNh-LG;mBFP+ z@6%~WLGmR~K%DVMq9(3GEkCh~9}a9{2Q3g6ykB7z3-z|2{=6Qx5eTr}j}}@4Hjoho z1NDo8=tpbUo^z3^4lVKfl$bb+jo=Q8|3R#ohl!kocgN9RVXe%Wv9A7>gye`ud-kfCMS1e|`1h+%d`n<()GRA#5Rip`)<8|XhH#hHZP&lDaa!G7w5XTP z-?NIVBp#i54Tarv@*{^iNS>lZn+k&nnA&hv^!j$ZVximKs}l8szCLabr}WoIw1(}{ zG9$EPfrbOKGW!W)Glx#YLpkM>vAQSxxpZ+)5nOyy~ zfVVZfl-Mh?U&rL2uWPv?h%E)YoTNe5ZkXH#6;4T)J92REAz&afCaMFR-y6ilkS}#EfO(ORVemn4ghBNg&VFmxc!|xU?{|Y` zZe~rro@4OX$kNz718P{>Q3dF-e=aw|5tJN`=yK<&)vn!ro@d5;KblYR#1=I^*W7Dr zlA4K)J}(Wivdqp(z$cJm4;fzqPkMPODx0}#zw{`(bhPl@x>ume1?6WbSVBx%<~|a` zyb|*SO$H2s?AH14O7r?sDxT#s_4fuuJbT0WwtEzY4_i%pGw?O?-}X?j)4r!;NO#Tp z`C-NPYlEpnOnyT>QOz8g0GgkcBeVwqDou+LE)0;Au#}E_(ZHfH7n7g584;TrU$}fk z?LD*gUVDM09dbDTRcRq|2FR{f>m1wzsKSF?$IaZR!Yl5)hrY|XyG=#MyjpnyGaw-< z56IxAmu^lom;$DWAEUGO>C2C=`>}cP@dripJumtz`krj%z9$ZZV&r<)0E_Z)A|?<6 zq68Mwy{$kV-BVEpJlbmgTOM`DoSBrg8YFjnpka}T8!1| zD^ycg#F8MvS zJ>2gP`%8!+jxQe0e4>Z-mqVV1GeGjS2g1*xo$Dk~=!tL;`y5^G&6(_QRqfpukE+U; z;*T6XD(vdn=#jbIF}q`2z1!;1otPr^*8qo=0M{@%^gTpyoscxxQ9YB9FhBCLfTrWi zUdNZ<-@!H0$WPyx=A|Z03N}N@bM+m)b!eF&oyg)HBShLgtQfgJ5wc$cV#T%$+(U5g z_aBu`GC+Tvo;)}YpYTQ?Fuy23O}LKlJUuMIStNX!844#vdmJ;{SWo3!X}xMVW{66) zZPNwMuI7>ZPXkM`Z9^b9kNPFy{4LJjwa)-GOK=TsIu7v2jZA)6_KlptEsrP5G_yZ)(~NI6q9RL^=&5X!IYLQ+~!L4591LBL=91O}$J4u8z7q#9#`DI8&Ho0*mh# zOJ&+Rm$rAM`zU(YiWxD%H3oImelzy+D-`DP%bReR0?@C*1dc=Wqruqqfjcfg23wxe;6kh1C=uA9j^`bqM>ccv z0xsW!-NXGfY{h|HHUL`+4t2FSU{9#nwW&_>rk#zY5i^vovZ&_)%KPJp&j4vW*RP!I z+tZ)vS8tGm;K`Rk3YrL^B>xeG(qRvXcRkOfYmA6>%}ss zjat8T_q}0kJNl3t2U5LSAAfrQbP@ZV9l;HdBljut^rSd@%VMNP>!DkcuQ6k)4N9AWVSXW0oZEq1Zn>>NHomyu0MtaWL1`r>2VrsR>caXa~7}t zCdvsASQZ?SHE=lWBqxHC74#;~)YA3%)ueCQRFjFOx(xtN`FESG$gLXWTOb#;Xs{%K zIY>1HB_h#8C=WRN9HnqDzzEg6qsk&HEzTSJiWTa_NGEwSA4VFwl$&vpg8T@ zHE(MuFvQ>11Q4u%EKo+iTu?%EgWCC_P6ob*VEAnWiGJeXK@Fz@9>R)f-xNp4&wrVd z-q+Ik1_YQ4R~zu&=|Kml0xrUeX&V@!x@F&`i(4HiH%lkxMxxJY^E8G+cQDFC$g|)T zXAx~x?Pgo3fZ&dc7$^H?0G z{NW&w!#~!Ri@{h*)d)L8JLQ9*7?u8BFZ^Z3_@nVy4qWdSa+u3N@t5~)akwT3iB41c z7q`-VUG%-?G!vw&aL4#6B26r=5#e7BJPWiX#3^<)6Is+aq7na)rY`p=q@~lvFIn36 zxVay2AWX%W`P3L7ypkSfAmW}+2chtofhHl9eTRrcmF5aL9L`#T-w5)jEb5B9f zNj#6JuL~gNzbuCaf&J%|(J&(1|eF1~gSTSSSs`nnk6M7r73C^{%7@6=IsD53a4#+$FTIpyYz9H#5b~u*>;!QNAvomPyAyUdw?I5Hr?dd_ z+scCB`wb%X5rF+t(??E$P%?$lZi#g1bF#3^Ha2YO8xya~xazXp>1unhd^>>g?|9Rp zh6xaL(Xn~WPVrdPhuNDIo~_-vZ23^Awb}M`>P_>+eacWk z=6pp9qMKIxxb$|UZyuHUmj%&Kz_34{F~dSGpVglI&1^HiuV_8%x3;avAY@8+1&Sgu zgfa~H=#l1{Hn3<%5%~g?w)9(oUZcBt_<1=6{Z}9aRG0^D#W|JBK;pdi?5dd?py#X) zK&(JA^DY0E$7Af_8%`91f<1N3aj}vs*Ns-S8>sh;N8Fr!ZTH}*$7F;D0vj!bItAYc zhP%^n9#DJL!#Hg;3m8G^y`GJy$NyTy=h5C7THLB?A5N2wAS#S$OcT1*E%cMv0~u{dv0)OL2@)Vay<(O+Dua0KLj z4S5d~5J+o6gT8e?PDK;E?owguph-R4Bk&LJRqt#jO8Z6H1fu_nl>sXFO4h$(4?hqC z1bYG*{BL`95LIt$CgP7C^_tFh+~AEiV}MvI#YDm&cY!k*=m|2!jxgj~DqHvkmlPs4 zx*TIZr~80#Z1bA3ZgQgOO}Jgs84GEJt9DToj6KT*}e`A#=6-5?2|Ze^P}}H zR&mC^E_!mXu3f+LpV|n|c_u+2^+(hC`@#PtW^Pe$!O2s4hI1pK?1jc;x*_QKw`H** zut9MO78Fp#Q>n86YDs|t`-@LuNaNMKkCTYBtDB#TMQ`|y{?uk zS@L1}>;E8DW>>%OT>M}z7&h=D;=IpY$%Q1FUev$6^v~HUV2b-^Fed=#^~S%S0c5t2 zsG*#|DI-?ANmzO~pNFkjUX;ZH#eTAWO-NQ1V2Ndw)BgWCbHNhd zS+N%XO>^Jx?E>7Rb_N}tGnH5HadTiWkKP~@P{kA5E5B~xhy_C*+U^r*cW-%R2-J=H zg7d+;OaMCXh6|Tu|vNTFpKfa&_0ITz=!>de;_waH7YMFoEd zs)+Zj21{OGN%bXpeeXvJzr|bZI#)t2R0b+Lb@M=9ssUaK%}-M0d%QcEk$NO z^w>kLv#rl;O)U5h2dRHA2ngBfMN{b_zGntbvX=@be}w+@Ga?Z;iy;*^ll<7EIbJD( z*w|x&GAAJ3gAzUn&OI1Ob8c$f#rrhY(#%^#Y$WL@jS|O{dQBx!uJ9cQ<|_878?;L@ zSVB;ukZawMICXNH`?rUzUA>rkiL3p65PBKW#)Gd)wbV8!`SAAt<-|PdmFqL7qRs{W zc+rfCe8oU>hqdw~FB{~h%(57R1;;BCAkeoEa(?B!py#)7HS^Q=p@1{Z%^wZK*=ehr zO&Z=r>B>OyoN4FtNi7K!yv;M=pxE-YpS?C`aD8+e z3}FE|@7dHGeaE51O<7S2eB*=;uSC!|*}o<9mu4>Fg0G~1YI8Zdn)DJ4VC0l->)}Bo=tBP{n(gE5{<~FA##$-$5wz;}lFy#j6DEf7f!j3> zpB760wWd)$aI`R{d5#vu4HD0Xi7XKU4R5WGJIDPciIe`)A*a#F$br@|{$n!q)bHhW zh~+}9#DVSov~(quIX_tHiij2wHU~_$cB$Q?ltMfua=zTI+H>Knn?8I7)~m+Lia==#)&9!q^QH4VQ_SQ zUnTD3J3@UvZwBYxDRA0KEI9VQlj*5_il=8$>=D30={h-$!A)a0x8Bco0elzGzT~$` zZ|3|PU9jIv^A7s{%yadaV`8gW2o8ctk^QV$;f$~SA9<^1D15R)xN*zAgEH<~>c=I{ zCM%f~gE|xFEy*UF6MF*eHoJ7d%yCOmziIE~xrUsj92&=4GB1{L6dXfz=TR(smzW&y z%*nO-ltr6&^a_ct5yGpO@wT9eV4wt{jdW5)h-LmT-r^_yJ0(o_0+$%WQB{j5byhKKRxj2G3f z4=w7ChseYYGr5olc#GP;fxr848iQ76#SKF+U=TxHEw6<79ESf)8bI=J?Tk0y-4rLC z@id@$wBh_#@PefrEB{Tyt1#a!KTzn8T>vJ>7ya2S{L8C|B0bM}$7U_+-2Ht4CDj{s zPe7XgzKA#(k~0e+tR?n01y<)9VSVB^d%n2>%DJ1Oy=F6|%653fcGEBcbJB~_-GT8+ zGce#Cyw&sTe1w>}wZNtzSUjh1t;9K@ad7H9z$sxB1VpnDIr@*fPSIBiZabqrymxeo!LdfPmN$uiPxG7JJZt5tlp8 zq0*O6o~1uBD^$b; zW5L4vy=MDP=J7X4{mbwft;gPIJ#%}geCHHiBMV>@^Xkbaia7l7V`Hz4zk`{&<9O0C zsJtzaG3|*L6va=oCVU0$HOt3?L0FYA1IcgC%w`%`<8PAqi{RZb<@=unavNTMdJ~<+ zNDSls@EPW`D$j?0pMCA$^d$wLoA8?MSuZ=PzX4f?b{L0Qy8C4YEZV|@|$;4tZ+8inAz8#nL7d9NnJ7wHtd^0#euF( zzVCHYx`j{qo8U(ujGtsq1&ER+lGN-a_i`tnud4;~y?@^Q9k^ouYft@s`!>2M2w{Ef z6}1W-!d+5M)7a&hcXPZ-6;sG)LnMZXr+Xn?~%jde&VE!^0NFSZ9Of>rGrYoXux-XWqFm* zHk*})WjF$q6a;4ilZS?&!*`@0OSUCxwG@O0Ozl1fviQm(X;cWtQ+g}7V;_48%#`Dm z(o6&jH7}+$^ilK=wVNMY={87(4=p_G0sDIUv0W-6M)&A5P4y9_7z%^62lswxFH`ts zl#^-UKrK=7+pT_jyUyXG*zMEsm+@z3e1jps@ziV#_RX=RyiLx&{wK%hN4MA6E(<z{Soyq_))~p2l*pJJgYpIUu-bSaB_p)`?W?v1dXll=E zDpAO- ze&reew_qo4XN!!yy`2ty!!k-MbU$jQKQ(CV8Eknh^n)W9a5HDeUya1*=5Bxv@1#v~ zI3xeb#KH|@OTh*JhfY1}FV~Sd$%gD|;s^%v?2vBu$S}DVs&k|_aw)1*3Q_E_An9;+ zzo)YiY={qQ-+NDd)BR4ENOo$~cw(*qn9kO`Y+5`&#lq#llVwtfKjJnFjMtj=;H_sB|SeT||YstnL%Wl|n%)C)N? zCfTvR+f#hI>u-C7?6xbq(>*8|@lS0&*FDM@n0@X$xNB`>n8k;z1(k1Ynw_yzwZ{@w ztN`zg=DF<`jm>9~AlQe;W@#~v$o4mQ>3hA2f{PLRw*y-<o1a1*p6W-iuv zubRj*`WQ@oKMtDT=&9NZvTlzXOY<>H9?rOc+yTSfE035uXYf;uTp4s{Rlkef-t@2< z{Bm>Y3Y`T3vXI_*ciokD0|UV^6sF8S@NuVA3{n?a{vQ1nd` zO`gmPn-yL3!{b&62Kr8vDo!)zE;lo7TCSMy4d|2B$RJhZk0S(XPHff@H?pw-LoP*d15zT;sx;M)hl4hy~+3=|fdyM={3$0d5`Y!%RBtG~%_`#(X=f$TuNNHY_*}{lyuaM^EhU-!zbDQ+-ff-|5uo zGdXj`ptEzob?S%_^x7v$ndUut_FgMGo5*vjT!<=cwf3(>g@A8{pvD#ryGqFTHWPkV z_zj6^>Ij#8ASL_M>oE7J0r*x@YPg00X%#gOH*P$pT_t0aG*kZmT;Fw}ki~kb zj{eO#hPoDGZB7umbnx3xGx+(s;<{6+u7P;wFz1%Zc(xmDz0b~Dn{6GBQa;${2zfa$ zzkd8x!@EHKu6iyj0z?EP8jBz0JSGK?KX(9j=OC4wc=9bpSQ|*3ZKu+_g%Nb)NzLQ; zWXL#X1dT%@(e;^4;_u$f34?k8-B?koGt)qT-f*e1er9e_+;{}2IsQEHOCV-%QMgeEoB6qtIIeosjx#%1cP^M6GDqk;dG8gL^)%aG+8 znrz&Uz`NC`u^^`uRvdUG?hNSW9eZUNm}DypPYU?umD|88x34n*e(>0XMS!e`BQc0% z_|LzBy!o{U19A?8|9k<+F0^wXPZn|jLz~AVLnpFDK(>fEm*Lk!|9R=L%KoF?|3!v$ oMrf-Gf}orDS%Ck0_t`mGom_1FUFhKySOdB(rz%?_Z5r@@0Pnc#KL7v# literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/static/description/no_img.png b/dr_catalog_pricelist/static/description/no_img.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d7b14e6639c970827689d461e09922ded58adb GIT binary patch literal 6078 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 literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/wizard/.DS_Store b/dr_catalog_pricelist/wizard/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0g`k0{6EDscJy_F^Gc(44TX@8G*u@ zjJG6`6H5|v^3&rBiZYW^b25ud;>$Cu5{pv&G?{KO6oE`x$xy@sq`<_lDE*B5+*JMi zl>B@MVQ8*rpr4qMlAl+sn_5v)l&GIusheC{T#}!w3lY{&DT>FiMIT~|etdjpUS>&r ayk0@&Ee@O9{FKt1R6CH{ia}NjFaQ9tB|Xvr literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/wizard/__pycache__/catalog_pricelist_wizard.cpython-310.pyc b/dr_catalog_pricelist/wizard/__pycache__/catalog_pricelist_wizard.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bab9d504f9c991f7c03d4d0ec5350eacb0ee7b2f GIT binary patch literal 3070 zcmb7GOK;mo5Z+x<)Wec&E3soc4=YXjP*BTFiWV*48cE!y2#^?UofCnArL}9B3PmbQ z%8d#60jEv zRS5YVnUjwR%w2e+CJdZ#>XRuG;JGp(swz#=L8o49b zLmH-{jxyYyr>rec_&icpH{`;PS|~pGd6DZBxW)6DD~i&=1TPG!T^6NIMHG3Fm-qx2ReovMRhXOP6<&Qw?J1zA`J|Rj z0bkSnbjDxMd@bWI0zbnq@Qa{{*|VCP;j@~%1l%OQr1j2e$(*L=H9fEC1)wkU1x;T8 z`YON7uZ*-a`jK(Mw#(ley8xdbYEkZdK)Mi{tSYI6Hd`pb&;Nc%z?S7?2K;YcNty=g9#> zq;aleY#D7jqi+7#d>E}-R`M6;yGZOxm4Ool<(m@QI)Mb%fJ>gGJM8`gq zP+*9fJ=<_ZFsi~}u`9Gj7vOh|ntvoq|Lgc~1OT2G53FMuRb$-hD5gVMfbMF+PyuyhKf8mKBu>gQQHUYtyyie6QC1e*G8 zTb!~St=E=gfz}yEI~cNby35$=c<T8*Mg7}R$w}r@$%7Cw$c-TRjzzV5oYx

k?gKU;Lpp-v(2&^Em5F;*r4pmq#JKsZv8S8U0o)OWw3CC1Z*c1+q)j8gu1anz_I3nR z$w*hjWb!y4bytDXW`I!T^!-GcTcPYGx6Z2PO;i;IS)orGFEkUALsM>8X@cfQ-c<&a z3S~;+LS2<&OI6bKPO7D0rd4JMPAPB0pmM0?ROQ639mG&)vHgDz>mm&EDO#qCG0Ld* zrj zB?g)*jN6dB46Izn;TjG)$_kI&VE0ZKh_u@jH-s;==hOt2Ei8Nhhcef;U1^uoKI%Xp z_Jztngve|QnN|;-(3puTe?JU;;Rg1|9Uf+5WKX5Xaiqww)Fxp{lv#^vgQF zx&Sbb67P7@y6*+9+*LWPUfzO#wyW?LY2rD6kFY0pT;JnPA1)5Q{0z^WT^CXc`<=vc zh@Oft#0$g(a0;wM%|eNmjEex?l>Sv|73lH|ytKw@v~1{|>y5lJ@zNnN{j|%qXC+?J iRP~8;gUAy>{1|W4ddFEtsKQDL>?(GZ2%(uHv+N%ufeH5j literal 0 HcmV?d00001 diff --git a/dr_catalog_pricelist/wizard/catalog_pricelist_wizard.py b/dr_catalog_pricelist/wizard/catalog_pricelist_wizard.py new file mode 100644 index 0000000..4801563 --- /dev/null +++ b/dr_catalog_pricelist/wizard/catalog_pricelist_wizard.py @@ -0,0 +1,67 @@ +from odoo import _, api, fields, models + +class CatalogPricelistReport(models.TransientModel): + _name = "catalog.pricelist.report.wizard" + _description = 'Catalog Pricelist Report' + + @api.onchange('pricelist_id') + def _onchange_pricelist_id(self): + if self.pricelist_id: + pricelist_item_records = self.env['product.pricelist.item'].search([('pricelist_id', '=', self.pricelist_id.id)]) + min_quantities = sorted([record.min_quantity for record in pricelist_item_records]) + self.qty_1 = min_quantities[0] if len(min_quantities) >= 1 else 0 + self.qty_2 = min_quantities[1] if len(min_quantities) >= 2 else 0 + self.qty_3 = min_quantities[2] if len(min_quantities) >= 3 else 0 + + @api.model + def _lang_get(self): + return self.env["res.lang"].get_installed() + + pricelist_id = fields.Many2one('product.pricelist') + language_id = fields.Selection(_lang_get, string="Language", default=lambda self: self.env.user.lang) + custom_title = fields.Char(string="Custom Title") + qty_1 = fields.Integer(default=lambda self: self.qty_1) + qty_2 = fields.Integer(default=lambda self: self.qty_2) + qty_3 = fields.Integer(default=lambda self: self.qty_3) + print_images = fields.Boolean(string="Print Image", default=True) + print_attributes = fields.Boolean(string="Print Attributes", default=False) + attribute_bg_color = fields.Char(string="Attribute background Color") + + # barcode_print = fields.Boolean(string="Print Barcode", default=False) + # barcode_type = fields.Selection([('codabar', 'Codabar'), + # ('codell', 'Code11'), + # ('code128', 'Code128'), + # ('ean13', 'EAN13'), ('ean8', 'EAN8'), + # ('extended39', 'Extended39'), + # ('extended93', 'Extended93'), + # ('fim', 'FIM'), + # ('i2of5', 'i2of5'), + # ('msi', 'MSI'), + # ('postnet', 'Postnet'), + # ('qr', 'QR'), + # ('standard39', 'Standard39'), + # ('standard93', 'Standard93'), + # ('usps_4stater', 'USPS_4Stater')], + # default="ean13", string="Barcode Type") + # barcode_height = fields.Integer(string="Barcode Height", default='200') + # barcode_width = fields.Integer(string="Barcode Width", default='50') + + available_quantity = fields.Boolean(string="Print Available Quantity") + forecasted_quantity = fields.Boolean(string="Print Forecasted Quantity") + image = fields.Binary(string='Add Logo In Report') + + pricelist_date = fields.Date('Pricelist Date', default=lambda self: fields.Date.context_today(self)) + valid_until = fields.Date('Expiration Date', default=lambda self: fields.Date.context_today(self)) + # print_brands = fields.Boolean(string="Print Brands", default = False) + + def print_report(self): + active_ids = self.env.context.get('active_ids', []) + data = self.read()[0] + datas = { + 'ids': active_ids, + 'model': 'product.product', + 'form': data, + } + return self.env.ref( + 'dr_catalog_pricelist.action_catalog_report').report_action( + [], data=datas) \ No newline at end of file diff --git a/dr_catalog_pricelist/wizard/catalog_pricelist_wizard_view.xml b/dr_catalog_pricelist/wizard/catalog_pricelist_wizard_view.xml new file mode 100644 index 0000000..5a0d0fb --- /dev/null +++ b/dr_catalog_pricelist/wizard/catalog_pricelist_wizard_view.xml @@ -0,0 +1,65 @@ + + + + Catalog Report Wizard + catalog.pricelist.report.wizard + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + Catalog Pricelist Report + catalog.pricelist.report.wizard + + report + list + form + new + + \ No newline at end of file