public string SaveConsignee(PickupRequestVM v)
        {
            CustM objCust = new CustM();
            var   cust    = (from c in db.CustomerMasters where c.CustomerName == v.Consignee && c.CustomerType == "CN" select c).FirstOrDefault();

            int accompanyid = Convert.ToInt32(Session["CurrentCompanyID"].ToString());
            int branchid    = Convert.ToInt32(Session["CurrentBranchID"].ToString());

            if (cust == null)
            {
                CustomerMaster obj = new CustomerMaster();

                int max = (from d in db.CustomerMasters orderby d.CustomerID descending select d.CustomerID).FirstOrDefault();

                obj.CustomerID  = max + 1;
                obj.AcCompanyID = accompanyid;

                obj.CustomerCode = "";   // _dao.GetMaxCustomerCode(branchid); // c.CustomerCode;
                obj.CustomerName = v.Consignee;
                obj.CustomerType = "CN"; //Consignee

                obj.ContactPerson = v.ConsigneeContact;
                obj.Address1      = v.ConsigneeAddress;
                obj.Address2      = v.ConsigneeAddress1;
                obj.Address3      = v.ConsigneeAddress2;
                obj.Phone         = v.ConsigneePhone;
                obj.CountryName   = v.ConsigneeCountryName;
                obj.CityName      = v.ConsigneeCityName;
                obj.LocationName  = v.ConsigneeLocationName;
                db.CustomerMasters.Add(obj);
                db.SaveChanges();
            }


            return("ok");
        }
        public ActionResult Edit(PickupRequestVM v)
        {
            CustomerEnquiry _enquiry = new CustomerEnquiry();

            _enquiry.EnquiryID             = v.EnquiryID;
            _enquiry.EnquiryNo             = v.EnquiryNo;
            _enquiry.EnquiryDate           = Convert.ToDateTime(v.EnquiryDate);
            _enquiry.AWBNo                 = v.AWBNo;
            _enquiry.DescriptionID         = 4;
            _enquiry.ConsignerCountryId    = v.ConsignerCountryId;
            _enquiry.ConsignerCityId       = v.ConsignerCityId;
            _enquiry.ConsignerLocationId   = v.ConsignerLocationId;
            _enquiry.ConsigneeCountryID    = v.ConsigneeCountryID;
            _enquiry.ConsigneeCityId       = v.ConsigneeCityId;
            _enquiry.ConsigneeLocationId   = v.ConsigneeLocationId;
            _enquiry.ConsigneeLocationName = v.ConsigneeLocationName;
            _enquiry.ConsignorLocationName = v.ConsignorLocationName;
            _enquiry.Weight                = v.Weight;
            _enquiry.AcCompanyID           = 1;
            _enquiry.CustomerID            = v.CustomerID;
            _enquiry.Consignee             = v.Consignee;
            _enquiry.Consignor             = v.Consignor;
            _enquiry.ConsignorAddress      = v.ConsignorAddress;
            _enquiry.ConsignorAddress1     = v.ConsignorAddress1;
            _enquiry.ConsignorAddress2     = v.ConsignorAddress2;
            _enquiry.ConsigneeAddress      = v.ConsigneeAddress;
            _enquiry.ConsigneeAddress1     = v.ConsigneeAddress1;
            _enquiry.ConsigneeAddress2     = v.ConsigneeAddress2;
            _enquiry.ConsignorPhone        = v.ConsignorPhone;
            _enquiry.ConsigneePhone        = v.ConsigneePhone;

            _enquiry.EmployeeID     = v.EmployeeID;
            _enquiry.Remarks        = v.Remarks;
            _enquiry.CollectedEmpID = v.CollectedEmpID;
            _enquiry.IsEnquiry      = false;
            _enquiry.ShipmentType   = v.ShipmentType;
            if (v.vehreq == true)
            {
                _enquiry.Vehicle   = v.Vehicle;
                _enquiry.VehicleID = v.VehicleID;
            }
            _enquiry.ConsigneeContact = v.ConsigneeContact;
            _enquiry.ConsignorContact = v.ConsignorContact;
            _enquiry.EnteredByID      = v.EnteredByID;

            _enquiry.ReadyTime = v.ReadyTime;
            //_enquiry.OfficeTimeFrom = v.OfficeTimeFrom;
            //_enquiry.OfficeTimeTo = v.OfficeTimeTo;
            _enquiry.RequestSource = v.RequestSource;

            if (_enquiry.EmployeeID == null)
            {
                _enquiry.PickupRequestStatusId = 1;
            }
            else if (_enquiry.EmployeeID != null && _enquiry.CollectedEmpID == null)
            {
                _enquiry.PickupRequestStatusId = 2;
            }
            else if (_enquiry.CollectedEmpID != null)
            {
                _enquiry.PickupRequestStatusId = 3;
            }

            db.Entry(_enquiry).State = EntityState.Modified;
            db.SaveChanges();
            TempData["SuccessMsg"] = "You have successfully updated Pickup Request.";
            return(RedirectToAction("Index"));

            //return View();
        }
        public PickupRequestVM GetPickupRequestDetail(int id)
        {
            PickupRequestVM v = new PickupRequestVM();
            InScanMaster    a = db.InScanMasters.Find(id);

            v.InScanID              = a.InScanID;
            v.BranchID              = a.BranchID;
            v.DepotID               = a.DepotID;
            v.EnquiryID             = a.InScanID;
            v.EnquiryNo             = a.EnquiryNo;
            v.AWBNo                 = a.ConsignmentNo;
            v.EnquiryDate           = a.PickupRequestDate;
            v.DescriptionID         = 4;
            v.ConsignorCountryName  = a.ConsignorCountryName;
            v.ConsignorCityName     = a.ConsignorCityName;
            v.ConsignorLocationName = a.ConsignorLocationName;
            v.ConsigneeCountryName  = a.ConsigneeCountryName;
            v.ConsigneeCityName     = a.ConsigneeCityName;
            v.ConsigneeLocationName = a.ConsigneeLocationName;
            v.Weight                = Convert.ToDouble(a.Weight);
            v.AcCompanyID           = a.AcCompanyID;
            v.CustomerID            = a.CustomerID;
            string customername = db.CustomerMasters.Find(v.CustomerID).CustomerName;

            v.CustomerName         = customername;
            v.Consignee            = a.Consignee;
            v.Consignor            = a.Consignor;
            v.ConsignorAddress     = a.ConsignorAddress1_Building;
            v.ConsignorAddress1    = a.ConsignorAddress2_Street;
            v.ConsignorAddress2    = a.ConsignorAddress3_PinCode;
            v.ConsigneeAddress     = a.ConsigneeAddress1_Building;
            v.ConsigneeAddress1    = a.ConsigneeAddress2_Street;
            v.ConsigneeAddress2    = a.ConsigneeAddress3_PinCode;
            v.ConsignorPhone       = a.ConsignorPhone;
            v.ConsigneePhone       = a.ConsigneePhone;
            v.ConsignorCountryName = a.ConsignorCountryName;
            v.ConsigneeCountryName = a.ConsigneeCountryName;
            v.ConsignorCityName    = a.ConsignorCityName;
            v.ConsigneeCityName    = a.ConsigneeCityName;

            //v.PickupRequestStatusId = a.PickupRequestStatusId;
            v.PickupRequestStatusId = a.CourierStatusID;
            v.SubReasonId           = a.SubReasonId;
            v.EmployeeID            = a.AssignedEmployeeID;
            v.Remarks        = a.Remarks;
            v.CollectedEmpID = a.PickedUpEmpID;;
            v.CollectedTime  = a.PickedupDate;;
            //v.ShipmentType = a.ShipmentType;
            //if (a.VehicleID != null)
            //{
            //    v.VehicleID = a.VehicleID.Value;
            //    v.Vehicle = a.Vehicle;
            //    v.vehreq = true;
            //}
            //else
            //{
            //    v.vehreq = false;
            //    v.Vehicle = "";
            //}
            v.IsEnquiry        = a.IsEnquiry;
            v.ConsigneeContact = a.ConsigneeContact;
            v.ConsignorContact = a.ConsignorContact;
            v.EnteredByID      = a.EnteredByID;

            v.ReadyTime = a.PickupReadyTime;
            CustomerMaster cm = db.CustomerMasters.Where(cm1 => cm1.CustomerID == a.CustomerID).FirstOrDefault();

            v.CustomerCode   = cm.CustomerCode;
            v.OfficeTimeFrom = cm.OfficeOpenTime;
            v.OfficeTimeTo   = cm.OfficeCloseTime;
            v.RequestSource  = a.RequestSource;
            //v.Documents v.DocumentTypeId = a.DocumentTypeId;

            return(v);
        }
        public ActionResult Edit(int id)
        {
            int uid            = Convert.ToInt32(Session["UserID"].ToString());
            UserRegistration u = (from c in db.UserRegistrations where c.UserID == uid select c).FirstOrDefault();
            int    empid       = u.UserID;
            string empname     = u.UserName;


            //ViewBag.Country = db.CountryMasters.ToList();

            //ViewBag.Location = db.LocationMasters.ToList();
            ViewBag.Vehicle  = db.VehicleMasters.ToList();
            ViewBag.Employee = db.EmployeeMasters.ToList();
            ViewBag.Customer = db.CustomerMasters.ToList();
            ViewBag.empname  = empname;
            ViewBag.empid    = empid;

            PickupRequestVM v = new PickupRequestVM();
            //CustomerEnquiry a = db.CustomerEnquiries.Find(id);
            InScanMaster a = db.InScanMasters.Find(id);

            if (a == null)
            {
                return(HttpNotFound());
            }
            else
            {
                v.EnquiryID     = a.InScanID;
                v.EnquiryNo     = a.EnquiryNo;
                v.AWBNo         = a.ConsignmentNo;
                v.EnquiryDate   = a.PickupRequestDate;
                v.DescriptionID = 4;
                //v.ConsignerCountryId = a.ConsignerCountryId;
                //v.ConsignerCityId = 19; // a.ConsignerCityId;
                //v.ConsignerLocationId = 7;// a.ConsignerLocationId;
                v.ConsignorCountryName  = a.ConsignorCountryName;
                v.ConsignorCityName     = a.ConsignorCityName;
                v.ConsignorLocationName = a.ConsignorLocationName;
                //v.ConsigneeCountryID = a.ConsigneeCountryID;
                //v.ConsigneeCityId = a.ConsigneeCityId;
                v.ConsigneeCountryName = a.ConsigneeCountryName;
                v.ConsigneeCityName    = a.ConsigneeCityName;
                //v.ConsigneeLocationId = a.ConsigneeLocationId;
                v.ConsigneeLocationName = a.ConsigneeLocationName;
                v.Weight      = Convert.ToDouble(a.Weight);
                v.AcCompanyID = 1;
                v.CustomerID  = a.CustomerID;

                v.Consignee         = a.Consignee;
                v.Consignor         = a.Consignor;
                v.ConsignorAddress  = a.ConsignorAddress1_Building;
                v.ConsignorAddress1 = a.ConsignorAddress2_Street;
                v.ConsignorAddress2 = a.ConsignorAddress3_PinCode;
                v.ConsigneeAddress  = a.ConsigneeAddress1_Building;
                v.ConsigneeAddress1 = a.ConsigneeAddress2_Street;
                v.ConsigneeAddress2 = a.ConsigneeAddress3_PinCode;
                v.ConsignorPhone    = a.ConsignorPhone;
                v.ConsigneePhone    = a.ConsigneePhone;
                v.EmployeeID        = a.AssignedEmployeeID;
                v.Remarks           = a.Remarks;
                v.CollectedEmpID    = a.PickedUpEmpID;;
                v.CollectedTime     = a.PickedupDate;;
                //v.ShipmentType = a.ShipmentType;
                //if (a.VehicleID != null)
                //{
                //    v.VehicleID = a.VehicleID.Value;
                //    v.Vehicle = a.Vehicle;
                //    v.vehreq = true;
                //}
                //else
                //{
                //    v.vehreq = false;
                //    v.Vehicle = "";
                //}
                v.IsEnquiry        = a.IsEnquiry;
                v.ConsigneeContact = a.ConsigneeContact;
                v.ConsignorContact = a.ConsignorContact;
                v.EnteredByID      = empid;

                v.ReadyTime = a.PickupReadyTime;
                CustomerMaster cm = db.CustomerMasters.Where(cm1 => cm1.CustomerID == a.CustomerID).FirstOrDefault();
                v.CustomerCode   = cm.CustomerCode;
                v.OfficeTimeFrom = cm.OfficeOpenTime;
                v.OfficeTimeTo   = cm.OfficeCloseTime;
                v.RequestSource  = a.RequestSource;
            }

            //var obj = (from c in db.CityMasters where c.CountryID == a.ConsignerCountryId select c).ToList();
            //ViewBag.City = (from c in db.CityMasters where c.CountryID == a.ConsignerCountryId select c).ToList();
            //ViewBag.CityConsignee = (from c in db.CityMasters where c.CountryID == a.ConsigneeCountryID select c).ToList();

            return(View(v));
        }
        public ActionResult Create(PickupRequestVM v)
        {
            PickupRequestDAO _dao = new PickupRequestDAO();
            int branchid          = Convert.ToInt32(Session["CurrentBranchID"].ToString());
            int depotId           = Convert.ToInt32(Session["CurrentDepotID"].ToString());
            int companyId         = Convert.ToInt32(Session["CurrentCompanyID"].ToString());
            int uid            = Convert.ToInt32(Session["UserID"].ToString());
            UserRegistration u = (from c in db.UserRegistrations where c.UserID == uid select c).FirstOrDefault();
            int    empid       = u.UserID;
            string empname     = u.UserName;

            InScanMaster _enquiry = new InScanMaster();

            if (v.InScanID == 0)
            {
                int id = (from c in db.InScanMasters orderby c.InScanID descending select c.InScanID).FirstOrDefault();
                _enquiry.InScanID        = id + 1;
                _enquiry.EnquiryNo       = _dao.GetMaxPickupRequest(companyId, branchid); // (id + 1).ToString();
                _enquiry.ConsignmentNo   = _dao.GetMaAWBNo(companyId, branchid);
                _enquiry.AcCompanyID     = companyId;
                _enquiry.BranchID        = branchid;
                _enquiry.DepotID         = depotId;
                _enquiry.TransactionDate = DateTime.Now;
                _enquiry.DeviceID        = "WebSite";
                _enquiry.IsDeleted       = false;
                int statustypeid = db.tblStatusTypes.Where(c => c.Name == "PICKUP REQUEST").FirstOrDefault().ID;
                _enquiry.StatusTypeId = statustypeid; //pickuprequest
            }
            else
            {
                _enquiry = db.InScanMasters.Find(v.InScanID);
            }

            _enquiry.DocumentSetupID   = v.DocumentTypeId;
            _enquiry.PickupRequestDate = Convert.ToDateTime(v.EnquiryDate);
            _enquiry.CustomerID        = v.CustomerID;

            _enquiry.ConsignorCountryName  = v.ConsignorCountryName;
            _enquiry.ConsignorCityName     = v.ConsignorCityName;
            _enquiry.ConsigneeLocationName = v.ConsigneeLocationName;
            _enquiry.ConsignorLocationName = v.ConsignorLocationName;

            _enquiry.ConsigneeCountryName = v.ConsigneeCountryName;
            _enquiry.ConsigneeCityName    = v.ConsigneeCityName;
            _enquiry.Weight = Convert.ToDecimal(v.Weight);


            _enquiry.Consignee = v.Consignee;
            _enquiry.Consignor = v.Consignor;
            _enquiry.ConsignorAddress1_Building = v.ConsignorAddress;
            _enquiry.ConsignorAddress2_Street   = v.ConsignorAddress1;
            _enquiry.ConsignorAddress3_PinCode  = v.ConsignorAddress2;
            _enquiry.ConsigneeAddress1_Building = v.ConsigneeAddress;
            _enquiry.ConsigneeAddress2_Street   = v.ConsigneeAddress1;
            _enquiry.ConsigneeAddress3_PinCode  = v.ConsigneeAddress2;
            _enquiry.ConsignorPhone             = v.ConsignorPhone;
            _enquiry.ConsigneePhone             = v.ConsigneePhone;

            _enquiry.AssignedEmployeeID = v.EmployeeID;

            _enquiry.Remarks       = v.Remarks;
            _enquiry.PickedUpEmpID = v.CollectedEmpID;
            _enquiry.PickedupDate  = v.CollectedTime;

            //_enquiry.ShipmentType = v.ShipmentType;
            //if (v.vehreq == true)
            //{
            //    _enquiry.Vehicle = v.Vehicle;
            //    _enquiry.VehicleID = v.VehicleID;
            //}


            _enquiry.ConsigneeContact = v.ConsigneeContact;
            _enquiry.ConsignorContact = v.ConsignorContact;
            _enquiry.EnteredByID      = empid; //userid
            _enquiry.IsEnquiry        = true;

            _enquiry.PickupReadyTime = v.ReadyTime;

            //_enquiry.OfficeTimeFrom = v.OfficeTimeFrom;
            //_enquiry.OfficeTimeTo = v.OfficeTimeTo;

            _enquiry.RequestSource = v.RequestSource;

            if (_enquiry.StatusTypeId == 1)
            {
                if (_enquiry.AssignedEmployeeID == null)
                {
                    _enquiry.CourierStatusID = 1;
                }
                else if (_enquiry.AssignedEmployeeID != null && _enquiry.PickedUpEmpID == null)
                {
                    _enquiry.CourierStatusID = 2;
                }
                //else if (_enquiry.PickedUpEmpID != null)
                //{
                //    _enquiry.PickupRequestStatusId = 3;
                //}
                else if (_enquiry.StatusTypeId == 1 && _enquiry.CourierStatusID == null)
                {
                    _enquiry.CourierStatusID = 1; //request
                }
            }

            //db.CustomerEnquiries.Add(_enquiry);
            if (v.InScanID == 0)
            {
                db.InScanMasters.Add(_enquiry);
                db.SaveChanges();
                //
                AWBTrackStatu _awbstatus = new AWBTrackStatu();
                int?          id         = (from c in db.AWBTrackStatus orderby c.AWBTrackStatusId descending select c.AWBTrackStatusId).FirstOrDefault();

                if (id == null)
                {
                    id = 1;
                }
                else
                {
                    id = id + 1;
                }

                _awbstatus.AWBTrackStatusId = Convert.ToInt32(id);
                _awbstatus.AWBNo            = _enquiry.ConsignmentNo;
                _awbstatus.EntryDate        = DateTime.Now;
                _awbstatus.InScanId         = _enquiry.InScanID;
                _awbstatus.StatusTypeId     = Convert.ToInt32(_enquiry.StatusTypeId);
                _awbstatus.CourierStatusId  = Convert.ToInt32(_enquiry.CourierStatusID);
                _awbstatus.ShipmentStatus   = db.tblStatusTypes.Find(_enquiry.StatusTypeId).Name;
                _awbstatus.CourierStatus    = db.CourierStatus.Find(_enquiry.CourierStatusID).CourierStatus;
                _awbstatus.UserId           = uid;

                db.AWBTrackStatus.Add(_awbstatus);
                db.SaveChanges();
                //

                SaveConsignee(v);
                TempData["SuccessMsg"] = "You have successfully added Pickup Request.";
            }
            else
            {
                SaveConsignee(v);
                db.Entry(_enquiry).State = EntityState.Modified;
                db.SaveChanges();
                TempData["SuccessMsg"] = "You have successfully updated Pickup Request.";
            }

            return(RedirectToAction("Index"));

            //}
            //else
            //{
            //    int uid = Convert.ToInt32(Session["UserID"].ToString());

            //    UserRegistration u = (from c in db.UserRegistrations where c.UserID == uid select c).FirstOrDefault();
            //    int empid = u.UserID;
            //    string empname = u.UserName;

            //    ViewBag.Country = db.CountryMasters.ToList();
            //    ViewBag.City = db.CityMasters.ToList();
            //    ViewBag.Location = db.LocationMasters.ToList();
            //    ViewBag.Vehicle = db.VehicleMasters.ToList();
            //    ViewBag.Employee = db.EmployeeMasters.ToList();
            //    ViewBag.Customer = db.CustomerMasters.ToList();
            //    ViewBag.RequestType = db.RequestTypes.ToList();
            //    ViewBag.empname = empname;
            //    ViewBag.empid = empid;
            //    PickupRequestDAO doa = new PickupRequestDAO();
            //    ViewBag.RequestNo = doa.GetMaxPickupRequest();
            //    return View();
            //}
        }
        public ActionResult Create(int id = 0)
        {
            int uid = Convert.ToInt32(Session["UserID"].ToString());

            int branchid  = Convert.ToInt32(Session["CurrentBranchID"].ToString());
            int depotId   = Convert.ToInt32(Session["CurrentDepotID"].ToString());
            int companyId = Convert.ToInt32(Session["CurrentCompanyID"].ToString());

            ViewBag.Vehicle      = db.VehicleMasters.ToList();
            ViewBag.Employee     = db.EmployeeMasters.ToList();
            ViewBag.Customer     = db.CustomerMasters.ToList();
            ViewBag.RequestType  = db.RequestTypes.ToList();
            ViewBag.DocumentType = db.tblDocumentTypes.ToList();
            ViewBag.PaymentMode  = db.tblPaymentModes.ToList();
            //ViewBag.PickupRequestStatus = db.PickUpRequestStatus.ToList();

            ViewBag.PickupRequestStatus = db.CourierStatus.Where(cc => cc.StatusTypeID == 1).ToList();

            ViewBag.PickupSubReason = db.SubStatus.ToList();
            PickupRequestVM v = new PickupRequestVM();

            UserRegistration u = (from c in db.UserRegistrations where c.UserID == uid select c).FirstOrDefault();
            int    empid       = u.UserID;
            string empname     = u.UserName;

            ViewBag.empname = empname;
            ViewBag.empid   = empid;

            if (id == 0)
            {
                PickupRequestDAO doa = new PickupRequestDAO();
                ViewBag.RequestNo = doa.GetMaxPickupRequest(companyId, branchid);
                ViewBag.StatusId  = 1;
                int Customerid = 0;
                if (Session["UserType"].ToString() == "Customer")
                {
                    Customerid   = Convert.ToInt32(Session["CustomerId"].ToString());
                    v.CustomerID = Customerid;
                    var _cust = db.CustomerMasters.Find(Customerid);
                    v.CustomerName         = _cust.CustomerName;
                    v.CustomerCode         = _cust.CustomerCode;
                    v.Consignor            = _cust.CustomerName;
                    v.ConsignorPhone       = _cust.Phone;
                    v.OfficeTimeFrom       = _cust.OfficeOpenTime;
                    v.OfficeTimeTo         = _cust.OfficeCloseTime;
                    v.ConsignorAddress     = _cust.Address1;
                    v.ConsignorAddress1    = _cust.Address2;
                    v.ConsignorAddress2    = _cust.Address3;
                    v.ConsignorCountryName = _cust.CountryName;
                    v.ConsignorCityName    = _cust.CityName;
                    v.ConsignorContact     = _cust.ContactPerson;
                }
            }
            else
            {
                v                         = GetPickupRequestDetail(id);
                ViewBag.AWBNo             = v.AWBNo;
                ViewBag.StatusId          = v.PickupRequestStatusId;
                ViewBag.SubReasonStatusId = v.SubReasonId;
                ViewBag.Status            = db.CourierStatus.Where(cc => cc.CourierStatusID == v.PickupRequestStatusId).FirstOrDefault().CourierStatus;
            }

            return(View(v));
        }