public string GetDataForSo(int id) { Context.Rute dbitem = RepoRute.FindByPK(id); Rute model = new Rute(dbitem); return(new JavaScriptSerializer().Serialize(new { data = model })); }
public ActionResult Edit(int id) { Context.Rute dbitem = RepoRute.FindByPK(id); Rute Viewmodel = new Rute(dbitem); ViewBag.name = Viewmodel.Kode; return(View("Form", Viewmodel)); }
public JsonResult Delete(int id) { ResponeModel response = new ResponeModel(true); Context.Rute dbItem = RepoRute.FindByPK(id); RepoRute.delete(dbItem); return(Json(response)); }
public String CheckLeadTimeDriver(int id) { Context.SalesOrder dbso = RepoSalesOrder.FindAll().Where(d => (d.Status == "save planning" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && ( (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == id || d.SalesOrderOncall.Driver2Id == id)) || (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == id || d.SalesOrderPickup.Driver2Id == id)) || (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == id || d.SalesOrderProsesKonsolidasi.Driver2Id == id)) || (d.SalesOrderKontrakId.HasValue && (d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.IdDriver1 == id || k.IdDriver2 == id))) ) ).FirstOrDefault(); List <Context.SalesOrder> soList = RepoSalesOrder.FindAll().Where(d => (d.Status == "save planning" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && ( (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == id || d.SalesOrderOncall.Driver2Id == id)) || (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == id || d.SalesOrderPickup.Driver2Id == id)) || (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == id || d.SalesOrderProsesKonsolidasi.Driver2Id == id)) || (d.SalesOrderKontrakId.HasValue && (d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.IdDriver1 == id || k.IdDriver2 == id))) ) ).ToList(); if (dbso != null && dbso.SalesOrderOncallId.HasValue) { int maxUrutan = soList.Count() > 0 ? RepoSalesOrder.FindAll().Where(d => (d.Status == "save planning" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && ( (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == id || d.SalesOrderOncall.Driver2Id == id)) || (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == id || d.SalesOrderPickup.Driver2Id == id)) || (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == id || d.SalesOrderProsesKonsolidasi.Driver2Id == id)) || (d.SalesOrderKontrakId.HasValue && (d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.IdDriver1 == id || k.IdDriver2 == id))) ) ).Max(d => d.urutan) : 0; Context.Rute rute = RepoSalesOrder.FindRute(dbso.SalesOrderOncall.IdDaftarHargaItem.Value); double wktkrj = rute.WaktuKerja; int waktuKerja = int.Parse(rute.WaktuKerja.ToString()); return(new JavaScriptSerializer().Serialize(new { waktupulang = DateTime.Parse(dbso.SalesOrderOncall.TanggalMuat.ToString()).AddDays(waktuKerja).ToString(), orderCount = maxUrutan })); } else if (dbso != null && dbso.SalesOrderKontrakId.HasValue) { int maxUrutan = soList.Count() > 0 ? RepoSalesOrder.FindAll().Where(d => (d.Status == "save planning" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && ( (d.SalesOrderOncallId.HasValue && (d.SalesOrderOncall.Driver1Id == id || d.SalesOrderOncall.Driver2Id == id)) || (d.SalesOrderPickupId.HasValue && (d.SalesOrderPickup.Driver1Id == id || d.SalesOrderPickup.Driver2Id == id)) || (d.SalesOrderProsesKonsolidasiId.HasValue && (d.SalesOrderProsesKonsolidasi.Driver1Id == id || d.SalesOrderProsesKonsolidasi.Driver2Id == id)) || (d.SalesOrderKontrakId.HasValue && (d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.IdDriver1 == id || k.IdDriver2 == id))) ) ).Max(d => d.urutan) : 0; return(new JavaScriptSerializer().Serialize(new { waktupulang = dbso.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Driver1Id == id).Select(d => d.MuatDate).Max().ToString(), waktuMuat = dbso.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Driver1Id == id).Select(d => d.MuatDate).Min().ToString(), orderCount = 0, })); } return(new JavaScriptSerializer().Serialize(new { success = true })); }
public ActionResult Edit(Rute model) { if (ModelState.IsValid) { Context.Rute dbitem = RepoRute.FindByPK(model.Id); model.setDb(dbitem); RepoRute.save(dbitem); return(RedirectToAction("Index")); } return(View("Form", model)); }
public ActionResult Add(Rute model, string submitBasicData) { if (ModelState.IsValid) { Context.Rute dbitem = new Context.Rute(); model.setDb(dbitem); //generate code dbitem.Urutan = RepoRute.getUrutan() + 1; dbitem.Kode = RepoRute.generateCode(dbitem.Urutan); RepoRute.save(dbitem); return(RedirectToAction("Index")); } return(View("Form", model)); }
public void setDb(Context.Rute dbitem) { dbitem.CustomerId = CustomerId; dbitem.Kode = Kode; dbitem.Nama = Nama; dbitem.IdAsal = IdAsal; dbitem.IdAreaAsal = IdAreaAsal; dbitem.IdTujuan = IdTujuan; dbitem.IdAreaTujuan = IdAreaTujuan; dbitem.IdMultiDrop = IdMultiDrop; dbitem.Jarak = Jarak.Value; dbitem.WaktuKerja = WaktuKerja.Value; dbitem.WaktuTempuhJam = WaktuTempuhJam; dbitem.WaktuTempuhMenit = WaktuTempuhMenit; dbitem.Toleransi = Toleransi; dbitem.IsAreaPulang = IsAreaPulang; dbitem.IsKotaKota = IsKotaKota; dbitem.Keterangan = Keterangan; dbitem.RuteCheckPoint.Clear(); if (StrListCheckPoint != null) { RuteCheckPoint[] result = JsonConvert.DeserializeObject <RuteCheckPoint[]>(StrListCheckPoint); foreach (RuteCheckPoint item in result) { dbitem.RuteCheckPoint.Add(new Context.RuteCheckPoint() { code = item.code, longitude = item.longitude, langitude = item.langitude, radius = item.radius, alamat = item.alamat, waktuJam = item.waktuJam, waktuMenit = item.waktuMenit, toleransi = item.toleransi, hapus = item.hapus }); } } }
public String CheckLeadTime(int id) { Context.SalesOrder dbso = RepoSalesOrder.FindAll().Where(d => (d.Status == "save planning" || d.Status == "draft planning" || d.Status == "draft konfirmasi" || d.Status == "save konfirmasi" || d.Status == "dispatched") && ( (d.SalesOrderOncallId.HasValue && d.SalesOrderOncall.IdDataTruck == id) || (d.SalesOrderPickupId.HasValue && d.SalesOrderPickup.IdDataTruck == id) || (d.SalesOrderProsesKonsolidasiId.HasValue && d.SalesOrderProsesKonsolidasi.IdDataTruck == id) || (d.SalesOrderKontrakId.HasValue && d.SalesOrderKontrak.SalesOrderKontrakTruck.Any(k => k.DataTruckId == id)) ) ).FirstOrDefault(); if (dbso != null && dbso.SalesOrderOncallId.HasValue) { Context.Rute rute = RepoSalesOrder.FindRute(dbso.SalesOrderOncall.IdDaftarHargaItem.Value); double wktkrj = rute.WaktuKerja; int waktuKerja = int.Parse(rute.WaktuKerja.ToString()); return(new JavaScriptSerializer().Serialize(new { waktupulang = DateTime.Parse(dbso.SalesOrderOncall.TanggalMuat.ToString()).AddDays(waktuKerja).ToString(), waktuMuat = DateTime.Parse(dbso.SalesOrderOncall.TanggalMuat.ToString()).ToString() })); } return(null); }
public Rute(Context.Rute dbitem) { Id = dbitem.Id; CustomerId = dbitem.CustomerId; strCustomer = dbitem.CustomerId == null ? "UMUM" : dbitem.Customer.CustomerNama; Kode = dbitem.Kode; Nama = dbitem.Nama; IdAsal = dbitem.IdAsal; Asal = dbitem.LocationAsal.Nama; IdAreaAsal = dbitem.IdAreaAsal; AreaAsal = dbitem.AreaAsal.Nama; IdTujuan = dbitem.IdTujuan; Tujuan = dbitem.LocationTujuan.Nama; IdAreaTujuan = dbitem.IdAreaTujuan; AreaTujuan = dbitem.AreaTujuan.Nama; if (dbitem.Multidrop != null) { IdMultiDrop = dbitem.IdMultiDrop; MultiDrop = dbitem.Multidrop.tujuan; } Jarak = dbitem.Jarak; WaktuKerja = dbitem.WaktuKerja; WaktuTempuhJam = dbitem.WaktuTempuhJam; WaktuTempuhMenit = dbitem.WaktuTempuhMenit; string wktjam = WaktuTempuhJam.HasValue ? WaktuTempuhJam.Value.ToString() : "0"; string wktmenit = WaktuTempuhMenit.HasValue ? WaktuTempuhMenit.Value.ToString() : "0"; strWaktuTempuh = wktjam + " Jam " + wktmenit + " menit"; Toleransi = dbitem.Toleransi; IsAreaPulang = dbitem.IsAreaPulang; IsKotaKota = dbitem.IsKotaKota; Keterangan = dbitem.Keterangan; listCheckPoint = new List <RuteCheckPoint>(); foreach (Context.RuteCheckPoint item in dbitem.RuteCheckPoint) { listCheckPoint.Add(new RuteCheckPoint(item)); } }
public string Upload(IEnumerable <HttpPostedFileBase> fileRute) { ResponeModel response = new ResponeModel(); if (fileRute != null) { foreach (var file in fileRute) { 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 && workSheet.Cells[rowIterator, 3].Value != null && workSheet.Cells[rowIterator, 4].Value != null && workSheet.Cells[rowIterator, 5].Value != null && workSheet.Cells[rowIterator, 7].Value != null) { int id = 0; int resId; if (workSheet.Cells[rowIterator, 14].Value != null) { if (int.TryParse(workSheet.Cells[rowIterator, 14].Value.ToString(), out resId)) { id = resId; } } Context.Rute db = new Context.Rute(); try { if (id != 0) { db = RepoRute.FindByPK(id); db.RuteCheckPoint.Clear(); } //parent db.Urutan = RepoRute.getUrutan() + 1; db.Kode = RepoRute.generateCode(db.Urutan); db.Nama = workSheet.Cells[rowIterator, 1].Value.ToString(); db.IdAsal = RepoLocation.FindByCode(workSheet.Cells[rowIterator, 2].Value.ToString()).Id; db.IdAreaAsal = RepoArea.FindByCode(workSheet.Cells[rowIterator, 3].Value.ToString()).Id; db.IdTujuan = RepoLocation.FindByCode(workSheet.Cells[rowIterator, 4].Value.ToString()).Id; db.IdAreaTujuan = RepoArea.FindByCode(workSheet.Cells[rowIterator, 5].Value.ToString()).Id; if (workSheet.Cells[rowIterator, 6].Value != null && workSheet.Cells[rowIterator, 6].Value.ToString() != "") { db.IdMultiDrop = RepoMultidrop.FindByTujuan(workSheet.Cells[rowIterator, 6].Value.ToString()).Id; } db.WaktuKerja = int.Parse(workSheet.Cells[rowIterator, 7].Value.ToString()); if (workSheet.Cells[rowIterator, 8].Value != null) { db.Toleransi = int.Parse(workSheet.Cells[rowIterator, 8].Value.ToString()); } db.IsAreaPulang = workSheet.Cells[rowIterator, 9].Value == null ? false : bool.Parse(workSheet.Cells[rowIterator, 9].Value.ToString()); db.IsKotaKota = workSheet.Cells[rowIterator, 10].Value == null ? false : bool.Parse(workSheet.Cells[rowIterator, 10].Value.ToString()); // child; int idx = 0; for (idx = rowIterator; idx <= noOfRow; idx++) { if (workSheet.Cells[idx, 1].Value == null || idx == rowIterator) { if (workSheet.Cells[idx, 10].Value != null && workSheet.Cells[idx, 11].Value != null && workSheet.Cells[idx, 12].Value != null && workSheet.Cells[idx, 13].Value != null) { Context.RuteCheckPoint item = new Context.RuteCheckPoint(); item.longitude = workSheet.Cells[idx, 10].Value.ToString(); item.langitude = workSheet.Cells[idx, 11].Value.ToString(); item.radius = int.Parse(workSheet.Cells[idx, 12].Value.ToString()); item.toleransi = int.Parse(workSheet.Cells[idx, 13].Value.ToString()); db.RuteCheckPoint.Add(item); } } else { break; } } if (idx != 0) { rowIterator = idx - 1; } RepoRute.save(db); } catch (Exception) { } } } } response.Success = true; } catch (Exception e) { response.Success = false; response.Message = e.Message.ToString(); } } } return(new JavaScriptSerializer().Serialize(new { Response = response })); }
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)); } }