private void dgPassenger_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
        {
            BeaCukai cukai = new BeaCukai();
            PAUPassenger passenger = e.Row.Item as PAUPassenger;

            if (passenger != null)
            {
                try
                {
                    var existing = (from p in cukai.PAUPassenger
                                    where
                                        /*p.Name == passenger.Name &&
                                        p.CDst == passenger.CDst &&
                                        p.FareClass == passenger.FareClass &&
                                        p.FirstName == passenger.FirstName &&
                                        p.FlightNo == passenger.FlightNo &&
                                        p.Gender == passenger.Gender &&
                                        p.LastName == passenger.LastName &&
                                        p.Nationality == passenger.Nationality &&
                                        p.Passport == passenger.Passport &&
                                        p.PNR == passenger.PNR &&
                                        p.SeatNo == passenger.SeatNo &&
                                        p.SEQNo == passenger.SEQNo &&
                                        p.Notes == passenger.Notes
                                        */
                                    p.ID == passenger.ID
                                    select p).First();

                    existing.Name = passenger.Name;
                    existing.BirthDate = passenger.BirthDate;
                    existing.CDst = passenger.CDst;
                    existing.Date = passenger.Date;
                    existing.FareClass = passenger.FareClass;
                    existing.FirstName = passenger.FirstName;
                    existing.FlightDate = passenger.FlightDate;
                    existing.FlightNo = passenger.FlightNo;
                    existing.Gender = passenger.Gender;
                    existing.LastName = passenger.LastName;
                    existing.Nationality = passenger.Nationality;
                    existing.Passport = passenger.Passport;
                    existing.PNR = passenger.PNR;
                    existing.SeatNo = passenger.SeatNo;
                    existing.SEQNo = passenger.SEQNo;
                    existing.Notes = passenger.Notes;
                    existing.Picture = passenger.Picture;
                }
                catch (Exception)
                {
                    return;
                }

                cukai.SubmitChanges();
            }


        }
Beispiel #2
0
        private void dgNationality_RowEditEnding(object sender, Microsoft.Windows.Controls.DataGridRowEditEndingEventArgs e)
        {
            BeaCukai cukai = new BeaCukai();
            NationalityAttention nationality = e.Row.Item as NationalityAttention;

            if (nationality != null)
            {
                var existing = (from p in cukai.NationalityAttention where p.ID == nationality.ID select p).First();

                existing.Nationality = nationality.Nationality;

                cukai.SubmitChanges();
            }


        }
        private void ButtonDropDown_Click(object sender, RoutedEventArgs e)
        {
            if (tbNationality.Text.Trim() == "")
            {
                MessageBox.Show("Isikan Nationality (WN)", "Invalid", MessageBoxButton.OK);
                return;
            }

            DialogResult = true;

            BeaCukai cukai = new BeaCukai();
            NationalityAttention att = new NationalityAttention();
            att.Nationality = tbNationality.Text;

            cukai.NationalityAttention.InsertOnSubmit(att);
            cukai.SubmitChanges();
        }
Beispiel #4
0
        private void dgDPO_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
        {
            BeaCukai cukai = new BeaCukai();
            PAUDPO dpo = e.Row.Item as PAUDPO;

            if (dpo != null)
            {
                var existing = (from p in cukai.PAUDPO where p.ID == dpo.ID select p).First();

                existing.Name = dpo.Name;
                existing.FirstName = dpo.FirstName;
                existing.LastName = dpo.LastName;
                existing.Passport = dpo.Passport;

                cukai.SubmitChanges();
            }

        }
Beispiel #5
0
        private void ButtonDropDown_Click(object sender, RoutedEventArgs e)
        {
            if (tbFirstName.Text.Trim() == "")
            {
                MessageBox.Show("Isikan First Name", "Invalid", MessageBoxButton.OK);
                return;
            }

            DialogResult = true;

            BeaCukai cukai = new BeaCukai();
            PAUDPO dpo = new PAUDPO();
            dpo.FirstName = FirstName;
            dpo.LastName = LastName;
            dpo.Passport = Passport;

            cukai.PAUDPO.InsertOnSubmit(dpo);
            cukai.SubmitChanges();
            
        }
        private void UpdatePassenger(PAUPassenger passenger)
        {
            BeaCukai cukai = new BeaCukai();

            if (passenger != null)
            {
                try
                {
                    var existing = (from p in cukai.PAUPassenger
                                    where
                                        p.ID == passenger.ID
                                    select p).First();

                    existing.Name = passenger.Name;
                    existing.BirthDate = passenger.BirthDate;
                    existing.CDst = passenger.CDst;
                    existing.Date = passenger.Date;
                    existing.FareClass = passenger.FareClass;
                    existing.FirstName = passenger.FirstName;
                    existing.FlightDate = passenger.FlightDate;
                    existing.FlightNo = passenger.FlightNo;
                    existing.Gender = passenger.Gender;
                    existing.LastName = passenger.LastName;
                    existing.Nationality = passenger.Nationality;
                    existing.Passport = passenger.Passport;
                    existing.PNR = passenger.PNR;
                    existing.SeatNo = passenger.SeatNo;
                    existing.SEQNo = passenger.SEQNo;
                    existing.Notes = passenger.Notes;
                    existing.Picture = passenger.Picture;
                }
                catch (Exception)
                {
                    return;
                }

                cukai.SubmitChanges();
            }
        }
