Пример #1
0
 public SalesOrderKontrakItemTruck(Context.DataTruck dbitem, List <Context.SalesOrder> dbso)
 {
     Id            = 1;
     IdTruk        = dbitem.Id;
     VehicleNumber = dbitem.VehicleNo;
     JenisTruck    = dbitem.JenisTrucks == null ? "" : dbitem.JenisTrucks.StrJenisTruck;
     Status        = "Available";
     if (dbso != null)
     {
         if (dbso.Any(d => (d.Status == "save" || d.Status == "draft planning") &&
                      ((d.SalesOrderOncallId.HasValue ? d.SalesOrderOncall.IdDataTruck == dbitem.Id : false) ||
                       (d.SalesOrderPickupId.HasValue ? d.SalesOrderPickup.IdDataTruck == dbitem.Id : false) ||
                       (d.SalesOrderProsesKonsolidasiId.HasValue ? d.SalesOrderProsesKonsolidasi.IdDataTruck == dbitem.Id : false) ||
                       (d.SalesOrderKontrakId.HasValue ? d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.DataTruckId == dbitem.Id) : false))))
         {
             Status = "On Duty";
         }
         else if (dbso.Any(d => (d.Status == "save planning" || d.Status == "draft konfirmasi") &&
                           ((d.SalesOrderOncallId.HasValue ? d.SalesOrderOncall.IdDataTruck == dbitem.Id : false) ||
                            (d.SalesOrderPickupId.HasValue ? d.SalesOrderPickup.IdDataTruck == dbitem.Id : false) ||
                            (d.SalesOrderProsesKonsolidasiId.HasValue ? d.SalesOrderProsesKonsolidasi.IdDataTruck == dbitem.Id : false) ||
                            (d.SalesOrderKontrakId.HasValue ? d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.DataTruckId == dbitem.Id) : false))))
         {
             Status = "On Duty";
         }
         else if (dbso.Any(d => (d.Status == "save konfirmasi" || d.Status == "dispatched") &&
                           ((d.SalesOrderOncallId.HasValue ? d.SalesOrderOncall.IdDataTruck == dbitem.Id : false) ||
                            (d.SalesOrderPickupId.HasValue ? d.SalesOrderPickup.IdDataTruck == dbitem.Id : false) ||
                            (d.SalesOrderProsesKonsolidasiId.HasValue ? d.SalesOrderProsesKonsolidasi.IdDataTruck == dbitem.Id : false) ||
                            (d.SalesOrderKontrakId.HasValue ? d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.DataTruckId == dbitem.Id) : false))))
         {
             Status = "On Duty";
         }
     }
 }
