summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/sales_order_fullfillment.py
blob: 05a0641c2e5f35629e8966423253509d77683acd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from odoo import fields, models, api, _
from odoo.exceptions import AccessError, UserError, ValidationError
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
import logging

_logger = logging.getLogger(__name__)


class SalesOrderFullfillmentV2(models.Model):
    _name = 'sales.order.fulfillment.v2'

    sale_order_id = fields.Many2one('sale.order', string='Sale Order')
    sale_order_line_id = fields.Many2one('sale.order.line', string='Sale Order Line')
    picking_id = fields.Many2one('stock.picking', string='Picking')
    move_id = fields.Many2one('stock.move', string='Move')
    move_line_id = fields.Many2one('stock.move.line', string='Move Line')
    product_id = fields.Many2one('product.product', string='Product')
    so_qty = fields.Float(string='SO Qty')
    reserved_stock_qty = fields.Float(string='Reserved Stock Qty', help='Sudah ter-reserved oleh sistem')
    delivered_qty = fields.Float(string='Delivered Qty', help='Yang sudah terkirim ke Customer')
    po_ids = fields.Many2many('purchase.order', string='Purchase Order', help='PO yang dibuat, bisa lebih dari satu')
    po_qty = fields.Float(string='PO Qty', help='Totalan dari semua PO Outstanding')
    received_qty = fields.Float(string='Received Qty', help='Totalan dari barang yang diterima dari PO tsb')
    purchaser = fields.Char(string='Purchaser')


class SalesOrderFullfillment(models.Model):
    _name = 'sales.order.fullfillment'

    sales_order_id = fields.Many2one('sale.order', string='Sale Order')
    product_id = fields.Many2one('product.product', string='Product')
    reserved_from = fields.Char(string='Reserved From', copy=False)  
    qty_fullfillment = fields.Float(string='Qty')
    user_id = fields.Many2one('res.users', string='Responsible', compute='get_user_id')

    def get_user_id(self):
        for rec in self:
            po = self.env['purchase.order'].search([('name', '=', rec.reserved_from)], limit=1)

            if po:
                rec.user_id = po.user_id.id
            else:
                rec.user_id = False