hms_bak/hotel_management/wizard/issue_material.py
2024-10-08 01:17:38 +04:00

80 lines
3.0 KiB
Python

# -*- encoding: utf-8 -*-
from odoo import fields,models, api
from odoo.exceptions import UserError
from odoo.tools.translate import _
from datetime import datetime
from dateutil.relativedelta import relativedelta
import time
class rr_housekeeping_wizard(models.TransientModel):
_name = 'rr.housekeeping.wizard'
_description = 'rr_housekeeping_wizard'
rr_line_ids = fields.One2many('rr.housekeeping.line.wizard','rr_line_id','Repair / Replacement Info',required=True)
class rr_housekeeping_line_wizard(models.TransientModel):
_name = 'rr.housekeeping.line.wizard'
_description = 'rr_housekeeping_line_wizard'
rr_line_id = fields.Many2one('rr.housekeeping.wizard','Housekeeping line id')
class issue_material(models.Model):
_name = 'issue.material'
_description = 'Issue Material'
location_id = fields.Many2one('stock.location', 'Source Location', required=True)
location_dest_id = fields.Many2one('stock.location', 'Destination Location',required=True)
rr_line_ids = fields.One2many('rr.housekeeping.line.wizard','rr_line_id','Repair / Replacement Info',required=True)
def check_stock(self,context=None):
wizard_obj = self.browse()
field_names=['stock_real']
res = self.browse()
line_obj = self.env['rr.housekeeping.line'].search([('rr_line_id','=',context['active_id'])])
list1=[]
list2=[]
for obj in line_obj:
line_line_obj = self.env['product.product.line'].search([('product_line_id','=',obj)])
if line_line_obj:
for obj1 in line_line_obj:
p1 = self.env['product.product.line'].browse(obj1)
list1.append(p1.product_product_id.id)
list2.append(p1.id)
p=self.env['product.product'].browse(p1.product_product_id.id)
new_list = list(set(list1))
for i in new_list:
sum=0
for j in list2:
get_ids=self.env['product.product.line'].search([('product_product_id','=',i),('id','=',j)])
for k in get_ids:
p=self.env['product.product.line'].browse(k)
sum=sum+p.qty
product_obj=self.env['product.product'].browse(i)
stock_obj1=self.env['stock.location']
if context is None:
context = {}
ctx = context.copy()
ctx.update({'product_id':product_obj.id})
arg = None
total_sum = self.env['stock.location']._product_value([wizard_obj.location_id.id], ['stock_real'], arg, ctx)
for item in total_sum.values():
# print("--------------------------------------",item)
item1=item
for value in item1.values():
test_sum=value
if test_sum <= sum:
raise UserError('There is only %s qty for product %s products.')% (product_obj.qty_available,product_obj.name)
return {'type': 'ir.actions.act_window_close'}