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]); } } }
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; } }