private void SaveAction(object obj)
        {
            try
            {
                if (Helpers.ShowMessage("Yakin Menyimpan Data ? ", "Pilih", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    if (IsBusy)
                    {
                        return;
                    }
                    IsBusy = true;
                    pti model = (pti)this;
                    model.FromId = SettingConfiguration.GetIntValue("CityId");
                    if (IsListValid(model.Collies))
                    {
                        context.SaveChange(model);
                        Saved = true;
                        PTI p = new PTI
                        {
                            ShiperID     = this.ShiperID,
                            RecieverId   = this.RecieverId,
                            CreatedDate  = this.CreatedDate,
                            Id           = this.Id,
                            PayType      = this.PayType,
                            Pcs          = this.Collies.Sum(O => O.Pcs),
                            Weight       = this.Collies.Sum(O => O.Weight),
                            RecieverName = this.Reciever.Name,
                            ShiperName   = this.Shiper.Name,
                            Biaya        = this.Collies.Sum(O => O.Biaya),
                            User         = Authorization.User.Name
                        };
                        ParentSource.Add(p);



                        Helpers.ShowMessage("PTI Berhasil Disimpan");
                        if (Helpers.ShowMessage("Input PTI Baru ? ", "Pilih", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                        {
                            SetNew();
                        }
                        else
                        {
                            WindowClose();
                        }
                    }
                    else
                    {
                        Helpers.ShowErrorMessage("Item Data Tidak Lengkap, Periksa Kembali");
                    }
                }
            }
            catch (Exception ex)
            {
                MyMessage.Show(ex.Message, "Error", MessageBoxButton.OK);
            }
            finally
            {
                IsBusy = false;
            }
        }
Beispiel #2
0
 public Task <List <collies> > GetDetailOfPTI(PTI selected)
 {
     using (var db = new OcphDbContext())
     {
         var result = db.Collies.Where(O => O.PtiId == selected.Id).ToList();
         return(Task.FromResult(result));
     }
 }
        private async void LoadData(PTI ptiSelected)
        {
            var context = new DataAccessLayer.Bussines.PtiBussines();
            var res     = await context.GetColliesOutOfSMU(ptiSelected.Id);

            Source.Clear();
            foreach (var item in res)
            {
                Source.Add(item);
            }
            SourceView.Refresh();
        }
 public AddNewSMUViewModel(PTI ptiSelected)
 {
     MyTitle          = "SMU BARU";
     this.PTISelected = ptiSelected;
     SaveCommand      = new CommandHandler {
         CanExecuteAction = SaveValidate, ExecuteAction = SaveAction
     };
     CancelCommand = new CommandHandler {
         CanExecuteAction = x => true, ExecuteAction = x => WindowClose()
     };
     Source     = new ObservableCollection <collies>();
     SourceView = (CollectionView)CollectionViewSource.GetDefaultView(Source);
     LoadData(ptiSelected);
 }
Beispiel #5
0
        public async void ShowDetails(PTI selected)
        {
            var res = await ptiContext.GetDetailOfPTI(selected);

            selected.Details.Clear();

            foreach (var item in res)
            {
                selected.Details.Add(item);
            }

            if (selected.DetailView == null)
            {
                selected.DetailView = (CollectionView)CollectionViewSource.GetDefaultView(selected.Details);
            }

            GridWidth = new GridLength(30, GridUnitType.Star);
        }
Beispiel #6
0
        public void AddNewCollyItem(PTI selectedPTI, collies selectedRow)
        {
            using (var db = new OcphDbContext())
            {
                var trans = db.BeginTransaction();
                try
                {
                    selectedRow.Id = db.Collies.InsertAndGetLastID(selectedRow);
                    if (selectedRow.Id > 0)
                    {
                        var item = selectedRow;
                        var note = string.Format(@"Menambah Item Baru: \n\r {0}-{1}-{2}-{3}",
                                                 item.Content, item.Pcs, item.Weight, item.Price);
                        if (!db.PTI.Update(O => new { O.OnSMU }, new pti {
                            OnSMU = false
                        }, O => O.Id == selectedPTI.Id))
                        {
                            throw new SystemException("Data Tidak Tersimpan");
                        }

                        var his = User.GenerateHistory(selectedRow.PtiId, BussinesType.PTI, ChangeType.Update, note);
                        if (db.Histories.Insert(his))
                        {
                            trans.Commit();
                        }
                        else
                        {
                            throw new SystemException("Data Tidak Tersimpan");
                        }
                    }
                    else
                    {
                        throw new SystemException("Data Tidak Tersimpan");
                    }
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw new SystemException(ex.Message);
                }
            }
        }
Beispiel #7
0
        public Task <List <History> > GetPTIHistory(PTI selectedPTI)
        {
            List <History> list = null;

            try
            {
                using (var db = new OcphDbContext())
                {
                    var cmd = db.CreateCommand();
                    cmd.CommandText = "PTIHistories";
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.Add(new MySqlParameter("id", selectedPTI.Id));
                    var reader = cmd.ExecuteReader();
                    list = MappingProperties <History> .MappingTable(reader);

                    return(Task.FromResult(list));
                }
            }
            catch (Exception)
            {
                return(Task.FromResult(list));
            }
        }
Beispiel #8
0
        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);
                }
            }
        }
