using Expost.
Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Security.Cryptography;
using Microsoft.AspNet.Identity;
using System.Web.Helpers;
using System.Web.Security;
using Newtonsoft.Json;
using System.Data.Entity;
using System.Data.SqlClient;
using System.Configuration;
namespace Expost.Controllers
{
[Authorize]
public class BookingController : Controller
{
ApplicationDbContext db = new ApplicationDbContext();
// GET: Booking
public ActionResult Index()
{
return View();
}
[HttpGet]
public ActionResult EditBook(string id)
{
ViewBag.VB = db.Users.ToList();
ViewBag.VC = db.LA.ToList();
ViewBag.Sp = db.ServiceProvider.ToList();
ViewBag.ACS = db.Courier.ToList();
double shipno = Convert.ToDouble(id);
Createbook editbook = db.CB.Where(a => a.ShipmentNo ==
shipno).ToList().FirstOrDefault();
DTOBookingList model = new DTOBookingList();
model.createbook = editbook;
return View(model);
}
[HttpPost]
public ActionResult EditBook(Createbook editbook)
{
ViewBag.VB = db.Users.ToList();
ViewBag.VC = db.LA.ToList();
ViewBag.Sp = db.ServiceProvider.ToList();
ViewBag.ACS = db.Courier.ToList();
//ViewBag.Sp = new SelectList(db.SSP.ToList(), "Full_Address",
"Full_Address");
//ViewBag.ACS = new SelectList(db.ACS.ToList(), "Service_Name",
"Service_Name");
var data = db.CB.OrderByDescending(a => a.Id).Take(1).Select(a =>
a.ShipmentNo).FirstOrDefault();
ViewBag.ShipmentNo = data + 1;
return View(editbook);
}
public ActionResult Createbook(string id)
{
if (id == "0")
{
ViewBag.VB = db.Users.ToList();
ViewBag.VC = db.LA.ToList();
ViewBag.Sp = db.ServiceProvider.ToList();
ViewBag.ACS = db.Courier.ToList();
double shipno = Convert.ToDouble(id);
//ViewBag.Sp = new SelectList(db.SSP.ToList(), "Full_Address",
"Full_Address");
//ViewBag.ACS = new SelectList(db.ACS.ToList(), "Service_Name",
"Service_Name");
Createbook editbook = db.CB.Where(a => a.ShipmentNo ==
shipno).ToList().FirstOrDefault();
var data = db.CB.OrderByDescending(a => a.Id).Take(1).Select(a =>
a.ShipmentNo).FirstOrDefault();
ViewBag.ShipmentNo = data + 1;
return View(editbook);
}
else
{ double shipno = Convert.ToDouble(id);
ViewBag.VB = db.Users.ToList();
ViewBag.VC = db.LA.ToList();
ViewBag.Sp = db.ServiceProvider.ToList();
ViewBag.ACS = db.Courier.ToList();
Createbook editbook = db.CB.Where(a => a.ShipmentNo ==
shipno).ToList().FirstOrDefault();
DTOBookingList model = new DTOBookingList();
//model.Add(new DTOBookingList()
//{
model.createbook = editbook;
//});
var data = db.CB.OrderByDescending(a => a.Id).Take(1).Select(a =>
a.ShipmentNo).FirstOrDefault();
ViewBag.ShipmentNo = data + 1;
return View(editbook);
}
}
public ActionResult getAddressBook(int id)
{
var data = db.LA.Where(a => a.Id == id).FirstOrDefault();
return Json(data, JsonRequestBehavior.AllowGet);
}
public ActionResult getCourier(string name)
{
var data = db.ServiceProvider.Where(a => a.Full_Address ==
name).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
//return View();
}
public ActionResult getSlipNo(int slipno, string userid)
{
var data = db.manualslip.Where(a => a.UserID == userid && a.Status ==
"Pending").ToList();
if(data.Any(a=>a.SlipNo == slipno))
{
return Json("Success", JsonRequestBehavior.AllowGet);
}
else
{
return Json("Failed", JsonRequestBehavior.AllowGet);
}
}
public ActionResult getCustomerName(string accno)
{
var data = db.Users.Where(a => a.Id == accno).FirstOrDefault();
return Json(data, JsonRequestBehavior.AllowGet);
}
public ActionResult SaveBooking(DTOBooking createbook)
{
ViewBag.Sp = new SelectList(db.ServiceProvider.ToList(),
"Full_Address", "Full_Address");
ViewBag.ACS = new SelectList(db.Courier.ToList(), "Service_Name",
"Service_Name");
var userID = User.Identity.GetUserId();
var branchid = db.Users.Where(a => a.Id == userID).Select(a =>
a.Branch_Id).FirstOrDefault();
createbook.createbook.Branch_Id = branchid;
createbook.createbook.UserId = userID;
createbook.createbook.ShipperAddressBook_Id =
createbook.shipperdata.Shipper_Id;
createbook.createbook.DeliverAddressBook_Id =
createbook.deliverydata.Delivery_Id;
createbook.createbook.C_Id = 0;
createbook.createbook.SP_Id = 0;
createbook.createbook.TrackInfo = "";
createbook.createbook.TrackNo = "";
createbook.createbook.LSDate = DateTime.Now;
createbook.createbook.MFDate = DateTime.Now;
db.CB.Add(createbook.createbook);
db.SaveChanges();
var bookingid = db.CB.Where(a => a.ShipmentNo ==
createbook.createbook.ShipmentNo).Select(a => a.Id).FirstOrDefault();
string itemsave = SaveItems(createbook.bookingitem, bookingid);
string boxsave = SaveBoxItems(createbook.boxdetails, bookingid);
if(itemsave == "Success" && boxsave == "Success")
{
db.SaveChanges();
return Json("Booking has been Saved Successfully!",
JsonRequestBehavior.AllowGet);
}
else
{
return Json("Booking not Saved! Please try again!",
JsonRequestBehavior.AllowGet);
}
}
public string SaveShipperAddress()
{
return "Success";
}
public string SaveDeliveryAddress()
{
return "Success";
}
public string SaveItems(List<BookingItem> booking, int bookingid)
{
foreach (var item in booking)
{
BookingItem b = new BookingItem();
b.Description = item.Description;
b.Quantity = item.Quantity;
b.UnitValue = item.UnitValue;
b.Value = item.Value;
b.Id = bookingid;
db.bookingitem.Add(b);
}
return "Success";
}
public string SaveBoxItems(List<BoxDetails> booking, int bookingid)
{
foreach (var item in booking)
{
BoxDetails b = new BoxDetails();
b.Description = item.Description;
b.Weight = item.Weight;
b.Length = item.Breadth;
b.Height = item.Height;
b.Breadth = item.Breadth;
b.VolWt = item.VolWt;
b.Id = bookingid;
db.boxdetails.Add(b);
}
return "Success";
}
public ActionResult Createbook_Show()
{
var data1 = db.CB.ToList();
return View(data1);
}
public ActionResult Search_Daily_Booking(string fromdate = "", string
todate="")
{
DateTime frmdate = DateTime.Now.Date;
DateTime tdate = DateTime.Now.Date;
if(fromdate != "" && todate != "")
{
frmdate = Convert.ToDateTime(fromdate);
tdate = Convert.ToDateTime(todate);
}
ViewBag.VC = new SelectList(db.CF.ToList(), "Franchise_Name",
"Franchise_Name");
ViewBag.Sp = db.ServiceProvider.ToList();
ViewBag.ACS = db.Courier.ToList();
var data = db.CB.Where(a => a.EntryDate >= frmdate && a.EntryDate <=
tdate).ToList();
return View(data);
}
public ActionResult getSearch(string fromdate, string todate)
{
DateTime frmdate = Convert.ToDateTime(fromdate);
DateTime tdate = Convert.ToDateTime(todate);
var data = db.CB.Where(a => a.EntryDate >= frmdate && a.EntryDate <=
tdate).ToList();
for(int i=0; i<data.Count; i++)
{
if(data[i].C_Id==0)
{
data[i].Carrier = "";
}
else
{
int carierid = data[i].C_Id;
var carierdata = db.Courier.Where(a => a.C_Id ==
carierid).ToList();
data[i].Carrier = carierdata[0].Service_Name;
}
if (data[i].SP_Id == 0)
{
data[i].Service = "";
}
else
{
int spid = data[i].SP_Id;
var carierdata = db.ServiceProvider.Where(a => a.SP_Id ==
spid).ToList();
data[i].Service = carierdata[0].Company_Name;
}
}
//var data1 = ShipperData(data);
var json = JsonConvert.SerializeObject(data);
return Json(json, JsonRequestBehavior.AllowGet);
}
public ActionResult getCourierData(int C_id, int SP_Id, int CB_Id)
{
//int aid = Convert.ToInt32(id);
var data = db.CB.Where(a=>a.Id== CB_Id).ToList();
if (data[0].C_Id == 0)
{
data[0].Carrier = "";
}
else
{
int carierid = data[0].C_Id;
var carierdata = db.Courier.Where(a => a.C_Id ==
carierid).ToList();
data[0].Carrier = carierdata[0].Service_Name;
}
if (data[0].SP_Id == 0)
{
data[0].Service = "";
}
else
{
int spid = data[0].SP_Id;
var carierdata = db.ServiceProvider.Where(a => a.SP_Id ==
spid).ToList();
data[0].Service = carierdata[0].Company_Name;
}
//var data1 = ShipperData(data);
var json = JsonConvert.SerializeObject(data);
return Json(json, JsonRequestBehavior.AllowGet);
}
public List<DTOSearch> ShipperData(List<Createbook> search)
{
List<DTOSearch> searchdata = new List<DTOSearch>();
foreach(var item in search)
{
DTOSearch s = new DTOSearch();
s.createbook = item;
s.deliverydata = db.LA.Where(a => a.Id ==
item.DeliverAddressBook_Id).FirstOrDefault();
s.shipperdata = db.LA.Where(a => a.Id ==
item.ShipperAddressBook_Id).FirstOrDefault();
searchdata.Add(s);
}
return searchdata;
}
public DTOBookingList getData(string id)
{
string userID = User.Identity.GetUserId();
var branchid = db.Users.Where(a => a.Id == userID).Select(a =>
a.Branch_Id).FirstOrDefault();
ViewBag.Acc = db.CF.Where(a => a.Id == branchid).Select(a =>
a.Id).FirstOrDefault();
ViewBag.Name = db.CF.Where(a => a.Id == branchid).Select(a =>
a.Franchise_Name).FirstOrDefault();
DTOBookingList bookingdata = new DTOBookingList();
double shipno = Convert.ToDouble(id);
var bokingid = db.CB.Where(a => a.ShipmentNo == shipno).Select(a =>
a.Id).FirstOrDefault();
var data = db.CB.Include(a=>a.User).Where(a => a.Id ==
bokingid).FirstOrDefault();
bookingdata.createbook = data;
bookingdata.boxdetails = db.boxdetails.Where(a => a.Id ==
bokingid).ToList();
bookingdata.bookingitem = db.bookingitem.Where(a => a.Id ==
bokingid).ToList();
return bookingdata;
//string userID = User.Identity.GetUserId();
//var branchid = db.Users.Where(a => a.Id ==
userID).Select(a=>a.Branch_Id).FirstOrDefault();
//ViewBag.Acc = db.CF.Where(a=>a.Id ==
branchid).Select(a=>a.Id).FirstOrDefault();
//ViewBag.Name = db.CF.Where(a => a.Id == branchid).Select(a =>
a.Franchise_Name).FirstOrDefault();
//DTOBookingList bookingdata = new DTOBookingList();
//var data = db.CB.Where(a => a.Id == id).FirstOrDefault();
//bookingdata.createbook = data;
//bookingdata.shipperdata = db.LA.Where(a => a.Id ==
data.ShipperAddressBook_Id).FirstOrDefault();
//bookingdata.deliverydata = db.LA.Where(a => a.Id ==
data.DeliverAddressBook_Id).FirstOrDefault();
//bookingdata.boxdetails = db.boxdetails.Where(a => a.Id ==
id).ToList();
//bookingdata.bookingitem = db.bookingitem.Where(a => a.Id ==
id).ToList();
//return bookingdata;
}
public ActionResult BookingView(string id)
{
DTOBookingList bookingdata = getData(id);
return View(bookingdata);
}
public ActionResult showbooking(int id)
{
//ViewBag.VZ = new SelectList(db.CF.ToList(), "Franchise_Name",
"Franchise_Name");
var data = db.CB.ToList();
return View(data);
}
public ActionResult getFranchise(int id)
{
//var data = db.loadsheet.Where(a => a.Branch_Id == id).ToList();
var data = db.menufest.Where(a => a.Branch_Id == id).ToList();
var json = JsonConvert.SerializeObject(data);
return Json(json, JsonRequestBehavior.AllowGet);
public ActionResult Checked(List<Createbook> list)
{
foreach (var item in list)
{
//var data = db.CB.Where(a => a.Id == item.Id).FirstOrDefault();
//string id = User.Identity.GetUserId();
//LoadSheet l = new LoadSheet();
//l.Branch_Id = db.Users.Where(a => a.Id == id).Select(a =>
a.Branch_Id).FirstOrDefault();
//l.LS_ID = data.Id;
//db.loadsheet.Add(l);
//db.SaveChanges();
}
return RedirectToAction("Index");
}
public ActionResult Awb(string id)
{
DTOBookingList bookingdata = getData(id);
return View(bookingdata);
}
public ActionResult Invoice(string id)
{
DTOBookingList bookingdata = getData(id);
return View(bookingdata);
}
public ActionResult Client_Requests()
{
ViewBag.VC = new SelectList(db.CF.ToList(), "Franchise_Name",
"Franchise_Name");
return View();
}
[HttpPost]
public ActionResult Client_Requests(Client_Request CR)
{
return View();
}
public ActionResult Manual_Entries()
{
ViewBag.VB = new SelectList(db.CAN.ToList(), "Username", "Username");
return View();
}
[HttpPost]
public ActionResult Manual_Entries(Manual_Entries ME)
{
var userID = User.Identity.GetUserId();
var branchid = db.Users.Where(c => c.Id == userID).Select(c =>
c.Branch_Id).FirstOrDefault();
ME.Branch_Id = branchid;
db.manualentries.Add(ME);
db.SaveChanges();
{
var Data_1 = db.manualentries.Add(ME);
db.SaveChanges();
return RedirectToAction("Createbook");
}
}
////////////////
public ActionResult SaveToListAddressChecked(List<Createbook> list)
{
foreach (var item in list)
{
var data = db.CB.Where(a => a.Id == item.Id).FirstOrDefault();
string id = User.Identity.GetUserId();
List_Address l = new List_Address();
l.Branch_Id = db.Users.Where(a => a.Id == id).Select(a =>
a.Branch_Id).FirstOrDefault();
db.LA.Add(l);
db.SaveChanges();
}
return RedirectToAction("Index");
}
public ActionResult SaveCarrierDetails(int C_ID, int SP_ID, int CB_ID,
string trackNo, string trackInfo)
{
string strcon =
ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
SqlConnection con = new SqlConnection(strcon);
con.Open();
string query = string.Format("Update Createbooks SET C_Id=@C_ID,
SP_Id=@SP_ID, TrackNo=@TrackNo, TrackInfo=@TrackInfo Where Id=@CB_ID");
SqlCommand com = new SqlCommand(query, con);
com.Parameters.AddWithValue("@C_ID", C_ID);
com.Parameters.AddWithValue("@SP_ID", SP_ID);
com.Parameters.AddWithValue("@TrackNo", trackNo);
com.Parameters.AddWithValue("@TrackInfo", trackInfo);
com.Parameters.AddWithValue("@CB_ID", CB_ID);
var RowEfected = com.ExecuteNonQuery();
con.Close();
if (RowEfected>0)
{
return Json("Booking has been Saved Successfully!",
JsonRequestBehavior.AllowGet);
}
else
{
return Json("Booking not Saved! Please try again!",
JsonRequestBehavior.AllowGet);
}
}