first commit

This commit is contained in:
root
2026-03-14 09:42:12 +00:00
commit 0adbd20c2c
10991 changed files with 1646955 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
# 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 trytond.model import ModelView, fields
from trytond.pool import Pool
from trytond.transaction import Transaction
from trytond.wizard import Button, StateAction, StateView, Wizard
class CreateInventoriesStart(ModelView):
__name__ = 'stock.inventory.create.start'
date = fields.Date('Date', required=True)
company = fields.Many2One('company.company', "Company", required=True)
empty_quantity = fields.Selection(
'get_empty_quantities', "Empty Quantity",
help="How lines without a quantity are handled.")
complete_lines = fields.Boolean(
"Complete",
help="Add an inventory line for each missing product.")
locations = fields.Many2Many('stock.location', None, None,
'Locations', required=True, domain=[('type', '=', 'storage')])
@classmethod
def default_date(cls):
return Pool().get('ir.date').today()
@staticmethod
def default_company():
return Transaction().context.get('company')
@classmethod
def get_empty_quantities(cls):
pool = Pool()
Inventory = pool.get('stock.inventory')
return Inventory.fields_get(
['empty_quantity'])['empty_quantity']['selection']
@classmethod
def default_empty_quantity(cls):
pool = Pool()
Inventory = pool.get('stock.inventory')
try:
return Inventory.default_empty_quantity()
except AttributeError:
return
@classmethod
def default_complete_lines(cls):
return True
class CreateInventories(Wizard):
__name__ = 'stock.inventory.create'
start = StateView('stock.inventory.create.start',
'stock_inventory_location.inventory_create_start_view_form', [
Button('Cancel', 'end', 'tryton-cancel'),
Button('Create', 'create_', 'tryton-ok', default=True),
])
create_ = StateAction('stock.act_inventory_form')
def get_inventory(self, location, Inventory):
return Inventory(
location=location,
date=self.start.date,
company=self.start.company,
empty_quantity=self.start.empty_quantity)
def do_create_(self, action):
pool = Pool()
Inventory = pool.get('stock.inventory')
inventories = [
self.get_inventory(location, Inventory)
for location in self.start.locations]
Inventory.save(inventories)
if self.start.complete_lines:
Inventory.complete_lines(inventories)
data = {'res_id': [i.id for i in inventories]}
return action, data