Imports System.Text Imports System.Windows.Forms Imports System.Reflection Imports System.IO Imports System.Threading Imports Pivoting Public Class MDI Dim comfun As New CommonFunctions Dim PageID As Integer Public m_email_pivot As Boolean = False 'if True: this says we are opening this mdi to email PIVOTS Private m_index_pivot_id As Integer = 0 Private m_pivotIDs() As String = Nothing ' Private Sub mnuVoucherType_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuVoucherType.Click PageID = 14 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_VoucherType_Master.Show() End Sub Private Sub mnuExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuExit.Click If MessageBox.Show("Are you sure you want to exit?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then Application.Exit() End If End Sub Private Sub MDI_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Application.Exit() End Sub Private Sub mnuAccountCategory_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAccountCategory.Click PageID = 15 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_AccountCategory_Master.Show() End Sub Private Sub mnuChartOfAccount_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuChartOfAccount.Click PageID = 16 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_ChartofAccount_Master.Show() End Sub Private Sub mnuVoucherCreation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuVoucherCreation.Click PageID = 17 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_VoucherCreate.Show() End Sub Private Sub mnuChangePassword_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuChangePassword.Click frmChangePassword.Show() End Sub Private Sub mnuGeneralLedger_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuGeneralLedger.Click PageID = 18 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frm As New frm_ledger_new frm.MdiParent = Me frm.WindowState = FormWindowState.Maximized frm.Show() 'frm_GeneralLedger.Show() End Sub Private Sub mnuTrialBalance_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTrialBalance.Click PageID = 19 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_MasterFileSchedule.Show() End Sub Private Sub mnuUOM_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuUOM.Click PageID = 1 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intUOMID", "tblUOM", "Unit Of Measurement Definition") frmChild.Show() End Sub Private Sub mnuTaxDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTaxDefinition.Click PageID = 2 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intTaxID", "tblTaxType", "Tax Type Definition") frmChild.Show() End Sub Private Sub mnuCityDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCityDefinition.Click PageID = 3 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frmCityDefinitionMaster.Show() End Sub Private Sub mnuRegionDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuRegionDefinition.Click PageID = 4 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intRegionID", "tblRegion", "Region Definition") frmChild.Show() End Sub Private Sub mnuGradeDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuGradeDefinition.Click PageID = 5 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intGradeID", "tblGrade", "Grade Definition") frmChild.Show() End Sub Private Sub mnuColorDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuColorDefinition.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.ProductDefinition) If Code.LoginUserID <> "1" Then If Not sec.CanAccess Then Return End If Dim f As New frm_ColorDefinitionMaster f.MdiParent = Me f.Show() End Sub Private Sub mnuPartyDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPartyDefinition.Click Dim subroutine_show As Action = Sub() Dim f As New frm_Party_Master f.MdiParent = Me f.Show() End Sub Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.PartyDefinition) If Code.LoginUserID <> "1" Then If sec.CanAccess Then subroutine_show() Else subroutine_show() End If End Sub Private Sub mnuDayEndReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDayEndReport.Click PageID = 20 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_DayEndReport.Show() End Sub Private Sub mnuProductCategory_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuProductCategory.Click PageID = 8 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intCategoryID", "tblCategory", "Category Definition") frmChild.Show() End Sub 'these menus are not to be shown with others r running the code Sub hidemenus_stitchingUnit() 'SaleComparisonReportToolStripMenuItem Dim d As ToolStripItem() = New ToolStripItem() { SaleComparisonReportToolStripMenuItem, SaleReportToolStripMenuItem, FBRToolStripMenuItem, PackagesMallSalesToolStripMenuItem, mnuAgeingReport, NewComparisonReportToolStripMenuItem, AgeingReport2ToolStripMenuItem, SalesDataToolStripMenuItem, SalesDataToolStripMenuItem, NewScanToolStripMenuItem, mnuPartyPayments, mnuSalesAdjustment, mnuDefinition, mnuFinance, TaxTestMenuToolStripMenuItem, mnuSalesOrderList, SaleReturn2ToolStripMenuItem, ServerSyncToolStripMenuItem, InferTaxRatesToolStripMenuItem, AllPartyStocksToolStripMenuItem, StockInShelfToolStripMenuItem, TransferStockToolStripMenuItem, CheckStockToolStripMenuItem, PartyStocksToolStripMenuItem, StockSnapshotsToolStripMenuItem, TransferOrdersToolStripMenuItem, JobIDListToolStripMenuItem, AllShopsStoreInDataToolStripMenuItem, DispatchToolStripMenuItem, ReportsToolStripMenuItem1, mnuWarehouse, PartyPaymentsEShopToolStripMenuItem, ts_PartyList, ts_ProductList, ts_SalesOrders, ts_PartyDailySaleReport, ts_PartyWaiseDailySaleReport, tsProductWise_Daily_Sales, ts_ShopCustomers, ts_AgeingReport} 'StockToolStripMenuItem For i As Integer = 0 To d.Length - 1 d(i).Visible = False Next 'ToolStrip1.Visible = False ToolStrip1.Font = New System.Drawing.Font("Segoe UI", 15.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) End Sub Sub hidemenus_azam() Dim d As ToolStripMenuItem() = New ToolStripMenuItem() {PackagesMallSalesToolStripMenuItem, mnuAgeingReport, NewComparisonReportToolStripMenuItem, AgeingReport2ToolStripMenuItem, SalesDataToolStripMenuItem, SalesDataToolStripMenuItem, NewScanToolStripMenuItem, mnuPartyPayments, mnuSalesAdjustment, mnuDefinition, mnuFinance, TaxTestMenuToolStripMenuItem, mnuSalesOrderList, SaleReturn2ToolStripMenuItem, ServerSyncToolStripMenuItem, InferTaxRatesToolStripMenuItem, AllPartyStocksToolStripMenuItem, StockToolStripMenuItem, SaleComparisonReportToolStripMenuItem, SaleReportToolStripMenuItem, FBRToolStripMenuItem} 'StockToolStripMenuItem For i As Integer = 0 To d.Length - 1 d(i).Visible = False Next ToolStrip1.Visible = False End Sub Sub hideMenus() If Code.UserID <> "1" Then 'hidemenus2 is for some deployments 'hidemenus_azam() 'comment this if not a special release to hide everything. 'hidemenus_stitchingUnit() End If Dim menustohide() As ToolStripMenuItem = { DatabasesToolStripMenuItem } 'add this in above aray later , ImportSingleSuiteRatesToolStripMenuItem ', ImportSingleSuiteRatesToolStripMenuItem ''ImportDataToolStripMenuItem, << removed from above array cuz this is needed now. For i As Integer = 0 To menustohide.Length - 1 menustohide(i).Visible = False Next 'SaleReturn2ToolStripMenuItem, ', ImportColorNamesToolStripMenuItem End Sub Sub log_version_() Try Dim version As String = Assembly.GetExecutingAssembly().GetName().Version.ToString() Dim user As String = Code.LoginUserID comfun.exeQuery_params( "insert into tblLoginLog ([user],[version],dt) values(@user,@version,getdate())", New String() {"user", user, "version", version}) ', "dt", DateTime.Now}) If does_login_sp_exists() Then comfun.exeStoredProcedure_params("spLoginRecord", New String() {"id", user, "appversion", version, "userdt", DateTime.Now}) End If Catch ex As Exception 'dont know why this wud happen End Try End Sub Function does_login_sp_exists() As Boolean Dim spqry As String = "SELECT 1 FROM sysobjects WHERE type = 'P' and name = 'spLoginRecord'" Dim dt As DataTable = comfun.getDataTable(spqry) If dt.Rows.Count > 0 AndAlso dt.Rows(0)(0) = 1 Then Return True Else Return False End If End Function Dim m_pivotrights As New Dictionary(Of String, Integer) Sub get_pivot_rights() m_pivotrights.Clear() Dim qry As String = "select * from tblpivotrights where userid=" & Code.UserID Dim dt As DataTable = comfun.getDataTable(qry) For i As Integer = 0 To dt.Rows.Count - 1 Dim allowed As Integer = 0 If dt.Rows(i)("allowed") IsNot DBNull.Value AndAlso dt.Rows(i)("allowed") = "1" Then allowed = 1 End If m_pivotrights.Add(dt.Rows(i)("pivotid"), allowed) Next End Sub Sub controldisplay() 'this ReturnToWarehouse is for Tayyab's return to warehouse stock-in for warehouse 'they also dont need to look at a lot of menus that are there in ERP 'RCGSPECIAL is one time only for rcg because after their 'pc change their daily report pivot was crashing, so gave this seperate exe 'which has nothing but the pivots for them to view daily sales. #If RCGSPECIAL Then Dim cols() As ToolStripMenuItem = {mnuDefinition, mnuFinance, mnuSales, mnuWarehouse, DispatchToolStripMenuItem, ProductionToolStripMenuItem, TaxTestMenuToolStripMenuItem, mnuUtilities} For i As Integer = 0 To cols.Length - 1 cols(i).Visible = False Next ToolStrip1.Visible = False #End If #If StitchingZAINWALKIN Then 'this is anything to enter zain/walkin/others Dim str() As ToolStripItem = {mnuUtilities,mnuSalesOfficersYearTargets,ToolStripMenuItem1,mnuSalesOrderList,SaleReturnToolStripMenuItem, SaleReturn2ToolStripMenuItem,mnuSalesAdjustment,mnuPartyPayments,SalesDeptScreensToolStripMenuItem, PartyPaymentsEShopToolStripMenuItem,SalesDataToolStripMenuItem,InferTaxRatesToolStripMenuItem, mnuCityWiseMonthlyComparision,mnuPartyWiseMonthlyComparision,mnuProductWiseMonthlyComparison, ReportsToolStripMenuItem,mnuDailySaleReport,mnuPartyWiseSaleSummary,mnuCityWiseSaleSummary, mnuAgeingReport,NewComparisonReportToolStripMenuItem,AgeingReport2ToolStripMenuItem, FBRServiceTestToolStripMenuItem,FBRNotesSubmissionToolStripMenuItem,mnuWarehouse,DispatchToolStripMenuItem, TaxTestMenuToolStripMenuItem,mnuFinance,mnuDefinition,ts_PartyList,ts_ProductList,ts_SalesOrders, ts_PartyDailySaleReport,ts_AgeingReport,ts_PartyWaiseDailySaleReport,tsProductWise_Daily_Sales, ToolStripSTOCKIN,ToolStripSTOCKOUT,StockInToolStripMenuItem,StockInShelfToolStripMenuItem, TransferStockToolStripMenuItem, ShopsPhysicalInventoryToolStripMenuItem,ManualStockTakingToolStripMenuItem, StitchingReceivablesToolStripMenuItem,RetailOutToolStripMenuItem, RegaliaOutStichingUNITToolStripMenuItem, StockToolStripMenuItem } For i As Integer = 0 To str.Length - 1 str(i).Visible = False Next #End If #If StitchingMain Then 'this is not supposed to have POS screen to make order 'to prevent atif from making order in Main exe, which is only used to do Stock IN/OUT Dim str() As ToolStripItem = {mnuUtilities, NewScanToolStripMenuItem, mnuSalesOfficersYearTargets,ToolStripMenuItem1,mnuSalesOrderList,SaleReturnToolStripMenuItem, SaleReturn2ToolStripMenuItem,mnuSalesAdjustment,mnuPartyPayments,SalesDeptScreensToolStripMenuItem, PartyPaymentsEShopToolStripMenuItem,SalesDataToolStripMenuItem,InferTaxRatesToolStripMenuItem, mnuCityWiseMonthlyComparision,mnuPartyWiseMonthlyComparision,mnuProductWiseMonthlyComparison, ReportsToolStripMenuItem,mnuDailySaleReport,mnuPartyWiseSaleSummary,mnuCityWiseSaleSummary, mnuAgeingReport,NewComparisonReportToolStripMenuItem,AgeingReport2ToolStripMenuItem, FBRServiceTestToolStripMenuItem,FBRNotesSubmissionToolStripMenuItem,mnuWarehouse,DispatchToolStripMenuItem, TaxTestMenuToolStripMenuItem,mnuFinance,mnuDefinition,ts_PartyList,ts_ProductList,ts_SalesOrders, ts_PartyDailySaleReport,ts_AgeingReport,ts_PartyWaiseDailySaleReport,tsProductWise_Daily_Sales, PartyStocksToolStripMenuItem,StockSnapshotsToolStripMenuItem,RetailOutToolStripMenuItem,RegaliaOutStichingUNITToolStripMenuItem, AllShopsStoreInDataToolStripMenuItem,ShopsPhysicalInventoryToolStripMenuItem, ManualStockTakingToolStripMenuItem } For i As Integer = 0 To str.Length - 1 str(i).Visible = False Next #End If #If ReturnToWarehouse Then TransferStockToolStripMenuItem.Visible = False AllShopsStoreInDataToolStripMenuItem.Visible = False JobIDTrackingToolStripMenuItem.Visible = False mnuDefinition.Visible = False mnuFinance.Visible = False mnuWarehouse.Visible = False 'mnuPurchase.Visible = False TaxTestMenuToolStripMenuItem.Visible = False 'ReportsToolStripMenuItem1.Visible = False mnuUtilities.Visible = False DispatchToolStripMenuItem.Visible = False ToolStrip1.Visible = False mnuSalesOrderList.Visible = False SaleReturnToolStripMenuItem.Visible = False SaleReturn2ToolStripMenuItem.Visible = False mnuSalesAdjustment.Visible = False mnuPartyPayments.Visible = False PartyPaymentsEShopToolStripMenuItem.Visible = False SHPDailyToolStripMenuItem.Visible = False PartialPaymentDetailsSHPToolStripMenuItem.Visible = False Dim str() As ToolStripItem = {PartialPaymentDetailsSHPToolStripMenuItem, ComparisonReportsToolStripMenuItem, mnuCityWiseMonthlyComparision, mnuSalesOfficersYearTargets, ToolStripMenuItem1, mnuPartyWiseMonthlyComparision, mnuProductWiseMonthlyComparison, ReportsToolStripMenuItem, mnuDailySaleReport, mnuPartyWiseSaleSummary, mnuCityWiseSaleSummary, mnuAgeingReport, NewComparisonReportToolStripMenuItem, ToolStripSeparator11, ToolStripSeparator12, AgeingReport2ToolStripMenuItem, InferTaxRatesToolStripMenuItem,PartyStocksToolStripMenuItem, SalesDataToolStripMenuItem,PivotLayoutPaymentsToolStripMenuItem,PivotLayoutNishatToolStripMenuItem, PivotCustomersDataToolStripMenuItem,StockSnapshotsToolStripMenuItem, RetailOutToolStripMenuItem,RegaliaOutStichingUNITToolStripMenuItem, SalesDeptScreensToolStripMenuItem, PackagesMallSalesToolStripMenuItem,FBRServiceTestToolStripMenuItem, FBRNotesSubmissionToolStripMenuItem,ReportsToolStripMenuItem1, StockInShelfToolStripMenuItem, JobIDListToolStripMenuItem}', ' PackagesMallSalesToolStripMenuItem} For i As Integer = 0 To str.Length - 1 str(i).Visible = False Next #End If #If SHOP Then AllShopsStoreInDataToolStripMenuItem.Visible = False JobIDTrackingToolStripMenuItem.Visible = False mnuDefinition.Visible = False mnuFinance.Visible = False mnuWarehouse.Visible = False 'mnuPurchase.Visible = False TaxTestMenuToolStripMenuItem.Visible = False 'ReportsToolStripMenuItem1.Visible = False mnuUtilities.Visible = False DispatchToolStripMenuItem.Visible = False ToolStrip1.Visible = False mnuSalesOrderList.Visible = False SaleReturnToolStripMenuItem.Visible = False SaleReturn2ToolStripMenuItem.Visible = False mnuSalesAdjustment.Visible = False mnuPartyPayments.Visible = False PartyPaymentsEShopToolStripMenuItem.Visible = False SHPDailyToolStripMenuItem.Visible = False PartialPaymentDetailsSHPToolStripMenuItem.Visible = False Dim str() As ToolStripItem = {PartialPaymentDetailsSHPToolStripMenuItem, mnuSalesOfficersYearTargets, ToolStripMenuItem1, mnuAgeingReport, NewComparisonReportToolStripMenuItem, ToolStripSeparator11, AgeingReport2ToolStripMenuItem, InferTaxRatesToolStripMenuItem, PartyStocksToolStripMenuItem, SalesDataToolStripMenuItem, PivotLayoutPaymentsToolStripMenuItem, PivotLayoutNishatToolStripMenuItem, PivotCustomersDataToolStripMenuItem, StockSnapshotsToolStripMenuItem, RetailOutToolStripMenuItem, RegaliaOutStichingUNITToolStripMenuItem, SalesDeptScreensToolStripMenuItem, ShopsPhysicalInventoryToolStripMenuItem, StitchingReceivablesToolStripMenuItem, ProductionToolStripMenuItem} ' PackagesMallSalesToolStripMenuItem} For i As Integer = 0 To str.Length - 1 str(i).Visible = False Next #Else 'StartingSaleOrderNumberToolStripMenuItem.Visible = False 'ServerSyncToolStripMenuItem.Visible = False #End If End Sub Sub testfunction() ' i wrote this function to assign guid & dates to all customers Dim dt As DataTable = comfun.getDataTable("select * from tblSaleOrderMainCustomer ") For i As Integer = 0 To dt.Rows.Count - 1 Dim updatequery As String = String.Format("update tblSaleOrderMainCustomer set uid='{0}',dtUpdated=@dt where id={1}", Guid.NewGuid().ToString, dt.Rows(i)("id")) Dim str() As Object = {"dt", DateTime.Now.ToString} comfun.exeQuery_params(updatequery, str) Next End Sub Function getmenu(dbname As String) As ToolStripMenuItem Dim a As New ToolStripMenuItem a.Tag = dbname a.Text = "Select DB '" & dbname & "'" AddHandler a.Click, AddressOf databasemenuclick Return a End Function Function getalldatabasenames() As String() Dim dt As DataTable = comfun.getDataTable("SELECT name FROM sys.databases order by name") Dim l As New List(Of String) For i As Integer = 0 To dt.Rows.Count - 1 l.Add(dt.Rows(i)("name")) Next Return l.ToArray End Function Sub see_if_dbmenus_to_be_made() If Code.GetConfigurationValue("dbmenus") <> "1" Then DatabasesToolStripMenuItem.Visible = False Else 'if "dbmenus" key in config is set to 1 then the key "databases" must also have a list if DBs 'Dim dbparts() As String = Code.GetConfigurationValue("databases").Split(",") Dim dbparts() As String = getalldatabasenames() For i As Integer = 0 To dbparts.Length - 1 DatabasesToolStripMenuItem.DropDownItems.Add(getmenu(dbparts(i))) Next End If End Sub Sub ShowUnSyncdOrders() 'this is a thread that checks for unsyncd orders repeatedly and if there is any 'it will prompt the user of it but wont block the input of the user in any way. 'it will show and disappear. Code.RunThread( Sub() Dim sales As String = "select count(*) from tblSaleOrderMain where sync=0" Dim returns As String = "select count(*) from tblSaleReturnMain where sync=0" 'temporary wait before this thread goes into while While True Dim db As pfdata.dbase = Nothing Dim dtSalesUnsyncd As DataTable = Nothing Dim dtReturnsUnsyncd As DataTable = Nothing Try db = New pfdata.dbase dtSalesUnsyncd = db.getdata(sales) dtReturnsUnsyncd = db.getdata(returns) db.close() Catch ex As Exception classes.logger.log("ShowUnSyncdOrders(): >> " & ex.ToString) 'wait a while before continuing to while iteration Thread.Sleep(10000) '10 sec delay Continue While End Try Dim salecount As Integer = 0 Dim returncount As Integer = 0 If dtSalesUnsyncd.Rows.Count > 0 Then salecount = dtSalesUnsyncd.Rows(0)(0).ToString End If If dtReturnsUnsyncd.Rows.Count > 0 Then returncount = dtReturnsUnsyncd.Rows(0)(0).ToString End If If salecount > 0 Or returncount > 0 Then Code.ShowGhostMessage(String.Format("Unsyncd:" & vbCrLf & " Sales: {0}, Returns: {1}", salecount, returncount)) 'Invoke( 'Sub() ' Try ' Code.ShowGhostMessage(String.Format("Unsyncd:" & vbCrLf & " Sales: {0}, Returns: {1}", ' salecount, returncount)) ' 'Dim f As New posmsg ' 'f.m_text = String.Format("Unsyncd:" & vbCrLf & " Sales: {0}, Returns: {1}", ' ' salecount, returncount) ' 'f.Show() ' Catch ex As Exception ' classes.logger.log("ShowUnSyncdOrders in INVOKE (thread will end after logging): >> " & ex.ToString) ' Return 'end thread ' End Try 'End Sub) End If 'Return Threading.Thread.Sleep(60000) '1 minute End While End Sub, ThreadPriority.BelowNormal) End Sub Sub scanningcodeColorData() Dim db As New pfdata.dbase Dim dt As DataTable = db.getdataCN("select v.strCode code,v.strDesc [name],c.intColorID id,c.fltWeight [weight] from tblcolor c join V_item v on v.intID=c.intColorID") 'read comments in ScanningCode to see why we set this data. classes.ScanningCode.ColorsTable = dt End Sub Private Sub MDI_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Code.mainForm = Me If Not classes.code.IsDeveloperSystem Then Me.WindowState = FormWindowState.Maximized End If 'Code.SetConnectionString() scanningcodeColorData() Try 'testfunction() 'Code.SendSMS("", "") 'StockInShelfToolStripMenuItem If Code.GetConfigurationValue("autoshelf") = "1" Then 'in defence and liberty shops where we dont have Store all stock 'is considered as Shelf-in stock and is done a auto shelf-in. 'Since Store quantity is effected by Shelf-in, hence in these shops 'we do Store-In which automatically puts it in shelf and store quantities 'become 0 which is the right thing to be done. ' In the following line I am hiding the Shelf-In menu because in these 'shops there wont be any use case in which Shelf-In functionality will be needed. StockInShelfToolStripMenuItem.Visible = False End If ' If Code.GetConfigurationValue("retailunit") = "1" Then Code.IsRetailUnit = True End If If Code.GetConfigurationValue("storeinssync") = "1" Then Code.Sync.SyncStoreInOrders() End If 'If Code.GetConfigurationValue("trfsync") = "1" Then ' Code.Sync.TransferSyncThread() 'End If If Code.GetConfigurationValue("shopSyncLoop") = "1" Then 'try to get most of the syncing items to this one 'place. Code.Sync.ShopSyncLOOP() End If If Code.GetConfigurationValue("syncsched") = "1" Then Code.Sync.StartSyncScheduler() End If If Code.GetConfigurationValue("syncstickers") = "1" Then Code.SyncStickers.Start() End If ' If Code.GetConfigurationValue("stitchingunitsync") = "1" Then Code.Sync.StitchingSync() End If If Code.GetConfigurationValue("colorsync") = "1" Then 'Code.RunThread( ' Sub() ' 'dont do this just yet, this is work in progress. ' frmSyncDataNewShop.SyncColors() ' End Sub) End If If Code.GetConfigurationValue("getsizers") = "1" Then Code.Sync.GetSizersAsync() End If If Code.GetConfigurationValue("shophistory") = "1" Then codeCurrentStock.takeLocalShopStockAsync() End If If Code.GetConfigurationValue("FBRreceipt") = "1" Then Code.CheckFBRServiceRepeatedly() End If 'If Code.GetConfigurationValue("retailunit") Then 'End If see_if_dbmenus_to_be_made() get_pivot_rights() log_version_() hookup.func_OpeningBalance = AddressOf CommonFunctions.GetOpeningBalance hookup.ConnectionString = DatabaseConnection.fConnectionString hookup.UseAsLIB = True hookup.userid = Integer.Parse(Code.LoginUserID) Dim cf_ As New CommonFunctions hookup.GetDataTable = AddressOf cf_.getDataTable hookup.JustExecute = AddressOf cf_.exeQuery_executescalar hookup.refreshPivotreportMenu = AddressOf addAllPivotsToMenus If Code.LoginUserID <> "1" Then ImportDataToolStripMenuItem.Visible = False TaxTestMenuToolStripMenuItem.Visible = False mnuUtilities.Visible = False 'NewScanToolStripMenuItem.Visible = False End If addAllPivotsToMenus() If Not Debugger.IsAttached Then hideMenus() End If #If SUNIT Then hidemenus_stitchingUnit() launchStockInforStitching() #End If #If AZAM Then hidemenus_azam() #End If 'Me.Text += " - " & comfun.getSingleValue("select strDescription from tblFinancialYear WHERE intFinancialYearID=" & Code.LoginFinancialYearID) Text = "Pasha Fabrics - " & comfun.getSingleValue( "select strDescription from tblFinancialYear WHERE intFinancialYearID=" & Code.LoginFinancialYearID) & " - Version " + Assembly.GetExecutingAssembly().GetName().Version.ToString() + " Sales Order Changes - DB: " & cf_.m_connection.Database 'OLD line: Code.LoginFinancialYearID) & " - Version " + CommonProperties.Version + " Sales Order Changes" 'OpenSaleOrderForm() 'If Code.LoginUserID = 1 Or Code.LoginUserID = 21 Then If Code.CanViewPage(Numbers.SecurityFunctions.SHPPartialPaymentsReport) Then PartialPaymentDetailsSHPToolStripMenuItem.Visible = True Else PartialPaymentDetailsSHPToolStripMenuItem.Visible = False End If controldisplay() ' #If ERPFOREVERYONE Then 'majority of people in pasha alfalah office dont need to see these 4 menus: 'StartingSaleOrderNumberToolStripMenuItem Dim s() As ToolStripMenuItem = {ServerSyncToolStripMenuItem, FBRToolStripMenuItem, StockInToolStripMenuItem, StockInShelfToolStripMenuItem, TransferStockToolStripMenuItem, CheckStockToolStripMenuItem, CheckStockTrailToolStripMenuItem, JobIDTrackingToolStripMenuItem, RetailOutToolStripMenuItem, RegaliaOutStichingUNITToolStripMenuItem, ManualStockTakingToolStripMenuItem, NewScanToolStripMenuItem, FBRToolStripMenuItem, FBRToolStripMenuItem, StitchingReceivablesToolStripMenuItem} ToolStripSTOCKIN.Visible = False : ToolStripSTOCKOUT.Visible = False For i__ As Integer = 0 To s.Length - 1 s(i__).Visible = False Next 'MessageBox.Show("ERPFOREVERYONE") #End If Catch ex As Exception MessageBox.Show(ex.Message.ToString(), "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try #If SHOP Then Dim f As New frmNEWPOS f.MdiParent = Me f.Show() 'ShowUnSyncdOrders() #End If End Sub Sub launchStockInforStitching() Dim f As New frmStockIn f.MdiParent = Me 'f.rbStockIn.Checked = True f.OperationType = frmStockIn.StockInType.StoreIn f.Show() End Sub Private Sub mnuFabricDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFabricDefinition.Click PageID = 9 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim f As New frm_FabricDefinitionMaster f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized 'frm_FabricDefinitionMaster.Show() End Sub Private Sub mnuDesignDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDesignDefinition.Click PageID = 10 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_DesignDefinitionMaster.Show() End Sub Private Sub mnuPackingDefinition_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPackingDefinition.Click PageID = 11 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_PackingMaster.Create_Definition_MasterForm("intPackingID", "tblPacking", "Packing Definition") End Sub Sub OpenSaleOrderForm() PageID = 23 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_SaleOrderMaster.Show() End Sub Private Sub mnuSalesOrderList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSalesOrderList.Click OpenSaleOrderForm() End Sub Private Sub mnuPartyType_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPartyType.Click Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intPartyTypeID", "tblPartyType", "Party Type Definition") frmChild.Show() End Sub Private Sub ts_PartyList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ts_PartyList.Click PageID = 7 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If 'frm_Party_Master.Show() Dim f As New frm_Party_Master f.MdiParent = Me f.Show() End Sub Private Sub ts_ProductList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ts_ProductList.Click PageID = 6 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_ColorDefinitionMaster.Show() End Sub Private Sub ts_SalesOrders_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ts_SalesOrders.Click 'this check is not needed for UAEBIZ config value If Code.GetConfigurationValue("UAEBIZ") <> "1" AndAlso Code.FinancialYearFromDate(Code.GetServerDateTime()) <> Code.LoginFinancialYearID Then MessageBox.Show("Not allowed.", "EROR", MessageBoxButtons.OK, MessageBoxIcon.Error) classes.code.SendSMS_RepeatTillSent_Async( $"{DateTime.Now.ToString( "dd/MM/yyyy hh:mm:ss")} >> attempt to create gatepass in prev fin year denied. From machine {Environment.MachineName}. Code.LoginFinancialYearID is {Code.LoginFinancialYearID} .", classes.code.Abubakar_SMS_Number) Return End If If Not Code.CanViewPage(Numbers.SecurityFunctions.CreateGatePass) Then Return End If 'PageID = 23 'If Code.LoginUserID <> "1" Then ' If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub 'End If 'frm_SaleForm.UpdateRec(0) Dim f As New frm_SaleForm f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub mnuMarketingOfficers_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) PageID = 22 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_EmployeeDefinitionMaster.Show() End Sub Private Sub mnuDesignation_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDesignation.Click PageID = 12 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intDesignationID", "tblDesignation", "Designation Definition") frmChild.Show() End Sub Private Sub mnuDepartment_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDepartment.Click PageID = 13 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If Dim frmChild As New frm_Definition_Master frmChild.MdiParent = Me frmChild.Create_Definition_MasterForm("intDepartmentID", "tblDepartment", "Department Definition") frmChild.Show() End Sub Private Sub CreateNewUserToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CreateNewUserToolStripMenuItem.Click PageID = 24 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frmNewUser.Show() End Sub Private Sub AssignRightsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AssignRightsToolStripMenuItem1.Click PageID = 25 If Code.LoginUserID <> "1" Then Return 'If Code.CanViewPage(Val( Code.LoginUserID), PageID) = False Then Exit Sub End If frmPagesRights.Show() End Sub Private Sub mnuSalesOfficersYearTargets_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSalesOfficersYearTargets.Click PageID = 26 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frmSalesman_Targets.Show() End Sub Private Sub SaleReturnToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaleReturnToolStripMenuItem.Click PageID = 27 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_SaleReturnMaster.Show() End Sub Private Sub mnuPartyPayments_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPartyPayments.Click Dim subroutine_show As Action = Sub() Dim f As New frmPartyPaymentsMaster f.MdiParent = Me f.Show() End Sub If Code.LoginUserID <> "1" Then 'If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.PartyPayments) If sec.CanAccess Then subroutine_show() End If Else subroutine_show() End If End Sub Private Sub mnuProductMonthlyComparision_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) PageID = 30 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_ProductMonthlyComparision.Show() End Sub Private Sub mnuAgeingReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAgeingReport.Click PageID = 31 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frmPartyAging.Show() End Sub Private Sub ts_Dashboard_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ts_PartyDailySaleReport.Click Dim f As New frmDatesOnYearsComparison f.MdiParent = Me f.Show() 'PageID = 32 'If Code.LoginUserID <> "1" Then ' If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub 'End If 'frmPartyWiseSaleSummary.Show() End Sub Private Sub mnuVoucherPostUnPost_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuVoucherPostUnPost.Click frm_VoucherPostUnpost_Master.Show() End Sub Private Sub mnuDatabaseBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDatabaseBackup.Click frm_DatabaseBackup.Show() End Sub Private Sub mnuSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSettings.Click PageID = 21 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frmAccountSettings.Show() End Sub Private Sub mnuSalesAdjustment_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSalesAdjustment.Click Dim subroutine_show As Action = Sub() Dim f As New frmSalesAdjustmentMaster f.MdiParent = Me f.Show() End Sub If Code.LoginUserID <> "1" Then 'If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.PartyAdjustments) If sec.CanAccess Then subroutine_show() End If Else subroutine_show() End If End Sub Private Sub ts_ProductWiseDailySale_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) frmProductWiseDailySalesReport.Show() End Sub Private Sub ts_AgeingReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ts_AgeingReport.Click 'frmPartyAging.Show() Dim f As New frmNewAgeing f.MdiParent = Me f.Show() End Sub Private Sub mnuSalesTargets_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSalesTargets.Click frmSalesTargets.Show() End Sub Private Sub TaxToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TaxToolStripMenuItem.Click Dim f As New frmTaxBase f.MdiParent = Me f.Show() End Sub Private Sub TaxApplicableToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TaxApplicableToolStripMenuItem.Click 'Dim f As New frmTaxAssociation 'f.MdiParent = Me 'f.Show() Dim f2 As New frmtaxassociation2 f2.MdiParent = Me f2.Show() End Sub Private Sub RatesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RatesToolStripMenuItem.Click Dim f As New frmRates f.MdiParent = Me f.Show() End Sub Private Sub ImportDataToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ImportDataToolStripMenuItem.Click Dim f As New ProductPriceUpdate f.MdiParent = Me f.Show() End Sub Private Sub SaleReturn2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaleReturn2ToolStripMenuItem.Click Dim f As New frm_SaleReturnMaster f.NewReturns = True f.MdiParent = Me f.Show() End Sub Private Sub ToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem1.Click Dim s As New frmSaleSearchMaster2 s.MdiParent = Me s.Show() End Sub Private Sub ShopToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShopToolStripMenuItem.Click Dim f As New frmInventoryCheck1 f.MdiParent = Me f.Show() End Sub Dim m_listdynamicmenus As New List(Of ToolStripItem) Function getallowedmenus() As Dictionary(Of Integer, Integer) Dim rights As New Dictionary(Of Integer, Integer) Dim dt As DataTable = comfun.getDataTable("select * from tblPivotRights where userid=" & Code.UserID) For i As Integer = 0 To dt.Rows.Count - 1 If dt.Rows(i)("allowed").ToString = 1 Then rights.Add(dt.Rows(i)("pivotid").ToString, dt.Rows(i)("allowed").ToString) End If Next Return rights End Function Function get_query_menus() As String 'NOTE 'if changing this function, change get_query_menus_ID as well Return "select p.* , g.name gname from tblPivots p, tblPivotGroups g" & _ " where g.id = p.groupid order by g.id" End Function 'pass id of the report so only its datarow can be fetched Function get_query_menus_ID(id As Integer) As String 'NOTE 'if changing this function, change get_query_menus() as well Return "select p.* , g.name gname from tblPivots p, tblPivotGroups g" & _ " where p.id=" & id & " and g.id = p.groupid order by g.id" End Function Sub addAllPivotsToMenus() 'we have a seperate window to show pivots and launch them, for admin. 'there is a config key called "ShowMenusInForAdminAlso", which can show menus 'for admin user also. This is done for shops because there the pivots are few 'and can be shown as menu links. If Code.LoginUserID = Numbers.Users.USER_ADMIN AndAlso Code.GetConfigurationValue("ShowMenusInForAdminAlso") <> "1" Then Return 'main menu is ReportsToolStripMenuItem1 If m_listdynamicmenus.Count > 0 Then 'first remove all menus For i As Integer = 0 To m_listdynamicmenus.Count - 1 If m_listdynamicmenus(i).Tag IsNot Nothing Then RemoveHandler m_listdynamicmenus(i).Click, AddressOf menu_item_click End If 'AddHandler m_listdynamicmenus(i).Click, AddressOf menu_item_click ReportsToolStripMenuItem1.DropDownItems.Remove(m_listdynamicmenus(i)) Next m_listdynamicmenus.Clear() End If Dim dt As DataTable = comfun.getDataTable(get_query_menus()) Dim rights As Dictionary(Of Integer, Integer) = getallowedmenus() Dim gname As String = "" For i As Integer = 0 To dt.Rows.Count - 1 'If Not m_pivotrights.ContainsKey(dt.Rows(i)("id")) OrElse m_pivotrights(dt.Rows(i)("id")) = 0 Then ' 'no rights to this menu/report ' Return 'End If Dim menuitem As New ToolStripMenuItem If Code.LoginUserID <> Numbers.Users.USER_ADMIN Then If Not rights.ContainsKey(dt.Rows(i)("id")) Then Continue For End If If gname <> dt.Rows(i)("gname") Then 'dont have to add the click event for this 'this is the heading menuitem.Font = New Font(Me.Font.FontFamily.Name, Me.Font.Size, FontStyle.Bold) menuitem.BackColor = Color.LightGray gname = dt.Rows(i)("gname") menuitem.Text = gname.Trim i -= 1 Else menuitem.Text = " " & dt.Rows(i)("title").ToString.Trim menuitem.Tag = dt.Rows(i) AddHandler menuitem.Click, AddressOf menu_item_click End If ReportsToolStripMenuItem1.DropDownItems.Add(menuitem) m_listdynamicmenus.Add(menuitem) Next End Sub ''' ''' this is the menu create for a database stored report layout ''' ''' ''' ''' Private Sub menu_item_click(sender As Object, e As EventArgs) Dim f As New frmPivotMain f.MdiParent = Me f.m_loadedfrom_db = True f.userID = Code.LoginUserID f.dbrow = CType(CType(sender, ToolStripMenuItem).Tag, DataRow) f.reporttype = f.dbrow("reportid") f.Text += " - " & f.dbrow("title").ToString f.Show() End Sub Private Sub PivotReportToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles PivotReportToolStripMenuItem1.Click OpenPivotScreen(report_type.sales_order) End Sub Private Sub PivotLayoutPaymentsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PivotLayoutPaymentsToolStripMenuItem.Click OpenPivotScreen(report_type.payments) End Sub Private Sub PartyPaymentsEShopToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PartyPaymentsEShopToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.CourrierPayments) If Code.LoginUserID <> "1" Then If Not sec.CanAccess Then Return End If Dim f As New frmPartyPayments_ESP f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub mnuColorDefinition_OLD_Click(sender As Object, e As EventArgs) Handles mnuColorDefinition_OLD.Click PageID = 6 If Code.LoginUserID <> "1" Then If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub End If frm_ColorDefinitionMaster_OLD.Show() End Sub Private Sub ImportUrduPartyDataToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ImportUrduPartyDataToolStripMenuItem.Click End Sub Private Sub NewScanToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewScanToolStripMenuItem.Click Dim f As New frmNEWPOS f.MdiParent = Me f.Show() 'If f.WindowState <> FormWindowState.Maximized Then ' f.WindowState = FormWindowState.Maximized 'End If 'f.WindowState = FormWindowState.Maximized End Sub Private Sub StockInToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StockInToolStripMenuItem.Click Dim f As New frmStockIn f.MdiParent = Me 'f.rbStockIn.Checked = True f.OperationType = frmStockIn.StockInType.StoreIn f.Show() End Sub Private Sub PartyBalanceToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PartyBalanceToolStripMenuItem.Click Dim f As New frm_Balance f.MdiParent = Me f.Show() End Sub Private Sub NewComparisonReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewComparisonReportToolStripMenuItem.Click Dim f As New frmDatesOnYearsComparison f.MdiParent = Me f.Show() End Sub Private Sub DatabasesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DatabasesToolStripMenuItem.Click End Sub Private Sub PivotRightsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PivotRightsToolStripMenuItem.Click Dim f As New frmPivotRights f.MdiParent = Me f.Show() End Sub Private Sub StockInShelfToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StockInShelfToolStripMenuItem.Click Dim f As New frmStockIn f.MdiParent = Me 'f.rbShelfIn.Checked = True f.OperationType = frmStockIn.StockInType.ShelfIn f.Show() End Sub Private Sub ImportSingleSuiteRatesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ImportSingleSuiteRatesToolStripMenuItem.Click Dim f As New frmImportSingleSuitRates f.MdiParent = Me f.Show() End Sub Private Sub CheckStockToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CheckStockToolStripMenuItem.Click Dim f As New frmStockReport1 f.MdiParent = Me f.Show() End Sub Private Sub AgeingReport2ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AgeingReport2ToolStripMenuItem.Click Dim f As New frmNewAgeing f.MdiParent = Me f.Show() End Sub Private Sub TEMPCodeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TEMPCodeToolStripMenuItem.Click If MessageBox.Show("sure?", "confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then End If End Sub Private Sub InferTaxRatesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles InferTaxRatesToolStripMenuItem.Click CommonFunctions.InferTaxRates = Not CommonFunctions.InferTaxRates InferTaxRatesToolStripMenuItem.Checked = Not InferTaxRatesToolStripMenuItem.Checked End Sub Private Sub ServerSyncToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ServerSyncToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.SyncServerWindow) If sec.CanAccess Then Dim f As New frmSyncDataNewShop f.MdiParent = Me f.Show() End If End Sub Private Sub StockSnapshotsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StockSnapshotsToolStripMenuItem.Click Dim f As New frmViewStockSnapShots f.MdiParent = Me f.Show() End Sub Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ts_PartyWaiseDailySaleReport.Click Dim f As New frmPartyWiseDaily2 f.MdiParent = Me f.Show() End Sub Sub openPivotFromID(pivot_report_id As String, foremail As Boolean, openxl As Boolean) Dim dt As DataTable = comfun.getDataTable(get_query_menus_ID(pivot_report_id)) If dt.Rows.Count < 1 Then classes.logger.log(String.Format("openPivotFromID: Cant find report for id {0}", pivot_report_id)) 'MessageBox.Show("Cant find report", "Report", MessageBoxButtons.OK, MessageBoxIcon.Error) Return End If Dim f As New frmPivotMain AddHandler f.EmailSent, AddressOf emailsent 'f.MdiParent = Me f.userID = Code.LoginUserID f.m_openxl = openxl If openxl Then f.m_loadforTODAY = True End If f.m_loadedfrom_db = True If foremail Then 'hard coding for 191 which needs "from date" from db, should make it dynamic later If pivot_report_id <> 191 Then f.m_loadforTODAY = True End If f.m_for_email = True End If f.dbrow = dt.Rows(0) 'CType(CType(sender, ToolStripMenuItem).Tag, DataRow) f.dbrow("title") = f.dbrow("title").ToString.Trim f.reporttype = f.dbrow("reportid") f.Text += " - " & f.dbrow("title").ToString f.Show() 'f.Activate() End Sub Sub openProductWiseDailySale() openPivotFromID(Numbers.PivotReportIDs.ProductWiseDailySale, False, False) 'Dim dt As DataTable = comfun.getDataTable(get_query_menus_ID(30)) 'If dt.Rows.Count < 1 Then ' MessageBox.Show("Cant find report", "Report", MessageBoxButtons.OK, MessageBoxIcon.Error) ' Return 'End If 'Dim f As New frmPivotMain 'f.MdiParent = Me 'f.userID = Code.LoginUserID 'f.m_loadedfrom_db = True 'f.dbrow = dt.Rows(0) 'CType(CType(sender, ToolStripMenuItem).Tag, DataRow) 'f.reporttype = f.dbrow("reportid") 'f.Text += " - " & f.dbrow("title").ToString 'f.Show() End Sub Private Sub ToolStrip_ProductWise_Daily_Sales_Click(sender As Object, e As EventArgs) Handles tsProductWise_Daily_Sales.Click openProductWiseDailySale() End Sub Private Sub PartyStocksToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PartyStocksToolStripMenuItem.Click Dim f As New frmPartyStocks f.MdiParent = Me f.Show() End Sub 'Server=localhost\sqlexpress;Database=prod20;User ID=sa;PWD=111;Trusted_Connection=False;Packet Size=4096;Connection Timeout=200 Private Sub databasemenuclick(sender As Object, e As EventArgs) Code.OverrideDB(CType(sender, ToolStripMenuItem).Tag.ToString()) Dim info As New ProcessStartInfo info.Arguments = "/t" ' f is for test, auto login populate in login window info.FileName = AppDomain.CurrentDomain.BaseDirectory & System.AppDomain.CurrentDomain.FriendlyName Process.Start(info) Close() End Sub Private Sub launchShopTransactions() Dim f As New frmShopTransactions f.MdiParent = Me f.Show() End Sub Private Sub PackagesMallSalesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PackagesMallSalesToolStripMenuItem.Click launchShopTransactions() End Sub Private Sub AllPartyStocksToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AllPartyStocksToolStripMenuItem.Click Dim f As New frmPartyStocks f.MdiParent = Me f.Show() End Sub Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ts_ShopCustomers.Click If Not Code.CanViewPage(Numbers.SecurityFunctions.ViewAllCustomers) Then Return End If Dim f As New frmGeneric_POS_Search f.m_open_for_viewingonly = True f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub WarehouseToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WarehouseToolStripMenuItem.Click Dim c As New frmWHDataMain.codeWHMainHelper c.runtask_tofetchdata(DateTime.Now.AddDays(-45), DateTime.Now) 'the query starts executing here async. 'show the form meanwhile Dim f As New frmWHDataMain f.m_code_data_helper = c f.MdiParent = Me f.WindowState = FormWindowState.Maximized f.Show() End Sub Private Sub SaleOrderRightsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaleOrderRightsToolStripMenuItem.Click Dim f As New frmGrantUpdate f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub NIshatDispatchesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NIshatDispatchesToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.NishatDashboard) If Not sec.CanAccess Then MessageBox.Show("No Rights") Return End If Dim f As New frmNishatDispatches f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub PartyBalancesReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PartyBalancesReportToolStripMenuItem.Click Dim f As New frmPartyBalanceReports f.MdiParent = Me f.Show() End Sub Private Sub TransferStockToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TransferStockToolStripMenuItem.Click Dim f As New frmStockIn f.MdiParent = Me 'f.rbTransfer.Checked = True f.OperationType = frmStockIn.StockInType.TransferOut f.Show() End Sub Private Sub PivotLayoutNishatToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PivotLayoutNishatToolStripMenuItem.Click OpenPivotScreen(report_type.nishat) End Sub Private Sub DataCheckAccountsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DataCheckAccountsToolStripMenuItem.Click Dim f As New frmDataCheck f.MdiParent = Me f.Show() End Sub Private Sub ConvertExcelToCSVToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ConvertExcelToCSVToolStripMenuItem.Click Dim f As New frmconverttoCSV f.MdiParent = Me f.Show() End Sub Private Sub TransferOrdersToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TransferOrdersToolStripMenuItem.Click Dim f As New frmStockTransferOrders f.MdiParent = Me f.Show() End Sub Private Sub AbcdToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SHPDailyToolStripMenuItem.Click Dim f As New frmSHP_Daily f.MdiParent = Me f.Show() End Sub Private Sub PartialPaymentDetailsSHPToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PartialPaymentDetailsSHPToolStripMenuItem.Click If Not Code.CanViewPage(Numbers.SecurityFunctions.SHPPartialPaymentsReport) Then Return End If Dim f As New frmPartialPaymentsReport_SHP f.MdiParent = Me f.Show() End Sub Private Sub ActivePartiesListToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ActivePartiesListToolStripMenuItem.Click Dim f As New frmActivePartiesList1 f.MdiParent = Me f.Show() End Sub Private Sub TestFBRSubmissionToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TestFBRSubmissionToolStripMenuItem.Click 'Return Dim f As New frmSampleFBRSend f.MdiParent = Me f.Show() End Sub Private Sub ProductCompositionToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProductCompositionToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.RegaliaProductDefinitionScreenAccess) If Not sec.CanAccess Then Return Dim frm As New frmProductComposition frm.MdiParent = Me frm.Show() End Sub Private Sub CheckStockTrailToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CheckStockTrailToolStripMenuItem.Click Dim f As New frmStockTrail f.MdiParent = Me f.Show() End Sub Private Sub CompanyAccountsAddEditToolStripMenuItem_Click(sender As Object, e As EventArgs) If Not Code.CanViewPage(Numbers.SecurityFunctions.AccountsAddEdit) Then MessageBox.Show("No Rights", "", MessageBoxButtons.OK, MessageBoxIcon.Error) Return End If Dim f As New frmAccountsAddEdit f.MdiParent = Me f.WindowState = FormWindowState.Maximized f.Heading = "Journal Voucher" f.Show() End Sub Private Sub AccountsListToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles AccountsListToolStripMenuItem1.Click If Not Code.CanViewPage(Numbers.SecurityFunctions.AccountsList) Then MessageBox.Show("No Rights", "", MessageBoxButtons.OK, MessageBoxIcon.Error) Return End If Dim f As New frmAccountsList f.MdiParent = Me f.Show() End Sub Private Sub MonthlyFBRDataToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MonthlyFBRDataToolStripMenuItem.Click If Not Code.CanViewPage(Numbers.SecurityFunctions.FBRTAXDATA) Then MessageBox.Show("No Rights", "", MessageBoxButtons.OK, MessageBoxIcon.Error) Return End If Dim f As New frmFBRDataMonthly f.MdiParent = Me f.Show() End Sub Private Sub SalePriceVerificationToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SalePriceVerificationToolStripMenuItem.Click Dim f As New frmSaleErrorsAnalysis f.MdiParent = Me f.Show() End Sub Private Sub BulkOrdersStatusUpdateToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BulkOrdersStatusUpdateToolStripMenuItem.Click Dim f As New frmBulkOrderStatusUpdate f.MdiParent = Me f.Show() End Sub Private Sub FBRServiceTestToolStripMenuItem_Click(sender As Object, e As EventArgs) End Sub Private Sub MDI_Shown(sender As Object, e As EventArgs) Handles Me.Shown If m_email_pivot Then Dim reportIDsconfig As String = Code.GetConfigurationValue("emailreportIDs") Dim reportIDs As String() = reportIDsconfig.Split(",") Me.m_pivotIDs = reportIDs openPivotForEmail() 'For Index As Integer = 0 To reportIDs.Length - 1 ' Me.openPivotFromID(reportIDs(Index), True, False) 'm_openfor_xls) 'Next End If End Sub Sub openPivotForEmail() If m_index_pivot_id < m_pivotIDs.Length Then Dim reportIDtoSend As String = m_pivotIDs(m_index_pivot_id) m_index_pivot_id += 1 openPivotFromID(reportIDtoSend, True, False) Else Application.Exit() End If End Sub Private Sub emailsent() 'send next email if its there If Not InvokeRequired Then openPivotForEmail() Else Invoke( Sub() openPivotForEmail() End Sub) End If End Sub Private Sub SaleOrderHistoryToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaleOrderHistoryToolStripMenuItem.Click Dim f As New frmSaleOrderHistoryView f.MdiParent = Me f.Show() End Sub Private Sub ImportStatusesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ImportStatusesToolStripMenuItem.Click If Not Code.CanViewPage(Numbers.SecurityFunctions.ImportStatuses) Then MessageBox.Show("No Rights.") Return End If Dim f As New frmBulkOrderStatusUpdate f.MdiParent = Me f.Show() End Sub Private Sub PivotLayoutStocksToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PivotLayoutStocksToolStripMenuItem.Click OpenPivotScreen(report_type.stock) End Sub Sub OpenPivotScreen(pivottype As Pivoting.report_type) Dim f As New frmPivotMain f.MdiParent = Me f.reporttype = pivottype f.userID = Code.LoginUserID f.Show() 'f.WindowState = FormWindowState.Maximized End Sub Private Sub ViewRawOrdersToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ViewRawOrdersToolStripMenuItem.Click Dim f As New frmViewRawSaleOrder f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub CheckDiscountsGivenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CheckDiscountsGivenToolStripMenuItem.Click Dim f As New frmCheckDiscountsGiven f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub FBRNotesSubmissionToolStripMenuItem_Click(sender As Object, e As EventArgs) End Sub Private Sub JobIDListToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles JobIDListToolStripMenuItem.Click Dim f As New frmJobIDsList f.MdiParent = Me f.Show() End Sub Private Sub AllShopsStoreInDataToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AllShopsStoreInDataToolStripMenuItem.Click Dim f As New frmShopStoreInData f.MdiParent = Me f.Show() End Sub Private Sub PivotCustomersDataToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PivotCustomersDataToolStripMenuItem.Click OpenPivotScreen(report_type.customers) End Sub Private Sub StitchingUnitStockInToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StitchingUnitStockInToolStripMenuItem.Click Dim f As New frmStockIn f.MdiParent = Me 'f.rbStockIn.Checked = True f.OperationType = frmStockIn.StockInType.StoreIn f.Show() End Sub Private Sub CheckServerStatusToolStripMenuItem_Click(sender As Object, e As EventArgs) End Sub Private Sub JobIDTrackingToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles JobIDTrackingToolStripMenuItem.Click Dim f As New frmJObIDTracking f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub DataExportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DataExportToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.DataExport) If sec.CanAccess Then Dim f As New frmDataExport f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End If End Sub Private Sub ToolStripSTOCKIN_Click(sender As Object, e As EventArgs) Handles ToolStripSTOCKIN.Click Dim f As New frmStockIn f.MdiParent = Me 'f.rbStockIn.Checked = True f.OperationType = frmStockIn.StockInType.StoreIn f.Show() End Sub Private Sub ToolStripSTOCKOUT_Click(sender As Object, e As EventArgs) Handles ToolStripSTOCKOUT.Click Dim f As New frmStockIn f.MdiParent = Me 'f.rbStockIn.Checked = True f.OperationType = frmStockIn.StockInType.StitchingUnitStockOut f.Show() End Sub Private Sub RetailWarehouseSotckInOutToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RetailWarehouseSotckInOutToolStripMenuItem.Click Dim f As New frmRetailStockMaintenance f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub AzamStockImportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AzamStockImportToolStripMenuItem.Click Dim f As New frmAzamStock f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub CustomerSaleDataCompareToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CustomerSaleDataCompareToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.CustomerSaleComparison) If Not sec.CanAccess Then Return End If Dim f As New frmCustomerSaleComparison f.MdiParent = Me f.Show() End Sub Private Sub ShopStockTakeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShopStockTakeToolStripMenuItem.Click Dim f As New frmShopStockTake f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub ShowOrdersForTodayToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShowOrdersForTodayToolStripMenuItem.Click Dim f As New frmOrdersToday f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub TestNewWindowToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TestNewWindowToolStripMenuItem.Click Dim f As New frmSaleForm2 f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub FBRExcelDataCheckingToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FBRExcelDataCheckingToolStripMenuItem.Click Dim f As New frmFBRExcelDataCheck f.MdiParent = Me f.Show() End Sub Private Sub RetailOutToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RetailOutToolStripMenuItem.Click Dim f As New frmStockIn f.MdiParent = Me f.OperationType = frmStockIn.StockInType.RetailStockOut f.Show() End Sub Private Sub RegaliaOutStichingUNITToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RegaliaOutStichingUNITToolStripMenuItem.Click Dim f As New frmStockIn f.MdiParent = Me f.OperationType = frmStockIn.StockInType.RegaliaOutStitchingUnit f.Show() End Sub Private Sub GPSnapshotsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GPSnapshotsToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.GPSnapShots) If sec.CanAccess Then Dim f As New dllcode.FORMS.frmViewSaleOrdersSnapshots f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End If End Sub Private Sub ManualStockTakingToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ManualStockTakingToolStripMenuItem.Click Dim f As New frmStockTakingLocalFabrics f.MdiParent = Me f.Show() End Sub Private Sub ShopsPhysicalInventoryToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShopsPhysicalInventoryToolStripMenuItem.Click Dim f As New frmShopPhysicalInventoryView f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub StitchingReceivablesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles StitchingReceivablesToolStripMenuItem.Click Dim f As New frmStitchingReceivables f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub WeavingContractsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WeavingContractsToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.WeavingContract) If Not sec.CanAccess Then Return End If Dim f As New frmContractList f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub FabricLiftingToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FabricLiftingToolStripMenuItem.Click 'Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.ContractQtyLifted) Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.QuantityLiftedSummary) If Not sec.CanAccess Then Return End If Dim f As New frmQtyLiftedSummary 'frmFabricLifting f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub WarehouseDelayReasonsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WarehouseDelayReasonsToolStripMenuItem.Click 'this was made for tayyab to display non-dispatched orders reasons. Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.WarehouseDelayReasons) If Not sec.CanAccess Then Return End If Dim f As New frmWarehouseDelayReasons f.ShowDialog() End Sub Private Sub DraftOrdersToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DraftOrdersToolStripMenuItem.Click Dim f As New frmDraftSummary f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub ExportNishatGroupedDataToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportNishatGroupedDataToolStripMenuItem.Click Dim query As String = "select t.ProductCode,t.PackingType,packings.descrip PackingDesc,t.total Total,v.strDesc from ( select ProductCode,PackingType,round(sum(packingqty),2) total from tblNishatData n join tblWHNishatScan s on s.[key]=n.RollBail where substring(productcode,1,1)<>'g' and (s.dt>=@dt or s.pidate>=@dt) and s.dtout is null group by ProductCode,PackingType) t left join v_item v on v.strcode=ProductCode join tblNishatPackingCodes packings on packings.code=t.PackingType" 'old query: ' Dim query As String = "select t.*,v.strDesc from ( 'select ProductCode,round(sum(packingqty),2) total 'from tblNishatData n join tblWHNishatScan s on s.[key]=n.RollBail 'where substring(productcode,1,1)<>'g' and (s.dt>=@dt or s.pidate>=@dt) 'and s.dtout is null 'group by ProductCode) t left join v_item v on v.strcode=ProductCode '" Dim fromdate As String = Code.DB_KeyValuePair_GET("NishatDashboardStartDate") If fromdate = "" Then Return End If Dim dates() As String = fromdate.Split("/") Dim dt As DataTable = pfdata.dbase.getdataCN_STATIC(query, {"dt", $"{dates(2)}-{dates(1)}-{dates(0)}"}) exportDtToFile("ProductCode,PackingType,PackingDesc,Total,strDesc", dt, "Nishat_grouped_Data", New String() {"productcode", "PackingType", "PackingDesc", "total", "strdesc"}) MessageBox.Show("Saved") End Sub Sub exportColorUtilityFunction() Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.UtilityColorExport) If Not sec.CanAccess Then Return Dim query As String = " select v.strCode,v.strDesc,c.strDesc ColorName,c.fltRetailPrice from V_item v join tblColor c on c.intColorID=v.intID" Dim dt As DataTable = pfdata.dbase.getdataCN_STATIC(query, Nothing) exportDtToFile("strCode,strDesc,ColorName,RetailPrice", dt, "AllColors", New String() {"strcode", "strdesc", "colorname", "fltRetailprice"}) 'MessageBox.Show("Saved") End Sub Private Sub ExportColorsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ExportColorsToolStripMenuItem.Click exportColorUtilityFunction() End Sub Sub exportDtToFile(headerLine As String, dt As DataTable, preferredFilename As String, columns() As String) Dim sb As New StringBuilder sb.Append(headerLine & Environment.NewLine) For i As Integer = 0 To dt.Rows.Count - 1 Dim dr As DataRow = dt.Rows(i) Dim sbtemp As New StringBuilder For j As Integer = 0 To columns.Length - 1 sbtemp.Append($"{dr(columns(j)).ToString()},") Next sbtemp.Length -= 1 'sb.Append($"{dr("productcode").ToString()},{dr("total").ToString()},{dr("strdesc").ToString()}" & Environment.NewLine) sb.Append(sbtemp.ToString & Environment.NewLine) Next Dim o As New SaveFileDialog o.FileName = $"{preferredFilename}_{DateTime.Now.ToString("dd-MM-yyyy")}.csv" o.ShowDialog() File.WriteAllText(o.FileName, sb.ToString) End Sub Private Sub SavedPivotsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SavedPivotsToolStripMenuItem.Click Dim f As New frmAllSavedPivots f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub ShopsThresholdsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShopsThresholdsToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.ShopsThresholds) If Not sec.CanAccess Then Return End If Dim f As New frmShopStockThreshold f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub FBRManualInvoiceSubmissionToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FBRManualInvoiceSubmissionToolStripMenuItem.Click Dim f As New frmSampleFBRSend f.MdiParent = Me f.Show() End Sub Private Sub FBRNotesSubmissionToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles FBRNotesSubmissionToolStripMenuItem1.Click Dim f As New frmMakeNotesFBR f.MdiParent = Me f.Show() End Sub Private Sub CityWiseMonthlyComparisonToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CityWiseMonthlyComparisonToolStripMenuItem.Click frmCityWiseMonthlySaleComparision.Show() End Sub Private Sub PartyWiseMonthlyComparisonToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PartyWiseMonthlyComparisonToolStripMenuItem.Click 'Dim f As New frmPartyWiseMonthlySaleComparision 'f.MdiParent = Me 'f.groupingType = ReportGroupingType.PartyWiseMonthly 'f.Show() openPivotFromID(Numbers.PivotReportIDs.PartyWiseMonthlySalesReport, False, False) End Sub Private Sub ProductWiseMonthlyComparisonToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProductWiseMonthlyComparisonToolStripMenuItem.Click 'Dim f As New frmProductWiseMonthlySaleComparision 'f.MdiParent = Me 'f.Show() Dim f As New frmPartyWiseMonthlySaleComparision f.MdiParent = Me f.groupingType = ReportGroupingType.ProductWiseMonhtly f.Show() End Sub Private Sub SaleComparisonReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SaleComparisonReportToolStripMenuItem.Click End Sub Private Sub ProductWiseDailySaleReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ProductWiseDailySaleReportToolStripMenuItem.Click openProductWiseDailySale() 'PageID = 28 'If Code.LoginUserID <> "1" Then ' If Code.CanViewPage(Val(Code.LoginUserID), PageID) = False Then Exit Sub 'End If 'frmProductWiseDailySalesReport.Show() End Sub Private Sub PartyWiseDailySaleReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PartyWiseDailySaleReportToolStripMenuItem.Click 'frmPartyWiseSaleSummary.Show() << commented this now wont be shown anymore, its old slow incorrect. Dim f As New frmPartyWiseDaily2 f.MdiParent = Me f.Show() End Sub Private Sub CityWiseDailySaleReportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CityWiseDailySaleReportToolStripMenuItem.Click frmCityWiseSaleSummary.Show() End Sub Private Sub PriceCalculationsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PriceCalculationsToolStripMenuItem.Click Dim f As New frmPlayingwithTax f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub ShowDatabasesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ShowDatabasesToolStripMenuItem.Click Dim f As New frmdatabases f.MdiParent = Me f.Show() End Sub Private Sub PriceCalculationsToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles PriceCalculationsToolStripMenuItem1.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.PriceCalculations) If Not sec.CanAccess Then Return End If Dim f As New frmPlayingwithTax f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub AccountsSummaryToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AccountsSummaryToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.AccountsSummary) If Not sec.CanAccess Then Return End If Dim f As New frmAccountsSummary f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub PivotEmbroideryToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PivotEmbroideryToolStripMenuItem.Click OpenPivotScreen(report_type.embroidery) End Sub Private Sub ExportColorsToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ExportColorsToolStripMenuItem1.Click exportColorUtilityFunction() End Sub Private Sub ReapplyTaxesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ReapplyTaxesToolStripMenuItem.Click Dim sec As SecurityObject = Code.SecurityCanAccess(Numbers.SecurityFunctions.TaxReapply) If Not sec.CanAccess Then Return End If Dim f As New Pivoting.FORMS.frmRecalculationSaleOrders f.MdiParent = Me f.Show() f.WindowState = FormWindowState.Maximized End Sub Private Sub CheckServerStatusToolStripMenuItem_Click_1(sender As Object, e As EventArgs) Handles CheckServerStatusToolStripMenuItem.Click Dim f As New frmCheckServerStatus f.MdiParent = Me f.Show() End Sub End Class