コード例 #1
0
        /**
         * save file using kendo file uploader
         * menangani kalau nama file sama
         * The Name of the Upload component is "files"
         * currently not support multiple uploads
         *
         * @return filepath ex "~/Uploads/rekadia.jpg"
         */
        public string Save(IEnumerable <HttpPostedFileBase> files)
        {
            //kamus lokal
            string fileName = "", savedFilename = "", physicalPath = "", imagePath = "", friendlyFilename = "";

            //algoritma
            if (files != null)
            {
                foreach (var file in files)
                {
                    var  identifier    = Guid.NewGuid();
                    bool fileDirectory = Directory.Exists(Server.MapPath(FILE_DIRECTORY));
                    if (fileDirectory == false)
                    {
                        Directory.CreateDirectory(Server.MapPath(FILE_DIRECTORY));
                    }
                    fileName         = Path.GetFileNameWithoutExtension(file.FileName);
                    friendlyFilename = new DisplayFormatHelper().URLFriendly(fileName) + Path.GetExtension(file.FileName);
                    savedFilename    = identifier + "_" + friendlyFilename;

                    //save file
                    physicalPath = Path.Combine(Server.MapPath(FILE_DIRECTORY), savedFilename);
                    file.SaveAs(physicalPath);
                }
            }

            imagePath = FILE_DIRECTORY + savedFilename;
            return(new JavaScriptSerializer().Serialize(new { filepath = imagePath, filename = friendlyFilename, absolutepath = VirtualPathUtility.ToAbsolute(imagePath) }));
        }
コード例 #2
0
        public ActionResult Download()
        {
            DisplayFormatHelper dfh  = new DisplayFormatHelper();
            List <log>          logs = RepoLog.Find();
            LogPresentationStub stub = new LogPresentationStub();
            MemoryStream        ms   = stub.GenerateExcel(stub.MapList(logs));
            string filename          = string.Format("log {0}.xlsx", DateTime.Now.ToString(dfh.SqlDateFormat));

            return(File(ms.ToArray(), "application/vns.ms-excel", filename));
        }
コード例 #3
0
        public CostFormStub(expense dbItem)
        {
            DisplayFormatHelper dfh = new DisplayFormatHelper();

            this.Id           = dbItem.id;
            this.IdRent       = dbItem.id_rent;
            this.CustomerName = dbItem.rent.customer.name;
            this.StartRent    = dbItem.rent.start_rent.ToString(dfh.FullDateTimeFormat) + " s/d " + dbItem.rent.finish_rent.ToString(dfh.FullDateTimeFormat);
            this.Date         = dbItem.date;
            this.RentCode     = dbItem.rent.code;
            List <expense_item> expenseItemList = dbItem.expense_item.ToList();
        }
コード例 #4
0
        public CarExpenseFormStub(car_expense dbItem)
        {
            DisplayFormatHelper dfh = new DisplayFormatHelper();

            this.Id           = dbItem.id;
            this.ExpenseType  = dbItem.expense_type;
            this.ExpenseDate  = dbItem.expense_date;
            this.IdCar        = dbItem.id_car;
            this.Other        = dbItem.other;
            this.Distance     = dbItem.distance;
            this.ExpenseValue = dbItem.expense_value;
            this.Attachment   = dbItem.attachment;
            this.LicensePlate = dbItem.car.license_plate;
            this.CarBrandName = dbItem.car.car_model.car_brand.id;
            this.Notes        = dbItem.notes;
        }
コード例 #5
0
        public string Binding()
        {
            //kamus
            DisplayFormatHelper   dfh   = new DisplayFormatHelper();
            GridRequestParameters param = GridRequestParameters.Current;
            List <ChartAttribute> result;
            List <rent>           items = null;
            DailyFilterModel      fm;
            Guid idOwner = (Guid)(User as CustomPrincipal).IdOwner;

            //algoritma
            fm = ParseFilterInfo(param.Filters);

            items = RepoRent.FindAll(idOwner, fm.StartDate, fm.EndDate).Where(n => n.id_car != null && n.car.is_active == true).ToList();

            result = GenerateReport(items, fm.StartDate, fm.EndDate);

            return(new JavaScriptSerializer().Serialize(result));
        }
