/// <summary> /// Prints order information to a receipt /// </summary> /// <param name="success"></param> /// <param name="v2"></param> /// <param name="v3"></param> /// <returns></returns> public string Receipt(bool cash, double money, double owed) { StringBuilder sb = new StringBuilder(); sb.Append("Order " + OrderNumber.ToString() + "\n"); sb.Append(DateTime.Now.ToString() + "\n\n"); foreach (IOrderItem item in Items) { sb.Append(item.ToString() + " " + "$" + String.Format("{0:0.00}", item.Price) + "\n"); foreach (String instruction in item.SpecialInstructions) { sb.Append(" " + instruction.ToString() + "\n"); } } sb.Append("\nSubtotal $" + String.Format("{0:0.00}", Subtotal)); double tax = 0.16; sb.Append("\nTax $" + String.Format("{0:0.00}", Subtotal * tax)); sb.Append("\nTotal $" + String.Format("{0:0.00}", Total)); if (cash) { sb.Append("\nCASH $" + String.Format("{0:0.00}", money) + "\n"); sb.Append("Change $" + String.Format("{0:0.00}", money - owed) + "\n"); } else { sb.Append("\nCredit $" + String.Format("{0:0.00}", Total) + "\n"); } sb.Append("\n------------------------------------------\n\n"); return(sb.ToString()); }
public Order(string description, DateTime orderDate) { Description = description; OrderDate = orderDate.ToString(); _instances.Add(this); OrderNumber = _instances.Count; Title = OrderNumber.ToString(); }
public override string ToString() { return("Order number: " + OrderNumber.ToString() + Environment.NewLine + "" + DatabaseMethods.SelectOffers().Where(x => x.OfferNumber == TravelOfferNumber).First().ToString() + Environment.NewLine + "Client: " + DatabaseMethods.SelectClients().Where(x => x.ClientNumber == OrderClientNumber).First().Name + " " + DatabaseMethods.SelectClients().Where(x => x.ClientNumber == OrderClientNumber).First().LastName + Environment.NewLine + "Worker: " + ServiceWorker.Name + " " + ServiceWorker.LastName + Environment.NewLine + "Order price: €" + OrderPrice.ToString() + Environment.NewLine + "Travelers amount: " + OrderClientsAmount.ToString() + Environment.NewLine + "Travel start date: " + TravelStartDate.ToShortDateString() + Environment.NewLine + "Order registered on: " + OrderRegisterDate.ToShortDateString()); }
public void _05_ToString_ShouldPutAHashtagBeforeTheSequence() { AssertHasSequenceProperty(); AssertHasCreateNextMethod(); for (int i = 0; i < 3; i++) { OrderNumber number = CreateNext(); int sequence = (int)_sequenceProperty.GetValue(number); Assert.That(number.ToString(), Is.EqualTo($"#{sequence}")); } }
public void Change(OrderStatus order, OrderNumber orderNum, OrderDirection dir, int number) { // 命令がない場合は返す if (!CheckrOrder(order, orderNum) || (m_OrderStatus[orderNum] == order)) { return; } print("命令承認!:" + orderNum.ToString() + ":" + m_OrderStatus[orderNum].ToString()); // 最後の行動 m_Orders[orderNum][m_OrderStatus[orderNum]].EndAction(gameObject); // 命令状態の変更 m_OrderStatus[orderNum] = order; m_StateTimer = 0.0f; // 最初の行動 m_ChangeOrders[number](orderNum, dir, m_ActionObject); }
/// <summary> /// Register queue transaction /// </summary> public void Insert() { var colValPairs = new List <Tuple <string, string> >(); colValPairs.Add(new Tuple <string, string>("Codigo", ProductCode)); colValPairs.Add(new Tuple <string, string>("CategoriaProducto", ProductCategory)); colValPairs.Add(new Tuple <string, string>("Descripcion", ProductDescription)); colValPairs.Add(new Tuple <string, string>("PrecioVendido", PriceSold.ToString())); colValPairs.Add(new Tuple <string, string>("UnidadesVendidas", UnitsSold.ToString())); colValPairs.Add(new Tuple <string, string>("TotalVendido", TotalAmountSold.ToString())); colValPairs.Add(new Tuple <string, string>("FechaVenta", Utilities.FormatDateForMySql(DateTime.Now))); colValPairs.Add(new Tuple <string, string>("Cliente", Customer)); colValPairs.Add(new Tuple <string, string>("Vendedor", Seller)); colValPairs.Add(new Tuple <string, string>("FacturaRequerida", FiscalReceiptRequiredString)); colValPairs.Add(new Tuple <string, string>("NumeroPedido", OrderNumber.ToString())); MySqlData.Insert(colValPairs); }
public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append("Order Number " + OrderNumber.ToString()); sb.AppendLine(); sb.Append(DateTime.Now.ToString()); sb.AppendLine(); foreach (IOrderItem i in items) { sb.Append(i.ToString() + " " + i.Price.ToString()); sb.AppendLine(); } sb.Append("Tax is " + Tax.ToString()); sb.AppendLine(); sb.Append("Total is" + Subtotal.ToString()); sb.AppendLine(); sb.Append("Paid with Credit"); return(sb.ToString()); }
public void WriteXml(XmlWriter writer) { writer.WriteStartElement("Order"); writer.WriteElementString("OrderNumber", OrderNumber.ToString()); writer.WriteElementString("Client", Client); writer.WriteElementString("OrderAddress", OrderAddress); writer.WriteElementString("OrderAmount", OrderAmount.ToString()); writer.WriteElementString("OrderTime", OrderTime.ToString("yy-MM-dd")); writer.WriteStartElement("OrderDetails"); foreach (OrderDetail o in OrderDetails) { writer.WriteStartElement("Trade"); writer.WriteElementString("TradeId", o.TradeId.ToString()); writer.WriteElementString("TradeName", o.TradeName); writer.WriteElementString("TradeAmount", o.TradeAmount.ToString()); writer.WriteElementString("TradePrice", o.TradePrice.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); }
public FrontpadOrder ConvertToFrontpadOrder() { List <string> productsId = new List <string>(); List <string> productsNumber = new List <string>(); getProductIdAndNumberArrays(Products, ref productsId, ref productsNumber); string phone = Helper.ParsePhone(ClientInfo.Phone); var frontpadOrder = new FrontpadOrder { Secret = "", //устанавливается после выполнения метода уровнем выше ClientName = ClientInfo.Name, ClientPhone = phone, ProductsId = productsId, ProductsNumber = productsNumber, Email = Email, FullAddress = ClientInfo.City + ", " + ClientInfo.Street, Description = "Заказ " + OrderNumber.ToString() + ". " + Comment }; return(frontpadOrder); }
public string ToString(double cashGiven) { StringBuilder sb = new StringBuilder(); double changeDue = Subtotal - cashGiven; sb.Append("Order Number " + OrderNumber.ToString()); sb.AppendLine(); sb.Append(DateTime.Now.ToString()); sb.AppendLine(); foreach (IOrderItem i in items) { sb.Append(i.ToString() + " " + i.Price.ToString()); sb.AppendLine(); } sb.Append("Tax is " + Tax.ToString()); sb.AppendLine(); sb.Append("Total is" + Subtotal.ToString()); sb.AppendLine(); sb.Append("Paid with " + cashGiven.ToString()); sb.AppendLine(); sb.Append("Change due " + changeDue.ToString()); return(sb.ToString()); }
public string CreateCsvRow(char separator) { var parts = new[] { OrderNumber.ToString(), Character.ToString(), Occurrences.ToString(), CodeWord }; return(string.Join(separator, parts)); }
/// <summary> /// Prints receipt /// </summary> /// <param name="pay"> number that represents the method of payment</param> private void Receipt(int pay) { ReceiptPrinter r = new ReceiptPrinter(); StringBuilder sb = new StringBuilder(); sb.Append("\t Cowboy Cafe\n _________________________________________\n\nOrder #" + OrderNumber.ToString() + "\t\t\t" + DateTime.Now + "\n\n"); foreach (IOrderItem i in Items) { sb.Append(i.ToString() + "\t\t " + i.Price.ToString("C2")); foreach (string st in i.SpecialInstructions) { sb.Append("\n\t" + st); } sb.Append("\n"); } sb.Append("\nSubtotal: " + Subtotal.ToString("C2") + "\nTax: \t " + Tax.ToString("C2") + "\nTotal: \t " + Total.ToString("C2") + "\n"); if (pay == 0) { sb.Append("\nPaid: \t" + Paid.ToString("C2")); } else { sb.Append("\nCredit: \t " + Paid.ToString("C2")); } sb.Append("\nChange: \t " + Change.ToString("C2")); string s = sb.ToString(); MessageBox.Show(s); r.Print(s); s = "Contents of the Cash Drawer\n\n____________________________\n Coins\n____________________________\n\nPennies: " + cd.Pennies + "\nNickels: " + cd.Nickels + "\nDimes: " + cd.Dimes + "\nQuarters: " + cd.Quarters + "\nHalf Dollars: " + cd.HalfDollars + "\nDollars: " + cd.Dollars + "\n\n____________________________\n Bills\n____________________________\n\nOnes: " + cd.Ones + "\nTwos: " + cd.Twos + "\nFives: " + cd.Fives + "\nTens: " + cd.Tens + "\nTwenties: " + cd.Twenties + "\nFifties: " + cd.Fifties + "\nHundreds: " + cd.Hundreds + "\n\n____________________________\nCash Drawer Total: " + cd.TotalValue.ToString("C2") + "\n____________________________\n"; MessageBox.Show(s); NewOrder(); }
public string ProcessCallBack() { string PM = AppLogic.CleanPaymentMethod(AppLogic.ro_PMCreditCard); AppLogic.ValidatePM(PM); // this WILL throw a hard security exception on any problem! //recalculate total for verification decimal cartTotal = cart.Total(true); decimal orderTotal = cartTotal - CommonLogic.IIF(cart.Coupon.CouponType == CouponTypeEnum.GiftCard, CommonLogic.IIF(cartTotal < cart.Coupon.DiscountAmount, cartTotal, cart.Coupon.DiscountAmount), 0); orderTotal = Localization.ParseNativeDecimal(Localization.CurrencyStringForGatewayWithoutExchangeRate(orderTotal)); if (!ThisCustomer.HasCustomerRecord) { FirstPay.order_id = 0; throw new System.Security.SecurityException("Customer not signed in to complete transaction."); } if (!Success) { string IP = ""; if (cart != null) { IP = cart.ThisCustomer.LastIPAddress; } string sql = "insert into FailedTransaction(CustomerID,OrderNumber,IPAddress,OrderDate,PaymentGateway,PaymentMethod,TransactionCommand,TransactionResult) values(" + ThisCustomer.CustomerID.ToString() + "," + OrderNumber.ToString() + "," + DB.SQuote(IP) + ",getdate()," + DB.SQuote("1stPay") + "," + DB.SQuote(AppLogic.ro_PMCreditCard) + "," + DB.SQuote("") + "," + DB.SQuote(ParamString) + ")"; DB.ExecuteSQL(sql); return(ReturnFirstPayError()); } //Need to add this to check that the transaction processed through the gateway and that the charged amount matches the orderTotal. ConfirmTransaction(orderTotal); // this WILL throw a hard security exception on any problem! if (cart.IsEmpty()) { ErrorMessage er = new ErrorMessage("Could not complete the transaction because the shopping cart was empty."); var checkoutController = CheckOutPageControllerFactory.CreateCheckOutPageController(ThisCustomer, cart); return(checkoutController.GetCheckoutPaymentPage() + "?errormsg=" + er.MessageId); } //the callback is valid. make the order. int orderNumber = OrderNumber; //Setup param list List <SqlParameter> sqlParams = new List <SqlParameter>(); try { ThisCustomer.PrimaryBillingAddress.PaymentMethodLastUsed = AppLogic.ro_PMCreditCard; ThisCustomer.PrimaryBillingAddress.UpdateDB(); //Process as AuthOnly first string status = Gateway.MakeOrder(AppLogic.ro_PMCreditCard, AppLogic.TransactionModeIsAuthOnly() ? AppLogic.ro_TXModeAuthOnly : AppLogic.ro_TXModeAuthCapture, cart, orderNumber, "", "", ReferenceNumber, ""); if (status == AppLogic.ro_OK) { string AVSResult = AVSResponse; string AuthorizationCode = AuthCode; string AuthorizationTransID = ReferenceNumber; //Add all the params needed. sqlParams.Add(new SqlParameter("@AuthorizationTransId", AuthorizationTransID)); sqlParams.Add(new SqlParameter("@AVSResult", AVSResult)); sqlParams.Add(new SqlParameter("@AuthorizationCode", AuthorizationCode)); sqlParams.Add(new SqlParameter("@CCType", CCType)); sqlParams.Add(new SqlParameter("@CCExpMonth", CCExpMonth)); sqlParams.Add(new SqlParameter("@CCExpYear", CCExpYear)); sqlParams.Add(new SqlParameter("@CCNumberLast4", CCNumberLast4)); sqlParams.Add(new SqlParameter("@OrderNumber", orderNumber)); sqlParams.Add(new SqlParameter("@TransactionState", ADNSFTransactionState)); if (CVV2Response.Length > 0) { AVSResult += ", CV Result: " + CVV2Response; } // Now, if paid for, process as Captured if (ADNSFTransactionState == AppLogic.ro_TXStateAuthorized) { string sql = "Update Orders Set AuthorizationPNREF=@AuthorizationTransId" + ", AVSResult=@AVSResult" + ", AuthorizationCode=@AuthorizationCode" + ", CardType=@CCType" + ", CardExpirationMonth=@CCExpMonth" + ", CardExpirationYear=@CCExpYear" + ", Last4=@CCNumberLast4" + " Where OrderNumber=@OrderNumber;"; DB.ExecuteSQL(sql, sqlParams.ToArray()); } if (ADNSFTransactionState == AppLogic.ro_TXStateCaptured) { string sql = "Update Orders Set AuthorizationPNREF=@AuthorizationTransId + '|CAPTURE=' + @AuthorizationTransId" + ", AVSResult=@AVSResult" + ", AuthorizationCode=@AuthorizationCode" + ", CardType=@CCType" + ", CardExpirationMonth=@CCExpMonth" + ", CardExpirationYear=@CCExpYear" + ", Last4=@CCNumberLast4" + ", CapturedOn=getdate()" + " Where OrderNumber=@OrderNumber;"; Gateway.ProcessOrderAsCaptured(orderNumber); DB.ExecuteSQL(sql, sqlParams.ToArray()); } else if (ADNSFTransactionState == AppLogic.ro_TXStateError) { DB.ExecuteSQL("update orders set TransactionState=@TransactionState where OrderNumber=@OrderNumber;", sqlParams.ToArray()); } if (!string.IsNullOrEmpty(ReferenceNumber)) { OrderTransactionCollection transactions = new OrderTransactionCollection(orderNumber); transactions.AddTransaction(ADNSFTransactionState, null, ParamString, AuthorizationTransID, AuthorizationCode, AppLogic.ro_PMCreditCard, gateway.DisplayName(ThisCustomer.LocaleSetting), orderTotal); } } else if (status != AppLogic.ro_3DSecure) // If the status is anything but Ok or 3DSecure then send them back to the checkout process and display the error status { ErrorMessage er = new ErrorMessage(status); var checkoutController = CheckOutPageControllerFactory.CreateCheckOutPageController(ThisCustomer, cart); return(checkoutController.GetCheckoutPaymentPage() + "?errormsg=" + er.MessageId); } if (Math.Abs(orderTotal - Total) > 0.05M) // allow 0.05 descrepency to allow minor rounding errors { Order.MarkOrderAsFraud(orderNumber, true); DB.ExecuteSQL("update orders set FraudedOn=getdate(), IsNew=1 where OrderNumber=@OrderNumber;", sqlParams.ToArray()); } } catch // if we failed, did the IPN come back at the same time? { cart = new ShoppingCart(1, ThisCustomer, CartTypeEnum.ShoppingCart, 0, false); if (cart.IsEmpty()) { using (SqlConnection dbconn = DB.dbConn()) { dbconn.Open(); using (SqlCommand cmd = new SqlCommand("select MAX(OrderNumber) N from dbo.orders where CustomerID = @CustomerId;", dbconn)) { cmd.Parameters.Add(new SqlParameter("@CustomerId", ThisCustomer.CustomerID)); orderNumber = cmd.ExecuteScalar() as int? ?? 0; } } } } return("orderconfirmation.aspx?ordernumber=" + orderNumber + "&paymentmethod=CreditCard"); }
// if RefundAmount == 0.0M, then then ENTIRE order amount will be refunded! public override String RefundOrder(int OriginalOrderNumber, int NewOrderNumber, decimal RefundAmount, String RefundReason, Address UseBillingAddress) { String result = AppLogic.ro_OK; int OrderNumber = 0; if (NewOrderNumber == 0) { OrderNumber = OriginalOrderNumber; } else { OrderNumber = NewOrderNumber; } DB.ExecuteSQL("update orders set RefundTXCommand=NULL, RefundTXResult=NULL where OrderNumber=" + OriginalOrderNumber.ToString()); bool useLiveTransactions = AppLogic.AppConfigBool("UseLiveTransactions"); String TransID = String.Empty; int CustomerID = 0; Decimal OrderTotal = Decimal.Zero; Decimal RefundTotal = Decimal.Zero; String CardNumber = String.Empty; String CardExpM = String.Empty; String CardExpY = String.Empty; using (SqlConnection dbconn = DB.dbConn()) { dbconn.Open(); using (IDataReader rs = DB.GetRS("select * from Orders with (NOLOCK) where OrderNumber=" + OriginalOrderNumber.ToString(), dbconn)) { if (rs.Read()) { TransID = DB.RSField(rs, "AuthorizationPNREF"); CustomerID = DB.RSFieldInt(rs, "CustomerID"); OrderTotal = DB.RSFieldDecimal(rs, "OrderTotal"); CardNumber = Security.UnmungeString(DB.RSField(rs, "CardNumber"), rs[AppLogic.AppConfig("OrdersCCSaltField")].ToString()); if (CardNumber.StartsWith(Security.ro_DecryptFailedPrefix, StringComparison.InvariantCultureIgnoreCase)) { CardNumber = DB.RSField(rs, "CardNumber"); } CardExpM = DB.RSField(rs, "CardExpirationMonth"); CardExpY = DB.RSField(rs, "CardExpirationYear").Substring(2, 2); //For full refunds a value of zero is passed, so use the order total RefundTotal = CommonLogic.IIF(RefundAmount > 0, RefundAmount, OrderTotal); } } } if (CardNumber == AppLogic.ro_CCNotStoredString || CardNumber.Length == 0) { return("Failed. To process Refunds with iDeposit using the store front, you must store the credit card numbers in the database. See AppConfig variable StoreCCInDB."); } String Merchant_User_Name = GetIDepositAppConfig("USERNAME"); String Merchant_Password = GetIDepositAppConfig("PASSWORD"); String Clerk_Id = GetIDepositAppConfig("CLERKID"); ASCIIEncoding encoding = new ASCIIEncoding(); StringBuilder transactionCommand = new StringBuilder(4096); transactionCommand.Append("Transaction_Type=RETURN"); transactionCommand.Append("&Merchant_User_Name=" + Merchant_User_Name); transactionCommand.Append("&Merchant_Password="******"&Charge_Amount=" + Localization.CurrencyStringForGatewayWithoutExchangeRate(RefundTotal)); transactionCommand.Append("&Transaction_Id=" + TransID); transactionCommand.Append("&Credit_Card_Number=" + CardNumber); transactionCommand.Append("&Credit_Card_Exp_Date=" + CardExpM + CardExpY); transactionCommand.Append("&Tracking_Number=" + OrderNumber.ToString()); transactionCommand.Append("&Clerk_Id=" + HttpContext.Current.Server.UrlEncode(Clerk_Id)); transactionCommand.Append("&Station_Id=" + CommonLogic.CustomerIpAddress()); transactionCommand.Append("&Comments=" + HttpContext.Current.Server.UrlEncode(AppLogic.AppConfig("StoreName") + " Order " + OrderNumber.ToString() + " Refund Reason: " + RefundReason)); String PasswordToken = "Merchant_Password="******"Merchant_Password="******"*".PadLeft(Merchant_Password.Length, '*'); String CardToken = String.Format("Credit_Card_Number={0}", CardNumber); String CardTokenReplacement = String.Format("Credit_Card_Number={0}", "x".PadLeft(CardNumber.Length, 'x')); DB.ExecuteSQL("update orders set RefundTXCommand=" + DB.SQuote(transactionCommand.ToString().Replace(CardToken, CardTokenReplacement).Replace(PasswordToken, PasswordTokenReplacement)) + " where OrderNumber=" + OriginalOrderNumber.ToString()); if (TransID.Length == 0 || TransID == "0") { result = "Failed. Invalid or Empty Transaction ID"; } else { try { byte[] data = encoding.GetBytes(transactionCommand.ToString()); // Prepare web request... String AuthServer = GetIDepositAppConfig("URL"); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(AuthServer); myRequest.Method = "POST"; myRequest.ContentType = "application/x-www-form-urlencoded"; myRequest.ContentLength = data.Length; Stream newStream = myRequest.GetRequestStream(); // Send the data. newStream.Write(data, 0, data.Length); newStream.Close(); // get the response WebResponse myResponse; String rawResponseString = String.Empty; try { myResponse = myRequest.GetResponse(); using (StreamReader sr = new StreamReader(myResponse.GetResponseStream())) { rawResponseString = sr.ReadToEnd(); // Close and clean up the StreamReader sr.Close(); } myResponse.Close(); } catch { rawResponseString = ""; } // rawResponseString now has gateway response String authNum = CommonLogic.ExtractToken(rawResponseString, "<AuthorizationNumber>", "</AuthorizationNumber>"); String transactionID = CommonLogic.ExtractToken(rawResponseString, "<TransactionId>", "</TransactionId>"); String AVSStatus = CommonLogic.ExtractToken(rawResponseString, "<AVSStatus>", "</AVSStatus>"); String CVStatus = CommonLogic.ExtractToken(rawResponseString, "<CVStatus>", "</CVStatus>"); String returnCode = CommonLogic.ExtractToken(rawResponseString, "<ReturnCode>", "</ReturnCode>"); String responseStatus = CommonLogic.ExtractToken(rawResponseString, "<Status>", "</Status>"); String statusMsg = CommonLogic.ExtractToken(rawResponseString, "<StatusMessage>", "</StatusMessage>"); DB.ExecuteSQL("update orders set RefundTXResult=" + DB.SQuote(rawResponseString) + " where OrderNumber=" + OrderNumber.ToString()); if (returnCode == "1") { result = AppLogic.ro_OK; } else if (returnCode == "0") { result = "Failed. " + statusMsg; } else { result = "Failed. Error calling iDeposit.net gateway. " + statusMsg; } } catch { result = "Failed. NO RESPONSE FROM GATEWAY!"; } } return(result); }
public void DeleteOrder() { MySqlData.Delete("NumeroPedido", OrderNumber.ToString()); }
public override string ToString() { return("OrderNumber:" + OrderNumber.ToString() + "\n" + "DishNumber:" + DishNumber.ToString() + "\n" + "AmountameDishes:" + AmountSameDishes.ToString() + "\n"); }
public string GetForrmattedOrderNumber() { return(OrderNumber.ToString("00000000")); }