Beispiel #9
0
        public Task <Tuple <SMU, SMU> > SplitSMU(SMU smuSelected, ObservableCollection <SMUDetail> originSource, ObservableCollection <SMUDetail> destinationSource)
        {
            using (var db = new OcphDbContext())
            {
                var trans = db.BeginTransaction();
                try
                {
                    //remove selected Move
                    foreach (var item in destinationSource.ToList())
                    {
                        if (!db.SMUDetails.Delete(O => O.SMUId == item.Id && O.colliesId == item.ColliesId))
                        {
                            throw new SystemException("Smu Gagal di Split");
                        }
                    }
                    var firstColly = originSource.FirstOrDefault();
                    var ptiModel   = new PTI {
                        Id = firstColly.PTIId, ShiperID = smuSelected.ShiperId, RecieverId = smuSelected.RecieverId, PayType = firstColly.PayType
                    };

                    var source = new ObservableCollection <collies>();
                    foreach (var item in destinationSource)
                    {
                        source.Add(new collies {
                            Id = item.ColliesId, Content = item.Content, IsSended = true, Pcs = item.Pcs, Price = item.Price, PtiId = item.PTIId, Weight = item.Weight
                        });
                    }

                    smuSelected.Pcs    = originSource.Sum(O => O.Pcs);
                    smuSelected.Weight = originSource.Sum(O => O.Weight);
                    smuSelected.Biaya  = originSource.Sum(O => O.Biaya);

                    //SUMU
                    var smudata = new smu {
                        PTIId = smuSelected.PTIId, CreatedDate = DateTime.Now
                    };
                    smudata.Id = db.SMU.InsertAndGetLastID(smudata);
                    if (smudata.Id <= 0)
                    {
                        throw new SystemException("Data Tidak Tersimpan");
                    }

                    foreach (var item in source.Where(O => O.IsSended))
                    {
                        var data = new smudetails {
                            colliesId = item.Id, SMUId = smudata.Id
                        };
                        if (!db.SMUDetails.Insert(data))
                        {
                            throw new SystemException("Data Tidak Tersimpan");
                        }
                    }


                    var memo = string.Format("Split Dari SMU T{0:D9}", smuSelected.Id);

                    var history = User.GenerateHistory(smudata.Id, BussinesType.SMU, ChangeType.Create, memo);
                    if (!db.Histories.Insert(history))
                    {
                        throw new SystemException("Gagal Simpan Data");
                    }

                    SMU sm = new SMU
                    {
                        CreatedDate  = smuSelected.CreatedDate,
                        Id           = smudata.Id,
                        IsSended     = false,
                        Pcs          = source.Sum(O => O.Pcs),
                        RecieverId   = smuSelected.RecieverId,
                        RecieverName = smuSelected.RecieverName,
                        ShiperId     = ptiModel.ShiperID,
                        ShiperName   = smuSelected.ShiperName,
                        Weight       = source.Sum(O => O.Weight),
                        Biaya        = source.Sum(O => O.Biaya)
                    };

                    //
                    trans.Commit();
                    return(Task.FromResult(new Tuple <SMU, SMU>(smuSelected, sm)));
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw new SystemException(ex.Message);
                }
            }
        }
Beispiel #10
0
        public Task <SMU> CreateNewSMU(PTI pTISelected, ObservableCollection <collies> source)
        {
            using (var db = new OcphDbContext())
            {
                var date  = DateTime.Now;
                var trans = db.BeginTransaction();
                try
                {
                    var smudata = new smu {
                        PTIId = pTISelected.Id, CreatedDate = pTISelected.CreatedDate
                    };
                    smudata.Id = db.SMU.InsertAndGetLastID(smudata);
                    if (smudata.Id <= 0)
                    {
                        throw new SystemException("Data Tidak Tersimpan");
                    }

                    foreach (var item in source.Where(O => O.IsSended))
                    {
                        var data = new smudetails {
                            colliesId = item.Id, SMUId = smudata.Id
                        };
                        if (!db.SMUDetails.Insert(data))
                        {
                            throw new SystemException("Data Tidak Tersimpan");
                        }
                    }


                    if (source.Where(O => !O.IsSended).Count() <= 0)
                    {
                        if (!db.PTI.Update(O => new { O.OnSMU }, new pti {
                            Id = pTISelected.Id, OnSMU = true
                        }, O => O.Id == pTISelected.Id))
                        {
                            throw new SystemException("Data Tidak Tersimpan");
                        }
                        else
                        {
                            pTISelected.OnSMU = true;
                        }

                        var h = User.GenerateHistory(pTISelected.Id, BussinesType.PTI, ChangeType.Update, string.Format("Dibuatkan SMU dengan Nomor T{0:D9}", smudata.Id));
                        if (!db.Histories.Insert(h))
                        {
                            throw new SystemException("Gagal Simpan Data");
                        }
                    }



                    var history = User.GenerateHistory(smudata.Id, BussinesType.SMU, ChangeType.Create, "");
                    if (!db.Histories.Insert(history))
                    {
                        throw new SystemException("Gagal Simpan Data");
                    }

                    SMU sm = new SMU
                    {
                        CreatedDate  = date,
                        Id           = smudata.Id,
                        IsSended     = false,
                        Pcs          = source.Sum(O => O.Pcs),
                        RecieverId   = pTISelected.RecieverId,
                        RecieverName = pTISelected.RecieverName,
                        ShiperId     = pTISelected.ShiperID,
                        ShiperName   = pTISelected.ShiperName,
                        Weight       = source.Sum(O => O.Weight),
                        Biaya        = source.Sum(O => O.Biaya)
                    };

                    trans.Commit();
                    return(Task.FromResult(sm));
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    throw new SystemException(ex.Message);
                }
            }
        }