コード例 #6
0
        public string Binding()
        {
            //kamus
            DisplayFormatHelper     dfh   = new DisplayFormatHelper();
            GridRequestParameters   param = GridRequestParameters.Current;
            List <ChartAttribute>   result;
            List <invoice>          items = null;
            DailyMonthlyFilterModel fm;

            Business.Infrastructure.FilterInfo filters;

            Guid idOwner = (Guid)(User as CustomPrincipal).IdOwner;

            //algoritma
            fm      = ParseFilterInfo(param.Filters);
            filters = new Business.Infrastructure.FilterInfo
            {
                Filters = new List <Business.Infrastructure.FilterInfo>
                {
                    new Business.Infrastructure.FilterInfo {
                        Field = "rent.id_owner", Operator = "eq", Value = idOwner.ToString()
                    },
                    new Business.Infrastructure.FilterInfo {
                        Field = "invoice_date", Operator = "gte", Value = fm.StartDate.ToString(dfh.SqlDateFormat)
                    },
                    new Business.Infrastructure.FilterInfo {
                        Field = "invoice_date", Operator = "lte", Value = fm.EndDate.ToString(dfh.SqlDateFormat)
                    },
                    new Business.Infrastructure.FilterInfo {
                        Field = "status", Operator = "neq", Value = InvoiceStatus.CANCEL.ToString()
                    }
                },
                Logic = "and"
            };

            items  = RepoInvoice.FindAll(null, null, null, filters);
            result = GenerateReport(fm.ReportType, items, fm.StartDate, fm.EndDate);

            return(new JavaScriptSerializer().Serialize(result));
        }
コード例 #7
0
        public ActionResult Create(CarExpenseFormStub model, bool print = false)
        {
            //bool isNameExist = RepoCar.Find().Where(p => p.name == model.Name).Count() > 0;
            if (model.ExpenseType != CarExpenseType.MAINTENANCE.ToString())
            {
                ModelState.Remove("Distance");
            }

            if (ModelState.IsValid)
            {
                car_expense dbItem = model.GetDbObject((User as CustomPrincipal).Identity.Name);

                try
                {
                    RepoCarExpense.Save(dbItem);
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("Id", e.Message);

                    FillModelOptions(model);

                    return(View("Form", model));
                }

                //message
                DisplayFormatHelper dfh = new DisplayFormatHelper();
                string template         = HttpContext.GetGlobalResourceObject("MyGlobalMessage", "CreateSuccess").ToString();
                this.SetMessage(model.LicensePlate, template);

                return(RedirectToAction("Index"));
            }
            else
            {
                FillModelOptions(model);

                return(View("Form", model));
            }
        }
コード例 #8
0
        public InvoiceFormStub(invoice dbItem, List <Business.Entities.rent> listRent)
            : this(listRent)
        {
            DisplayFormatHelper dfh = new DisplayFormatHelper();

            this.Id           = dbItem.id;
            this.IdRent       = dbItem.id_rent;
            this.CustomerName = dbItem.rent.customer.name;
            this.StartRent    = dbItem.rent.start_rent.ToString(dfh.FullDateTimeFormat) + " s/d " + dbItem.rent.finish_rent.ToString(dfh.FullDateTimeFormat);
            this.Code         = dbItem.code;
            this.InvoiceDate  = dbItem.invoice_date;
            this.Price        = dbItem.price;
            this.Status       = dbItem.status;
            this.Notes        = dbItem.cancel_notes;
            this.RentCode     = dbItem.rent.code;
            this.PPN          = dbItem.ppn;

            AdditionalItem = new List <InvoiceItemFormStub>();
            foreach (invoice_item single in dbItem.invoice_item)
            {
                AdditionalItem.Add(new InvoiceItemFormStub(single));
            }
            AdditionalItemText = new JavaScriptSerializer().Serialize(AdditionalItem);
        }
