[POS-commit] r1806 - in stoq/trunk/stoq: domain gui/editors
Evandro Vale Miquelito
evandro at async.com.br
Wed Dec 7 15:38:50 BRST 2005
Author: evandro
Date: Wed Dec 7 15:38:49 2005
New Revision: 1806
Modified:
stoq/trunk/stoq/domain/sellable.py
stoq/trunk/stoq/gui/editors/sellable.py
stoq/trunk/stoq/gui/editors/service.py
Log:
Fixing a bug in SellableEditor. Now we are catching properly SQLObject
exceptions when adding existent values in unique fields.
This code will be improved soon after adding some new features in kiwi.
r=henrique
Modified: stoq/trunk/stoq/domain/sellable.py
==============================================================================
--- stoq/trunk/stoq/domain/sellable.py (original)
+++ stoq/trunk/stoq/domain/sellable.py Wed Dec 7 15:38:49 2005
@@ -37,6 +37,7 @@
from stoqlib.exceptions import SellError, DatabaseInconsistency
from stoq.lib.validators import is_date_in_interval, get_formatted_price
+from stoq.lib.runtime import get_connection
from stoq.lib.parameters import sysparam
from stoq.domain.interfaces import ISellable, IContainer
from stoq.domain.base import (Domain, InheritableModelAdapter,
@@ -234,6 +235,14 @@
'%d' % self.state)
return self.states[self.state]
+ def _set_code(self, code):
+ conn = get_connection()
+ query = AbstractSellable.q.code == code
+ # FIXME We should raise a proper stoqlib exception here if we find
+ # an existent code. Waiting for kiwi support
+ if not AbstractSellable.select(query, connection=conn).count():
+ self._SO_set_code(code)
+
@classmethod
def get_available_sellables_query(cls, conn):
service = sysparam(conn).DELIVERY_SERVICE
Modified: stoq/trunk/stoq/gui/editors/sellable.py
==============================================================================
--- stoq/trunk/stoq/gui/editors/sellable.py (original)
+++ stoq/trunk/stoq/gui/editors/sellable.py Wed Dec 7 15:38:49 2005
@@ -37,6 +37,7 @@
from stoq.domain.sellable import SellableCategory, AbstractSellable
from stoq.domain.interfaces import ISellable, IStorable
+from stoq.lib.runtime import new_transaction
_ = gettext.gettext
@@ -162,6 +163,7 @@
BaseEditor.__init__(self, conn, model)
self.notes.set_accepts_tab(False)
self.setup_widgets()
+ self._original_code = self.sellable_proxy.model.code
def set_widget_formats(self):
for widget in (self.cost, self.stock_total_lbl, self.price):
@@ -212,3 +214,19 @@
def on_sale_price_button__clicked(self, button):
self.edit_sale_price()
+
+ def validate_confirm(self, *args):
+ code = self.code.get_text()
+ if self.edit_mode and code == self._original_code:
+ return True
+ conn = new_transaction()
+ query = AbstractSellable.q.code == code
+ qty = AbstractSellable.select(query, connection=conn).count()
+ if qty:
+ msg = _('This code already exists!')
+ self.code.set_invalid(msg)
+ value_ok = False
+ else:
+ value_ok = True
+ conn._connection.close()
+ return value_ok
Modified: stoq/trunk/stoq/gui/editors/service.py
==============================================================================
--- stoq/trunk/stoq/gui/editors/service.py (original)
+++ stoq/trunk/stoq/gui/editors/service.py Wed Dec 7 15:38:49 2005
@@ -96,5 +96,3 @@
model.addFacet(ISellable, code='', description='', price=0.0,
connection=conn)
return model
-
-
More information about the POS-commit
mailing list