Beispiel #7
0
 private void AddWNAttention(object sender, ExecutedRoutedEventArgs e)
 {
     winAddWNAttention win = new winAddWNAttention();
     if (win.ShowDialog().Value)
     {
         BeaCukai cukai = new BeaCukai();
         ResetNationalityAttentions(from s in cukai.NationalityAttention select s);
     }
 }
Beispiel #8
0
 private void AddDPOData(object sender, ExecutedRoutedEventArgs e)
 {
     winAddDPOData win = new winAddDPOData();
     if (win.ShowDialog().Value)
     {
         BeaCukai cukai = new BeaCukai();
         ResetDPOS(from s in cukai.PAUDPO select s);
     }
 }
Beispiel #9
0
        private void Passengers_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == NotifyCollectionChangedAction.Remove)
            {
                //if (MessageBox.Show("Are you sure you want to delete the record(s)?", "Warning", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    BeaCukai cukai = new BeaCukai();

                    foreach (PAUPassenger passenger in e.OldItems)
                    {
                        cukai.PAUPassenger.DeleteOnSubmit(passenger);
                    }
                    cukai.SubmitChanges();
                }
            }
        }
Beispiel #10
0
        private void Nationalities_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == NotifyCollectionChangedAction.Remove)
            {
                BeaCukai cukai = new BeaCukai();

                foreach (NationalityAttention att in e.OldItems)
                {
                    cukai.NationalityAttention.DeleteOnSubmit(att);
                }
                cukai.SubmitChanges();
            }
        }
Beispiel #11
0
        public void FilterPassengers()
        {
            PagingAction = ePagingAction.Search;

            BeaCukai cukai = new BeaCukai();

            System.Linq.Expressions.Expression<Func<PAUPassenger, bool>> expr = null;

            if (SearchSelectedIndex == 0)
            {
                expr = LogicAnd();
            }
            else
            {
                expr = LogicOr();
            }

            IQueryable<PAUPassenger> query = null;
            if (expr != null)
            {
                query = (from p in cukai.PAUPassenger select p).Where(expr);
            }

            if (null != query)
            {
                OffsetPassengers = 0;
                TotalPassengersCount = query.Distinct().Count();
                CurrentPassengerPage = 1;

                NotifyPropertyChanged("TotalPassengerPage");
                NotifyPropertyChanged("TotalPassengersCount");

                ResetPassengers(query.Take(RowPerPage));
            }
        }
Beispiel #12
0
        public void FilterPassengersPaged(int page)
        {
            /*
            BeaCukai cukai = new BeaCukai();
            var queryPassengers = (from p in cukai.PAUPassenger select p);

            OffsetPassengers = (page - 1) * RowPerPage;
            CurrentPassengerPage = page;

            ResetPassengers(queryPassengers.Skip(OffsetPassengers).Take(RowPerPage));*/

            BeaCukai cukai = new BeaCukai();

            System.Linq.Expressions.Expression<Func<PAUPassenger, bool>> expr = null;

            if (SearchSelectedIndex == 0)
            {
                expr = LogicAnd();
            }
            else
            {
                expr = LogicOr();
            }

            IQueryable<PAUPassenger> query = null;
            if (expr != null)
            {
                query = (from p in cukai.PAUPassenger select p).Where(expr);
            }

            if (null != query)
            {
                OffsetPassengers = (page - 1) * RowPerPage;
                CurrentPassengerPage = page;

                ResetPassengers(query.Skip(OffsetPassengers).Take(RowPerPage));
            }
        }
