Beispiel #1
0
        private void CopyToClipboardButton_Click(object sender, EventArgs e)
        {
            if (EmailResultTextBox.Text.Length == 0)
            {
                return;
            }
            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            excelApp.Visible = true;

            _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing));
            _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet;

            TicketRepository ticketRepo = new TicketRepository();
            List<TicketResource> listOfTickets = ticketRepo.GetDistinctEmailAddressBetweenDates(StartingDatePicker.Value, EndingDatePicker.Value);

            for (int i = 0; i < listOfTickets.Count; i++)
            {
                TicketResource ticket = listOfTickets[i];
                int row = i + 1;
                worksheet.Cells[row, "A"] = ticket.LastName;
                worksheet.Cells[row, "B"] = ticket.FirstName;
                worksheet.Cells[row, "C"] = ticket.Email;
            }
            worksheet.Columns["A:C"].AutoFit();
        }
Beispiel #2
0
        public AlterationForm(CustomerResource customer)
        {
            Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ConfigurationRepository configRepo = new ConfigurationRepository();
            maxAlterations = Convert.ToDouble(configRepo.GetConfigrationSettings().Where(x => x.Setting == "maxAlterations").Select(x => x.Value).DefaultIfEmpty("").First());
            TicketRepository ticketRepo = new TicketRepository();
            alterationToatalForDays = ticketRepo.GetAlterationToatalForDays();
            SetupForm();
            this.customer = customer;
            customerId = customer.CustomerId;
            isNewAlteration = true;
            TicketNumberLabel.Hide();
            DateInPicker.Value = DateTime.Today;
            var readyDate = GetNextValidDateNotOverMaxAlterations(DateTime.Today.AddDays(7));
            DateReadyPicker.Value = readyDate;
            previousStatus = "a";
            NewTicketWithCustomerBttn.Enabled = false;

            TitleComboBox.Text = customer.Title;
            FirstNameTextBox.Text = customer.FirstName;
            MiddleNameTextBox.Text = customer.MiddleName;
            LastNameTextBox.Text = customer.LastName;
            AddressTextBox.Text = customer.Address;
            CityTextBox.Text = customer.City;
            StateTextBox.Text = customer.State;
            ZipTextBox.Text = customer.Zip;
            PhoneTextBox.Text = customer.Telephone;
            EmailTextBox.Text = customer.Email;
        }
Beispiel #3
0
        private void CreateTicketWithUserBttn_Click(object sender, EventArgs e)
        {
            int selectedIndex = ResultGrid.CurrentCell.RowIndex;

            int ticketId = Convert.ToInt32(ResultGrid.Rows[selectedIndex].Cells["TicketIdCol"].Value);
            try
            {
                TicketRepository ticketRepo = new TicketRepository();
                TicketResource ticketRes = ticketRepo.GetCustomerInfoBasedOnTicketId(ticketId);

                AlterationForm alterationForm = new AlterationForm(ticketRes);
                alterationForm.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message);
            }
            //TODO ask neil which behavior he prefers
            //EnableButtonsBasedOnGrid();
            this.Close();
        }
Beispiel #4
0
        private void DeleteTicketButton_Click(object sender, EventArgs e)
        {
            int selectedIndex = ResultGrid.CurrentCell.RowIndex;
            int ticketId = Convert.ToInt32(ResultGrid.Rows[selectedIndex].Cells["TicketIdCol"].Value);

            if (MessageBox.Show("This will delete ticket #" + ticketId + ". Are you sure?", "Delete Ticket", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                try
                {
                    TicketRepository ticketRepo = new TicketRepository();
                    ticketRepo.DeleteTicketByTicketID(ticketId);

                    TicketAlterationRepository alterationRepo = new TicketAlterationRepository();
                    alterationRepo.DeleteAlterationsByTicketID(ticketId);
                    ResultGrid.Rows.RemoveAt(selectedIndex);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message);
                }
                EnableButtonsBasedOnGrid();
            }
        }
Beispiel #5
0
        //@return true if successful save
        private Boolean UpdateAlterationInDatabase()
        {
            try
            {
                TicketResource ticketResource = CollectFormDataForTicketResource();
                TicketRepository ticketRepo = new TicketRepository();
                ticketRepo.UpdateTicket(ticketResource);

                TicketAlterationResource alterationResource = CollectAlterationGridDataForAlterationResource();
                TicketAlterationRepository alterationRepo = new TicketAlterationRepository();
                alterationRepo.DeleteAndReinsertAlterations(alterationResource, ticketID);

                MessageBox.Show("Your alteration was successfully Updated.");
                NewTicketWithCustomerBttn.Enabled = true;

                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was an error saving to the database. Please contact Jay with this message: " + ex.Message);
                return false;
            }
        }
