protected void QuoteBtn_Click(object sender, EventArgs e) { Debug.WriteLine("hello"); try { decimal PickupPrice = 0, deliveryfee; bool serviceType = true; if (LodgeUpBtn.Checked) { serviceType = false; PickupPrice = 0; } else if (PickUpBtn.Checked) { serviceType = true; PickupPrice = 5; } bool parcelType = true; if (TypeofParcel.SelectedItem.ToString() == "Parcel") { parcelType = false; } else { parcelType = true; } ParcelInfo parcelInfo = new ParcelInfo(serviceType, parcelType, Convert.ToByte(Pieces.Text), Content.Text, Convert.ToDecimal(ValueofContent.Text), Convert.ToSingle(Weight.Text), 0, PickupPrice); if (LodgeUpBtn.Checked) { deliveryfee = ParcelController.Quote(SenderLocation.Text, SenderPostal.Text, ReceiverLocation.Text, ReceiverPostal.Text, parcelInfo, null); } else { PickUpInfo pickupInfo = new PickUpInfo(Convert.ToDateTime(dbPickUpDate.Text), Convert.ToDateTime(ParcelRTime.Text), remarksNote.Text, true); deliveryfee = ParcelController.Quote(SenderLocation.Text, SenderPostal.Text, ReceiverLocation.Text, ReceiverPostal.Text, parcelInfo, pickupInfo); } //Response.Redirect("Checkout.aspx"); HttpContext.Current.Items.Add("DeliveryFee", deliveryfee); HttpContext.Current.Items.Add("PickUpFee", PickupPrice); HttpContext.Current.Items.Add("SenderName", SenderName.Text); HttpContext.Current.Items.Add("SenderContactNo", SenderContactNo.Text); HttpContext.Current.Items.Add("IDType", IDType.Text); HttpContext.Current.Items.Add("SenderIDNo", SenderIDNo.Text); HttpContext.Current.Items.Add("SenderAddress", SenderAdd.Text); HttpContext.Current.Items.Add("SenderPostal", SenderPostal.Text); HttpContext.Current.Items.Add("SenderLocation", SenderLocation.Text); HttpContext.Current.Items.Add("SenderCity", SenderCity.Text); HttpContext.Current.Items.Add("SenderState", SenderState.Text); HttpContext.Current.Items.Add("SenderEmail", SenderEmail.Text); HttpContext.Current.Items.Add("ServiceType", serviceType); if (serviceType == true) { HttpContext.Current.Items.Add("PickUpDate", dbPickUpDate.Text); HttpContext.Current.Items.Add("PickUpTime", ParcelRTime.Text); HttpContext.Current.Items.Add("Remarks", remarksNote.Text); } HttpContext.Current.Items.Add("ReceiverName", ReceiverName.Text); HttpContext.Current.Items.Add("ReceiverContactNo", ReceiverContactNo.Text); HttpContext.Current.Items.Add("ReceiverAddress", ReceiverAdd.Text); HttpContext.Current.Items.Add("ReceiverPostal", ReceiverPostal.Text); HttpContext.Current.Items.Add("ReceiverLocation", ReceiverLocation.Text); HttpContext.Current.Items.Add("ReceiverCity", ReceiverCity.Text); HttpContext.Current.Items.Add("ReceiverState", ReceiverState.Text); HttpContext.Current.Items.Add("ReceiverEmail", ReceiverEmail.Text); HttpContext.Current.Items.Add("ParcelType", parcelType); HttpContext.Current.Items.Add("Pieces", Pieces.Text); HttpContext.Current.Items.Add("Content", Content.Text); HttpContext.Current.Items.Add("ValueofContent", ValueofContent.Text); HttpContext.Current.Items.Add("Weight", Weight.Text); } catch (NullReferenceException) { } try { Server.Transfer("Checkout.aspx", true); } catch (ThreadAbortException) { // Exception ignored: Thread Abort = discontinue processing on the current page } }
public static decimal Quote(string senderLocation, string senderPostCode, string receiverLocation, string receiverPostCode, ParcelInfo parcel, PickUpInfo pickUp) { //decimal fee = new decimal(10 + (pickUp == null ? 0 : 5)); //if (parcel.Weight > 5) // fee += 5; //else if (parcel.Weight > 10) // fee += 10; //else if (parcel.Weight > 15) // fee += 15; //else if (parcel.Weight > 20) // fee += 20; //else if (parcel.Weight > 25) // fee += 25; //else if (parcel.Weight > 30) // fee += 30; //return fee; decimal fee = new decimal(11 + (pickUp == null ? 0 : 5)); // if pick up add 5 // base 11 if <= 0.5 // + 1.4 each 0.5 kg double extraCharges = 0; if (parcel.Weight > 0.5) { float weight = parcel.Weight; while (weight > 0.5) { extraCharges += 1.4; weight -= 0.5f; } } fee += new decimal(extraCharges); return(fee); }
protected void btnUpdate_Click(object sender, EventArgs e) { try { if (ServiceType.Text == "Lodge In") { serType = false; } else { serType = true; } if (ParcelType.Text == "Parcel") { parType = false; } else { parType = true; } if (SenderIDType.Text == "IC Number") { idNo = 1; } else if (SenderIDType.Text == "Old IC Number") { idNo = 2; } else { idNo = 3; } PersonInfo senderInfo = new PersonInfo(SenderName.Text, SenderMail.Text, SenderPhoneNo.Text, addressCheckout.Text, postcodeCheckout.Text, locationCheckout.Text, cityCheckout.Text, stateCheckout.Text); PersonInfo receiverInfo = new PersonInfo(ReceiverName.Text, ReceiverMail.Text, ReceiverPhoneNo.Text, ReceiverAddress.Text, ReceiverPostal.Text, ReceiverLocation.Text, ReceiverCity.Text, ReceiverState.Text); ParcelInfo parcelInfo = new ParcelInfo(serType, parType, Convert.ToByte(Piece.Text), Content.Text, Convert.ToDecimal(Value.Text), Convert.ToSingle(Weight.Text), Convert.ToDecimal(price.Text), Convert.ToDecimal(pickUpPrice.Text)); string uid = Authentication.GetUid(); //byte userIDType = Repository.GetUserIDType(uid); // string userIDNo = Convert.ToString(Repository.GetUserIDNumber(uid)); if (serType == false) { int trackingNo = ParcelController.Create(uid, idNo, SenderIDNumber.Text, senderInfo, receiverInfo, parcelInfo, null); Response.Redirect("OrderSummary.aspx?trackNo=" + trackingNo); } else if (serType == true) { DateTime pud; if (!DateTime.TryParseExact(PickUpDate.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out pud)) { Response.Write("Problem with date"); return; } DateTime put; if (!DateTime.TryParseExact(PickUpTime.Text, "HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out put)) { Response.Write("Problem with time"); return; } PickUpInfo pickInfo = new PickUpInfo(pud, put, Remarks.Text, false); int trackingNo = ParcelController.Create(uid, idNo, SenderIDNumber.Text, senderInfo, receiverInfo, parcelInfo, pickInfo); Response.Redirect("OrderSummary.aspx?trackNo=" + trackingNo); } } catch (Exception ex) { if (ex is NullReferenceException) { Response.Write("Payment Not Successfully!"); } //if (ex is ThreadAbortException) //{ // //ignore //} } }
//add new parcel public static int Create(string userUid, byte senderIdType, string senderIdNumber, PersonInfo sender, PersonInfo receiver, ParcelInfo parcel, PickUpInfo pickUp) { using (SqlConnection conn = new SqlConnection(Repository.connectionString)) { conn.Open(); using (SqlTransaction tx = conn.BeginTransaction()) { try { string query = "insert into parcel (service, type, pieces, content, value, weight, delivery_fee, " + "pick_up_fee, user_uid, sender_name, sender_id_type, sender_id_number, sender_phone, " + "sender_email, sender_address, sender_location, sender_postcode, receiver_name, " + "receiver_phone, receiver_email, receiver_address, receiver_location, " + "receiver_postcode, status) OUTPUT INSERTED.tracking_number VALUES " + "(@SERVICE, @TYPE, @PIECES, @CONTENT, @VALUE, @WEIGHT, @DFEE, @PFEE, @UUID, @SNAME, @SIDTYPE, " + "@SIDNUM, @SPHONE, @SEMAIL, @SADDRESS, " + "@SLOCATION, @SPOSTCODE, @RNAME, @RPHONE, @REMAIL, " + "@RADDRESS, @RLOCATION, @RPOSTCODE, @STATUS);"; int trackingNumber = 0; using (SqlCommand cmd = new SqlCommand(query, conn, tx)) { cmd.Parameters.AddWithValue("@SERVICE", parcel.Service); cmd.Parameters.AddWithValue("@TYPE", parcel.Type); cmd.Parameters.AddWithValue("@PIECES", parcel.Pieces); cmd.Parameters.AddWithValue("@CONTENT", parcel.Content); cmd.Parameters.AddWithValue("@VALUE", parcel.Value); cmd.Parameters.AddWithValue("@WEIGHT", parcel.Weight); cmd.Parameters.AddWithValue("@DFEE", parcel.DeliveryFee); cmd.Parameters.AddWithValue("@PFEE", parcel.PickUpFee); cmd.Parameters.AddWithValue("@UUID", userUid); cmd.Parameters.AddWithValue("@SNAME", sender.Name); cmd.Parameters.AddWithValue("@SIDTYPE", senderIdType); cmd.Parameters.AddWithValue("@SIDNUM", senderIdNumber); cmd.Parameters.AddWithValue("@SPHONE", sender.Phone); cmd.Parameters.AddWithValue("@SEMAIL", sender.Email); cmd.Parameters.AddWithValue("@SADDRESS", sender.Address); cmd.Parameters.AddWithValue("@SLOCATION", sender.Location); cmd.Parameters.AddWithValue("@SPOSTCODE", sender.PostCode); cmd.Parameters.AddWithValue("@RNAME", receiver.Name); cmd.Parameters.AddWithValue("@RPHONE", receiver.Phone); cmd.Parameters.AddWithValue("@REMAIL", receiver.Email); cmd.Parameters.AddWithValue("@RADDRESS", receiver.Address); cmd.Parameters.AddWithValue("@RLOCATION", receiver.Location); cmd.Parameters.AddWithValue("@RPOSTCODE", receiver.PostCode); cmd.Parameters.AddWithValue("@STATUS", (pickUp != null)); // either lodge in or pick up 0 / 1 trackingNumber = (int)cmd.ExecuteScalar(); } if (pickUp != null) { query = "insert into pick_up_info values (@TN, @PUD, @PUT, @REMARK, @STATUS);"; using (SqlCommand cmd = new SqlCommand(query, conn, tx)) { cmd.Parameters.AddWithValue("@TN", trackingNumber); Console.WriteLine(trackingNumber); cmd.Parameters.AddWithValue("@PUD", pickUp.PickUpDate); Console.WriteLine(pickUp.PickUpDate); cmd.Parameters.AddWithValue("@PUT", pickUp.PickUpTime); cmd.Parameters.AddWithValue("@REMARK", pickUp.Remark); cmd.Parameters.AddWithValue("@STATUS", pickUp.Status); cmd.ExecuteNonQuery(); } } tx.Commit(); return(trackingNumber); } catch (SqlException e) { Debug.WriteLine(e.Message); tx.Rollback(); } } } return(-1); }