def database_partial_payment(self):
        """
        Store partial payments into the database
        """
        if retrieve_partial_payment.get_partial_payment(
                self.supplier_id, self.party_id) == -1:
            insert_partial_payment.insert_partial_payment(self)
        else:
            update_partial_amount.add_partial_amount(self.supplier_id,
                                                     self.party_id,
                                                     self.amount)

        MemoBill.call(self.memo_id, 0, self.amount, "PR")
def khata_report(party_ids: List[int], supplier_ids: List[int],
                 start_date: str, end_date: str) -> List:
    """
    Return a 2D list of all pdf elements for Khata Report
    """

    table_header = ("Bill No.", "Bill Date", "Bill Amt", "Status", "Memo No.",
                    "Memo Amt", "Memo Date", "M.Type", "Chk. Amt")

    hr_line = create_pdf.create_horizontal_line()

    master_elements = [create_pdf.create_h1("Khata Report"), hr_line]

    for party_id in party_ids:
        top_elements = []
        elements = []
        party_name = retrieve_indivijual.get_party_name_by_id(party_id)
        h2text = "Party Name: " + party_name
        top_elements.append(create_pdf.create_h2(h2text))
        top_elements.append(hr_line)
        filter_suppliers = efficiency.filter_out_supplier(
            party_id, supplier_ids)
        for supplier_id in filter_suppliers:
            add_table = True
            khata_data = retrieve_register_entry.get_khata_data_by_date(
                supplier_id, party_id, start_date, end_date)
            if len(khata_data) == 0:
                add_table = False
            part_no_bill = retrieve_partial_payment.get_partial_payment(
                supplier_id, party_id)
            table_data = [table_header] + khata_data + total_bottom_column(
                khata_data, part_no_bill)
            table = create_pdf.create_table(table_data)
            create_pdf.add_table_border(table)
            create_pdf.add_alt_color(table, len(table_data))
            create_pdf.add_padded_header_footer_columns(table, len(table_data))
            create_pdf.add_footer(table, len(table_data))
            create_pdf.add_status_colour(table, table_data, 3)
            create_pdf.add_table_font(table, "Courier")
            if add_table:
                supplier_name = retrieve_indivijual.get_supplier_name_by_id(
                    supplier_id)
                add_text = "Supplier Name: " + supplier_name
                elements.append(create_pdf.create_h3(add_text))
                elements.append(table)
        if len(elements) != 0:
            master_elements = master_elements + top_elements + elements
            master_elements.append(create_pdf.new_page())

    return master_elements
示例#3
0
def supplier_register(party_ids: List[int], supplier_ids: List[int],
                      start_date: str, end_date: str) -> List:
    """
    Returns a 2D list of all pdf elements for supplier register
    """

    table_header = ("Bill Number", "Bill Amount", "Pending Amount",
                    "Bill Date", "Status")

    hr_line = create_pdf.create_horizontal_line()

    master_elements = [create_pdf.create_h1("Supplier Register"), hr_line]

    for supplier_id in supplier_ids:
        top_elements = []
        elements = []
        supplier_name = retrieve_indivijual.get_supplier_name_by_id(
            supplier_id)
        h2text = "Supplier Name: " + supplier_name
        top_elements.append(create_pdf.create_h2(h2text))
        top_elements.append(hr_line)
        filter_parties = efficiency.filter_out_parties(supplier_id, party_ids)
        for party_id in filter_parties:
            add_table = True
            register_data = retrieve_register_entry.get_supplier_register_data(
                supplier_id, party_id, start_date, end_date)
            if len(register_data) == 0:
                add_table = False
            part_no_bill = retrieve_partial_payment.get_partial_payment(
                supplier_id, party_id)
            table_data = [table_header] + register_data + total_bottom_column(
                register_data, part_no_bill)
            table = create_pdf.create_table(table_data)
            create_pdf.add_table_border(table)
            create_pdf.add_alt_color(table, len(table_data))
            create_pdf.add_padded_header_footer_columns(table, len(table_data))
            create_pdf.add_footer(table, len(table_data))
            create_pdf.add_status_colour(table, table_data, 4)
            create_pdf.add_table_font(table, "Courier")
            if add_table:
                party_name = retrieve_indivijual.get_party_name_by_id(party_id)
                add_text = "Party Name: " + party_name
                elements.append(create_pdf.create_h3(add_text))
                elements.append(table)
        if len(elements) != 0:
            master_elements = master_elements + top_elements + elements
            master_elements.append(create_pdf.new_page())

    return master_elements
示例#4
0
def add_partial_amount(supplier_id: int, party_id: int, amount: int) -> None:
    """
    Add partial amount between a supplier and party
    """

    # Open a new connection
    db, cursor = db_connector.cursor()

    partial_amount = int(
        retrieve_partial_payment.get_partial_payment(supplier_id, party_id))
    amount += partial_amount

    query = "UPDATE supplier_party_account SET partial_amount = {} WHERE supplier_id = {} AND party_id = {}" \
        .format(amount, supplier_id, party_id)

    cursor.execute(query)
    db.commit()
    db.disconnect()
    db_connector.update()