Beispiel #6
0
        public AlterationForm(TicketResource ticketResource)
        {
            SetupForm();
            ConfigurationRepository configRepo = new ConfigurationRepository();
            TicketRepository ticketRepo = new TicketRepository();
            maxAlterations = Convert.ToDouble(configRepo.GetConfigrationSettings().Where(x => x.Setting == "maxAlterations").Select(x => x.Value).DefaultIfEmpty("").First());
            alterationToatalForDays = ticketRepo.GetAlterationToatalForDays();

            if (ticketResource.TicketId == 0)
            {
                isNewAlteration = true;
                TicketNumberLabel.Hide();
                previousStatus = "a";
                NewTicketWithCustomerBttn.Enabled = false;
            }
            else
            {
                isNewAlteration = false;
                ticketID = ticketResource.TicketId;
                TicketNumberLabel.Text = ticketResource.TicketId.ToString();
                previousStatus = ticketResource.Status ?? "a";
            }

            customerId = ticketResource.CustomerID;

            TitleComboBox.Text = ticketResource.Title ?? "";
            FirstNameTextBox.Text = ticketResource.FirstName ?? "";
            MiddleNameTextBox.Text = ticketResource.MiddleName ?? "";
            LastNameTextBox.Text = ticketResource.LastName ?? "";
            AddressTextBox.Text = ticketResource.Address ?? "";
            CityTextBox.Text = ticketResource.City ?? "";
            StateTextBox.Text = ticketResource.State ?? "";
            ZipTextBox.Text = ticketResource.Zip ?? "";
            PhoneTextBox.Text = ticketResource.Telephone ?? "";
            EmailTextBox.Text = ticketResource.Email ?? "";
            CommentBox.Text = ticketResource.Comments ?? "";
            if (ticketResource.Status == "a")
            {
                StatusComboBox.Text = "Active";
            }
            else if (ticketResource.Status == "d")
            {
                StatusComboBox.Text = "Done";
            }
            else if (ticketResource.Status == "c")
            {
                StatusComboBox.Text = "Cancelled";
            }
            else if (ticketResource.Status == "i")
            {
                StatusComboBox.Text = "In Progress";
            }
            else
            {
                StatusComboBox.Text = "";
            }

            PickedUpComboBox.Text = ticketResource.PickedUp ?? "n/a";
            DateInPicker.Value = ticketResource.DateIn;
            DateReadyPicker.Value = ticketResource.DateReady;
            OrderIdTextBox.Text = ticketResource.OrderId ?? "";

            if (isNewAlteration)
            {
                //cant add this above because it will just get overwritten down here, and it looks messy it the if logic is added below
                DateReadyPicker.Value = DateTime.Today.AddDays(7);
            }
            DepositTextBox.Text = ticketResource.Deposit.ToString();
            TailorComboBox.Text = ticketResource.TailorName == "" ? "In House" : ticketResource.TailorName;
        }
Beispiel #7
0
        //@return true if successful save
        private Boolean InsertAlterationIntoDatabase()
        {
            try
            {
                TicketResource ticketResource = CollectFormDataForTicketResource();
                TicketRepository ticketRepo = new TicketRepository();
                ticketID = ticketRepo.InsertNewTicket(ticketResource);

                TicketAlterationResource alterationResource = CollectAlterationGridDataForAlterationResource();
                TicketAlterationRepository alterationRepo = new TicketAlterationRepository();
                alterationRepo.InsertAlterations(alterationResource);

                TicketNumberLabel.Text = ticketID.ToString();
                TicketNumberLabel.Show();
                MessageBox.Show("Your alteration was successfully saved. The ticket ID is " + ticketID.ToString());
                isNewAlteration = false;
                NewTicketWithCustomerBttn.Enabled = true;

                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was an error saving to the database. Please contact Jay with this message: " + ex.Message);
                return false;
            }
        }
