public string SendOrderPrint(OrderInformation orderInfo, int CustID, string CustFullName, bool print) { int num = 0; ArrayList list = new ArrayList(); ArrayList list2 = new ArrayList(); string[] billDetailID = null; if (orderInfo == null) { return "No data"; } SqlConnection connection = null; SqlTransaction transaction = null; try { string str; connection = ConnectDB.GetConnection(); transaction = connection.BeginTransaction(); SqlCommand command = new SqlCommand(); command.Connection = connection; command.Transaction = transaction; command.CommandType = CommandType.StoredProcedure; if (orderInfo.OrderID == 0) { command.CommandText = "insertOrder"; num = 1; } else { command.CommandText = "updateOrder"; command.Parameters.Add("@orderID", SqlDbType.Int).Value = orderInfo.OrderID; } command.Parameters.Add("@orderTime", SqlDbType.DateTime).Value = orderInfo.OrderTime; command.Parameters.Add("@tableID", SqlDbType.Int).Value = orderInfo.TableID; command.Parameters.Add("@employeeID", SqlDbType.Int).Value = orderInfo.EmployeeID; command.Parameters.Add("@numberOfGuest", SqlDbType.Int).Value = orderInfo.NumberOfGuest; SqlParameter parameter6 = command.Parameters.Add("@closeOrderDate", SqlDbType.DateTime); if (orderInfo.CloseOrderDate.CompareTo(AppParameter.MinDateTime) <= 0) { parameter6.Value = DBNull.Value; } else { parameter6.Value = orderInfo.CloseOrderDate; } SqlParameter parameter7 = command.Parameters.Add("@result", SqlDbType.Int); parameter7.Direction = ParameterDirection.Output; command.ExecuteNonQuery(); orderInfo.OrderID = (int) parameter7.Value; if (orderInfo.OrderID == 0) { transaction.Rollback(); return "Can't insert order info"; } list2.Add(orderInfo.OrderID); if (orderInfo.Bills != null) { command.Parameters.Clear(); SqlParameter parameter8 = command.Parameters.Add("@orderBillID", SqlDbType.Int); SqlParameter parameter9 = command.Parameters.Add("@billID", SqlDbType.Int); SqlParameter parameter = command.Parameters.Add("@orderID", SqlDbType.Int); SqlParameter parameter4 = command.Parameters.Add("@employeeID", SqlDbType.Int); SqlParameter parameter10 = command.Parameters.Add("@closeBillDate", SqlDbType.DateTime); parameter7 = command.Parameters.Add("@result", SqlDbType.Int); parameter7.Direction = ParameterDirection.Output; SqlCommand command2 = new SqlCommand(); command2.Connection = connection; command2.Transaction = transaction; command2.CommandType = CommandType.StoredProcedure; SqlParameter parameter11 = command2.Parameters.Add("@billDetailID", SqlDbType.Int); SqlParameter parameter12 = command2.Parameters.Add("@orderBillID", SqlDbType.Int); SqlParameter parameter13 = command2.Parameters.Add("@menuID", SqlDbType.Int); SqlParameter parameter14 = command2.Parameters.Add("@unit", SqlDbType.Int); SqlParameter parameter15 = command2.Parameters.Add("@status", SqlDbType.TinyInt); SqlParameter parameter16 = command2.Parameters.Add("@message", SqlDbType.NText); SqlParameter parameter17 = command2.Parameters.Add("@serveTime", SqlDbType.DateTime); SqlParameter parameter18 = command2.Parameters.Add("@cancelReasonID", SqlDbType.Int); SqlParameter parameter19 = command2.Parameters.Add("@employeeID", SqlDbType.Int); SqlParameter parameter20 = command2.Parameters.Add("@result", SqlDbType.Int); parameter20.Direction = ParameterDirection.Output; SqlCommand command3 = new SqlCommand(); command3.Connection = connection; command3.Transaction = transaction; command3.CommandType = CommandType.StoredProcedure; SqlParameter parameter21 = command3.Parameters.Add("@billDetailID", SqlDbType.Int); SqlParameter parameter22 = command3.Parameters.Add("@choiceID", SqlDbType.Int); command3.Parameters.Add("@result", SqlDbType.Int).Direction = ParameterDirection.Output; for (int i = 0; i < orderInfo.Bills.Length; i++) { OrderBill bill = orderInfo.Bills[i]; if (bill.OrderBillID == 0) { command.CommandText = "insertOrderBill"; if (command.Parameters.Contains(parameter8)) { command.Parameters.Remove(parameter8); } if (command.Parameters.Contains(parameter10)) { command.Parameters.Remove(parameter10); } if (!command.Parameters.Contains(parameter)) { command.Parameters.Add(parameter); } parameter.Value = orderInfo.OrderID; if (num != 1) { num = 2; } } else { command.CommandText = "updateOrderBill"; if (!command.Parameters.Contains(parameter8)) { command.Parameters.Add(parameter8); } if (!command.Parameters.Contains(parameter10)) { command.Parameters.Add(parameter10); } if (command.Parameters.Contains(parameter)) { command.Parameters.Remove(parameter); } parameter8.Value = bill.OrderBillID; if (bill.CloseBillDate.CompareTo(AppParameter.MinDateTime) <= 0) { parameter10.Value = DBNull.Value; } else { parameter10.Value = bill.CloseBillDate; } } parameter4.Value = bill.EmployeeID; parameter9.Value = bill.BillID; command.ExecuteNonQuery(); bill.OrderBillID = (int) parameter7.Value; if (bill.OrderBillID == 0) { transaction.Rollback(); return "Can't insert bill"; } if (bill.Items != null) { parameter12.Value = bill.OrderBillID; for (int j = 0; j < bill.Items.Length; j++) { OrderBillItem item = bill.Items[j]; if (item.BillDetailID == 0) { command2.CommandText = "insertOrderBillDetail"; if (command2.Parameters.Contains(parameter11)) { command2.Parameters.Remove(parameter11); } if (command2.Parameters.Contains(parameter15)) { command2.Parameters.Remove(parameter15); } if (command2.Parameters.Contains(parameter17)) { command2.Parameters.Remove(parameter17); } if (command2.Parameters.Contains(parameter18)) { command2.Parameters.Remove(parameter18); } if ((num != 1) && (num != 2)) { num = 3; } } else { command2.CommandText = "updateOrderBillDetail"; if (!command2.Parameters.Contains(parameter11)) { command2.Parameters.Add(parameter11); } if (!command2.Parameters.Contains(parameter15)) { command2.Parameters.Add(parameter15); } if (!command2.Parameters.Contains(parameter17)) { command2.Parameters.Add(parameter17); } if (!command2.Parameters.Contains(parameter18)) { command2.Parameters.Add(parameter18); } parameter11.Value = item.BillDetailID; parameter15.Value = item.Status; if (item.ServeTime.CompareTo(AppParameter.MinDateTime) <= 0) { parameter17.Value = DBNull.Value; } else { parameter17.Value = item.ServeTime; } if (item.CancelReasonID == 0) { parameter18.Value = DBNull.Value; } else { parameter18.Value = item.CancelReasonID; } } parameter13.Value = item.MenuID; parameter14.Value = item.Unit; if ((item.Message == null) || (item.Message.Length == 0)) { parameter16.Value = DBNull.Value; } else { parameter16.Value = item.Message; } parameter19.Value = item.EmployeeID; command2.ExecuteNonQuery(); item.BillDetailID = (int) parameter20.Value; if (item.BillDetailID == 0) { transaction.Rollback(); return "Can't insert item"; } switch (num) { case 1: case 2: case 3: if ((item.Status != 0) || AppParameter.IsDemo()) { list.Add(item.BillDetailID.ToString()); } if (num == 3) { num = 0; } break; default: if (((command2.CommandText == "updateOrderBillDetail") && item.ChangeFlag) && ((item.Status != 0) || AppParameter.IsDemo())) { list.Add(item.BillDetailID.ToString()); } break; } command3.CommandText = "deleteOrderBillOption"; if (command3.Parameters.Contains(parameter22)) { command3.Parameters.Remove(parameter22); } parameter21.Value = item.BillDetailID; command3.ExecuteNonQuery(); if (!item.DefaultOption && (item.ItemChoices != null)) { command3.Parameters.Add(parameter22); for (int k = 0; k < item.ItemChoices.Length; k++) { OrderItemChoice choice = item.ItemChoices[k]; command3.CommandText = "insertOrderBillOption"; parameter22.Value = choice.ChoiceID; command3.ExecuteNonQuery(); if (((int) parameter20.Value) == 0) { transaction.Rollback(); return "Can't insert choice"; } } } } } if (num == 2) { num = 0; } } } transaction.Commit(); transaction = null; if ((CustFullName != null) && (CustFullName != "")) { str = this.SendTakeOut(orderInfo.OrderID, CustID, CustFullName); if (str != null) { return str; } } if (print) { billDetailID = (string[]) list.ToArray(typeof(string)); this.PrintKitchen(billDetailID); for (int m = 0; m < list2.Count; m++) { OrderInformation.OrderPrintKitchen((int) list2[m]); } } str = this.CheckOrderClose(orderInfo.OrderID); if (str != null) { return str; } } catch (Exception exception) { if (transaction != null) { transaction.Rollback(); } return exception.ToString(); } finally { if (connection != null) { connection.Close(); } } return orderInfo.OrderID.ToString(); }
public OrderInformation GetOrder(int tableID) { SqlConnection connection = null; OrderInformation information2; try { int num; int num2; int num3; connection = ConnectDB.GetConnection(); SqlCommand selectCommand = new SqlCommand("getOrderInformation", connection); selectCommand.CommandType = CommandType.StoredProcedure; selectCommand.Parameters.Add("@tableID", SqlDbType.Int).Value = tableID; SqlDataAdapter adapter = new SqlDataAdapter(selectCommand); DataSet dataSet = new DataSet(); adapter.Fill(dataSet); DataTable table = dataSet.Tables[0]; if (table.Rows.Count <= 0) { return null; } OrderInformation information = new OrderInformation(); DataRow row = table.Rows[0]; information.OrderID = (int) row["OrderID"]; information.OrderTime = (DateTime) row["OrderTime"]; information.TableID = (int) row["TableID"]; information.EmployeeID = (int) row["EmployeeID"]; information.NumberOfGuest = (int) row["NumberOfGuest"]; information.CloseOrderDate = (row["CloseOrderDate"] is DBNull) ? AppParameter.MinDateTime : ((DateTime) row["CloseOrderDate"]); information.CreateDate = (DateTime) row["CreateDate"]; table = dataSet.Tables[1]; if (table.Rows.Count <= 0) { information.Bills = null; return information; } information.Bills = new OrderBill[table.Rows.Count]; for (num = 0; num < table.Rows.Count; num++) { information.Bills[num] = new OrderBill(); row = table.Rows[num]; information.Bills[num].OrderBillID = (int) row["OrderBillID"]; information.Bills[num].BillID = (int) row["BillID"]; information.Bills[num].EmployeeID = (int) row["EmployeeID"]; information.Bills[num].Items = null; information.Bills[num].CloseBillDate = (row["CloseBillDate"] is DBNull) ? AppParameter.MinDateTime : ((DateTime) row["CloseBillDate"]); } table = dataSet.Tables[2]; if (table.Rows.Count <= 0) { return information; } for (num = 0; num < table.Rows.Count; num++) { row = table.Rows[num]; int num5 = (int) row["OrderBillID"]; num2 = 0; while (num2 < information.Bills.Length) { if (information.Bills[num2].OrderBillID == num5) { OrderBill bill = information.Bills[num2]; if (bill.Items == null) { bill.Items = new OrderBillItem[1]; } else { OrderBillItem[] items = bill.Items; bill.Items = new OrderBillItem[bill.Items.Length + 1]; num3 = 0; while (num3 < items.Length) { bill.Items[num3] = items[num3]; num3++; } } OrderBillItem item = new OrderBillItem(); item.BillDetailID = (int) row["BillDetailID"]; item.MenuID = (int) row["MenuID"]; item.Unit = (int) row["Unit"]; item.Status = (byte) row["Status"]; item.Message = (row["Message"] is DBNull) ? null : ((string) row["Message"]); item.ServeTime = (row["ServeTime"] is DBNull) ? AppParameter.MinDateTime : ((DateTime) row["ServeTime"]); item.CancelReasonID = (int) row["CancelReasonID"]; item.EmployeeID = (int) row["EmployeeID"]; item.ChangeFlag = false; item.ItemChoices = null; bill.Items[bill.Items.Length - 1] = item; break; } num2++; } } table = dataSet.Tables[3]; if (table.Rows.Count <= 0) { return information; } for (num = 0; num < table.Rows.Count; num++) { row = table.Rows[num]; int num6 = (int) row["BillDetailID"]; for (num2 = 0; num2 < information.Bills.Length; num2++) { if ((information.Bills[num2] != null) && (information.Bills[num2].Items != null)) { for (num3 = 0; num3 < information.Bills[num2].Items.Length; num3++) { if (information.Bills[num2].Items[num3].BillDetailID == num6) { OrderBillItem item2 = information.Bills[num2].Items[num3]; if (item2.ItemChoices == null) { item2.ItemChoices = new OrderItemChoice[1]; item2.DefaultOption = false; } else { OrderItemChoice[] itemChoices = item2.ItemChoices; item2.ItemChoices = new OrderItemChoice[item2.ItemChoices.Length + 1]; for (int i = 0; i < itemChoices.Length; i++) { item2.ItemChoices[i] = itemChoices[i]; } } OrderItemChoice choice = new OrderItemChoice(); choice.OptionID = (int) row["OptionID"]; choice.ChoiceID = (int) row["ChoiceID"]; item2.ItemChoices[item2.ItemChoices.Length - 1] = choice; break; } } } } } information2 = information; } catch (Exception) { information2 = null; } finally { if (connection != null) { connection.Close(); } } return information2; }
public string SendOrder(OrderInformation orderInfo, int CustID, string CustFullName) { return this.SendOrderPrint(orderInfo, CustID, CustFullName, true); }