void changeDetail(int invoiceId, string invoiceCode, int storeId, SelInvoiceDetailContract[] invoiceDetailDTOs, SqlTransaction tran) { DataTable dtOldInvDetail = invoiceDetailDT.GetByCond("InvoiceId=" + invoiceId); foreach (SelInvoiceDetailContract invDetail in invoiceDetailDTOs) { DataRow[] oldDetail = dtOldInvDetail.Select("ProductId=" + invDetail.Productid); int quantity = Converter.ToInt32(oldDetail[0]["Quantity"]) - Converter.ToInt32(invDetail.Quantity); if (quantity > 0) { StoreModel.ChangeInvoice(invoiceCode, storeId, (int)invDetail.Productid, quantity.ToString(), tran); } } }
public HttpResponseMessage Delete(string id) { SqlTransaction tran = DataProvider.beginTrans(); try { string message = id; FinReceiptDT receiptDT = new FinReceiptDT(); DataTable dtReceipt = receiptDT.GetByCond("InvoiceId=" + id); if (dtReceipt.Rows.Count > 0) { message = "Lỗi: Phiếu bán hàng đã thu tiền, không thể xóa."; } else { DataTable dtInvoice = invoiceDT.GetByID(id); DataTable invoiceDetail = invoiceDetailDT.GetByCond("InvoiceId=" + id); foreach (DataRow row in invoiceDetail.Rows) { string invCode = dtInvoice.Rows[0]["Code"].ToString(); int storeId = Converter.ToInt32(dtInvoice.Rows[0]["StoreId"]); int productId = Converter.ToInt32(row["ProductId"]); string quantity = row["ProductId"].ToString(); StoreModel.ChangeInvoice(invCode, storeId, productId, quantity, tran); invoiceDetailDT.DeleteViaCond("InvoiceId=" + id, tran); invoiceDT.Delete(id, tran); tran.Commit(); } } return(Request.CreateResponse <string>(HttpStatusCode.OK, message)); } catch (Exception e) { ExceptionHandler.Log(e); tran.Rollback(); return(Request.CreateResponse <string>(HttpStatusCode.OK, "")); } finally { tran.Dispose(); } }