Beispiel #8
0
        private void SearchButton_Click(object sender, EventArgs e)
        {
            if (ValidateForm() == false)
            {
                MessageBox.Show("Please enter at least 1 search criteria.");
                return;
            }

            ResultGrid.Rows.Clear();

            Dictionary<TicketRepository.TicketProperty, object> searchArguments = new Dictionary<TicketRepository.TicketProperty, object>();
            if (TicketIdTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.TicketId, TicketIdTextBox.Text);
            }
            if (FirstNameTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.FirstName, FirstNameTextBox.Text);
            }
            if (MiddleNameTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.MiddleName, MiddleNameTextBox.Text);
            }
            if (LastNameTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.LastName, LastNameTextBox.Text);
            }
            if (AddressTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.Address, AddressTextBox.Text);
            }
            if (CityTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.City, CityTextBox.Text);
            }
            if (StateTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.State, StateTextBox.Text);
            }
            if (ZipTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.Zip, ZipTextBox.Text);
            }
            if (TelephoneTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.Telephone, TelephoneTextBox.Text);
            }
            if (EmailTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.Email, EmailTextBox.Text);
            }
            if (PickedUpComboBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.PickedUp, PickedUpComboBox.Text);
            }
            if (StatusComboBox.Text != "")
            {
                if (StatusComboBox.Text == "Active")
                {
                    searchArguments.Add(TicketRepository.TicketProperty.Status, "a");
                }
                else if (StatusComboBox.Text == "Done")
                {
                    searchArguments.Add(TicketRepository.TicketProperty.Status, "d");
                }
                else if (StatusComboBox.Text == "Cancelled")
                {
                    searchArguments.Add(TicketRepository.TicketProperty.Status, "c");
                }
                else if (StatusComboBox.Text == "In Progress")
                {
                    searchArguments.Add(TicketRepository.TicketProperty.Status, "i");
                }
            }
            if (TailorComboBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.TailorName, TailorComboBox.Text);
            }
            if (OrderIdTextBox.Text != "")
            {
                searchArguments.Add(TicketRepository.TicketProperty.OrderId, OrderIdTextBox.Text);
            }

            try
            {
                TicketRepository ticketRepo = new TicketRepository();
                List<TicketResource> searchResults = ticketRepo.GetTicketsByArguments(searchArguments);

                if (searchResults.Count == 0)
                {
                    MessageBox.Show("I couldn't find any matching tickets. Please check the search criteria and try again.");
                }
                else
                {
                    for(int i=0; i<searchResults.Count; i++)
                    {
                        String status = "";
                        if (searchResults[i].Status == "a")
                        {
                            status = "Active";
                        }
                        else if (searchResults[i].Status == "d")
                        {
                            status = "Done";
                        }
                        else if (searchResults[i].Status == "c")
                        {
                            status = "Cancelled";
                        }
                        else if (searchResults[i].Status == "i")
                        {
                            status = "In Progress";
                        }
                        ResultGrid.Rows.Add(searchResults[i].TicketId, searchResults[i].FirstName, searchResults[i].LastName,searchResults[i].DateIn, searchResults[i].DateReady, status, searchResults[i].TailorName, String.Format("{0:C}", searchResults[i].TotalPrice), String.Format("{0:C}", searchResults[i].Deposit), String.Format("{0:C}",searchResults[i].TotalPrice - searchResults[i].Deposit));
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message);
            }
            EnableButtonsBasedOnGrid();
        }
Beispiel #9
0
        private void OpenTicketButton_Click(object sender, EventArgs e)
        {
            int selectedIndex = ResultGrid.CurrentCell.RowIndex;

            int ticketId = Convert.ToInt32(ResultGrid.Rows[selectedIndex].Cells["TicketIdCol"].Value);
            try
            {
                TicketRepository ticketRepo = new TicketRepository();
                TicketResource ticketRes = ticketRepo.GetTicketByTicketID(ticketId);

                TicketAlterationRepository alterationRepo = new TicketAlterationRepository();
                TicketAlterationResource alterationRes = alterationRepo.GetAlterationsByTicketId(ticketId);

                AlterationForm alterationForm = new AlterationForm(ticketRes, alterationRes);
                alterationForm.Show();
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message);
            }

            //TODO get Neil's feedback on what behavior he prefers
            //this.Close();
        }
Beispiel #10
0
        private void MarkAsDonePaidPickedUpBttn_Click(object sender, EventArgs e)
        {
            int index = ResultGrid.CurrentCell.RowIndex;
            int ticketId = Convert.ToInt32(ResultGrid.Rows[index].Cells["TicketIdCol"].Value);

            try
            {
                TicketRepository ticketRepo = new TicketRepository();
                ticketRepo.MarkTicketAsDonePaidAndPickedUp(ticketId);

                DataGridViewRow row = ResultGrid.Rows[index];
                row.Cells["StatusCol"].Value = "Done";
                row.Cells["DepositCol"].Value = row.Cells["TotalPriceCol"].Value;
                row.Cells["BalanceCol"].Value = String.Format("{0:C}", 0);
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was an error. Please contact Jay with this message: " + ex.Message);
            }
            EnableButtonsBasedOnGrid();
        }
