Ejemplo n.º 1
0
        public ViewResult PrintQuotation(Guid id)
        {
            rent dbItem = RepoRent.FindByPk(id);
            List <rent_package>     listRentPackage = RepoRent.FindAllRentPackage().Where(n => n.id_rent == id).ToList();
            BookingPresentationStub model           = new BookingPresentationStub(dbItem, listRentPackage);

            return(View(model));
        }
Ejemplo n.º 2
0
        public string BindingRent(Guid id, string action)
        {
            GridRequestParameters param = GridRequestParameters.Current;

            Business.Infrastructure.FilterInfo filters = param.Filters;

            Guid?          idOwner                = (User as CustomPrincipal).IdOwner;
            List <rent>    listRent               = new List <rent>();
            List <expense> listExpense            = new List <expense>();
            List <BookingPresentationStub> result = new List <BookingPresentationStub>();

            Business.Infrastructure.FilterInfo filtersExpense = new Business.Infrastructure.FilterInfo {
                Filters = new List <Business.Infrastructure.FilterInfo>(), Logic = "and"
            };
            int total = 0;

            filtersExpense.Filters.Add(new Business.Infrastructure.FilterInfo {
                Field = "rent.id_owner", Operator = "eq", Value = idOwner.ToString()
            });
            listExpense = RepoExpense.FindAll().Where(n => n.rent.id_owner == idOwner).ToList();

            if (idOwner.HasValue)
            {
                GridRequestParameters paramRent = new GridRequestParameters();
                paramRent = GridRequestParameters.Current;
                Business.Infrastructure.FilterInfo rentFilters = paramRent.Filters;
                AddOwnerFilterRent(rentFilters, idOwner.Value);

                listRent = RepoRent.FindAll(paramRent.Skip, paramRent.Take, (paramRent.Sortings != null ? paramRent.Sortings.ToList() : null), paramRent.Filters);

                //menghapus booking yang sudah memiliki invoice
                rent idRent;
                foreach (expense r in listExpense)
                {
                    idRent = listRent.Where(n => n.id == r.id_rent).FirstOrDefault();
                    if (idRent != null)
                    {
                        listRent.Remove(idRent);

                        if (action == "Edit" && idRent.id == id)
                        {
                            listRent.Add(idRent);
                        }
                    }
                }

                total = listRent.Count();
            }

            result = new BookingPresentationStub().MapList(listRent);

            return(new JavaScriptSerializer().Serialize(new { total = total, data = result }));
        }
Ejemplo n.º 3
0
        public HttpResponseMessage Find([FromBody] GridRequestParameters param)
        {
            //kamus
            HttpStatusCode       httpStatus      = HttpStatusCode.OK;
            string               responseMessage = null;
            List <rent>          listRent        = new List <rent>();
            IEnumerable <string> headerValues;

            Business.Infrastructure.FilterInfo filters = new Business.Infrastructure.FilterInfo {
                Filters = new List <Business.Infrastructure.FilterInfo>(), Logic = "and"
            };
            List <BookingPresentationStub> results;

            //algoritma
            if (Request.Headers.TryGetValues("Username", out headerValues))
            {
                //mengambil order berdasarkan status = 'finish'
                filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "driver.username", Operator = "eq", Value = headerValues.FirstOrDefault()
                });
                filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "status", Operator = "eq", Value = RentStatus.FINISH.ToString()
                });

                //mengambil order finish sesuai param
                listRent = RepoRent.FindAll(param.Skip, param.Take, (param.Sortings != null ? param.Sortings.ToList() : null), filters);
            }
            else
            {
                httpStatus = HttpStatusCode.Forbidden;
            }

            //result
            results = new BookingPresentationStub().MapList(listRent);

            if (responseMessage != null)
            {
                HttpContext.Current.Response.AppendHeader("ResponseMessage", responseMessage);
            }
            return(Request.CreateResponse(httpStatus, results));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// special filter parameter:
        ///     filter_date
        /// </summary>
        /// <returns></returns>
        public string Binding()
        {
            //kamus
            GridRequestParameters param = GridRequestParameters.Current;

            Business.Infrastructure.FilterInfo filters = param.Filters;
            Guid?       idOwner = (User as CustomPrincipal).IdOwner;
            List <rent> items;
            List <BookingPresentationStub> result = new List <BookingPresentationStub>();
            int total = 0;

            //algoritma
            if (idOwner.HasValue)
            {
                AddOwnerFilter(filters, idOwner.Value);

                items  = RepoRent.FindAll(param.Skip, param.Take, (param.Sortings != null ? param.Sortings.ToList() : null), filters);
                total  = RepoRent.Count(param.Filters);
                result = new BookingPresentationStub().MapList(items);
            }

            return(new JavaScriptSerializer().Serialize(new { total = total, data = result }));
        }