Пример #2
0
        public ActionResult Edit(DataGPS model)
        {
            if (ModelState.IsValid)
            {
                if (RepoDataGps.IsBoxExist(model.IdDataTruck.Value, model.Id))
                {
                    ModelState.AddModelError("IdDataTruck", "Truck sudah tepasang gps, harap ganti dengan truck yang lain");
                    return(View("Form", model));
                }
                Context.DataGPS dbitem = RepoDataGps.FindByPK(model.Id);
                model.SetDb(dbitem);
                Context.DataGPSHistory dbitemHistory = new Context.DataGPSHistory();
                model.SetDbHistory(dbitemHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                dbitem.DataGPSHistory.Add(dbitemHistory);
                Context.DataTruckGPSHistory dbtruckHistory = new Context.DataTruckGPSHistory();
                model.SetDbTruckHistory(dbtruckHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                RepoDataGps.save(dbitem, UserPrincipal.id, dbitemHistory);

                Context.DataTruck dbtruck = RepoDataTruck.FindByPK(model.IdDataTruck.Value);
                dbtruck.DataTruckGPSHistory.Add(dbtruckHistory);
                RepoDataTruck.save(dbtruck, UserPrincipal.id);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
        public ActionResult Edit(DataPendingin model)
        {
            if (ModelState.IsValid)
            {
                if (RepoPendingin.IsBoxExist(model.IdDataTruk.Value, model.Id))
                {
                    ModelState.AddModelError("IdDataTruk", "Truck sudah tepasang pendingin, harap ganti dengan truck yang lain");
                    return(View("Form", model));
                }
                Context.DataPendingin dbitem = RepoPendingin.FindByPK(model.Id);
                model.setDb(dbitem);
                Context.DataPendinginHistory dbitemhistory = new Context.DataPendinginHistory();
                model.setDbHistory(dbitemhistory, UserPrincipal.firstname + ' ' + UserPrincipal.lastname);
                dbitem.ListHistoryPendingin.Add(dbitemhistory);
                Context.DataTruckPendinginHistory dbtruckhistory = new Context.DataTruckPendinginHistory();
                model.setDbTruckHistory(dbtruckhistory, UserPrincipal.firstname + ' ' + UserPrincipal.lastname);
                RepoPendingin.save(dbitem, UserPrincipal.id, dbitemhistory, dbtruckhistory);

                Context.DataTruck dbtruck = RepoDataTruck.FindByPK(model.IdDataTruk.Value);
                dbtruck.DataTruckPendinginHistory.Add(dbtruckhistory);
                RepoDataTruck.save(dbtruck, UserPrincipal.id);

                return(RedirectToAction("Index"));
            }

            return(View("Form", model));
        }
Пример #4
0
        public string BindingDataBox(int id)
        {
            Context.DataTruck dbtruck = RepoDataTruck.FindByPK(id);

            List <DataBox> ListModel = new List <DataBox>();

            foreach (Context.DataTruckBoxHistory item in dbtruck.DataTruckBoxHistory.OrderByDescending(d => d.Id))
            {
                if (ListModel.Count == 0)
                {
                    ListModel.Add(new DataBox(item));
                }
                else
                {
                    if (ListModel.Last().NoBox == item.NoBox)
                    {
                        var data = ListModel.Last();
                        data = new DataBox(item);
                    }
                    else
                    {
                        ListModel.Add(new DataBox(item));
                    }
                }
            }

            return(new JavaScriptSerializer().Serialize(new { data = ListModel }));
        }
Пример #5
0
        public ActionResult Detail(int id)
        {
            Context.DataTruck dbitem = RepoDataTruck.FindByPK(id);
            UnitList          model  = new UnitList(dbitem);

            return(View("Form", model));
        }
Пример #6
0
        public ActionResult Edit(int id)
        {
            Context.DataTruck dbitem = RepoDataTruck.FindByPK(id);
            DataTruck         model  = new DataTruck(dbitem);

            ViewBag.name = model.NoTruck;
            return(View("Form", model));
        }
Пример #7
0
        public string OnDutyDetail(string VehicleNo, string NoSo)
        {
            Context.DataTruck item = RepoDataTruck.FindByName(VehicleNo);
            UnitList          unit = new UnitList(item);

            Context.MonitoringDetailSo mon_so = RepoMonitoringVehicle.FindMonitoringDetailSo(NoSo);

            return(new JavaScriptSerializer().Serialize(new { unit = unit, Delay = mon_so.TglTiba - mon_so.TargetTiba }));
        }
Пример #8
0
        public void SetDb(Context.DataTruck dbitem)
        {
            dbitem.Id           = Id;
            dbitem.NoTruck      = NoTruck;
            dbitem.VehicleNo    = VehicleNo;
            dbitem.IdMerk       = IdMerk;
            dbitem.IdJenisTruck = IdJenisTruck;
            dbitem.TahunBuat    = TahunBuat;
            dbitem.TahunBeli    = TahunBeli;
            dbitem.IdPool       = IdPool;
            dbitem.IdUnit       = IdUnit;
            dbitem.Keterangan   = Keterangan;
            dbitem.Kondisi      = Kondisi;

            dbitem.SpecModel      = SpecModel;
            dbitem.KmLimit        = KmLimit;
            dbitem.NoMesin        = NoMesin;
            dbitem.NoRangka       = NoRangka;
            dbitem.GaransiStr     = GaransiStr;
            dbitem.GaransiEnd     = GaransiEnd;
            dbitem.SpecKeterangan = SpecKeterangan;
            dbitem.MaxSpeed       = MaxSpeed;

            dbitem.AtasNama = AtasNama;
            dbitem.BPKB     = BPKB;
            dbitem.STNK     = STNK;
            dbitem.KIR      = KIR;
            dbitem.KIU      = KIU;
            dbitem.IBM      = IBM;
            dbitem.Asuransi = Asuransi;
            dbitem.Reklame  = Reklame;
            dbitem.NoPolis  = NoPolis;
            dbitem.Peminjam = Peminjam;
            dbitem.Leasing  = Leasing;

            dbitem.keteranganBPKB     = keteranganBPKB;
            dbitem.keteranganSTNK     = keteranganSTNK;
            dbitem.keteranganKIR      = keteranganKIR;
            dbitem.keteranganKIU      = keteranganKIU;
            dbitem.keteranganIBM      = keteranganIBM;
            dbitem.keteranganAsuransi = keteranganAsuransi;
            dbitem.keteranganReklame  = keteranganReklame;
            dbitem.keteranganNoPolis  = keteranganNoPolis;
            dbitem.keteranganPeminjam = keteranganPeminjam;
            dbitem.keteranganLeasing  = keteranganLeasing;

            dbitem.urlBPKB     = urlBPKB;
            dbitem.urlSTNK     = urlSTNK;
            dbitem.urlKIR      = urlKIR;
            dbitem.urlKIU      = urlKIU;
            dbitem.urlIBM      = urlIBM;
            dbitem.urlAsuransi = urlAsuransi;
            dbitem.urlReklame  = urlReklame;
            dbitem.urlNoPolis  = urlNoPolis;
            dbitem.urlPeminjam = urlPeminjam;
            dbitem.urlLeasing  = urlLeasing;
        }
Пример #9
0
 public UnitList(Context.DataTruck dbitem)
 {
     Id             = dbitem.Id;
     VehicleNo      = dbitem.VehicleNo;
     JenisTruck     = dbitem.IdJenisTruck.HasValue ? dbitem.JenisTrucks.StrJenisTruck : "";
     MerkTruck      = dbitem.IdMerk.HasValue ? dbitem.LookupCodeMerk.Nama : "";
     ModelTruck     = dbitem.SpecModel;
     MerkPendingin  = dbitem.DataPendingin.Count() == 0 ? "" : dbitem.DataPendingin.FirstOrDefault().Merk;
     ModelPendingin = dbitem.DataPendingin.Count() == 0 ? "" : dbitem.DataPendingin.FirstOrDefault().Model;
     KaroseriBox    = dbitem.DataBox.Count() == 0 ? "" : dbitem.DataBox.FirstOrDefault().Karoseri;
     TypeBox        = dbitem.DataBox.Count() == 0 ? "" : dbitem.DataBox.FirstOrDefault().IdType.HasValue ? dbitem.DataBox.FirstOrDefault().LookupCodeType.Nama : "";
     VendorGps      = dbitem.DataGPS.Count() == 0 ? "" : dbitem.DataGPS.FirstOrDefault().IdVendor.HasValue ? dbitem.DataGPS.FirstOrDefault().VendorGps.Nama : "";
 }
Пример #10
0
        public ActionResult Edit(DataTruck model)
        {
            if (ModelState.IsValid)
            {
                if (RepoDataTruck.IsExist(model.VehicleNo, model.Id))
                {
                    ModelState.AddModelError("VehicleNo", "Vehicle No sudah terdaftar.");
                    return(View("Form", model));
                }
                Context.DataTruck dbitem = RepoDataTruck.FindByPK(model.Id);
                model.SetDb(dbitem);
                RepoDataTruck.save(dbitem, UserPrincipal.id);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
Пример #11
0
        public JsonResult Delete(int id)
        {
            ResponeModel response = new ResponeModel(true);

            if (RepoDataTruck.IsValidDelete(id))
            {
                Context.DataTruck dbItem = RepoDataTruck.FindByPK(id);

                RepoDataTruck.delete(dbItem, UserPrincipal.id);
            }
            else
            {
                response.SetFail("Data truck terpasang Box,Gps atau Pendingin, data tidak dapat dihapus.");
            }

            return(Json(response));
        }
Пример #12
0
        public ActionResult Add(DataTruck model)
        {
            if (ModelState.IsValid)
            {
                if (RepoDataTruck.IsExist(model.VehicleNo))
                {
                    ModelState.AddModelError("VehicleNo", "Vehicle No sudah terdaftar.");
                    return(View("Form", model));
                }
                Context.DataTruck dbitem = new Context.DataTruck();
                model.SetDb(dbitem);
                //generate code
                dbitem.urutan  = RepoDataTruck.getUrutan() + 1;
                dbitem.NoTruck = RepoDataTruck.generateCode(dbitem.urutan);

                RepoDataTruck.save(dbitem, UserPrincipal.id);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
Пример #13
0
        public ActionResult Add(DataBox model)
        {
            if (ModelState.IsValid)
            {
                if (RepoDataBox.IsBoxExist(model.IdDataTruck.Value))
                {
                    ModelState.AddModelError("IdDataTruck", "Truck sudah tepasang box, harap ganti dengan truck yang lain");
                    return(View("Form", model));
                }
                Context.DataBox dbitem = new Context.DataBox();
                model.SetDb(dbitem);
                //generate code
                dbitem.Urutan = RepoDataBox.getUrutan() + 1;
                dbitem.NoBox  = RepoDataBox.generateCode(dbitem.Urutan);

                Context.DataBoxHistory dbitemHistory = new Context.DataBoxHistory();
                model.SetDbHistory(dbitemHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                dbitemHistory.Vehicle     = RepoDataTruck.FindByPK(model.IdDataTruck.Value).VehicleNo;
                dbitemHistory.NoBox       = dbitem.NoBox;
                dbitemHistory.strKategori = model.IdKategori.HasValue ? RepoLookup.FindByPK(model.IdKategori.Value).Nama : "";
                dbitemHistory.strType     = model.IdType.HasValue ? RepoLookup.FindByPK(model.IdType.Value).Nama : "";
                dbitem.DataBoxHistory.Add(dbitemHistory);
                Context.DataTruckBoxHistory dbtruckHistory = new Context.DataTruckBoxHistory();
                model.SetDbTruckHistory(dbtruckHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                RepoDataBox.save(dbitem, UserPrincipal.id, dbitemHistory, dbtruckHistory);

                Context.DataTruck dbtruck = RepoDataTruck.FindByPK(model.IdDataTruck.Value);
                dbtruckHistory.Vehicle     = dbtruck.VehicleNo;
                dbtruckHistory.NoBox       = dbitem.NoBox;
                dbtruckHistory.strKategori = model.IdKategori.HasValue ? RepoLookup.FindByPK(model.IdKategori.Value).Nama : "";
                dbtruckHistory.strType     = model.IdType.HasValue ? RepoLookup.FindByPK(model.IdType.Value).Nama : "";
                dbtruck.DataTruckBoxHistory.Add(dbtruckHistory);
                RepoDataTruck.save(dbtruck, UserPrincipal.id);


                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
Пример #14
0
        public ActionResult Add(DataPendingin model)
        {
            if (ModelState.IsValid)
            {
                if (RepoPendingin.IsBoxExist(model.IdDataTruk.Value))
                {
                    ModelState.AddModelError("IdDataTruk", "Truck sudah tepasang pendingin, harap ganti dengan truck yang lain");
                    return(View("Form", model));
                }
                Context.DataPendingin dbitem = new Context.DataPendingin();
                model.setDb(dbitem);

                //generate code
                dbitem.Urutan      = RepoPendingin.getUrutan() + 1;
                dbitem.NoPendingin = RepoPendingin.generateCode(dbitem.Urutan);

                Context.DataPendinginHistory dbitemhistory = new Context.DataPendinginHistory();
                model.setDbHistory(dbitemhistory, UserPrincipal.firstname + ' ' + UserPrincipal.lastname);
                dbitemhistory.NoPendingin       = dbitem.NoPendingin;
                dbitemhistory.strDataTruk       = RepoDataTruck.FindByPK(dbitem.IdDataTruk).VehicleNo;
                dbitemhistory.strJenisPendingin = dbitem.IdJenisPendingin.HasValue ? RepoLookup.FindByPK(dbitem.IdJenisPendingin).Nama : "";
                dbitem.ListHistoryPendingin.Add(dbitemhistory);
                Context.DataTruckPendinginHistory dbtruckhistory = new Context.DataTruckPendinginHistory();
                model.setDbTruckHistory(dbtruckhistory, UserPrincipal.firstname + ' ' + UserPrincipal.lastname);
                RepoPendingin.save(dbitem, UserPrincipal.id, dbitemhistory, dbtruckhistory);

                Context.DataTruck dbtruck = RepoDataTruck.FindByPK(model.IdDataTruk.Value);
                dbtruckhistory.NoPendingin       = dbitem.NoPendingin;
                dbtruckhistory.strDataTruk       = RepoDataTruck.FindByPK(dbitem.IdDataTruk).VehicleNo;
                dbtruckhistory.strJenisPendingin = dbitem.IdJenisPendingin.HasValue ? RepoLookup.FindByPK(dbitem.IdJenisPendingin).Nama : "";
                dbtruck.DataTruckPendinginHistory.Add(dbtruckhistory);
                RepoDataTruck.save(dbtruck, UserPrincipal.id);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
Пример #15
0
        public ActionResult Add(DataGPS model)
        {
            if (ModelState.IsValid)
            {
                if (RepoDataGps.IsBoxExist(model.IdDataTruck.Value))
                {
                    ModelState.AddModelError("IdDataTruck", "Truck sudah tepasang gps, harap ganti dengan truck yang lain");
                    return(View("Form", model));
                }
                Context.DataGPS dbitem = new Context.DataGPS();
                model.SetDb(dbitem);
                //generate code
                dbitem.urutan = RepoDataGps.getUrutan() + 1;
                dbitem.NoGPS  = RepoDataGps.generateCode(dbitem.urutan);

                Context.DataGPSHistory dbitemHistory = new Context.DataGPSHistory();
                model.SetDbHistory(dbitemHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                dbitemHistory.Vehicle   = RepoDataTruck.FindByPK(dbitem.IdDataTruck.Value).VehicleNo;
                dbitemHistory.NoGPS     = dbitem.NoGPS;
                dbitemHistory.strVendor = dbitem.IdVendor.HasValue ? RepoVendorGPS.FindByPK(dbitem.IdVendor.Value).Nama : "";
                dbitem.DataGPSHistory.Add(dbitemHistory);
                Context.DataTruckGPSHistory dbtruckHistory = new Context.DataTruckGPSHistory();
                model.SetDbTruckHistory(dbtruckHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                RepoDataGps.save(dbitem, UserPrincipal.id, dbitemHistory);

                Context.DataTruck dbtruck = RepoDataTruck.FindByPK(model.IdDataTruck.Value);
                dbtruckHistory.Vehicle   = dbtruck.VehicleNo;
                dbtruckHistory.NoGPS     = dbitem.NoGPS;
                dbtruckHistory.strVendor = dbitem.IdVendor.HasValue ? RepoVendorGPS.FindByPK(dbitem.IdVendor.Value).Nama : "";
                dbtruck.DataTruckGPSHistory.Add(dbtruckHistory);
                RepoDataTruck.save(dbtruck, UserPrincipal.id);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
Пример #16
0
        public string UploadDataTruck(IEnumerable <HttpPostedFileBase> filesDataTruck)
        {
            ResponeModel response = new ResponeModel();

            //algoritma
            if (filesDataTruck != null)
            {
                foreach (var file in filesDataTruck)
                {
                    try
                    {
                        using (var package = new ExcelPackage(file.InputStream))
                        {
                            var currentSheet = package.Workbook.Worksheets;
                            var workSheet    = currentSheet.First();
                            var noOfRow      = workSheet.Dimension.End.Row;

                            for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                            {
                                if (workSheet.Cells[rowIterator, 1].Value != null && workSheet.Cells[rowIterator, 2].Value != null && RepoLookup.FindByName(workSheet.Cells[rowIterator, 2].Value.ToString()) != null)
                                {
                                    int id = 0;

                                    int resId;
                                    if (workSheet.Cells[rowIterator, 38].Value != null)
                                    {
                                        if (int.TryParse(workSheet.Cells[rowIterator, 38].Value.ToString(), out resId))
                                        {
                                            id = resId;
                                        }
                                    }

                                    Context.DataTruck dbitem = new Context.DataTruck();
                                    try
                                    {
                                        if (id != 0)
                                        {
                                            dbitem = RepoDataTruck.FindByPK(id);
                                            if (RepoDataTruck.IsExist(workSheet.Cells[rowIterator, 1].Value.ToString(), id))
                                            {
                                                continue;
                                            }
                                        }
                                        else
                                        {
                                            if (RepoDataTruck.IsExist(workSheet.Cells[rowIterator, 1].Value.ToString()))
                                            {
                                                continue;
                                            }
                                            dbitem.urutan  = RepoDataTruck.getUrutan() + 1;
                                            dbitem.NoTruck = RepoDataTruck.generateCode(dbitem.urutan);
                                        }

                                        dbitem.VehicleNo = workSheet.Cells[rowIterator, 1].Value.ToString();
                                        if (workSheet.Cells[rowIterator, 2].Value != null)
                                        {
                                            dbitem.IdMerk = RepoLookup.FindByName(workSheet.Cells[rowIterator, 2].Value.ToString()).Id;
                                        }
                                        if (workSheet.Cells[rowIterator, 3].Value != null)
                                        {
                                            dbitem.IdJenisTruck = JenisTruck.FindByName(workSheet.Cells[rowIterator, 3].Value.ToString()).Id;
                                        }
                                        if (workSheet.Cells[rowIterator, 4].Value != null)
                                        {
                                            dbitem.TahunBuat = int.Parse(workSheet.Cells[rowIterator, 4].Value.ToString());
                                        }
                                        if (workSheet.Cells[rowIterator, 5].Value != null)
                                        {
                                            dbitem.TahunBeli = int.Parse(workSheet.Cells[rowIterator, 5].Value.ToString());
                                        }
                                        if (workSheet.Cells[rowIterator, 6].Value != null)
                                        {
                                            dbitem.IdPool = MasterPool.FindByNamePool(workSheet.Cells[rowIterator, 6].Value.ToString()).Id;
                                        }
                                        if (workSheet.Cells[rowIterator, 7].Value != null && RepoLookup.FindByName(workSheet.Cells[rowIterator, 7].Value.ToString()) != null)
                                        {
                                            dbitem.IdUnit = RepoLookup.FindByName(workSheet.Cells[rowIterator, 7].Value.ToString()).Id;
                                        }
                                        dbitem.Keterangan = workSheet.Cells[rowIterator, 8].Value != null ? workSheet.Cells[rowIterator, 8].Value.ToString() : "";
                                        dbitem.Kondisi    = workSheet.Cells[rowIterator, 9].Value != null ? workSheet.Cells[rowIterator, 9].Value.ToString() : "";
                                        dbitem.SpecModel  = workSheet.Cells[rowIterator, 10].Value != null ? workSheet.Cells[rowIterator, 10].Value.ToString() : "";
                                        dbitem.KmLimit    = workSheet.Cells[rowIterator, 11].Value != null?int.Parse(workSheet.Cells[rowIterator, 11].Value.ToString()) : 0;

                                        dbitem.NoMesin  = workSheet.Cells[rowIterator, 12].Value != null ? workSheet.Cells[rowIterator, 12].Value.ToString() : "";
                                        dbitem.NoRangka = workSheet.Cells[rowIterator, 13].Value != null ? workSheet.Cells[rowIterator, 13].Value.ToString() : "";
                                        if (workSheet.Cells[rowIterator, 14].Value != null)
                                        {
                                            dbitem.GaransiStr = DateTime.Parse(workSheet.Cells[rowIterator, 14].Value.ToString());
                                        }
                                        if (workSheet.Cells[rowIterator, 15].Value != null)
                                        {
                                            dbitem.GaransiEnd = DateTime.Parse(workSheet.Cells[rowIterator, 15].Value.ToString());
                                        }
                                        dbitem.SpecKeterangan = workSheet.Cells[rowIterator, 16].Value != null ? workSheet.Cells[rowIterator, 16].Value.ToString() : "";
                                        dbitem.AtasNama       = workSheet.Cells[rowIterator, 17].Value != null ? workSheet.Cells[rowIterator, 17].Value.ToString() : "";
                                        dbitem.BPKB           = workSheet.Cells[rowIterator, 18].Value != null ? workSheet.Cells[rowIterator, 18].Value.ToString() : "";
                                        dbitem.keteranganBPKB = workSheet.Cells[rowIterator, 19].Value != null ? workSheet.Cells[rowIterator, 19].Value.ToString() : "";
                                        if (workSheet.Cells[rowIterator, 20].Value != null)
                                        {
                                            dbitem.STNK = DateTime.Parse(workSheet.Cells[rowIterator, 20].Value.ToString());
                                        }
                                        dbitem.keteranganSTNK = workSheet.Cells[rowIterator, 21].Value != null ? workSheet.Cells[rowIterator, 21].Value.ToString() : "";
                                        if (workSheet.Cells[rowIterator, 22].Value != null)
                                        {
                                            dbitem.KIR = DateTime.Parse(workSheet.Cells[rowIterator, 22].Value.ToString());
                                        }
                                        dbitem.keteranganKIR = workSheet.Cells[rowIterator, 23].Value != null ? workSheet.Cells[rowIterator, 23].Value.ToString() : "";
                                        if (workSheet.Cells[rowIterator, 24].Value != null)
                                        {
                                            dbitem.KIU = DateTime.Parse(workSheet.Cells[rowIterator, 24].Value.ToString());
                                        }
                                        dbitem.keteranganKIU = workSheet.Cells[rowIterator, 25].Value != null ? workSheet.Cells[rowIterator, 25].Value.ToString() : "";
                                        if (workSheet.Cells[rowIterator, 26].Value != null)
                                        {
                                            dbitem.IBM = DateTime.Parse(workSheet.Cells[rowIterator, 26].Value.ToString());
                                        }
                                        dbitem.keteranganIBM = workSheet.Cells[rowIterator, 27].Value != null ? workSheet.Cells[rowIterator, 27].Value.ToString() : "";
                                        if (workSheet.Cells[rowIterator, 28].Value != null)
                                        {
                                            dbitem.Asuransi = DateTime.Parse(workSheet.Cells[rowIterator, 28].Value.ToString());
                                        }
                                        dbitem.keteranganAsuransi = workSheet.Cells[rowIterator, 29].Value != null ? workSheet.Cells[rowIterator, 29].Value.ToString() : null;
                                        if (workSheet.Cells[rowIterator, 30].Value != null)
                                        {
                                            dbitem.Reklame = DateTime.Parse(workSheet.Cells[rowIterator, 30].Value.ToString());
                                        }
                                        else
                                        {
                                            dbitem.Reklame = null;
                                        }
                                        dbitem.keteranganReklame  = workSheet.Cells[rowIterator, 31].Value != null ? workSheet.Cells[rowIterator, 31].Value.ToString() : "";
                                        dbitem.NoPolis            = workSheet.Cells[rowIterator, 32].Value != null ? workSheet.Cells[rowIterator, 32].Value.ToString() : null;
                                        dbitem.keteranganNoPolis  = workSheet.Cells[rowIterator, 33].Value != null ? workSheet.Cells[rowIterator, 33].Value.ToString() : "";
                                        dbitem.Peminjam           = workSheet.Cells[rowIterator, 34].Value != null ? workSheet.Cells[rowIterator, 34].Value.ToString() : null;
                                        dbitem.keteranganPeminjam = workSheet.Cells[rowIterator, 35].Value != null ? workSheet.Cells[rowIterator, 35].Value.ToString() : "";
                                        dbitem.Leasing            = workSheet.Cells[rowIterator, 36].Value != null ? workSheet.Cells[rowIterator, 36].Value.ToString() : null;
                                        dbitem.keteranganLeasing  = workSheet.Cells[rowIterator, 37].Value != null ? workSheet.Cells[rowIterator, 37].Value.ToString() : "";

                                        RepoDataTruck.save(dbitem, UserPrincipal.id);
                                    }
                                    catch (Exception)
                                    {
                                        response.Message = response.Message + Environment.NewLine + " " + rowIterator;
                                    }
                                }
                            }
                        }
                        response.Success = true;
                    }
                    catch (Exception e)
                    {
                        response.Success = false;
                        response.Message = e.Message.ToString();
                    }
                }
            }

            return(new JavaScriptSerializer().Serialize(new { Response = response }));
        }
        public ActionResult Add(PenetapanDriver model)
        {
            if (ModelState.IsValid)
            {
                bool isPalid = true;
                if (RepoPenetapanDriver.IsExist(model.IdDataTruck.Value))
                {
                    isPalid = false;
                    ModelState.AddModelError("IdDataTruck", "Data truck sudah digunakan.");
                }

                if (RepoPenetapanDriver.isExistDriver(model.IdDriver1.Value, 0))
                {
                    isPalid = false;
                    ModelState.AddModelError("idDriver1", "Driver sudah digunakan.");
                }

                if (model.IdDriver2.HasValue)
                {
                    if (RepoPenetapanDriver.isExistDriver(model.IdDriver2.Value, 0))
                    {
                        isPalid = false;
                        ModelState.AddModelError("IdDriver2", "Driver sudah digunakan.");
                    }
                    if (model.IdDriver1 == model.IdDriver2)
                    {
                        isPalid = false;
                        ModelState.AddModelError("IdDriver1", "Driver tidak boleh sama.");
                        ModelState.AddModelError("IdDriver2", "Driver tidak boleh sama.");
                    }
                    if (model.IdDitetapkanOleh2 == null)
                    {
                        isPalid = false;
                        ModelState.AddModelError("IdDitetapkanOleh2", "Penetap Driver 2 Belum Ditentukan.");
                    }
                }

                if (model.IdDitetapkanOleh1 == null)
                {
                    isPalid = false;
                    ModelState.AddModelError("IdDitetapkanOleh1", "Penetap Driver 1 Belum Ditentukan.");
                }

                if (!isPalid)
                {
                    return(View("Form", model));
                }

                Context.PenetapanDriver        dbitem        = new Context.PenetapanDriver();
                Context.PenetapanDriverHistory dbitemHistory = new Context.PenetapanDriverHistory();
                //history
                model.SetDb(dbitem, UserPrincipal.firstname + ' ' + UserPrincipal.lastname);
                model.SetDbHistory(dbitemHistory, UserPrincipal.firstname + " " + UserPrincipal.lastname);
                dbitemHistory.CreatedBy   = UserPrincipal.firstname + " " + UserPrincipal.lastname;
                dbitemHistory.CreatedDate = DateTime.Now;
                dbitem.PenetapanDriverHistory.Add(dbitemHistory);
                //history driver
                Context.DataTruck dbtruck = RepoTruck.FindByPK(model.IdDataTruck.Value);

                Context.Driver             dbdriver1        = RepoDriver.FindByPK(model.IdDriver1.Value);
                Context.DriverTruckHistory dbdriverHistory1 = new Context.DriverTruckHistory();
                dbdriver1.NoHp1          = model.NoHp1Driver1;
                dbdriver1.NoHp2          = model.NoHp2Driver1;
                dbdriverHistory1.Tanggal = DateTime.Now;
                dbdriverHistory1.Nopol   = dbtruck.VehicleNo;
                dbdriverHistory1.Type    = model.JenisTruck;
                dbdriver1.DriverTruckHistory.Add(dbdriverHistory1);
                RepoDriver.save(dbdriver1);
                string query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dbdriver1.NoHp1 + ", \"NoHp2\" = " + dbdriver1.NoHp2 + " WHERE \"Id\" = " + dbdriver1.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" (\"IdDriver\", " +
                               "\"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory1.IdDriver + ", " + dbdriverHistory1.Tanggal + ", " + dbdriverHistory1.Type + ", " + dbdriverHistory1.Nopol + ");";
                RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Add", UserPrincipal.id);

                if (model.IdDriver2.HasValue)
                {
                    Context.Driver             dbdriver2        = RepoDriver.FindByPK(model.IdDriver2.Value);
                    Context.DriverTruckHistory dbdriverHistory2 = new Context.DriverTruckHistory();
                    dbdriver2.NoHp1          = model.NoHp1Driver2;
                    dbdriver2.NoHp2          = model.NoHp2Driver2;
                    dbdriverHistory2.Tanggal = DateTime.Now;
                    dbdriverHistory2.Nopol   = dbtruck.VehicleNo;
                    dbdriverHistory2.Type    = model.JenisTruck;
                    dbdriver2.DriverTruckHistory.Add(dbdriverHistory2);
                    RepoDriver.save(dbdriver2);
                    query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dbdriver2.NoHp1 + ", \"NoHp2\" = " + dbdriver2.NoHp2 + " WHERE \"Id\" = " + dbdriver2.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" ( " +
                            "\"IdDriver\", \"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory2.IdDriver + ", " + dbdriverHistory2.Tanggal + ", " + dbdriverHistory2.Type + ", " + dbdriverHistory2.Nopol + ");";
                    RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Add", UserPrincipal.id);
                }


                RepoPenetapanDriver.save(dbitem);

                return(RedirectToAction("Index"));
            }
            return(View("Form", model));
        }
Пример #18
0
        public DataTruck(Context.DataTruck dbitem)
        {
            Id            = dbitem.Id;
            NoTruck       = dbitem.NoTruck;
            VehicleNo     = dbitem.VehicleNo;
            IdMerk        = dbitem.IdMerk != null ? dbitem.IdMerk : null;
            strMerk       = dbitem.IdMerk != null ? dbitem.LookupCodeMerk.Nama : "";
            IdJenisTruck  = dbitem.IdJenisTruck != null ? dbitem.IdJenisTruck : null;
            strJenisTruck = dbitem.IdJenisTruck != null ? dbitem.JenisTrucks.StrJenisTruck : "";
            TahunBuat     = dbitem.TahunBuat;
            TahunBeli     = dbitem.TahunBeli;
            IdPool        = dbitem.IdPool != null ? dbitem.IdPool : null;
            strPool       = dbitem.IdPool != null ? dbitem.MasterPool.NamePool : "";
            IdUnit        = dbitem.IdUnit != null ? dbitem.IdUnit : null;
            strUnit       = dbitem.IdUnit != null ? dbitem.LookupCodeUnit.Nama : "";
            Keterangan    = dbitem.Keterangan;
            Kondisi       = dbitem.Kondisi;

            SpecModel      = dbitem.SpecModel;
            KmLimit        = dbitem.KmLimit;
            NoMesin        = dbitem.NoMesin;
            NoRangka       = dbitem.NoRangka;
            GaransiStr     = dbitem.GaransiStr;
            GaransiEnd     = dbitem.GaransiEnd;
            SpecKeterangan = dbitem.SpecKeterangan;
            MaxSpeed       = dbitem.MaxSpeed;

            AtasNama = dbitem.AtasNama;
            BPKB     = dbitem.BPKB;
            STNK     = dbitem.STNK;
            KIR      = dbitem.KIR;
            KIU      = dbitem.KIU;
            IBM      = dbitem.IBM;
            Asuransi = dbitem.Asuransi;
            Reklame  = dbitem.Reklame;
            NoPolis  = dbitem.NoPolis;
            Peminjam = dbitem.Peminjam;
            Leasing  = dbitem.Leasing;

            keteranganBPKB     = dbitem.keteranganBPKB;
            keteranganSTNK     = dbitem.keteranganSTNK;
            keteranganKIR      = dbitem.keteranganKIR;
            keteranganKIU      = dbitem.keteranganKIU;
            keteranganIBM      = dbitem.keteranganIBM;
            keteranganAsuransi = dbitem.keteranganAsuransi;
            keteranganReklame  = dbitem.keteranganReklame;
            keteranganNoPolis  = dbitem.keteranganNoPolis;
            keteranganPeminjam = dbitem.keteranganPeminjam;
            keteranganLeasing  = dbitem.keteranganLeasing;

            urlBPKB     = dbitem.urlBPKB;
            urlSTNK     = dbitem.urlSTNK;
            urlKIR      = dbitem.urlKIR;
            urlKIU      = dbitem.urlKIU;
            urlIBM      = dbitem.urlIBM;
            urlAsuransi = dbitem.urlAsuransi;
            urlReklame  = dbitem.urlReklame;
            urlNoPolis  = dbitem.urlNoPolis;
            urlPeminjam = dbitem.urlPeminjam;
            urlLeasing  = dbitem.urlLeasing;
        }
Пример #19
0
        public ActionResult EditOncall(SalesOrderOncall model, string btnsave)
        {
            //validasi manual
            bool palid  = true;
            int  urutan = 1;

            if (btnsave != "draft" && model.Status != "draft")
            {
                if (!model.IdDataTruck.HasValue)
                {
                    ModelState.AddModelError("IdDataTruck", "Truk harus diisi.");
                    palid = false;
                }
                if (!model.Driver1Id.HasValue || model.Driver1Id.Value == 0)
                {
                    ModelState.AddModelError("Driver1Id", "Driver harus diisi.");
                    palid = false;
                }
                if (model.Driver1Id != null)
                {
                    Context.Driver                 item = RepoDriver.FindAll().Where(d => d.Id == model.Driver1Id.Value).FirstOrDefault();
                    List <Context.SalesOrder>      dbso = RepoSalesOrder.FindAll().ToList();
                    List <Context.SettlementBatal> dbsb = RepoSettlementBatal.FindAll().Where(s => s.IsProses == false).ToList();
                    Driver             driver           = new Driver(item, dbso, dbsb);
                    Context.SalesOrder dbsoDriver       = RepoSalesOrder.FindAll().Where(d =>
                                                                                         (d.Status == "save" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && (
                                                                                             (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == model.Driver1Id || d.SalesOrderOncall.Driver2Id == model.Driver1Id)) ||
                                                                                             (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == model.Driver1Id || d.SalesOrderPickup.Driver2Id == model.Driver1Id)) ||
                                                                                             (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == model.Driver1Id || d.SalesOrderProsesKonsolidasi.Driver2Id == model.Driver1Id))
                                                                                             )
                                                                                         ).FirstOrDefault();
                    if (driver.StatusSo != "Available" && dbsoDriver != null && RepoSalesOrder.FindArea(dbsoDriver.SalesOrderOncall.IdDaftarHargaItem.Value) != "YES")
                    {
                        List <Context.SalesOrder> dbsoDriverList = RepoSalesOrder.FindAll().Where(d =>
                                                                                                  (d.Status == "save" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && (
                                                                                                      (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == model.Driver1Id || d.SalesOrderOncall.Driver2Id == model.Driver1Id)) ||
                                                                                                      (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == model.Driver1Id || d.SalesOrderPickup.Driver2Id == model.Driver1Id)) ||
                                                                                                      (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == model.Driver1Id || d.SalesOrderProsesKonsolidasi.Driver2Id == model.Driver1Id))
                                                                                                      )
                                                                                                  ).ToList();
                        urutan = dbsoDriver.urutan + 1;

                        //SO yg sdh jalan
                        Context.Rute rute       = RepoSalesOrder.FindRute(dbsoDriver.SalesOrderOncall.IdDaftarHargaItem.Value);
                        int          waktuKerja = int.Parse(rute.WaktuKerja.ToString());

                        //SO yg sedang diplanning
                        Context.SalesOrder so           = RepoSalesOrder.FindByOnCall(model.SalesOrderId.Value);
                        Context.Rute       rutePlanning = null;
                        if (so != null && so.SalesOrderOncall != null && so.SalesOrderOncall.IdDaftarHargaItem != null)
                        {
                            rutePlanning = RepoSalesOrder.FindRute(so.SalesOrderOncall.IdDaftarHargaItem.Value);
                            int  waktuKerjaPlanning = int.Parse(rutePlanning.WaktuKerja.ToString());
                            bool used_at_that_date  = dbsoDriverList.Any(d =>
                                                                         DateTime.Parse(d.SalesOrderOncall.TanggalMuat.ToString()).AddDays(waktuKerja) >= model.TanggalMuat ||
                                                                         DateTime.Parse(d.SalesOrderOncall.TanggalMuat.ToString()) <= DateTime.Parse(model.TanggalMuat.ToString()).AddDays(waktuKerja)
                                                                         );
                            if (used_at_that_date)
                            {
                                ModelState.AddModelError("Driver1Id", "Driver tidak tersedia, harap pilih driver lain.");
                                palid = false;
                            }
                            else if (urutan > 2 && rutePlanning.IsAreaPulang != true)
                            {
                                ModelState.AddModelError("Driver1Id", "Driver tidak tersedia, harap pilih driver lain.");
                                palid = false;
                            }
                        }
                    }
                }
            }
            if (model.Status == "draft")
            {
                if (model.CommentUser == "" || model.CommentUser == null)
                {
                    ModelState.AddModelError("CommentUser", "Comment harus diisi.");
                    palid = false;
                }
            }
            if (palid)
            {
                Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(model.SalesOrderId.Value);
                dbitem.isReturn  = false;
                dbitem.UpdatedBy = UserPrincipal.id;
                dbitem.urutan    = urutan;
                string act = "";
                if (btnsave != null && btnsave != "")
                {
                    act           = "Draft";
                    dbitem.Status = btnsave;
                }
                else
                {
                    if (model.Status.ToLower() == "save")
                    {
                        act             = "Return";
                        dbitem.isReturn = true;
                    }
                    else
                    {
                        act             = "Submit";
                        dbitem.isReturn = false;
                    }

                    dbitem.Status = model.Status;
                }

                model.setDbOperasional(dbitem.SalesOrderOncall, act, "Operational");
                RepoSalesOrder.save(dbitem);
                RepoAuditrail.savePlanningHistory(dbitem);
                Context.so_mstr   dbptnr = Reposo_mstr.FindByPK(dbitem.SalesOrderOncall.SONumber);
                Context.DataTruck truck  = RepoDataTruck.FindByPK(model.IdDataTruck);
                try
                {
                    dbptnr.so_vehicle = Repocode_mstr.FindByCodeName(truck.VehicleNo).id;
                    Reposo_mstr.UpdateSoMstrVehicle(dbptnr);
                }
                catch (Exception)
                {
                }
                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.kondisi  = "planning";
                ViewBag.name     = model.SONumber;
                ViewBag.Title    = "Planning Sales Order Oncall " + model.SONumber;
                ViewBag.PostData = "EditOncall";
                return(View("SalesOrderOncall/FormReadOnly", model));
            }
        }
Пример #20
0
        public DataTruckDetail(Context.DataTruck dbitem, List <Context.PenetapanDriver> dbPenetapanDriver = null, List <Context.SalesOrder> dbso = null)
        {
            Id = dbitem.Id;
            //cek status order
            StatusOrder = "";
            StatusTruk  = "Available";
            if (dbso != null)
            {
                if (dbso.Any(d => (d.Status == "save" || d.Status == "draft planning") &&
                             ((d.SalesOrderOncallId.HasValue ? d.SalesOrderOncall.IdDataTruck == dbitem.Id : false) ||
                              (d.SalesOrderPickupId.HasValue ? d.SalesOrderPickup.IdDataTruck == dbitem.Id : false) ||
                              (d.SalesOrderProsesKonsolidasiId.HasValue ? d.SalesOrderProsesKonsolidasi.IdDataTruck == dbitem.Id : false) ||
                              (d.SalesOrderKontrakId.HasValue ? d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.DataTruckId == dbitem.Id) : false))))
                {
                    StatusOrder = "Planning";
                    StatusTruk  = "On Duty";
                }
                else if (dbso.Any(d => (d.Status == "save planning" || d.Status == "draft konfirmasi") &&
                                  ((d.SalesOrderOncallId.HasValue ? d.SalesOrderOncall.IdDataTruck == dbitem.Id : false) ||
                                   (d.SalesOrderPickupId.HasValue ? d.SalesOrderPickup.IdDataTruck == dbitem.Id : false) ||
                                   (d.SalesOrderProsesKonsolidasiId.HasValue ? d.SalesOrderProsesKonsolidasi.IdDataTruck == dbitem.Id : false) ||
                                   (d.SalesOrderKontrakId.HasValue ? d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.DataTruckId == dbitem.Id) : false))))
                {
                    StatusOrder = "Konfirmasi";
                    StatusTruk  = "On Duty";
                }
                else if (dbso.Any(d => (d.Status == "save konfirmasi" || d.Status == "dispatched") &&
                                  ((d.SalesOrderOncallId.HasValue ? d.SalesOrderOncall.IdDataTruck == dbitem.Id : false) ||
                                   (d.SalesOrderPickupId.HasValue ? d.SalesOrderPickup.IdDataTruck == dbitem.Id : false) ||
                                   (d.SalesOrderProsesKonsolidasiId.HasValue ? d.SalesOrderProsesKonsolidasi.IdDataTruck == dbitem.Id : false) ||
                                   (d.SalesOrderKontrakId.HasValue ? d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.DataTruckId == dbitem.Id) : false))))
                {
                    StatusOrder = "Dispatched";
                    StatusTruk  = "On Duty";
                }
            }
            //StatusTruk =
            VehicleNo = dbitem.VehicleNo;
            Merk      = dbitem.IdMerk != null ? dbitem.LookupCodeMerk.Nama : "";
            JenisTruk = !dbitem.IdJenisTruck.HasValue ? "" : dbitem.JenisTrucks.StrJenisTruck;
            if (dbitem.DataPendingin.Count > 0)
            {
                Context.DataPendingin dbpendingin = dbitem.DataPendingin.FirstOrDefault();
                Pendingin = dbpendingin.Merk + " - " + dbpendingin.Model;
            }
            if (dbitem.DataBox.Count > 0)
            {
                Context.DataBox dbbox    = dbitem.DataBox.FirstOrDefault();
                List <string>   _lantai  = new List <string>();
                List <string>   _dinding = new List <string>();

                if (dbbox.Lantai != null && dbbox.Lantai != "")
                {
                    _lantai.Add(dbbox.Lantai);
                }
                if (dbbox.Dinding != null && dbbox.Dinding != "")
                {
                    _dinding.Add(dbbox.Dinding);
                }
                foreach (DataBoxLantai item in dbbox.DataBoxLantai)
                {
                    _lantai.Add(item.LookupCodeLantaiCode.Nama);
                }
                foreach (DataBoxDinding item in dbbox.DataBoxDinding)
                {
                    _dinding.Add(item.LookupCodeDinding.Nama);
                }
                if (_lantai.Count() > 0)
                {
                    Lantai = string.Join(", ", _lantai);
                }
                if (_dinding.Count() > 0)
                {
                    Dinding = string.Join(", ", _dinding);
                }
            }
            KondisiKhusus = dbitem.Kondisi;
            List <string> _dok = new List <string>();

            if (dbitem.STNK != null && dbitem.STNK.Value >= DateTime.Now)
            {
                _dok.Add("STNK");
            }
            if (dbitem.KIR != null && dbitem.KIR.Value >= DateTime.Now)
            {
                _dok.Add("KIR");
            }
            if (dbitem.KIU != null && dbitem.KIU.Value >= DateTime.Now)
            {
                _dok.Add("KIU/SIPA");
            }
            if (dbitem.IBM != null && dbitem.IBM.Value >= DateTime.Now)
            {
                _dok.Add("IBM");
            }
            if (dbitem.Asuransi != null && dbitem.Asuransi.Value >= DateTime.Now)
            {
                _dok.Add("Asuransi");
            }
            if (dbitem.Reklame != null && dbitem.Reklame.Value >= DateTime.Now)
            {
                _dok.Add("Pajak Reklame");
            }
            if (_dok.Count > 0)
            {
                DokumenExp = string.Join(", ", _dok);
            }

            if (dbPenetapanDriver != null)
            {
                Context.PenetapanDriver dbPenetapan = dbPenetapanDriver.Where(d => d.IdDataTruck == dbitem.Id).FirstOrDefault();
                if (dbPenetapan != null)
                {
                    IdDriver1     = dbPenetapan.IdDriver1.Value;
                    KodeDriver1   = dbPenetapan.Driver1.KodeDriver;
                    NamaDriver1   = dbPenetapan.Driver1.NamaDriver;
                    StatusDriver1 = dbPenetapan.Driver1.LookupCodeStatus.Nama;
                    if (dbPenetapan.IdDriver2.HasValue)
                    {
                        IdDriver2     = dbPenetapan.IdDriver2.Value;
                        KodeDriver2   = dbPenetapan.Driver2.KodeDriver;
                        NamaDriver2   = dbPenetapan.Driver2.NamaDriver;
                        StatusDriver2 = dbPenetapan.Driver2.LookupCodeStatus.Nama;
                    }
                }
            }
        }
        public string Upload(IEnumerable <HttpPostedFileBase> filesPenetapanDriver)
        {
            ResponeModel response = new ResponeModel();


            if (filesPenetapanDriver != null)
            {
                foreach (var file in filesPenetapanDriver)
                {
                    try
                    {
                        using (var package = new ExcelPackage(file.InputStream))
                        {
                            var currentSheet = package.Workbook.Worksheets;
                            var workSheet    = currentSheet.First();
                            var noOfCol      = workSheet.Dimension.End.Column;
                            var noOfRow      = workSheet.Dimension.End.Row;



                            for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                            {
                                if (workSheet.Cells[rowIterator, 1].Value != null && workSheet.Cells[rowIterator, 2].Value != null && RepoTruck.FindByName(workSheet.Cells[rowIterator, 1].Value.ToString()) != null)
                                {
                                    int id = 0;
                                    int resId;


                                    if (workSheet.Cells[rowIterator, 10].Value != null)
                                    {
                                        if (int.TryParse(workSheet.Cells[rowIterator, 10].Value.ToString(), out resId))
                                        {
                                            id = resId;
                                        }
                                    }

                                    Context.PenetapanDriver db = new Context.PenetapanDriver();
                                    try
                                    {
                                        if (id != 0)
                                        {
                                            db = RepoPenetapanDriver.FindByPK(id);
                                        }
                                        Context.Driver dr1 = RepoDriver.FindByCode(workSheet.Cells[rowIterator, 2].Value.ToString());
                                        Context.Driver dr2 = workSheet.Cells[rowIterator, 6].Value == null ? null : RepoDriver.FindByCode(workSheet.Cells[rowIterator, 6].Value.ToString());
                                        db.IdDataTruck = RepoTruck.FindByName(workSheet.Cells[rowIterator, 1].Value.ToString()).Id;

                                        if (id == 0 && RepoPenetapanDriver.IsExist(db.IdDataTruck.Value))
                                        {
                                            continue;
                                        }

                                        if (dr1 != null)
                                        {
                                            if (RepoPenetapanDriver.isExistDriver(dr1.Id, id))
                                            {
                                                continue;
                                            }
                                        }

                                        if (dr2 != null)
                                        {
                                            if (RepoPenetapanDriver.isExistDriver(dr2.Id, id))
                                            {
                                                continue;
                                            }
                                        }

                                        if (dr1 != null && dr2 != null)
                                        {
                                            if (dr2.Id.Equals(dr1.Id))
                                            {
                                                continue;
                                            }
                                        }

                                        db.IdDriver1       = dr1.Id;
                                        db.NoHp1Driver1    = workSheet.Cells[rowIterator, 3].Value == null ? dr1.NoHp1 : workSheet.Cells[rowIterator, 3].Value.ToString();
                                        db.NoHp2Driver1    = workSheet.Cells[rowIterator, 4].Value == null ? dr1.NoHp2 : workSheet.Cells[rowIterator, 4].Value.ToString();
                                        db.DitetapkanOleh1 = workSheet.Cells[rowIterator, 5].Value == null ? null : workSheet.Cells[rowIterator, 5].Value.ToString();

                                        if (dr2 != null)
                                        {
                                            db.IdDriver2       = dr2.Id;
                                            db.NoHp1Driver2    = workSheet.Cells[rowIterator, 7].Value == null ? dr2.NoHp1 : workSheet.Cells[rowIterator, 7].Value.ToString();
                                            db.NoHp2Driver2    = workSheet.Cells[rowIterator, 8].Value == null ? dr2.NoHp2 : workSheet.Cells[rowIterator, 8].Value.ToString();
                                            db.DitetapkanOleh2 = workSheet.Cells[rowIterator, 9].Value == null ? null : workSheet.Cells[rowIterator, 9].Value.ToString();
                                            dr2.NoHp1          = db.NoHp1Driver2;
                                            dr2.NoHp2          = db.NoHp2Driver2;
                                        }

                                        db.ModifiedBy   = UserPrincipal.username;
                                        db.ModifiedDate = DateTime.Now;

                                        dr1.NoHp1 = db.NoHp1Driver1;
                                        dr1.NoHp2 = db.NoHp2Driver1;

                                        RepoPenetapanDriver.save(db);

                                        int resultId = db.Id;

                                        //save penetapan driver history
                                        Context.PenetapanDriverHistory dbItemHistory = new Context.PenetapanDriverHistory();
                                        Context.PenetapanDriver        pd            = RepoPenetapanDriver.FindByPK(resultId);

                                        dbItemHistory.IdPenetapanDriver = resultId;
                                        dbItemHistory.Driver1           = dr1.NamaDriver;
                                        if (dr2 != null)
                                        {
                                            dbItemHistory.Driver2 = dr2.NamaDriver;
                                        }
                                        dbItemHistory.CreatedBy    = UserPrincipal.firstname + " " + UserPrincipal.lastname;
                                        dbItemHistory.ModifiedBy   = UserPrincipal.firstname + " " + UserPrincipal.lastname;
                                        dbItemHistory.ModifiedDate = DateTime.Now;
                                        pd.PenetapanDriverHistory.Add(dbItemHistory);

                                        //history driver

                                        Context.DriverTruckHistory dbdriverHistory1 = new Context.DriverTruckHistory();
                                        Context.DriverTruckHistory dbdriverHistory2 = new Context.DriverTruckHistory();
                                        Context.DataTruck          dbtruck          = RepoTruck.FindByPK(db.IdDataTruck.Value);

                                        dbdriverHistory1.Tanggal = DateTime.Now;
                                        dbdriverHistory1.Nopol   = dbtruck.VehicleNo;
                                        dbdriverHistory1.Type    = dbtruck.JenisTrucks.StrJenisTruck;

                                        dbdriverHistory2.Tanggal = DateTime.Now;
                                        dbdriverHistory2.Nopol   = dbtruck.VehicleNo;
                                        dbdriverHistory2.Type    = dbtruck.JenisTrucks.StrJenisTruck;

                                        dr1.DriverTruckHistory.Add(dbdriverHistory1);

                                        RepoDriver.save(dr1);
                                        string query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dr1.NoHp1 + ", \"NoHp2\" = " + dr1.NoHp2 + " WHERE \"Id\" = " + dr1.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" ( " +
                                                       "\"IdDriver\", \"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory1.IdDriver + ", " + dbdriverHistory1.Tanggal + ", " + dbdriverHistory1.Type + ", " +
                                                       dbdriverHistory1.Nopol + ");";
                                        RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Import", UserPrincipal.id);
                                        if (dr2 != null)
                                        {
                                            dr2.NoHp1 = db.NoHp1Driver2;
                                            dr2.NoHp2 = db.NoHp2Driver2;
                                            dr2.DriverTruckHistory.Add(dbdriverHistory2);
                                            RepoDriver.save(dr2);
                                            query = "UPDATE dbo.\"Driver\" SET \"NoHp1\" = " + dr2.NoHp1 + ", \"NoHp2\" = " + dr2.NoHp2 + " WHERE \"Id\" = " + dr2.Id + ";INSERT INTO dbo.\"DriverTruckHistory\" ( " +
                                                    "\"IdDriver\", \"Tanggal\", \"Type\", \"Nopol\") VALUES (" + dbdriverHistory2.IdDriver + ", " + dbdriverHistory2.Tanggal + ", " + dbdriverHistory2.Type + ", " +
                                                    dbdriverHistory2.Nopol + ");";
                                            RepoAuditrail.SetAuditTrail(query, "Penetapan Driver", "Import", UserPrincipal.id);
                                        }
                                        RepoPenetapanDriver.save(pd);
                                    }
                                    catch (Exception)
                                    {
                                    }
                                }
                            }
                        }

                        response.Success = true;
                    }
                    catch (Exception e)
                    {
                        response.Success = false;
                        response.Message = e.Message.ToString();
                    }
                }
            }
            return(new JavaScriptSerializer().Serialize(new { Response = response }));
        }