コード例 #9
0
        public HttpResponseMessage CheckAvailability([FromBody] CheckAvailabilityParam param)
        {
            //kamus
            List <CarModel>           result    = new List <CarModel>();
            DisplayFormatHelper       dfh       = new DisplayFormatHelper();
            List <car>                ownerCars = new List <car>();
            List <rent>               rents     = new List <rent>();
            Dictionary <string, Guid> cityMap;
            Guid                 idOwner = new Guid();
            List <Guid>          rentedCars;
            string               message         = null;
            HttpResponseMessage  responseMessage = new HttpResponseMessage();
            HttpStatusCode       httpStatus      = HttpStatusCode.OK;
            bool                 isDataValid     = true;
            log_ws               logWs           = new log_ws();
            JavaScriptSerializer serializer      = new JavaScriptSerializer();

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

            DateTime       dtStart, dtFinish;
            DateTimeOffset dtoStart, dtoFinish;

            //algoritma
            //hardcode data
            cityMap = new Dictionary <string, Guid>();
            cityMap.Add("bali", new Guid("9e9af49f-742a-40a2-9338-228e56060442"));
            cityMap.Add("surabaya", new Guid("7a683eb8-656d-4b4c-be71-157dd2328a64"));

            //mengecek validitas data
            if (param.StartRent == null || param.FinishRent == null)
            {
                isDataValid = false;
                message     = HttpContext.GetGlobalResourceObject("WebServiceMessage", "DateNullAlert").ToString();
                httpStatus  = HttpStatusCode.BadRequest;
            }

            //algoritma
            if (isDataValid)
            {
                dtStart  = new DateTime(param.StartRent.Value.Year, param.StartRent.Value.Month, param.StartRent.Value.Day, 0, 0, 0);
                dtStart  = DateTime.SpecifyKind(dtStart, DateTimeKind.Local);
                dtoStart = dtStart;

                dtFinish  = new DateTime(param.FinishRent.Value.Year, param.FinishRent.Value.Month, param.FinishRent.Value.Day, 23, 59, 59);
                dtFinish  = DateTime.SpecifyKind(dtFinish, DateTimeKind.Local);
                dtoFinish = dtFinish;

                param.City = param.City.ToLower();
                if (cityMap.ContainsKey(param.City))
                {
                    idOwner = cityMap[param.City];

                    //mengambil rent dari start s/d finish untuk owner tertentu
                    rents = RepoRent.FindAll(idOwner, dtStart, dtFinish);

                    rents.RemoveAll(m => m.finish_rent == dtoStart);
                    rents.RemoveAll(m => m.start_rent == dtoFinish);

                    //mengambil car sesuai parameter                                                                                                                                                                                                                      //mengambil car sesuai parameter
                    filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                        Field = "id_owner", Operator = "eq", Value = idOwner.ToString()
                    });
                    if (param.CarBrandName != null)
                    {
                        filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                            Field = "car_model.car_brand.name", Operator = "eq", Value = param.CarBrandName
                        });
                    }
                    if (param.CarModelName != null)
                    {
                        filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                            Field = "car_model.name", Operator = "eq", Value = param.CarModelName
                        });
                    }
                    if (param.Capacity != null)
                    {
                        filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                            Field = "car_model.capacity", Operator = "gte", Value = param.Capacity.Value.ToString()
                        });
                    }
                    ownerCars = RepoCar.FindAll(null, null, null, filters);

                    //menghapus car yang sudah ada di rent
                    rentedCars = rents.Select(m => m.id_car_model).ToList();

                    //menghapus mobil yang sudah di-booking
                    car carByModel;
                    foreach (Guid idCarModel in rentedCars)
                    {
                        carByModel = ownerCars.Where(m => m.id_car_model == idCarModel).FirstOrDefault();
                        if (carByModel != null)
                        {
                            ownerCars.Remove(carByModel);
                        }
                    }

                    result = CarModel.Map(ownerCars); //mapping dbItems ke PresentationStub
                }
            }

            //menyimpan data ke log_ws
            //menggunakan ILogRepository.SaveLogWS

            logWs.created_time  = DateTimeOffset.Now;
            logWs.request_body  = serializer.Serialize(param);
            logWs.response_body = serializer.Serialize(result);
            logWs.url           = HttpContext.Current.Request.Url.AbsolutePath;
            RepoLog.SaveLogWS(logWs);

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

            return(Request.CreateResponse(httpStatus, result));
        }