Beispiel #13
0
        public void LoadPassengers(int page)
        {
            BeaCukai cukai = new BeaCukai();

            var queryPassengers = (from p in cukai.PAUPassenger select p);

            OffsetPassengers = (page - 1) * RowPerPage;
            CurrentPassengerPage = page;

            ResetPassengers(queryPassengers.Skip(OffsetPassengers).Take(RowPerPage));
        }
Beispiel #14
0
        private void ReadAirAsiaDetails(BackgroundWorker worker, string filename, out DateTime flightDate, out string flightNo, out List<PAUPassenger> passangers)
        {
            flightDate = DateTime.Now;
            flightNo = "";
            passangers = new List<PAUPassenger>();

            using (StreamReader reader = new StreamReader(filename))
            {
                char[] separator = { ',', '/' };
                string line;

                string fno = "";
                DateTime flight_date = DateTime.MinValue;
                string num = "", pnr = "", last_name = "", first_name = "";
                string gender = "", dob = "", nat = "";

                bool start = false;
                bool parse = false;
               // bool found_first = false;

                BeaCukai cukai = new BeaCukai();
                
                int lineNo = 1;
                while ((line = reader.ReadLine()) != null)
                {
                    if (worker != null)
                    {
                        worker.ReportProgress(lineNo, line);
                    }
                    lineNo++;

                    if (line.Contains("Pax Verification"))
                    {
                        start = true;
                        continue;
                    }

                    if (line.Contains("------------------") && start)
                    {
                        parse = true;
                        continue;
                    }

                    if (line.Trim() == "")
                    {
                        parse = false;
                    }

                    if (line.Contains("Flight") && line.Contains("Date:"))
                    {
                        int flightPos = line.IndexOf("Flight#:") + 8;
                        int datePos = line.IndexOf("Date:") + 5;
                        fno = line.Substring(flightPos, 6).Trim();
                        string fdate = line.Substring(datePos, 14).Trim();
                        string[] dates = fdate.Split(separator);
                        if (dates.Count() > 0)
                        {
                            ConvertPAXStringToDate(dates[0], out flightDate);
                            ConvertPAXStringToDate(dates[0], out flight_date);
                        }
                        flightNo = fno;
                        continue;
                    }

                    if (parse)
                    {
                        
                        int number = -1;
                        try
                        {
                            number = Int32.Parse(line.Substring(0, 3).Trim());
                        }
                        catch (Exception)
                        {
                            number = -1;
                        }

                        if (number > -1)
                        {
                            pnr = line.Substring(5, 6).Trim();
                            last_name = line.Substring(12, 25).Trim();
                            first_name = line.Substring(37, line.Length - 37).Trim();
                            num = number.ToString();

                            if ((line = reader.ReadLine()) != null)
                            {

                                //found_first = false;
                                char[] sep = { ' ' };
                                //string[] datas = line.Split(sep);
                                gender = line.Substring(11, 2).Trim();
                                dob = line.Substring(13, 6).Trim();
                                nat = line.Substring(22, 3).Trim();
                                //MessageBox.Show(line+#13);
                                PAUPassenger pass = null;
                                try
                                {
                                     pass = (from p in cukai.PAUPassenger select p).Where(p => p.FirstName.ToLower() == first_name.ToLower()).
                                                Where(p => p.LastName.ToLower() == last_name.ToLower()).
                                                Where(p => p.FlightNo.ToLower() == fno.ToLower()).
                                                Where(p => p.FlightDate.Value.Date.Day == flight_date.Date.Day && p.FlightDate.Value.Date.Month == flight_date.Date.Month && 
                                                           p.FlightDate.Value.Date.Year == flight_date.Date.Year).First();
                                }
                                catch (Exception ex)
                                {
                                    System.Diagnostics.Trace.TraceError("MainController.ReadAirAsiaDetails: Rec No. " + num + "message=" + ex.Message);
                                    continue;
                                }
                                
                                if (pass != null)
                                {
                                    pass.PNR = pnr;
                                    pass.Gender = gender;
                                    pass.Nationality = nat;
                                    pass.BirthDate = ConvertMySqlToDate(dob);

                                    if (UpdateRecord(pass) == 0)
                                    {
                                        return;
                                    }

                                    passangers.Add(pass);
                                    
                                    /*MessageBox.Show(num + "," + pnr + ",'" + 
                                        last_name + "','" + first_name + "'" + "," + 
                                        gender + "," + 
                                        dob + "," + 
                                        nat);
                                    */
                                }
                            }
                        }


                    }

                }
            }
        }
