From 960579b0b28b25b57f112f7f374efccb94bb7964 Mon Sep 17 00:00:00 2001 From: Bobbie Hodgetts Date: Fri, 10 May 2024 22:42:14 +0100 Subject: [PATCH] the reciving search box is oworking --- .../Account/PurchaseInvoiceLineSummary.cs | 91 +++++++++++++ .../Logic/Account/PurchaseInvoice.cs | 5 + .../Account/PurchaseInvoiceLineSummary.cs | 18 +++ src/bnhtrade.gui/Form1.Designer.cs | 122 +++++++++++++++--- src/bnhtrade.gui/Form1.cs | 17 ++- src/bnhtrade.gui/Form1.resx | 4 +- ...e.Model.Account.PurchaseInvoice.datasource | 10 ++ ...ount.PurchaseInvoiceLineSummary.datasource | 10 ++ src/bnhtrade.gui/bnhtrade.gui.csproj | 4 + 9 files changed, 260 insertions(+), 21 deletions(-) create mode 100644 src/bnhtrade.Core/Data/Database/Account/PurchaseInvoiceLineSummary.cs create mode 100644 src/bnhtrade.Core/Model/Account/PurchaseInvoiceLineSummary.cs create mode 100644 src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoice.datasource create mode 100644 src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoiceLineSummary.datasource diff --git a/src/bnhtrade.Core/Data/Database/Account/PurchaseInvoiceLineSummary.cs b/src/bnhtrade.Core/Data/Database/Account/PurchaseInvoiceLineSummary.cs new file mode 100644 index 0000000..4c17f9b --- /dev/null +++ b/src/bnhtrade.Core/Data/Database/Account/PurchaseInvoiceLineSummary.cs @@ -0,0 +1,91 @@ +using FikaAmazonAPI.AmazonSpApiSDK.Models.ProductFees; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static System.ComponentModel.Design.ObjectSelectorEditor; + +namespace bnhtrade.Core.Data.Database.Account +{ + internal class PurchaseInvoiceLineSummary : Connection + { + public List Read(DateTime periodTo, string lineStatus, List descriptionSearch) + { + var returnList = new List(); + var sqlBuilder = new bnhtrade.Core.Data.Database.SqlWhereBuilder(); + + //build sql query + string sql = @" + SELECT tblPurchase.PurchaseDate + ,tblPurchase.PurchaseID + ,tblPurchase.PurchaseNumber + ,tblPurchaseLine.PurchaseLineID + ,tblPurchaseLine.ItemDescription + ,tblPurchaseLineStatus.PurchaseLineStatus + FROM tblPurchase + INNER JOIN tblPurchaseLine ON tblPurchase.PurchaseID = tblPurchaseLine.PurchaseID + INNER JOIN tblPurchaseLineStatus ON tblPurchaseLine.PurchaseLineStatusID = tblPurchaseLineStatus.PurchaseLineStatusID + WHERE tblPurchase.PurchaseDate <= @purchaseDate + "; + + if (lineStatus != null) + { + sql = sql + " AND PurchaseLineStatus = @purchaseLineStatus "; + } + + // build the where statments + if (descriptionSearch.Any()) + { + sqlBuilder.LikeAnd("ItemDescription", descriptionSearch, "AND"); + } + + // append where string to the sql + if (sqlBuilder.IsSetSqlWhereString) + { + sql = sql + sqlBuilder.SqlWhereString; + } + + using (SqlConnection conn = new SqlConnection(SqlConnectionString)) + { + conn.Open(); + + using (SqlCommand cmd = new SqlCommand(sql, conn)) + { + cmd.Parameters.AddWithValue("@purchaseDate", periodTo); + if (descriptionSearch.Any()) + { + cmd.Parameters.AddWithValue("@purchaseLineStatus", lineStatus); + } + + sqlBuilder.AddParametersToSqlCommand(cmd); + + using (SqlDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + DateTime purchaseDate = DateTime.SpecifyKind(reader.GetDateTime(0), DateTimeKind.Utc); + int purchaseID = reader.GetInt32(1); + int purchaseNumber = reader.GetInt32(2); + int purchaseLineID = reader.GetInt32(3); + string itemDescription = reader.GetString(4); + string purchaseLineStatus = reader.GetString(5); + + var item = new Model.Account.PurchaseInvoiceLineSummary(); + item.PurchaseDate = purchaseDate; + item.PurchaseId = purchaseID; + item.PurchaseNumber = purchaseNumber; + item.PurchaseLineId = purchaseLineID; + item.ItemDescription = itemDescription; + item.LineStatus = purchaseLineStatus; + + returnList.Add(item); + } + } + } + } + return returnList; + } + } +} diff --git a/src/bnhtrade.Core/Logic/Account/PurchaseInvoice.cs b/src/bnhtrade.Core/Logic/Account/PurchaseInvoice.cs index 2f8e014..c9b1e13 100644 --- a/src/bnhtrade.Core/Logic/Account/PurchaseInvoice.cs +++ b/src/bnhtrade.Core/Logic/Account/PurchaseInvoice.cs @@ -12,5 +12,10 @@ namespace bnhtrade.Core.Logic.Account { return new Data.Database.Account.PurchaseInvoiceLineStatus().Read().Values.ToList(); } + + public List GetLineSummary(DateTime maxDate, string lineStatus, List wordSearchList) + { + return new Data.Database.Account.PurchaseInvoiceLineSummary().Read(maxDate,lineStatus, wordSearchList); + } } } diff --git a/src/bnhtrade.Core/Model/Account/PurchaseInvoiceLineSummary.cs b/src/bnhtrade.Core/Model/Account/PurchaseInvoiceLineSummary.cs new file mode 100644 index 0000000..b85fbf7 --- /dev/null +++ b/src/bnhtrade.Core/Model/Account/PurchaseInvoiceLineSummary.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace bnhtrade.Core.Model.Account +{ + public class PurchaseInvoiceLineSummary + { + public int PurchaseId { get; set; } + public int PurchaseNumber { get; set; } + public int PurchaseLineId { get; set; } + public DateTime PurchaseDate { get; set; } + public string ItemDescription { get; set; } + public string LineStatus { get; set; } + } +} diff --git a/src/bnhtrade.gui/Form1.Designer.cs b/src/bnhtrade.gui/Form1.Designer.cs index 099a324..f18f498 100644 --- a/src/bnhtrade.gui/Form1.Designer.cs +++ b/src/bnhtrade.gui/Form1.Designer.cs @@ -33,13 +33,24 @@ tabPage1 = new TabPage(); tabPage2 = new TabPage(); Receiving = new TabPage(); + dataGridView1 = new DataGridView(); + bindingSource1 = new BindingSource(components); + buttonSearch = new Button(); comboBox1 = new ComboBox(); purchaseLineStatusBindingSource = new BindingSource(components); - dtTmOrderSearch = new DateTimePicker(); + dateTimeOrderSearch = new DateTimePicker(); label1 = new Label(); - txtbxOrderSearch = new TextBox(); + textboxOrderSearch = new TextBox(); + purchaseNumberDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); + purchaseDateDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); + itemDescriptionDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); + purchaseLineIdDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); + lineStatusDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); + purchaseIdDataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); tabControl1.SuspendLayout(); Receiving.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)bindingSource1).BeginInit(); ((System.ComponentModel.ISupportInitialize)purchaseLineStatusBindingSource).BeginInit(); SuspendLayout(); // @@ -79,10 +90,12 @@ // // Receiving // + Receiving.Controls.Add(dataGridView1); + Receiving.Controls.Add(buttonSearch); Receiving.Controls.Add(comboBox1); - Receiving.Controls.Add(dtTmOrderSearch); + Receiving.Controls.Add(dateTimeOrderSearch); Receiving.Controls.Add(label1); - Receiving.Controls.Add(txtbxOrderSearch); + Receiving.Controls.Add(textboxOrderSearch); Receiving.Location = new Point(4, 24); Receiving.Name = "Receiving"; Receiving.Padding = new Padding(3); @@ -92,14 +105,39 @@ Receiving.UseVisualStyleBackColor = true; Receiving.Click += tabPage3_Click; // + // dataGridView1 + // + dataGridView1.AutoGenerateColumns = false; + dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridView1.Columns.AddRange(new DataGridViewColumn[] { purchaseNumberDataGridViewTextBoxColumn, purchaseDateDataGridViewTextBoxColumn, itemDescriptionDataGridViewTextBoxColumn, purchaseLineIdDataGridViewTextBoxColumn, lineStatusDataGridViewTextBoxColumn, purchaseIdDataGridViewTextBoxColumn }); + dataGridView1.DataSource = bindingSource1; + dataGridView1.Location = new Point(31, 94); + dataGridView1.Name = "dataGridView1"; + dataGridView1.Size = new Size(925, 396); + dataGridView1.TabIndex = 5; + // + // bindingSource1 + // + bindingSource1.DataSource = typeof(Core.Model.Account.PurchaseInvoiceLineSummary); + // + // buttonSearch + // + buttonSearch.Location = new Point(847, 46); + buttonSearch.Name = "buttonSearch"; + buttonSearch.Size = new Size(109, 25); + buttonSearch.TabIndex = 4; + buttonSearch.Text = "Search"; + buttonSearch.UseVisualStyleBackColor = true; + buttonSearch.Click += buttonSearch_Click; + // // comboBox1 // comboBox1.DataSource = purchaseLineStatusBindingSource; comboBox1.DisplayMember = "PurchaseLineStatusName"; comboBox1.FormattingEnabled = true; - comboBox1.Location = new Point(580, 46); + comboBox1.Location = new Point(195, 46); comboBox1.Name = "comboBox1"; - comboBox1.Size = new Size(214, 23); + comboBox1.Size = new Size(189, 23); comboBox1.TabIndex = 3; comboBox1.ValueMember = "PurchaseLineStatusId"; comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged; @@ -109,12 +147,12 @@ purchaseLineStatusBindingSource.DataSource = typeof(Core.Model.Purchase.PurchaseLineStatus); purchaseLineStatusBindingSource.CurrentChanged += purchaseLineStatusBindingSource_CurrentChanged; // - // dtTmOrderSearch + // dateTimeOrderSearch // - dtTmOrderSearch.Location = new Point(356, 46); - dtTmOrderSearch.Name = "dtTmOrderSearch"; - dtTmOrderSearch.Size = new Size(157, 23); - dtTmOrderSearch.TabIndex = 2; + dateTimeOrderSearch.Location = new Point(31, 46); + dateTimeOrderSearch.Name = "dateTimeOrderSearch"; + dateTimeOrderSearch.Size = new Size(131, 23); + dateTimeOrderSearch.TabIndex = 2; // // label1 // @@ -125,12 +163,49 @@ label1.TabIndex = 1; label1.Text = "Order Search"; // - // txtbxOrderSearch + // textboxOrderSearch // - txtbxOrderSearch.Location = new Point(31, 46); - txtbxOrderSearch.Name = "txtbxOrderSearch"; - txtbxOrderSearch.Size = new Size(268, 23); - txtbxOrderSearch.TabIndex = 0; + textboxOrderSearch.Location = new Point(417, 46); + textboxOrderSearch.Name = "textboxOrderSearch"; + textboxOrderSearch.Size = new Size(415, 23); + textboxOrderSearch.TabIndex = 0; + // + // purchaseNumberDataGridViewTextBoxColumn + // + purchaseNumberDataGridViewTextBoxColumn.DataPropertyName = "PurchaseNumber"; + purchaseNumberDataGridViewTextBoxColumn.HeaderText = "PurchaseNumber"; + purchaseNumberDataGridViewTextBoxColumn.Name = "purchaseNumberDataGridViewTextBoxColumn"; + // + // purchaseDateDataGridViewTextBoxColumn + // + purchaseDateDataGridViewTextBoxColumn.DataPropertyName = "PurchaseDate"; + purchaseDateDataGridViewTextBoxColumn.HeaderText = "PurchaseDate"; + purchaseDateDataGridViewTextBoxColumn.Name = "purchaseDateDataGridViewTextBoxColumn"; + // + // itemDescriptionDataGridViewTextBoxColumn + // + itemDescriptionDataGridViewTextBoxColumn.DataPropertyName = "ItemDescription"; + itemDescriptionDataGridViewTextBoxColumn.HeaderText = "ItemDescription"; + itemDescriptionDataGridViewTextBoxColumn.Name = "itemDescriptionDataGridViewTextBoxColumn"; + itemDescriptionDataGridViewTextBoxColumn.Width = 500; + // + // purchaseLineIdDataGridViewTextBoxColumn + // + purchaseLineIdDataGridViewTextBoxColumn.DataPropertyName = "PurchaseLineId"; + purchaseLineIdDataGridViewTextBoxColumn.HeaderText = "PurchaseLineId"; + purchaseLineIdDataGridViewTextBoxColumn.Name = "purchaseLineIdDataGridViewTextBoxColumn"; + // + // lineStatusDataGridViewTextBoxColumn + // + lineStatusDataGridViewTextBoxColumn.DataPropertyName = "LineStatus"; + lineStatusDataGridViewTextBoxColumn.HeaderText = "LineStatus"; + lineStatusDataGridViewTextBoxColumn.Name = "lineStatusDataGridViewTextBoxColumn"; + // + // purchaseIdDataGridViewTextBoxColumn + // + purchaseIdDataGridViewTextBoxColumn.DataPropertyName = "PurchaseId"; + purchaseIdDataGridViewTextBoxColumn.HeaderText = "PurchaseId"; + purchaseIdDataGridViewTextBoxColumn.Name = "purchaseIdDataGridViewTextBoxColumn"; // // Form1 // @@ -144,6 +219,8 @@ tabControl1.ResumeLayout(false); Receiving.ResumeLayout(false); Receiving.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit(); + ((System.ComponentModel.ISupportInitialize)bindingSource1).EndInit(); ((System.ComponentModel.ISupportInitialize)purchaseLineStatusBindingSource).EndInit(); ResumeLayout(false); } @@ -154,10 +231,19 @@ private TabPage tabPage1; private TabPage tabPage2; private TabPage Receiving; - private TextBox txtbxOrderSearch; + private TextBox textboxOrderSearch; private Label label1; - private DateTimePicker dtTmOrderSearch; + private DateTimePicker dateTimeOrderSearch; private ComboBox comboBox1; private BindingSource purchaseLineStatusBindingSource; + private Button buttonSearch; + private DataGridView dataGridView1; + private BindingSource bindingSource1; + private DataGridViewTextBoxColumn purchaseNumberDataGridViewTextBoxColumn; + private DataGridViewTextBoxColumn purchaseDateDataGridViewTextBoxColumn; + private DataGridViewTextBoxColumn itemDescriptionDataGridViewTextBoxColumn; + private DataGridViewTextBoxColumn purchaseLineIdDataGridViewTextBoxColumn; + private DataGridViewTextBoxColumn lineStatusDataGridViewTextBoxColumn; + private DataGridViewTextBoxColumn purchaseIdDataGridViewTextBoxColumn; } } diff --git a/src/bnhtrade.gui/Form1.cs b/src/bnhtrade.gui/Form1.cs index 75d3ee7..2bb0e5b 100644 --- a/src/bnhtrade.gui/Form1.cs +++ b/src/bnhtrade.gui/Form1.cs @@ -34,8 +34,8 @@ namespace bnhtrade.gui private void InitialiseTabReceiving() { purchaseLineStatusBindingSource.DataSource = new Core.Logic.Account.PurchaseInvoice().ReadLineStatusToList(); + comboBox1.SelectedIndex = 3; initTabReceiving = true; - MessageBox.Show("ldsakjfl;s"); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) @@ -48,5 +48,20 @@ namespace bnhtrade.gui } + private void buttonSearch_Click(object sender, EventArgs e) + { + char[] separator = { ' ' }; + var searchList = textboxOrderSearch.Text.Split(separator).ToList(); + + bindingSource1.DataSource = new Core.Logic.Account.PurchaseInvoice().GetLineSummary( + dateTimeOrderSearch.Value + , comboBox1.Text + , searchList); + } + + private void bindingSource1_CurrentChanged(object sender, EventArgs e) + { + + } } } diff --git a/src/bnhtrade.gui/Form1.resx b/src/bnhtrade.gui/Form1.resx index 6a9ea6f..3431ac8 100644 --- a/src/bnhtrade.gui/Form1.resx +++ b/src/bnhtrade.gui/Form1.resx @@ -117,8 +117,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 + + 250, 17 17, 17 diff --git a/src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoice.datasource b/src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoice.datasource new file mode 100644 index 0000000..a5a5f96 --- /dev/null +++ b/src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoice.datasource @@ -0,0 +1,10 @@ + + + + bnhtrade.Core.Model.Account.PurchaseInvoice, bnhtrade.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoiceLineSummary.datasource b/src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoiceLineSummary.datasource new file mode 100644 index 0000000..495bd9f --- /dev/null +++ b/src/bnhtrade.gui/Properties/DataSources/bnhtrade.Core.Model.Account.PurchaseInvoiceLineSummary.datasource @@ -0,0 +1,10 @@ + + + + bnhtrade.Core.Model.Account.PurchaseInvoiceLineSummary, bnhtrade.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/src/bnhtrade.gui/bnhtrade.gui.csproj b/src/bnhtrade.gui/bnhtrade.gui.csproj index d44d9b5..f49ccfd 100644 --- a/src/bnhtrade.gui/bnhtrade.gui.csproj +++ b/src/bnhtrade.gui/bnhtrade.gui.csproj @@ -36,4 +36,8 @@ + + + + \ No newline at end of file