コード例 #10
0
        private BookingStatisticModel CalculateStatistic()
        {
            //kamus
            DisplayFormatHelper dfh = new DisplayFormatHelper();
            int statistic;

            Business.Infrastructure.FilterInfo filters, singleFilter;
            BookingStatisticModel model = new BookingStatisticModel();

            //algoritma
            CustomPrincipal user = User as CustomPrincipal;

            if (user.IdOwner != null)
            {
                //berangkat besok
                filters = new Business.Infrastructure.FilterInfo
                {
                    Filters = new List <Business.Infrastructure.FilterInfo>
                    {
                        new Business.Infrastructure.FilterInfo {
                            Field = "start_rent", Operator = "eq", Value = DateTime.Now.AddDays(1).ToString(dfh.SqlDateFormat)
                        },
                        new Business.Infrastructure.FilterInfo {
                            Field = "status", Operator = "neq", Value = RentStatus.CANCEL.ToString()
                        }
                    },
                    Logic = "and"
                };
                AddOwnerFilter(filters, user.IdOwner.Value);

                statistic = RepoRent.Count(filters);
                model.TomorrowDeparture = statistic;

                //belum ditugaskan
                filters.Filters.Clear();
                filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "status", Operator = "neq", Value = RentStatus.CANCEL.ToString()
                });
                AddOwnerFilter(filters, user.IdOwner.Value);

                statistic           = RepoRent.CountUnassignedCar(filters);
                model.UnassignedCar = statistic;

                statistic = RepoRent.CountUnassignedDriver(filters);
                model.UnassignedDriver = statistic;

                //unpaid
                filters.Filters.Clear();
                singleFilter = new Business.Infrastructure.FilterInfo {
                    Field = "rent.id_owner", Operator = "eq", Value = user.IdOwner.ToString()
                };
                filters.Filters.Add(singleFilter);
                singleFilter = new Business.Infrastructure.FilterInfo {
                    Field = "status", Operator = "eq", Value = InvoiceStatus.UNPAID.ToString()
                };
                filters.Filters.Add(singleFilter);

                statistic           = RepoInvoice.Count(filters);
                model.UnpaidInvoice = statistic;

                //cancel
                filters.Filters.Clear();
                singleFilter = new Business.Infrastructure.FilterInfo {
                    Field = "status", Operator = "eq", Value = RentStatus.CANCEL.ToString()
                };
                filters.Filters.Add(singleFilter);
                AddOwnerFilter(filters, user.IdOwner.Value);

                statistic           = RepoRent.Count(filters);
                model.CancelledRent = statistic;
            }

            return(model);
        }