Beispiel #15
0
        private void ProcessManifestApis(string filename)
        {
            BackgroundWorker worker = new BackgroundWorker();
            worker.WorkerReportsProgress = true;
            worker.WorkerSupportsCancellation = true;
            
            _isReady = false;
            
            worker.DoWork += (s, e) =>
                {
                    string no;
                    DateTime date;
                    List<PAUPassenger> pass;
                    ReadAirAsiaDetails(worker, filename, out date, out no, out pass);
                    worker.ReportProgress(-1, new PAXObj(no, date, pass));
                };

            worker.ProgressChanged += (s, e) =>
                {
                    if (e.ProgressPercentage > 0)
                    {
                        string line = e.UserState as string;
                        StatusText = "Processing Line " + e.ProgressPercentage + " => " + line;
                    }
                    else  if (e.ProgressPercentage == -1)
                    {
                        PAXObj obj = e.UserState as PAXObj;

                        BeaCukai cukai = new BeaCukai();

                        IEnumerable<PAUPassenger> pass = from p in cukai.PAUPassenger
                                                         where
                                                           (p.FlightNo.ToLower() == obj.flightNo.ToLower() &&
                                                            p.FlightDate.Value.Date.Day == obj.flightDate.Date.Day &&
                                                            p.FlightDate.Value.Date.Month == obj.flightDate.Date.Month &&
                                                            p.FlightDate.Value.Date.Year == obj.flightDate.Date.Year)
                                                         select p;


                        ImportedPassengers = new ObservableCollection<PAUPassenger>(pass);

                        DataGrid importGrid;
                        SpawnNewDockWindow("Recent Import", out importGrid);

                        if (importGrid != null)
                        {
                            importGrid.ItemsSource = CollectionViewSource.GetDefaultView(ImportedPassengers);
                        }

                        ResetDatabases();

                        MessageBox.Show("Import Data Selesai", "Infomasi", MessageBoxButton.OK, MessageBoxImage.Exclamation);

                        _isReady = true;
                        StatusText = "Ready";
                    }
                    
                };

            worker.RunWorkerAsync();
        }
