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"
61G_GNUC_UNUSED
static QofLogModule log_module = G_LOG_DOMAIN;
64static void gnc_plugin_business_finalize (GObject *
object);
65static void gnc_plugin_business_add_to_window (GncPlugin *plugin,
66 GncMainWindow *window,
70static void gnc_plugin_business_cmd_customer_page (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
71static void gnc_plugin_business_cmd_customer_new_customer (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
72static void gnc_plugin_business_cmd_customer_find_customer (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
73static void gnc_plugin_business_cmd_customer_new_invoice (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
74static void gnc_plugin_business_cmd_customer_find_invoice (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
75static void gnc_plugin_business_cmd_customer_new_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
76static void gnc_plugin_business_cmd_customer_find_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
77static void gnc_plugin_business_cmd_customer_process_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
79static void gnc_plugin_business_cmd_vendor_page (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
80static void gnc_plugin_business_cmd_vendor_new_vendor (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
81static void gnc_plugin_business_cmd_vendor_find_vendor (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
82static void gnc_plugin_business_cmd_vendor_new_bill (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
83static void gnc_plugin_business_cmd_vendor_find_bill (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
84static void gnc_plugin_business_cmd_vendor_new_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
85static void gnc_plugin_business_cmd_vendor_find_job (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
86static void gnc_plugin_business_cmd_vendor_process_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
88static void gnc_plugin_business_cmd_employee_page (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
89static void gnc_plugin_business_cmd_employee_new_employee (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
90static void gnc_plugin_business_cmd_employee_find_employee (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
91static void gnc_plugin_business_cmd_employee_new_expense_voucher (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
92static void gnc_plugin_business_cmd_employee_find_expense_voucher (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
93static void gnc_plugin_business_cmd_employee_process_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
95static void gnc_plugin_business_cmd_doclink (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
96static void gnc_plugin_business_cmd_tax_tables (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
97static void gnc_plugin_business_cmd_billing_terms (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
98static void gnc_plugin_business_cmd_bills_due_reminder (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
99static void gnc_plugin_business_cmd_invoices_due_reminder (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
101static void gnc_plugin_business_cmd_test_search (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
102static void gnc_plugin_business_cmd_test_init_data (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
104static void gnc_plugin_business_cmd_assign_payment (GSimpleAction *simple, GVariant *parameter, gpointer user_data);
107static 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"
120static GncMainWindow *last_window = NULL;
122static 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 },
162static guint gnc_plugin_n_actions = G_N_ELEMENTS(gnc_plugin_actions);
165static const gchar *gnc_plugin_load_ui_items [] =
167 "BusinessPlaceholder0",
168 "BusinessPlaceholder1",
169 "ExtensionsPlaceholder0",
179 GncPlugin gnc_plugin;
187gnc_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);
202G_DEFINE_TYPE(GncPluginBusiness, gnc_plugin_business, GNC_TYPE_PLUGIN)
205gnc_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;
219 plugin_class->actions_name = PLUGIN_ACTIONS_NAME;
220 plugin_class->actions = gnc_plugin_actions;
221 plugin_class->n_actions = gnc_plugin_n_actions;
222 plugin_class->ui_filename = PLUGIN_UI_FILENAME;
223 plugin_class->ui_updates = gnc_plugin_load_ui_items;
227gnc_plugin_business_init (GncPluginBusiness *plugin)
230 gncOwnerInitCustomer (plugin->last_customer, NULL);
233 gncOwnerInitVendor (plugin->last_vendor, NULL);
236 gncOwnerInitEmployee (plugin->last_employee, NULL);
240gnc_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);
257gnc_plugin_business_get_window()
267gnc_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));
282gnc_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 ());
295gnc_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 ());
312gnc_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 ());
328gnc_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 ());
344gnc_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 ());
359gnc_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 ());
374gnc_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 ());
389gnc_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));
404gnc_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 ());
416gnc_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 ());
433gnc_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 ());
449gnc_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 ());
465gnc_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 ());
480gnc_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 ());
495gnc_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 ());
510gnc_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));
525gnc_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 ());
537gnc_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 ());
554gnc_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 ());
570gnc_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 ());
586gnc_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 ());
601gnc_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));
613gnc_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());
625gnc_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());
638gnc_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));
651gnc_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));
663gnc_plugin_business_cmd_test_search (GSimpleAction *simple,
667 gnc_search_dialog_test();
671gnc_business_assign_payment (GtkWindow *parent,
675 g_return_if_fail(trans);
682 gnc_ui_payment_new_with_txn(parent, owner, trans);
686gnc_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),
738static const gchar *register_txn_actions[] =
740 "RegisterAssignPayment",
744static const gchar *register_bus_txn_actions[] =
746 "RegisterEditPayment",
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);
770 PLUGIN_ACTIONS_NAME);
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);
789gnc_plugin_business_main_window_page_changed (GncMainWindow *window,
793 update_inactive_actions(page);
794 gnc_plugin_business_update_menus(page);
798gnc_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);
812gnc_plugin_business_split_reg_ui_update (
GncPluginPage *plugin_page)
814 gnc_plugin_business_main_window_page_changed(NULL, plugin_page, NULL);
818gnc_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);
891static 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));
940static const char* extra_toolbar_actions[] =
942 "ToolbarNewInvoiceAction",
949bind_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");
1000gnc_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),
Date and Time handling routines.
Functions for adding content to a window.
utility functions for the GnuCash UI
Functions providing a page which lists owners of one type.
Functions providing a register page for the GnuCash UI.
Generic api to store and retrieve preferences.
utility functions for the GnuCash UI
Functions that are supported by all types of windows.
Business Interface: Object OWNERs.
void gnc_account_append_child(Account *new_parent, Account *child)
This function will remove from the child account any pre-existing parent relationship,...
void xaccAccountSetName(Account *acc, const char *str)
Set the account's name.
void xaccAccountSetType(Account *acc, GNCAccountType tip)
Set the account's type.
Account * xaccMallocAccount(QofBook *book)
Constructor.
void xaccAccountSetCommodity(Account *acc, gnc_commodity *com)
Set the account's commodity.
gboolean qof_book_is_readonly(const QofBook *book)
Return whether the book is read only.
time64 gnc_time(time64 *tbuf)
get the current time
char xaccTransGetTxnType(Transaction *trans)
Returns the Transaction Type: note this type will be derived from the transaction splits,...
#define TXN_TYPE_INVOICE
Transaction is an invoice.
int xaccTransCountSplits(const Transaction *trans)
Returns the number of splits in this transaction.
Split * xaccTransGetFirstAPARAcctSplit(const Transaction *trans, gboolean strict)
The xaccTransGetFirstPaymentAcctSplit() method returns a pointer to the first split in this transacti...
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.
GSimpleActionGroup * gnc_main_window_get_action_group(GncMainWindow *window, const gchar *group_name)
Retrieve a specific set of user interface actions from a window.
void gnc_main_window_open_page(GncMainWindow *window, GncPluginPage *page)
Display a data plugin page in a window.
GncPluginPage * gnc_plugin_page_owner_tree_new(GncOwnerType owner_type)
Create a new "owner tree" plugin page.
SplitRegister * gnc_ledger_display_get_split_register(GNCLedgerDisplay *ld)
return the split register associated with a ledger display
GtkWidget * gnc_find_toolbar_item(GtkWidget *toolbar, const gchar *action_name)
Search the toolbar for the tool item based on the action name.
gnc_commodity * gnc_default_currency(void)
Return the default currency set by the user.
GncCustomer * gncOwnerGetCustomer(const GncOwner *owner)
If the given owner is of type GNC_OWNER_CUSTOMER, returns the pointer to the customer object.
GncEmployee * gncOwnerGetEmployee(const GncOwner *owner)
If the given owner is of type GNC_OWNER_EMPLOYEE, returns the pointer to the employee object.
GncVendor * gncOwnerGetVendor(const GncOwner *owner)
If the given owner is of type GNC_OWNER_VENDOR, returns the pointer to the vendor object.
GncOwner * gncOwnerNew(void)
These two functions are mainly for the convenience of scheme code.
gboolean gncOwnerGetOwnerFromTxn(Transaction *txn, GncOwner *owner)
Convenience function to get the owner from a transaction.
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.
Transaction * gnc_plugin_page_register_get_current_txn(GncPluginPageRegister *page)
Get the currently selected transaction in this register page.
GNCSplitReg * gnc_plugin_page_register_get_gsr(GncPluginPage *plugin_page)
Get the GNCSplitReg data structure associated with this register page.
Split * gnc_split_register_get_current_split(SplitRegister *reg)
Returns the split at which the cursor is currently located.
Transaction * xaccSplitGetParent(const Split *split)
Returns the parent transaction of the split.
credit, discount and shipaddr are unique to GncCustomer id, name, notes, terms, addr,...
The instance data structure for a content plugin.
GtkWidget * window
The window that contains the display widget for this plugin.