dspOrderActivityByProject::dspOrderActivityByProject(QWidget* parent, const char*, Qt::WindowFlags fl) : display(parent, "dspOrderActivityByProject", fl) { setupUi(optionsWidget()); setWindowTitle(tr("Order Activity by Project")); setListLabel(tr("Orders")); setReportName("OrderActivityByProject"); setMetaSQLOptions("orderActivityByProject", "detail"); setUseAltId(true); _run = false; list()->addColumn(tr("Name"), _itemColumn, Qt::AlignLeft, true, "name" ); list()->addColumn(tr("Status"), _orderColumn, Qt::AlignLeft, true, "status" ); list()->addColumn(tr("Item #"), _itemColumn, Qt::AlignLeft, true, "item" ); list()->addColumn(tr("Description"), -1 , Qt::AlignLeft, true, "descrip" ); list()->addColumn(tr("Account/Customer"), -1 , Qt::AlignLeft, true, "customer" ); list()->addColumn(tr("Contact"), -1 , Qt::AlignLeft, false, "contact" ); list()->addColumn(tr("City"), -1 , Qt::AlignLeft, false, "city" ); list()->addColumn(tr("State"), -1 , Qt::AlignLeft, false, "state" ); list()->addColumn(tr("Qty"), _qtyColumn, Qt::AlignRight, true, "qty" ); list()->addColumn(tr("UOM"), _uomColumn, Qt::AlignLeft, true, "uom" ); list()->addColumn(tr("Value"), _qtyColumn, Qt::AlignRight, true, "value" ); list()->addColumn(tr("Due Date"), _dateColumn, Qt::AlignRight, true, "due" ); list()->addColumn(tr("Assigned"), _dateColumn, Qt::AlignRight, true, "assigned" ); list()->addColumn(tr("Started"), _dateColumn, Qt::AlignRight, true, "started" ); list()->addColumn(tr("Completed"), _dateColumn, Qt::AlignRight, true, "completed" ); list()->addColumn(tr("Hrs. Budget"), _qtyColumn, Qt::AlignRight, true, "hrs_budget" ); list()->addColumn(tr("Hrs. Actual"), _qtyColumn, Qt::AlignRight, true, "hrs_actual" ); list()->addColumn(tr("Hrs. Balance"), _qtyColumn, Qt::AlignRight, true, "hrs_balance" ); list()->addColumn(tr("Exp. Budget"), _priceColumn, Qt::AlignRight, true, "exp_budget" ); list()->addColumn(tr("Exp. Actual"), _priceColumn, Qt::AlignRight, true, "exp_actual" ); list()->addColumn(tr("Exp. Balance"), _priceColumn, Qt::AlignRight, true, "exp_balance" ); list()->setPopulateLinear(true); disconnect(newAction(), SIGNAL(triggered()), this, SLOT(sNew())); connect(newAction(), SIGNAL(triggered()), this, SLOT(sNewProjectTask())); connect(_showSo, SIGNAL(checked()), this, SLOT(sFillList())); connect(_showPo, SIGNAL(checked()), this, SLOT(sFillList())); connect(_showWo, SIGNAL(checked()), this, SLOT(sFillList())); QToolButton * newBtn = (QToolButton*)toolBar()->widgetForAction(newAction()); newBtn->setPopupMode(QToolButton::MenuButtonPopup); QAction *menuItem; QMenu * newMenu = new QMenu; menuItem = newMenu->addAction(tr("Task"), this, SLOT(sNewProjectTask())); menuItem->setEnabled(_privileges->check("MaintainAllProjects")); newMenu->addSeparator(); menuItem = newMenu->addAction(tr("Sales Order"), this, SLOT(sNewSalesOrder())); menuItem->setEnabled(_privileges->check("MaintainSalesOrders")); menuItem = newMenu->addAction(tr("Purchase Order"), this, SLOT(sNewPurchaseOrder())); menuItem->setEnabled(_privileges->check("MaintainPurchaseOrders")); menuItem = newMenu->addAction(tr("Work Order"), this, SLOT(sNewWorkOrder())); menuItem->setEnabled(_privileges->check("MaintainWorkOrders")); newBtn->setMenu(newMenu); }
void opportunity::sHandleSalesPrivs() { bool isCustomer = (_custid > -1); bool newQuotePriv = ((cNew == _mode || cEdit == _mode) && _privileges->check("MaintainQuotes")); bool newSalesOrderPriv = ((cNew == _mode || cEdit == _mode) && isCustomer && _privileges->check("MaintainSalesOrders")); bool editPriv = false; bool viewPriv = false; bool convertPriv = false; QAction *menuItem; QMenu * newMenu = new QMenu; menuItem = newMenu->addAction(tr("Quote"), this, SLOT(sNewQuote())); menuItem->setEnabled(newQuotePriv); menuItem = newMenu->addAction(tr("Sales Order"), this, SLOT(sNewSalesOrder())); menuItem->setEnabled(newSalesOrderPriv); _newSale->setMenu(newMenu); QMenu * attachMenu = new QMenu; menuItem = attachMenu->addAction(tr("Quote"), this, SLOT(sAttachQuote())); menuItem->setEnabled(newQuotePriv); menuItem = attachMenu->addAction(tr("Sales Order"), this, SLOT(sAttachSalesOrder())); menuItem->setEnabled(newSalesOrderPriv); _attachSale->setMenu(attachMenu); if(_salesList->currentItem()) { editPriv = (cNew == _mode || cEdit == _mode) && ( (0 == _salesList->currentItem()->altId() && _privileges->check("MaintainQuotes")) || (1 == _salesList->currentItem()->altId() && _privileges->check("MaintainSalesOrders")) ); viewPriv = (cNew == _mode || cEdit == _mode) && ( (0 == _salesList->currentItem()->altId() && _privileges->check("ViewQuotes")) || (1 == _salesList->currentItem()->altId() && _privileges->check("ViewSalesOrders")) ); convertPriv = (cNew == _mode || cEdit == _mode) && (0 == _salesList->currentItem()->altId() && _privileges->check("ConvertQuotes")); } _convertQuote->setEnabled(convertPriv && _salesList->id() > 0); _editSale->setEnabled(editPriv && _salesList->id() > 0); _viewSale->setEnabled((editPriv || viewPriv) && _salesList->id() > 0); _printSale->setEnabled((editPriv || viewPriv) && _salesList->id() > 0); _deleteSale->setEnabled(editPriv && _salesList->id() > 0); if (editPriv) { disconnect(_salesList,SIGNAL(itemSelected(int)),_viewSale, SLOT(animateClick())); connect(_salesList, SIGNAL(itemSelected(int)), _editSale, SLOT(animateClick())); } else if (viewPriv) { disconnect(_salesList,SIGNAL(itemSelected(int)),_editSale, SLOT(animateClick())); connect(_salesList, SIGNAL(itemSelected(int)), _viewSale, SLOT(animateClick())); } }
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); }
project::project(QWidget* parent, const char* name, bool modal, Qt::WFlags fl) : XDialog(parent, name, modal, fl) { setupUi(this); if(!_privileges->check("EditOwner")) _owner->setEnabled(false); connect(_buttonBox, SIGNAL(rejected()), this, SLOT(sClose())); connect(_buttonBox, SIGNAL(accepted()), this, SLOT(sSave())); connect(_printTasks, SIGNAL(clicked()), this, SLOT(sPrintTasks())); connect(_queryTasks, SIGNAL(clicked()), this, SLOT(sFillTaskList())); connect(_newTask, SIGNAL(clicked()), this, SLOT(sNewTask())); connect(_editTask, SIGNAL(clicked()), this, SLOT(sEditTask())); connect(_viewTask, SIGNAL(clicked()), this, SLOT(sViewTask())); connect(_deleteTask, SIGNAL(clicked()), this, SLOT(sDeleteTask())); connect(_number, SIGNAL(editingFinished()), this, SLOT(sNumberChanged())); connect(_crmacct, SIGNAL(newId(int)), this, SLOT(sCRMAcctChanged(int))); connect(_newCharacteristic, SIGNAL(clicked()), this, SLOT(sNew())); connect(_editCharacteristic, SIGNAL(clicked()), this, SLOT(sEdit())); connect(_deleteCharacteristic, SIGNAL(clicked()), this, SLOT(sDelete())); connect(_prjtask, SIGNAL(populateMenu(QMenu*,QTreeWidgetItem*,int)), this, SLOT(sPopulateMenu(QMenu*, QTreeWidgetItem*))); connect(_showSo, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); connect(_showPo, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); connect(_showWo, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); connect(_showIn, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); _charass->addColumn(tr("Characteristic"), _itemColumn, Qt::AlignLeft, true, "char_name" ); _charass->addColumn(tr("Value"), -1, Qt::AlignLeft, true, "charass_value" ); _charass->addColumn(tr("Default"), _ynColumn*2, Qt::AlignCenter, true, "charass_default" ); _prjtask->addColumn(tr("Name"), _itemColumn, Qt::AlignLeft, true, "name" ); _prjtask->addColumn(tr("Status"), _orderColumn, Qt::AlignLeft, true, "status" ); _prjtask->addColumn(tr("Item #"), _itemColumn, Qt::AlignLeft, true, "item" ); _prjtask->addColumn(tr("Description"), -1 , Qt::AlignLeft, true, "descrip" ); _prjtask->addColumn(tr("Account/Customer"), -1 , Qt::AlignLeft, false, "customer" ); _prjtask->addColumn(tr("Contact"), -1 , Qt::AlignLeft, false, "contact" ); _prjtask->addColumn(tr("City"), -1 , Qt::AlignLeft, false, "city" ); _prjtask->addColumn(tr("State"), -1 , Qt::AlignLeft, false, "state" ); _prjtask->addColumn(tr("Qty"), _qtyColumn, Qt::AlignRight, true, "qty" ); _prjtask->addColumn(tr("UOM"), _uomColumn, Qt::AlignLeft, true, "uom" ); _prjtask->addColumn(tr("Value"), _qtyColumn, Qt::AlignRight, true, "value" ); _prjtask->addColumn(tr("Due Date"), _dateColumn, Qt::AlignRight, true, "due" ); _prjtask->addColumn(tr("Assigned"), _dateColumn, Qt::AlignRight, true, "assigned" ); _prjtask->addColumn(tr("Started"), _dateColumn, Qt::AlignRight, true, "started" ); _prjtask->addColumn(tr("Completed"), _dateColumn, Qt::AlignRight, true, "completed" ); _prjtask->addColumn(tr("Hrs. Budget"), _qtyColumn, Qt::AlignRight, true, "hrs_budget" ); _prjtask->addColumn(tr("Hrs. Actual"), _qtyColumn, Qt::AlignRight, true, "hrs_actual" ); _prjtask->addColumn(tr("Hrs. Balance"), _qtyColumn, Qt::AlignRight, true, "hrs_balance" ); _prjtask->addColumn(tr("Exp. Budget"), _priceColumn, Qt::AlignRight, true, "exp_budget" ); _prjtask->addColumn(tr("Exp. Actual"), _priceColumn, Qt::AlignRight, true, "exp_actual" ); _prjtask->addColumn(tr("Exp. Balance"), _priceColumn, Qt::AlignRight, true, "exp_balance" ); _showSo->setChecked(true); _showWo->setChecked(true); _showPo->setChecked(true); _showIn->setChecked(true); _owner->setUsername(omfgThis->username()); _assignedTo->setUsername(omfgThis->username()); _owner->setType(UsernameLineEdit::UsersActive); _assignedTo->setType(UsernameLineEdit::UsersActive); _totalHrBud->setPrecision(omfgThis->qtyVal()); _totalHrAct->setPrecision(omfgThis->qtyVal()); _totalHrBal->setPrecision(omfgThis->qtyVal()); _totalExpBud->setPrecision(omfgThis->moneyVal()); _totalExpAct->setPrecision(omfgThis->moneyVal()); _totalExpBal->setPrecision(omfgThis->moneyVal()); _saved=false; QMenu * newMenu = new QMenu; QAction *menuItem; newMenu->addAction(tr("Task..."), this, SLOT(sNewTask())); newMenu->addSeparator(); menuItem = newMenu->addAction(tr("Quote"), this, SLOT(sNewQuotation())); menuItem->setEnabled(_privileges->check("MaintainQuotes")); menuItem = newMenu->addAction(tr("Sales Order"), this, SLOT(sNewSalesOrder())); menuItem->setEnabled(_privileges->check("MaintainSalesOrders")); menuItem = newMenu->addAction(tr("Purchase Order"), this, SLOT(sNewPurchaseOrder())); menuItem->setEnabled(_privileges->check("MaintainPurchaseOrders")); menuItem = newMenu->addAction(tr("Work Order"), this, SLOT(sNewWorkOrder())); menuItem->setEnabled(_privileges->check("MaintainWorkOrders")); _newTask->setMenu(newMenu); _newTask->setMenu(newMenu); populate(); }
project::project(QWidget* parent, const char* name, bool modal, Qt::WindowFlags fl) : XDialog(parent, name, modal, fl), _prjid(-1) { setupUi(this); XSqlQuery projectType; projectType.prepare("SELECT prjtype_id, prjtype_descr FROM prjtype WHERE prjtype_active;"); projectType.exec(); _projectType->populate(projectType); if (projectType.lastError().type() != QSqlError::NoError) { systemError(this, projectType.lastError().databaseText(), __FILE__, __LINE__); return; } if(!_privileges->check("EditOwner")) _owner->setEnabled(false); connect(_buttonBox, SIGNAL(rejected()), this, SLOT(sClose())); connect(_buttonBox, SIGNAL(accepted()), this, SLOT(sSave())); connect(_queryTasks, SIGNAL(clicked()), this, SLOT(sFillTaskList())); connect(_newTask, SIGNAL(clicked()), this, SLOT(sNewTask())); connect(_editTask, SIGNAL(clicked()), this, SLOT(sEditTask())); connect(_viewTask, SIGNAL(clicked()), this, SLOT(sViewTask())); connect(_deleteTask, SIGNAL(clicked()), this, SLOT(sDeleteTask())); connect(_number, SIGNAL(editingFinished()), this, SLOT(sNumberChanged())); connect(_crmacct, SIGNAL(newId(int)), this, SLOT(sCRMAcctChanged(int))); connect(_prjtask, SIGNAL(populateMenu(QMenu*,QTreeWidgetItem*,int)), this, SLOT(sPopulateMenu(QMenu*, QTreeWidgetItem*))); connect(_showSo, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); connect(_showPo, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); connect(_showWo, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); connect(_showIn, SIGNAL(toggled(bool)), this, SLOT(sFillTaskList())); _charass->setType("PROJ"); _prjtask->addColumn(tr("Name"), _itemColumn, Qt::AlignLeft, true, "name" ); _prjtask->addColumn(tr("Status"), _orderColumn, Qt::AlignLeft, true, "status" ); _prjtask->addColumn(tr("Item #"), _itemColumn, Qt::AlignLeft, true, "item" ); _prjtask->addColumn(tr("Description"), -1 , Qt::AlignLeft, true, "descrip" ); _prjtask->addColumn(tr("Account/Customer"), -1 , Qt::AlignLeft, false, "customer" ); _prjtask->addColumn(tr("Contact"), -1 , Qt::AlignLeft, false, "contact" ); _prjtask->addColumn(tr("City"), -1 , Qt::AlignLeft, false, "city" ); _prjtask->addColumn(tr("State"), -1 , Qt::AlignLeft, false, "state" ); _prjtask->addColumn(tr("Qty"), _qtyColumn, Qt::AlignRight, true, "qty" ); _prjtask->addColumn(tr("UOM"), _uomColumn, Qt::AlignLeft, true, "uom" ); _prjtask->addColumn(tr("Value"), _qtyColumn, Qt::AlignRight, true, "value" ); _prjtask->addColumn(tr("Due Date"), _dateColumn, Qt::AlignRight, true, "due" ); _prjtask->addColumn(tr("Assigned"), _dateColumn, Qt::AlignRight, true, "assigned" ); _prjtask->addColumn(tr("Started"), _dateColumn, Qt::AlignRight, true, "started" ); _prjtask->addColumn(tr("Completed"), _dateColumn, Qt::AlignRight, true, "completed" ); _prjtask->addColumn(tr("Hrs. Budget"), _qtyColumn, Qt::AlignRight, true, "hrs_budget" ); _prjtask->addColumn(tr("Hrs. Actual"), _qtyColumn, Qt::AlignRight, true, "hrs_actual" ); _prjtask->addColumn(tr("Hrs. Balance"), _qtyColumn, Qt::AlignRight, true, "hrs_balance" ); _prjtask->addColumn(tr("Exp. Budget"), _priceColumn, Qt::AlignRight, true, "exp_budget" ); _prjtask->addColumn(tr("Exp. Actual"), _priceColumn, Qt::AlignRight, true, "exp_actual" ); _prjtask->addColumn(tr("Exp. Balance"), _priceColumn, Qt::AlignRight, true, "exp_balance" ); _owner->setUsername(omfgThis->username()); _assignedTo->setUsername(omfgThis->username()); _owner->setType(UsernameLineEdit::UsersActive); _assignedTo->setType(UsernameLineEdit::UsersActive); _totalHrBud->setPrecision(omfgThis->qtyVal()); _totalHrAct->setPrecision(omfgThis->qtyVal()); _totalHrBal->setPrecision(omfgThis->qtyVal()); _totalExpBud->setPrecision(omfgThis->moneyVal()); _totalExpAct->setPrecision(omfgThis->moneyVal()); _totalExpBal->setPrecision(omfgThis->moneyVal()); _saved=false; QMenu * newMenu = new QMenu; QAction *menuItem; newMenu->addAction(tr("Task..."), this, SLOT(sNewTask())); newMenu->addSeparator(); menuItem = newMenu->addAction(tr("Incident"), this, SLOT(sNewIncident())); menuItem->setEnabled(_privileges->check("MaintainPersonalIncidents") || _privileges->check("MaintainAllIncidents")); menuItem = newMenu->addAction(tr("Quote"), this, SLOT(sNewQuotation())); menuItem->setEnabled(_privileges->check("MaintainQuotes")); menuItem = newMenu->addAction(tr("Sales Order"), this, SLOT(sNewSalesOrder())); menuItem->setEnabled(_privileges->check("MaintainSalesOrders")); menuItem = newMenu->addAction(tr("Purchase Order"), this, SLOT(sNewPurchaseOrder())); menuItem->setEnabled(_privileges->check("MaintainPurchaseOrders")); menuItem = newMenu->addAction(tr("Work Order"), this, SLOT(sNewWorkOrder())); menuItem->setEnabled(_privileges->check("MaintainWorkOrders")); _newTask->setMenu(newMenu); QMenu * printMenu = new QMenu; printMenu->addAction(tr("Print Tasks"), this, SLOT(sPrintTasks())); printMenu->addAction(tr("Print Orders"), this, SLOT(sPrintOrders())); _print->setMenu(printMenu); }