def make_transfer(self, rdata, request): from tv.models import Fee, Payment from abon.models import Abonent from datetime import datetime descr = rdata["descr"] or "" if "abonent_from" in rdata and rdata["abonent_from"] > 0: pass else: return dict( success=False, title="Сбой переносa средств", msg="Invalid option value: abonent_from", errors="", data={}, ) if "abonent_to" in rdata and rdata["abonent_to"] > 0: pass else: return dict( success=False, title="Сбой переносa средств", msg="Invalid option value: abonent_to", errors="", data={} ) if "sum" in rdata and rdata["sum"] > 0: pass else: return dict( success=False, title="Сбой переносa средств", msg="Invalid option value: sum", errors="", data={} ) if "date" in rdata and rdata["date"] > 0: date = rdata["date"] try: date = datetime.strptime(date, "%Y-%m-%dT%H:%M:%S").date() except ValueError: return dict(success=False, title="Сбой переносa средств", msg="invalid date", errors="", data={}) else: return dict(success=False, title="Сбой переносa средств", msg="invalid date", errors="", data={}) try: abon_from = Abonent.objects.get(pk=rdata["abonent_from"]) abon_to = Abonent.objects.get(pk=rdata["abonent_to"]) except Abonent.DoesNotExist: return dict(success=False, title="Сбой переносa средств", msg="Abonent not found", errors="", data={}) else: f = Fee() f.bill = abon_from.bill f.sum = rdata["sum"] f.descr = "Трансфер средств. recipient client id = %s " % abon_to.pk f.inner_descr = descr f.admin = request.user f.bank_date = date f.save() f.make() p = Payment() p.bill = abon_to.bill p.sum = rdata["sum"] p.descr = "Трансфер средств. source client id = %s " % abon_from.pk p.inner_descr = descr p.admin = request.user p.bank_date = date p.save() p.make() print rdata return dict(success=True, title="Перенос средств успешен", msg="...", errors="", data={})
def make_fee(self, rdata, request): from tv.models import FeeType, Fee, Payment from abon.models import Abonent from datetime import datetime print rdata ftype_id = int(rdata["type"]) uid = int(rdata["abonent"]) sum = float(rdata["sum"]) tmpdate = rdata["bankdate"] descr = rdata["descr"] or "" autopay = rdata["autopay"] or False autoactivate = rdata["autoactivate"] or False try: ftype = FeeType.objects.get(pk=ftype_id) except FeeType.DoesNotExist: return dict(success=False, title="Сбой снятия денег", msg="register not found", errors="", data={}) inner_descr = "%s [%s] (%s)" % (ftype.__unicode__(), rdata["sum"], rdata["descr"] or "") try: abonent = Abonent.objects.get(pk=uid) except Abonent.DoesNotExist: return dict(success=False, title="Сбой снятия денег", msg="abonent not found", errors="", data={}) try: bank_date = datetime.strptime(tmpdate, "%Y-%m-%dT%H:%M:%S").date() except ValueError: return dict(success=False, title="Сбой снятия денег", msg="invalid date", errors="", data={}) f = Fee() f.fee_type = ftype f.bill = abonent.bill f.sum = sum f.descr = descr f.inner_descr = inner_descr f.admin = request.user f.timestamp = bank_date f.save() f.make() if autopay: p = Payment() p.register = None p.source = None p.bill = abonent.bill p.sum = sum p.descr = descr p.inner_descr = inner_descr p.admin = request.user p.bank_date = bank_date p.save() p.make() if autoactivate: if abonent.disabled: rdata["date"] = rdata["bankdate"] rdata["descr"] = inner_descr return [ self.enable(rdata, request=request), dict(success=True, title="Снятие проведено", msg="...", errors="", data={}), ] return dict(success=True, title="Снятие проведено", msg="...", errors="", data={})