コード例 #1
0
 def test_equal_records(self):
     a = 'g'
     equals = self.equals
     for elem in equals:
         result = Record.equal_records(equals[elem]["printer"], equals[elem]["sap"])
         exp = result, equals[elem]["expected"]
         self.assertEqual(result, equals[elem]["expected"])
コード例 #2
0
    def compare_write_reports2(self, printer, sap):
        """
        :type printer: list of PrinterRecord
        :type sap: list of SapRecord
        :return:
        """

        tax_diff_by_tax = {}
        f = open(self.args["out"], 'wt')
        output = csv.writer(f)
        output.writerow(('id', 'status', 'message', 'comment', 'tax code diff', 'tax diff', 'taxes by tax', 'tax sum'))

        both, only_printer, only_sap = self.get_common_elements(printer, sap)
        # printer_keys = set(printer.keys())

        for refNum in only_printer:
            for tax in printer[refNum].tax_sum_by_tax:
                output.writerow((refNum, Record.STATUS_BAD, Record.MESSAGE_ONLY_PRINTER, None,
                                 tax, printer[refNum].tax_sum_by_tax[tax], printer[refNum].tax_sum_by_tax, printer[refNum].total_tax_sum))
        for refNum in only_sap:
            for tax in sap[refNum].tax_sum_by_tax:

                if tax == SapRecord.TAX_TECHNICAL_CODE and abs(sap[refNum].tax_sum_by_tax[tax]) < eps:
                    # skip when contains technical code and tax
                    continue
                output.writerow((refNum, Record.STATUS_BAD, Record.MESSAGE_ONLY_SAP, None,
                                 tax, abs(sap[refNum].tax_sum_by_tax[tax]), sap[refNum].tax_sum_by_tax, sap[refNum].total_tax_sum))

        for refNum in both:
            messages = Record.equal_records(printer[refNum], sap[refNum])
            if len(messages):
                for message in messages:
                    tax_symbol = message["tax_symbol_err"]

                    # liczenie sumy roznic podatkow
                    tax_diff = None
                    if tax_symbol:
                        # tax_diff = Record.round(abs(abs(printer[refNum].tax_sum_by_tax.get(tax_symbol, 0)) - abs(sap[refNum].tax_sum_by_tax.get(tax_symbol, 0))))
                        tax_diff = Record.round(printer[refNum].tax_sum_by_tax.get(tax_symbol, 0) - abs(sap[refNum].tax_sum_by_tax.get(tax_symbol, 0)))
                        tax_sum = tax_diff_by_tax.get(tax_symbol, 0) + tax_diff
                        tax_diff_by_tax[tax_symbol] = tax_sum

                    output.writerow((refNum, message["status"], message["message"], message["comment"], tax_symbol, tax_diff,
                                     (printer[refNum].tax_sum_by_tax, sap[refNum].tax_sum_by_tax),
                                     (printer[refNum].total_tax_sum, sap[refNum].total_tax_sum)))

            else:
                b = 'blad?'

        for tax in tax_diff_by_tax:
            output.writerow((tax, Record.round(tax_diff_by_tax[tax])))

        print '\nliczba wspolnych - ' + str(len(both))
        print 'liczba na drukarce - ' + str(len(only_printer))
        print 'liczba w sap - ' + str(len(only_sap))