29 #include <glib/gi18n.h> 32 #include "dialog-doclink.h" 33 #include "dialog-billterms.h" 34 #include "dialog-customer.h" 35 #include "dialog-employee.h" 36 #include "dialog-invoice.h" 37 #include "dialog-job.h" 38 #include "dialog-payment.h" 39 #include "dialog-tax-table.h" 40 #include "dialog-vendor.h" 41 #include "business-gnome-utils.h" 42 #include "gnc-plugin-business.h" 49 #include "guile-mappings.h" 50 #include "gnc-session.h" 51 #include "gnc-icons.h" 61 G_GNUC_UNUSED
static QofLogModule log_module =
G_LOG_DOMAIN;
64 static void gnc_plugin_business_finalize (GObject *
object);
65 static void gnc_plugin_business_add_to_window (GncPlugin *plugin,
66 GncMainWindow *window,
70 static void gnc_plugin_business_cmd_customer_page (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
71 static void gnc_plugin_business_cmd_customer_new_customer (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
72 static void gnc_plugin_business_cmd_customer_find_customer (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
73 static void gnc_plugin_business_cmd_customer_new_invoice (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
74 static void gnc_plugin_business_cmd_customer_find_invoice (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
75 static void gnc_plugin_business_cmd_customer_new_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
76 static void gnc_plugin_business_cmd_customer_find_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
77 static void gnc_plugin_business_cmd_customer_process_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
79 static void gnc_plugin_business_cmd_vendor_page (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
80 static void gnc_plugin_business_cmd_vendor_new_vendor (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
81 static void gnc_plugin_business_cmd_vendor_find_vendor (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
82 static void gnc_plugin_business_cmd_vendor_new_bill (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
83 static void gnc_plugin_business_cmd_vendor_find_bill (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
84 static void gnc_plugin_business_cmd_vendor_new_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
85 static void gnc_plugin_business_cmd_vendor_find_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
86 static void gnc_plugin_business_cmd_vendor_process_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
88 static void gnc_plugin_business_cmd_employee_page (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
89 static void gnc_plugin_business_cmd_employee_new_employee (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
90 static void gnc_plugin_business_cmd_employee_find_employee (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
91 static void gnc_plugin_business_cmd_employee_new_expense_voucher (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
92 static void gnc_plugin_business_cmd_employee_find_expense_voucher (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
93 static void gnc_plugin_business_cmd_employee_process_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
95 static void gnc_plugin_business_cmd_doclink (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
96 static void gnc_plugin_business_cmd_tax_tables (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
97 static void gnc_plugin_business_cmd_billing_terms (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
98 static void gnc_plugin_business_cmd_bills_due_reminder (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
99 static void gnc_plugin_business_cmd_invoices_due_reminder (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
101 static void gnc_plugin_business_cmd_test_search (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
102 static void gnc_plugin_business_cmd_test_init_data (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
104 static void gnc_plugin_business_cmd_assign_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
107 static void bind_extra_toolbuttons_visibility (GncMainWindow *mainwindow);
109 #define PLUGIN_ACTIONS_NAME "gnc-plugin-business-actions" 110 #define PLUGIN_UI_FILENAME "gnc-plugin-business.ui" 112 #define GNC_PREF_EXTRA_TOOLBUTTONS "enable-toolbuttons" 120 static GncMainWindow *last_window = NULL;
122 static GActionEntry gnc_plugin_actions [] =
124 {
"CustomerOverviewPageAction", gnc_plugin_business_cmd_customer_page, NULL, NULL, NULL },
125 {
"CustomerNewCustomerOpenAction", gnc_plugin_business_cmd_customer_new_customer, NULL, NULL, NULL },
126 {
"CustomerFindCustomerOpenAction", gnc_plugin_business_cmd_customer_find_customer, NULL, NULL, NULL },
127 {
"CustomerNewInvoiceOpenAction", gnc_plugin_business_cmd_customer_new_invoice, NULL, NULL, NULL },
128 {
"CustomerFindInvoiceOpenAction", gnc_plugin_business_cmd_customer_find_invoice, NULL, NULL, NULL },
129 {
"CustomerNewJobOpenAction", gnc_plugin_business_cmd_customer_new_job, NULL, NULL, NULL },
130 {
"CustomerFindJobOpenAction", gnc_plugin_business_cmd_customer_find_job, NULL, NULL, NULL },
131 {
"CustomerProcessPaymentAction", gnc_plugin_business_cmd_customer_process_payment, NULL, NULL, NULL },
133 {
"VendorOverviewPageAction", gnc_plugin_business_cmd_vendor_page, NULL, NULL, NULL },
134 {
"VendorNewVendorOpenAction", gnc_plugin_business_cmd_vendor_new_vendor, NULL, NULL, NULL },
135 {
"VendorFindVendorOpenAction", gnc_plugin_business_cmd_vendor_find_vendor, NULL, NULL, NULL },
136 {
"VendorNewBillOpenAction", gnc_plugin_business_cmd_vendor_new_bill, NULL, NULL, NULL },
137 {
"VendorFindBillOpenAction", gnc_plugin_business_cmd_vendor_find_bill, NULL, NULL, NULL },
138 {
"VendorNewJobOpenAction", gnc_plugin_business_cmd_vendor_new_job, NULL, NULL, NULL },
139 {
"VendorFindJobOpenAction", gnc_plugin_business_cmd_vendor_find_job, NULL, NULL, NULL },
140 {
"VendorProcessPaymentAction", gnc_plugin_business_cmd_vendor_process_payment, NULL, NULL, NULL },
142 {
"EmployeeOverviewPageAction", gnc_plugin_business_cmd_employee_page, NULL, NULL, NULL },
143 {
"EmployeeNewEmployeeOpenAction", gnc_plugin_business_cmd_employee_new_employee, NULL, NULL, NULL },
144 {
"EmployeeFindEmployeeOpenAction", gnc_plugin_business_cmd_employee_find_employee, NULL, NULL, NULL },
145 {
"EmployeeNewExpenseVoucherOpenAction", gnc_plugin_business_cmd_employee_new_expense_voucher, NULL, NULL, NULL },
146 {
"EmployeeFindExpenseVoucherOpenAction", gnc_plugin_business_cmd_employee_find_expense_voucher, NULL, NULL, NULL },
147 {
"EmployeeProcessPaymentAction", gnc_plugin_business_cmd_employee_process_payment, NULL, NULL, NULL },
149 {
"BusinessLinkedDocsAction", gnc_plugin_business_cmd_doclink, NULL, NULL, NULL },
150 {
"TaxTablesOpenAction", gnc_plugin_business_cmd_tax_tables, NULL, NULL, NULL },
151 {
"BillingTermsOpenAction", gnc_plugin_business_cmd_billing_terms, NULL, NULL, NULL },
152 {
"BillsDueReminderOpenAction", gnc_plugin_business_cmd_bills_due_reminder, NULL, NULL, NULL },
153 {
"InvoicesDueReminderOpenAction", gnc_plugin_business_cmd_invoices_due_reminder, NULL, NULL, NULL },
155 {
"BusinessTestSearchAction", gnc_plugin_business_cmd_test_search, NULL, NULL, NULL },
156 {
"BusinessTestInitDataAction", gnc_plugin_business_cmd_test_init_data, NULL, NULL, NULL },
157 {
"ToolbarNewInvoiceAction", gnc_plugin_business_cmd_customer_new_invoice, NULL, NULL, NULL },
158 {
"RegisterAssignPayment", gnc_plugin_business_cmd_assign_payment, NULL, NULL, NULL },
159 {
"RegisterEditPayment", gnc_plugin_business_cmd_assign_payment, NULL, NULL, NULL },
162 static guint gnc_plugin_n_actions = G_N_ELEMENTS(gnc_plugin_actions);
165 static const gchar *gnc_plugin_load_ui_items [] =
167 "BusinessPlaceholder0",
168 "BusinessPlaceholder1",
169 "ExtensionsPlaceholder0",
179 GncPlugin gnc_plugin;
187 gnc_plugin_business_new (
void)
189 GncPluginBusiness *plugin;
193 GNC_TYPE_PLUGIN_PAGE_INVOICE;
194 GNC_TYPE_PLUGIN_PAGE_OWNER_TREE;
196 plugin = g_object_new (GNC_TYPE_PLUGIN_BUSINESS,
199 return GNC_PLUGIN (plugin);
202 G_DEFINE_TYPE(GncPluginBusiness, gnc_plugin_business, GNC_TYPE_PLUGIN)
205 gnc_plugin_business_class_init (GncPluginBusinessClass *klass)
207 GObjectClass *object_class = G_OBJECT_CLASS (klass);
208 GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
210 object_class->finalize = gnc_plugin_business_finalize;
213 plugin_class->plugin_name = GNC_PLUGIN_BUSINESS_NAME;
216 plugin_class->add_to_window = gnc_plugin_business_add_to_window;
220 plugin_class->actions = gnc_plugin_actions;
221 plugin_class->n_actions = gnc_plugin_n_actions;
223 plugin_class->ui_updates = gnc_plugin_load_ui_items;
227 gnc_plugin_business_init (GncPluginBusiness *plugin)
230 gncOwnerInitCustomer (plugin->last_customer, NULL);
233 gncOwnerInitVendor (plugin->last_vendor, NULL);
236 gncOwnerInitEmployee (plugin->last_employee, NULL);
240 gnc_plugin_business_finalize (GObject *
object)
242 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (
object));
244 GncPluginBusiness *plugin = (GncPluginBusiness*)
object;
245 gncOwnerFree (plugin->last_customer);
246 gncOwnerFree (plugin->last_vendor);
247 gncOwnerFree (plugin->last_employee);
249 G_OBJECT_CLASS (gnc_plugin_business_parent_class)->finalize (
object);
257 gnc_plugin_business_get_window()
267 gnc_plugin_business_cmd_customer_page (GSimpleAction *simple,
274 g_return_if_fail (mw != NULL);
275 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
282 gnc_plugin_business_cmd_customer_new_customer (GSimpleAction *simple,
288 g_return_if_fail (mw != NULL);
289 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
291 gnc_ui_customer_new (GTK_WINDOW (mw->window), gnc_get_current_book ());
295 gnc_plugin_business_cmd_customer_find_customer (GSimpleAction *simple,
300 GncPluginBusiness *plugin;
303 g_return_if_fail (mw != NULL);
304 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
306 plugin = GNC_PLUGIN_BUSINESS (mw->data);
308 gnc_customer_search (GTK_WINDOW (mw->window), customer, gnc_get_current_book ());
312 gnc_plugin_business_cmd_customer_new_invoice (GSimpleAction *simple,
317 GncPluginBusiness *plugin;
319 g_return_if_fail (mw != NULL);
320 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
322 plugin = GNC_PLUGIN_BUSINESS (mw->data);
323 last_window = mw->window;
324 gnc_ui_invoice_new (GTK_WINDOW (mw->window), plugin->last_customer, gnc_get_current_book ());
328 gnc_plugin_business_cmd_customer_find_invoice (GSimpleAction *simple,
333 GncPluginBusiness *plugin;
335 g_return_if_fail (mw != NULL);
336 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
338 plugin = GNC_PLUGIN_BUSINESS (mw->data);
339 last_window = mw->window;
340 gnc_invoice_search (GTK_WINDOW (mw->window), NULL, plugin->last_customer, gnc_get_current_book ());
344 gnc_plugin_business_cmd_customer_new_job (GSimpleAction *simple,
349 GncPluginBusiness *plugin;
351 g_return_if_fail (mw != NULL);
352 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
354 plugin = GNC_PLUGIN_BUSINESS (mw->data);
355 gnc_ui_job_new (GTK_WINDOW (mw->window), plugin->last_customer, gnc_get_current_book ());
359 gnc_plugin_business_cmd_customer_find_job (GSimpleAction *simple,
364 GncPluginBusiness *plugin;
366 g_return_if_fail (mw != NULL);
367 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
369 plugin = GNC_PLUGIN_BUSINESS (mw->data);
370 gnc_job_search (GTK_WINDOW (mw->window), NULL, plugin->last_customer, gnc_get_current_book ());
374 gnc_plugin_business_cmd_customer_process_payment (GSimpleAction *simple,
379 GncPluginBusiness *plugin;
381 g_return_if_fail (mw != NULL);
382 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
384 plugin = GNC_PLUGIN_BUSINESS (mw->data);
385 gnc_ui_payment_new (GTK_WINDOW (mw->window), plugin->last_customer, gnc_get_current_book ());
389 gnc_plugin_business_cmd_vendor_page (GSimpleAction *simple,
396 g_return_if_fail (mw != NULL);
397 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
404 gnc_plugin_business_cmd_vendor_new_vendor (GSimpleAction *simple,
409 g_return_if_fail (mw != NULL);
410 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
412 gnc_ui_vendor_new (GTK_WINDOW (mw->window), gnc_get_current_book ());
416 gnc_plugin_business_cmd_vendor_find_vendor (GSimpleAction *simple,
421 GncPluginBusiness *plugin;
424 g_return_if_fail (mw != NULL);
425 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
427 plugin = GNC_PLUGIN_BUSINESS (mw->data);
429 gnc_vendor_search (GTK_WINDOW (mw->window), vendor, gnc_get_current_book ());
433 gnc_plugin_business_cmd_vendor_new_bill (GSimpleAction *simple,
438 GncPluginBusiness *plugin;
440 g_return_if_fail (mw != NULL);
441 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
443 plugin = GNC_PLUGIN_BUSINESS (mw->data);
444 last_window = mw->window;
445 gnc_ui_invoice_new (GTK_WINDOW (mw->window), plugin->last_vendor, gnc_get_current_book ());
449 gnc_plugin_business_cmd_vendor_find_bill (GSimpleAction *simple,
454 GncPluginBusiness *plugin;
456 g_return_if_fail (mw != NULL);
457 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
459 plugin = GNC_PLUGIN_BUSINESS (mw->data);
460 last_window = mw->window;
461 gnc_invoice_search (GTK_WINDOW (mw->window), NULL, plugin->last_vendor, gnc_get_current_book ());
465 gnc_plugin_business_cmd_vendor_new_job (GSimpleAction *simple,
470 GncPluginBusiness *plugin;
472 g_return_if_fail (mw != NULL);
473 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
475 plugin = GNC_PLUGIN_BUSINESS (mw->data);
476 gnc_ui_job_new (GTK_WINDOW (mw->window), plugin->last_vendor, gnc_get_current_book ());
480 gnc_plugin_business_cmd_vendor_find_job (GSimpleAction *simple,
485 GncPluginBusiness *plugin;
487 g_return_if_fail (mw != NULL);
488 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
490 plugin = GNC_PLUGIN_BUSINESS (mw->data);
491 gnc_job_search (GTK_WINDOW (mw->window), NULL, plugin->last_vendor, gnc_get_current_book ());
495 gnc_plugin_business_cmd_vendor_process_payment (GSimpleAction *simple,
500 GncPluginBusiness *plugin;
502 g_return_if_fail (mw != NULL);
503 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
505 plugin = GNC_PLUGIN_BUSINESS (mw->data);
506 gnc_ui_payment_new (GTK_WINDOW (mw->window), plugin->last_vendor, gnc_get_current_book ());
510 gnc_plugin_business_cmd_employee_page (GSimpleAction *simple,
517 g_return_if_fail (mw != NULL);
518 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
525 gnc_plugin_business_cmd_employee_new_employee (GSimpleAction *simple,
530 g_return_if_fail (mw != NULL);
531 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
533 gnc_ui_employee_new (GTK_WINDOW (mw->window), gnc_get_current_book ());
537 gnc_plugin_business_cmd_employee_find_employee (GSimpleAction *simple,
542 GncPluginBusiness *plugin;
543 GncEmployee *employee;
545 g_return_if_fail (mw != NULL);
546 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
548 plugin = GNC_PLUGIN_BUSINESS (mw->data);
550 gnc_employee_search (GTK_WINDOW (mw->window), employee, gnc_get_current_book ());
554 gnc_plugin_business_cmd_employee_new_expense_voucher (GSimpleAction *simple,
559 GncPluginBusiness *plugin;
561 g_return_if_fail (mw != NULL);
562 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
564 plugin = GNC_PLUGIN_BUSINESS (mw->data);
565 last_window = mw->window;
566 gnc_ui_invoice_new (GTK_WINDOW (mw->window), plugin->last_employee, gnc_get_current_book ());
570 gnc_plugin_business_cmd_employee_find_expense_voucher (GSimpleAction *simple,
575 GncPluginBusiness *plugin;
577 g_return_if_fail (mw != NULL);
578 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
580 plugin = GNC_PLUGIN_BUSINESS (mw->data);
581 last_window = mw->window;
582 gnc_invoice_search (GTK_WINDOW (mw->window), NULL, plugin->last_employee, gnc_get_current_book ());
586 gnc_plugin_business_cmd_employee_process_payment (GSimpleAction *simple,
591 GncPluginBusiness *plugin;
593 g_return_if_fail (mw != NULL);
594 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
596 plugin = GNC_PLUGIN_BUSINESS (mw->data);
597 gnc_ui_payment_new (GTK_WINDOW (mw->window), plugin->last_employee, gnc_get_current_book ());
601 gnc_plugin_business_cmd_doclink (GSimpleAction *simple,
606 g_return_if_fail (mw != NULL);
607 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
609 gnc_doclink_business_dialog (GTK_WINDOW (mw->window));
613 gnc_plugin_business_cmd_tax_tables (GSimpleAction *simple,
618 g_return_if_fail (mw != NULL);
619 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
621 gnc_ui_tax_table_window_new (GTK_WINDOW (mw->window), gnc_get_current_book());
625 gnc_plugin_business_cmd_billing_terms (GSimpleAction *simple,
630 g_return_if_fail (mw != NULL);
631 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
633 gnc_ui_billterms_window_new (GTK_WINDOW (mw->window), gnc_get_current_book());
638 gnc_plugin_business_cmd_bills_due_reminder (GSimpleAction *simple,
643 g_return_if_fail (mw != NULL);
644 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
646 gnc_invoice_remind_bills_due (GTK_WINDOW (mw->window));
651 gnc_plugin_business_cmd_invoices_due_reminder (GSimpleAction *simple,
656 g_return_if_fail (mw != NULL);
657 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
659 gnc_invoice_remind_invoices_due (GTK_WINDOW (mw->window));
663 gnc_plugin_business_cmd_test_search (GSimpleAction *simple,
667 gnc_search_dialog_test();
671 gnc_business_assign_payment (GtkWindow *parent,
675 g_return_if_fail(trans);
682 gnc_ui_payment_new_with_txn(parent, owner, trans);
686 gnc_plugin_business_cmd_assign_payment (GSimpleAction *simple,
691 GncPluginBusiness *plugin_business;
701 g_return_if_fail (mw != NULL);
702 g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
708 if (!GNC_IS_PLUGIN_PAGE(plugin_page)
709 || !GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page))
713 g_return_if_fail(gsr);
716 g_return_if_fail(reg);
719 g_return_if_fail(split);
722 g_return_if_fail(trans);
724 plugin_business = GNC_PLUGIN_BUSINESS (mw->data);
729 else if (gnc_ui_payment_is_customer_payment(trans))
730 owner_p = plugin_business->last_customer;
732 owner_p = plugin_business->last_vendor;
734 gnc_business_assign_payment (GTK_WINDOW (mw->window),
738 static const gchar *register_txn_actions[] =
740 "RegisterAssignPayment",
744 static const gchar *register_bus_txn_actions[] =
746 "RegisterEditPayment",
751 gnc_plugin_business_update_menus (
GncPluginPage *plugin_page)
753 GSimpleActionGroup *simple_action_group;
754 gboolean is_txn_register, is_bus_txn = FALSE, is_bus_doc = FALSE;
757 if (!plugin_page || !GNC_IS_PLUGIN_PAGE(plugin_page))
761 if (!GNC_IS_MAIN_WINDOW(plugin_page->
window))
768 is_txn_register = GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page);
771 g_return_if_fail (G_IS_SIMPLE_ACTION_GROUP(simple_action_group));
782 is_txn_register && !is_bus_txn && !is_bus_doc);
785 is_txn_register && is_bus_txn && !is_bus_doc);
789 gnc_plugin_business_main_window_page_changed (GncMainWindow *window,
793 update_inactive_actions(page);
794 gnc_plugin_business_update_menus(page);
798 gnc_plugin_business_main_window_menu_changed (GncMainWindow *window,
806 gnc_plugin_business_main_window_page_changed (window, page, user_data);
807 bind_extra_toolbuttons_visibility (window);
812 gnc_plugin_business_split_reg_ui_update (
GncPluginPage *plugin_page)
814 gnc_plugin_business_main_window_page_changed(NULL, plugin_page, NULL);
818 gnc_plugin_business_cmd_test_init_data (GSimpleAction *simple,
823 QofBook *book = gnc_get_current_book();
825 GncAddress *address = gncCustomerGetAddr(customer);
826 GncInvoice *invoice = gncInvoiceCreate(book);
828 GncJob *job = gncJobCreate(book);
829 Account *root = gnc_book_get_root_account(book);
836 gncCustomerSetID(customer,
"000001");
837 gncCustomerSetName(customer,
"Test Customer");
839 gncAddressSetName(address,
"Contact Person");
840 gncAddressSetAddr1(address,
"20 Customer Lane");
841 gncAddressSetAddr2(address,
"Customer M/S");
842 gncAddressSetAddr3(address,
"Addr3, XXX 12345");
845 gncOwnerInitCustomer(owner, customer);
848 gncInvoiceSetID(invoice,
"000012");
849 gncInvoiceSetOwner(invoice, owner);
850 gncInvoiceSetDateOpened(invoice,
gnc_time (NULL));
854 gncJobSetID(job,
"000025");
855 gncJobSetName(job,
"Test Job");
856 gncJobSetReference(job,
"Customer's ref#");
857 gncJobSetOwner(job, owner);
860 gncOwnerInitJob(owner, job);
887 gnc_ui_invoice_edit (GTK_WINDOW (mw->window), invoice);
891 static const gchar* readonly_inactive_actions[] =
893 "CustomerNewCustomerOpenAction",
894 "CustomerNewInvoiceOpenAction",
895 "CustomerNewInvoiceOpenAction",
896 "CustomerNewJobOpenAction",
897 "CustomerProcessPaymentAction",
898 "VendorNewVendorOpenAction",
899 "VendorNewBillOpenAction",
900 "VendorNewJobOpenAction",
901 "VendorProcessPaymentAction",
902 "EmployeeNewEmployeeOpenAction",
903 "EmployeeNewExpenseVoucherOpenAction",
904 "EmployeeProcessPaymentAction",
905 "ToolbarNewInvoiceAction",
906 "RegisterAssignPayment",
907 "RegisterEditPayment",
914 GncMainWindow *window;
915 GSimpleActionGroup *simple_action_group;
921 if (!plugin_page || !GNC_IS_PLUGIN_PAGE(plugin_page))
925 if (!GNC_IS_MAIN_WINDOW(plugin_page->
window))
928 window = GNC_MAIN_WINDOW(plugin_page->
window);
929 g_return_if_fail(GNC_IS_MAIN_WINDOW(window));
931 g_return_if_fail (G_IS_SIMPLE_ACTION_GROUP(simple_action_group));
940 static const char* extra_toolbar_actions[] =
942 "ToolbarNewInvoiceAction",
949 bind_extra_toolbuttons_visibility (GncMainWindow *mainwindow)
954 g_return_if_fail (mainwindow);
955 g_return_if_fail (GNC_IS_MAIN_WINDOW(mainwindow));
957 toolbar = gnc_window_get_toolbar (GNC_WINDOW(mainwindow));
963 for (iter = extra_toolbar_actions; *iter; ++iter)
970 GNC_PREF_EXTRA_TOOLBUTTONS,
971 NULL, G_OBJECT(tool_item),
"visible");
976 for (gint i = 0; i < gtk_toolbar_get_n_items (GTK_TOOLBAR(toolbar)); i++)
978 GtkToolItem *tool_item = gtk_toolbar_get_nth_item (GTK_TOOLBAR(toolbar), i);
980 if (GTK_IS_SEPARATOR_TOOL_ITEM(tool_item))
982 if (g_str_has_prefix (gtk_buildable_get_name (GTK_BUILDABLE(tool_item)),
986 GNC_PREF_EXTRA_TOOLBUTTONS,
987 NULL, G_OBJECT(tool_item),
"visible");
1000 gnc_plugin_business_add_to_window (GncPlugin *plugin,
1001 GncMainWindow *mainwindow,
1004 g_signal_connect (mainwindow,
"page_changed",
1005 G_CALLBACK(gnc_plugin_business_main_window_page_changed),
1008 g_signal_connect (mainwindow,
"menu_changed",
1009 G_CALLBACK(gnc_plugin_business_main_window_menu_changed),
void xaccAccountSetType(Account *acc, GNCAccountType tip)
Set the account's type.
utility functions for the GnuCash UI
void gnc_account_append_child(Account *new_parent, Account *child)
This function will remove from the child account any pre-existing parent relationship, and will then add the account as a child of the new parent.
Business Interface: Object OWNERs.
The instance data structure for a content plugin.
Date and Time handling routines.
gboolean gncOwnerGetOwnerFromTxn(Transaction *txn, GncOwner *owner)
Convenience function to get the owner from a transaction.
utility functions for the GnuCash UI
char xaccTransGetTxnType(Transaction *trans)
Returns the Transaction Type: note this type will be derived from the transaction splits...
#define G_LOG_DOMAIN
Functions providing the SX List as a plugin page.
#define TXN_TYPE_INVOICE
Transaction is an invoice.
Functions that are supported by all types of windows.
GtkWidget * window
The window that contains the display widget for this plugin.
Transaction * xaccSplitGetParent(const Split *split)
Returns the parent transaction of the split.
GncPluginPage * gnc_main_window_get_current_page(GncMainWindow *window)
Retrieve a pointer to the page that is currently at the front of the specified window.
void gnc_main_window_open_page(GncMainWindow *window, GncPluginPage *page)
Display a data plugin page in a window.
Functions for adding content to a window.
gnc_commodity * gnc_default_currency(void)
Return the default currency set by the user.
int xaccTransCountSplits(const Transaction *trans)
Returns the number of splits in this transaction.
Functions providing a register page for the GnuCash UI.
Functions providing a page which lists owners of one type.
Income accounts are used to denote income.
Transaction * gnc_plugin_page_register_get_current_txn(GncPluginPageRegister *page)
Get the currently selected transaction in this register page.
The bank account type denotes a savings or checking account held at a bank.
GtkWidget * gnc_find_toolbar_item(GtkWidget *toolbar, const gchar *action_name)
Search the toolbar for the tool item based on the action name.
void gnc_prefs_bind(const gchar *group, const gchar *pref_name, const gchar *pref_value, gpointer object, const gchar *property)
Bind a setting to a g_object property.
credit, discount and shipaddr are unique to GncCustomer id, name, notes, terms, addr, currency, taxtable, taxtable_override taxincluded, active and jobs are identical to ::GncVendor.
Generic api to store and retrieve preferences.
Split * xaccTransGetFirstAPARAcctSplit(const Transaction *trans, gboolean strict)
The xaccTransGetFirstPaymentAcctSplit() method returns a pointer to the first split in this transacti...
gboolean qof_book_is_readonly(const QofBook *book)
Return whether the book is read only.
liability (and asset) accounts indicate generic, generalized accounts that are none of the above...
#define PLUGIN_ACTIONS_NAME
The label given to the main window for this plugin.
Account * xaccMallocAccount(QofBook *book)
Constructor.
GncVendor * gncOwnerGetVendor(const GncOwner *owner)
If the given owner is of type GNC_OWNER_VENDOR, returns the pointer to the vendor object...
GncCustomer * gncOwnerGetCustomer(const GncOwner *owner)
If the given owner is of type GNC_OWNER_CUSTOMER, returns the pointer to the customer object...
time64 gnc_time(time64 *tbuf)
get the current time
GSimpleActionGroup * gnc_main_window_get_action_group(GncMainWindow *window, const gchar *group_name)
Retrieve a specific set of user interface actions from a window.
SplitRegister * gnc_ledger_display_get_split_register(GNCLedgerDisplay *ld)
return the split register associated with a ledger display
GncEmployee * gncOwnerGetEmployee(const GncOwner *owner)
If the given owner is of type GNC_OWNER_EMPLOYEE, returns the pointer to the employee object...
GNCSplitReg * gnc_plugin_page_register_get_gsr(GncPluginPage *plugin_page)
Get the GNCSplitReg data structure associated with this register page.
GncOwner * gncOwnerNew(void)
These two functions are mainly for the convenience of scheme code.
void xaccAccountSetName(Account *acc, const char *str)
Set the account's name.
Split * gnc_split_register_get_current_split(SplitRegister *reg)
Returns the split at which the cursor is currently located.
GncPluginPage * gnc_plugin_page_owner_tree_new(GncOwnerType owner_type)
Create a new "owner tree" plugin page.
#define PLUGIN_UI_FILENAME
The name of the UI description file for this plugin.
void xaccAccountSetCommodity(Account *acc, gnc_commodity *com)
Set the account's commodity.