Esempio n. 1
0
        private void approvalButton_Click(object sender, EventArgs e)
        {
            bool qtyBelow50 = false;

            if (!qtyBelow50)
            {
                Package package = ppgda.getOneProductPackageByID(packageOl.getProductID(), Language.getLanguageCode(), conn);
                if (package.getQtyInStock() < 1)
                {
                    qtyBelow50 = true;
                }
            }

            if (!qtyBelow50)
            {
                Bottle bottle = pbda.getOneProductBottleByID(bottleOl.getProductID(), Language.getLanguageCode(), conn);
                if (bottle.getQtyInStock() < 1)
                {
                    qtyBelow50 = true;
                }
            }

            if (!qtyBelow50)
            {
                foreach (OrderLine perfumeOl in perfumeOlList)
                {
                    Perfume perfume = ppda.getOneProductPerfumeByID(perfumeOl.getProductID(), Language.getLanguageCode(), conn);
                    if (perfume.getQtyInStock() < 50)
                    {
                        qtyBelow50 = true;
                        break;
                    }
                }
            }

            if (qtyBelow50)
            {
                rejectButton_Click(null, null);
            }
            else
            {
                Package package = ppgda.getOneProductPackageByID(packageOl.getProductID(), Language.getLanguageCode(), conn);
                package.setQtyInStock(package.getQtyInStock() - 1);
                ppgda.update(package, conn);

                Bottle bottle = pbda.getOneProductBottleByID(bottleOl.getProductID(), Language.getLanguageCode(), conn);
                bottle.setQtyInStock(bottle.getQtyInStock() - 1);
                pbda.update(bottle, conn);

                foreach (OrderLine perfumeOl in perfumeOlList)
                {
                    Perfume perfume = ppda.getOneProductPerfumeByID(perfumeOl.getProductID(), Language.getLanguageCode(), conn);
                    perfume.setQtyInStock(perfume.getQtyInStock() - perfumeOl.getQty());
                    ppda.update(perfume, conn);
                }

                productCategoriesComboBox_SelectedIndexChanged(null, null);

                orderDetail.setApprovedDate(DateTime.Now.Date);
                orderDetail.setRejected(false);
                orderDetail.setApprovedByEmpID(staffID);

                if (oda.update(orderDetail, conn) > 0)
                {
                    MessageBox.Show(rs.GetString("orderApprovalMsg"));
                }
                else
                {
                    MessageBox.Show(rs.GetString("failToUpdateMsg"), rs.GetString("errorText"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


            approvalButton.Enabled = false;
            rejectButton.Enabled   = false;

            showOrderDetail(orderDetail.getOrderID());

            for (int i = orderDataGridView.Rows.Count - 1; i >= 0; i--)
            {
                if (orderDataGridView.Rows[i].Cells["orderIdColumn"].Value.Equals(orderDetail.getOrderID()))
                {
                    orderDataGridView.Rows.Remove(orderDataGridView.Rows[i]);
                }
            }
        }
Esempio n. 2
0
        private void doRefundButton_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show(rs.GetString("refundYesNoMsg"), rs.GetString("confirmationText"), MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                displayOrderPanel.Enabled       = false;
                displayOrderPanel.UseWaitCursor = true;

                doRefundButton.Enabled = false;

                try
                {
                    BackendClassLibrary.Data.Order orderDetail = oda.getOneOrderByID(showOrderIdLabel.Text, conn);
                    if (!string.IsNullOrEmpty(orderDetail.getPayPalPaymentID()))
                    {
                        Payment payment = Payment.Get(apiContext, orderDetail.getPayPalPaymentID());
                        Sale    sale    = payment.transactions.ElementAt(0).related_resources.ElementAt(0).sale;
                        if (payment.state.Equals("approved") && !sale.state.Equals("refunded") && !sale.state.Equals("partially_refunded"))
                        {
                            string SaleId     = sale.id;
                            string paidAmount = sale.amount.total;

                            Amount amount = new Amount()
                            {
                                currency = "HKD",
                                total    = paidAmount
                            };

                            Refund refund = new Refund();
                            refund.amount = amount;

                            var response = sale.Refund(apiContext, refund);

                            if (orderDetail.getApprovedDate() == null)
                            {
                                orderDetail.setApprovedDate(DateTime.Now);
                                orderDetail.setRejected(true);
                                oda.update(orderDetail, conn);
                            }

                            showOrderDetail(orderDetail.getPayPalPaymentID());

                            MessageBox.Show(rs.GetString("amountRefundedMsg"));
                        }
                        else
                        {
                            MessageBox.Show(rs.GetString("failRefundMsg"), rs.GetString("errorText"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show(rs.GetString("failRefundMsg"), rs.GetString("errorText"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show(rs.GetString("failRefundMsg"), rs.GetString("errorText"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                displayOrderPanel.UseWaitCursor = false;
                displayOrderPanel.Enabled       = true;
            }
        }