コード例 #1
0
        public ActionResult Filter(CLayer.OfflineBooking model)
        {
            string date1        = Request["FromDate"];
            string date2        = Request["ToDate"];
            string SearchString = Request["SearchString"];

            DateTime FromDate = Convert.ToDateTime(date1);
            DateTime ToDate   = Convert.ToDateTime(date2);

            string FromDates = FromDate.ToString("MMMM dd, yyyy");

            string FromDatesonlyDate = DateTime.Parse(FromDates).ToShortDateString();


            string ToDates = ToDate.ToString("MMMM dd, yyyy");

            string ToDatesonlyDate = DateTime.Parse(ToDates).ToShortDateString();

            ViewBag.FromDate     = FromDatesonlyDate;
            ViewBag.ToDate       = ToDatesonlyDate;
            ViewBag.SearchString = SearchString;
            List <CLayer.OfflineBooking> data = BLayer.OfflineBooking.CustomerInvoiceReport(SearchString, LIMIT, FromDate, ToDate);


            return(View("Index", data));
        }
コード例 #2
0
        public ActionResult MailContent(long obId)
        {
            CLayer.Invoice data = BLayer.Invoice.GetInvoiceByOfflineBooking(obId);

            if (data == null)
            {
                data = new CLayer.Invoice();
                data.OfflineBookingId = obId;
                ///  data.InvoiceDate = DateTime.Today;
                data.DueDate     = DateTime.Today.AddDays(10);
                data.InvoiceType = (int)CLayer.ObjectStatus.InvoiceType.Invoice;
                BLayer.Invoice.Save(data);
                //data = BLayer.Invoice.GetInvoiceByOfflineBooking(offId);
                //data = await MessageFromHtml(offId);
            }
            Areas.Admin.Models.Invoice inv = new Areas.Admin.Models.Invoice();
            inv.InvoiceId        = data.InvoiceId;
            inv.OfflineBookingId = data.OfflineBookingId;
            inv.IsMailed         = (data.MailedDate <= DateTime.Today);
            inv.HtmlSection1     = data.HtmlSection1;
            inv.HtmlSection2     = data.HtmlSection2;
            inv.HtmlSection3     = data.HtmlSection3;

            CLayer.OfflineBooking dd = BLayer.OfflineBooking.GetAllCustomerDetails(obId);
            if (dd != null)
            {
                inv.CustomerName = dd.CustomerName;
            }

            return(View("Mail", inv));
        }
コード例 #3
0
        public ActionResult Filter(CLayer.OfflineBooking model)
        {
            string date1        = Request["FromDate"];
            string date2        = Request["ToDate"];
            string SearchString = Request["SearchString"];

            DateTime FromDate = Convert.ToDateTime(date1);
            DateTime ToDate   = Convert.ToDateTime(date2);

            string FromDates = FromDate.ToString("MMMM dd, yyyy");

            string FromDatesonlyDate = DateTime.Parse(FromDates).ToShortDateString();


            string ToDates = ToDate.ToString("MMMM dd, yyyy");

            string ToDatesonlyDate = DateTime.Parse(ToDates).ToShortDateString();

            ViewBag.FromDate     = FromDatesonlyDate;
            ViewBag.ToDate       = ToDatesonlyDate;
            ViewBag.SearchString = SearchString;
            string email       = User.Identity.GetUserName();
            long   LoginUserid = BLayer.User.GetUserId(email);

            DataTable data = BLayer.OfflineBooking.GSTInvoiceReport(SearchString, LIMIT, FromDate, ToDate, LoginUserid);


            return(View("Index", data));
        }
コード例 #4
0
        //without invoice date and number
        private async Task <CLayer.Invoice> MakeNewInvoice(long offlineBookingId)
        {
            CLayer.Invoice data = new CLayer.Invoice();
            data.OfflineBookingId = offlineBookingId;
            //   data.InvoiceDate = DateTime.Today;
            CLayer.OfflineBooking ob = BLayer.OfflineBooking.GetAllDetailsById(offlineBookingId);
            string num = BLayer.Settings.GetValue(CLayer.Settings.INVOICE_DUE_DAYS);
            int    i   = 0;

            int.TryParse(num, out i);

            //karthikms added code and comment
            //CLayer.InvoiceNumberData inv = BLayer.NumberGenerator.GetInvoiceNumber();

            data.DueDate     = ob.CheckOut.AddDays(i);
            data.Status      = (int)CLayer.ObjectStatus.InvoiceStatus.Saved;
            data.InvoiceType = (int)CLayer.ObjectStatus.InvoiceType.Invoice;
            //karthikms added code and comment
            //data.InvoiceNumber = inv.InvoiceNumber.ToString();
            data.InvoiceId = BLayer.Invoice.Save(data);
            data           = BLayer.Invoice.GetInvoiceByOfflineBooking(offlineBookingId);
            data           = await MessageFromHtml(offlineBookingId);

            return(data);
        }
コード例 #5
0
        public void SaveGST(Models.OfflineBookingModel model, int CustID)
        {
            long custgststeid = 0;

            try
            {
                CLayer.OfflineBooking data = new CLayer.OfflineBooking();
                data.SubCustomerAddress    = model.SubCustomerAddress;
                data.SubCustomerCity       = model.SubCustomerCity;
                data.SubCustomerCityname   = model.SubCustomerCityname;
                data.SubCustomerpinCode    = model.SubCustomerpinCode;
                data.SubCustomerGstRegNo   = model.GSTRegistrationNo;
                data.SubCustomerGstStateId = Convert.ToInt32(model.StateOfRegistration);
                data.SubCustomerid         = CustID;
                data.CustomerTableType     = 2;
                data.OffGSTId = model.OffGSTId;
                BLayer.OfflineBooking.SaveGSTIn(data);
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }


            //
        }
コード例 #6
0
ファイル: B2B.cs プロジェクト: RahulAras007/StayBazar
        public List <CLayer.OfflineBooking> SearchcustomerListlist(string name)
        {
            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pName", DataPlug.DataType._Varchar, name));
            DataTable dt = Connection.GetTable("b2b_SearchcustomerListforofflinebook", param);

            List <CLayer.OfflineBooking> result = new List <CLayer.OfflineBooking>();

            CLayer.OfflineBooking temp;
            foreach (DataRow dr in dt.Rows)
            {
                temp                  = new CLayer.OfflineBooking();
                temp.CustomerId       = Connection.ToLong(dr["b2bid"]);
                temp.CustomerName     = Connection.ToString(dr["customername"]);
                temp.CustomerEmail    = Connection.ToString(dr["Email"]);
                temp.CustomerAddress  = Connection.ToString(dr["Address"]);
                temp.CustomerMobile   = Connection.ToString(dr["Mobile"]);
                temp.CustomerCountry  = Connection.ToInteger(dr["countryname"]);
                temp.CustomerState    = Connection.ToInteger(dr["statename"]);
                temp.CustomerCity     = Connection.ToInteger(dr["city"]);
                temp.CustomerCityname = Connection.ToString(dr["cityname"]);
                temp.UserType         = Connection.ToLong(dr["UserType"]);
                //temp.CustomerType = Connection.ToInteger(dr["UserType"]);
                temp.CategoryType  = Connection.ToString(dr["UserTableCat"]);
                temp.ZipCode       = Connection.ToString(dr["ZipCode"]);
                temp.NoInvoiceMail = Connection.ToBoolean(dr["NoInvoiceMail"]);
                result.Add(temp);
            }

            return(result);
        }