コード例 #11
0
        public RentResponse Create([FromBody] RentParam param)
        {
            //kamus
            RentResponse        result   = new RentResponse();
            DisplayFormatHelper dfh      = new DisplayFormatHelper();
            List <Guid>         idCar    = new List <Guid>();
            List <car_model>    carModel = new List <car_model>();

            rent        dataRent = new rent();
            List <rent> rents    = new List <rent>();
            Dictionary <string, Guid> cityMap;
            Guid idOwner = new Guid();

            string          code;
            string          city;
            Guid            customerId;
            List <customer> customerList;

            bool isDataValid = true;

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

            DateTime       dtStart, dtFinish;
            DateTimeOffset dtoStart, dtoFinish;
            DateTime       dtNull = DateTime.Parse("01/01/0001 00:00:00");

            List <car>  ownerCars = new List <car>();
            List <Guid> rentedCars;

            BookingFormStub bfs;
            rent            dbItem;

            ApiRentFormStub afs;
            api_rent        apiRent;
            log_api_rent    logApiRent;

            //hardcode data
            cityMap = new Dictionary <string, Guid>();
            cityMap.Add("bali", new Guid("9e9af49f-742a-40a2-9338-228e56060442"));
            cityMap.Add("surabaya", new Guid("7a683eb8-656d-4b4c-be71-157dd2328a64"));

            //algoritma
            #region check data
            //mengecek validitas parameter
            if (param.StartRent == null)
            {
                isDataValid = false;

                result.Success = false;
                result.Message = "Parameter StartRent wajib diisi";
            }

            if (isDataValid)
            {
                if (param.FinishRent == null)
                {
                    isDataValid = false;

                    result.Success = false;
                    result.Message = "Parameter FinishRent wajib diisi";
                }
            }

            if (isDataValid)
            {
                if (param.City == "")
                {
                    isDataValid = false;

                    result.Success = false;
                    result.Message = "Parameter City wajib diisi";
                }
            }

            if (isDataValid)
            {
                if (param.CarBrandName == "")
                {
                    isDataValid = false;

                    result.Success = false;
                    result.Message = "Parameter CarBrandName wajib diisi";
                }
            }

            if (isDataValid)
            {
                if (param.CarModelName == "")
                {
                    isDataValid = false;

                    result.Success = false;
                    result.Message = "Parameter CarModelName wajib diisi";
                }
            }

            if (isDataValid)
            {
                if (param.CustomerName == "")
                {
                    isDataValid = false;

                    result.Success = false;
                    result.Message = "Parameter CustomerName wajib diisi";
                }
            }

            if (isDataValid)
            {
                if (param.CustomerPhoneNumber == "")
                {
                    isDataValid = false;

                    result.Success = false;
                    result.Message = "Parameter CustomerPhoneNumber wajib diisi";
                }
            }

            if (isDataValid)
            {
                if (param.PickupLocation == "")
                {
                    isDataValid = false;

                    result.Success = false;
                    result.Message = "Parameter PickupLocation wajib diisi";
                }
            }


            if (isDataValid)
            {
                city = param.City.ToLower();
                if (cityMap.ContainsKey(city))
                {
                    idOwner = cityMap[city];
                }
                else
                {
                    isDataValid    = false;
                    result.Message = "Kota yang anda pilih saat ini belum tersedia";
                }
            }

            if (isDataValid)
            {
                //mengambil semua mobil milik owner
                filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "id_owner", Operator = "eq", Value = idOwner.ToString()
                });
                if (param.CarBrandName != null)
                {
                    filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                        Field = "car_model.car_brand.name", Operator = "eq", Value = param.CarBrandName
                    });
                }
                if (param.CarModelName != null)
                {
                    filters.Filters.Add(new Business.Infrastructure.FilterInfo {
                        Field = "car_model.name", Operator = "eq", Value = param.CarModelName
                    });
                }
                ownerCars = RepoCar.FindAll(null, null, null, filters);

                //mengambil booking pada tanggal sesuai request
                dtStart  = new DateTime(param.StartRent.Value.Year, param.StartRent.Value.Month, param.StartRent.Value.Day, 0, 0, 0);
                dtStart  = DateTime.SpecifyKind(dtStart, DateTimeKind.Local);
                dtoStart = dtStart;

                dtFinish  = new DateTime(param.FinishRent.Value.Year, param.FinishRent.Value.Month, param.FinishRent.Value.Day, 23, 59, 59);
                dtFinish  = DateTime.SpecifyKind(dtFinish, DateTimeKind.Local);
                dtoFinish = dtFinish;
                rents     = RepoRent.FindAll(idOwner, dtStart, dtFinish);

                rents.RemoveAll(m => m.finish_rent == dtoStart);
                rents.RemoveAll(m => m.start_rent == dtoFinish);

                rentedCars = rents.Select(m => m.id_car_model).ToList();

                //menghapus mobil yang sudah di-booking
                car carByModel;
                foreach (Guid idCarModel in rentedCars)
                {
                    carByModel = ownerCars.Where(m => m.id_car_model == idCarModel).FirstOrDefault();
                    if (carByModel != null)
                    {
                        ownerCars.Remove(carByModel);
                    }
                }

                if (ownerCars.Count() == 0)
                {
                    isDataValid    = false;
                    result.Message = "Mobil tidak tersedia";
                }
            }

            #endregion

            if (isDataValid)//insert booking
            {
                //mengecek ketersediaan mobil
                owner owner = RepoOwner.FindByPk(idOwner);
                code = RepoRent.GenerateRentCode(owner);

                //membuat booking baru
                customerList = new List <customer>();
                Business.Infrastructure.FilterInfo filterCust = new Business.Infrastructure.FilterInfo {
                    Filters = new List <Business.Infrastructure.FilterInfo>(), Logic = "and"
                };
                filterCust.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "phone_number", Operator = "eq", Value = param.CustomerPhoneNumber
                });
                filterCust.Filters.Add(new Business.Infrastructure.FilterInfo {
                    Field = "id_owner", Operator = "eq", Value = idOwner.ToString()
                });

                customerList = RepoCustomer.FindAll(null, null, null, filterCust);

                if (customerList.Count() > 0)
                {
                    customerId = customerList.FirstOrDefault().id;
                }
                else
                {
                    customer cust = new customer
                    {
                        name         = param.CustomerName,
                        id_owner     = idOwner,
                        phone_number = param.CustomerPhoneNumber
                    };
                    RepoCustomer.Save(cust);

                    customerId = cust.id;
                }


                //if (tempCustomer.Where(n => n.phone_number == param.CustomerPhoneNumber && n.id_owner != idOwner).Count() > 0)
                //{
                //    CustomerID = new Guid();
                //    customer cust = new customer
                //    {
                //        id = CustomerID,
                //        name = param.CustomerName,
                //        id_owner = idOwner,
                //        phone_number = param.CustomerPhoneNumber
                //    };
                //    RepoCustomer.Save(cust);
                //}

                //membuat BookingFormStub
                bfs = new BookingFormStub();

                dtStart  = new DateTime(param.StartRent.Value.Year, param.StartRent.Value.Month, param.StartRent.Value.Day, param.StartRent.Value.Hour, param.StartRent.Value.Minute, param.StartRent.Value.Second);
                dtStart  = DateTime.SpecifyKind(dtStart, DateTimeKind.Local);
                dtoStart = dtStart;

                dtFinish  = new DateTime(param.FinishRent.Value.Year, param.FinishRent.Value.Month, param.FinishRent.Value.Day, param.FinishRent.Value.Hour, param.FinishRent.Value.Minute, param.FinishRent.Value.Second);
                dtFinish  = DateTime.SpecifyKind(dtFinish, DateTimeKind.Local);
                dtoFinish = dtFinish;

                bfs.Code           = code;
                bfs.PhoneNumber    = param.CustomerPhoneNumber;
                bfs.IdCustomer     = customerId;
                bfs.PickupLocation = param.PickupLocation;
                bfs.IdCarModel     = ownerCars.FirstOrDefault().id_car_model;
                bfs.StartRent      = dtoStart;
                bfs.FinishRent     = dtoFinish;
                bfs.Price          = 0;
                bfs.Status         = RentStatus.NEW;
                bfs.IdCarPackage   = new Guid("0abd31d3-2857-4311-a468-48538bbd790c");
                bfs.PackagePrice   = 0;

                //save
                dbItem = bfs.GetDbObjectOnCreate("aerotrans", idOwner);
                RepoRent.Save(dbItem);

                //save to table api_rent
                afs = new ApiRentFormStub();
                afs.SetNewRent(dbItem, "ATS");
                apiRent = afs.GetDbObjectOnCreate("aerotrans");

                RepoApiRent.Save(apiRent);

                result.Success  = true;
                result.RentCode = code;
            }

            return(result);
        }