Beispiel #11
0
        private void GetCustomOrdersButton_Click(object sender, EventArgs e)
        {
            //refactor this once API is up
            TicketRepository repo = new TicketRepository();
            List<TicketResource> tickets = repo.GetActiveTicketsBetweenDates(CustomOrderDatePickerStart.Value, CustomOrderDatePickerEnd.Value);
            List<TicketResource> orders = new List<TicketResource>();
            foreach (TicketResource ticket in tickets)
            {
                if (ticket.OrderId.Trim() != "")
                {
                    orders.Add(ticket);
                }
            }

            if (orders.Count > 0)
            {
                orders = orders.OrderBy(x => x.DateReady).ToList();

                Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
                excelApp.Visible = true;

                _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing));
                _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet;

                for (int i = 0; i < orders.Count; i++)
                {
                    TicketResource order = orders[i];
                    int row = i + 1;
                    worksheet.Cells[row, "A"] = order.TicketId;
                    worksheet.Cells[row, "B"] = order.FirstName;
                    worksheet.Cells[row, "C"] = order.LastName;
                    worksheet.Cells[row, "D"] = order.DateReady.ToString();
                    worksheet.Cells[row, "E"] = order.Telephone;
                    worksheet.Cells[row, "F"] = "$" + order.TotalPrice;
                }
                worksheet.Columns["A:F"].AutoFit();
            }
            else
            {
                MessageBox.Show("There are no orders due between those dates.");
            }
        }
Beispiel #12
0
        private void GetTicketsForDateButton_Click(object sender, EventArgs e)
        {
            TicketRepository repo = new TicketRepository();
            List<TicketResource> tickets = repo.GetActiveTicketsBetweenDates(TicketsForDatePicker.Value, TicketsForDatePicker.Value);

            if (tickets.Count > 0)
            {
                Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
                excelApp.Visible = true;

                _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing));
                _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet;

                for (int i = 0; i < tickets.Count; i++)
                {
                    TicketResource ticket = tickets[i];
                    int row = i + 1;
                    worksheet.Cells[row, "A"] = ticket.TicketId;
                    worksheet.Cells[row, "B"] = ticket.FirstName;
                    worksheet.Cells[row, "C"] = ticket.LastName;
                    worksheet.Cells[row, "D"] = ticket.TailorName;
                    worksheet.Cells[row, "E"] = ticket.Telephone;
                    worksheet.Cells[row, "F"] = "$" + ticket.TotalPrice;
                }
                worksheet.Columns["A:F"].AutoFit();
            }
            else
            {
                MessageBox.Show("There are no tickets due on that date.");
            }
        }
Beispiel #13
0
        private void getMailingAddressesButton_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            excelApp.Visible = true;

            _Workbook workbook = (_Workbook)(excelApp.Workbooks.Add(Type.Missing));
            _Worksheet worksheet = (_Worksheet)workbook.ActiveSheet;

            TicketRepository ticketRepo = new TicketRepository();
            List<TicketResource> listOfTickets = ticketRepo.GetDistinctMailingAddressBetweenDates(StartingDatePicker.Value, EndingDatePicker.Value);

            //change the getDistintMailing to not accept "" as a unique address. then we can remove this row checking
            int row = 1;
            for (int i = 0; i < listOfTickets.Count; i++)
            {
                TicketResource ticket = listOfTickets[i];
                if (ticket.Address == "")
                {
                    continue;
                }
                worksheet.Cells[row, "A"] = ticket.LastName;
                worksheet.Cells[row, "B"] = ticket.FirstName;
                worksheet.Cells[row, "C"] = ticket.Address;
                worksheet.Cells[row, "D"] = ticket.City;
                worksheet.Cells[row, "E"] = ticket.State;
                worksheet.Cells[row, "F"] = ticket.Zip;
                row++;
            }
            worksheet.Columns["A:F"].AutoFit();
        }
Beispiel #14
0
        private void GetEmailsButton_Click(object sender, EventArgs e)
        {
            TicketRepository ticketRepo = new TicketRepository();
            List<TicketResource> listOfTickets = ticketRepo.GetDistinctEmailAddressBetweenDates(StartingDatePicker.Value, EndingDatePicker.Value);

            String emailString = "";
            for (int i = 0; i < listOfTickets.Count; i++)
            {
                TicketResource ticket = listOfTickets[i];
                if (i == 0)
                {
                    emailString += ticket.Email;
                }
                else
                {
                    emailString += ", " + ticket.Email;
                }
            }

            EmailResultTextBox.Text = emailString;
        }