コード例 #7
0
        public List <CLayer.OfflineBooking> SupplierInvoiceSavedBookingList(long PropID, long ID, string BookingRefIDs, string PropertyEmailAddresss, string PropertyType)
        {
            List <CLayer.OfflineBooking> result = new List <CLayer.OfflineBooking>();
            List <DataPlug.Parameter>    param  = new List <DataPlug.Parameter>();
            DataTable dt = new DataTable();

            if (ID > 0)
            {
                param.Add(Connection.GetParameter("pProp_ID", DataPlug.DataType._BigInt, PropID));
                param.Add(Connection.GetParameter("pSupplierInvoice_ID", DataPlug.DataType._BigInt, ID));
                param.Add(Connection.GetParameter("pPropertyEmailAddresss", DataPlug.DataType._Text, PropertyEmailAddresss));
                param.Add(Connection.GetParameter("pPropertyType", DataPlug.DataType._Text, PropertyType));
                dt = Connection.GetTable("SupplierInvoicePropertySavedBooking_List", param);
            }
            else
            {
                param.Add(Connection.GetParameter("pProp_ID", DataPlug.DataType._BigInt, PropID));
                param.Add(Connection.GetParameter("pBookingIDs", DataPlug.DataType._Varchar, BookingRefIDs));
                param.Add(Connection.GetParameter("pPropertyEmailAddresss", DataPlug.DataType._Text, PropertyEmailAddresss));
                param.Add(Connection.GetParameter("pPropertyType", DataPlug.DataType._Text, PropertyType));
                dt = Connection.GetTable("SupplierInvoicePropertyBooking_List_ForSaving", param);
            }

            //param.Add(Connection.GetParameter("pProp_ID", DataPlug.DataType._BigInt, PropID));
            //param.Add(Connection.GetParameter("pSupplierInvoice_ID", DataPlug.DataType._BigInt, ID));
            //DataTable dt = Connection.GetTable("SupplierInvoicePropertySavedBooking_List", param);
            CLayer.OfflineBooking res = null;
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    res                    = new CLayer.OfflineBooking();
                    res.PropertyId         = Connection.ToLong(dr["Prop_ID"]);
                    res.OfflineBookingId   = Connection.ToLong(dr["Primary_ID"]);
                    res.ConfirmationNumber = Connection.ToString(dr["OrderNo"]);
                    //res.Amount = Connection.ToLong(dr["Amount"]);
                    res.CheckIn_date  = Connection.ToDate(dr["CheckIn_date"]);
                    res.CheckOut_date = Connection.ToDate(dr["CheckOut_date"]);
                    //res.BookingDate = Connection.ToDate(dr["BookingDate"]);
                    res.PropertyName      = Connection.ToString(dr["PropertyName"]);
                    res.PropertyContactNo = Connection.ToString(dr["PropertyContactNo"]);
                    res.PropertyEmail     = Connection.ToString(dr["PropertyEmail"]);
                    res.SupplierName      = Connection.ToString(dr["SupplierName"]);
                    res.SupplierMobile    = Connection.ToString(dr["SupplierMobile"]);
                    res.SupplierEmail     = Connection.ToString(dr["SupplierEmail"]);
                    res.TotalBuyPrice     = Connection.ToDecimal(dr["TotalBuyPrice"]);
                    res.City   = Connection.ToString(dr["City"]);
                    res.isOpen = Connection.ToBoolean(dr["open"]);
                    res.SupInvoiceValueBRef = Connection.ToDecimal(dr["SupInvoiceValueBRef"]);
                    res.PaidValueBRef       = Connection.ToDecimal(dr["PaidValueBRef"]);
                    res.AmtTobePaid         = Connection.ToDecimal(dr["AmtTobePaid"]);
                    result.Add(res);
                }
            }
            return(result);
        }
コード例 #8
0
 public StayBazar.Areas.Admin.Models.OfflineBookingModel LoadValoff(long OfflineBookingId)
 {
     StayBazar.Areas.Admin.Models.OfflineBookingModel data = new StayBazar.Areas.Admin.Models.OfflineBookingModel();
     CLayer.OfflineBooking Offlinedata = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookingId);
     data.OfflineBookingId = OfflineBookingId;
     data.CustomerId       = Offlinedata.CustomerId;
     data.PropertyId       = Offlinedata.PropertyId;
     data.SupplierId       = Offlinedata.SupplierId;
     return(data);
 }
