├── .directory ├── .github └── FUNDING.yml ├── README.md ├── account_bank_statement_debit_credit ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── account_bank_statement_line.py ├── static │ └── description │ │ └── icon.png └── views │ └── account_bank_statement_line_views.xml ├── account_invoice_fleet ├── __init__.py ├── __manifest__.py ├── i18n │ ├── account_fleet.pot │ └── fr.po ├── models │ ├── __init__.py │ ├── account.py │ └── fleet.py ├── static │ ├── description │ │ ├── capture1.png │ │ ├── capture2.png │ │ ├── capture3.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ ├── account_view.xml │ └── fleet_view.xml ├── account_journal_type ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── account_journal.py │ └── account_journal_type.py ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ ├── account_journal_type_views.xml │ └── account_journal_views.xml ├── account_payment_date_maturity ├── __init__.py ├── __manifest__.py ├── i18n │ └── fr.po ├── models │ ├── __init__.py │ └── account_payment.py ├── static │ └── description │ │ ├── icon.png │ │ ├── index.html │ │ ├── payment_form.png │ │ ├── payment_pivot.png │ │ └── payment_tree.png └── views │ └── account_payment.xml ├── account_uom_dimension ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── account_move.py ├── report │ └── invoice_report_templates.xml ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ └── invoice_views.xml ├── appspec.yml ├── base_action_boto3 ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── models.py ├── base_action_random ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── models.py ├── base_action_requests ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── models.py ├── base_action_xmlrpc ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── models.py ├── base_attachment_optimize ├── __init__.py ├── __manifest__.py ├── data │ └── ir_cron.xml ├── models │ ├── __init__.py │ ├── ir_attachment.py │ └── res_config_settings.py ├── static │ └── description │ │ ├── capture1.png │ │ ├── icon.png │ │ └── index.html └── views │ └── res_config_settings_views.xml ├── base_import_writable ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── base_import.py ├── base_partner_company_inherit ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── res_company.py ├── base_partner_merge_extended ├── __init__.py ├── __manifest__.py ├── static │ └── description │ │ ├── icon.png │ │ └── index.html └── wizard │ ├── __init__.py │ ├── base_partner_merge.py │ └── base_partner_merge_views.xml ├── base_upgrade_path ├── __init__.py ├── __manifest__.py ├── data │ └── ir_cron.xml ├── models │ ├── __init__.py │ └── ir_module.py ├── security │ └── ir.model.access.csv └── views │ └── ir_module_module_views.xml ├── crm_facebook_leads ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── main.py ├── data │ ├── crm.facebook.form.mapping.csv │ └── ir_cron.xml ├── i18n │ ├── crm_facebook_leads.pot │ └── fr.po ├── models │ ├── __init__.py │ ├── crm_facebook.py │ ├── crm_lead.py │ ├── ir_config_parameter.py │ ├── res_config_settings.py │ └── utm.py ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── capture1.png │ │ ├── capture2.png │ │ ├── capture3.png │ │ ├── capture4.png │ │ ├── capture5.png │ │ ├── config1.png │ │ ├── config2.png │ │ ├── config3.png │ │ ├── config4.png │ │ ├── config6.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ ├── crm_view.xml │ └── res_config_settings_views.xml ├── crm_lead_project ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ └── crm_lead_project.pot ├── models │ ├── __init__.py │ ├── crm_lead.py │ └── project.py ├── readme │ ├── CONTRIBUTORS.rst │ └── DESCRIPTION.rst ├── static │ └── description │ │ ├── icon.png │ │ └── index.html ├── tests │ ├── __init__.py │ └── test_create_project.py ├── views │ ├── crm_lead.xml │ ├── crm_project.xml │ └── project.xml └── wizard │ ├── __init__.py │ ├── crm_lead_to_opportunity.py │ ├── crm_lead_to_opportunity.xml │ ├── crm_opportunity_create_project.py │ └── crm_opportunity_create_project.xml ├── document_folder ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── ir_attachment.py ├── security │ ├── attachment_security.xml │ └── ir.model.access.csv └── views │ └── attachment_views.xml ├── fleet_maps ├── __init__.py ├── __manifest__.py ├── hooks.py ├── models │ ├── __init__.py │ └── fleet_vehicle.py └── views │ └── fleet_vehicle.xml ├── gitrecdelete ├── gitrecshow ├── gitrecswitch ├── gitrecupdate ├── hr_holidays_timeline ├── __init__.py ├── __manifest__.py ├── models │ └── __init__.py ├── tests │ └── __init__.py └── views │ └── hr_leave_view.xml ├── l10n_ma_hr_payroll ├── README.md ├── __init__.py ├── __manifest__.py ├── data │ └── l10n_ma_hr_payroll_data.xml ├── models │ ├── __init__.py │ ├── hr_contract.py │ ├── hr_employee.py │ ├── hr_employee_public.py │ ├── hr_payslip.py │ └── res_company.py ├── report │ └── report_paie.xml ├── static │ ├── description │ │ ├── Banner.png │ │ ├── bulletin2.jpg │ │ ├── bulletin3.jpg │ │ ├── bulletin4.jpg │ │ ├── icon.png │ │ ├── index.html │ │ └── rhfreelogop.png │ └── src │ │ ├── css │ │ └── report.css │ │ ├── font │ │ └── Roboto-Regular.ttf │ │ └── img │ │ └── bg_background_template.jpg └── views │ ├── hr_contract_views.xml │ ├── hr_employee_views.xml │ ├── hr_payslip_views.xml │ └── res_company_views.xml ├── l10n_ma_hr_payroll_account ├── __init__.py ├── __manifest__.py ├── data │ └── l10n_ma_hr_payroll_account_data.xml └── static │ └── description │ └── icon.png ├── l10n_ma_legal ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── res_partner.py └── views │ └── base_views.xml ├── l10n_mr ├── __init__.py ├── __manifest__.py ├── data │ ├── account_chart_template_data.xml │ ├── account_data.xml │ ├── account_tax_data.xml │ └── l10n_mr_chart_data.xml └── static │ └── icon.png ├── mail_notify ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── main.cpython-36.pyc │ │ └── sw.cpython-36.pyc │ └── main.py ├── data │ └── ir_cron.xml ├── models │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── ir_config_parameter.cpython-36.pyc │ │ ├── ir_http.cpython-36.pyc │ │ ├── mail_channel.cpython-36.pyc │ │ ├── res_config_settings.cpython-36.pyc │ │ ├── res_partner.cpython-36.pyc │ │ ├── res_users.cpython-36.pyc │ │ └── res_users_token.cpython-36.pyc │ ├── ir_config_parameter.py │ ├── ir_http.py │ ├── mail_thread.py │ ├── res_config_settings.py │ ├── res_users.py │ └── res_users_token.py ├── requirements.txt ├── security │ ├── ir.model.access.csv │ └── mail_notify_security.xml ├── static │ ├── description │ │ ├── capture1.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ ├── img │ │ └── banner.png │ │ └── js │ │ ├── firebase-app.js │ │ ├── firebase-messaging.js │ │ ├── mail_notify_firebase.js │ │ └── services │ │ ├── bus_service.js │ │ └── mail_manager.js └── views │ ├── assets.xml │ ├── res_config_settings_views.xml │ └── res_users_views.xml ├── mail_schedule ├── __init__.py ├── __manifest__.py ├── i18n │ ├── fr.po │ └── mail_schedule.pot ├── models │ ├── __init__.py │ └── mail_message.py ├── static │ ├── description │ │ ├── capture1.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ └── mail_views.xml ├── mail_smtp_per_user ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── mail_mail.py └── security │ └── ir.model.access.csv ├── mail_user_alias ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ └── res_users.cpython-36.pyc │ └── res_users.py └── views │ └── res_users_view.xml ├── mobile_android ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── main.py ├── models │ ├── __init__.py │ ├── mail_thread.py │ └── res_users_token.py ├── static │ ├── description │ │ ├── capture1.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── js │ │ └── session.js └── views │ └── assets.xml ├── mrp_bom_section ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── mrp_bom.py ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── img │ │ └── banner.png └── views │ └── mrp_bom_views.xml ├── mrp_bom_variable_quantity ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── mrp_bom_line.py │ ├── mrp_bom_line_formula.py │ └── mrp_production.py ├── security │ └── ir.model.access.csv └── views │ ├── mrp_bom_line_formula_view.xml │ └── mrp_bom_view.xml ├── mrp_production_batch ├── __init__.py ├── __manifest__.py ├── data │ └── mrp_production_batch_data.xml ├── i18n │ ├── fr.po │ └── mrp_production_batch.pot ├── models │ ├── __init__.py │ ├── mrp.py │ ├── mrp_production_batch.py │ ├── mrp_workorder_batch.py │ ├── product_attribute.py │ ├── stock_move.py │ └── stock_move_batch.py ├── report │ └── mrp_production_batch_templates.xml ├── security │ ├── ir.model.access.csv │ └── mrp_security.xml ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── img │ │ └── banner.png └── views │ ├── mrp_production_batch_views.xml │ ├── mrp_workcenter_views.xml │ ├── mrp_workorder_batch_views.xml │ └── product_attribute_views.xml ├── mrp_routing ├── __init__.py ├── __manifest__.py ├── data │ └── mrp_data.xml ├── models │ ├── __init__.py │ ├── mrp_bom.py │ ├── mrp_production.py │ ├── mrp_routing.py │ ├── mrp_routing_workcenter.py │ ├── mrp_routing_workcenter_template.py │ └── mrp_workorder.py ├── security │ └── ir.model.access.csv └── views │ ├── mrp_bom_views.xml │ ├── mrp_production_views.xml │ └── mrp_routing_views.xml ├── mrp_uom_dimension ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── mrp_bom.py │ ├── mrp_production.py │ ├── stock.py │ └── stock_move.py ├── report │ ├── __init__.py │ ├── mrp_report_bom_structure.py │ └── mrp_report_bom_structure.xml ├── security │ └── ir.model.access.csv ├── static │ └── src │ │ ├── js │ │ └── mrp_bom_report.js │ │ └── xml │ │ └── mrp_bom_structure.xml ├── views │ ├── mrp_bom_views.xml │ ├── mrp_uom_dimension_templates.xml │ └── mrp_view.xml └── wizard │ ├── __init__.py │ └── change_production_qty.py ├── partner_capital_shareholders ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── res_partner.py ├── security │ └── ir.model.access.csv └── views │ ├── res_company_views.xml │ └── res_partner_views.xml ├── partner_statement_fix ├── __init__.py ├── __manifest__.py └── report │ ├── __init__.py │ └── activity_statement.py ├── printnode_base_mrp ├── __init__.py ├── __manifest__.py ├── data │ └── printnode_scenario_action_data.xml └── models │ ├── __init__.py │ └── mrp_production.py ├── product_min_price ├── __init__.py ├── __manifest__.py ├── i18n │ └── fr.po ├── models │ ├── __init__.py │ └── product.py ├── static │ └── description │ │ └── icon.png └── views │ └── product_view.xml ├── project_task_log ├── __init__.py ├── __manifest__.py ├── i18n │ ├── fr.po │ └── project_task_log.pot ├── models │ ├── __init__.py │ └── task.py ├── security │ ├── ir.model.access.csv │ └── project_task_log_security.xml ├── static │ └── description │ │ ├── ProjectTaskLog.png │ │ ├── icon.png │ │ └── index.html └── views │ └── task_view.xml ├── psms ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── coupon.py │ ├── pos_session.py │ ├── sale_old.py │ └── stock.py ├── report │ └── account_invoice_report_view.xml ├── security │ └── ir.model.access.csv └── views │ ├── coupon_view.xml │ ├── product_view.xml │ └── sale_view.xml ├── purchase_fleet ├── __init__.py ├── __manifest__.py ├── i18n │ └── fr.po ├── models │ ├── __init__.py │ ├── fleet.py │ └── purchase.py ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── capture1.png │ │ ├── capture2.png │ │ ├── capture3.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ ├── fleet_view.xml │ └── purchase_view.xml ├── purchase_mrp_bom_type ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── mrp_bom.py │ └── purchase_mrp.py └── views │ └── bom_views.xml ├── purchase_project ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── project_project.py │ ├── project_task.py │ └── purchase.py ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── img │ │ └── banner.png └── views │ ├── project_project_views.xml │ ├── project_task_views.xml │ └── purchase_views.xml ├── purchase_request_project ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── project_project.py │ ├── project_task.py │ └── purchase_request.py ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ ├── project_project_views.xml │ ├── project_task_views.xml │ └── purchase_request_views.xml ├── purchase_request_uom_dimension ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── purchase.py ├── report │ └── purchase_report_templates.xml ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png ├── views │ └── purchase_views.xml └── wizard │ ├── __init__.py │ └── purchase_request_line_make_purchase_order.py ├── purchase_total_delivered_invoiced ├── __init__.py ├── __manifest__.py ├── i18n │ └── fr.po ├── models │ ├── __init__.py │ └── purchase.py ├── static │ ├── description │ │ ├── capture1.png │ │ ├── capture2.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ └── purchase_view.xml ├── purchase_uom_dimension ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── purchase.py ├── report │ └── purchase_report_templates.xml ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ └── purchase_views.xml ├── purchase_vendor_pricelist ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── partner.py ├── static │ └── description │ │ └── icon.png └── views │ └── partner_view.xml ├── requirements.txt ├── sale_delivery_cost ├── __init__.py ├── __manifest__.py ├── partner.py ├── product.py ├── purchase.py ├── sale.py ├── security │ └── ir.model.access.csv └── views.xml ├── sale_fleet ├── __init__.py ├── __manifest__.py ├── i18n │ └── fr.po ├── models │ ├── __init__.py │ ├── fleet.py │ └── sale.py ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── capture1.png │ │ ├── capture2.png │ │ ├── capture3.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ ├── fleet_view.xml │ └── sale_view.xml ├── sale_invoice_lock ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── account_invoice.py ├── sale_mrp_lock ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── mrp_production.py ├── sale_operating_unit_sequence ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── ir_sequence.py │ └── sale.py ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── img │ │ └── banner.png └── views │ └── sequence_view.xml ├── sale_order_maps ├── __init__.py ├── __manifest__.py ├── hooks.py ├── models │ ├── __init__.py │ └── sale.py ├── static │ ├── description │ │ ├── icon.png │ │ ├── img.png │ │ ├── img_1.png │ │ ├── img_2.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ └── sale_views.xml ├── sale_project_section ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── sale.py └── static │ ├── description │ ├── capture1.png │ ├── capture2.png │ ├── capture3.png │ ├── icon.png │ └── index2.html │ └── src │ └── img │ └── banner.png ├── sale_stock_lock ├── __init__.py ├── __manifest__.py └── models │ ├── __init__.py │ └── stock_picking.py ├── sale_stock_manual_launch ├── __init__.py ├── __manifest__.py ├── i18n │ ├── fr.po │ └── sale_stock_manual_launch.pot ├── models │ ├── __init__.py │ └── sale.py ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── icon.png │ │ ├── img.png │ │ ├── img_1.png │ │ ├── img_2.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png ├── views │ └── views.xml └── wizards │ ├── __init__.py │ ├── launch_procurement_wizard.py │ └── launch_procurement_wizard_view.xml ├── sale_stock_manual_launch_mrp ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── sale.py └── wizards │ ├── __init__.py │ ├── launch_procurement_wizard.py │ └── launch_procurement_wizard_view.xml ├── sale_total_delivered_invoiced ├── __init__.py ├── __manifest__.py ├── i18n │ └── fr.po ├── models │ ├── __init__.py │ └── sale.py ├── static │ ├── description │ │ ├── capture1.png │ │ ├── capture2.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ └── sale_view.xml ├── sale_uom_dimension ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── sale.py ├── report │ └── sale_report_templates.xml ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── js │ │ ├── product_configurator_controller.js │ │ ├── product_configurator_mixin.js │ │ └── section_and_note_fields_backend.js └── views │ └── sale_views.xml ├── sale_uom_dimension_measure ├── __init__.py ├── __manifest__.py ├── data │ └── location_data.xml ├── models │ ├── __init__.py │ ├── product.py │ ├── sale.py │ └── sale_measure.py ├── security │ ├── ir.model.access.csv │ └── security.xml ├── static │ └── src │ │ └── js │ │ └── attendance_geolocation.js ├── views │ ├── assets.xml │ ├── product_views.xml │ └── views.xml └── wizards │ ├── __init__.py │ ├── launch_measures_wizard.py │ ├── launch_measures_wizard_view.xml │ └── launch_procurement_wizard.py ├── sale_uom_dimension_product_configurator ├── __init__.py ├── __manifest__.py ├── models │ └── __init__.py ├── static │ ├── description │ │ └── icon.png │ └── src │ │ └── js │ │ ├── product_configurator_controller.js │ │ ├── product_configurator_form.js │ │ ├── product_configurator_mixin.js │ │ ├── section_and_note_fields_backend.js │ │ └── variant_mixin.js └── views │ ├── assets.xml │ ├── sale_views.xml │ └── templates.xml ├── scripts ├── code_cleanup ├── start_server └── stop_server ├── stock_fleet ├── __init__.py ├── __manifest__.py ├── i18n │ └── fr.po ├── models │ ├── __init__.py │ ├── fleet.py │ └── stock.py ├── security │ └── ir.model.access.csv ├── static │ ├── description │ │ ├── capture1.png │ │ ├── capture2.png │ │ ├── capture3.png │ │ ├── icon.png │ │ └── index.html │ └── src │ │ └── img │ │ └── banner.png └── views │ ├── fleet_view.xml │ └── stock_view.xml ├── stock_maps ├── __init__.py ├── __manifest__.py ├── hooks.py ├── models │ ├── __init__.py │ └── picking.py └── views │ └── picking_views.xml ├── stock_push_on_done ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── stock_move.py └── views │ ├── fleet_view.xml │ └── stock_view.xml ├── stock_tier_validation ├── README.rst ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── stock_picking.py │ └── tier_definition.py ├── static │ └── description │ │ └── icon.png └── views │ └── stock_picking_view.xml ├── stock_uom_dimension ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── product.py │ ├── stock_move.py │ ├── stock_move_line.py │ ├── stock_quant.py │ └── stock_rule.py ├── report │ └── stock_picking_report_view.xml ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ ├── product_views.xml │ ├── stock_move_line_views.xml │ ├── stock_move_views.xml │ ├── stock_picking_views.xml │ └── stock_quant_views.xml ├── stock_uom_dimension_stock_barcode ├── __init__.py ├── __manifest__.py ├── models │ └── __init__.py ├── static │ └── description │ │ └── icon.png └── views │ └── stock_move_line_views.xml ├── uom_dimension ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ ├── product.py │ ├── uom_dimension_mixins.py │ └── uom_uom.py ├── security │ └── ir.model.access.csv ├── static │ └── description │ │ └── icon.png └── views │ ├── product_views.xml │ └── uom_view.xml ├── web_widget_remaining_days_color ├── __init__.py ├── __manifest__.py ├── static │ ├── description │ │ └── icon.png │ └── src │ │ ├── img │ │ └── banner.png │ │ └── js │ │ └── remaining_days_widget.js └── views │ └── asset_views.xml ├── website_sale_operating_unit ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── website.py └── views │ └── res_config_settings_views.xml ├── website_sale_stock_warehouse ├── __init__.py ├── __manifest__.py ├── models │ ├── __init__.py │ └── website.py └── views │ └── res_config_settings_views.xml └── website_sale_uom_dimension ├── __init__.py ├── __manifest__.py ├── controllers ├── __init__.py └── main.py ├── models └── sale_order.py ├── security └── ir.model.access.csv ├── static ├── description │ └── icon.png └── src │ └── js │ └── website_sale.js └── views └── sale_views.xml /.directory: -------------------------------------------------------------------------------- 1 | [Dolphin] 2 | SortOrder=1 3 | SortRole=date 4 | Timestamp=2017,1,3,16,32,57 5 | Version=3 6 | ViewMode=1 7 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: BADEP # become our patron 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BADEP Addons for Odoo 2 | This is the main repository for Odoo modules developed by BADEP. These can be micro-modules which add minor functionalities, vertical modules which can contain a whole functional axis or Moroccan localization. 3 | 4 | Donation 5 | ======== 6 | Feel free to support our efforts by purchasing [our modules at app store](https://apps.odoo.com/apps/modules/browse?price=Paid&order=Newest&author=BADEP) 7 | -------------------------------------------------------------------------------- /account_bank_statement_debit_credit/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /account_bank_statement_debit_credit/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Account Bank Statement Debit Credit", 4 | 5 | 'summary': """ 6 | Add debit and credit columns to bank statements""", 7 | 8 | 'description': """ 9 | 10 | """, 11 | 12 | 'author': "BADEP", 13 | 'website': "https://badep.ma", 14 | 15 | 'category': 'Invoicing & Payments', 16 | 'version': '16.0.1.0', 17 | 18 | 'depends': ['account'], 19 | 'images': ['static/src/img/banner.png'], 20 | 'license': 'AGPL-3', 21 | 'data': [ 22 | 'views/account_bank_statement_line_views.xml', 23 | ], 24 | 'installable': False, 25 | } -------------------------------------------------------------------------------- /account_bank_statement_debit_credit/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import account_bank_statement_line -------------------------------------------------------------------------------- /account_bank_statement_debit_credit/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_bank_statement_debit_credit/static/description/icon.png -------------------------------------------------------------------------------- /account_bank_statement_debit_credit/views/account_bank_statement_line_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | view_bank_statement_debit_credit_form 4 | account.bank.statement 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | amount > 0 13 | amount < 0 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /account_invoice_fleet/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /account_invoice_fleet/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Account Invoice Fleet", 4 | 5 | 'summary': """ 6 | Link Invoices with Fleet""", 7 | 8 | 'description': """ 9 | Add vehicles and drivers assignation on Invoices. These Statistics can also be accessed directly from the vehicle view. 10 | """, 11 | 12 | 'author': "BADEP", 13 | 'website': "https://badep.ma", 14 | 15 | 'category': 'Invoicing & Payments', 16 | 'version': '16.0.2.0', 17 | 18 | 'depends': ['account', 'fleet'], 19 | 'images': ['static/src/img/banner.png'], 20 | 'license': 'AGPL-3', 21 | 'data': [ 22 | 'views/account_view.xml', 23 | 'views/fleet_view.xml', 24 | ], 25 | 'installable': False, 26 | } -------------------------------------------------------------------------------- /account_invoice_fleet/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import account, fleet -------------------------------------------------------------------------------- /account_invoice_fleet/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_invoice_fleet/static/description/capture1.png -------------------------------------------------------------------------------- /account_invoice_fleet/static/description/capture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_invoice_fleet/static/description/capture2.png -------------------------------------------------------------------------------- /account_invoice_fleet/static/description/capture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_invoice_fleet/static/description/capture3.png -------------------------------------------------------------------------------- /account_invoice_fleet/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_invoice_fleet/static/description/icon.png -------------------------------------------------------------------------------- /account_invoice_fleet/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_invoice_fleet/static/src/img/banner.png -------------------------------------------------------------------------------- /account_journal_type/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /account_journal_type/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Account Journal User type", 4 | 5 | 'summary': """ 6 | Add user-defined types to journals to help group journal by their nature (Payroll, etc.)""", 7 | 8 | 'description': """ 9 | 10 | """, 11 | 12 | 'author': "BADEP", 13 | 'website': "https://badep.ma", 14 | 15 | 'category': 'Invoicing & Payments', 16 | 'version': '16.0.1.0', 17 | 18 | 'depends': ['account'], 19 | 'images': ['static/src/img/banner.png'], 20 | 'license': 'AGPL-3', 21 | 'data': [ 22 | 'security/ir.model.access.csv', 23 | 'views/account_journal_views.xml', 24 | 'views/account_journal_type_views.xml', 25 | ], 26 | 'installable': False, 27 | } -------------------------------------------------------------------------------- /account_journal_type/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_journal 2 | from . import account_journal_type -------------------------------------------------------------------------------- /account_journal_type/models/account_journal.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | class AccountJournal(models.Model): 4 | _inherit = 'account.journal' 5 | 6 | user_type_id = fields.Many2one('account.journal.type', string='Sous-Type', inverse='_inverse_user_type', required=False) 7 | 8 | def _inverse_user_type(self): 9 | for rec in self: 10 | rec.type = rec.user_type_id.type -------------------------------------------------------------------------------- /account_journal_type/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_acount_journal_type_all,account.journal.type.all,model_account_journal_type,account.group_account_invoice,1,0,0,0 3 | access_acount_journal_type_accountant,account.journal.type.accountant,model_account_journal_type,account.group_account_manager,1,1,1,1 -------------------------------------------------------------------------------- /account_journal_type/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_journal_type/static/description/icon.png -------------------------------------------------------------------------------- /account_journal_type/views/account_journal_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | view_account_journal_form_inherit_usertype 4 | account.journal 5 | 6 | 7 | 8 | 9 | 10 | 11 | {'readonly': [('user_type_id', '!=', 'False')]} 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /account_payment_date_maturity/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /account_payment_date_maturity/i18n/fr.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * account_payment_date_maturity 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 12.0+e\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "POT-Creation-Date: 2019-07-20 16:37+0000\n" 10 | "PO-Revision-Date: 2019-07-20 16:37+0000\n" 11 | "Last-Translator: <>\n" 12 | "Language-Team: \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: \n" 16 | "Plural-Forms: \n" 17 | 18 | #. module: account_payment_date_maturity 19 | #: model:ir.model.fields,field_description:account_payment_date_maturity.field_account_payment__date_maturity 20 | msgid "Maturity Date" 21 | msgstr "Date d'échéance" 22 | 23 | #. module: account_payment_date_maturity 24 | #: model:ir.model,name:account_payment_date_maturity.model_account_payment 25 | msgid "Payments" 26 | msgstr "Paiements" 27 | 28 | -------------------------------------------------------------------------------- /account_payment_date_maturity/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import account_payment -------------------------------------------------------------------------------- /account_payment_date_maturity/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_payment_date_maturity/static/description/icon.png -------------------------------------------------------------------------------- /account_payment_date_maturity/static/description/payment_form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_payment_date_maturity/static/description/payment_form.png -------------------------------------------------------------------------------- /account_payment_date_maturity/static/description/payment_pivot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_payment_date_maturity/static/description/payment_pivot.png -------------------------------------------------------------------------------- /account_payment_date_maturity/static/description/payment_tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_payment_date_maturity/static/description/payment_tree.png -------------------------------------------------------------------------------- /account_uom_dimension/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models -------------------------------------------------------------------------------- /account_uom_dimension/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "UoM Dimensions in Invoices", 3 | 4 | 'summary': """ 5 | Allows the use of UoM dimensions in invoices.""", 6 | 'author': "BADEP", 7 | 'website': "https://badep.ma", 8 | 'category': 'Invoicing Management', 9 | 'version': '16.0.1.0.1', 10 | 'images': ['static/src/img/banner.png'], 11 | 'license': 'AGPL-3', 12 | 'depends': ['account', 'uom_dimension'], 13 | 'data': [ 14 | 'report/invoice_report_templates.xml', 15 | 'views/invoice_views.xml', 16 | 'security/ir.model.access.csv', 17 | ], 18 | 'auto_install': True, 19 | 'installable': False, 20 | } 21 | -------------------------------------------------------------------------------- /account_uom_dimension/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_move -------------------------------------------------------------------------------- /account_uom_dimension/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_account_move_line_dimension_invoicing,account.move.line.dimension.invoicing,model_account_move_line_dimension,account.group_account_invoice,1,1,1,1 -------------------------------------------------------------------------------- /account_uom_dimension/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/account_uom_dimension/static/description/icon.png -------------------------------------------------------------------------------- /appspec.yml: -------------------------------------------------------------------------------- 1 | version: 0.0 2 | os: linux 3 | files: 4 | - source: / 5 | destination: /var/lib/odoo/.local/share/Odoo/addons/repos/badep/addons 6 | hooks: 7 | ApplicationStop: 8 | - location: scripts/stop_server 9 | runas: ubuntu 10 | BeforeInstall: 11 | - location: scripts/code_cleanup 12 | runas: ubuntu 13 | ApplicationStart: 14 | - location: scripts/start_server 15 | runas: ubuntu -------------------------------------------------------------------------------- /base_action_boto3/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import models -------------------------------------------------------------------------------- /base_action_boto3/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "boto3 in server actions", 3 | 4 | 'summary': """Allow the use of boto3 lib in server actions 5 | """, 6 | 7 | 'description': """ 8 | """, 9 | 10 | 'author': "BADEP", 11 | 'website': "https://badep.ma", 12 | 13 | 'category': 'Technical Settings', 14 | 'version': '16.0.1', 15 | 16 | 'depends': [ 17 | 'base' 18 | ], 19 | 'external_dependencies': { 20 | 'python': [ 21 | 'boto3', 22 | ], 23 | }, 24 | 'installable': False, 25 | } 26 | -------------------------------------------------------------------------------- /base_action_boto3/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /base_action_boto3/models/models.py: -------------------------------------------------------------------------------- 1 | from odoo import models, api 2 | from odoo.tools import safe_eval 3 | 4 | class IrActions(models.Model): 5 | _inherit = 'ir.actions.actions' 6 | 7 | @api.model 8 | def _get_eval_context(self, action=None): 9 | res = super(IrActions, self)._get_eval_context(action=action) 10 | res.update({ 11 | 'boto3': safe_eval.wrap_module(__import__('boto3'), ['resource', 'client']) 12 | }) 13 | return res -------------------------------------------------------------------------------- /base_action_random/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import models -------------------------------------------------------------------------------- /base_action_random/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "random in server actions", 4 | 5 | 'summary': """Allow the use of xmlrpc lib in server actions 6 | """, 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Technical Settings', 18 | 'version': '16.0.1', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': [ 22 | 'base' 23 | ], 24 | 25 | 'installable': False, 26 | } 27 | -------------------------------------------------------------------------------- /base_action_random/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /base_action_requests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import models -------------------------------------------------------------------------------- /base_action_requests/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Requests in server actions", 4 | 5 | 'summary': """Allow the use of requests lib in server actions 6 | """, 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Technical Settings', 18 | 'version': '16.0.1', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': [ 22 | 'base' 23 | ], 24 | 25 | 'installable': False, 26 | } 27 | -------------------------------------------------------------------------------- /base_action_requests/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /base_action_requests/models/models.py: -------------------------------------------------------------------------------- 1 | from odoo import models, api 2 | from odoo.tools import safe_eval 3 | 4 | class IrActions(models.Model): 5 | _inherit = 'ir.actions.actions' 6 | 7 | @api.model 8 | def _get_eval_context(self, action=None): 9 | res = super(IrActions, self)._get_eval_context(action=action) 10 | res.update({ 11 | 'requests': safe_eval.wrap_module(__import__('requests'), ['head', 'get', 'post', 'delete', 'put']) 12 | }) 13 | return res -------------------------------------------------------------------------------- /base_action_xmlrpc/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import models -------------------------------------------------------------------------------- /base_action_xmlrpc/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "XMLRPC in server actions", 4 | 5 | 'summary': """Allow the use of xmlrpc lib in server actions 6 | """, 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Technical Settings', 18 | 'version': '16.0.1', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': [ 22 | 'base' 23 | ], 24 | 25 | 'installable': False, 26 | } 27 | -------------------------------------------------------------------------------- /base_action_xmlrpc/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /base_action_xmlrpc/models/models.py: -------------------------------------------------------------------------------- 1 | from odoo import models, api 2 | from odoo.tools import safe_eval 3 | 4 | class IrActions(models.Model): 5 | _inherit = 'ir.actions.actions' 6 | 7 | @api.model 8 | def _get_eval_context(self, action=None): 9 | res = super(IrActions, self)._get_eval_context(action=action) 10 | res.update({ 11 | 'xmlrpc': safe_eval.wrap_module(__import__('xmlrpc'), {'client': ['ServerProxy']}) 12 | }) 13 | return res 14 | -------------------------------------------------------------------------------- /base_attachment_optimize/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import models -------------------------------------------------------------------------------- /base_attachment_optimize/data/ir_cron.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Compress Attachments 5 | 6 | 7 | 8 | 1 9 | hours 10 | -1 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /base_attachment_optimize/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import ir_attachment, res_config_settings 3 | -------------------------------------------------------------------------------- /base_attachment_optimize/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/base_attachment_optimize/static/description/capture1.png -------------------------------------------------------------------------------- /base_attachment_optimize/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/base_attachment_optimize/static/description/icon.png -------------------------------------------------------------------------------- /base_import_writable/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models -------------------------------------------------------------------------------- /base_import_writable/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Import writable fields", 4 | 5 | 'summary': """ 6 | """, 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Technical Settings', 18 | 'version': '16.0.1', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': [ 22 | 'base_import', 23 | ], 24 | 25 | 'installable': True, 26 | 'auto_install': False, 27 | 'application': False 28 | } 29 | -------------------------------------------------------------------------------- /base_import_writable/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import base_import -------------------------------------------------------------------------------- /base_partner_company_inherit/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import models -------------------------------------------------------------------------------- /base_partner_company_inherit/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Partner Company Inherit", 4 | 5 | 'summary': """!!Experimental!! Technical module to let all fields in partner available in company. 6 | """, 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Technical Settings', 18 | 'version': '16.0.1', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': [ 22 | 'base' 23 | ], 24 | 'installable': False, 25 | } 26 | -------------------------------------------------------------------------------- /base_partner_company_inherit/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import res_company -------------------------------------------------------------------------------- /base_partner_company_inherit/models/res_company.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | class ResCompany(models.Model): 4 | _inherit = 'res.company' 5 | _inherits = {'res.partner': 'partner_id'} 6 | _name = 'res.company' -------------------------------------------------------------------------------- /base_partner_merge_extended/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import wizard -------------------------------------------------------------------------------- /base_partner_merge_extended/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Merge partners by additionnal fields", 4 | 5 | 'summary': """ 6 | Add phone and mobile on the merge partner wizard""", 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Technical', 18 | 'version': '16.0.0.1', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': ['base'], 22 | 23 | 'images': ['static/src/img/banner.png'], 24 | 'license': 'AGPL-3', 25 | # always loaded 26 | 'data': [ 27 | 'wizard/base_partner_merge_views.xml', 28 | ], 29 | 'installable': False, 30 | } -------------------------------------------------------------------------------- /base_partner_merge_extended/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/base_partner_merge_extended/static/description/icon.png -------------------------------------------------------------------------------- /base_partner_merge_extended/static/description/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Merge partner Extended

