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
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
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()