コード例 #12
0
        public ActionResult Edit(CostFormStub model, bool print = false)
        {
            //bool isNameExist = RepoCar.Find().Where(p => p.name == model.Name).Count() > 0;

            if (ModelState.IsValid)
            {
                expense dbItem = RepoExpense.FindByPk(model.Id);
                //List<expense_item> expenseItemList = dbItem.expense_item.ToList();
                List <expense_item> expenseItemList = dbItem.expense_item.Where(n => n.id_expense == dbItem.id).ToList();
                dbItem = model.SetDbObject(dbItem, (User as CustomPrincipal).Identity.Name);

                try
                {
                    RepoExpense.Save(dbItem);
                    foreach (expense_item items in expenseItemList)
                    {
                        if (items.category.Equals(ExpenseItemCategory.VEHICLE.ToString()))
                        {
                            items.value = model.ValueVehicle;
                            RepoExpense.SaveItem(items);
                        }
                        if (items.category.Equals(ExpenseItemCategory.DRIVER.ToString()))
                        {
                            items.value = model.ValueDriver;
                            RepoExpense.SaveItem(items);
                        }
                        if (items.category.Equals(ExpenseItemCategory.GAS.ToString()))
                        {
                            items.value = model.ValueGas;
                            RepoExpense.SaveItem(items);
                        }
                        if (items.category.Equals(ExpenseItemCategory.TOLL.ToString()))
                        {
                            items.value = model.ValueToll;
                            RepoExpense.SaveItem(items);
                        }
                        if (items.category.Equals(ExpenseItemCategory.PARKING.ToString()))
                        {
                            items.value = model.ValueParking;
                            RepoExpense.SaveItem(items);
                        }
                        if (items.category.Equals(ExpenseItemCategory.OTHER.ToString()))
                        {
                            items.value = model.ValueOther;
                            RepoExpense.SaveItem(items);
                        }

                        items.description = model.Description;
                        RepoExpense.SaveItem(items);
                    }

                    //foreach()
                }
                catch (Exception e)
                {
                    Guid idOwner = (User as CustomPrincipal).IdOwner.Value;
                    List <Business.Entities.rent> listRent = RepoRent.FindAll().Where(x => x.id_owner == idOwner).ToList();
                    model.FillRentOptions(listRent);
                    model.FillCategoryOptions();
                    return(View("Form", model));
                }

                //message
                DisplayFormatHelper dfh = new DisplayFormatHelper();
                string template         = HttpContext.GetGlobalResourceObject("MyGlobalMessage", "EditSuccess").ToString();
                this.SetMessage("Pengeluaran " + model.Date.ToString(dfh.FullDateFormat), template);

                //print flag
                if (print)
                {
                    TempData["idPrint"] = dbItem.id;
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                Guid?idOwner = (User as CustomPrincipal).IdOwner;
                List <Business.Entities.rent> listRent = new List <rent>();
                if (idOwner.HasValue)
                {
                    listRent = RepoRent.FindAll().Where(x => x.id_owner == idOwner.Value).ToList();
                }

                model.FillRentOptions(listRent);
                model.FillCategoryOptions();
                return(View("Form", model));
            }
        }
コード例 #13
0
        public ActionResult Create(CostFormStub model, bool print = false)
        {
            //bool isNameExist = RepoCar.Find().Where(p => p.name == model.Name).Count() > 0;

            if (ModelState.IsValid)
            {
                expense      dbItem = new expense();
                expense_item expenseItem;
                dbItem = model.GetDbObject((User as CustomPrincipal).Identity.Name);

                try
                {
                    RepoExpense.Save(dbItem);

                    //save mobil
                    expenseItem = new expense_item {
                        id_expense = dbItem.id, category = ExpenseItemCategory.VEHICLE.ToString(), value = model.ValueVehicle, description = model.Description
                    };
                    RepoExpense.SaveItem(expenseItem);
                    expenseItem = new expense_item {
                        id_expense = dbItem.id, category = ExpenseItemCategory.DRIVER.ToString(), value = model.ValueDriver, description = model.Description
                    };
                    RepoExpense.SaveItem(expenseItem);
                    expenseItem = new expense_item {
                        id_expense = dbItem.id, category = ExpenseItemCategory.GAS.ToString(), value = model.ValueGas, description = model.Description
                    };
                    RepoExpense.SaveItem(expenseItem);
                    expenseItem = new expense_item {
                        id_expense = dbItem.id, category = ExpenseItemCategory.TOLL.ToString(), value = model.ValueToll, description = model.Description
                    };
                    RepoExpense.SaveItem(expenseItem);
                    expenseItem = new expense_item {
                        id_expense = dbItem.id, category = ExpenseItemCategory.PARKING.ToString(), value = model.ValueParking, description = model.Description
                    };
                    RepoExpense.SaveItem(expenseItem);
                    expenseItem = new expense_item {
                        id_expense = dbItem.id, category = ExpenseItemCategory.OTHER.ToString(), value = model.ValueOther, description = model.Description
                    };
                    RepoExpense.SaveItem(expenseItem);
                    //save supir

                    //save ...
                }
                catch (Exception e)
                {
                    Guid?idOwner = (User as CustomPrincipal).IdOwner;
                    List <Business.Entities.rent> listRent = new List <rent>();
                    if (idOwner.HasValue)
                    {
                        listRent = RepoRent.FindAll().Where(x => x.id_owner == idOwner.Value).ToList();
                    }

                    model.FillRentOptions(listRent);
                    model.FillCategoryOptions();
                    return(View("Form", model));
                }

                //message
                DisplayFormatHelper dfh = new DisplayFormatHelper();
                string template         = HttpContext.GetGlobalResourceObject("MyGlobalMessage", "CreateSuccess").ToString();
                this.SetMessage("Pengeluaran " + model.Date.ToString(dfh.FullDateFormat), template);

                //print flag
                if (print)
                {
                    TempData["idPrint"] = dbItem.id;
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                Guid?idOwner = (User as CustomPrincipal).IdOwner;
                List <Business.Entities.rent> listRent = new List <rent>();
                if (idOwner.HasValue)
                {
                    listRent = RepoRent.FindAll().Where(x => x.id_owner == idOwner.Value).ToList();
                }

                model.FillRentOptions(listRent);
                model.FillCategoryOptions();
                return(View("Form", model));
            }
        }