Exemplo n.º 1
0
        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
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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

                //}
            }
        }
Exemplo n.º 4
0
        //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);
        }