Revision 8cff5e41 snf-astakos-app/astakos/quotaholder/callpoint.py
b/snf-astakos-app/astakos/quotaholder/callpoint.py | ||
---|---|---|
44 | 44 |
from django.db.models import Q, Count |
45 | 45 |
from django.db.models import Q |
46 | 46 |
from .models import (Policy, Holding, |
47 |
Commission, Provision, ProvisionLog, CallSerial,
|
|
47 |
Commission, Provision, ProvisionLog, |
|
48 | 48 |
now, |
49 | 49 |
db_get_holding, db_get_policy, |
50 |
db_get_commission, db_filter_provision, db_get_callserial)
|
|
50 |
db_get_commission, db_filter_provision) |
|
51 | 51 |
|
52 | 52 |
|
53 | 53 |
class QuotaholderDjangoDBCallpoint(object): |
... | ... | |
345 | 345 |
return rejected |
346 | 346 |
|
347 | 347 |
def add_quota(self, |
348 |
context=None, clientkey=None, serial=None,
|
|
348 |
context=None, |
|
349 | 349 |
sub_quota=(), add_quota=()): |
350 | 350 |
rejected = [] |
351 | 351 |
append = rejected.append |
352 | 352 |
|
353 |
if serial is not None: |
|
354 |
if clientkey is None: |
|
355 |
all_pairs = [(q[0], q[1]) for q in sub_quota + add_quota] |
|
356 |
raise QuotaholderError(all_pairs) |
|
357 |
try: |
|
358 |
cs = CallSerial.objects.get(serial=serial, clientkey=clientkey) |
|
359 |
all_pairs = [(q[0], q[1]) for q in sub_quota + add_quota] |
|
360 |
raise QuotaholderError(all_pairs) |
|
361 |
except CallSerial.DoesNotExist: |
|
362 |
pass |
|
363 |
|
|
364 | 353 |
sources = sub_quota + add_quota |
365 | 354 |
q_holdings = Q() |
366 | 355 |
holders = [] |
... | ... | |
431 | 420 |
if rejected: |
432 | 421 |
raise QuotaholderError(rejected) |
433 | 422 |
|
434 |
if serial is not None and clientkey is not None: |
|
435 |
CallSerial.objects.create(serial=serial, clientkey=clientkey) |
|
436 | 423 |
return rejected |
437 | 424 |
|
438 |
def ack_serials(self, context=None, clientkey=None, serials=()): |
|
439 |
if clientkey is None: |
|
440 |
return |
|
441 |
|
|
442 |
for serial in serials: |
|
443 |
try: |
|
444 |
c = db_get_callserial(clientkey=clientkey, |
|
445 |
serial=serial, |
|
446 |
for_update=True) |
|
447 |
c.delete() |
|
448 |
except CallSerial.DoesNotExist: |
|
449 |
pass |
|
450 |
return |
|
451 |
|
|
452 |
def query_serials(self, context=None, clientkey=None, serials=()): |
|
453 |
result = [] |
|
454 |
append = result.append |
|
455 |
|
|
456 |
if clientkey is None: |
|
457 |
return result |
|
458 |
|
|
459 |
if not serials: |
|
460 |
cs = CallSerial.objects.filter(clientkey=clientkey) |
|
461 |
return [c.serial for c in cs] |
|
462 |
|
|
463 |
for serial in serials: |
|
464 |
try: |
|
465 |
db_get_callserial(clientkey=clientkey, serial=serial) |
|
466 |
append(serial) |
|
467 |
except CallSerial.DoesNotExist: |
|
468 |
pass |
|
469 |
|
|
470 |
return result |
|
471 |
|
|
472 | 425 |
def issue_commission(self, |
473 | 426 |
context=None, |
474 | 427 |
clientkey=None, |
Also available in: Unified diff