def generateXml(self): try: root = initial_report() property = Property() me_particular = ME_Particular() me_table = ME_Table() property.ship_name = self.ui.shipNameEdit.text() property.call_sign = self.ui.callSignEdit.text() property.imo_number = self.ui.imoNumberEdit.text() property.port_registry = self.ui.portRegistryEdit.text() property.company_name = self.ui.companyNameEdit.text() property.class_society = self.ui.classSocietyEdit.text() property.email = self.ui.emailEdit.text() property.telphone = self.ui.telEdit.text() property.fax = self.ui.faxEdit.text() property.ship_type = self.ui.shipTypeComboBox.currentText() property.international_gross_tonnage = self.ui.igtEdit.text() property.international_net_tonnage = self.ui.intEdit.text() property.loa = self.ui.loaEdit.text() property.lbp = self.ui.lbpEdit.text() property.breadth_moulded = self.ui.breadthMouldedEdit.text() property.depth_moulded = self.ui.depthMouldedEdit.text() property.ecdis_maker = self.ui.ecdisMakerEdit.text() property.ecdis_model = self.ui.depthMouldedEdit.text() property.captain_name = self.ui.captain_name_edit.text() property.captain_crew_id = self.ui.captain_crew_id_edit.text() property.maintain_paper_chart = self.ui.yesRadioBtn.isChecked() me_particular.ME_Table = me_table cells=[] pattern='[./\s]' for i in range(self.ui.meTableWidget.rowCount()): vertical_name = self.ui.meTableWidget.verticalHeaderItem(i).text() repl_h_name = re.sub(pattern, '_', str(vertical_name)) for j in range(self.ui.meTableWidget.columnCount()): column_name = self.ui.meTableWidget.horizontalHeaderItem(j).text() repl_c_name = re.sub(pattern, '_', str(column_name)) cells.append(cell(repl_c_name, repl_h_name, self.ui.meTableWidget.item(i,j).text())) me_table.cell = cells me_particular.ME_Maker = self.ui.meMakerEdit.text() me_particular.ME_Model = self.ui.meModelEdit.text() property.ME_Particular = me_particular root.Property = property data_dir = Utils.createDataDir() fn_path = abs_lambda(os.path.join(data_dir , 'initial.xml')) with open(fn_path, 'w') as f: f.write('''<?xml version="1.0" encoding="UTF-8"?>\n''') root.export(f, 1, namespacedef_='xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') msg_box = QMessageBox(QMessageBox.Information, "Success", "Initial Report config file generated successfully") msg_box.exec_() except Exception,ex: self.logger.error('Generate the initial report config file failed') self.logger.error(ex) msg_box = QMessageBox(QMessageBox.Warning, "Warning", "Initial Report config file generated failed \n" + str(ex)) msg_box.exec_()
def generateXml(self): root = request_report() property = Property() root.Property = property #general data property.ship_name = self.ui.ship_name_edit.text() property.call_sign = self.ui.call_sign_edit.text() property.voyage_number = self.ui.voyage_number_edit.text() property.date = self.ui.date_edit.text() #voyage data departure voyage_det = voyage_detail() depart = departure() arr = arrival() depart.departure_date = self.ui.depart_date_edit.text() depart.departure_time = self.ui.departure_time_edit.text() depart.country = self.ui.departure_country_combo.currentText() depart.port = self.ui.departure_port_combo.currentText() depart.unlo_code = self.ui.departure_unlo_edit.text() depart.terminal = self.ui.departure_terminal_edit.text() #voyage data arrival arr.arrival_date = self.ui.arrival_date_edit.text() arr.arrival_time = self.ui.arrival_time_edit.text() arr.country = self.ui.arrival_country_combo.currentText() arr.port = self.ui.arrival_port_combo.currentText() arr.unlo_code = self.ui.arrival_unlo_edit.text() arr.terminal = self.ui.arrival_terminal_edit.text() voyage_det.departure=depart voyage_det.arrival = arr property.voyage_detail = voyage_det #add via place via_places=[] vias = via() list_item_count = self.ui.via_listWidget.count() for index in range(list_item_count): via_places.append(self.ui.via_listWidget.item(index).text()) vias.place_name = via_places property.via = vias property.use_dw_route = self.ui.use_dw_route_yes_radio.isChecked() property.prefered_route_type = self.ui.prefer_route_type_combo.currentText() property.maximum_draft = self.ui.maximum_draft_edit.text() property.load_condition = self.ui.load_condition_edit.text() property.speed_setting = self.ui.speed_setting_edit.text() property.etd = self.ui.etd_edit.text() data_dir = Utils.createDataDir() fn_path = abs_lambda(os.path.join(data_dir , 'request.xml')) with open(fn_path, 'w') as f: f.write('''<?xml version="1.0" encoding="UTF-8"?>\n''') root.export(f, 1, namespacedef_='xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') msg_box = QMessageBox(QMessageBox.Information, "Success", "Revert Route config file generated successfully") msg_box.exec_()
def generateXml(self): root = quarterly_report() property = Property() root.Property = property data_dir = Utils.createDataDir() fn_path = abs_lambda(os.path.join(data_dir , 'request.xml')) with open(fn_path, 'w') as f: f.write('''<?xml version="1.0" encoding="UTF-8"?>\n''') root.export(f, 1, namespacedef_='xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') msg_box = QMessageBox(QMessageBox.Information, "Success", "Revert Route config file generated successfully") msg_box.exec_()
def generateXml(self): root = revert_report() property = Property() #general data property.ship_name = self.ui.ship_name_edit.text() property.call_sign = self.ui.call_sign_edit.text() property.voyage_number = self.ui.voyage_number_edit.text() property.captain_name = self.ui.captain_name_edit.text() property.date = self.ui.date_edit.text() #voyage data departure voyage_det = voyage_detail() depart = departure() arr = arrival() depart.departure_date = self.ui.depart_date_edit.text() depart.departure_time = self.ui.departure_time_edit.text() depart.country = self.ui.departure_country_combo.currentText() depart.port = self.ui.departure_port_combo.currentText() depart.unlo_code = self.ui.departure_unlo_edit.text() depart.terminal = self.ui.departure_terminal_edit.text() #voyage data arrival arr.arrival_date = self.ui.arrival_date_edit.text() arr.arrival_time = self.ui.arrival_time_edit.text() arr.country = self.ui.arrival_country_combo.currentText() arr.port = self.ui.arrival_port_combo.currentText() arr.unlo_code = self.ui.arrival_unlo_edit.text() arr.terminal = self.ui.arrival_terminal_edit.text() voyage_det.departure=depart voyage_det.arrival = arr property.voyage_detail = voyage_det #paper tab property.use_critial_point = self.ui.critial_yes_radio.isChecked() property.use_dw_route = self.ui.use_dw_route_yes_radio.isChecked() property.route_number = self.ui.received_route_number.text() property.modify_route = self.ui.modify_route_radio_yes.isChecked() property.modify_reason = self.ui.reason_modify_route_combo.currentText() #critial point points=[] row_count = self.ui.critial_point_table_widget.rowCount() for i in range(row_count): point_item = point() try: lat = self.ui.critial_point_table_widget.item(i,0).text() long = self.ui.critial_point_table_widget.item(i,1).text() point_item.latitude = str(self.convertPoint(lat)) point_item.longtitude = str(self.convertPoint(long)) include_flag = self.ui.critial_point_table_widget.item(i,2).text() if include_flag == 'Yes': points.append(point_item) except AttributeError: pass cp = critial_point() cp.point = points property.critial_point = cp #add via place via_places=[] vias = via() list_item_count = self.ui.via_listWidget.count() for index in range(list_item_count): via_places.append(self.ui.via_listWidget.item(index).text()) vias.place_name = via_places property.via = vias property.route_number = self.ui.received_route_number.text() property.route_type = self.ui.route_type_combo.currentText() property.modify_route = self.ui.modify_route_radio_yes.isChecked() property.modify_reason = self.ui.reason_modify_route_combo.currentText() #paper chart chart = paper_chart() chart_items=[] for i in range(self.ui.paper_chart_table_widget.rowCount()): for j in range(self.ui.paper_chart_table_widget.columnCount()): try: chart_items.append(self.ui.paper_chart_table_widget.item(i,j).text()) except: pass property.paper_chart = chart voyage_dat = voyage_data() voyage_dat.maximum_draft = self.ui.maximum_draft_edit.text() voyage_dat.minimum_ukc = self.ui.minimum_ukc_edit.text() voyage_dat.load_condition = self.ui.load_condition_combo.currentText() voyage_dat.displacement = self.ui.displacement_edit.text() voyage_dat.cargo_carried = self.ui.cargo_carried.text() voyage_dat.average_me_rmp = self.ui.average_me_rmp_edit.text() voyage_dat.total_distance = self.ui.total_distance_edit.text() voyage_dat.total_streaming_time = self.ui.total_streaming_time_edit.text() voyage_dat.average_speed = self.ui.average_speed_edit.text() voyage_dat.me_revolution_distance = self.ui.distance_me_revolution_edit.text() voyage_dat.log_distance = self.ui.log_distance_edit.text() voyage_dat.average_slip = self.ui.average_slip_edit.text() property.voyage_data = voyage_dat tbc = total_bunker_consumption() abc = average_bunker_consumption_per_nm() vpe = voyage_performance_efficiency() consume_list = [tbc, abc, vpe] for i in range(len(consume_list)): for j in range(self.ui.bunker_consume_table.columnCount()): column_name = self.ui.bunker_consume_table.horizontalHeaderItem(j).text().toLower() if hasattr(consume_list[i], str(column_name)): try: setattr(consume_list[i], str(column_name), self.ui.bunker_consume_table.item(i,j).text()) except AttributeError: setattr(consume_list[i], str(column_name), '') property.total_bunker_consumption = tbc property.average_bunker_consumption_per_nm = abc property.voyage_performance_efficiency = vpe property.overall_weather_condition = self.ui.overall_condition_combo.currentText() property.attach_ecdis_route_file = os.path.basename(str(self.ui.attach_ecdis_route_file_edit.text())) property.attach_wp_plan = os.path.basename(str(self.ui.attach_wp_plan_edit.text())) property.remark = self.ui.remark_edit.toPlainText() root.Property = property data_dir = Utils.createDataDir() fn_path = abs_lambda(os.path.join(data_dir , 'revert.xml')) with open(fn_path, 'w') as f: f.write('''<?xml version="1.0" encoding="UTF-8"?>\n''') root.export(f, 1, namespacedef_='xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"') msg_box = QMessageBox(QMessageBox.Information, "Success", "Revert Route config file generated successfully") msg_box.exec_()