using Acr.UserDialogs; using Android.Widget; using İdaServis.Model; using İdaServis.Services; using İdaServis.View; using Rg.Plugins.Popup.Extensions; using Rg.Plugins.Popup.Services; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using Xamarin.Essentials; using Xamarin.Forms; using ZXing; using static Android.Content.ClipData; using static Android.Provider.Telephony.Mms; namespace İdaServis.ViewModels { public class DepoAktarımPageViewModel : INotifyPropertyChanged { ServiceManager serviceManager = new ServiceManager(); string selectedDB = Preferences.Get("selectedDB", ""); ObservableCollection myDepoDetayList = new ObservableCollection(); private ObservableCollection _depoList; private ObservableCollection _SorumlulukMerkeziRoot; private ObservableCollection _ProjeRoot; private string belgeNo = ""; ICommand searchCommand, goBarkodPage, openCariCommand, searchCariCommand, selectCariCommand; string str1 = ""; string evrakSira; string secilenCari = ""; string _selectedTarih; bool evrakSeriSiraSelected = false; bool depoTarihleriUygun = false; bool kaynakDepoSelected = false; bool hedefDepoSelected = false; bool sorumlulukSelected = false; bool projeSelected = false; bool cariKodSelected = false; bool isEmriKoduSelected = false; bool personelKoduSelected = false; bool belgeNoSelected; DateTime dateKaynak; DateTime dateHedef; private bool belgeNoZorunluluk; private bool kaynakDepoZorunluluk; private bool hedefDepoZorunluluk; private bool projeZorunluluk; private bool sorumlulukMZorunluluk; private bool cariKodZorunluluk; private bool isEmriZorunluluk ; private bool personelKoduZorunluluk ; private bool selectedCariGorunum; private bool carilisteClose; private DateTime _mDate = DateTime.Now; public DateTime MDate { get { return _mDate; } set { _mDate = value; OnPropertyChanged(nameof(_mDate)); Console.WriteLine(_mDate); string output = _mDate.ToString("yyyyMMdd"); Preferences.Set("selectedTarih", output); } } public string BelgeNo { get => belgeNo; set { belgeNo = value; Preferences.Set("selectedBelgeNo", belgeNo); } } public bool BelgeNoZorunluluk { get => belgeNoZorunluluk; set { belgeNoZorunluluk = value; OnPropertyChanged(); } } public bool KaynakDepoZorunluluk { get => kaynakDepoZorunluluk; set { kaynakDepoZorunluluk = value; OnPropertyChanged(); } } public bool HedefDepoZorunluluk { get => hedefDepoZorunluluk; set { hedefDepoZorunluluk = value; OnPropertyChanged(); } } public bool ProjeZorunluluk { get => projeZorunluluk; set { projeZorunluluk = value; OnPropertyChanged(); } } public bool SorumlulukMZorunluluk { get => sorumlulukMZorunluluk; set { sorumlulukMZorunluluk = value; OnPropertyChanged(); } } public bool CariKodZorunluluk { get => cariKodZorunluluk; set { cariKodZorunluluk = value; OnPropertyChanged(); } } public bool IsEmriZorunluluk { get => isEmriZorunluluk; set { isEmriZorunluluk = value; OnPropertyChanged(); } } public bool PersonelKoduZorunluluk { get => personelKoduZorunluluk; set { personelKoduZorunluluk = value; OnPropertyChanged(); } } public string SelectedTarih { get => _selectedTarih; set => _selectedTarih = value; } public bool SorumlulukSelected { get => sorumlulukSelected; set { sorumlulukSelected = value; OnPropertyChanged(); } } public bool ProjeSelected { get => projeSelected; set { projeSelected = value; OnPropertyChanged(); } } public bool CariKodSelected { get => cariKodSelected; set { cariKodSelected = value; OnPropertyChanged(); } } public bool IsEmriKoduSelected { get => isEmriKoduSelected; set { isEmriKoduSelected = value; OnPropertyChanged(); } } public bool PersonelKoduSelected { get => personelKoduSelected; set { personelKoduSelected = value; OnPropertyChanged(); } } public bool BelgeNoSelected { get => belgeNoSelected; set { belgeNoSelected = value; OnPropertyChanged(); } } public bool SelectedCariGorunum { get => selectedCariGorunum; set { selectedCariGorunum = value; OnPropertyChanged(); } } // public string SearchCari { get => searchCari; set { searchCari = value; Console.WriteLine(searchCari); OnPropertyChanged(); } } public bool CarilisteClose { get => carilisteClose; set { carilisteClose = value; //if (carilisteClose== true) { changeCariText(); } OnPropertyChanged(); } } private string _searchCari; public string SearchCari { get { if (_searchCari == null) _searchCari = string.Empty; return _searchCari; } set { _searchCari = value; OnPropertyChanged(); } } public INavigation Navigation { get; set; } public event PropertyChangedEventHandler PropertyChanged; public DepoAktarımPageViewModel() { SearchCommand = new Command(searchSomething); GoBarkodPage = new Command(goToBarkodPage); OpenCariCommand = new Command(cariPopUpOpen); //SearchCariCommand = new Command(searchCari); SelectCariCommand = new Command(changeCariText); GetDepoDetay(selectedDB); getDepoList(selectedDB); getSorumlulukList(selectedDB); getProjeRoot(selectedDB); selectMDate(); searchSomething("MERT"); _title = ""; FillIsEmriList(selectedDB); FillPersoneList(selectedDB); } public ObservableCollection SorumlulukMerkeziRoot { get { if (_SorumlulukMerkeziRoot == null) _SorumlulukMerkeziRoot = new ObservableCollection(); return _SorumlulukMerkeziRoot; } set => _SorumlulukMerkeziRoot = value; } private SorumlulukMerkeziRoot _SelectedSorumlulukMerkezi; public SorumlulukMerkeziRoot SelectedSorumlulukMerkezi { get { return _SelectedSorumlulukMerkezi; } set { _SelectedSorumlulukMerkezi = value; Preferences.Set("sorumlulukKodSelected", "1"); Preferences.Set("sorumlulukKod", _SelectedSorumlulukMerkezi.KODU); } } public async void getSorumlulukList(string db) { try { var myServiceCall = await serviceManager.getSorumlulukMerkeziList(db); foreach (var response in myServiceCall) { var adi = response.ADI; var kodu = response.KODU; var m = $"{kodu} {adi}"; SorumlulukMerkeziRoot s = new SorumlulukMerkeziRoot(m, response.KODU); SorumlulukMerkeziRoot.Add(s); } Console.WriteLine("SorumlulukMerkeziRoot.Count :" + SorumlulukMerkeziRoot.Count); } catch (Exception ex) { } } public async void getProjeRoot(string db) { try { var myServiceCall = await serviceManager.getProjeList(db); foreach (var response in myServiceCall) { var adi = response.ADI; var kodu = response.KODU; var m = $"{kodu} {adi}"; ProjeRoot p = new ProjeRoot(m, response.KODU); ProjeRoot.Add(p); } Console.WriteLine("ProjeRoot.Count :" + ProjeRoot.Count); } catch (Exception ex) { } } public ObservableCollection ProjeRoot { get { if (_ProjeRoot == null) _ProjeRoot = new ObservableCollection(); return _ProjeRoot; } set => _ProjeRoot = value; } private ProjeRoot _SelectedProjeRoot; public ProjeRoot SelectedProjeRoot { get { return _SelectedProjeRoot; } set { _SelectedProjeRoot = value; OnPropertyChanged(); Preferences.Set("projeKodSelected", "1"); Preferences.Set("projeKod", _SelectedProjeRoot.KODU); } } public ObservableCollection DepoList { get { if (_depoList == null) _depoList = new ObservableCollection(); return _depoList; } set => _depoList = value; } private ObservableCollection _PersonelRoot; public ObservableCollection PersonelRootList { get { if (_PersonelRoot == null) _PersonelRoot = new ObservableCollection(); return _PersonelRoot; } set => _PersonelRoot = value; } private PersonelRoot _SelectedPersonelRoot; public PersonelRoot SelectedPersonelRoot { get { return _SelectedPersonelRoot; } set { _SelectedPersonelRoot = value; OnPropertyChanged(); Preferences.Set("personelKodSelected", "1"); Preferences.Set("personelKod", _SelectedPersonelRoot.KODU); } } private ObservableCollection _IsEmriRoot; public ObservableCollection IsEmriRootList { get { if (_IsEmriRoot == null) _IsEmriRoot = new ObservableCollection(); return _IsEmriRoot; } set => _IsEmriRoot = value; } private IsEmriRoot _SelectedIsEmriRoot; public IsEmriRoot SelectedIsEmriRoot { get { return _SelectedIsEmriRoot; } set { _SelectedIsEmriRoot = value; OnPropertyChanged(); Preferences.Set("isEmriKodSelected", "1"); Preferences.Set("isEmriKod", _SelectedIsEmriRoot.KODU); } } private ObservableCollection _CariRoots; public ObservableCollection CariRootList { get { if (_CariRoots == null) _CariRoots = new ObservableCollection(); return _CariRoots; } set { _CariRoots = value; OnPropertyChanged(); } } private CariRoot _SelectedCariRoot; public CariRoot SelectedCariRoot { get { return _SelectedCariRoot; } set { _SelectedCariRoot = value; OnPropertyChanged(); Preferences.Set("cariKodSelected", "1"); Preferences.Set("cariKod", _SelectedCariRoot.CARIKODU); } } public Command SearchCommand { private set; get; } public async void changeCariText ( ) { Console.WriteLine("change cari work"); //await PopupNavigation.Instance.PopAsync(); var adi = Preferences.Get("selectedCariAdi", ""); var kodu = Preferences.Get("selectedCariKodu", ""); string adres = Preferences.Get("selectedCariAdres", ""); string hrkt = Preferences.Get("selectedCariHkrt", ""); // inte çevir string dvz1 = Preferences.Get("selectedCaridvz1", ""); string dvz2 = Preferences.Get("selectedCaridvz2", ""); string dvz3 = Preferences.Get("selectedCaridvz3", ""); string vkn = Preferences.Get("selectedCariVkn", ""); _SelectedCariRoot = new CariRoot(adres, kodu, adi, Int32.Parse(hrkt),dvz1, dvz2,dvz3,vkn); secilenCari = $"{_SelectedCariRoot.CARIUNVAN}"; //Console.WriteLine("inside change cari work " + secilenCari); SearchCari = secilenCari; CariKodSelected = true; cariKodSelected = true; OnPropertyChanged(); OnPropertyChanged(nameof(SearchCari)); } void searchSomething(string str) { Console.WriteLine("Search Command Work! :" + str + "_"); str1 = str; Console.WriteLine(str1); if (str == null) { evrakSeriSiraSelected = false; evrakSira = ""; OnPropertyChanged(nameof(SearchString)); } else if (str != null) { if (str == "") { str = "MERT"; // evrakSira = ""; OnPropertyChanged(nameof(SearchString)); Preferences.Set("evrakSeri", str.ToUpper()); evrakSiraGetir(str); } else { Preferences.Set("evrakSeri", str.ToUpper()); evrakSiraGetir(str); } } Console.WriteLine("evrakSatirSelected :" + evrakSeriSiraSelected); } async void evrakSiraGetir(string myStr) { evrakSira = await serviceManager.getEvrakNO(selectedDB, myStr); Preferences.Set("evrakSira", evrakSira.ToString()); OnPropertyChanged(nameof(SearchString)); } public string SearchString => $"{evrakSira}"; private bool depolarGorunurluk = true; public bool DepolarGorunurluk { get => depolarGorunurluk; set { depolarGorunurluk = value; OnPropertyChanged(); } } // public ICommand SearchCommand1 { get => SearchCommand2; set => SearchCommand2 = value; } public ICommand SearchCommand2 { get => SearchCommand1; set => SearchCommand1 = value; } public ICommand GoBarkodPage { get => goBarkodPage; set => goBarkodPage = value; } private Depo _KaynakDepo; public Depo SelectedKaynakDepo { get { return _KaynakDepo; } set { _KaynakDepo = value; Console.WriteLine(_KaynakDepo); Preferences.Set("cikisDepo", _KaynakDepo.DEPO); Preferences.Set("cikisDepoGrup", _KaynakDepo.GRUP); } } private Depo _HedefDepo; public Depo SelectedHedefDepo { get { return _HedefDepo; } set { _HedefDepo = value; Console.WriteLine(_HedefDepo); Preferences.Set("selectedDepo", _HedefDepo.DEPO); Preferences.Set("selectedDepoGrup", _HedefDepo.GRUP); } } private string _title; public string Title { get { return _title; } set { _title = value; OnPropertyChanged(); } } public ICommand OpenCariCommand { get => openCariCommand; set => openCariCommand = value; } public ICommand SearchCommand1 { get => searchCommand; set => searchCommand = value; } public ICommand SearchCariCommand { get => searchCariCommand; set => searchCariCommand = value; } public ICommand SelectCariCommand { get => selectCariCommand; set => selectCariCommand = value; } void selectMDate() { _mDate = DateTime.Now; OnPropertyChanged(nameof(_mDate)); Console.WriteLine(_mDate); string output = _mDate.ToString("yyyyMMdd"); Preferences.Set("selectedTarih", output); string showDate = _mDate.ToString("dd/MM/yyyy"); SelectedTarih = showDate; } protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } async void GetDepoDetay(string selectedDB) { var depoDetayList = await serviceManager.getDepoDetay(selectedDB); foreach (var item in depoDetayList) { myDepoDetayList.Add(item); } if (myDepoDetayList[0].BELGENO_fl == true) { //checkList.Add(BelgeNoSelected); BelgeNoZorunluluk = true; OnPropertyChanged(); } else if (myDepoDetayList[0].BELGENO_fl == false) { BelgeNoZorunluluk = false; OnPropertyChanged(); } if (myDepoDetayList[0].CARI_fl == true) { //checkList.Add(CariKodSelected); CariKodZorunluluk = true; OnPropertyChanged(); } else if (myDepoDetayList[0].CARI_fl == false) { CariKodZorunluluk = false; OnPropertyChanged(); } if (myDepoDetayList[0].ISEMRI_fl == true) { //checkList.Add(IsEmriKoduSelected); IsEmriZorunluluk = true; OnPropertyChanged(); } else if (myDepoDetayList[0].ISEMRI_fl == false) { IsEmriZorunluluk = false; OnPropertyChanged(); } if (myDepoDetayList[0].PERSONEL_fl == true) { //checkList.Add(PersonelKoduSelected); PersonelKoduZorunluluk = true; OnPropertyChanged(); } else if (myDepoDetayList[0].PERSONEL_fl == false) { PersonelKoduZorunluluk = false; OnPropertyChanged(); } if (myDepoDetayList[0].PROJE_fl == true) { //checkList.Add(ProjeSelected); ProjeZorunluluk = true; OnPropertyChanged(); } else if (myDepoDetayList[0].PROJE_fl == false) { ProjeZorunluluk = false; OnPropertyChanged(); } if (myDepoDetayList[0].SRMMRKZ_fl == true) { //checkList.Add(SorumlulukSelected); SorumlulukMZorunluluk = true; OnPropertyChanged(); } else if (myDepoDetayList[0].SRMMRKZ_fl == false) { SorumlulukMZorunluluk = false; OnPropertyChanged(); } //IsEmriZorunluluk = true; PersonelKoduZorunluluk = true; CariKodZorunluluk = true; OnPropertyChanged (); } public async void getDepoList(string db) { try { var myServiceCall = await serviceManager.getDepoList(db); foreach (var response in myServiceCall) { DepoList.Add(response); } Console.WriteLine("depoList.Count :" + DepoList.Count); } catch (Exception ex) { } } void funSilme () { // //// depo no tanımları pickerden nasıl gelecek çöz ! // Depo kaynakDepoNO = kaynakDepoPicker.SelectedItem as Depo; // Depo hedefDepoNO = hedefDepoPicker.SelectedItem as Depo; // Preferences.Set("selectedDepo", hedefDepoNO.DEPO); // Preferences.Set("selectedTarih", evrakTarihi.Date.ToString()); // Preferences.Set("cikisDepo", kaynakDepoNO.DEPO); // string mDate = myDatePicker.Date.ToString(); // string output = DateTime.Parse(mDate).ToString("yyyyMMdd") //if (projeZorunluluk == true) //{ // if (projeSelected == true) // { // Console.WriteLine("izin verildi"); // goBarkodPageIzin = true; // }else { goBarkodPageIzin = false; Console.WriteLine("izin verilmedi"); } //} //if (sorumlulukMZorunluluk == true) //{ // if (sorumlulukSelected == true) // {Console.WriteLine("izin verildi"); // goBarkodPageIzin = true; // } // else { goBarkodPageIzin = false; Console.WriteLine("izin verilmedi"); } //} //if (cariKodZorunluluk == true) //{ // if (cariKodSelected == true) // { // Console.WriteLine("izin verildi"); // goBarkodPageIzin = true; // } // else { goBarkodPageIzin = false; Console.WriteLine("izin verilmedi"); } //} //if (isEmriZorunluluk == true) //{ // if (isEmriKoduSelected == true) // { // Console.WriteLine("izin verildi"); // goBarkodPageIzin = true; // } // else { goBarkodPageIzin = false; Console.WriteLine("izin verilmedi"); } //} //if (personelKoduZorunluluk == true) //{ // if (personelKoduSelected == true) // { // Console.WriteLine("izin verildi"); // goBarkodPageIzin = true; // } // else { goBarkodPageIzin = false; Console.WriteLine("izin verilmedi"); } //} //if (_SelectedProjeRoot == null) //{ // UserDialogs.Instance.Alert(new AlertConfig // { // Message = "Lütfen Proje Seçin", // OkText = "Tamam" // }); //} //if (_SelectedSorumlulukMerkezi == null) //{ // UserDialogs.Instance.Alert(new AlertConfig // { // Message = "Lütfen Sorumluluk Merkezi Seçin", // OkText = "Tamam" // }); //} //if (evrakSeriSiraSelected == false) { // UserDialogs.Instance.Alert(new AlertConfig // { // Message = "Lütfen Evrak Seri Girin", // OkText = "Tamam" // }); //} } async void goToBarkodPage(object obj) { if (_HedefDepo != null) { hedefDepoSelected = true; } if (_KaynakDepo != null) { kaynakDepoSelected = true; } if (_SelectedSorumlulukMerkezi != null) { SorumlulukSelected = true; } if (_SelectedProjeRoot != null) { ProjeSelected = true; } try { var res1 = ""; var res2 = ""; // servisten tarihleri aldık if (kaynakDepoSelected) { res1 = await serviceManager.getDepoKilitTarih(selectedDB, _KaynakDepo.DEPO); } if (hedefDepoSelected) { res2 = await serviceManager.getDepoKilitTarih(selectedDB, _HedefDepo.DEPO); } Console.WriteLine($"res1 : {res1} res2 : {res2}"); // tarih dönüştürme (kaynak depo için) List responseList = new List(); string[] responseFromService = res1.Split(' '); foreach (var response in responseFromService) { responseList.Add(response); } Console.WriteLine(responseList[0]); var r1 = responseList[0].Replace(".", "/"); Console.WriteLine("r1 " + r1); dateKaynak = DateTime.Parse(r1); // tarih dönüştürme (hedef depo için) List responseList1 = new List(); string[] responseFromService1 = res2.Split(' '); foreach (var response in responseFromService1) { responseList1.Add(response); } Console.WriteLine(responseList1[0]); var r2 = responseList1[0].Replace(".", "/"); dateHedef = DateTime.Parse(r2); } catch (Exception ex) { // await DisplayAlert("Uyarı", ex.Message, "Tamam"); } if (_HedefDepo == null || _KaynakDepo == null) { UserDialogs.Instance.Alert(new AlertConfig { Message = "Lütfen Depo Seçin", OkText = "Tamam" }); } else { if (_HedefDepo == _KaynakDepo) { // await DisplayAlert("Uyarı", "Kaynak ve Hedef Depo Aynı Olamaz", "Tamam"); // DisplayToastAsync("Kaynak ve Hedef Depo Aynı Olamaz", 3000); UserDialogs.Instance.Alert(new AlertConfig { Message = "Kaynak ve Hedef Depo Aynı Olamaz", OkText = "Tamam" }); depoTarihleriUygun = false; } else { if (DateTime.Now >= dateKaynak && DateTime.Now >= dateHedef) { // Herşey Okey barkod sayfasına geç // await Navigation.PushAsync(new DepoAktarımBarkodPage()); // await DisplayAlert("", "tarih uygun", "ok"); depoTarihleriUygun = true; } else { depoTarihleriUygun = false; UserDialogs.Instance.Alert(new AlertConfig { Message = "Depo Kilit Tarihi Uygun Değil", OkText = "Tamam" }); } } } // Tabbed Page Navigasyon if (depoTarihleriUygun && kaynakDepoSelected && hedefDepoSelected) { int counter = 0; if (BelgeNoZorunluluk == true && BelgeNo == null) { counter += 1; Console.WriteLine("Belge No"); UserDialogs.Instance.Alert(new AlertConfig { Message = "Belge No Giriniz", OkText = "Tamam" }); } if (SorumlulukMZorunluluk == true && _SelectedSorumlulukMerkezi == null ) { counter += 1; Console.WriteLine("SORUMLULUK MERKEZI"); UserDialogs.Instance.Alert(new AlertConfig { Message = "Sorumluluk Merkezi Seçimi Yapın", OkText = "Tamam" }); } if (ProjeZorunluluk == true && _SelectedProjeRoot == null) { Console.WriteLine("PROJE"); UserDialogs.Instance.Alert(new AlertConfig { Message = "Proje Seçimi Yapın", OkText = "Tamam" }); counter += 1; } if (PersonelKoduZorunluluk == true && _SelectedPersonelRoot == null) { UserDialogs.Instance.Alert(new AlertConfig { Message = "Personel Seçimi Yapın", OkText = "Tamam" }); Console.WriteLine("PERSONEL"); counter += 1; } if (CariKodZorunluluk == true && _SelectedCariRoot == null) { UserDialogs.Instance.Alert(new AlertConfig { Message = "Cari Seçimi Yapın", OkText = "Tamam" }); Console.WriteLine("CARI"); counter += 1; } if (IsEmriZorunluluk == true && _SelectedIsEmriRoot == null) { UserDialogs.Instance.Alert(new AlertConfig { Message = "İş Emri Seçimi Yapın", OkText = "Tamam" }); Console.WriteLine("ISEMRI"); counter += 1; } if(counter>0) { Console.WriteLine("BOŞ ALANLAR MEVCUT"); } else { await Application.Current.MainPage.Navigation.PushAsync(new BarkodOzetTabbedPage()); } } } public async void cariPopUpOpen() { await Navigation.PushPopupAsync(new CariPopUpPage()); } private ObservableCollection _StokRootList; public ObservableCollection StokRootList { get { if (_StokRootList == null) _StokRootList = new ObservableCollection(); return _StokRootList; } set { _StokRootList = value; OnPropertyChanged(); } } public async void selectCariTap (object args) { var selectedCari = args as CariRoot; Console.WriteLine("args: "+args); Console.WriteLine("selected :"+selectedCari); //Console.WriteLine("Cari selected" + selectedCari.CARIUNVAN); } public async void FillCariList (string dbkod) { var serviceCallCari = await serviceManager.getCarilist(dbkod); foreach (var item in serviceCallCari) { CariRootList.Add(item); } } public async void FillIsEmriList (string dbkod) { var serviceCallIsEmri = await serviceManager.getIsEmrilist(dbkod); foreach (var item in serviceCallIsEmri) { string kodu = item.KODU; string adi = item.ADI; var m = $"{kodu} {adi}"; IsEmriRoot isEmri = new IsEmriRoot(m, item.KODU); IsEmriRootList.Add(isEmri); } } public async void FillPersoneList (string dbkod) { var serviceCallPersonel = await serviceManager.getFxPersoneList(dbkod); foreach (var item in serviceCallPersonel) { string kodu = item.KODU; string adi = item.ADI; var m = $"{kodu} {adi}"; PersonelRoot per = new PersonelRoot(m, item.KODU); PersonelRootList.Add(per); } } } }