コード例 #1
0
ファイル: fix_pc.py プロジェクト: vns9/chitmanager
    def handle(self, *args, **kwargs):
        txn_set = defaultdict(list) 
        
        for ji in JournalItem.objects.all():
            txn_set[ji.txn_id].append(ji)
        for txn_id, ji_list in txn_set.iteritems():
            
            delete_list = []
            add_list = []
            net_change = 0

            if len(ji_list) == 1:
                continue
            for x in ji_list:
                if x.subscription.group.name == 'Personal Credits':
                    delete_list.append(x)
                    net_change += x.credit - x.debit
                if len(delete_list) > 1:
                    new_ji = JournalItem()
                    if(net_change > 0 ):
                        new_ji.credit = net_change
                        new_ji.debit = 0
                    else:
                        new_ji.debit = -net_change
                        new_ji.credit = 0
                    new_ji.subscription = delete_list[0].subscription
                    new_ji.txn = delete_list[0].txn
                    new_ji.save()

                    for x in delete_list:
                        print "Deleting: ", x.id
                        if x.id:
                            x.delete()