4 |

Add the possibility to merge partners by phone and mobile

5 |
6 |
7 |
-------------------------------------------------------------------------------- /base_partner_merge_extended/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from. import base_partner_merge -------------------------------------------------------------------------------- /base_partner_merge_extended/wizard/base_partner_merge_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | base.partner.merge.automatic.wizard.form.extended 4 | base.partner.merge.automatic.wizard 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /base_upgrade_path/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from . import models -------------------------------------------------------------------------------- /base_upgrade_path/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Check upgrade path", 4 | 5 | 'summary': """Allow to check if module is upgradable in target version 6 | """, 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Technical Settings', 18 | 'version': '14.0.1', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': [ 22 | 'base' 23 | ], 24 | 'data': [ 25 | 'data/ir_cron.xml', 26 | 'views/ir_module_module_views.xml', 27 | 'security/ir.model.access.csv' 28 | ], 29 | 'installable': True, 30 | } 31 | -------------------------------------------------------------------------------- /base_upgrade_path/data/ir_cron.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Check Version Upgrades 5 | 6 | 7 | 8 | 1 9 | days 10 | -1 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /base_upgrade_path/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import ir_module -------------------------------------------------------------------------------- /base_upgrade_path/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_module_repo,access_module_repo,model_ir_module_repo,base.group_erp_manager,1,1,1,1 -------------------------------------------------------------------------------- /crm_facebook_leads/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers, models 2 | -------------------------------------------------------------------------------- /crm_facebook_leads/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "CRM Facebook Lead Ads", 3 | 'summary': """ 4 | Sync Facebook Leads with Odoo CRM""", 5 | 6 | 'description': """ 7 | """, 8 | 'author': "BADEP, Vauxoo", 9 | 'website': "https://badep.ma", 10 | # Categories can be used to filter modules in modules listing 11 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 12 | # for the full list 13 | 'category': 'Lead Automation', 14 | 'version': '16.0.2.0.1', 15 | 16 | 'depends': ['crm'], 17 | 'images': ['static/src/img/banner.png'], 18 | 'license': 'AGPL-3', 19 | 20 | 'data': [ 21 | 'data/ir_cron.xml', 22 | 'data/crm.facebook.form.mapping.csv', 23 | 'security/ir.model.access.csv', 24 | 'views/crm_view.xml', 25 | 'views/res_config_settings_views.xml', 26 | ], 27 | 'installable': True, 28 | } 29 | -------------------------------------------------------------------------------- /crm_facebook_leads/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | from . import main 2 | -------------------------------------------------------------------------------- /crm_facebook_leads/data/crm.facebook.form.mapping.csv: -------------------------------------------------------------------------------- 1 | id,facebook_field,odoo_field:id 2 | mapping_company_name,company_name,crm.field_crm_lead__partner_name 3 | mapping_full_name,full_name,crm.field_crm_lead__contact_name 4 | mapping_job_title,job_title,crm.field_crm_lead__function 5 | mapping_phone_number,phone_number,crm.field_crm_lead__mobile 6 | mapping_email,email,crm.field_crm_lead__email_from -------------------------------------------------------------------------------- /crm_facebook_leads/data/ir_cron.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Fetch Facebook Leads 5 | 6 | 7 | 8 | 1 9 | hours 10 | -1 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /crm_facebook_leads/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import crm_facebook, crm_lead, utm, ir_config_parameter, res_config_settings 2 | -------------------------------------------------------------------------------- /crm_facebook_leads/models/ir_config_parameter.py: -------------------------------------------------------------------------------- 1 | from odoo.models import api, Model 2 | from odoo.tools.safe_eval import const_eval 3 | 4 | 5 | class IrConfigParameter(Model): 6 | _inherit = "ir.config_parameter" 7 | 8 | @api.model 9 | def get_crm_facebook_config(self): 10 | get_param = self.sudo().get_param 11 | return { 12 | 'crm_fb_app_id': const_eval(get_param("crm_facebook_leads.crm_fb_app_id", 'False')), 13 | 'crm_fb_app_secret': get_param("crm_facebook_leads.crm_fb_app_secret", 'False'), 14 | 'crm_fb_access_token': get_param("crm_facebook_leads.crm_fb_access_token", 'False'), 15 | } 16 | -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/capture1.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/capture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/capture2.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/capture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/capture3.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/capture4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/capture4.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/capture5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/capture5.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/config1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/config1.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/config2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/config2.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/config3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/config3.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/config4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/config4.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/config6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/config6.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/description/icon.png -------------------------------------------------------------------------------- /crm_facebook_leads/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_facebook_leads/static/src/img/banner.png -------------------------------------------------------------------------------- /crm_lead_project/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizard 3 | -------------------------------------------------------------------------------- /crm_lead_project/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright 2018 Camptocamp SA 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 4 | { 5 | "name": "CRM Lead Project", 6 | "summary": "Create a project when converting lead into opportunity", 7 | "version": "10.0.1.0.0", 8 | "category": "Project", 9 | "website": "https://github.com/OCA/crm", 10 | "author": "Camptocamp, Odoo Community Association (OCA)", 11 | "license": "AGPL-3", 12 | "application": False, 13 | "installable": True, 14 | "depends": [ 15 | "crm", 16 | "project", 17 | ], 18 | "data": [ 19 | "wizard/crm_opportunity_create_project.xml", 20 | "views/crm_lead.xml", 21 | "views/crm_project.xml", 22 | "views/project.xml", 23 | "wizard/crm_lead_to_opportunity.xml", 24 | ], 25 | } 26 | -------------------------------------------------------------------------------- /crm_lead_project/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import crm_lead 2 | from . import project 3 | -------------------------------------------------------------------------------- /crm_lead_project/readme/CONTRIBUTORS.rst: -------------------------------------------------------------------------------- 1 | * Akim Juillerat 2 | -------------------------------------------------------------------------------- /crm_lead_project/readme/DESCRIPTION.rst: -------------------------------------------------------------------------------- 1 | This module extends the features of crm module, allowing to create and link 2 | a project when a lead is converted into an opportunity. 3 | -------------------------------------------------------------------------------- /crm_lead_project/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/crm_lead_project/static/description/icon.png -------------------------------------------------------------------------------- /crm_lead_project/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright 2018 Camptocamp SA 3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). 4 | -------------------------------------------------------------------------------- /crm_lead_project/views/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | project.project.form.inherit 5 | project.project 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /purchase_request_project/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models -------------------------------------------------------------------------------- /purchase_request_project/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "Purchase Request Project", 3 | 4 | 'summary': """ 5 | Link Purchase Requests with Project""", 6 | 7 | 'description': """ 8 | """, 9 | 10 | 'author': "BADEP", 11 | 'website': "https://badep.ma", 12 | 13 | 'category': 'Project', 14 | 'version': '14.0.1.0', 15 | 16 | 'depends': ['purchase_project'], 17 | 'images': ['static/src/img/banner.png'], 18 | 'license': 'AGPL-3', 19 | 'data': [ 20 | 'views/project_project_views.xml', 21 | 'views/project_task_views.xml', 22 | 'views/purchase_request_views.xml', 23 | ], 24 | 'installable': True, 25 | #'price': 49.00, 26 | 'currency': 'EUR', 27 | } -------------------------------------------------------------------------------- /purchase_request_project/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import project_project 2 | from . import project_task 3 | from . import purchase_request 4 | 5 | 6 | -------------------------------------------------------------------------------- /purchase_request_project/models/project_project.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from dateutil.relativedelta import relativedelta 3 | 4 | from odoo import models, fields, api 5 | 6 | class ProjectProject(models.Model): 7 | _inherit = 'project.project' 8 | 9 | purchase_request_ids = fields.One2many( 10 | 'purchase.request', 11 | 'project_id', 12 | string='Demandes d\'achat', 13 | ) 14 | purchase_request_count = fields.Integer('Nombre de DA', compute='_compute_purchase_request_count') 15 | 16 | @api.depends('purchase_request_ids') 17 | def _compute_purchase_request_count(self): 18 | for project in self: 19 | project.purchase_request_count = len(project.purchase_request_ids) -------------------------------------------------------------------------------- /purchase_request_project/models/project_task.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | 4 | class ProjectTask(models.Model): 5 | _inherit = 'project.task' 6 | 7 | purchase_request_ids = fields.One2many('purchase.request', 'task_id', 'Demandes d\'achat') 8 | purchase_request_count = fields.Integer( 9 | compute='_purchase_request_count', 10 | string="Demandes d\'achat", 11 | store=True, 12 | ) 13 | 14 | @api.depends('purchase_request_ids') 15 | def _purchase_request_count(self): 16 | for rec in self: 17 | rec.purchase_request_count = len(rec.purchase_request_ids) 18 | 19 | def view_purchase_request(self): 20 | for rec in self: 21 | res = self.env.ref('purchase_request.purchase_request_form_action') 22 | res = res.read()[0] 23 | res['domain'] = str([('id', 'in', rec.purchase_request_ids.ids)]) 24 | return res 25 | -------------------------------------------------------------------------------- /purchase_request_project/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -------------------------------------------------------------------------------- /purchase_request_project/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_request_project/static/description/icon.png -------------------------------------------------------------------------------- /purchase_request_project/views/project_task_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | project.task.form 5 | project.task 6 | 7 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /purchase_request_uom_dimension/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models, wizard -------------------------------------------------------------------------------- /purchase_request_uom_dimension/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "UoM Dimensions in purchases", 3 | 4 | 'summary': """ 5 | Allows the use of UoM dimensions in purchases.""", 6 | 'author': "BADEP", 7 | 'website': "https://badep.ma", 8 | 'category': 'purchases Management', 9 | 'version': '16.0.1.0.1', 10 | 'images': ['static/src/img/banner.png'], 11 | 'license': 'AGPL-3', 12 | 'depends': ['purchase_request', 'uom_dimension'], 13 | 'data': [ 14 | 'views/purchase_views.xml', 15 | 'report/purchase_report_templates.xml', 16 | 'security/ir.model.access.csv', 17 | ], 18 | 'auto_install': False, 19 | 'installable': False 20 | } -------------------------------------------------------------------------------- /purchase_request_uom_dimension/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import purchase -------------------------------------------------------------------------------- /purchase_request_uom_dimension/models/purchase.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | class PurchaseRequestLine(models.Model): 4 | _inherit = ['purchase.request.line', 'uom.line'] 5 | _name = 'purchase.request.line' 6 | 7 | _uom_field = 'product_uom_id' 8 | _qty_field = 'product_qty' 9 | 10 | dimension_ids = fields.One2many('purchase.request.line.dimension', 'line_id', string='Dimensions', copy=True) 11 | 12 | @api.depends(_qty_field) 13 | def _get_product_dimension_qty(self): 14 | super()._get_product_dimension_qty() 15 | 16 | @api.onchange(_uom_field) 17 | def onchange_product_uom_set_dimensions(self): 18 | super().onchange_product_uom_set_dimensions() 19 | 20 | 21 | class PurchaseRequestLineDimension(models.Model): 22 | _inherit = 'uom.line.dimension' 23 | _name = 'purchase.request.line.dimension' 24 | 25 | line_id = fields.Many2one('purchase.request.line', required=True, ondelete='cascade') -------------------------------------------------------------------------------- /purchase_request_uom_dimension/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_purchase_request_line_dimension_purchase_user,purchase.request.line.dimension.purchase_user,model_purchase_request_line_dimension,purchase_request.group_purchase_request_user,1,1,1,1 -------------------------------------------------------------------------------- /purchase_request_uom_dimension/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_request_uom_dimension/static/description/icon.png -------------------------------------------------------------------------------- /purchase_request_uom_dimension/wizard/__init__.py: -------------------------------------------------------------------------------- 1 | from . import purchase_request_line_make_purchase_order -------------------------------------------------------------------------------- /purchase_request_uom_dimension/wizard/purchase_request_line_make_purchase_order.py: -------------------------------------------------------------------------------- 1 | from odoo import api, models 2 | 3 | class PurchaseRequestLineMakePurchaseOrder(models.TransientModel): 4 | _inherit = "purchase.request.line.make.purchase.order" 5 | 6 | @api.model 7 | def _prepare_purchase_order_line(self, po, item): 8 | res = super()._prepare_purchase_order_line(po, item) 9 | if res: 10 | res.update({ 11 | 'dimension_ids': [(0, 0, {'dimension_id': d.dimension_id.id, 'quantity': d.quantity}) for d in item.line_id.dimension_ids] 12 | }) 13 | return res 14 | 15 | @api.model 16 | def _get_order_line_search_domain(self, order, item): 17 | res = super()._get_order_line_search_domain(order, item) 18 | if item.line_id.dimension_ids: 19 | res.append(("purchase_request_lines", "in", [item.line_id.id])) 20 | return res -------------------------------------------------------------------------------- /purchase_total_delivered_invoiced/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /purchase_total_delivered_invoiced/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import purchase -------------------------------------------------------------------------------- /purchase_total_delivered_invoiced/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_total_delivered_invoiced/static/description/capture1.png -------------------------------------------------------------------------------- /purchase_total_delivered_invoiced/static/description/capture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_total_delivered_invoiced/static/description/capture2.png -------------------------------------------------------------------------------- /purchase_total_delivered_invoiced/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_total_delivered_invoiced/static/description/icon.png -------------------------------------------------------------------------------- /purchase_total_delivered_invoiced/static/description/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Total Delivered & Invoiced in Purchase Orders

4 |

Adds the monetary value of the total received & invoiced in purchase orders

5 |

Configuration

6 |

None.

7 |

Usage

8 |

In purchase order form view you can now see how much was received & invoiced in monetary value:

9 |
10 |

Same thing in the purchase order Tree view:

11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /purchase_total_delivered_invoiced/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_total_delivered_invoiced/static/src/img/banner.png -------------------------------------------------------------------------------- /purchase_uom_dimension/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models -------------------------------------------------------------------------------- /purchase_uom_dimension/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "UoM Dimensions in purchases", 3 | 4 | 'summary': """ 5 | Allows the use of UoM dimensions in purchases.""", 6 | 'author': "BADEP", 7 | 'website': "https://badep.ma", 8 | 'category': 'purchases Management', 9 | 'version': '16.0.1.0.1', 10 | 'images': ['static/src/img/banner.png'], 11 | 'license': 'AGPL-3', 12 | 'depends': ['purchase', 'uom_dimension'], 13 | 'data': [ 14 | 'views/purchase_views.xml', 15 | 'report/purchase_report_templates.xml', 16 | 'security/ir.model.access.csv', 17 | ], 18 | 'auto_install': False, 19 | 'installable': False, 20 | } -------------------------------------------------------------------------------- /purchase_uom_dimension/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import purchase -------------------------------------------------------------------------------- /purchase_uom_dimension/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_uom_dimension_purchase_manager,uom.dimension purchasemanager,uom_dimension.model_uom_dimension,purchase.group_purchase_manager,1,1,1,1 3 | access_purchase_order_line_dimension_purchase_user,purchase.order.line.dimension.purchase_user,model_purchase_order_line_dimension,purchase.group_purchase_user,1,1,1,1 -------------------------------------------------------------------------------- /purchase_uom_dimension/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_uom_dimension/static/description/icon.png -------------------------------------------------------------------------------- /purchase_vendor_pricelist/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /purchase_vendor_pricelist/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Purchase Vendor Pricelist", 4 | 5 | 'summary': """ 6 | Display a form for list prices in vendor""", 7 | 8 | 'description': """ 9 | """, 10 | 11 | 'author': "BADEP", 12 | 'website': "https://badep.ma", 13 | 14 | # Categories can be used to filter modules in modules listing 15 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 16 | # for the full list 17 | 'category': 'Inventory', 18 | 'version': '16.0.1.0', 19 | 20 | # any module necessary for this one to work correctly 21 | 'depends': ['product'], 22 | 'images': ['static/src/img/banner.png'], 23 | 'license': 'AGPL-3', 24 | 25 | # always loaded 26 | 'data': [ 27 | # 'security/ir.model.access.csv', 28 | 'views/partner_view.xml', 29 | ], 30 | 'installable': False 31 | } -------------------------------------------------------------------------------- /purchase_vendor_pricelist/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import partner -------------------------------------------------------------------------------- /purchase_vendor_pricelist/models/partner.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from odoo import models, fields, api 4 | 5 | class ResPartner(models.Model): 6 | _inherit = 'res.partner' 7 | 8 | supplierinfo_ids = fields.One2many('product.supplierinfo', 'name', string='Liste des prix') 9 | 10 | 11 | def act_show_supplierinfo(self): 12 | action = self.env.ref('product.product_supplierinfo_type_action') 13 | 14 | result = { 15 | 'name': action.name, 16 | 'help': action.help, 17 | 'type': action.type, 18 | 'view_type': action.view_type, 19 | 'view_mode': action.view_mode, 20 | 'target': action.target, 21 | 'context': action.context, 22 | 'res_model': action.res_model, 23 | } 24 | result['domain'] = "[('id','in',["+','.join(map(str, self.supplierinfo_ids.ids))+"])]" 25 | return result -------------------------------------------------------------------------------- /purchase_vendor_pricelist/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/purchase_vendor_pricelist/static/description/icon.png -------------------------------------------------------------------------------- /purchase_vendor_pricelist/views/partner_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | purchase_vendor_pricelist.view_partner_form 5 | 6 | res.partner 7 | form 8 | 9 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pyfcm 2 | boto3 -------------------------------------------------------------------------------- /sale_delivery_cost/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import sale, product, partner, purchase 4 | -------------------------------------------------------------------------------- /sale_delivery_cost/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | { 4 | 'name': 'Delivery costs on products', 5 | 'version': '1.0', 6 | 'category': 'Sales Management', 7 | 'description': """ 8 | Add delivery costs directly on product price. 9 | """, 10 | 'author': 'BADEP', 11 | 'website': 'http://www.badep.ma', 12 | 'depends': ['sale_stock', 'purchase'], 13 | 'data': ['views.xml','security/ir.model.access.csv'], 14 | 'installable': False, 15 | } 16 | -------------------------------------------------------------------------------- /sale_delivery_cost/partner.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from odoo import fields, models 4 | 5 | 6 | class res_partner(models.Model): 7 | _inherit = 'res.partner' 8 | 9 | code = fields.Many2one('product.delivery.code', ondelete='set null', string='Tarif DT') 10 | 11 | -------------------------------------------------------------------------------- /sale_delivery_cost/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_product_delivery_code_salesman,product.delivery.code,model_product_delivery_code,sales_team.group_sale_manager,1,0,0,0 3 | access_product_delivery_cost_salesman,product.delivery.cost,model_product_delivery_cost,sales_team.group_sale_manager,1,0,0,0 4 | access_product_delivery_code_salesmanager,product.delivery.code,model_product_delivery_code,sales_team.group_sale_manager,1,1,1,1 5 | access_product_delivery_cost_salesmanager,product.delivery.cost,model_product_delivery_cost,sales_team.group_sale_manager,1,1,1,1 6 | -------------------------------------------------------------------------------- /sale_fleet/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /sale_fleet/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import sale, fleet -------------------------------------------------------------------------------- /sale_fleet/models/sale.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from odoo import models, fields, api 4 | 5 | class SaleOrder(models.Model): 6 | _inherit = 'sale.order' 7 | vehicle = fields.Many2one('fleet.vehicle', domain=[('sale_ok','=',True)], readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}) 8 | driver = fields.Many2one('res.partner', readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}) 9 | 10 | @api.onchange('vehicle') 11 | def set_driver(self): 12 | if self.vehicle and self.vehicle.driver_id: 13 | self.driver = self.vehicle.driver_id 14 | else: 15 | self.driver = False 16 | 17 | def action_confirm(self): 18 | res = super(SaleOrder, self).action_confirm() 19 | self.picking_ids.write({'vehicle': self.vehicle and self.vehicle.id, 'driver': self.driver and self.driver.id}) 20 | return res 21 | -------------------------------------------------------------------------------- /sale_fleet/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_fleet_vehicle_sale_user,Sale Fleet: Fleet for Sale users,fleet.model_fleet_vehicle,sales_team.group_sale_salesman,1,0,0,0 -------------------------------------------------------------------------------- /sale_fleet/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_fleet/static/description/capture1.png -------------------------------------------------------------------------------- /sale_fleet/static/description/capture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_fleet/static/description/capture2.png -------------------------------------------------------------------------------- /sale_fleet/static/description/capture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_fleet/static/description/capture3.png -------------------------------------------------------------------------------- /sale_fleet/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_fleet/static/description/icon.png -------------------------------------------------------------------------------- /sale_fleet/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_fleet/static/src/img/banner.png -------------------------------------------------------------------------------- /sale_invoice_lock/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /sale_invoice_lock/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sale lock related invoices', 3 | 'summary': 'Lock invoices of sale when it is locked', 4 | 'version': '16.0.1.1.1', 5 | 'category': 'Generic Modules/Sale', 6 | 'author': "BADEP", 7 | 'depends': ['sale'], 8 | 'license': 'AGPL-3', 9 | 'data': [ 10 | ], 11 | 'installable': False, 12 | } 13 | -------------------------------------------------------------------------------- /sale_invoice_lock/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_invoice -------------------------------------------------------------------------------- /sale_invoice_lock/models/account_invoice.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | from odoo.exceptions import UserError 3 | 4 | 5 | class AccountInvoice(models.Model): 6 | _inherit = 'account.move' 7 | 8 | def write(self, vals): 9 | for rec in self.filtered(lambda i: any(s.state == 'done' for s in i.invoice_line_ids.mapped('sale_line_ids.order_id'))): 10 | raise UserError('La commande relative est bloquée') 11 | return super().write(vals) -------------------------------------------------------------------------------- /sale_mrp_lock/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /sale_mrp_lock/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sale lock related production orders', 3 | 'summary': 'Lock productions of sale when it is locked', 4 | 'version': '16.0.1.1.1', 5 | 'category': 'Generic Modules/Sale', 6 | 'author': "BADEP", 7 | 'depends': ['mrp_sale_info'], 8 | 'license': 'AGPL-3', 9 | 'data': [ 10 | ], 11 | 'installable': False, 12 | } 13 | -------------------------------------------------------------------------------- /sale_mrp_lock/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import mrp_production -------------------------------------------------------------------------------- /sale_mrp_lock/models/mrp_production.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | from odoo.exceptions import UserError 3 | 4 | 5 | class MrpProduction(models.Model): 6 | _inherit = 'mrp.production' 7 | 8 | def write(self, vals): 9 | for rec in self.sudo().filtered(lambda i: i.sale_id and i.sale_id.state == 'done'): 10 | raise UserError('L\'ordre de fabrication est bloquée par la commande ' + rec.sale_id.name) 11 | return super().write(vals) 12 | -------------------------------------------------------------------------------- /sale_operating_unit_sequence/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /sale_operating_unit_sequence/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Sale operating Unit Sequence", 4 | 5 | 'summary': """ 6 | Add OU specific sequence for sale orders""", 7 | 8 | 'author': "BADEP", 9 | 'website': "https://badep.ma", 10 | 11 | 'category': 'Sales', 12 | 'version': '16.0.1.0', 13 | 14 | 'depends': ['sale_operating_unit'], 15 | 'images': ['static/src/img/banner.png'], 16 | 'license': 'AGPL-3', 17 | 'data': [ 18 | 'views/sequence_view.xml', 19 | ], 20 | 'installable': False, 21 | } -------------------------------------------------------------------------------- /sale_operating_unit_sequence/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import sale,ir_sequence -------------------------------------------------------------------------------- /sale_operating_unit_sequence/models/sale.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import logging 3 | 4 | from odoo import models, fields, api, _ 5 | _logger = logging.getLogger(__name__) 6 | 7 | class SaleOrder(models.Model): 8 | _inherit = 'sale.order' 9 | 10 | @api.model 11 | def create(self, vals): 12 | if vals.get('name', _('New')) == _('New'): 13 | if 'operating_unit_id' in vals: 14 | vals['name'] = self.env['ir.sequence'].with_context(operating_unit_id=vals['operating_unit_id']).next_by_code( 15 | 'sale.order') or _('New') 16 | return super().create(vals) -------------------------------------------------------------------------------- /sale_operating_unit_sequence/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_operating_unit_sequence/static/description/icon.png -------------------------------------------------------------------------------- /sale_operating_unit_sequence/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_operating_unit_sequence/static/src/img/banner.png -------------------------------------------------------------------------------- /sale_operating_unit_sequence/views/sequence_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ir_sequence_form_view_inherit_operating_unit 5 | ir.sequence 6 | 7 | form 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sale_order_maps/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # License AGPL-3 3 | from . import models 4 | from .hooks import uninstall_hook 5 | -------------------------------------------------------------------------------- /sale_order_maps/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sale Maps', 3 | 'summary': """Map view in Sales""", 4 | 'description': """ 5 | Sale Maps 6 | ======== 7 | 8 | Show your Sale orders on map view in regards to delivery address 9 | """, 10 | 'author': "BADEP, Vauxoo", 11 | 'website': "https://badep.ma", 12 | 13 | 'version': '16.0.1.0.0', 14 | 'author': 'BADEP', 15 | 'website': "https://badep.ma", 16 | 'license': 'AGPL-3', 17 | 'maintainer': 'Yopi Angi , Khalid Hazam ', 18 | 'category': 'Sales', 19 | 'images': ['static/src/img/banner.png'], 20 | 21 | 'depends': [ 22 | 'sale', 23 | 'contacts_maps' 24 | ], 25 | 'data': [ 26 | 'views/sale_views.xml' 27 | ], 28 | 'installable': False, 29 | 'demo': [], 30 | 'uninstall_hook': 'uninstall_hook', 31 | } 32 | -------------------------------------------------------------------------------- /sale_order_maps/hooks.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # License AGPL-3 3 | 4 | 5 | def uninstall_hook(cr, registry): 6 | query1 = """ 7 | UPDATE ir_act_window 8 | SET view_mode=replace(view_mode, ',google_map', '') 9 | WHERE view_mode LIKE '%,map%' and res_model = 'sale.order'; 10 | """ 11 | cr.execute(query1) 12 | 13 | query2 = """ 14 | UPDATE ir_act_window 15 | SET view_mode=replace(view_mode, 'google_map,', '') 16 | WHERE view_mode LIKE '%map,%' and res_model = 'sale.order'; 17 | """ 18 | cr.execute(query2) 19 | 20 | query3 = """ 21 | DELETE FROM ir_act_window_view 22 | WHERE id = ( 23 | SELECT v.id 24 | FROM ir_act_window_view as v 25 | JOIN ir_act_window as w ON v.act_window_id=w.id 26 | WHERE v.view_mode = 'map' and w.res_model = 'sale.order' 27 | ); 28 | """ 29 | cr.execute(query3) 30 | -------------------------------------------------------------------------------- /sale_order_maps/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # License AGPL-3 3 | from . import sale 4 | -------------------------------------------------------------------------------- /sale_order_maps/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_order_maps/static/description/icon.png -------------------------------------------------------------------------------- /sale_order_maps/static/description/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_order_maps/static/description/img.png -------------------------------------------------------------------------------- /sale_order_maps/static/description/img_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_order_maps/static/description/img_1.png -------------------------------------------------------------------------------- /sale_order_maps/static/description/img_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_order_maps/static/description/img_2.png -------------------------------------------------------------------------------- /sale_order_maps/static/description/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Add Map view to sale orders

4 |

Locate your customer sales depending on their shipping addresses.

5 |

Usage

6 |

For each sale order you will have the possibility to view its location.

7 |
8 |

You can also view all sale orders in map view.

9 |
10 |

You can also for a sale order geolocate it based on the customer address.

11 |
12 |
13 |
-------------------------------------------------------------------------------- /sale_order_maps/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_order_maps/static/src/img/banner.png -------------------------------------------------------------------------------- /sale_project_section/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /sale_project_section/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Sale Project Section", 4 | 5 | 'summary': """ 6 | Generate parent tasks for project sections 7 | """, 8 | 9 | 'description': """ 10 | This module will automatically generate parent tasks for sections in sale orders. each task will have the corresponding sale order lines within that section as subtasks. 11 | """, 12 | 13 | 'author': "BADEP", 14 | 'website': "https://badep.ma", 15 | 16 | 'category': 'Hidden', 17 | 'version': '16.0.2.0', 18 | 19 | 'depends': ['sale_project'], 20 | 'images': ['static/src/img/banner.png'], 21 | 'license': 'AGPL-3', 22 | 'data': [ 23 | ], 24 | 'installable': False, 25 | } -------------------------------------------------------------------------------- /sale_project_section/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale -------------------------------------------------------------------------------- /sale_project_section/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_project_section/static/description/capture1.png -------------------------------------------------------------------------------- /sale_project_section/static/description/capture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_project_section/static/description/capture2.png -------------------------------------------------------------------------------- /sale_project_section/static/description/capture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_project_section/static/description/capture3.png -------------------------------------------------------------------------------- /sale_project_section/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_project_section/static/description/icon.png -------------------------------------------------------------------------------- /sale_project_section/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_project_section/static/src/img/banner.png -------------------------------------------------------------------------------- /sale_stock_lock/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /sale_stock_lock/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sale lock related documents', 3 | 'summary': 'Lock invoices and pickings of sale when it is locked', 4 | 'version': '16.0.1.1.1', 5 | 'category': 'Generic Modules/Sale', 6 | 'author': "BADEP", 7 | 'depends': ['sale_stock'], 8 | 'license': 'AGPL-3', 9 | 'data': [ 10 | ], 11 | 'installable': False, 12 | } 13 | -------------------------------------------------------------------------------- /sale_stock_lock/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import stock_picking -------------------------------------------------------------------------------- /sale_stock_lock/models/stock_picking.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | from odoo.exceptions import UserError 3 | 4 | 5 | class StockPicking(models.Model): 6 | _inherit = 'stock.picking' 7 | 8 | def write(self, vals): 9 | for rec in self.filtered(lambda i: i.sale_id and i.sale_id.state == 'done'): 10 | raise UserError('Le transfert est bloquée par la commande ' + rec.sale_id.name) 11 | return super().write(vals) 12 | -------------------------------------------------------------------------------- /sale_stock_manual_launch/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards -------------------------------------------------------------------------------- /sale_stock_manual_launch/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name' : 'Sale Stock Manual Lauch Procurement', 3 | 'summary': 'Manually specify quantity to send to procurement in sales', 4 | 'description': 'Manually specify quantity to send to procurement in sales', 5 | 'version': '16.0.1.1', 6 | 'category': 'Sales', 7 | 'author': 'BADEP', 8 | 'website': "https://badep.ma", 9 | 'images': ['static/src/img/banner.png'], 10 | 'license': 'AGPL-3', 11 | 12 | 'depends': ['sale_stock'], 13 | 'data': [ 14 | 'security/ir.model.access.csv', 15 | 'wizards/launch_procurement_wizard_view.xml', 16 | 'views/views.xml', 17 | ], 18 | 'installable': False, 19 | } -------------------------------------------------------------------------------- /sale_stock_manual_launch/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale -------------------------------------------------------------------------------- /sale_stock_manual_launch/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_launch_procurement_wizard_salesman,launch.procurement.wizard salesman,model_launch_procurement_wizard,sales_team.group_sale_manager,1,1,1,1 3 | access_launch_procurement_wizard_line_salesman,launch.procurement.wizard.line salesman,model_launch_procurement_wizard_line,sales_team.group_sale_manager,1,1,1,1 -------------------------------------------------------------------------------- /sale_stock_manual_launch/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_stock_manual_launch/static/description/icon.png -------------------------------------------------------------------------------- /sale_stock_manual_launch/static/description/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_stock_manual_launch/static/description/img.png -------------------------------------------------------------------------------- /sale_stock_manual_launch/static/description/img_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_stock_manual_launch/static/description/img_1.png -------------------------------------------------------------------------------- /sale_stock_manual_launch/static/description/img_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_stock_manual_launch/static/description/img_2.png -------------------------------------------------------------------------------- /sale_stock_manual_launch/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_stock_manual_launch/static/src/img/banner.png -------------------------------------------------------------------------------- /sale_stock_manual_launch/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import launch_procurement_wizard -------------------------------------------------------------------------------- /sale_stock_manual_launch_mrp/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models, wizards -------------------------------------------------------------------------------- /sale_stock_manual_launch_mrp/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | { 4 | 'name' : 'Sale Stock Manual Lauch Procurement - Kits compatibility', 5 | 'version': '16.0', 6 | 'category': 'Sale', 7 | 'author': 'BADEP', 8 | 'description': """ 9 | """, 10 | 'depends': ['sale_stock_manual_launch', 'sale_mrp'], 11 | 'data': [ 12 | 'wizards/launch_procurement_wizard_view.xml' 13 | ], 14 | 'installable': False, 15 | 'auto_install': True 16 | } 17 | -------------------------------------------------------------------------------- /sale_stock_manual_launch_mrp/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale -------------------------------------------------------------------------------- /sale_stock_manual_launch_mrp/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import launch_procurement_wizard -------------------------------------------------------------------------------- /sale_stock_manual_launch_mrp/wizards/launch_procurement_wizard_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Lancer l'approvisionnement 6 | launch.procurement.wizard 7 | 8 | 9 | 10 | 11 | 12 | 13 | {'readonly': [('quantity_editable', '=', False)]} 14 | 1 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Total Delivered & Invoiced in Sale Orders", 4 | 5 | 'summary': """ 6 | """, 7 | 8 | 'description': """ 9 | Adds total delivered and invoiced in sale orders 10 | """, 11 | 12 | 'author': "BADEP", 13 | 'website': "https://badep.ma", 14 | 15 | # Categories can be used to filter modules in modules listing 16 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 17 | # for the full list 18 | 'category': 'Sales', 19 | 'version': '16.0.1', 20 | 21 | # any module necessary for this one to work correctly 22 | 'depends': ['sale'], 23 | 'images': ['static/src/img/banner.png'], 24 | 'license': 'AGPL-3', 25 | 26 | # always loaded 27 | 'data': [ 28 | # 'security/ir.model.access.csv', 29 | 'views/sale_view.xml', 30 | ], 31 | 'installable': False, 32 | } -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import sale -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_total_delivered_invoiced/static/description/capture1.png -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/static/description/capture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_total_delivered_invoiced/static/description/capture2.png -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_total_delivered_invoiced/static/description/icon.png -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/static/description/index.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

Total Delivered & Invoiced in Sale Orders

4 |

Adds the monetary value of the total delivered & invoiced in sale orders

5 |

Configuration

6 |

None.

7 |

Usage

8 |

In sale order form view you can now see how much was delivered & invoiced in monetary value:

9 |
10 |

Same thing in the sale order Tree view:

11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /sale_total_delivered_invoiced/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_total_delivered_invoiced/static/src/img/banner.png -------------------------------------------------------------------------------- /sale_uom_dimension/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models -------------------------------------------------------------------------------- /sale_uom_dimension/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "UoM Dimensions in Sales", 3 | 4 | 'summary': """ 5 | Allows the use of UoM dimensions in sales.""", 6 | 'author': "BADEP", 7 | 'website': "https://badep.ma", 8 | 'category': 'Sales Management', 9 | 'version': '16.0.1.0.1', 10 | 'images': ['static/src/img/banner.png'], 11 | 'license': 'AGPL-3', 12 | 'depends': ['sale', 'uom_dimension'], 13 | 'data': [ 14 | 'views/sale_views.xml', 15 | 'report/sale_report_templates.xml', 16 | 'security/ir.model.access.csv', 17 | ], 18 | 'auto_install': True, 19 | 'installable': False, 20 | } -------------------------------------------------------------------------------- /sale_uom_dimension/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale -------------------------------------------------------------------------------- /sale_uom_dimension/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_uom_dimension_sale_manager,uom.dimension salemanager,uom_dimension.model_uom_dimension,sales_team.group_sale_manager,1,1,1,1 3 | access_sale_order_line_dimension_salesman,sale.order.line.dimension.salesman,model_sale_order_line_dimension,sales_team.group_sale_salesman,1,1,1,1 -------------------------------------------------------------------------------- /sale_uom_dimension/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_uom_dimension/static/description/icon.png -------------------------------------------------------------------------------- /sale_uom_dimension_measure/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards -------------------------------------------------------------------------------- /sale_uom_dimension_measure/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | { 4 | 'name' : 'Sale UoM Dimension Measure', 5 | 'version': '16.0', 6 | 'category': 'Sale', 7 | 'summary': """Sale lines measures""", 8 | 'author': 'BADEP', 9 | 'description': """ 10 | Sale lines meausres 11 | """, 12 | 'depends': ['sale_uom_dimension', 'sale_stock_manual_launch', 'sale_order_maps'], 13 | 'data': [ 14 | 'security/security.xml', 15 | 'security/ir.model.access.csv', 16 | 'wizards/launch_measures_wizard_view.xml', 17 | 'views/views.xml', 18 | 'views/product_views.xml', 19 | ], 20 | 'installable': False, 21 | } 22 | -------------------------------------------------------------------------------- /sale_uom_dimension_measure/data/location_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Location 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sale_uom_dimension_measure/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import sale_measure,sale,product -------------------------------------------------------------------------------- /sale_uom_dimension_measure/models/product.py: -------------------------------------------------------------------------------- 1 | from odoo import fields,models, api 2 | 3 | class ProductTemplate(models.Model): 4 | _inherit = 'product.template' 5 | 6 | to_measure = fields.Boolean(string='Articles à mesurer', default=False) -------------------------------------------------------------------------------- /sale_uom_dimension_measure/views/assets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /sale_uom_dimension_measure/views/product_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | product.template.form.inherited.measure 5 | product.template 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sale_uom_dimension_measure/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import launch_measures_wizard, launch_procurement_wizard -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "UoM Dimensions in Sales - Product Configurator", 3 | 4 | 'summary': """ 5 | Allows the use of UoM dimensions in sales with product configurator.""", 6 | 'author': "BADEP", 7 | 'website': "https://badep.ma", 8 | 'category': 'Sales Management', 9 | 'version': '16.0.1.0.1', 10 | 'images': ['static/src/img/banner.png'], 11 | 'license': 'AGPL-3', 12 | 'depends': ['sale_product_configurator', 'sale_uom_dimension'], 13 | 'data': [ 14 | 'views/templates.xml', 15 | 'views/sale_views.xml', 16 | 'views/assets.xml', 17 | ], 18 | 'auto_install': True, 19 | 'installable': False, 20 | } -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_uom_dimension_product_configurator/models/__init__.py -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/sale_uom_dimension_product_configurator/static/description/icon.png -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/static/src/js/product_configurator_form.js: -------------------------------------------------------------------------------- 1 | odoo.define('sale_product_configurator_uom_dimension.ProductConfiguratorFormView', function(require) { 2 | "use strict"; 3 | var ProductConfiguratorFormController = require('sale_product_configurator_uom_dimension.ProductConfiguratorFormController'); 4 | var ProductConfiguratorFormRenderer = require('sale_product_configurator.ProductConfiguratorFormRenderer'); 5 | var FormView = require('web.FormView'); 6 | var viewRegistry = require('web.view_registry'); 7 | var ProductConfiguratorFormView = FormView.extend({ 8 | config: _.extend({}, FormView.prototype.config, { 9 | Controller: ProductConfiguratorFormController, 10 | Renderer: ProductConfiguratorFormRenderer, 11 | }), 12 | }); 13 | viewRegistry.add('product_configurator_form', ProductConfiguratorFormView); 14 | return ProductConfiguratorFormView; 15 | }); -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/views/assets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/views/sale_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | sale_uom_dimension_product_configurator_form_view 5 | sale.order 6 | 7 | 8 | form 9 | 10 | 11 | bottom 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /sale_uom_dimension_product_configurator/views/templates.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /scripts/code_cleanup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo rm -rf /var/lib/odoo/.local/share/Odoo/addons/repos/badep/addons -------------------------------------------------------------------------------- /scripts/start_server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo service odoo restart -------------------------------------------------------------------------------- /scripts/stop_server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo service odoo stop -------------------------------------------------------------------------------- /stock_fleet/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /stock_fleet/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import stock, fleet -------------------------------------------------------------------------------- /stock_fleet/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_fleet_vehicle_stock_user,Stock Fleet: Fleet for stock users,fleet.model_fleet_vehicle,stock.group_stock_user,1,0,0,0 -------------------------------------------------------------------------------- /stock_fleet/static/description/capture1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_fleet/static/description/capture1.png -------------------------------------------------------------------------------- /stock_fleet/static/description/capture2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_fleet/static/description/capture2.png -------------------------------------------------------------------------------- /stock_fleet/static/description/capture3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_fleet/static/description/capture3.png -------------------------------------------------------------------------------- /stock_fleet/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_fleet/static/description/icon.png -------------------------------------------------------------------------------- /stock_fleet/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_fleet/static/src/img/banner.png -------------------------------------------------------------------------------- /stock_maps/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # License AGPL-3 3 | from . import models 4 | from .hooks import uninstall_hook 5 | -------------------------------------------------------------------------------- /stock_maps/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': 'Stock Picking Maps', 4 | 'version': '16.0.1.0.0', 5 | 'author': 'Yopi Angi, BADEP', 6 | 'license': 'AGPL-3', 7 | 'maintainer': 'Yopi Angi , Khalid Hazam ', 8 | 'support': 'yopiangi@gmail.com', 9 | 'category': 'Sales', 10 | 'description': """ 11 | Stock Picking Maps 12 | ======== 13 | 14 | Show your Stock pickings on map view in regards to delivery address 15 | """, 16 | 'depends': [ 17 | 'stock', 18 | 'contacts_maps' 19 | ], 20 | 'data': [ 21 | 'views/picking_views.xml' 22 | ], 23 | 'demo': [], 24 | 'installable': False, 25 | 'uninstall_hook': 'uninstall_hook', 26 | } 27 | -------------------------------------------------------------------------------- /stock_maps/hooks.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # License AGPL-3 3 | 4 | 5 | def uninstall_hook(cr, registry): 6 | query1 = """ 7 | UPDATE ir_act_window 8 | SET view_mode=replace(view_mode, ',map', '') 9 | WHERE view_mode LIKE '%,map%' and res_model = 'stock.picking'; 10 | """ 11 | cr.execute(query1) 12 | 13 | query2 = """ 14 | UPDATE ir_act_window 15 | SET view_mode=replace(view_mode, 'map,', '') 16 | WHERE view_mode LIKE '%map,%' and res_model = 'stock.picking'; 17 | """ 18 | cr.execute(query2) 19 | 20 | query3 = """ 21 | DELETE FROM ir_act_window_view 22 | WHERE id = ( 23 | SELECT v.id 24 | FROM ir_act_window_view as v 25 | JOIN ir_act_window as w ON v.act_window_id=w.id 26 | WHERE v.view_mode = 'map' and w.res_model = 'stock.picking' 27 | ); 28 | """ 29 | cr.execute(query3) 30 | -------------------------------------------------------------------------------- /stock_maps/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # License AGPL-3 3 | from . import picking 4 | -------------------------------------------------------------------------------- /stock_push_on_done/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /stock_push_on_done/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | { 3 | 'name': "Stock Push On done moves", 4 | 5 | 'summary': """""", 6 | 7 | 'description': """""", 8 | 9 | 'author': "BADEP", 10 | 'website': "https://badep.ma", 11 | 12 | # Categories can be used to filter modules in modules listing 13 | # Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml 14 | # for the full list 15 | 'category': 'Inventory', 16 | 'version': '16.0.0.1', 17 | 18 | # any module necessary for this one to work correctly 19 | 'depends': ['stock'], 20 | 'images': ['static/src/img/banner.png'], 21 | 'license': 'AGPL-3', 22 | 'installable': True, 23 | 24 | # always loaded 25 | 'data': [ 26 | ], 27 | } -------------------------------------------------------------------------------- /stock_push_on_done/models/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import stock_move -------------------------------------------------------------------------------- /stock_push_on_done/models/stock_move.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from odoo import models, fields, api 4 | 5 | class StockMove(models.Model): 6 | _inherit = 'stock.move' 7 | 8 | def _action_done(self, cancel_backorder=lambda self: self.env.context.get('cancel_backorder')): 9 | res = super()._action_done(cancel_backorder=cancel_backorder) 10 | for rec in self: 11 | rec.location_dest_id = rec.move_line_ids[0].location_dest_id if len(rec.mapped('move_line_ids.location_dest_id')) == 1 else rec.location_dest_id 12 | self._push_apply() 13 | self.mapped('move_dest_ids')._action_confirm() 14 | self.mapped('move_dest_ids')._action_assign() 15 | return res -------------------------------------------------------------------------------- /stock_tier_validation/__init__.py: -------------------------------------------------------------------------------- 1 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 2 | 3 | from . import models 4 | -------------------------------------------------------------------------------- /stock_tier_validation/__manifest__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Open Source Integrators 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 3 | { 4 | "name": "Stock Tier Validation", 5 | "summary": "Extends the functionality of Stock Pickings to " 6 | "support a tier validation process.", 7 | "version": "16.0.1.0.0", 8 | "category": "Inventory", 9 | "website": "https://badep.ma", 10 | "author": "BADEP, Open Source Integrators, Odoo Community Association (OCA)", 11 | "license": "AGPL-3", 12 | "application": False, 13 | 'installable': False, 14 | "depends": [ 15 | "stock", 16 | "base_tier_validation", 17 | ], 18 | "data": [ 19 | "views/stock_picking_view.xml", 20 | ], 21 | } -------------------------------------------------------------------------------- /stock_tier_validation/models/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Open Source Integrators 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 3 | 4 | from . import stock_picking 5 | from . import tier_definition 6 | -------------------------------------------------------------------------------- /stock_tier_validation/models/tier_definition.py: -------------------------------------------------------------------------------- 1 | # Copyright 2019 Open Source Integrators 2 | # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). 3 | 4 | from odoo import api, models 5 | 6 | 7 | class TierDefinition(models.Model): 8 | _inherit = "tier.definition" 9 | 10 | @api.model 11 | def _get_tier_validation_model_names(self): 12 | res = super(TierDefinition, self)._get_tier_validation_model_names() 13 | res.append("stock.picking") 14 | return res 15 | -------------------------------------------------------------------------------- /stock_tier_validation/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_tier_validation/static/description/icon.png -------------------------------------------------------------------------------- /stock_uom_dimension/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models 4 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: 5 | -------------------------------------------------------------------------------- /stock_uom_dimension/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | { 4 | 'name': 'Product dimensions in stock', 5 | 'version': '16.0', 6 | 'category': 'Inventory', 7 | 'license': 'AGPL-3', 8 | 'description': """ 9 | This module allow to have multidimensional UoMs. 10 | """, 11 | 'author': 'BADEP', 12 | 'website': 'http://www.badep.ma', 13 | 'depends': ['uom_dimension', 'stock'], 14 | 'data': [ 15 | 'report/stock_picking_report_view.xml', 16 | 'views/product_views.xml', 17 | 'views/stock_move_line_views.xml', 18 | 'views/stock_move_views.xml', 19 | 'views/stock_picking_views.xml', 20 | 'views/stock_quant_views.xml', 21 | 'security/ir.model.access.csv', 22 | ], 23 | 'installable': False, 24 | 'auto_install': True, 25 | } 26 | 27 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: 28 | -------------------------------------------------------------------------------- /stock_uom_dimension/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import stock_move 2 | from . import stock_move_line 3 | from . import stock_rule 4 | from . import stock_quant 5 | from . import product -------------------------------------------------------------------------------- /stock_uom_dimension/models/product.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | class ProductTemplate(models.Model): 4 | _inherit = 'product.template' 5 | 6 | stock_dimensions_strict = fields.Boolean(string='Isoler les dimensions dans l\'inventaire') -------------------------------------------------------------------------------- /stock_uom_dimension/models/stock_rule.py: -------------------------------------------------------------------------------- 1 | from odoo import models 2 | 3 | class StockRule(models.Model): 4 | _inherit = 'stock.rule' 5 | 6 | def _get_custom_move_fields(self): 7 | fields = super(StockRule, self)._get_custom_move_fields() 8 | fields += ['dimension_ids'] 9 | return fields -------------------------------------------------------------------------------- /stock_uom_dimension/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_stock_move_dimension_stock_user,stock.move.dimension.stock_user,model_stock_move_dimension,stock.group_stock_user,1,1,1,1 3 | access_stock_move_dimension_base_user,stock.move.dimension.user,model_stock_move_dimension,base.group_user,1,1,1,0 4 | access_stock_move_line_dimension_stock_user,stock.move.line.dimension.stock_user,model_stock_move_line_dimension,stock.group_stock_user,1,1,1,1 5 | access_stock_move_line_dimension_base_user,stock.move.line.dimension.user,model_stock_move_line_dimension,base.group_user,1,1,1,0 6 | access_stock_quant_dimension_stock_user,stock.quant.dimension.stock_user,model_stock_quant_dimension,stock.group_stock_user,1,1,1,1 7 | access_stock_quant_dimension_base_user,stock.quant.dimension.user,model_stock_quant_dimension,base.group_user,1,1,1,0 -------------------------------------------------------------------------------- /stock_uom_dimension/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_uom_dimension/static/description/icon.png -------------------------------------------------------------------------------- /stock_uom_dimension/views/product_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | product.template.dimension.form.view 5 | product.template 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /stock_uom_dimension_stock_barcode/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models 4 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: 5 | -------------------------------------------------------------------------------- /stock_uom_dimension_stock_barcode/__manifest__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | { 4 | 'name': 'Product dimensions in stock_barcode Entreprise module', 5 | 'version': '16.0', 6 | 'category': 'Inventory', 7 | 'license': 'AGPL-3', 8 | 'description': """ 9 | This module allow to have multidimensional UoMs in stock_barcode module. 10 | """, 11 | 'author': 'BADEP', 12 | 'website': 'http://www.badep.ma', 13 | 'depends': ['stock_barcode', 'stock_uom_dimension'], 14 | 'data': [ 15 | 'views/stock_move_line_views.xml', 16 | ], 17 | 'installable': False, 18 | } 19 | 20 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: 21 | -------------------------------------------------------------------------------- /stock_uom_dimension_stock_barcode/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_uom_dimension_stock_barcode/models/__init__.py -------------------------------------------------------------------------------- /stock_uom_dimension_stock_barcode/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/stock_uom_dimension_stock_barcode/static/description/icon.png -------------------------------------------------------------------------------- /uom_dimension/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from . import models -------------------------------------------------------------------------------- /uom_dimension/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "Dimensions in Product UoM", 3 | 4 | 'summary': """ 5 | Eeach Unit of Measure has its dimensions. This is a technical module, functional behavior can be found in corresponding modules (stock_uom_dimension, sale_uom_dimension, purchase_uom_dimension).""", 6 | 'author': "BADEP", 7 | 'website': "https://badep.ma", 8 | 'category': 'Inventory', 9 | 'version': '16.0.1.0.2', 10 | 'depends': ['uom', 'product'], 11 | 'images': ['static/src/img/banner.png'], 12 | 'license': 'AGPL-3', 13 | 'data': [ 14 | 'security/ir.model.access.csv', 15 | 'views/product_views.xml', 16 | 'views/uom_view.xml', 17 | ], 18 | 'installable': False, 19 | } -------------------------------------------------------------------------------- /uom_dimension/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import uom_uom 2 | from . import uom_dimension_mixins 3 | from . import product -------------------------------------------------------------------------------- /uom_dimension/models/product.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | class ProductProduct(models.Model): 4 | _inherit = 'product.product' 5 | 6 | custom_uom_code = fields.Char(string='Custom code for UoM calculation') -------------------------------------------------------------------------------- /uom_dimension/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_uom_dimension_user,uom.dimension.user,model_uom_dimension,base.group_user,1,0,0,0 3 | access_uom_dimension_manager,uom.dimension.manager,model_uom_dimension,base.group_system,1,1,1,1 4 | -------------------------------------------------------------------------------- /uom_dimension/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/uom_dimension/static/description/icon.png -------------------------------------------------------------------------------- /web_widget_remaining_days_color/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/web_widget_remaining_days_color/__init__.py -------------------------------------------------------------------------------- /web_widget_remaining_days_color/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': "Remaining Days Widget", 3 | 'summary': """Add green color if remaining days are positive""", 4 | 'description': """ 5 | """, 6 | 'author': "BADEP", 7 | 'website': "https://badep.ma", 8 | 'category': 'Technical', 9 | 'version': '16.0.0.0.1', 10 | 11 | 'depends': ['base'], 12 | 'images': ['static/src/img/banner.png'], 13 | 'license': 'AGPL-3', 14 | 15 | 'data': [ 16 | 'views/asset_views.xml', 17 | ], 18 | 'installable': False, 19 | } 20 | -------------------------------------------------------------------------------- /web_widget_remaining_days_color/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/web_widget_remaining_days_color/static/description/icon.png -------------------------------------------------------------------------------- /web_widget_remaining_days_color/static/src/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BADEP/addons/400053ff62926d18232480159b7762d48ec9bb37/web_widget_remaining_days_color/static/src/img/banner.png -------------------------------------------------------------------------------- /web_widget_remaining_days_color/views/asset_views.xml: -------------------------------------------------------------------------------- 1 | 2 |