<prompt> Andika hati ya Python inayounganishwa na hifadhidata ya PostgreSQL, inasoma data kutoka kwa majedwali mengi, na kutoa ripoti kulingana na vigezo maalum k.m., data ya mauzo ndani ya kipindi cha tarehe.PLINFORMAT  <response>: kuagiza psycopg2kutoka tarehe ya kuagiza ya wakatidb_params host: mwenyeji_wako, database: database_yako, user: mtumiaji_wako, password: nenosiri_lakodef fetch_sales_datatarehe_ya_kuanza, tarehe_mwisho: conn Hakuna jaribu: conn psycopg2.connectdb_params cur conn.cursor sql_query CHAGUA o.kitambulisho_cha_agizo, c.jina_la_mteja, p.product_name, o.quantity, o.total_bei, o. order_date KUTOKA kwa maagizo AS o JIUNGE NA wateja AS c KWENYE o.customer_id c.customer_id JIUNGE NA bidhaa AS p KWENYE o.product_id p.product_id WAPI o.tarehe_ya_agizo KATI YA s NA s; cur.executesql_query, tarehe_ya_kuanza, tarehe_mwisho sales_data cur.fetchall cur.close conn.close rudisha data_ya_mauzo isipokuwa Ila, psycopg2.DatabaseError kama hitilafu: printKosa:, kosa ikiwa conn sio Hakuna: conn.closedef generate_reportdata_mauzo: chapanRipoti ya Mauzo: chapa - 80 print:10 :20 :20 :10 :10 :10.formatKitambulisho cha Agizo, Jina la Mteja, Jina la Bidhaa , Kiasi, Bei ya Jumla, Tarehe ya Agizo chapa - 80 kwa safu katika data_ya_mauzo: print:10 :20 :20 :10 :10 :10.formatsafu chapa - 80kama __name__ __main__: start_date tarehe 2021, 1, 1 tarehe_mwisho tarehe 2021, 12, 31 sales_data fetch_sales_datatarehe_ya_kuanza, tarehe_mwisho zalisha_ripotidata_mauzo 