Skip to content

Commit

Permalink
Merge pull request #79 from lepistone/more-readonly-states
Browse files Browse the repository at this point in the history
logistic order: more readonly states
  • Loading branch information
yvaucher committed Dec 11, 2014
2 parents 69ca4cf + 555cf39 commit b899f12
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 19 deletions.
23 changes: 14 additions & 9 deletions logistic_budget/model/logistic_requisition.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,16 @@
from openerp.osv import fields, orm
import openerp.addons.decimal_precision as dp
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT as DT_FORMAT
from openerp.addons.logistic_requisition.model.logistic_requisition import (
LogisticsRequisition as base_logistic_requisition
)

_logger = logging.getLogger(__name__)


class logistic_requisition(orm.Model):
_inherit = "logistic.requisition"

REQ_STATES = {'confirmed': [('readonly', True)],
'done': [('readonly', True)]
}

_columns = {
'total_budget': fields.function(
lambda self, *args, **kwargs: self._get_amount(*args, **kwargs),
Expand All @@ -51,18 +50,24 @@ class logistic_requisition(orm.Model):
}),
'budget_holder_id': fields.many2one(
'res.users',
states=base_logistic_requisition.REQ_STATES,
string='Budget Holder'),
'date_budget_holder': fields.datetime(
'Budget Holder Validation Date'),
'Budget Holder Validation Date',
states=base_logistic_requisition.REQ_STATES),
'budget_holder_remark': fields.text(
'Budget Holder Remark'),
'Budget Holder Remark',
states=base_logistic_requisition.REQ_STATES),
'finance_officer_id': fields.many2one(
'res.users',
string='Finance Officer'),
string='Finance Officer',
states=base_logistic_requisition.REQ_STATES),
'date_finance_officer': fields.datetime(
'Finance Officer Validation Date'),
'Finance Officer Validation Date',
states=base_logistic_requisition.REQ_STATES),
'finance_officer_remark': fields.text(
'Finance Officer Remark'),
'Finance Officer Remark',
states=base_logistic_requisition.REQ_STATES),
}

def _get_amount(self, cr, uid, ids, name, args, context=None):
Expand Down
22 changes: 15 additions & 7 deletions logistic_budget/model/sale_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,36 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from openerp import models, fields, api
from openerp.addons.logistic_order.model.sale_order import (
SaleOrder as base_logistics_order
)


class SaleOrder(models.Model):
_inherit = 'sale.order'

budget_holder_id = fields.Many2one(
'res.users',
string='Budget Holder')
string='Budget Holder',
states=base_logistics_order.LO_STATES)
date_budget_holder = fields.Datetime(
'Budget Holder Validation Date')
'Budget Holder Validation Date',
states=base_logistics_order.LO_STATES)
budget_holder_remark = fields.Text(
'Budget Holder Remark')
'Budget Holder Remark',
states=base_logistics_order.LO_STATES)
finance_officer_id = fields.Many2one(
'res.users',
string='Finance Officer')
string='Finance Officer',
states=base_logistics_order.LO_STATES)
date_finance_officer = fields.Datetime(
'Finance Officer Validation Date')
'Finance Officer Validation Date',
states=base_logistics_order.LO_STATES)
finance_officer_remark = fields.Text(
'Finance Officer Remark')
'Finance Officer Remark',
states=base_logistics_order.LO_STATES)
total_budget = fields.Float("Total Budget", compute='_total_budget',
store=True)
budget_holder_id = fields.Many2one('res.users', 'Budget Holder')

@api.one
@api.depends('order_line.budget_tot_price')
Expand Down
10 changes: 10 additions & 0 deletions logistic_consignee/model/sale_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,20 @@
class SaleOrder(models.Model):
_inherit = 'sale.order'

LO_STATES = {
'cancel': [('readonly', True)],
'progress': [('readonly', True)],
'manual': [('readonly', True)],
'shipping_except': [('readonly', True)],
'invoice_except': [('readonly', True)],
'done': [('readonly', True)],
}

consignee_id = fields.Many2one(
'res.partner',
string='Consignee',
required=True,
states=LO_STATES,
help="The person to whom the shipment is to be delivered.")

@api.cr
Expand Down
21 changes: 20 additions & 1 deletion logistic_order/model/sale_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,31 @@
##############################################################################
from openerp import models, fields, api, exceptions
from openerp.tools.translate import _
from openerp.addons.logistic_consignee.model.sale_order import (
SaleOrder as base_sale_order
)


class SaleOrder(models.Model):
_inherit = 'sale.order'

LO_STATES = {'cancel': [('readonly', True)]}
LO_STATES = base_sale_order.LO_STATES

# incoterm is overridden to add states
incoterm = fields.Many2one(
'stock.incoterms',
'Incoterm',
states=LO_STATES,
help="International Commercial Terms are a series of predefined "
"commercial terms used in international transactions.")

# also carrier is overridden to add states
carrier_id = fields.Many2one(
"delivery.carrier",
string="Delivery Method",
states=LO_STATES,
help="Complete this field if you plan to invoice the shipping based "
"on picking.")

incoterm_address = fields.Char(
'Incoterm Place',
Expand Down
10 changes: 8 additions & 2 deletions logistic_requisition/model/logistic_requisition.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ def get_partner_requisition(self):
country_id = fields.Many2one(
'res.country',
string='Country',
states=REQ_STATES,
select=True)
company_id = fields.Many2one(
'res.company',
Expand All @@ -114,11 +115,16 @@ def get_partner_requisition(self):
'Cost Estimate Only',
states=REQ_STATES,
default=False)
note = fields.Text('Remarks / Description')
shipping_note = fields.Text('Delivery / Shipping Remarks')
note = fields.Text(
'Remarks / Description',
states=REQ_STATES)
shipping_note = fields.Text(
'Delivery / Shipping Remarks',
states=REQ_STATES)
incoterm_id = fields.Many2one(
'stock.incoterms',
'Incoterm',
states=REQ_STATES,
help="International Commercial Terms are a series of "
"predefined commercial terms used in international "
"transactions.")
Expand Down

0 comments on commit b899f12

Please sign in to comment.