diff --git a/production.py b/production.py
index 01ce45e..a8ee65d 100644
--- a/production.py
+++ b/production.py
@@ -1,8 +1,8 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
-from decimal import Decimal
-from trytond.pool import Pool, PoolMeta
-from trytond.model import fields
+# from decimal import Decimal
+from trytond.pool import PoolMeta
+# from trytond.model import fields
BOM_CHANGES = ['bom', 'product', 'quantity', 'uom', 'warehouse', 'location',
@@ -13,6 +13,7 @@ class Production(metaclass=PoolMeta):
"Production"
__name__ = 'production'
+ """
@fields.depends(
'bom', 'product', 'uom', 'quantity', 'company', 'inputs', 'outputs',
methods=['_explode_move_values'])
@@ -55,3 +56,4 @@ class Production(metaclass=PoolMeta):
move.unit_price = Decimal(0)
outputs.append(move)
self.outputs = outputs
+ """
diff --git a/sale.xml b/sale.xml
index 4700891..2b5d4c8 100644
--- a/sale.xml
+++ b/sale.xml
@@ -21,27 +21,27 @@
add_pizza
Add Pizza
-
+ sale.sale
kitchen
Kitchen
-
+ sale.sale
bar
Bar
-
+ sale.sale
print_bill
Bill
-
+ sale.sale
impreso
Impreso
-
+ sale.sale
Customer Order
diff --git a/tests/scenario_report_pizza.rst b/tests/scenario_report_pizza.rst
deleted file mode 100644
index 5b81c8d..0000000
--- a/tests/scenario_report_pizza.rst
+++ /dev/null
@@ -1,258 +0,0 @@
-=============================
-Sale Line Delete Log Scenario
-=============================
-
-Imports::
- >>> from decimal import Decimal
- >>> from proteus import Model, Wizard
- >>> from trytond.tests.tools import activate_modules
- >>> from trytond.modules.company.tests.tools import create_company, get_company
- >>> from trytond.modules.account.tests.tools import (
- ... create_chart, create_fiscalyear, create_tax, get_accounts)
- >>> from trytond.modules.account_invoice.tests.tools import (
- ... create_payment_term, set_fiscalyear_invoice_sequences)
- >>> import datetime as dt
- >>> today = dt.date.today()
- >>> from trytond.tests.tools import set_user
- >>> from trytond.modules.sale_shop.tests.tools import create_shop
- >>> from trytond.modules.sale_line_delete_log.sale import SaleLineDeleted
-
-
-Activate modules::
-
- >>> config = activate_modules('sale_fast_food')
-
-
- >>> User = Model.get('res.user')
- >>> Party = Model.get('party.party')
- >>> Employee = Model.get('company.employee')
- >>> Journal = Model.get('account.journal')
- >>> PaymentMethod = Model.get('account.invoice.payment.method')
- >>> Party = Model.get('party.party')
- >>> ProductUom = Model.get('product.uom')
- >>> ProductTemplate = Model.get('product.template')
- >>> Sale = Model.get('sale.sale')
- >>> SaleLine = Model.get('sale.line')
-
-Create company::
-
- >>> _ = create_company()
- >>> company = get_company()
-
-Set employee::
-
- >>> employee_party = Party(name="Employee")
- >>> employee_party.save()
- >>> employee = Employee(party=employee_party)
- >>> employee.save()
- >>> user = User(config.user)
- >>> user.employees.append(employee)
- >>> user.employee = employee
- >>> user.save()
- >>> set_user(user.id)
-
-Create fiscal year::
-
- >>> fiscalyear = set_fiscalyear_invoice_sequences(create_fiscalyear(company, today))
- >>> fiscalyear.click('create_period')
-
-Create chart of accounts::
-
- >>> _ = create_chart(company)
- >>> accounts = get_accounts(company)
- >>> revenue = accounts['revenue']
- >>> expense = accounts['expense']
- >>> cash = accounts['cash']
-
- >>> cash_journal, = Journal.find([('type', '=', 'cash')])
- >>> cash_journal.save()
- >>> payment_method = PaymentMethod()
- >>> payment_method.name = 'Cash'
- >>> payment_method.journal = cash_journal
- >>> payment_method.credit_account = cash
- >>> payment_method.debit_account = cash
- >>> payment_method.save()
-
-Create tax::
-
- >>> tax = create_tax(Decimal('.10'))
- >>> tax.save()
-
-Create parties::
-
- >>> supplier = Party(name='Supplier')
- >>> supplier.save()
- >>> customer = Party(name='Customer')
- >>> customer.save()
-
-Create account categories::
-
- >>> ProductCategory = Model.get('product.category')
- >>> account_category = ProductCategory(name="Account Category")
- >>> account_category.accounting = True
- >>> account_category.account_expense = expense
- >>> account_category.account_revenue = revenue
- >>> account_category.save()
-
- >>> account_category_tax, = account_category.duplicate()
- >>> account_category_tax.customer_taxes.append(tax)
- >>> account_category_tax.save()
-
-Create product::
-
- >>> unit, = ProductUom.find([('name', '=', 'Unit')])
-
- >>> template = ProductTemplate()
- >>> template.name = 'product'
- >>> template.default_uom = unit
- >>> template.type = 'goods'
- >>> template.salable = True
- >>> template.pizza = True
- >>> template.list_price = Decimal('10')
- >>> template.account_category = account_category_tax
- >>> template.save()
- >>> product_pizza, = template.products
-
- >>> template = ProductTemplate()
- >>> template.name = 'service'
- >>> template.default_uom = unit
- >>> template.type = 'service'
- >>> template.pizza = False
- >>> template.salable = True
- >>> template.list_price = Decimal('30')
- >>> template.account_category = account_category
- >>> template.save()
- >>> service, = template.products
-
-Create payment term::
-
- >>> payment_term = create_payment_term()
- >>> payment_term.save()
-
-Create product price list::
-
- >>> ProductPriceList = Model.get('product.price_list')
- >>> product_price_list = ProductPriceList()
- >>> product_price_list.name = 'Price List'
- >>> product_price_list.company = company
- >>> product_price_list.save()
-
-Create an Inventory::
-
- >>> Inventory = Model.get('stock.inventory')
- >>> Location = Model.get('stock.location')
- >>> storage, = Location.find([
- ... ('code', '=', 'STO'),
- ... ])
- >>> inventory = Inventory()
- >>> inventory.location = storage
- >>> inventory_line = inventory.lines.new(product=product_pizza)
- >>> inventory_line.quantity = 100.0
- >>> inventory_line.expected_quantity = 0.0
- >>> inventory.click('confirm')
- >>> inventory.state
- 'done'
-
-Create Sale Shop::
-
- >>> shop = create_shop(payment_term, product_price_list)
- >>> shop.save()
- >>> Device = Model.get('sale.device')
- >>> device = Device()
- >>> device.name = "SE Device"
- >>> device.shop = shop
- >>> device.save()
-
-Save Sale Shop User::
-
- >>> User = Model.get('res.user')
- >>> user, = User.find([])
- >>> user.shops.append(shop)
- >>> user.shop = shop
- >>> user.save()
- >>> set_user(user)
-
-
-Crear Una Zona de Venta::
- >>> Zone = Model.get('sale.zone')
- >>> zone = Zone()
- >>> zone.name = "Main"
- >>> zone.save()
- >>> zone1 = Zone()
- >>> zone1.name = "SE"
- >>> zone1.shop = shop
- >>> zone1.device = device
- >>> zone1.parent = zone
- >>> zone1.save()
- >>> table1 = zone1.tables.new()
- >>> table1.name = "CH1"
- >>> table1.save()
- >>> table2 = zone1.tables.new()
- >>> table2.name = "CH1"
- >>> table2.save()
-
-Sale 5 products::
-
- >>> sale = Sale()
- >>> sale.party = customer
- >>> sale.payment_term = payment_term
- >>> sale.zone = zone1
- >>> sale.table = table1
- >>> sale.invoice_method = 'order'
-
- >>> sale_line = SaleLine()
- >>> sale.lines.append(sale_line)
-
- >>> sale_line.product = product_pizza
- >>> sale_line.quantity = 2.0
- >>> sale_line.impreso = True
-
- >>> sale_line = SaleLine()
- >>> sale.lines.append(sale_line)
- >>> sale_line.product = product_pizza
- >>> sale_line.quantity = 3.0
-
- >>> sale_line = SaleLine()
- >>> sale.lines.append(sale_line)
- >>> sale_line.product = service
- >>> sale_line.quantity = 5.0
-
- >>> sale.save()
- >>> len(sale.lines)
- 3
-
-Sale Fast Food Pizzas Sell by Product::
- >>> ReportSellPizzas = Model.get('sale_fast_food.reporting.product')
- >>> reports = ReportSellPizzas.find([])
-
- >>> expected_report = {
- ... (product_pizza, 5.0)
- ... }
-
- >>> actual_report = {(r.product_pizza, r.quantity) for r in reports}
- >>> assert expected_report == actual_report, f"\n Expect: {expected_report} \n Actual: {actual_report}"
-
-Sale Fast Food Sales by User::
- >>> User = Model.get('res.user')
- >>> user = User(config.user)
-
- >>> ReportSalesByUser = Model.get('sale_fast_food.reporting.by_user')
- >>> reports = ReportSalesByUser.find([])
-
- >>> expected_report = {
- ... (user, 1)
- ... }
-
- >>> actual_report = {(r.user, r.completed_sales) for r in reports}
- >>> assert expected_report == actual_report, f"\n Expect: {expected_report} \n Actual: {actual_report}"
-
-Sale Fast Food Sales by Zone::
- >>> ReportSalesByZone = Model.get('sale_fast_food.reporting.zone')
- >>> reports = ReportSalesByZone.find([])
-
- >>> expected_report = {
- ... (table1, zone)
- ... }
-
- >>> actual_report = {(r.table, r.zone) for r in reports}
- >>> assert expected_report == actual_report, f"\n Expect: {expected_report} \n Actual: {actual_report}"
diff --git a/tests/scenario_sale_fast_food.rst b/tests/scenario_sale_fast_food.rst
deleted file mode 100644
index 3e7cda3..0000000
--- a/tests/scenario_sale_fast_food.rst
+++ /dev/null
@@ -1,213 +0,0 @@
-=============================
-Sale Line Delete Log Scenario
-=============================
-
-Imports::
- >>> from decimal import Decimal
- >>> from proteus import Model, Wizard
- >>> from trytond.tests.tools import activate_modules
- >>> from trytond.modules.company.tests.tools import create_company, get_company
- >>> from trytond.modules.account.tests.tools import (
- ... create_chart, create_fiscalyear, create_tax, get_accounts)
- >>> from trytond.modules.account_invoice.tests.tools import (
- ... create_payment_term, set_fiscalyear_invoice_sequences)
- >>> import datetime as dt
- >>> today = dt.date.today()
- >>> from trytond.tests.tools import set_user
- >>> from trytond.modules.sale_shop.tests.tools import create_shop
- >>> from trytond.modules.sale_line_delete_log.sale import SaleLineDeleted
-
-Activate modules::
-
- >>> config = activate_modules('sale_fast_food')
-
-Initial data::
-
- >>> User = Model.get('res.user')
- >>> Party = Model.get('party.party')
- >>> Employee = Model.get('company.employee')
- >>> Journal = Model.get('account.journal')
- >>> PaymentMethod = Model.get('account.invoice.payment.method')
- >>> Party = Model.get('party.party')
- >>> ProductUom = Model.get('product.uom')
- >>> ProductTemplate = Model.get('product.template')
- >>> Sale = Model.get('sale.sale')
- >>> SaleLine = Model.get('sale.line')
-
-Create company::
-
- >>> _ = create_company()
- >>> company = get_company()
-
-Set employee::
-
- >>> employee_party = Party(name="Employee")
- >>> employee_party.save()
- >>> employee = Employee(party=employee_party)
- >>> employee.save()
- >>> user = User(config.user)
- >>> user.employees.append(employee)
- >>> user.employee = employee
- >>> user.save()
- >>> set_user(user.id)
-
-Create fiscal year::
-
- >>> fiscalyear = set_fiscalyear_invoice_sequences(create_fiscalyear(company, today))
- >>> fiscalyear.click('create_period')
-
-Create chart of accounts::
-
- >>> _ = create_chart(company)
- >>> accounts = get_accounts(company)
- >>> revenue = accounts['revenue']
- >>> expense = accounts['expense']
- >>> cash = accounts['cash']
-
- >>> cash_journal, = Journal.find([('type', '=', 'cash')])
- >>> cash_journal.save()
- >>> payment_method = PaymentMethod()
- >>> payment_method.name = 'Cash'
- >>> payment_method.journal = cash_journal
- >>> payment_method.credit_account = cash
- >>> payment_method.debit_account = cash
- >>> payment_method.save()
-
-Create tax::
-
- >>> tax = create_tax(Decimal('.10'))
- >>> tax.save()
-
-Create parties::
-
- >>> supplier = Party(name='Supplier')
- >>> supplier.save()
- >>> customer = Party(name='Customer')
- >>> customer.save()
-
-Create account categories::
-
- >>> ProductCategory = Model.get('product.category')
- >>> account_category = ProductCategory(name="Account Category")
- >>> account_category.accounting = True
- >>> account_category.account_expense = expense
- >>> account_category.account_revenue = revenue
- >>> account_category.save()
-
- >>> account_category_tax, = account_category.duplicate()
- >>> account_category_tax.customer_taxes.append(tax)
- >>> account_category_tax.save()
-
-Create product::
-
- >>> unit, = ProductUom.find([('name', '=', 'Unit')])
-
- >>> template = ProductTemplate()
- >>> template.name = 'product'
- >>> template.default_uom = unit
- >>> template.type = 'goods'
- >>> template.salable = True
- >>> template.pizza = True
- >>> template.list_price = Decimal('10')
- >>> template.account_category = account_category_tax
- >>> template.save()
- >>> product, = template.products
-
- >>> template = ProductTemplate()
- >>> template.name = 'service'
- >>> template.default_uom = unit
- >>> template.type = 'service'
- >>> template.salable = True
- >>> template.list_price = Decimal('30')
- >>> template.account_category = account_category
- >>> template.save()
- >>> service, = template.products
-
-Create payment term::
-
- >>> payment_term = create_payment_term()
- >>> payment_term.save()
-
-Create product price list::
-
- >>> ProductPriceList = Model.get('product.price_list')
- >>> product_price_list = ProductPriceList()
- >>> product_price_list.name = 'Price List'
- >>> product_price_list.company = company
- >>> product_price_list.save()
-
-Create an Inventory::
-
- >>> Inventory = Model.get('stock.inventory')
- >>> Location = Model.get('stock.location')
- >>> storage, = Location.find([
- ... ('code', '=', 'STO'),
- ... ])
- >>> inventory = Inventory()
- >>> inventory.location = storage
- >>> inventory_line = inventory.lines.new(product=product)
- >>> inventory_line.quantity = 100.0
- >>> inventory_line.expected_quantity = 0.0
- >>> inventory.click('confirm')
- >>> inventory.state
- 'done'
-
-Create Sale Shop::
-
- >>> shop = create_shop(payment_term, product_price_list)
- >>> shop.save()
-
-Save Sale Shop User::
-
- >>> User = Model.get('res.user')
- >>> user, = User.find([])
- >>> user.shops.append(shop)
- >>> user.shop = shop
- >>> user.save()
- >>> set_user(user)
-
-Sale 5 products::
-
- >>> sale = Sale()
- >>> sale.party = customer
- >>> sale.payment_term = payment_term
- >>> sale.invoice_method = 'order'
-
- >>> sale_line = SaleLine()
- >>> sale.lines.append(sale_line)
- >>> sale_line.product = product
- >>> sale_line.quantity = 2.0
- >>> sale_line.impreso = True
-
- >>> sale_line = SaleLine()
- >>> sale.lines.append(sale_line)
- >>> sale_line.type = 'comment'
- >>> sale_line.description = 'Comment'
-
- >>> sale_line = SaleLine()
- >>> sale.lines.append(sale_line)
- >>> sale_line.product = product
- >>> sale_line.quantity = 3.0
- >>> sale.save()
- >>> len(sale.lines)
- 3
- >>> sale.untaxed_amount, sale.tax_amount, sale.total_amount
- (Decimal('50.00'), Decimal('5.00'), Decimal('55.00'))
-
-
-Create a sale line delete log it's was printed::
-
- >>> sale.reload()
- >>> sale.lines[0].delete()
- >>> sale.lines[1].delete()
- >>> sale.save()
- >>> len(sale.lines)
- 1
-
- >>> sale.reload()
- >>> len(sale.delete_lines)
- 1
-
- >>> sale.delete_lines[0]
- proteus.Model.get('sale.line_deleted')(1)
- >>> assert isinstance(sale.delete_lines[0], Model.get('sale.line_deleted')), "it's not instance SaleLineDeleted"
diff --git a/tryton.cfg b/tryton.cfg
index 5a7c753..602ca5a 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=6.8.0
+version=7.6.0
depends:
ir
res