Example #1
0
    def post(self):
        form = ManualPostingForm(self.request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            _ids = cd['clirec_ids'].split(',')
            self.clirecs = UnmatchedClarec.objects.filter(pk__in=_ids)

            memo_acct = LedgerAccount.objects.get(pk=self.request.POST['contra-acct'])
            amount_taken = float(self.request.POST['amount-taken'])

            taken_to_memo = TakenToMemo.objects.create(
                date=date.today(),
                amount=amount_taken,
                acct=memo_acct,
                contra_acct=NostroAccount.objects.get(pk=self.request.POST['memo-acct']),
                # clirecs=self.clirecs,
            )
            taken_to_memo.clirecs.add(*[c for c in self.clirecs])

            entry_gen_trxn = EntryGeneratingTransaction.objects.get(
                short_name='ACCTTOACCTTRF')
            entry_code = EntryCode.objects.get(code='AAT')
            amount = float(cd['manual_post_amount'])
            post_data = []

            for amt, acct in ((-amount, cd['dr_acct'],), (amount, cd['cr_acct'],)):
                post_data.append({
                    'amount': amt,
                    'account': LedgerAccount.objects.get(pk=acct),
                    'entry_code': entry_code,
                    'entry_gen_trxn': entry_gen_trxn,
                    'narration': cd['manual_post_narration'],
                })
            if EntryContra.post_entry(*post_data):
                comment = self.update_comment(cd['posting_enum'])

                del cd['posting_enum']
                clirec_details = '\n'.join(
                    '%d\t%s' % (i + 1, c.details,) for i, c in enumerate(self.clirecs))

                logger.info(
                    'Clirec details:\n%s\n\nPost Data:\n%s\n\nTaken to memo\n\n\n',
                    clirec_details,
                    cd,
                )
                return HttpResponse(
                    json.dumps(
                        {'msg': '{:,.2f} taken to account {}'.format(amount_taken, memo_acct, ),
                         'ids': _ids, 'comment': comment,
                         }),
                    content_type='application/json'
                )

        return self.set_and_return_errors(form.errors)
Example #2
0
    def post(self):
        form = ManualPostingForm(self.request.POST)

        if form.is_valid():
            cd = form.cleaned_data
            _ids = cd['clirec_ids'].split(',')
            self.clirecs = UnmatchedClarec.objects.filter(pk__in=_ids)

            entry_gen_trxn = EntryGeneratingTransaction.objects.get(short_name='ACCTTOACCTTRF')
            entry_code = EntryCode.objects.get(code='AAT')
            amount = float(cd['manual_post_amount'])
            post_data = []

            for amt, acct in ((-amount, cd['dr_acct'],), (amount, cd['cr_acct'],)):
                post_data.append({
                    'amount': amt,
                    'account': LedgerAccount.objects.get(pk=acct),
                    'entry_code': entry_code,
                    'entry_gen_trxn': entry_gen_trxn,
                    'narration': 'INTEREST ON NOSTRO A/C DEPOSITS',
                })
            if EntryContra.post_entry(*post_data):
                comment = self.update_comment(cd['posting_enum'])

                del cd['posting_enum']
                clirec_details = '\n'.join(
                    '%d\t%s' % (i + 1, c.details,) for i, c in enumerate(self.clirecs))

                logger.info(
                    'Manual Posting for clirec details:\n%s\n\nPost Data:\n%s\n\n',
                    clirec_details,
                    cd,
                )
                return HttpResponse(
                    json.dumps({'msg': 'Entries Posted', 'ids': _ids, 'comment': comment, }),
                    content_type='application/json'
                )

        return self.set_and_return_errors(form.errors)
Example #3
0
    def post(self):
        form = ManualPostingForm(self.request.POST)
        if form.is_valid():
            comment = ''
            msg = ''
            cd = form.cleaned_data
            _ids = cd['clirec_ids'].split(',')
            self.clirecs = UnmatchedClarec.objects.filter(pk__in=_ids)

            if cd['update_manual_post_comment']:
                if self.update_comment(cd['posting_enum']):
                    msg += 'comments successfully updated.'
                    comment = cd['posting_enum']

            if cd['create_manual_post']:
                if self.post_entries(cd):
                    msg += '\nEntries successfully posted.'

            return HttpResponse(
                json.dumps(
                    {'msg': msg, 'ids': _ids, 'comment': comment, }),
                content_type='application/json'
            )
        return self.set_and_return_errors(form.errors)