87 lines
3.3 KiB
C#
87 lines
3.3 KiB
C#
using Unity;
|
|
using LDBproject.Repositories;
|
|
using LDBproject.Reports;
|
|
using LDBproject.Entities;
|
|
|
|
namespace LDBproject.AdditionalForms
|
|
{
|
|
public partial class OrdersReportF : Form
|
|
{
|
|
private readonly IUnityContainer _container;
|
|
private readonly IOrderRep _orderRep;
|
|
|
|
public OrdersReportF(IUnityContainer container, IOrderRep orderRep)
|
|
{
|
|
InitializeComponent();
|
|
_container = container ?? throw new ArgumentNullException(nameof(container));
|
|
_orderRep = orderRep ?? throw new ArgumentNullException(nameof(orderRep));
|
|
|
|
var ordersInfo = _orderRep.GetOrdersInfo().ToList();
|
|
|
|
if (ordersInfo.Any())
|
|
{
|
|
ComboBoxB.DataSource = ordersInfo;
|
|
ComboBoxB.DisplayMember = "DisplayInfo";
|
|
ComboBoxB.ValueMember = "OrderID"; // Assuming the data model has this property
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("No Orders Found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
Close();
|
|
}
|
|
}
|
|
private void SelectFilePathBtn_Click(object sender, EventArgs e)
|
|
{
|
|
var sfd = new SaveFileDialog() { Filter = "Excel Files | *.xlsx" };
|
|
if (sfd.ShowDialog() == DialogResult.OK)
|
|
{
|
|
FilePathTb.Text = sfd.FileName;
|
|
}
|
|
}
|
|
|
|
private void MakeReportBtn_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string filePath = FilePathTb.Text;
|
|
if (string.IsNullOrWhiteSpace(filePath))
|
|
{
|
|
MessageBox.Show("Please select a file path.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
return;
|
|
}
|
|
|
|
if (ComboBoxB.SelectedItem == null)
|
|
{
|
|
MessageBox.Show("Please select an order.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
return;
|
|
}
|
|
|
|
DateTime startDate = BeginDTP.Value;
|
|
DateTime endDate = FinDTP.Value;
|
|
|
|
if (startDate >= endDate)
|
|
{
|
|
MessageBox.Show("Start date must be before end date.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
return;
|
|
}
|
|
// Correctly get the selected OrderInfo object
|
|
if (ComboBoxB.SelectedItem is not Order selectedOrderInfo)
|
|
{
|
|
MessageBox.Show("Invalid order selection.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
return;
|
|
}
|
|
// Resolve TableReport and pass the dates
|
|
var tableReport = _container.Resolve<TableReport>();
|
|
|
|
if (tableReport.CreateTable(filePath, startDate, endDate))
|
|
{
|
|
MessageBox.Show("< Chart PDF report generated successfully >", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show($"An error occurred while generating the report: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
}
|
|
} |