Beispiel #16
0
        private void ProcessManifestPAX(string filename)
        {
            BackgroundWorker worker = new BackgroundWorker();
            worker.WorkerReportsProgress = true;
            worker.WorkerSupportsCancellation = true;
            worker.DoWork += (s, e) =>
                {
                    BackgroundWorker sender = s as BackgroundWorker;
                    DateTime date;
                    string no;
                    List<PAUPassenger> pass;
                    ReadAirAsia(sender, filename, out date, out no, out pass);
                    sender.ReportProgress(-1, new PAXObj(no, date, pass));
                };

            worker.ProgressChanged += (s, e) =>
                {
                    if (e.ProgressPercentage >= 0)
                    {
                        StatusText = "Processing line: " + e.ProgressPercentage + " => " + (e.UserState as string);
                    }
                    else if (e.ProgressPercentage == -1)
                    {
                        PAXObj obj = e.UserState as PAXObj;
                        DateTime flightDate = obj.flightDate;
                        string flightNo = obj.flightNo;
                        List<PAUPassenger> passengers = obj.passengers;

                        DataGrid importGrid;
                        SpawnNewDockWindow("Recent Import", out importGrid);

                        filename = Path.GetFileName(filename);

                        StatusText = "Please wait... import process might take a while...";

                        if (importGrid != null)
                        {
                            BeaCukai cukai = new BeaCukai();

                            if (passengers.Count > 0)
                            {
                                foreach (PAUPassenger passenger in passengers)
                                {
                                    int count = (from p in cukai.PAUPassenger select p).Where(p => p.FirstName.ToLower() == passenger.FirstName.ToLower()).
                                        Where(p => p.LastName.ToLower() == passenger.LastName.ToLower()).
                                        Where(p => p.FlightNo.ToLower() == passenger.FlightNo.ToLower()).
                                        Where(p => p.FlightDate.Value.Date.Day == passenger.FlightDate.Value.Date.Day && p.FlightDate.Value.Date.Month == passenger.FlightDate.Value.Date.Month &&
                                                   p.FlightDate.Value.Date.Year == passenger.FlightDate.Value.Date.Year).
                                        Distinct().Count();

                                    if (count == 0)
                                    {
                                        cukai.PAUPassenger.InsertOnSubmit(passenger);
                                    }
                                }
                                cukai.SubmitChanges();
                            }

                            ImportedPassengers = new ObservableCollection<PAUPassenger>(passengers);
                            ObservableCollection<PAUPassenger> attentions = new ObservableCollection<PAUPassenger>();
                            ObservableCollection<PAUPassenger> dpos = new ObservableCollection<PAUPassenger>();
                            ObservableCollection<PAUPassenger> wnAttentions = new ObservableCollection<PAUPassenger>();

                            int index = 1;
                            foreach (PAUPassenger p in ImportedPassengers)
                            {
                                TimeSpan span = p.FlightDate.Value.Subtract(p.Date.Value);
                                if (span <= TimeSpan.FromDays(BookingDateRange))
                                {
                                    attentions.Add(p);
                                }

                                p.No = index++;

                                int count = (from dpo in cukai.PAUDPO
                                             where
                                             (p.FirstName.ToLower().Contains(dpo.FirstName.ToLower()) &&
                                              p.LastName.ToLower().Contains(dpo.LastName.ToLower()))
                                             select dpo).Count();

                                if (count > 0)
                                {
                                    dpos.Add(p);
                                }

                                count = (from nat in cukai.NationalityAttention
                                         where
                                         (nat.Nationality.ToLower() == p.Nationality.ToLower())
                                         select nat).Distinct().Count();

                                if (count > 0)
                                {
                                    if (wnAttentions.Contains(p) == false)
                                    {
                                        wnAttentions.Add(p);
                                    }
                                }
                            }

                            importGrid.ItemsSource = CollectionViewSource.GetDefaultView(ImportedPassengers);

                            if (attentions.Count > 0)
                            {
                                DataGrid attentionGrid;
                                SpawnNewDockWindow(string.Format("Attentions ({0})", filename), out attentionGrid);
                                if (attentionGrid != null)
                                {
                                    attentionGrid.ItemsSource = CollectionViewSource.GetDefaultView(attentions);
                                }
                            }

                            if (wnAttentions.Count > 0)
                            {
                                DataGrid wnAttGrid;
                                SpawnNewDockWindow(string.Format("WN Att ({0})", filename), out wnAttGrid);
                                if (wnAttGrid != null)
                                {
                                    wnAttGrid.ItemsSource = CollectionViewSource.GetDefaultView(wnAttentions);
                                }
                            }

                            if (dpos.Count > 0)
                            {
                                DataGrid dpoGrid;
                                SpawnNewDockWindow(string.Format("Name(s) On DPO ({0})", filename), out dpoGrid);
                                if (dpoGrid != null)
                                {
                                    dpoGrid.ItemsSource = CollectionViewSource.GetDefaultView(dpos);
                                }
                            }

                            ResetDatabases();

                            MessageBox.Show("Import Data Selesai", "Infomasi", MessageBoxButton.OK, MessageBoxImage.Exclamation);

                            _isReady = true;
                            StatusText = "Ready";
                        }
                    }
                };

            _isReady = false;

            worker.RunWorkerAsync();

        }
Beispiel #17
0
        public void ResetDatabases()
        {
            PagingAction = ePagingAction.Passengers;

            BeaCukai cukai = new BeaCukai();

            var queryPassengers = (from p in cukai.PAUPassenger select p);
            var queryDPOS = (from d in cukai.PAUDPO select d);
            var nationality = (from d in cukai.NationalityAttention select d);

            OffsetPassengers = 0;
            TotalPassengersCount = queryPassengers.Distinct().Count();
            CurrentPassengerPage = 1;

            NotifyPropertyChanged("TotalPassengerPage");
            NotifyPropertyChanged("TotalPassengersCount");

            ResetPassengers(queryPassengers.Take(RowPerPage));
            ResetDPOS(queryDPOS);
            ResetNationalityAttentions(nationality);
        }
Beispiel #18
0
        private void dgPassenger_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (cbxEdit.IsChecked == false)
            {
                PAUPassenger pass = DataGrid.CurrentItem as PAUPassenger;

                if (pass != null)
                {
                    winPopupPassenger popup = new winPopupPassenger();

                    BeaCukai cukai = new BeaCukai();
                    var items = from p in cukai.PAUPassenger 
                                where
                                    (p.FirstName.ToUpper().Contains(pass.FirstName.ToUpper()) &&
                                     p.LastName.ToUpper().Contains(pass.LastName.ToUpper()))
                                select p;

                    ObservableCollection<PAUPassenger> history = new ObservableCollection<PAUPassenger>(items.ToList());
                    popup.DataGrid.ItemsSource = history;

                    popup.ShowDialog();
                }
            }
        }