public void SetCancelManifest(Manifest manifestSelected, string alasan) { using (var db = new OcphDbContext()) { var trans = db.BeginTransaction(); try { if (manifestSelected.IsTakeOff) { throw new SystemException(string.Format("Manifest Nomor MT{0:D8} Tidak Dapat Dibatalkan.\r\n Pesawat Telah Berangkat Atau Tiba di tujuan", manifestSelected.Id)); } ActivedStatus actived = ActivedStatus.Cancel; var updated = db.Manifest.Update(O => new { O.ActiveStatus }, new manifestoutgoing { Id = manifestSelected.Id, ActiveStatus = actived }, O => O.Id == manifestSelected.Id); if (updated) { var history = User.GenerateHistory(manifestSelected.Id, BussinesType.Manifest, ChangeType.Cancel, alasan); if (!db.Histories.Insert(history)) { throw new SyntaxErrorException("Manifest tidak dapat dibatalkan"); } manifestSelected.ActiveStatus = ActivedStatus.Cancel; trans.Commit(); } } catch (Exception ex) { throw new SystemException(ex.Message); } } }
public void SetCancelSMU(SMU selectedItem, string alasan) { using (var db = new OcphDbContext()) { var trans = db.BeginTransaction(); try { if (selectedItem.ActiveStatus != ActivedStatus.Cancel) { var result = (from a in db.ManifestDetail.Where(O => O.SMUId == selectedItem.Id) join b in db.Manifest.Select() on a.manifestoutgoingId equals b.Id select b).FirstOrDefault(); if (result != null && result.IsTakeOff) { throw new SystemException(string.Format("T{0:D9} Tidak Dapat Dibatalkan \r\n Telah Berangkat Dengan Manifest Nomor MT{1:D9}", selectedItem.Id, result.Id)); } if (result != null && !result.IsTakeOff) { throw new SystemException(string.Format("Batalkan T{0:D9} Dari Manifest Nomor MT{1:D8}", selectedItem.Id, result.Id)); } ActivedStatus active = ActivedStatus.Cancel; var updated = db.SMU.Update(O => new { O.ActiveStatus }, new smu { Id = selectedItem.Id, ActiveStatus = active }, O => O.Id == selectedItem.Id); if (updated) { selectedItem.ActiveStatus = ActivedStatus.Cancel; var his = User.GenerateHistory(selectedItem.Id, BussinesType.SMU, ChangeType.Cancel, alasan); if (!db.Histories.Insert(his)) { throw new SystemException("Gagal Diubah"); } trans.Commit(); } else { throw new SystemException("Gagal Diubah"); } } else { throw new SystemException("SMU Telah Batal"); } } catch (Exception ex) { trans.Rollback(); throw new SystemException(ex.Message); } } }
public Task <bool> SetCancelPTI(PTI selectedPTI, string alasan) { using (var db = new OcphDbContext()) { var trans = db.BeginTransaction(); try { var sp = string.Format("Ptistatus"); var cmd = db.CreateCommand(); cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = sp; cmd.Parameters.Add(new MySql.Data.MySqlClient.MySqlParameter("Id", selectedPTI.Id)); var dr = cmd.ExecuteReader(); var statuses = MappingProperties <PreFligtManifest> .MappingTable(dr); dr.Close(); if (statuses != null && statuses.Count > 0) { if (statuses.Count > 1) { foreach (var item in statuses) { var man = db.Manifest.Where(O => O.Id == item.Id).FirstOrDefault(); if (man != null && !man.IsTakeOff) { if (!db.ManifestDetail.Delete(O => O.SMUId == item.SMUId)) { throw new SystemException(string.Format("PTI Tidak Dapat Dibatalkan, Keluarkan SMU T{0} dari Manifest MT{1}", item.SMUId, item.Id)); } } else if (man != null && man.IsTakeOff) { throw new SystemException(string.Format("PTI Tidak Dapat Dibatalkan, \r\n PTI telah diberangkatkan dengan Manifest MT{0:D8} \r\n dan SMU T{1:D9}", item.Id, item.SMUId)); } if (item.SMUId > 0) { ActivedStatus ac = ActivedStatus.Cancel; if (!db.SMU.Update(O => new { O.ActiveStatus }, new smu { ActiveStatus = ac }, O => O.Id == item.SMUId)) { throw new SystemException("Tidak Dapat Membatalkan SMU"); } var his = User.GenerateHistory(item.SMUId, BussinesType.SMU, ChangeType.Cancel, "System Membatalkan SMU NO " + item.SMUId + " Karena PTI DI Batalkan : " + alasan); if (!db.Histories.Insert(his)) { throw new SystemException("Gagal Diubah"); } } } } else { var e = statuses.FirstOrDefault(); if (e != null && e.SMUId > 0 && e.Id > 0) { var man = db.Manifest.Where(O => O.Id == e.Id).FirstOrDefault(); if (man != null && man.IsTakeOff) { throw new SystemException(string.Format("PTI Tidak Dapat Dibatalkan, \r\n PTI telah diberangkatkan dengan Manifest MT{0:D8} \r\n dan SMU T{1:D9}", e.Id, e.SMUId)); } else if (man != null && !man.IsTakeOff) { if (db.ManifestDetail.Delete(O => O.SMUId == e.SMUId)) { var his = User.GenerateHistory(man.Id, BussinesType.Manifest, ChangeType.Update, "System Membatalkan SMU NO " + e.SMUId + " Dari Manifest No :" + man.Id + " Karena PTI DI Batalkan : " + alasan); if (!db.Histories.Insert(his)) { throw new SystemException("Gagal Diubah"); } ActivedStatus ac = ActivedStatus.Cancel; if (!db.SMU.Update(O => new { O.ActiveStatus }, new smu { ActiveStatus = ac }, O => O.Id == e.SMUId)) { throw new SystemException("Tidak Dapat Membatalkan SMU"); } his = User.GenerateHistory(e.SMUId, BussinesType.SMU, ChangeType.Cancel, "System Membatalkan SMU NO " + e.SMUId + " Karena PTI DI Batalkan : " + alasan); if (!db.Histories.Insert(his)) { throw new SystemException("Gagal Diubah"); } } } } } } ActivedStatus active = ActivedStatus.Cancel; var updated = db.PTI.Update(O => new { O.ActiveStatus }, new pti { Id = selectedPTI.Id, ActiveStatus = active }, O => O.Id == selectedPTI.Id); if (updated) { selectedPTI.ActiveStatus = ActivedStatus.Cancel; var his = User.GenerateHistory(selectedPTI.Id, BussinesType.PTI, ChangeType.Cancel, alasan); if (!db.Histories.Insert(his)) { throw new SystemException("Gagal Diubah"); } trans.Commit(); return(Task.FromResult(true)); } else { throw new SystemException("Gagal Diubah"); } } catch (Exception ex) { trans.Rollback(); throw new SystemException(ex.Message); } } }