コード例 #9
0
        public ActionResult ExcelReport(CLayer.OfflineBooking model)
        {
            Models.OfflineBookingModel data = new Models.OfflineBookingModel();
            DataTable Reportlist            = new DataTable();

            try
            {
                string date1 = Request["FromDate"];
                string date2 = Request["ToDate"];

                string SearchString = Request["SearchString"];

                DateTime FromDate = Convert.ToDateTime(date1);
                DateTime ToDate   = Convert.ToDateTime(date2);

                string FromDates = FromDate.ToString("MMMM dd, yyyy");

                string FromDatesonlyDate = DateTime.Parse(FromDates).ToShortDateString();


                string ToDates = ToDate.ToString("MMMM dd, yyyy");

                string ToDatesonlyDate = DateTime.Parse(ToDates).ToShortDateString();

                string email       = User.Identity.GetUserName();
                long   LoginUserid = BLayer.User.GetUserId(email);

                Reportlist     = BLayer.OfflineBooking.GSTInvoiceReport(SearchString, LIMIT, FromDate, ToDate, LoginUserid);
                ViewBag.Filter = new Models.GrossMarrginReportModel();
                //  data.OfflineBookingList = Reportlist;
                Models.OfflineBookingModel forPager = new Models.OfflineBookingModel()
                {
                    SearchString = data.SearchString,
                    SearchValue  = data.SearchValue,
                    FromDate     = data.FromDate,
                    ToDate       = data.ToDate,
                    TotalRows    = 0,
                    Limit        = 2000,
                    currentPage  = data.currentPage
                };
                //if (Reportlist.Count > 0)
                //{
                //    forPager.TotalRows = Reportlist[0].TotalRows;
                //}
                ViewBag.Filter = forPager;
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            Response.ContentType = "application/vnd.ms-excel";
            Response.AppendHeader("content-disposition", "attachment; filename=report.xls");
            Response.Charset = "";
            return(View("~/Areas/Admin/Views/GSTInvoiceReport/Excel.cshtml", Reportlist));
        }
コード例 #10
0
        public ActionResult CustomerBookingList(long id)
        {
            LogHandler.AddLog("CustomerBookingList:-" + id.ToString());
            Session["CustomerId"] = id;
            string Cus_Email = "";

            Models.CustomerDetailModel details = null;
            //CLayer.User data = BLayer.User.Get(id);
            CLayer.OfflineBooking data = BLayer.OfflineBooking.GetOfflineBookingCustomerDetailsByID(id);
            LogHandler.AddLog("CustomerBookingList data read successfull:-" + DateTime.Now.ToString());
            if (data != null)
            {
                LogHandler.AddLog("If CustomerBookingList data is not null:-" + DateTime.Now.ToString());
                List <CLayer.OfflineBooking> users = BLayer.OfflineBooking.GetAllForPaymentList_Details(data.CustomerName);
                LogHandler.AddLog("users count:-" + DateTime.Now.ToString());
                //List<CLayer.OfflineBooking> users = BLayer.OfflineBooking.GetAllForPaymentList_Details(id);
                // Cus_Email = users.First().CustomerEmail;
                foreach (var item in users)
                {
                    if (Cus_Email == "")
                    {
                        if (item.PaymentLinkStatus == "checked" && item.CustomerEmail != "" && Cus_Email == "")
                        {
                            LogHandler.AddLog("PaymentLinkStatus is checked:-" + DateTime.Now.ToString());
                            Cus_Email = users.First().CustomerEmail;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
                if (Cus_Email == "" && users.Count > 0)
                {
                    Cus_Email = users.First().CustomerEmail;
                    //Advance = users.First().AdvanceReceived;
                }
                Session["CustomerEmail"] = Cus_Email;
                details = new Models.CustomerDetailModel()
                {
                    UserId             = id,
                    FirstName          = data.FirstName,
                    LastName           = data.LastName,
                    Name               = data.CustomerName,
                    Email              = Cus_Email,
                    AdvanceReceived    = 0,
                    OfflineBookingList = users,
                };
            }
            LogHandler.AddLog("CustomerBookingList returns successfull:-" + DateTime.Now.ToString());
            return(View(details));
        }
コード例 #11
0
        public ActionResult ExcelReport(CLayer.OfflineBooking model, bool IsExcelDownload = true)
        {
            Models.OfflineBookingModel data = new Models.OfflineBookingModel();
            DataTable Reportlist            = null;

            try
            {
                string date1 = Request["FromDate"];
                string date2 = Request["ToDate"];

                string SearchString = Request["SearchString"];

                DateTime FromDate = Convert.ToDateTime(date1);
                DateTime ToDate   = Convert.ToDateTime(date2);

                string FromDates = FromDate.ToString("MMMM dd, yyyy");

                string FromDatesonlyDate = DateTime.Parse(FromDates).ToShortDateString();


                string ToDates = ToDate.ToString("MMMM dd, yyyy");

                string ToDatesonlyDate = DateTime.Parse(ToDates).ToShortDateString();
                Reportlist               = BLayer.OfflineBooking.BankUploadReport(SearchString, LIMIT, FromDate, ToDate, true);
                ViewBag.Filter           = new Models.GrossMarrginReportModel();
                data.OfflineBookingTable = Reportlist;
                Models.OfflineBookingModel forPager = new Models.OfflineBookingModel()
                {
                    SearchString = data.SearchString,
                    SearchValue  = data.SearchValue,
                    FromDate     = data.FromDate,
                    ToDate       = data.ToDate,
                    TotalRows    = 0,
                    Limit        = 2000,
                    currentPage  = data.currentPage
                };
                if (Reportlist.Rows.Count > 0)
                {
                    forPager.TotalRows = Convert.ToInt64(Reportlist.Rows.Count);
                }
                ViewBag.Filter = forPager;
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            return(new FileStreamResult(DataTableToExcel.GetExcelStream(Reportlist, "Report", false, null, null, null), DataTableToExcel.CONTENT_TYPE_XLSX)
            {
                FileDownloadName = "BankPaymentReport.xlsx"
            });
        }
コード例 #12
0
ファイル: User.cs プロジェクト: RahulAras007/StayBazar
        public void SaveGST(CLayer.OfflineBooking data)
        {
            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pOffGSTId", DataPlug.DataType._Int, data.OffGSTId));
            param.Add(Connection.GetParameter("pSubCustomerGstStateId", DataPlug.DataType._Int, data.SubCustomerGstStateId));
            param.Add(Connection.GetParameter("pCustomerId", DataPlug.DataType._Int, data.SubCustomerid));
            param.Add(Connection.GetParameter("pCustomerGstRegNo", DataPlug.DataType._Varchar, data.SubCustomerGstRegNo));
            param.Add(Connection.GetParameter("pCustomerTableType", DataPlug.DataType._Int, data.CustomerTableType));

            param.Add(Connection.GetParameter("pSubCustomerAddress", DataPlug.DataType._Varchar, data.SubCustomerAddress));
            param.Add(Connection.GetParameter("pSubCustomerCity", DataPlug.DataType._BigInt, data.SubCustomerCity));
            param.Add(Connection.GetParameter("pSubCustomerCityname", DataPlug.DataType._Varchar, data.SubCustomerCityname));
            param.Add(Connection.GetParameter("pSubCustomerpinCode", DataPlug.DataType._Varchar, data.SubCustomerpinCode));
            Connection.ExecuteQueryScalar("OfflineBooking_Customer_SaveGST", param);
        }
コード例 #13
0
        public List <CLayer.OfflineBooking> getSupplierInvoicePendings_Report(long Start, long Limit, DateTime?fromDT, DateTime?toDT)
        {
            fromDT = fromDT == DateTime.MinValue ? null : fromDT;
            toDT   = toDT == DateTime.MinValue ? null : toDT;
            List <CLayer.OfflineBooking> result = new List <CLayer.OfflineBooking>();
            List <DataPlug.Parameter>    param  = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pfromDT", DataPlug.DataType._Date, fromDT));
            param.Add(Connection.GetParameter("ptoDT", DataPlug.DataType._Date, toDT));
            param.Add(Connection.GetParameter("pStart", DataPlug.DataType._BigInt, Start));
            param.Add(Connection.GetParameter("pLimit", DataPlug.DataType._BigInt, Limit));
            DataSet ds = Connection.GetDataSet("getGetSupplierInvoicePending_Report", param);

            CLayer.OfflineBooking res = null;
            if (ds.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow dr in ds.Tables[1].Rows)
                {
                    res                  = new CLayer.OfflineBooking();
                    res.PropertyId       = Connection.ToLong(dr["Prop_ID"]);
                    res.OfflineBookingId = Connection.ToLong(dr["Primary_ID"]);
                    //res.UserId = Connection.ToString(dr["UserId"]);
                    res.City               = Connection.ToString(dr["City"]);
                    res.CustomerName       = Connection.ToString(dr["CustomerFirstname"]) + " " + Connection.ToString(dr["CustomerLastName"]);
                    res.GuestName          = Connection.ToString(dr["Guestname"]);
                    res.NoOfRooms          = Connection.ToLong(dr["NoOfRooms"]);
                    res.ConfirmationNumber = Connection.ToString(dr["OrderNo"]);
                    res.SupplierName       = Connection.ToString(dr["SupplierName"]);
                    res.CheckIn            = Connection.ToDate(dr["CheckIn_Date"]);
                    res.CheckOut           = Connection.ToDate(dr["CheckOut_Date"]);
                    res.Accommodationname  = Connection.ToString(dr["AccommodatoinTypeName"]);
                    res.BookingDate        = Connection.ToString(dr["BookingDate"]);
                    res.TotalBuyPrice      = Connection.ToDecimal(dr["TotalBuyPrice"]);
                    res.TotalSalePrice     = Connection.ToDecimal(dr["TotalSalePrice"]);
                    res.PropertyName       = Connection.ToString(dr["PropertyName"]);
                    res.SupplierEmail      = Connection.ToString(dr["SupplierEmail"]);
                    res.SupplierMobile     = Connection.ToString(dr["SupplierMobile"]);
                    res.PropertyContactNo  = Connection.ToString(dr["PropertyContactNo"]);
                    res.PropertyEmail      = Connection.ToString(dr["PropertyEmail"]);
                    res.TotalRows          = Connection.ToLong(ds.Tables[0].Rows[0]["NumberOfRows"]);
                    result.Add(res);
                }
            }
            return(result);
        }
コード例 #14
0
        public async Task <bool> SmsService()
        {
            bool           result = false;
            OfflineBooking obj    = new BLayer.OfflineBooking();
            List <CLayer.OfflineBooking> lstOfflineBooking = new List <CLayer.OfflineBooking>();
            DataTable dtdates = obj.GetCheckInDates(0);

            if (dtdates.Rows.Count >= 0)
            {
                foreach (DataRow row in dtdates.Rows)
                {
                    if (row["phonenumber"].ToString() != null && row["phonenumber"].ToString() != "")
                    {
                        var    propertyname     = System.Web.HttpContext.Current.Server.UrlEncode(row["PropertyName"].ToString());
                        var    propertyCityname = System.Web.HttpContext.Current.Server.UrlEncode(row["PropertyCityname"].ToString());
                        var    checkindate      = System.Web.HttpContext.Current.Server.UrlEncode(row["checkindate"].ToString());
                        var    OfflinebookingId = row["BookingId"].ToString();
                        string BookingCNo       = "";
                        if (Convert.ToInt32(OfflinebookingId) > 0)
                        {
                            CLayer.OfflineBooking Offlinedata = BLayer.OfflineBooking.GetAllDetailsById(Convert.ToInt32(OfflinebookingId));
                            if (Offlinedata != null)
                            {
                                BookingCNo = Offlinedata.ConfirmationNumber;
                            }
                        }

                        try
                        {
                            string message = "Dear Guest,Hope you are ready for check-in at  " + propertyname + " at " + propertyCityname + " on " + checkindate + " as per BookingId   " + BookingCNo + "  .Wish you a pleasant stay!";
                            result = await StayBazar.Common.SMSGateway.Send(message, row["phonenumber"].ToString());
                        }
                        catch (Exception ex)
                        {
                            Common.LogHandler.HandleError(ex);
                        }
                    }
                    if (row["Guestemail"].ToString() != null && row["Guestemail"].ToString() != "")
                    {
                        await OfflineBookingConfirmGST(Convert.ToInt32(row["BookingId"]), Convert.ToInt32(row["BookingDetailsId"]), row["Guestemail"].ToString());
                    }
                }
            }
            return(result);
        }
コード例 #15
0
 public ActionResult GetCorporategstDetailsById(long B2bGSTId)
 {
     Models.OfflineBookingModel model = new Models.OfflineBookingModel();
     try
     {
         CLayer.OfflineBooking GstDetails = BLayer.OfflineBooking.GetOfflinegstDetailsById(B2bGSTId);
         model.HiddenSubCustomerCity     = GstDetails.SubCustomerCity;
         model.HiddenSubCustomerCityname = GstDetails.SubCustomerCityname;
         model.HiddenSubCustomerAddress  = GstDetails.SubCustomerAddress;
         model.HiddenSubCustomerpinCode  = GstDetails.SubCustomerpinCode;
         model.HiddenSubCustomerGstRegNo = GstDetails.SubCustomerGstRegNo;
     }
     catch (Exception ex)
     {
         Common.LogHandler.HandleError(ex);
     }
     return(View("~/Areas/Admin/Views/OfflineBookingGST/HiddenGstAddress.cshtml", model));
 }
コード例 #16
0
ファイル: B2B.cs プロジェクト: RahulAras007/StayBazar
        public List <CLayer.OfflineBooking> Searchcustompropertylist(string name)
        {
            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pName", DataPlug.DataType._Varchar, name));
            DataTable dt = Connection.GetTable("b2b_SearchCustompropertylist", param);

            List <CLayer.OfflineBooking> result = new List <CLayer.OfflineBooking>();

            CLayer.OfflineBooking temp;
            foreach (DataRow dr in dt.Rows)
            {
                temp = new CLayer.OfflineBooking();

                temp.CustomPropertyId  = Connection.ToLong(dr["CustomPropertyId"]);
                temp.PropertyName      = Connection.ToString(dr["PropertyName"]);
                temp.PropertyEmail     = Connection.ToString(dr["PropertyEmail"]);
                temp.PropertyAddress   = Connection.ToString(dr["PropertyAddress"]);
                temp.PropertyContactNo = Connection.ToString(dr["PropertyContactNo"]);
                temp.PropertyCountry   = Connection.ToInteger(dr["PropertyCountry"]);
                temp.PropertyState     = Connection.ToInteger(dr["PropertyState"]);
                temp.PropertyCity      = Connection.ToInteger(dr["PropertyCity"]);
                temp.PropertyCityname  = Connection.ToString(dr["Pcityname"]);
                temp.PropertyPinCode   = Connection.ToString(dr["PropertyPinCode"]);

                temp.SupplierPinCode = Connection.ToString(dr["SupplierPinCode"]);

                temp.SupplierName     = Connection.ToString(dr["SupplierName"]);
                temp.SupplierEmail    = Connection.ToString(dr["SupplierEmail"]);
                temp.SupplierAddress  = Connection.ToString(dr["SupplierAddress"]);
                temp.SupplierMobile   = Connection.ToString(dr["SupplierMobile"]);
                temp.SupplierCountry  = Connection.ToInteger(dr["SupplierCountry"]);
                temp.SupplierState    = Connection.ToInteger(dr["SupplierState"]);
                temp.SupplierCity     = Connection.ToInteger(dr["SupplierCity"]);
                temp.SupplierCityname = Connection.ToString(dr["Scityname"]);


                temp.GSTRegistrationNo = Connection.ToString(dr["GSTRegistrationNo"]);
                temp.PAN = Connection.ToString(dr["PANNo"]);
                result.Add(temp);
            }

            return(result);
        }
コード例 #17
0
        public ActionResult EditCustomer(long CustomerId)
        {
            Models.OfflineBookingModel data  = new Models.OfflineBookingModel();
            CLayer.OfflineBooking      model = BLayer.OfflineBooking.GetOfflineBookingCustomerDetailsByID(CustomerId);
            data.CustomerId       = model.CustomerId;
            data.CustomerName1    = model.CustomerName;
            data.CustomerEmail1   = model.CustomerEmail;
            data.CustomerMobile1  = model.CustomerMobile;
            data.CustomerCountry1 = model.CustomerCountry;
            data.CustomerState1   = model.CustomerState;
            data.CustomerCity1    = model.CustomerCity;
            data.CustomerCityname = model.CustomerCityname;
            data.BillingCountryId = model.BillingCountryId;
            data.CustomerAddress1 = model.CustomerAddress;
            data.CustomerType     = model.CustomerType;
            data.BillingAddress   = model.BillingAddress;
            data.BillingState     = model.BillingState;
            data.BillingCity      = model.BillingCity;
            data.PinCode          = model.PinCode;
            data.BillingMobile    = model.BillingMobile;
            data.ContactPerson    = model.ContactPerson;
            data.OfficeNO         = model.OfficeNO;
            //data.GuestName1 = model.GuestName1;
            //data.GuestEmail1 = model.GuestEmail1;
            data.BillingCityname     = model.BillingCityname;
            data.CustomerpinCode     = model.CustomerpinCode;
            data.NoInvoiceMail       = model.NoInvoiceMail;
            data.CustomerPaymentMode = model.CustomerPaymentMode;
            data.CreditDays          = model.CreditDays;



            //data.LoadCustomerGstStatesExceptIncludedByCustomerId(model.CustomerId);


            // data.LoadPlaces();
            //List<CLayer.OfflineBooking> Bookings = BLayer.OfflineBooking.GetAllBookingsByCusPropId(CustomPropertyId, 0, 25);
            //data.BookedpropertyList = Bookings;
            return(View("EditCustomer", data));
        }
コード例 #18
0
 public ActionResult saveSelectedBookingList(string BookingRefIDs, long SupplierInvID, long PropertyId, string PropertyEmailAddresss, string PropertyType, string editedBookingRefIDs)
 {
     Models.SuppierInvoiceModel model = new Models.SuppierInvoiceModel();
     try
     {
         List <CLayer.OfflineBooking> lis = new List <CLayer.OfflineBooking>();
         if (SupplierInvID > 0)
         {
             foreach (string num in editedBookingRefIDs.Split(',').ToList <string>())
             {
                 string dupe_num = num == null ? "" : num;
                 if (dupe_num.Trim() != "")
                 {
                     CLayer.OfflineBooking rs = new CLayer.OfflineBooking();
                     rs.ConfirmationNumber  = num;
                     rs.SupplierInvoiceID   = SupplierInvID;
                     rs.isOpen              = false;
                     rs.SupInvoiceValueBRef = 0;
                     rs.PaidValueBRef       = 0;
                     lis.Add(rs);
                 }
             }
             if (lis != null)
             {
                 if (lis.Count() > 0)
                 {
                     BLayer.SupplierInvoice.saveSupplierInvoiceBooking(lis);
                 }
             }
         }
         model.savedBookingList = BLayer.SupplierInvoice.SupplierInvoiceSavedBookingList(PropertyId, SupplierInvID, BookingRefIDs, PropertyEmailAddresss, PropertyType);
     }
     catch (Exception ex)
     {
     }
     return(View("~/Areas/Admin/Views/SupplierInvoiceDetails/_InvPropertySavedBookingList.cshtml", model));
 }
コード例 #19
0
        public ActionResult CustomerPaymentDetails()
        {
            long id           = Convert.ToInt64(Session["CustomerId"]);
            long LoggedInUser = Convert.ToInt64(System.Web.HttpContext.Current.Session["LoggedInUser"]);

            CLayer.OfflineBooking        data  = BLayer.OfflineBooking.GetOfflineBookingCustomerDetailsByID(id);
            List <CLayer.OfflineBooking> users = BLayer.OfflineBooking.GetAllForPaymentList_Details(data.CustomerName);

            Session["CustomerEmail"] = users.First().CustomerEmail;
            Models.CustomerPaymentDetailModel details = null;
            details = new Models.CustomerPaymentDetailModel()
            {
                UserId = id,
                //SalutationId = data.SalutationId,
                FirstName = data.FirstName,
                LastName  = data.LastName,
                Name      = data.CustomerName,
                //DateOfBirth = data.DateOfBirth.ToShortDateString(),
                //Status = data.Status,
                Email = users.First().CustomerEmail,
                OfflineBookingList = users,
            };
            return(View(details));
        }
コード例 #20
0
        public async Task <ActionResult> SaveDetails(Models.Invoice data)
        {
            CLayer.Invoice sdata = null;
            if (data.OfflineBookingId > 0)
            {
                sdata = BLayer.Invoice.GetInvoiceByOfflineBooking(data.OfflineBookingId);
            }
            if (sdata == null)
            {
                sdata = await MakeNewInvoice(data.OfflineBookingId);
            }


            sdata.OfflineBookingId = data.OfflineBookingId;

            if (data.InvoiceId > 0)
            {
                sdata.InvoiceId = data.InvoiceId;
            }

            //DateTime dt = DateTime.Today;
            //DateTime.TryParse(data.InvoiceDate, out dt);
            //sdata.InvoiceDate = dt;
            sdata.HtmlSection1 = data.HtmlSection1;
            sdata.HtmlSection2 = data.HtmlSection2;
            sdata.HtmlSection3 = data.HtmlSection3;


            if (data.OfflineBookingId > 0)
            {
                int OfflineBookingType = BLayer.OfflineBooking.GetBookingType(data.OfflineBookingId);
                if (OfflineBookingType == (int)CLayer.ObjectStatus.OfflineBookingType.Direct)
                {
                    sdata.HtmlSection4 = data.HtmlSection4;
                }
                else
                {
                    sdata.HtmlSection4 = "";
                }
            }

            //Common.Utils.
            // sdata.InvoiceDate = DateTime.Today;

            sdata.InvoiceType = (int)CLayer.ObjectStatus.InvoiceType.Invoice;
            if (data.OPType == 1) // Save button clicked
            {
                BLayer.Invoice.Save(sdata);
                // BLayer.Invoice.Save(sdata);
            }
            else if (data.OPType == 2) // Send mail button
            {
                int bookingType = BLayer.OfflineBooking.GetBookingType(data.OfflineBookingId);
                if (bookingType == (int)CLayer.ObjectStatus.OfflineBookingType.Regular)
                {
                    data.OPType      = 1;
                    sdata.MailedDate = DateTime.Today;
                    BLayer.Invoice.Save(sdata);

                    if (sdata != null)
                    {
                        if (sdata.InvoiceId > 0)
                        {
                            BLayer.Invoice.SetMailedDate(sdata.InvoiceId, DateTime.Today);
                            if (data.OfflineBookingId > 0)
                            {
                                // Send mail
                                await SendMailInvoice(data.OfflineBookingId);
                            }
                        }
                    }
                }
            }
            else if (data.OPType == 3) //
            {
                sdata = await MessageFromHtml(data.OfflineBookingId);

                BLayer.Invoice.Save(sdata);
            }
            else if (data.OPType == 4) //Approve Invoce details
            {
                //bool allowed = false;
                //if (BLayer.OfflineBooking.GetBookingType(sdata.OfflineBookingId) != (int)CLayer.ObjectStatus.OfflineBookingType.TAC)
                //{
                //    allowed = true;
                //}
                //  if (allowed)
                //   {
                int taxtype = BLayer.OfflineBooking.GetTaxType(sdata.OfflineBookingId);
                //Invoice Number if Exists
                CLayer.Invoice invdt = new CLayer.Invoice();
                if (data.InvoiceId > 0)
                {
                    invdt = BLayer.Invoice.GetInvoice(data.InvoiceId);
                    if (invdt != null)
                    {
                        if (invdt.InvoiceNumber != null && invdt.InvoiceNumber != "")
                        {
                            sdata.InvoiceNumber = invdt.InvoiceNumber;
                        }
                    }
                }

                if (sdata.InvoiceNumber == null || sdata.InvoiceNumber == "")
                {
                    CLayer.InvoiceNumberData inValue;
                    if (taxtype == (int)CLayer.ObjectStatus.OfflineBookingTaxType.GST)
                    {
                        inValue = BLayer.NumberGenerator.GetGSTInvoiceNumber(sdata.OfflineBookingId);
                    }
                    else
                    {
                        inValue = BLayer.NumberGenerator.GetInvoiceNumber();
                    }
                    if (inValue != null)
                    {
                        sdata.InvoiceNumber = inValue.InvoiceNumber;
                        sdata.InvoiceDate   = inValue.InvoiceDate;
                    }
                }

                sdata.HtmlSection1 = sdata.HtmlSection1.Replace(INVOICE_NUMBER_LOC, sdata.InvoiceNumber.ToString());
                sdata.HtmlSection1 = sdata.HtmlSection1.Replace(INVOICE_DATE_LOC, sdata.InvoiceDate.ToString("dd/MM/yyyy"));

                if (sdata.HtmlSection4 != "")
                {
                    sdata.HtmlSection4 = sdata.HtmlSection4.Replace(INVOICE_NUMBER_LOC, sdata.InvoiceNumber.ToString());
                    sdata.HtmlSection4 = sdata.HtmlSection4.Replace(INVOICE_DATE_LOC, sdata.InvoiceDate.ToString("dd/MM/yyyy"));
                }

                sdata.Status = (int)CLayer.ObjectStatus.InvoiceStatus.Submitted;
                BLayer.Invoice.Save(sdata);

                if (data.OfflineBookingId > 0)
                {
                    CLayer.OfflineBooking cus = BLayer.OfflineBooking.GetAllCustomerDetails(data.OfflineBookingId);
                    //if (!BLayer.OfflineBooking.CanSendInvoiceMail(cus.CustomerName, cus.CustomerEmail))
                    //{
                    //    // Send mail
                    //    await SendMailInvoice(data.OfflineBookingId);
                    //}
                }
                //  }// only if allowed
            }
            else if (data.OPType == 5) //reset Invoice details
            {
                sdata.HtmlSection1 = "";
                sdata.HtmlSection2 = "";
                sdata.HtmlSection4 = "";
                BLayer.Invoice.Save(sdata);
            }

            return(RedirectToAction("Edit", new { obid = sdata.OfflineBookingId }));
        }
コード例 #21
0
        public List <CLayer.OfflineBooking> SupplierInvoiceBookingList(long PropID, long ID, string BookingRefIDs, string PropertyEmailAddresss, string PropertyType, int searchTypeBooking, string searchTextBooking, int Start, int Limit, int TaxType, out int TotalRows_Booking)
        {
            List <CLayer.OfflineBooking> result = new List <CLayer.OfflineBooking>();

            List <DataPlug.Parameter> param = new List <DataPlug.Parameter>();

            param.Add(Connection.GetParameter("pProp_ID", DataPlug.DataType._BigInt, PropID));
            param.Add(Connection.GetParameter("pSupplierInvoice_ID", DataPlug.DataType._BigInt, ID));
            param.Add(Connection.GetParameter("psearchTypeBooking", DataPlug.DataType._Int, searchTypeBooking));
            param.Add(Connection.GetParameter("psearchTextBooking", DataPlug.DataType._Text, searchTextBooking));
            param.Add(Connection.GetParameter("pStart", DataPlug.DataType._Int, Start == 1 ? 0 : Start));
            param.Add(Connection.GetParameter("pLimit", DataPlug.DataType._Int, Limit));
            param.Add(Connection.GetParameter("pPropertyEmailAddresss", DataPlug.DataType._Text, PropertyEmailAddresss));
            param.Add(Connection.GetParameter("pPropertyType", DataPlug.DataType._Text, PropertyType));
            DataSet ds = new DataSet();

            if (TaxType == (int)CLayer.SupplierInvoice.TaxTypes.ServiceTax)
            {
                ds = Connection.GetDataSet("SupplierInvoicePropertyBooking_List", param);
            }
            else
            {
                ds = Connection.GetDataSet("SupplierInvoicePropertyBooking_ListForGST", param);
            }

            DataTable dt_Row = ds.Tables[0];

            if (dt_Row.Rows.Count > 0)
            {
                TotalRows_Booking = Connection.ToInteger(dt_Row.Rows[0]["NumberOfRows"]);
            }
            else
            {
                TotalRows_Booking = 0;
            }
            DataTable dt = ds.Tables[1];

            CLayer.OfflineBooking res = null;
            if (dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    res                    = new CLayer.OfflineBooking();
                    res.PropertyId         = Connection.ToLong(dr["Prop_ID"]);
                    res.OfflineBookingId   = Connection.ToLong(dr["Primary_ID"]);
                    res.ConfirmationNumber = Connection.ToString(dr["OrderNo"]);
                    //res.Amount = Connection.ToLong(dr["Amount"]);
                    res.CheckIn_date  = Connection.ToDate(dr["CheckIn_date"]);
                    res.CheckOut_date = Connection.ToDate(dr["CheckOut_date"]);
                    //res.BookingDate = Connection.ToDate(dr["BookingDate"]);
                    res.PropertyName      = Connection.ToString(dr["PropertyName"]);
                    res.PropertyContactNo = Connection.ToString(dr["PropertyContactNo"]);
                    res.PropertyEmail     = Connection.ToString(dr["PropertyEmail"]);
                    res.SupplierName      = Connection.ToString(dr["SupplierName"]);
                    res.SupplierMobile    = Connection.ToString(dr["SupplierMobile"]);
                    res.SupplierEmail     = Connection.ToString(dr["SupplierEmail"]);
                    res.TotalBuyPrice     = Connection.ToDecimal(dr["TotalBuyPrice"]);
                    res.City        = Connection.ToString(dr["City"]);
                    res.AmtTobePaid = Connection.ToDecimal(dr["AmtTobePaid"]);
                    foreach (string st in BookingRefIDs.Split(',').ToList <string>())
                    {
                        if (st == Connection.ToString(dr["OrderNo"]))
                        {
                            res.isCheckBook = true;
                        }
                    }
                    result.Add(res);
                }
            }
            return(result);
        }
コード例 #22
0
        public async Task <string> SupplierPaymentEmail()
        {
            WebClient wc = new WebClient();

            try
            {
                Models.OfflinePaymentModel   data = new Models.OfflinePaymentModel();
                List <CLayer.OfflineBooking> dt   = BLayer.OfflineBooking.GetAllOfflineDetails();
                long        OfflineBookingId      = 0;
                MailMessage mm = new MailMessage();

                string BccEmailsforcususer = BLayer.Settings.GetValue(CLayer.Settings.SUPPLIERPAYMENTSCHEDULEEMAIL);
                if (BccEmailsforcususer != "")
                {
                    mm.To.Clear();
                    string[] emails = BccEmailsforcususer.Split(',');
                    for (int i = 0; i < emails.Length; ++i)
                    {
                        mm.To.Add(emails[i]);
                    }
                }


                mm.From = new MailAddress(ConfigurationManager.AppSettings.Get("CustomerCareMail"));
                Common.Mailer mlr = new Common.Mailer();
                mm.IsBodyHtml = true;


                foreach (CLayer.OfflineBooking offbook in dt)
                {
                    CLayer.OfflineBooking offedit = BLayer.OfflineBooking.GetAllDetailsById(offbook.OfflineBookingId);

                    if (offedit.IsSupplierPaymentMailSend)
                    {
                        mm.Subject = "SUPPLIER PAYMENT SCHEDULE EMAIL [Revised]";
                    }
                    else
                    {
                        mm.Subject = "SUPPLIER PAYMENT SCHEDULE EMAIL";
                    }


                    if (offbook.SupplierPaymentScheduleList.Count > 0)
                    {
                        int exit = 0;
                        foreach (var schedule in offbook.SupplierPaymentScheduleList)
                        {
                            if (schedule.SupplierPaymentMode == (int)CLayer.OfflineBooking.SupplierPaymentModelist.OnInstalments)
                            {
                                foreach (var date in offbook.SupplierPaymentScheduleList)
                                {
                                    if (date.SupplierPaymentModeDate.ToShortDateString() == System.DateTime.Now.ToShortDateString() && exit == 0)
                                    {
                                        OfflineBookingId = offbook.OfflineBookingId;
                                        string link = System.Configuration.ConfigurationManager.AppSettings.Get("OfflinebookingSupplierPaymentSchedule") + OfflineBookingId.ToString();
                                        //for normal user mail body
                                        string result = await Common.Mailer.MessageFromHtml(link);


                                        mm.Body = result;
                                        await mlr.SendMailAsyncWithoutFields(mm);

                                        //Update supplier payment mail send data
                                        BLayer.OfflineBooking.UpdateSupplierPaymentmailsendData(OfflineBookingId);
                                        exit = 1;
                                        break;
                                    }
                                }
                            }
                            if (schedule.SupplierPaymentMode == (int)CLayer.OfflineBooking.SupplierPaymentModelist.Credit)
                            {
                                DateTime dtDate = offbook.CheckOut.AddDays(schedule.SupplierCreditDays);
                                if (dtDate.ToShortDateString() == System.DateTime.Now.ToShortDateString())
                                {
                                    OfflineBookingId = offbook.OfflineBookingId;
                                    string link = System.Configuration.ConfigurationManager.AppSettings.Get("OfflinebookingSupplierPaymentSchedule") + OfflineBookingId.ToString();
                                    //for normal user mail body
                                    string result = await Common.Mailer.MessageFromHtml(link);


                                    mm.Body = result;
                                    await mlr.SendMailAsyncWithoutFields(mm);

                                    //Update supplier payment mail send data
                                    BLayer.OfflineBooking.UpdateSupplierPaymentmailsendData(OfflineBookingId);
                                }
                            }
                            if (schedule.SupplierPaymentMode == (int)CLayer.OfflineBooking.SupplierPaymentModelist.FullAmountBeforeCheckin)
                            {
                                if (offbook.CheckIn.ToShortDateString() == System.DateTime.Now.ToShortDateString())
                                {
                                    OfflineBookingId = offbook.OfflineBookingId;
                                    string link = System.Configuration.ConfigurationManager.AppSettings.Get("OfflinebookingSupplierPaymentSchedule") + OfflineBookingId.ToString();
                                    //for normal user mail body
                                    string result = await Common.Mailer.MessageFromHtml(link);


                                    mm.Body = result;
                                    await mlr.SendMailAsyncWithoutFields(mm);

                                    //Update supplier payment mail send data
                                    BLayer.OfflineBooking.UpdateSupplierPaymentmailsendData(OfflineBookingId);
                                }
                            }
                            if (schedule.SupplierPaymentMode == (int)CLayer.OfflineBooking.SupplierPaymentModelist.FullAmountBeforeCheckout)
                            {
                                if (offbook.CheckOut.ToShortDateString() == System.DateTime.Now.ToShortDateString())
                                {
                                    OfflineBookingId = offbook.OfflineBookingId;
                                    string link = System.Configuration.ConfigurationManager.AppSettings.Get("OfflinebookingSupplierPaymentSchedule") + OfflineBookingId.ToString();
                                    //for normal user mail body
                                    string result = await Common.Mailer.MessageFromHtml(link);


                                    mm.Body = result;
                                    await mlr.SendMailAsyncWithoutFields(mm);

                                    //Update supplier payment mail send data
                                    BLayer.OfflineBooking.UpdateSupplierPaymentmailsendData(OfflineBookingId);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
                return("false");
            }
            return("true");
        }
コード例 #23
0
 public static void SaveGST(CLayer.OfflineBooking data)
 {
     DataLayer.User usr = new DataLayer.User();
     usr.SaveGST(data);
 }
コード例 #24
0
        public ActionResult saveSupplierInvoiceDetails(Models.SuppierInvoiceModel model)
        {
            try
            {
                CLayer.SupplierInvoice data = new CLayer.SupplierInvoice();
                data.SupplierInvoiceID        = model.SupplierInvoiceID;
                data.PropertyId               = model.PropertyId;
                data.SupplierId               = model.SupplierId;
                data.InvoiceNumber            = model.InvoiceNumber;
                data.InvoiceDate              = model.InvoiceDate == null ? DateTime.Now : DateTime.ParseExact(model.InvoiceDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                data.ServiceTaxRegNumber      = model.ServiceTaxRegNumber;
                data.PAN_Number               = model.PAN_Number;
                data.BaseAmount               = model.BaseAmount;
                data.LuxuryTax                = model.LuxuryTax;
                data.ServiceTax               = model.ServiceTax;
                data.TotalInvoiceValue        = model.TotalInvoiceValue;
                data.EntryDate                = model.EntryDate == null ? DateTime.Now : DateTime.ParseExact(model.EntryDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
                data.txtTotalAdjustmentResult = model.txtTotalAdjustmentResult;
                data.PropertyEmailAddresss    = model.PropertyEmailAddresss;
                data.PropertyType             = model.PropertyType;
                data.TaxType          = model.TaxType;
                data.IsSupInvoicedone = model.IsSupInvoicedone;
                long ID = BLayer.SupplierInvoice.Save(data);
                data.SupplierInvoiceID = ID;
                if (ID > 0)
                {
                    if (model.BookingRefIDsWithValue != null)
                    {
                        if (model.BookingRefIDsWithValue.Length > 0)
                        {
                            List <CLayer.OfflineBooking> lis = new List <CLayer.OfflineBooking>();

                            foreach (string num in model.BookingRefIDsWithValue.Split(',').ToList <string>())
                            {
                                string[] numwtvle = num.Split('#');
                                string   BkgNum   = numwtvle[0];

                                bool   isChecked = false;
                                string dupe_num  = BkgNum == null ? "" : BkgNum;
                                if (dupe_num.Trim() != "")
                                {
                                    if (model.checkedBookingRefIDs != null)
                                    {
                                        foreach (string chkNum in model.checkedBookingRefIDs.Split(',').ToList <string>())
                                        {
                                            string checkedNum = chkNum == null ? "" : chkNum;
                                            if (checkedNum != "")
                                            {
                                                if (dupe_num == checkedNum)
                                                {
                                                    isChecked = true;
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        isChecked = false;
                                    }

                                    CLayer.OfflineBooking rs = new CLayer.OfflineBooking();
                                    rs.ConfirmationNumber = BkgNum;
                                    rs.SupplierInvoiceID  = ID;
                                    rs.isOpen             = isChecked;

                                    decimal SupInvoiceValueBRef = 0;
                                    if (numwtvle[1] == null)
                                    {
                                        SupInvoiceValueBRef = 0;
                                    }
                                    else
                                    {
                                        SupInvoiceValueBRef = Convert.ToDecimal(numwtvle[1]);
                                    }

                                    decimal PaidValueBRef = 0;
                                    if (numwtvle[2] == null)
                                    {
                                        PaidValueBRef = 0;
                                    }
                                    else
                                    {
                                        PaidValueBRef = Convert.ToDecimal(numwtvle[2]);
                                    }

                                    rs.SupInvoiceValueBRef = SupInvoiceValueBRef;
                                    rs.PaidValueBRef       = PaidValueBRef;
                                    lis.Add(rs);
                                }
                            }
                            if (lis != null)
                            {
                                if (lis.Count() > 0)
                                {
                                    BLayer.SupplierInvoice.saveSupplierInvoiceBooking(lis);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            if (model.TaxType == (int)CLayer.SupplierInvoice.TaxTypes.ServiceTax)
            {
                if (model.isFromList)
                {
                    return(RedirectToAction("getSupplierInvoiceList"));
                }
                else
                {
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                if (model.isFromList)
                {
                    return(RedirectToAction("getSupplierInvoiceListForgst"));
                }
                else
                {
                    return(RedirectToAction("GSTIndex"));
                }
            }
        }
コード例 #25
0
        public async Task <bool> ResendemailSGST(long OfflineBookingId, long BookingDetailsId, string key)
        {
            try
            {
                string lck = BLayer.Settings.GetValue(CLayer.Settings.PUBLIC_PAGE_LOCK);
                if (key != lck)
                {
                    return(true);
                }



                if (OfflineBookingId < 1)
                {
                    return(false);
                }
                CLayer.OfflineBooking Offlinedata         = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookingId);
                CLayer.OfflineBooking OfflinePropertydata = BLayer.OfflineBooking.GetAllpropertyDetails(OfflineBookingId);
                CLayer.OfflineBooking CustomerDetails     = BLayer.OfflineBooking.GetAllCustomerDetails(OfflineBookingId);

                if (CustomerDetails == null)
                {
                    return(false);
                }
                if (OfflinePropertydata == null)
                {
                    return(false);
                }

                CLayer.StayCategory      Staycategorydetails      = BLayer.StayCategory.Get(Convert.ToInt32(Offlinedata.StayCategoryid));
                CLayer.AccommodationType AccommodationTypedetails = BLayer.AccommodationType.Get(Convert.ToInt32(Offlinedata.Accommodationtypeid));

                CLayer.Role.Roles rle = BLayer.User.GetRole(Offlinedata.CustomerId);

                string        message = "";
                Common.Mailer ml      = new Common.Mailer();

                if (OfflineBookingId < 1)
                {
                    return(false);
                }
                try
                {
                    if (OfflinePropertydata.PropertyEmail != "")
                    {
                        message = await Common.Mailer.MessageFromHtml(System.Configuration.ConfigurationManager.AppSettings.Get("SupplierIntemationOfflineBookGST") + OfflineBookingId.ToString() + "&key=" + BLayer.Settings.GetValue(CLayer.Settings.PUBLIC_PAGE_LOCK) + "&BookingDetailsId=" + BookingDetailsId);

                        System.Net.Mail.MailMessage supplierMsg = new System.Net.Mail.MailMessage();

                        string BccEmailsforsupp = BLayer.Settings.GetValue(CLayer.Settings.CC_SUPPLIERCOMMUNICATION);
                        if (BccEmailsforsupp != "")
                        {
                            string[] emails = BccEmailsforsupp.Split(',');
                            for (int i = 0; i < emails.Length; ++i)
                            {
                                supplierMsg.Bcc.Add(emails[i]);
                            }
                        }

                        supplierMsg.Subject = "Booking Confirmation";
                        supplierMsg.Body    = message;

                        if (OfflinePropertydata.PropertyEmail != "")
                        {
                            supplierMsg.To.Add(OfflinePropertydata.PropertyEmail);
                        }
                        supplierMsg.IsBodyHtml = true;

                        try
                        {
                            await ml.SendMailAsync(supplierMsg, Common.Mailer.MailType.Reservation);
                        }
                        catch (Exception ex)
                        {
                            Common.LogHandler.HandleError(ex);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Common.LogHandler.HandleError(ex);
                }
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            return(true);
        }
コード例 #26
0
        public async Task <bool> ResendemailC(long OfflineBookingId)
        {
            return(true);

            try
            {
                if (OfflineBookingId < 1)
                {
                    return(false);
                }
                CLayer.OfflineBooking Offlinedata         = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookingId);
                CLayer.OfflineBooking OfflinePropertydata = BLayer.OfflineBooking.GetAllpropertyDetails(OfflineBookingId);
                CLayer.OfflineBooking CustomerDetails     = BLayer.OfflineBooking.GetAllCustomerDetails(OfflineBookingId);

                if (CustomerDetails == null)
                {
                    return(false);
                }
                if (OfflinePropertydata == null)
                {
                    return(false);
                }

                CLayer.StayCategory      Staycategorydetails      = BLayer.StayCategory.Get(Convert.ToInt32(Offlinedata.StayCategoryid));
                CLayer.AccommodationType AccommodationTypedetails = BLayer.AccommodationType.Get(Convert.ToInt32(Offlinedata.Accommodationtypeid));

                CLayer.Role.Roles rle = BLayer.User.GetRole(Offlinedata.CustomerId);

                string        message = "";
                Common.Mailer ml      = new Common.Mailer();

                string link = System.Configuration.ConfigurationManager.AppSettings.Get("OfflineBookingConfirmation") + OfflineBookingId.ToString() + "&key=" + BLayer.Settings.GetValue(CLayer.Settings.PUBLIC_PAGE_LOCK);
                //for normal user mail body
                message = await Common.Mailer.MessageFromHtml(link);

                System.Net.Mail.MailMessage customerMsg = new System.Net.Mail.MailMessage();
                //guest mail added
                customerMsg.To.Add(CustomerDetails.CustomerEmail);

                string BccEmailsforcususer = BLayer.Settings.GetValue(CLayer.Settings.CC_CUSTOMERCOMMUNICATION);
                if (BccEmailsforcususer != "")
                {
                    string[] emails = BccEmailsforcususer.Split(',');
                    for (int i = 0; i < emails.Length; ++i)
                    {
                        customerMsg.Bcc.Add(emails[i]);
                    }
                }
                customerMsg.Subject = "Booking Confirmation";
                customerMsg.Body    = message;

                customerMsg.IsBodyHtml = true;
                try
                {
                    await ml.SendMailAsync(customerMsg, Common.Mailer.MailType.Reservation);
                }
                catch (Exception ex)
                {
                    Common.LogHandler.HandleError(ex);
                }
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            return(true);
        }
コード例 #27
0
        public async Task <bool> OfflineBookingConfirmGST(long OfflineBookId, long BookingDetailsId, string GuestEmail)
        {
            try
            {
                if (OfflineBookId < 1)
                {
                    return(false);
                }
                if (BookingDetailsId < 1)
                {
                    return(false);
                }
                CLayer.OfflineBooking Offlinedata = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookId);

                CLayer.OfflineBooking OfflinePropertydata = BLayer.OfflineBooking.GetAllpropertyDetails(OfflineBookId);

                CLayer.OfflineBooking CustomerDetails = BLayer.OfflineBooking.GetAllCustomerDetails(OfflineBookId);

                if (CustomerDetails == null)
                {
                    return(false);
                }
                if (OfflinePropertydata == null)
                {
                    return(false);
                }

                CLayer.StayCategory      Staycategorydetails      = BLayer.StayCategory.Get(Convert.ToInt32(Offlinedata.StayCategoryid));
                CLayer.AccommodationType AccommodationTypedetails = BLayer.AccommodationType.Get(Convert.ToInt32(Offlinedata.Accommodationtypeid));

                CLayer.Role.Roles rle = BLayer.User.GetRole(Offlinedata.CustomerId);

                string        message = "";
                Common.Mailer ml      = new Common.Mailer();

                try
                {
                    #region Repeat portion

                    //List<CLayer.OfflineBooking> BListGST = BLayer.OfflineBooking.GetMultipleBookingDetailsGST(OfflineBookId);
                    //foreach (CLayer.OfflineBooking dt in BListGST)
                    //{

                    System.Net.Mail.MailMessage customerMsg = new System.Net.Mail.MailMessage();
                    //customerMsg.To.Add(CustomerDetails.CustomerEmail);
                    string BccEmailsforcususer = BLayer.Settings.GetValue(CLayer.Settings.CC_CUSTOMERCOMMUNICATION);
                    if (BccEmailsforcususer.Trim() != "")
                    {
                        string[] emails = Common.Utils.SplitEmails(BccEmailsforcususer);
                        //BccEmailsforcususer.Split(',');
                        for (int i = 0; i < emails.Length; ++i)
                        {
                            customerMsg.CC.Add(emails[i]);
                        }
                    }


                    customerMsg.Subject    = "CHECK-IN REMINDER";
                    customerMsg.IsBodyHtml = true;

                    if (GuestEmail != null)
                    {
                        if (GuestEmail != null && GuestEmail != "")
                        {
                            string[] emails = Common.Utils.SplitEmails(GuestEmail);
                            for (int i = 0; i < emails.Length; ++i)
                            {
                                customerMsg.To.Add(emails[i]);
                            }
                        }
                    }

                    string link = System.Configuration.ConfigurationManager.AppSettings.Get("OfflineBookingConfirmationBeforeCheckin") + OfflineBookId.ToString() + "&BookingDetailsId=" + BookingDetailsId + "&key=" + BLayer.Settings.GetValue(CLayer.Settings.PUBLIC_PAGE_LOCK);
                    message = await Common.Mailer.MessageFromHtml(link);

                    customerMsg.Body = message;



                    //Select Distinct Mail address in To mails

                    System.Net.Mail.MailAddress[] DistinctTo = customerMsg.To.Distinct().ToArray();
                    customerMsg.To.Clear();
                    for (int i = 0; i < DistinctTo.Length; ++i)
                    {
                        customerMsg.To.Add(DistinctTo[i]);
                    }

                    //Select Distinct Mail address in CC mails

                    System.Net.Mail.MailAddress[] DistinctCC = customerMsg.CC.Distinct().Except(DistinctTo).ToArray();
                    customerMsg.CC.Clear();
                    for (int i = 0; i < DistinctCC.Length; ++i)
                    {
                        customerMsg.CC.Add(DistinctCC[i]);
                    }



                    try
                    {
                        await ml.SendMailAsync(customerMsg, Common.Mailer.MailType.Reservation);
                    }
                    catch (Exception ex)
                    {
                        Common.LogHandler.HandleError(ex);
                    }

                    //}
                    #endregion
                }
                catch (Exception ex)
                {
                    Common.LogHandler.HandleError(ex);
                }
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }

            return(true);
        }
コード例 #28
0
        public async Task <bool> SendMailInvoice(long OfflineBookingId)
        {
            string Filename = "";
            // send mail to customer -- after save
            string msg = await GetMailBody(OfflineBookingId);

            Common.Mailer ml = new Common.Mailer();
            System.Net.Mail.MailMessage mail     = new System.Net.Mail.MailMessage();
            CLayer.OfflineBooking       booking  = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookingId);
            CLayer.OfflineBooking       customer = new CLayer.OfflineBooking();

            int bookingType = BLayer.OfflineBooking.GetBookingType(OfflineBookingId);

            if (bookingType == (int)CLayer.ObjectStatus.OfflineBookingType.TAC)
            {
                //Mail To Supplier
                if (OfflineBookingId > 0)
                {
                    CLayer.OfflineBooking OfflinePropertydata = BLayer.OfflineBooking.GetAllpropertyDetails(OfflineBookingId);
                    if (OfflinePropertydata != null)
                    {
                        if (OfflinePropertydata.SupplierEmail != null && OfflinePropertydata.SupplierEmail != "")
                        {
                            mail.To.Add(OfflinePropertydata.SupplierEmail);
                        }
                    }
                }
                string BccEmailsforSup = BLayer.Settings.GetValue(CLayer.Settings.CC_SUPPLIERCOMMUNICATION);
                if (BccEmailsforSup.Trim() != "")
                {
                    string[] emails = BccEmailsforSup.Split(',');
                    for (int i = 0; i < emails.Length; ++i)
                    {
                        mail.CC.Add(emails[i]);
                    }
                }
            }
            else
            {
                //Mail To Customer
                if (OfflineBookingId > 0)
                {
                    customer = BLayer.OfflineBooking.GetAllCustomerDetails(OfflineBookingId);
                }
                if (customer != null)
                {
                    if (customer.CustomerEmail != "")
                    {
                        mail.To.Add(customer.CustomerEmail);
                    }
                }
                #region for corporate
                //for corporate admins
                //long userid = BLayer.User.GetUserId(customer.CustomerEmail);
                //if (userid > 0)
                //{
                //    CLayer.Role.Roles rle = BLayer.User.GetRole(userid);
                //    if (rle == CLayer.Role.Roles.CorporateUser)
                //    {
                //        long cid = BLayer.B2B.GetCorporateIdOfUser(userid);
                //    }
                //}
                //message = await Common.Mailer.MessageFromHtml(System.Configuration.ConfigurationManager.AppSettings.Get("CorpIntimation") + bookingId.ToString() + "&key=" + BLayer.Settings.GetValue(CLayer.Settings.PUBLIC_PAGE_LOCK));
                //long cid = BLayer.B2B.GetCorporateIdOfUser(byUser.UserId);
                //if (cid > 0)
                //{
                //    string em = BLayer.User.GetEmail(cid);
                //    if (em != null && em != "")
                //    {
                //        msg.CC.Add(em);
                //    }
                //}
                //mail.To.Add(BLayer.Settings.GetValue(CLayer.Settings.SUPPORT_EMAIL));
                #endregion
                string BccEmailsforcus = BLayer.Settings.GetValue(CLayer.Settings.CC_CUSTOMERCOMMUNICATION);
                if (BccEmailsforcus.Trim() != "")
                {
                    string[] emails = BccEmailsforcus.Split(',');
                    for (int i = 0; i < emails.Length; ++i)
                    {
                        mail.CC.Add(emails[i]);
                    }
                }
            }



            CLayer.Invoice data = BLayer.Invoice.GetInvoiceByOfflineBooking(OfflineBookingId);

            if (data != null)
            {
                mail.Subject = "Invoice against Booking ID: " + booking.ConfirmationNumber + ", Invoice No. " + data.InvoiceNumber;
            }

            mail.Body       = msg;
            mail.IsBodyHtml = true;



            //add atachment
            try
            {
                Areas.Admin.Models.Invoice inv = new Areas.Admin.Models.Invoice();

                if (data != null)
                {
                    inv.InvoiceId        = data.InvoiceId;
                    inv.OfflineBookingId = data.OfflineBookingId;
                    inv.IsMailed         = (data.MailedDate <= DateTime.Today);
                    inv.HtmlSection1     = data.HtmlSection1;
                    inv.HtmlSection2     = data.HtmlSection2;
                    inv.HtmlSection3     = data.HtmlSection3;

                    ViewAsPdf v = new ViewAsPdf("~/Areas/Admin/Views/ManageOfflineBooking/Mail.cshtml", inv)
                    {
                        PageMargins     = new Rotativa.Options.Margins(1, 1, 1, 1),
                        PageOrientation = Rotativa.Options.Orientation.Portrait,
                        PageSize        = Rotativa.Options.Size.Letter
                    };
                    string newdirectory = "Files\\Temp\\" + inv.InvoiceId;
                    if (!Directory.Exists(Server.MapPath("~") + "\\" + newdirectory))
                    {
                        Directory.CreateDirectory(Server.MapPath("~") + "\\" + newdirectory);
                    }
                    Filename = Server.MapPath("~") + "\\" + newdirectory + "\\" + "Invoice_" + data.InvoiceNumber + ".pdf";
                    var byteArray  = v.BuildPdf(ControllerContext);
                    var fileStream = new FileStream(Filename, FileMode.Create, FileAccess.Write);
                    fileStream.Write(byteArray, 0, byteArray.Length);
                    fileStream.Close();
                    fileStream.Dispose();

                    // System.Net.Mail.Attachment attachment;
                    Attachment attacht = new Attachment(Filename, MediaTypeNames.Application.Octet);
                    mail.Attachments.Add(attacht);
                }
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }


            string AccountMail = BLayer.Settings.GetValue(CLayer.Settings.ACCOUNT_EMAILS);
            if (AccountMail != "")
            {
                string[] Accemails = AccountMail.Split(',');
                for (int i = 0; i < Accemails.Length; ++i)
                {
                    mail.CC.Add(Accemails[i]);
                }
            }



            //send to ops mail
            string SalesPersonOPSMails = "";
            if (OfflineBookingId > 0)
            {
                CLayer.OfflineBooking OffdataStaff = BLayer.OfflineBooking.GetAllDetailsById(OfflineBookingId);
                if (OffdataStaff != null)
                {
                    if (OffdataStaff.SalesPersonId > 0)
                    {
                        CLayer.User usrstaff = BLayer.User.Get(OffdataStaff.SalesPersonId);
                        if (usrstaff != null)
                        {
                            if (usrstaff.OPSEmail != null && usrstaff.OPSEmail != "")
                            {
                                SalesPersonOPSMails = usrstaff.OPSEmail;
                            }
                        }
                    }
                }
            }
            if (SalesPersonOPSMails != "")
            {
                string CcOPSEmails = SalesPersonOPSMails.Trim();
                if (CcOPSEmails != "")
                {
                    string[] emails = CcOPSEmails.Split(',');
                    for (int i = 0; i < emails.Length; ++i)
                    {
                        mail.CC.Add(emails[i]);
                    }
                }
            }

            try
            {
                await ml.SendMailAsyncForBooking(mail, Common.Mailer.MailType.Reservation);
            }
            catch (Exception ex)
            {
                Common.LogHandler.HandleError(ex);
            }
            return(true);
        }
コード例 #29
0
 public ActionResult AutoInvoice(long obid)
 {
     CLayer.OfflineBooking ob = BLayer.OfflineBooking.GetAllDetailsById(obid);
     return(View("AutoInvoice", ob));
 }
コード例 #30
0
        public async Task <ActionResult> SaveDetails(Models.Invoice data)
        {
            CLayer.Invoice sdata = null;
            if (data.OfflineBookingId > 0)
            {
                sdata = BLayer.Invoice.GetProformaByOfflineBooking(data.OfflineBookingId);
            }
            if (sdata == null)
            {
                sdata = new CLayer.Invoice();
            }

            sdata.OfflineBookingId = data.OfflineBookingId;
            sdata.InvoiceId        = data.InvoiceId;
            DateTime dt = DateTime.Today;

            DateTime.TryParse(data.InvoiceDate, out dt);
            sdata.InvoiceDate  = dt;
            sdata.HtmlSection1 = data.HtmlSection1;
            sdata.HtmlSection2 = data.HtmlSection2;
            sdata.HtmlSection3 = data.HtmlSection3;
            //Common.Utils.
            // sdata.InvoiceDate = DateTime.Today;
            sdata.DueDate = DateTime.Today.AddDays(10);
            string prNumber = BLayer.NumberGenerator.GetProformaNumber();

            sdata.InvoiceNumber = prNumber;
            sdata.InvoiceType   = (int)CLayer.ObjectStatus.InvoiceType.Proforma;
            if (data.OPType == 1)//save btn
            {
                BLayer.Invoice.Save(sdata);
                // BLayer.Invoice.Save(sdata);
            }
            else if (data.OPType == 2)//mail btn
            {
                data.OPType = 1;
                BLayer.Invoice.Save(sdata);


                if (sdata != null)
                {
                    if (sdata.InvoiceId > 0)
                    {
                        BLayer.Invoice.SetMailedDate(sdata.InvoiceId, DateTime.Today);
                    }
                }


                // send mail to customer -- after save
                string msg = await GetMailBody(sdata.OfflineBookingId);

                //send mail here using msg as body

                Common.Mailer ml = new Common.Mailer();
                System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();

                CLayer.OfflineBooking customer = new CLayer.OfflineBooking();
                if (data.OfflineBookingId > 0)
                {
                    customer = BLayer.OfflineBooking.GetAllCustomerDetails(data.OfflineBookingId);
                }

                if (customer != null)
                {
                    if (customer.CustomerEmail != "")
                    {
                        mail.To.Add(customer.CustomerEmail);
                    }
                }


                //mail.To.Add(BLayer.Settings.GetValue(CLayer.Settings.SUPPORT_EMAIL));

                string BccEmailsforcus = BLayer.Settings.GetValue(CLayer.Settings.CC_CUSTOMERCOMMUNICATION);
                if (BccEmailsforcus != "")
                {
                    string[] emails = BccEmailsforcus.Split(',');
                    for (int i = 0; i < emails.Length; ++i)
                    {
                        mail.Bcc.Add(emails[i]);
                    }
                }

                mail.Subject    = "Invoice";
                mail.Body       = msg;
                mail.IsBodyHtml = true;
                try
                {
                    await ml.SendMailAsyncForBooking(mail, Common.Mailer.MailType.Reservation);
                }
                catch (Exception ex)
                {
                    Common.LogHandler.HandleError(ex);
                }
            }
            else if (data.OPType == 3) //reset
            {
                sdata.HtmlSection1 = "";
                sdata.HtmlSection2 = "";
                BLayer.Invoice.Save(sdata);
            }



            return(await Edit(data.OfflineBookingId));
        }