Esempio n. 1
0
    def handle(self, *args, **options):
        activate(settings.LANGUAGE_CODE)
        logging.basicConfig()
        companyInfo = CompanyInfo.objects.get(user__id=options["user"])
        if options["currency"]:
            currency = Thing.objects.get(code=options["currency"])
        else:
            currency = Thing.objects.get_default()

        processCredit(companyInfo, int(options["value"]), currency, "manual set credit")
    def handle(self, *args, **options):
        activate(settings.LANGUAGE_CODE)
        logging.basicConfig()

        companyInfo = CompanyInfo.objects.get(phone=options['num'])
        if options['currency']:
            currency = Thing.objects.get(code=options['currency'])
        else:
            currency = Thing.objects.get_default()

        processCredit(companyInfo, -int(options['value']),
                      currency, 'manual lower credit')
Esempio n. 3
0
 def process_charging(self, chargings, chargeday):
     """
     Subtracts credit and generates charging info mails. 
     """
     for (cInfo, _), chargeinfo in chargings.items():
         if cInfo.user_id == settings.OUR_COMPANY_ID:
             return # do not charge myself
             
         price = chargeinfo.pop('totalprice')
         currency = Thing.objects.get_default()
         contractor = CompanyInfo.objects.get_our_company_info()
         details = '\n'.join(['%s:%s' % (k, v) for k, v in chargeinfo.items()])
         
         # subtract credit
         currCredit = processCredit(cInfo, -price, currency, details,
                                    contractor.bankaccount)
     
         # send info mail
         mailContent = render_to_string('vpnadmin/infoMail.html', {
             'invoice': chargeinfo,
             'state': currCredit,
             'price': price,
             'cinfo': cInfo,
             'domain': Site.objects.get_current(),
         })
         subject = ugettext('phone service info')
         cInfo.user.email_user(subject, mailContent)
Esempio n. 4
0
    def testProcessCredit(self):
        """
        Test account notification command.
        """
        cInfo = self._chooseCompany()
        currency = Thing.objects.get_default()
        amount = -4000
        contractor = CompanyInfo.objects.get_our_company_info()
        processCredit(cInfo, amount, currency, "pokus", contractor.bankaccount)

        try:
            CreditChangeRecord.objects.get(change=amount, company=cInfo)
        except CreditChangeRecord.DoesNotExist:
            raise AssertionError("CreditChangeRecord not exists")

        self._verifyOutMessage(to=[cInfo.user.email], subject=_("credit call"))
def processInvoices(invoices, billURL):
    for invoice, cinfo in invoices:
        if cinfo.user_id == settings.OUR_COMPANY_ID:
            continue
        price = sum(invoice.values())
        currency = Thing.objects.get_default()
        contractor = CompanyInfo.objects.get_our_company_info()
        details = "\n".join(["%s:%s" % (k, v) for k, v in invoice.items()])
        currCredit = processCredit(cinfo, -price, currency, details, contractor.bankaccount)

        mailContent = render_to_string(
            "vpnadmin/infoMail.html",
            {
                "invoice": invoice,
                "state": currCredit,
                "billURL": billURL,
                "price": price,
                "cinfo": cinfo,
                "domain": Site.objects.get_current(),
            },
        )
        subject = ugettext("phone service info")
        cinfo.user.email_user(subject, mailContent)