Ejemplo n.º 5
0
 public RentPresentationStub(rent dbItem)
 {
     Base        = new BookingPresentationStub(dbItem);
     CreatedTime = dbItem.created_time;
     OwnerName   = dbItem.owner.name;
 }
Ejemplo n.º 6
0
        public HttpResponseMessage Submit([FromBody] DriverPositionParam param)
        {
            //kamus
            BookingPresentationStub result = new BookingPresentationStub();
            rent          rent             = new rent();
            bool          isDatavalid      = true;
            List <rent>   listRent         = new List <rent>();
            rent_position rentPos          = new rent_position();
            string        username         = null;

            IEnumerable <string> headerValues = Enumerable.Empty <string>();
            HttpStatusCode       httpStatus   = HttpStatusCode.InternalServerError;
            string responseMessage            = null;

            rent = RepoRent.FindByPk(param.Id);

            //algoritma
            //Mengecek Parameter
            //jika ID kosong, 403 Forbidden
            if (param.Id == Guid.Empty)
            {
                isDatavalid     = false;
                responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "OrderNullAlert").ToString();
                httpStatus      = HttpStatusCode.Forbidden;
            }

            //cek username
            if (isDatavalid)
            {
                if (Request.Headers.TryGetValues("Username", out headerValues))
                {
                    username = headerValues.FirstOrDefault();
                }
                else
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "UsernameNullAlert").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            //jika Username tidak sama dg username driver
            if (isDatavalid)
            {
                rent = RepoRent.FindByPk(param.Id);
                if ((rent == null) || (rent.driver == null) || (username != rent.driver.username))
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NotAccess").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            // Status Check
            //mengambil rent milik id Driver
            if (isDatavalid)
            {
                // Jika rent status GO => menyimpan kedatabase rent_position
                if (rent.status == RentStatus.GO.ToString())
                {
                    rentPos.id_rent      = rent.id;
                    rentPos.longitude    = param.Long;
                    rentPos.latitude     = param.Lat;
                    rentPos.created_by   = rent.driver.username;
                    rentPos.created_time = DateTime.Now;
                    RepoPos.Save(rentPos);
                    httpStatus = HttpStatusCode.OK;
                }
                // Jika rent status NEW => 500 Internal server error
                else if (rent.status == RentStatus.NEW.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NewAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // Jika rent status FINISH => 500 Internal server error
                else if (rent.status == RentStatus.FINISH.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "FinishAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // Jika rent status CANCEL => 500 Internal Server error
                else
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "CancelAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
            }

            if (responseMessage != null)
            {
                HttpContext.Current.Response.AppendHeader("ResponseMessage", responseMessage);
            }

            return(Request.CreateResponse(httpStatus));
        }
Ejemplo n.º 7
0
        //public string Binding()
        //{
        //    //kamus
        //    GridRequestParameters param = GridRequestParameters.Current;
        //    List<rent> items = null;

        //    //algoritma
        //    Guid idOwner = (Guid)(User as CustomPrincipal).IdOwner;
        //    DateTime start = DateTime.Parse("2016-01-01");
        //    DateTime finish = DateTime.Parse("2016-01-10");
        //    items = RepoRent.FindAll(idOwner, start, finish);

        //    return new JavaScriptSerializer().Serialize(new BookingPresentationStub().MapList(items));
        //}

        public JsonResult Binding()
        {
            //kamus
            GridRequestParameters param = GridRequestParameters.Current;
            Guid idOwner = (Guid)(User as CustomPrincipal).IdOwner;

            List <rent>      rents;
            List <car>       cars;
            List <car_model> carModels = new List <car_model>();

            DailyFilterModel fm = ParseFilterInfo(param.Filters);
            List <BookingPresentationStub> result = new List <BookingPresentationStub>();

            Business.Infrastructure.FilterInfo filters;
            List <string>           carModel = new List <string>();
            BookingPresentationStub child;
            List <Guid>             carsId;

            DateTime       dtStart, dtEnd;
            DateTimeOffset dtoStart, dtoEnd;

            //algoritma
            dtStart  = new DateTime(fm.StartDate.Year, fm.StartDate.Month, fm.StartDate.Day, fm.StartDate.Hour, fm.StartDate.Minute, fm.StartDate.Second);
            dtStart  = DateTime.SpecifyKind(dtStart, DateTimeKind.Local);
            dtoStart = dtStart;

            dtEnd  = new DateTime(fm.EndDate.Year, fm.EndDate.Month, fm.EndDate.Day, fm.EndDate.Hour, fm.EndDate.Minute, fm.EndDate.Second);
            dtEnd  = DateTime.SpecifyKind(dtEnd, DateTimeKind.Local);
            dtoEnd = dtEnd;

            rents = RepoRent.FindAll(idOwner, fm.StartDate, fm.EndDate);

            //menambahkan filter terkait CarModelName
            filters = new Business.Infrastructure.FilterInfo
            {
                Filters = new List <Business.Infrastructure.FilterInfo>
                {
                    new Business.Infrastructure.FilterInfo {
                        Field = "id_owner", Operator = "eq", Value = idOwner.ToString()
                    },
                    new Business.Infrastructure.FilterInfo {
                        Field = "car_model.name", Operator = "eq", Value = fm.CarModelName
                    },
                    new Business.Infrastructure.FilterInfo {
                        Field = "is_active", Operator = "eq", Value = true.ToString()
                    },
                },
                Logic = "and"
            };
            cars   = RepoCar.FindAll(null, null, null, filters);
            carsId = cars.Select(m => m.id).ToList();

            rents = rents.Where(m => m.id_car != null && carsId.Contains(m.id_car.Value)).ToList();
            foreach (rent r in rents)
            {
                child = new BookingPresentationStub(r);

                result.Add(child);
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 8
0
        public HttpResponseMessage Submit([FromBody] DriverRentParam param)
        {
            //kamus
            BookingPresentationStub result = new BookingPresentationStub();
            rent rent        = new rent();
            bool isDatavalid = true;
            IEnumerable <string> headerValues;
            HttpStatusCode       httpStatus = HttpStatusCode.InternalServerError;
            string responseMessage          = null;
            string username = null;

            // Mengecek parameter
            //jika ID kosong, 403 Forbidden
            if (param.Id == Guid.Empty)
            {
                isDatavalid     = false;
                responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "OrderNullAlert").ToString();
                httpStatus      = HttpStatusCode.Forbidden;
            }

            //cek username
            if (isDatavalid)
            {
                if (Request.Headers.TryGetValues("Username", out headerValues))
                {
                    username = headerValues.FirstOrDefault();
                }
                else
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "UsernameNullAlert").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            //jika Username tidak sama dg username driver
            if (isDatavalid)
            {
                rent = RepoRent.FindByPk(param.Id);
                if ((rent == null) || (rent.driver == null) || (username != rent.driver.username))
                {
                    isDatavalid     = false;
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NotAccess").ToString();
                    httpStatus      = HttpStatusCode.Forbidden;
                }
            }

            // Pengecekan Status
            //mengambil rent milik idDriver
            if (isDatavalid)
            {
                // untuk merubah status dari NEW ke GO
                if (rent.status == RentStatus.GO.ToString())
                {
                    rent.status       = RentStatus.FINISH.ToString();
                    rent.updated_by   = rent.driver.username;
                    rent.updated_time = DateTime.Now;
                    RepoRent.Save(rent);

                    httpStatus = HttpStatusCode.OK;
                }
                // untuk mengecek status, jika NEW => 500 internal server error
                else if (rent.status == RentStatus.NEW.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "NewAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // untuk mengecek status, jika FINISH => 500 internal server error
                else if (rent.status == RentStatus.FINISH.ToString())
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "FinishAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
                // untuk mengecek status, jika CANCEL => 500 internal server error
                else
                {
                    responseMessage = HttpContext.GetGlobalResourceObject("WebServiceMessage", "CancelAlert").ToString();
                    httpStatus      = HttpStatusCode.InternalServerError;
                }
            }

            if (responseMessage != null)
            {
                HttpContext.Current.Response.AppendHeader("ResponseMessage", responseMessage);
            }
            return(Request.CreateResponse(httpStatus));
        }
Ejemplo n.º 9
0
        public HttpResponseMessage GetActiveRent([FromBody] List <DriverActiveRentParam> param)
        {
            //kamus
            List <BookingPresentationStub> results;
            List <rent> listRent = new List <rent>();
            rent        rent;
            driver      driver;
            Guid        idDriver;

            DateTime       dtUpdated;
            DateTimeOffset dtoUpdated;

            IEnumerable <string> headerValues;

            Business.Infrastructure.FilterInfo filters = new Business.Infrastructure.FilterInfo {
                Filters = new List <Business.Infrastructure.FilterInfo>(), Logic = "and"
            };

            HttpStatusCode httpStatus      = HttpStatusCode.Forbidden;
            string         responseMessage = null;

            //algoritma
            if (Request.Headers.TryGetValues("Username", out headerValues))
            {
                //mengambil semua rent milik idDriver dengan status NEW / GO
                filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "username", Operator = "eq", Value = headerValues.FirstOrDefault()
                });
                driver = RepoDriver.FindAll(null, null, null, filters).FirstOrDefault();
                if (driver != null)
                {
                    idDriver = driver.id;

                    filters = new Business.Infrastructure.FilterInfo
                    {
                        Filters = new List <Business.Infrastructure.FilterInfo>
                        {
                            new Business.Infrastructure.FilterInfo
                            {
                                Field = "id_driver", Operator = "eq", Value = idDriver.ToString()
                            },
                            new Business.Infrastructure.FilterInfo
                            {
                                Filters = new List <Business.Infrastructure.FilterInfo>
                                {
                                    new Business.Infrastructure.FilterInfo {
                                        Field = "status", Operator = "eq", Value = Common.Enums.RentStatus.GO.ToString()
                                    },
                                    new Business.Infrastructure.FilterInfo {
                                        Field = "status", Operator = "eq", Value = Common.Enums.RentStatus.NEW.ToString()
                                    },
                                },
                                Logic = "or"
                            },
                        },
                        Logic = "and"
                    };

                    listRent = RepoRent.FindAll(null, null, null, filters);

                    //menghapus data dari list rent yang <= param.update_time
                    if (param != null)
                    {
                        foreach (DriverActiveRentParam single in param)
                        {
                            //mengambil data yang bersesuaian di listRent
                            rent = listRent.Where(m => m.id == single.Id).FirstOrDefault();

                            //if data di listRent lebih lama (<=), dihapus dari listRent
                            if (rent != null)
                            {
                                if (rent.updated_time.Value.UtcDateTime <= single.UpdatedTimeUtc)
                                {
                                    listRent.Remove(rent);
                                }
                            }
                            else //rent tidak ditemukan di listRent
                            {
                                rent = RepoRent.FindByPk(single.Id);
                                if (rent != null)
                                {
                                    if (rent.updated_time.Value.UtcDateTime > single.UpdatedTimeUtc)
                                    {
                                        listRent.Add(rent);
                                    }
                                }
                            }
                        }
                    }

                    httpStatus = HttpStatusCode.OK;
                }
                else
                {
                    responseMessage = "Username Anda tidak ditemukan.";
                }
            }
            else
            {
                responseMessage = "Username Anda tidak ditemukan.";
            }


            //result
            results = new BookingPresentationStub().MapList(listRent);

            if (responseMessage != null)
            {
                HttpContext.Current.Response.AppendHeader("ResponseMessage", responseMessage);
            }
            return(Request.CreateResponse(httpStatus, results));
        }