menuSales::menuSales(GUIClient *pParent) : QObject(pParent) { setObjectName("soModule"); parent = pParent; toolBar = new QToolBar(tr("Sales Tools")); toolBar->setObjectName("Sales Tools"); toolBar->setIconSize(QSize(32, 32)); parent->addToolBar(toolBar); mainMenu = new QMenu(parent); quotesMenu = new QMenu(parent); ordersMenu = new QMenu(parent); billingMenu = new QMenu(parent); billingInvoicesMenu = new QMenu(parent); billingCreditMemosMenu= new QMenu(parent); billingFormsMenu= new QMenu(parent); returnsMenu= new QMenu(parent); lookupMenu = new QMenu(parent); lookupQuoteMenu = new QMenu(parent); lookupSoMenu = new QMenu(parent); formsMenu = new QMenu(parent); reportsMenu = new QMenu(parent); analysisMenu = new QMenu(parent); prospectMenu = new QMenu(parent); customerMenu = new QMenu(parent); pricingReportsMenu = new QMenu(parent); pricingMenu = new QMenu(parent); pricingUpdateMenu = new QMenu(parent); utilitiesMenu = new QMenu(parent); mainMenu->setObjectName("menu.sales"); quotesMenu->setObjectName("menu.sales.quotes"); ordersMenu->setObjectName("menu.sales.orders"); billingMenu->setObjectName("menu.sales.billing"); billingInvoicesMenu->setObjectName("menu.sales.billinginvoices"); billingCreditMemosMenu->setObjectName("menu.sales.billingcreditmemos"); billingFormsMenu->setObjectName("menu.sales.billingforms"); returnsMenu->setObjectName("menu.sales.returns"); lookupMenu->setObjectName("menu.sales.lookup"); lookupQuoteMenu->setObjectName("menu.sales.lookupquote"); lookupSoMenu->setObjectName("menu.sales.lookupso"); formsMenu->setObjectName("menu.sales.forms"); reportsMenu->setObjectName("menu.sales.reports"); analysisMenu->setObjectName("menu.sales.analysis"); prospectMenu->setObjectName("menu.sales.prospect"); customerMenu->setObjectName("menu.sales.customer"); pricingReportsMenu->setObjectName("menu.sales.pricingreports"); pricingMenu->setObjectName("menu.sales.pricing"); pricingUpdateMenu->setObjectName("menu.sales.pricingupdate"); utilitiesMenu->setObjectName("menu.sales.utilities"); actionProperties acts[] = { // Sales | Quotes { "menu", tr("&Quote"), (char*)quotesMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.newQuote", tr("&New..."), SLOT(sNewQuote()), quotesMenu, "MaintainQuotes", NULL, NULL, true, NULL }, { "so.listQuotes", tr("&List..."), SLOT(sQuotes()), quotesMenu, "MaintainQuotes ViewQuotes", NULL, NULL, true, NULL }, // Sales | Sales Order { "menu", tr("&Sales Order"), (char*)ordersMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.newSalesOrder", tr("&New..."), SLOT(sNewSalesOrder()), ordersMenu, "MaintainSalesOrders", NULL, NULL, true, NULL }, { "so.listOpenSalesOrders", tr("&List Open..."), SLOT(sOpenSalesOrders()), ordersMenu, "MaintainSalesOrders ViewSalesOrders", QPixmap(":/images/listOpenSalesOrders.png"), toolBar, true, tr("List Open Sales Orders") }, // Sales | Billing { "menu", tr("&Billing"), (char*)billingMenu, mainMenu, "true", NULL, NULL, true, NULL }, // Sales | Billing | Invoice { "menu", tr("&Invoice"), (char*)billingInvoicesMenu, billingMenu, "true", NULL, NULL, true, NULL }, { "so.uninvoicedShipments", tr("&Uninvoiced Shipments..."), SLOT(sUninvoicedShipments()), billingInvoicesMenu, "SelectBilling", QPixmap(":/images/uninvoicedShipments"), toolBar, true, tr("Uninvoiced Shipments") }, { "so.selectAllShippedOrdersForBilling", tr("Approve &All Shipped Orders for Billing..."), SLOT(sSelectShippedOrdersForBilling()), billingInvoicesMenu, "SelectBilling", NULL, NULL, true, NULL }, { "so.selectOrderForBilling", tr("Approve &Order for Billing..."), SLOT(sSelectOrderForBilling()), billingInvoicesMenu, "SelectBilling", NULL, NULL, true, NULL }, { "separator", NULL, NULL, billingInvoicesMenu, "true", NULL, NULL, true, NULL }, { "so.dspBillingSelections", tr("Billing &Approvals..."), SLOT(sDspBillingSelections()), billingInvoicesMenu, "SelectBilling", QPixmap(":/images/billingSelections"), toolBar, true, tr("Billing Approvals") }, { "so.createInvoices", tr("&Create Invoices..."), SLOT(sCreateInvoices()), billingInvoicesMenu, "SelectBilling", NULL, NULL, true, NULL }, { "separator", NULL, NULL, billingInvoicesMenu, "true", NULL, NULL, true, NULL }, { "so.listUnpostedInvoices", tr("&List Unposted Invoices..."), SLOT(sUnpostedInvoices()), billingInvoicesMenu, "SelectBilling", NULL, NULL, true, NULL }, { "so.postInvoices", tr("Post &Invoices..."), SLOT(sPostInvoices()), billingInvoicesMenu, "PostMiscInvoices", NULL, NULL, true, NULL }, // Sales | Billing | Return { "menu", tr("&Return"), (char*)billingCreditMemosMenu, billingMenu, "true", NULL, NULL, true, NULL }, { "so.newCreditMemo", tr("&New..."), SLOT(sNewCreditMemo()), billingCreditMemosMenu, "MaintainCreditMemos", NULL, NULL, true, NULL }, { "so.listUnpostedCreditMemos", tr("&List Unposted..."), SLOT(sUnpostedCreditMemos()), billingCreditMemosMenu, "MaintainCreditMemos ViewCreditMemos", NULL, NULL, true, NULL }, { "so.creditMemoEditList", tr("&Edit List..."), SLOT(sCreditMemoEditList()), billingCreditMemosMenu, "MaintainCreditMemos ViewCreditMemos", NULL, NULL, true, NULL }, { "separator", NULL, NULL, billingCreditMemosMenu, "true", NULL, NULL, true, NULL }, { "so.postCreditMemos", tr("&Post..."), SLOT(sPostCreditMemos()), billingCreditMemosMenu, "PostARDocuments", NULL, NULL, true, NULL }, { "separator", NULL, NULL, billingMenu, "true", NULL, NULL, true, NULL }, // Sales | Billing | Forms { "menu", tr("&Forms"), (char*)billingFormsMenu, billingMenu, "true", NULL, NULL, true, NULL }, { "so.printInvoices", tr("&Print Invoices..."), SLOT(sPrintInvoices()), billingFormsMenu, "PrintInvoices", NULL, NULL, true, NULL }, { "so.reprintInvoices", tr("&Re-Print Invoices..."), SLOT(sReprintInvoices()), billingFormsMenu, "PrintInvoices", NULL, NULL, true, NULL }, { "separator", NULL, NULL, billingFormsMenu, "true", NULL, NULL, true , NULL }, { "so.printCreditMemos", tr("Print &Returns..."), SLOT(sPrintCreditMemos()), billingFormsMenu, "PrintCreditMemos", NULL, NULL, true, NULL }, { "so.reprintCreditMemos", tr("Re-Print &Returns..."), SLOT(sReprintCreditMemos()), billingFormsMenu, "PrintCreditMemos", NULL, NULL, true, NULL }, // Sales | Returns { "menu", tr("&Return"), (char*)returnsMenu, mainMenu, "true", NULL, NULL, _metrics->boolean("EnableReturnAuth"), NULL }, { "so.newReturn", tr("&New..."), SLOT(sNewReturn()), returnsMenu, "MaintainReturns", NULL, NULL, true, NULL }, { "so.openReturns", tr("&List Open..."), SLOT(sOpenReturns()), returnsMenu, "MaintainReturns ViewReturns", NULL, NULL, true, NULL }, { "separator", NULL, NULL, returnsMenu, "true", NULL, NULL, true , NULL }, { "so.returnsWorkbench", tr("&Workbench..."), SLOT(sReturnsWorkbench()), returnsMenu, "MaintainReturns ViewReturns", NULL, NULL, true, NULL }, { "separator", NULL, NULL, mainMenu, "true", NULL, NULL, true, NULL }, // Sales | Lookup { "menu", tr("&Lookup"), (char*)lookupMenu, mainMenu, "true", NULL, NULL, true, NULL }, // Sales | Lookup | Quote Lookup { "menu", tr("&Quote"), (char*)lookupQuoteMenu, lookupMenu, "true", NULL, NULL, true, NULL }, { "so.dspQuoteLookupByCustomer", tr("by &Customer..."), SLOT(sDspQuoteLookupByCustomer()), lookupQuoteMenu, "ViewQuotes", NULL, NULL, true, NULL }, { "so.dspQuoteOrderLookupByItem", tr("by &Item..."), SLOT(sDspQuoteLookupByItem()), lookupQuoteMenu, "ViewQuotes", NULL, NULL, true, NULL }, // Sales | Lookup | Sales Order Lookup { "menu", tr("&Sales Order"), (char*)lookupSoMenu, lookupMenu, "true", NULL, NULL, true, NULL }, { "so.dspSalesOrderLookupByCustomerType", tr("by Customer &Type..."), SLOT(sDspOrderLookupByCustomerType()), lookupSoMenu, "ViewSalesOrders", NULL, NULL, true, NULL }, { "so.dspSalesOrderLookupByCustomer", tr("by &Customer..."), SLOT(sDspOrderLookupByCustomer()), lookupSoMenu, "ViewSalesOrders", NULL, NULL, true, NULL }, { "so.dspSalesOrderLookupByCustomerPO", tr("by Customer &PO..."), SLOT(sDspOrderLookupByCustomerPO()), lookupSoMenu, "ViewSalesOrders", NULL, NULL, true, NULL }, { "so.dspSalesOrderLookupByItem", tr("by &Item..."), SLOT(sDspOrderLookupByItem()), lookupSoMenu, "ViewSalesOrders", NULL, NULL, true, NULL }, { "separator", NULL, NULL, lookupMenu, "true", NULL, NULL, true, NULL }, { "so.dspSalesOrderStatus", tr("Sales Order S&tatus..."), SLOT(sDspSalesOrderStatus()), lookupMenu, "ViewSalesOrders", NULL, NULL, true, NULL }, // Sales | Forms { "menu", tr("&Forms"), (char*)formsMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.printSalesOrderForm", tr("Print Sales &Order Form..."), SLOT(sPrintSalesOrderForm()), formsMenu, "MaintainSalesOrders ViewSalesOrders", NULL, NULL, true, NULL }, { "so.printReturnAuthForm", tr("Print &Return Auth. Form..."), SLOT(sPrintReturnAuthForm()), formsMenu, "MaintainReturns", NULL, NULL, _metrics->boolean("EnableReturnAuth"), NULL }, { "separator", NULL, NULL, formsMenu, "true", NULL, NULL, true , NULL }, { "so.packingListBatch", tr("Packing &List Batch..."), SLOT(sPackingListBatch()), formsMenu, "MaintainPackingListBatch ViewPackingListBatch", NULL, NULL, true, NULL }, { "so.printPackingList", tr("&Print Packing List..."), SLOT(sPrintPackingList()), formsMenu, "PrintPackingLists", NULL, NULL, true, NULL }, // Sales | Reports { "menu", tr("&Reports"), (char*)reportsMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.dspSummarizedBacklogByWarehouse", tr("Su&mmarized Backlog..."), SLOT(sDspSummarizedBacklogByWarehouse()), reportsMenu, "ViewSalesOrders", QPixmap(":/images/dspSummarizedBacklogByWhse.png"), toolBar, true, tr("Summarized Backlog") }, // Sales | Reports | Backlog { "so.dspBacklog", tr("&Backlog..."), SLOT(sDspBacklog()), reportsMenu, "ViewSalesOrders", NULL, NULL, true, NULL }, { "so.dspPartiallyShippedOrders", tr("&Partially Shipped Orders..."), SLOT(sDspPartiallyShippedOrders()), reportsMenu, "ViewSalesOrders", NULL, NULL, true, NULL }, { "so.dspReservations", tr("Reservations by Item..."), SLOT(sDspReservations()), reportsMenu, "ViewInventoryAvailability", NULL, NULL, _metrics->boolean("EnableSOReservations"), NULL }, { "separator", NULL, NULL, reportsMenu, "true", NULL, NULL, true, NULL }, // Sales | Reports | Inventory Availability { "so.dspInventoryAvailability", tr("Inventory &Availability..."), SLOT(sDspInventoryAvailability()), reportsMenu, "ViewInventoryAvailability", NULL, NULL, true, NULL }, { "so.dspInventoryAvailabilityBySalesOrder", tr("Availability by &Sales Order..."), SLOT(sDspInventoryAvailabilityBySalesOrder()), reportsMenu, "ViewInventoryAvailability", NULL, NULL, true, NULL }, { "so.dspInventoryAvailabilityByCustomerType", tr("Availability by &Customer Type..."), SLOT(sDspInventoryAvailabilityByCustomerType()), reportsMenu, "ViewInventoryAvailability", NULL, NULL, true, NULL }, { "separator", NULL, NULL, reportsMenu, "true", NULL, NULL, true, NULL }, { "so.dspEarnedCommissions", tr("&Earned Commissions..."), SLOT(sDspEarnedCommissions()), reportsMenu, "ViewCommissions", NULL, NULL, true, NULL }, { "so.dspBriefEarnedCommissions", tr("B&rief Earned Commissions..."), SLOT(sDspBriefEarnedCommissions()), reportsMenu, "ViewCommissions", NULL, NULL, true, NULL }, { "so.dspTaxHistory", tr("Tax History..."), SLOT(sDspTaxHistory()), reportsMenu, "ViewTaxReconciliations", NULL, NULL, true, NULL }, { "separator", NULL, NULL, reportsMenu, "true", NULL, NULL, true, NULL }, // Sales | Analysis { "menu", tr("&Analysis"), (char*)analysisMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "sa.dspBookings", tr("&Bookings..."), SLOT(sDspBookings()), analysisMenu, "ViewSalesOrders", NULL, NULL, true , NULL }, { "sa.dspTimePhasedBookings", tr("T&ime Phased Bookings..."), SLOT(sDspTimePhasedBookings()), analysisMenu, "ViewSalesOrders", NULL, NULL, true , NULL }, { "separator", NULL, NULL, analysisMenu, "true", NULL, NULL, true, NULL }, { "sa.dspSalesHistory", tr("Sales &History..."), SLOT(sDspSalesHistory()), analysisMenu, "ViewSalesHistory", NULL, NULL, true , NULL }, { "sa.dspBriefSalesHistory", tr("Brie&f Sales History..."), SLOT(sDspBriefSalesHistory()), analysisMenu, "ViewSalesHistory", NULL, NULL, true , NULL }, { "sa.dspSummarizedSalesHistory", tr("Summari&zed Sales History..."), SLOT(sDspSummarizedSales()), analysisMenu, "ViewSalesHistory", NULL, NULL, true , NULL }, { "sa.dspTimePhasedSalesHistory", tr("Time &Phased Sales History..."), SLOT(sDspTimePhasedSales()), analysisMenu, "ViewSalesHistory", NULL, NULL, true , NULL }, { "separator", NULL, NULL, mainMenu, "true", NULL, NULL, true, NULL }, // Sales | Prospect { "menu", tr("&Prospect"), (char*)prospectMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.enterNewProspect", tr("&New..."), SLOT(sNewProspect()), prospectMenu, "MaintainProspectMasters", NULL, NULL, true, NULL }, { "so.prospects", tr("&List..."), SLOT(sProspects()), prospectMenu, "MaintainProspectMasters ViewProspectMasters", NULL, NULL, true, NULL }, // Sales | Customer { "menu", tr("&Customer"), (char*)customerMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.enterNewCustomer", tr("&New..."), SLOT(sNewCustomer()), customerMenu, "MaintainCustomerMasters", NULL, NULL, true, NULL }, { "so.customers", tr("&List..."), SLOT(sCustomers()), customerMenu, "MaintainCustomerMasters ViewCustomerMasters", NULL, NULL, true, NULL }, { "separator", NULL, NULL, customerMenu, "true", NULL, NULL, true, NULL }, { "so.customerWorkbench", tr("&Workbench..."), SLOT(sCustomerWorkbench()), customerMenu, "MaintainCustomerMasters ViewCustomerMasters", QPixmap(":/images/customerInformationWorkbench.png"), toolBar, true, tr("Customer Workbench") }, { "separator", NULL, NULL, customerMenu, "true", NULL, NULL, true, NULL }, { "so.customerGroups", tr("&Groups..."), SLOT(sCustomerGroups()), customerMenu, "MaintainCustomerGroups ViewCustomerGroups", NULL, NULL, true, NULL }, // Sales | Pricing { "menu", tr("Pricing"), (char*)pricingMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.itemListPrice", tr("Item &List Price..."), SLOT(sItemListPrice()), pricingMenu, "MaintainListPrices ViewListPrices", NULL, NULL, true, NULL }, { "so.updateListPricesByProductCategory", tr("&Update List Prices..."), SLOT(sUpdateListPricesByProductCategory()), pricingMenu, "MaintainListPrices", NULL, NULL, true, NULL }, { "separator", NULL, NULL, pricingMenu, "true", NULL, NULL, true, NULL }, { "so.pricingSchedules", tr("Pricing &Schedules..."), SLOT(sPricingSchedules()), pricingMenu, "MaintainListPrices ViewListPrices", NULL, NULL, true, NULL }, { "so.updatePricingSchedules", tr("Update Pricing Schedules..."), SLOT(sUpdatePrices()), pricingMenu, "UpdatePricingSchedules", NULL, NULL, true, NULL }, { "so.pricingScheduleAssignments", tr("Pricing Schedule Assi&gnments..."), SLOT(sPricingScheduleAssignments()), pricingMenu, "AssignPricingSchedules", NULL, NULL, true, NULL }, { "so.sales", tr("S&ales..."), SLOT(sSales()), pricingMenu, "CreateSales", NULL, NULL, true, NULL }, { "separator", NULL, NULL, pricingMenu, "true", NULL, NULL, true, NULL }, // Sales | Pricing | Reports { "menu", tr("&Reports"), (char*)pricingReportsMenu, pricingMenu, "true", NULL, NULL, true, NULL }, { "so.dspPricesByCustomerType", tr("Item Prices by Customer &Type..."), SLOT(sDspPricesByCustomerType()), pricingReportsMenu, "ViewCustomerPrices", NULL, NULL, true, NULL }, { "so.dspPricesByCustomer", tr("Item Prices by &Customer..."), SLOT(sDspPricesByCustomer()), pricingReportsMenu, "ViewCustomerPrices", NULL, NULL, true, NULL }, { "so.dspPricesByItem", tr("Item Prices by &Item..."), SLOT(sDspPricesByItem()), pricingReportsMenu, "ViewCustomerPrices", NULL, NULL, true, NULL }, { "separator", NULL, NULL, pricingReportsMenu, "true", NULL, NULL, true, NULL }, { "so.dspFreightPricesByCustomerType", tr("Freight Prices by Customer &Type..."), SLOT(sDspFreightPricesByCustomerType()), pricingReportsMenu, "ViewCustomerPrices", NULL, NULL, true, NULL }, { "so.dspFreightPricesByCustomer", tr("Freight Prices by &Customer..."), SLOT(sDspFreightPricesByCustomer()), pricingReportsMenu, "ViewCustomerPrices", NULL, NULL, true, NULL }, { "separator", NULL, NULL, mainMenu, "true", NULL, NULL, true, NULL }, { "menu", tr("&Utilities"), (char*)utilitiesMenu, mainMenu, "true", NULL, NULL, true, NULL }, { "so.reassignCustomerTypeByCustomerType", tr("&Reassign Customer Type by Customer Type..."), SLOT(sReassignCustomerTypeByCustomerType()), utilitiesMenu, "MaintainCustomerMasters", NULL, NULL, true, NULL }, { "so.updateCreditStatusByCustomer", tr("&Update Credit Status by Customer..."), SLOT(sUpdateCreditStatusByCustomer()), utilitiesMenu, "MaintainCustomerMasters UpdateCustomerCreditStatus", NULL, NULL, true, NULL }, { "separator", NULL, NULL, utilitiesMenu, "true", NULL, NULL, true, NULL }, { "so.purgeInvoices", tr("Purge &Invoices..."), SLOT(sPurgeInvoices()), utilitiesMenu, "PurgeInvoices", NULL, NULL, true, NULL }, { "so.purgeCreditMemos", tr("Purge &Returns..."), SLOT(sPurgeCreditMemos()), utilitiesMenu, "PurgeCreditMemos", NULL, NULL, true, NULL }, { "separator", NULL, NULL, utilitiesMenu, "true", NULL, NULL, _metrics->boolean("EnableSOReservations"), NULL }, { "so.allocateReservations", tr("Allocate Reser&vations..."), SLOT(sAllocateReservations()), utilitiesMenu, "MaintainReservations", NULL, NULL, _metrics->boolean("EnableSOReservations") , NULL }, { "separator", NULL, NULL, utilitiesMenu, "true", NULL, NULL, true, NULL }, { "sa.archieveSalesHistory", tr("&Archive Sales History..."), SLOT(sArchiveSalesHistory()), utilitiesMenu, "ArchiveSalesHistory", NULL, NULL, true , NULL }, { "sa.restoreSalesHistory", tr("Restore &Sales History..."), SLOT(sRestoreSalesHistory()), utilitiesMenu, "RestoreSalesHistory", NULL, NULL, true , NULL }, { "so.setup", tr("&Setup..."), SLOT(sSetup()), mainMenu, NULL, NULL, NULL, true, NULL }, }; addActionsToMenu(acts, sizeof(acts) / sizeof(acts[0])); parent->populateCustomMenu(mainMenu, "Sales"); QAction * m = parent->menuBar()->addMenu(mainMenu); if(m) m->setText(tr("S&ales")); }
moduleSO::moduleSO(OpenMFGGUIClient *pParent) : QObject(pParent, "soModule") { parent = pParent; toolBar = new QToolBar(tr("S/O Tools")); toolBar->setObjectName("S/O Tools"); toolBar->setIconSize(QSize(32, 32)); if (_preferences->boolean("ShowSOToolbar")) parent->addToolBar(toolBar); mainMenu = new QMenu(); ordersMenu = new QMenu(); billingMenu = new QMenu(); billingInvoicesMenu = new QMenu(); billingCreditMemosMenu= new QMenu(); pricingDisplaysMenu = new QMenu(); pricingMenu = new QMenu(); displaysMenu = new QMenu(); reportsMenu = new QMenu(); masterInfoMenu = new QMenu(); utilitiesMenu = new QMenu(); struct actionProperties { const char* actionName; const QString actionTitle; const char* slot; QMenu* menu; bool priv; QPixmap* pixmap; QToolBar* toolBar; bool visible; }; actionProperties acts[] = { { "menu", tr("Orders"), (char*)ordersMenu, mainMenu, true, NULL, NULL, true}, { "so.newSalesOrder", tr("New Sales Order..."), SLOT(sNewSalesOrder()), ordersMenu, _privleges->check("MaintainSalesOrders"), NULL, NULL, true}, { "so.listOpenSalesOrders", tr("List Open Sales Orders..."), SLOT(sOpenSalesOrders()), ordersMenu, (_privleges->check("MaintainSalesOrders") || _privleges->check("ViewSalesOrders")), new QPixmap(":/images/listOpenSalesOrders.png"), toolBar, true}, { "so.rescheduleAllSoLineItems", tr("Reschedule all S/O Line Items..."), SLOT(sRescheduleSoLineItems()), ordersMenu, _privleges->check("MaintainSalesOrders"), NULL, NULL, true}, { "so.dspCustomerInformation", tr("Customer Information Workbench..."), SLOT(sDspCustomerInformation()), ordersMenu, (_privleges->check("MaintainCustomerMasters") || _privleges->check("ViewCustomerMasters")), new QPixmap(":/images/customerInformationWorkbench.png"), toolBar, true}, { "separator", NULL, NULL, ordersMenu, true, NULL, NULL, true}, { "so.packingListBatch", tr("Packing List Batch..."), SLOT(sPackingListBatch()), ordersMenu, (_privleges->check("MaintainPackingListBatch") || _privleges->check("ViewPackingListBatch")), NULL, NULL, true}, { "so.printPackingList", tr("Print Packing List..."), SLOT(sPrintPackingList()), ordersMenu, _privleges->check("PrintPackingLists"), NULL, NULL, true}, { "so.deliverSalesOrder", tr("Schedule S/O for Email Delivery..."), SLOT(sDeliverSalesOrder()), ordersMenu, _privleges->check("ViewSalesOrders") , NULL, NULL, _metrics->boolean("EnableBatchManager")}, { "separator", NULL, NULL, ordersMenu, true, NULL, NULL, true}, { "so.newQuote", tr("New Quote..."), SLOT(sNewQuote()), ordersMenu, _privleges->check("MaintainQuotes"), NULL, NULL, true}, { "so.listQuotes", tr("List Quotes..."), SLOT(sQuotes()), ordersMenu, (_privleges->check("MaintainQuotes") || _privleges->check("ViewQuotes")), NULL, NULL, true}, { "menu", tr("Billing"), (char*)billingMenu, mainMenu, true, NULL, NULL, true}, { "menu", tr("&Invoices"), (char*)billingInvoicesMenu, billingMenu, true, NULL, NULL, true}, { "so.uninvoicedShipments", tr("Uninvoiced Shipments..."), SLOT(sUninvoicedShipments()), billingInvoicesMenu, _privleges->check("SelectBilling"), new QPixmap(":/images/uninvoicedShipments"), toolBar, true}, { "separator", NULL, NULL, billingInvoicesMenu, true, NULL, NULL, true}, { "so.selectAllShippedOrdersForBilling", tr("Select All Shipped Orders for Billing..."), SLOT(sSelectShippedOrdersForBilling()), billingInvoicesMenu, _privleges->check("SelectBilling"), NULL, NULL, true}, { "so.selectOrderForBilling", tr("Select Order for Billing..."), SLOT(sSelectOrderForBilling()), billingInvoicesMenu, _privleges->check("SelectBilling"), NULL, NULL, true}, { "separator", NULL, NULL, billingInvoicesMenu, true, NULL, NULL, true}, { "so.billingEditList", tr("Billing Edit List..."), SLOT(sBillingEditList()), billingInvoicesMenu, _privleges->check("SelectBilling"), NULL, NULL, true}, { "so.dspBillingSelections", tr("Billing Selections..."), SLOT(sDspBillingSelections()), billingInvoicesMenu, _privleges->check("SelectBilling"), new QPixmap(":/images/billingSelections"), toolBar, true}, { "so.postBillingSelections", tr("Post Billing Selections..."), SLOT(sPostBillingSelections()), billingInvoicesMenu, _privleges->check("SelectBilling"), NULL, NULL, true}, { "separator", NULL, NULL, billingInvoicesMenu, true, NULL, NULL, true}, { "so.listUnpostedInvoices", tr("List Unposted Invoices..."), SLOT(sUnpostedInvoices()), billingInvoicesMenu, _privleges->check("SelectBilling"), NULL, NULL, true}, { "separator", NULL, NULL, billingInvoicesMenu, true, NULL, NULL, true}, { "so.printInvoices", tr("Print Invoices..."), SLOT(sPrintInvoices()), billingInvoicesMenu, _privleges->check("PrintInvoices"), NULL, NULL, true}, { "so.printInvoicesByShipvia", tr("Print Invoices by Ship Via..."), SLOT(sPrintInvoicesByShipvia()), billingInvoicesMenu, _privleges->check("PrintInvoices"), NULL, NULL, true}, { "so.reprintInvoices", tr("Re-Print Invoices..."), SLOT(sReprintInvoices()), billingInvoicesMenu, _privleges->check("PrintInvoices"), NULL, NULL, true}, { "so.scheduleInvoiceForEmailDelivery", tr("Schedule Invoice for Email Delivery..."), SLOT(sDeliverInvoice()), billingInvoicesMenu, _privleges->check("PrintInvoices"), NULL, NULL, true}, { "separator", NULL, NULL, billingInvoicesMenu, true, NULL, NULL, true}, { "so.postInvoices", tr("Post Invoices..."), SLOT(sPostInvoices()), billingInvoicesMenu, _privleges->check("PostMiscInvoices"), NULL, NULL, true}, { "separator", NULL, NULL, billingInvoicesMenu, true, NULL, NULL, true}, { "so.purgeInvoices", tr("Purge Invoices..."), SLOT(sPurgeInvoices()), billingInvoicesMenu, _privleges->check("PurgeInvoices"), NULL, NULL, true}, { "menu", tr("&Credit Memos"), (char*)billingCreditMemosMenu, billingMenu, true, NULL, NULL, true}, { "so.newCreditMemo", tr("New Credit Memo..."), SLOT(sNewCreditMemo()), billingCreditMemosMenu, _privleges->check("MaintainCreditMemos"), NULL, NULL, true}, { "so.listUnpostedCreditMemos", tr("List Unposted Credit Memos..."), SLOT(sUnpostedCreditMemos()), billingCreditMemosMenu, (_privleges->check("MaintainCreditMemos") || _privleges->check("ViewCreditMemos")), NULL, NULL, true}, { "so.creditMemoEditList", tr("Credit Memo Edit List..."), SLOT(sCreditMemoEditList()), billingCreditMemosMenu, (_privleges->check("MaintainCreditMemos") || _privleges->check("ViewCreditMemos")), NULL, NULL, true}, { "separator", NULL, NULL, billingCreditMemosMenu, true, NULL, NULL, true}, { "so.printCreditMemos", tr("Print Credit Memos..."), SLOT(sPrintCreditMemos()), billingCreditMemosMenu, _privleges->check("PrintCreditMemos"), NULL, NULL, true}, { "so.reprintCreditMemos", tr("Re-Print Credit Memos..."), SLOT(sReprintCreditMemos()), billingCreditMemosMenu, _privleges->check("PrintCreditMemos"), NULL, NULL, true}, { "separator", NULL, NULL, billingCreditMemosMenu, true, NULL, NULL, true}, { "so.postCreditMemos", tr("Post Credit Memos..."), SLOT(sPostCreditMemos()), billingCreditMemosMenu, _privleges->check("PostARDocuments"), NULL, NULL, true}, { "separator", NULL, NULL, billingCreditMemosMenu, true, NULL, NULL, true}, { "so.purgeCreditMemos", tr("Purge Credit Memos..."), SLOT(sPurgeCreditMemos()), billingCreditMemosMenu, _privleges->check("PurgeCreditMemos"), NULL, NULL, true}, // START_RW { "separator", NULL, NULL, billingMenu, true, NULL, NULL, _metrics->boolean("EnableExternalAccountingInterface")}, { "so.exportAROpenItemsAndDistributions", tr("Export Unposted A/R Open Items and Distributions..."), SLOT(sPostAROpenAndDist()), billingMenu, _privleges->check("PostARDocuments"), NULL, NULL, _metrics->boolean("EnableExternalAccountingInterface")}, // END_RW { "menu", tr("Item Pricing"), (char*)pricingMenu, mainMenu, true, NULL, NULL, true}, { "so.itemListPrice", tr("Item List Price..."), SLOT(sItemListPrice()), pricingMenu, (_privleges->check("MaintainListPrices") || _privleges->check("ViewListPrices")), NULL, NULL, true}, { "so.updateListPricesByProductCategory", tr("Update List Prices by Product Category..."), SLOT(sUpdateListPricesByProductCategory()), pricingMenu, _privleges->check("MaintainListPrices"), NULL, NULL, true}, { "separator", NULL, NULL, pricingMenu, true, NULL, NULL, true}, { "so.pricingSchedules", tr("Pricing Schedules..."), SLOT(sPricingSchedules()), pricingMenu, (_privleges->check("MaintainListPrices") || _privleges->check("ViewListPrices")), NULL, NULL, true}, { "so.pricingScheduleAssignments", tr("Pricing Schedule Assignments..."), SLOT(sPricingScheduleAssignments()), pricingMenu, _privleges->check("AssignPricingSchedules"), NULL, NULL, true}, { "so.sales", tr("Sales..."), SLOT(sSales()), pricingMenu, _privleges->check("CreateSales"), NULL, NULL, true}, { "separator", NULL, NULL, pricingMenu, true, NULL, NULL, true}, { "so.updatePricesByProductCategory", tr("Update Prices by Product Category..."), SLOT(sUpdatePricesByProductCategory()), pricingMenu, _privleges->check("UpdatePricingSchedules"), NULL, NULL, true}, { "so.updatePricesByPricingSchedule", tr("Update Prices by Pricing Schedule..."), SLOT(sUpdatePricesByPricingSchedule()), pricingMenu, _privleges->check("UpdatePricingSchedules"), NULL, NULL, true}, { "separator", NULL, NULL, pricingMenu, true, NULL, NULL, true}, { "menu", tr("&Displays"), (char*)pricingDisplaysMenu, pricingMenu, true, NULL, NULL, true}, { "so.dspPricesByItem", tr("Prices by Item..."), SLOT(sDspPricesByItem()), pricingDisplaysMenu, _privleges->check("ViewCustomerPrices"), NULL, NULL, true}, { "so.dspPricesByCustomer", tr("Prices by Customer..."), SLOT(sDspPricesByCustomer()), pricingDisplaysMenu, _privleges->check("ViewCustomerPrices"), NULL, NULL, true}, { "so.dspPricesByCustomerType", tr("Prices by Customer Type..."), SLOT(sDspPricesByCustomerType()), pricingDisplaysMenu, _privleges->check("ViewCustomerPrices"), NULL, NULL, true}, { "menu", tr("Displays"), (char*)displaysMenu, mainMenu, true, NULL, NULL, true}, { "so.dspSalesOrderLookupByCustomer", tr("Sales Order Lookup by Customer..."), SLOT(sDspOrderLookupByCustomer()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspSalesOrderLookupByCustomerType", tr("Sales Order Lookup by Customer Type..."), SLOT(sDspOrderLookupByCustomerType()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspSalesOrderLookupByItem", tr("Sales Order Lookup by Item..."), SLOT(sDspOrderLookupByItem()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspSalesOrderLookupByCustomerPO", tr("Sales Order Lookup by Customer PO..."), SLOT(sDspOrderLookupByCustomerPO()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "separator", NULL, NULL, displaysMenu, true, NULL, NULL, true}, { "so.dspQuoteLookupByCustomer", tr("Quote Lookup by Customer..."), SLOT(sDspQuoteLookupByCustomer()), displaysMenu, _privleges->check("ViewQuotes"), NULL, NULL, true}, { "so.dspQuoteOrderLookupByItem", tr("Quote Lookup by Item..."), SLOT(sDspQuoteLookupByItem()), displaysMenu, _privleges->check("ViewQuotes"), NULL, NULL, true}, { "separator", NULL, NULL, displaysMenu, true, NULL, NULL, true}, { "so.dspCustomersByCustomerType", tr("Customers by Customer Type..."), SLOT(sDspCustomersByCusttype()), displaysMenu, (_privleges->check("MaintainCustomerMasters") || _privleges->check("ViewCustomerMasters")), NULL, NULL, true}, { "so.dspCustomersByCharacteristic", tr("Customers by Characteristic..."), SLOT(sDspCustomersByCharacteristic()), displaysMenu, (_privleges->check("MaintainCustomerMasters") || _privleges->check("ViewCustomerMasters")), NULL, NULL, true}, { "separator", NULL, NULL, displaysMenu, true, NULL, NULL, true}, { "so.dspInventoryAvailabilityByItem", tr("Inventory Availability by Item..."), SLOT(sDspInventoryAvailabilityByItem()), displaysMenu, _privleges->check("ViewInventoryAvailability"), NULL, NULL, true}, { "so.dspInventoryAvailabilityBySalesOrder", tr("Inventory Availability by Sales Order..."), SLOT(sDspInventoryAvailabilityBySalesOrder()), displaysMenu, _privleges->check("ViewInventoryAvailability"), NULL, NULL, true}, { "separator", NULL, NULL, displaysMenu, true, NULL, NULL, true}, { "so.dspSalesOrderStatus", tr("Sales Order Status..."), SLOT(sDspSalesOrderStatus()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "separator", NULL, NULL, displaysMenu, true, NULL, NULL, true}, { "so.dspBacklogByItem", tr("Backlog by Item..."), SLOT(sDspBacklogByItem()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspBacklogBySalesOrder", tr("Backlog by Sales Order..."), SLOT(sDspBacklogBySalesOrder()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspBacklogByCustomer", tr("Backlog by Customer..."), SLOT(sDspBacklogByCustomer()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspBacklogByCustomerType", tr("Backlog by Customer Type..."), SLOT(sDspBacklogByCustomerType()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspBacklogByCustomerGroup", tr("Backlog by Customer Group..."), SLOT(sDspBacklogByCustomerGroup()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "so.dspBacklogByProductCategory", tr("Backlog by Product Category..."), SLOT(sDspBacklogByProductCategory()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "separator", NULL, NULL, displaysMenu, true, NULL, NULL, true}, { "so.dspSummarizedBacklogByWarehouse", tr("Summarized Backlog by Warehouse..."), SLOT(sDspSummarizedBacklogByWarehouse()), displaysMenu, _privleges->check("ViewSalesOrders"), new QPixmap(":/images/dspSummarizedBacklogByWhse.png"), toolBar, true}, { "so.dspPartiallyShippedOrders", tr("Partially Shipped Orders..."), SLOT(sDspPartiallyShippedOrders()), displaysMenu, _privleges->check("ViewSalesOrders"), NULL, NULL, true}, { "separator", NULL, NULL, displaysMenu, true, NULL, NULL, true}, { "so.dspEarnedCommissions", tr("Earned Commissions..."), SLOT(sDspEarnedCommissions()), displaysMenu, _privleges->check("ViewCommissions"), NULL, NULL, true}, { "so.dspBriefEarnedCommissions", tr("Brief Earned Commissions..."), SLOT(sDspBriefEarnedCommissions()), displaysMenu, _privleges->check("ViewCommissions"), NULL, NULL, true}, { "so.dspSummarizedTaxableSales", tr("Summarized Taxable Sales..."), SLOT(sDspSummarizedTaxableSales()), displaysMenu, _privleges->check("ViewCommissions"), NULL, NULL, true}, { "menu", tr("Reports"), (char*)reportsMenu, mainMenu, true, NULL, NULL, true}, { "so.printSalesOrderForm", tr("Print Sales Order Form..."), SLOT(sPrintSalesOrderForm()), reportsMenu, (_privleges->check("MaintainSalesOrders") || _privleges->check("ViewSalesOrders")), NULL, NULL, true}, { "menu", tr("Master Information"), (char*)masterInfoMenu, mainMenu, true, NULL, NULL, true}, { "so.enterNewCustomer", tr("Enter New Customer..."), SLOT(sNewCustomer()), masterInfoMenu, _privleges->check("MaintainCustomerMasters"), NULL, NULL, true}, { "so.searchForCustomer", tr("Search for Customer..."), SLOT(sSearchForCustomer()), masterInfoMenu, (_privleges->check("MaintainCustomerMasters") || _privleges->check("ViewCustomerMasters")), NULL, NULL, true}, { "so.customers", tr("Customers..."), SLOT(sCustomers()), masterInfoMenu, (_privleges->check("MaintainCustomerMasters") || _privleges->check("ViewCustomerMasters")), NULL, NULL, true}, { "separator", NULL, NULL, masterInfoMenu, true, NULL, NULL, true}, { "so.customerGroups", tr("Customer Groups..."), SLOT(sCustomerGroups()), masterInfoMenu, (_privleges->check("MaintainCustomerGroups") || _privleges->check("ViewCustomerGroups")), NULL, NULL, true}, { "so.customerTypes", tr("Customer Types..."), SLOT(sCustomerTypes()), masterInfoMenu, (_privleges->check("MaintainCustomerTypes") || _privleges->check("ViewCustomerTypes")), NULL, NULL, true}, { "so.characteristics", tr("Characteristics..."), SLOT(sCharacteristics()), masterInfoMenu, (_privleges->check("MaintainCharacteristics") || _privleges->check("ViewCharacteristics")), NULL, NULL, true}, { "separator", NULL, NULL, masterInfoMenu, true, NULL, NULL, true}, { "so.enterNewProspect", tr("Enter New Prospect..."), SLOT(sNewProspect()), masterInfoMenu, _privleges->check("MaintainProspectMasters"), NULL, NULL, true}, { "so.searchForProspect", tr("Search for Prospect..."), SLOT(sSearchForProspect()), masterInfoMenu, (_privleges->check("MaintainProspects") || _privleges->check("ViewProspects")), NULL, NULL, true}, { "so.prospects", tr("Prospects..."), SLOT(sProspects()), masterInfoMenu, (_privleges->check("MaintainProspectMasters") || _privleges->check("ViewProspectMasters")), NULL, NULL, true}, { "separator", NULL, NULL, masterInfoMenu, true, NULL, NULL, true}, { "so.salesReps", tr("Sales Reps..."), SLOT(sSalesReps()), masterInfoMenu, (_privleges->check("MaintainSalesReps") || _privleges->check("ViewSalesReps")), NULL, NULL, true}, { "so.shippingZones", tr("Shipping Zones..."), SLOT(sShippingZones()), masterInfoMenu, (_privleges->check("MaintainShippingZones") || _privleges->check("ViewShippingZones")), NULL, NULL, true}, { "so.shipVias", tr("Ship Vias..."), SLOT(sShipVias()), masterInfoMenu, (_privleges->check("MaintainShipVias") || _privleges->check("ViewShipVias")), NULL, NULL, true}, { "so.shippingChargeTypes", tr("Shipping Charge Types..."), SLOT(sShippingChargeTypes()), masterInfoMenu, (_privleges->check("MaintainShippingChargeTypes") || _privleges->check("ViewShippingChargeTypes")), NULL, NULL, true}, { "so.taxCodes", tr("Tax Codes..."), SLOT(sTaxCodes()), masterInfoMenu, (_privleges->check("MaintainTaxCodes") || _privleges->check("ViewTaxCodes")), NULL, NULL, true}, { "so.terms", tr("Terms..."), SLOT(sTerms()), masterInfoMenu, (_privleges->check("MaintainTerms") || _privleges->check("ViewTerms")), NULL, NULL, true}, { "so.shippingForms", tr("Shipping Forms..."), SLOT(sShippingForms()), masterInfoMenu, (_privleges->check("MaintainShippingForms") || _privleges->check("ViewShippingForms")), NULL, NULL, true}, { "so.salesCategories", tr("Sales Categories..."), SLOT(sSalesCategories()), masterInfoMenu, (_privleges->check("MaintainSalesCategories")) || (_privleges->check("ViewSalesCategories")), NULL, NULL, true}, { "separator", NULL, NULL, masterInfoMenu, true, NULL, NULL, true}, { "so.salesAccountAssignments", tr("Sales Account Assignments..."), SLOT(sSalesAccountAssignments()), masterInfoMenu, (_privleges->check("MaintainSalesAccount") || _privleges->check("ViewSalesAccount")), NULL, NULL, true}, { "so.arAccountAssignments", tr("A/R Account Assignments..."), SLOT(sARAccountAssignments()), masterInfoMenu, (_privleges->check("MaintainSalesAccount") || _privleges->check("ViewSalesAccount")), NULL, NULL, true}, { "so.customerFormAssignments", tr("Customer Form Assignments..."), SLOT(sCustomerFormAssignments()), masterInfoMenu, _privleges->check("MaintainCustomerMasters"), NULL, NULL, true}, { "menu", tr("&Utilities"), (char*)utilitiesMenu, mainMenu, true, NULL, NULL, true}, { "so.customerInformationExport", tr("Customer Information Export..."), SLOT(sDspCustomerInformationExport()), utilitiesMenu, _privleges->check("MaintainCustomerMasters"), NULL, NULL, true}, { "so.reassignCustomerTypeByCustomerType", tr("Reassign Customer Type by Customer Type..."), SLOT(sReassignCustomerTypeByCustomerType()), utilitiesMenu, _privleges->check("MaintainCustomerMasters"), NULL, NULL, true}, { "so.updateCreditStatusByCustomer", tr("Update Credit Status by Customer..."), SLOT(sUpdateCreditStatusByCustomer()), utilitiesMenu, (_privleges->check("MaintainCustomerMasters") || _privleges->check("UpdateCustomerCreditStatus")), NULL, NULL, true}, // START_RW { "so.exportCustomers", tr("Export Customers..."), SLOT(sExportCustomers()), utilitiesMenu, _privleges->check("ViewCustomerMasters"), NULL, NULL, _metrics->boolean("EnableExternalAccountingInterface")} // END_RW }; for (unsigned int i = 0; i < sizeof(acts) / sizeof(acts[0]); i++) { if (! acts[i].visible) { continue; } else if (acts[i].actionName == QString("menu")) { acts[i].menu->insertItem(acts[i].actionTitle, (QMenu*)(acts[i].slot)); } else if (acts[i].actionName == QString("separator")) { acts[i].menu->addSeparator(); } else if (acts[i].toolBar != NULL) { parent->actions.append( new Action( parent, acts[i].actionName, acts[i].actionTitle, this, acts[i].slot, acts[i].menu, acts[i].priv, *(acts[i].pixmap), acts[i].toolBar) ); } else { parent->actions.append( new Action( parent, acts[i].actionName, acts[i].actionTitle, this, acts[i].slot, acts[i].menu, acts[i].priv ) ); } } parent->populateCustomMenu(mainMenu, "S/O"); parent->menuBar()->insertItem(tr("S/&O"), mainMenu); }