예제 #1
0
        void UpEndAttendance_Click(object sender, EventArgs e)
        {
            isVisitStart = false;
            Common.SetIsAttendanceRun(user.username, isVisitStart);
            locMgr.RemoveUpdates(this);

            // SAVE
            upPrevBlock.Visibility = ViewStates.Gone;
            upNextBlock.Visibility = ViewStates.Gone;
            FragmentManager.BeginTransaction().Remove(fragment).Commit();
            fragmentNum = 1;

            Attendance newAttendance = AttendanceManager.GetCurrentAttendance();
            List <AttendanceResult> newAttendanceResults = AttendanceResultManager.GetCurrentAttendanceResults();
            List <AttendancePhoto>  newAttendancePhotos  = AttendancePhotoManager.GetCurrentAttendancePhotos();
//			List<AttendanceGPSPoint> newAttendanceGPSPoints = AttendanceGPSPointManager.GetCurrentAttendanceGPSPoints ();
            int attID = AttendanceManager.SaveAttendance(newAttendance);

            if (newAttendanceResults != null)
            {
                AttendanceResultManager.SaveNewAttendanceResults(attID, newAttendanceResults);
            }
            if (newAttendancePhotos != null)
            {
                AttendancePhotoManager.SaveNewAttendancePhotos(attID, newAttendancePhotos);
            }
            if (attendanceGPSPoints != null)
            {
                AttendanceGPSPointManager.SaveNewAttendanceGPSPoints(attID, attendanceGPSPoints);
            }
            //Correct Pharmacy
            Pharmacy pharmacy = PharmacyManager.GetPharmacy(selectedPharmacyID);

            pharmacy.prev = DateTime.Now;
            pharmacy.next = DateTimeFormatInfo.CurrentInfo.Calendar.AddWeeks(pharmacy.prev, 2);
            PharmacyManager.SavePharmacy(pharmacy);

            //Clear
            AttendanceManager.SetCurrentAttendance(null);
            AttendanceResultManager.SetCurrentAttendanceResults(null);
            AttendancePhotoManager.SetCurrentAttendancePhotos(null);

            RefreshMainView();
        }
예제 #2
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            // Use this to return your custom view for this Fragment
            // return inflater.Inflate(Resource.Layout.YourFragment, container, false);

            base.OnCreateView(inflater, container, savedInstanceState);

            View rootView = inflater.Inflate(Resource.Layout.Block1Fragment, container, false);

            pharmacyID    = Arguments.GetInt(Common.PHARMACY_ID);
            user          = Common.GetCurrentUser();
            netCategories = Common.GetNetCategories(user.username);
            promos        = Common.GetPromos(user.username);
            merchant      = Common.GetMerchant(user.username);
            territory     = Common.GetTerritory(user.username);
            pharmacy      = PharmacyManager.GetPharmacy(pharmacyID);

            var tradenets = Common.GetTradeNets(user.username);
            Dictionary <int, string> tnDict = new Dictionary <int, string> ();

            foreach (var item in tradenets)
            {
                tnDict.Add(item.id, item.shortName);
            }
            ;

            attendance = AttendanceManager.GetCurrentAttendance();
            if (attendance == null)
            {
                attendance = AttendanceManager.GetLastAttendance(pharmacyID);

                if (attendance == null)
                {
                    attendance = new Attendance()
                    {
                        pharmacy = pharmacyID,
                        date     = DateTime.Now,
                        merchant = merchant.id
                    };
                }
                else
                {
                    attendance.id   = -1;
                    attendance.date = DateTime.Now;
                }
            }

            rootView.FindViewById <TextView> (Resource.Id.b1fTradenetText).Text        = tnDict [pharmacy.tradenet];    //@"Аптечная Сеть";
            rootView.FindViewById <TextView> (Resource.Id.b1fCityText).Text            = territory.baseCity;
            rootView.FindViewById <TextView> (Resource.Id.b1fPharmacyNameText).Text    = pharmacy.shortName;
            rootView.FindViewById <TextView> (Resource.Id.b1fPharmacyAddressText).Text = pharmacy.address;
            rootView.FindViewById <TextView> (Resource.Id.b1fCategoryInOTCText).Text   = pharmacy.category_otc;
            rootView.FindViewById <TextView> (Resource.Id.b1fLastAttendanceText).Text  = pharmacy.prev == DateTime.MinValue ? String.Empty : pharmacy.prev.ToString(@"d");
            rootView.FindViewById <TextView> (Resource.Id.b1fNextAttendanceText).Text  = pharmacy.next == DateTime.MinValue ? String.Empty : pharmacy.next.ToString(@"d");
            rootView.FindViewById <TextView> (Resource.Id.b1fAllAttendanciesText).Text = AttendanceManager.GetStatistics(pharmacy.id);

            categoryNetSpinner = rootView.FindViewById <Spinner> (Resource.Id.b1fCategoryNetSpinner);
            ArrayAdapter adapter = new ArrayAdapter(Activity, Android.Resource.Layout.SimpleSpinnerItem, (from item in netCategories select item.key).ToArray <string>());

            adapter.SetDropDownViewResource(Resource.Layout.SpinnerItem);
            categoryNetSpinner.Adapter       = adapter;
            categoryNetSpinner.ItemSelected += (object sender, AdapterView.ItemSelectedEventArgs e) => {
                attendance.category_net = netCategories[e.Position].id;
            };
            // SetValue
            for (int i = 0; i < netCategories.Count; i++)
            {
                if (netCategories [i].id == attendance.category_net)
                {
                    categoryNetSpinner.SetSelection(i);
                }
            }

            telephoneEdit      = rootView.FindViewById <EditText> (Resource.Id.b1fTelephoneEdit);
            telephoneEdit.Text = attendance.telephone;

            purchaserFIOEdit      = rootView.FindViewById <EditText> (Resource.Id.b1fPurchaserFIOEdit);
            purchaserFIOEdit.Text = attendance.purchaserFIO;

            promosEdit          = rootView.FindViewById <EditText> (Resource.Id.b1fPromosEdit);
            promosButton        = rootView.FindViewById <Button> (Resource.Id.b1fPromosButton);
            promosButton.Click += (object sender, EventArgs e) => {
                bool[] checkedItems = new bool[promos.Count];
                if (attendance.promos != null)
                {
                    for (int i = 0; i < promos.Count; i++)
                    {
                        if (attendance.promos.Contains(promos[i].id))
                        {
                            checkedItems[i] = true;
                            tempPromos.Add(promos[i].id);
                        }
                    }
                }
                string[] items = (from promo
                                  in promos
                                  orderby promo.id
                                  select promo.name).ToArray <string>();
                AlertDialog.Builder builder;
                builder = new AlertDialog.Builder(Activity);
                builder.SetTitle("Выбор ПРОМО-матералов");
                builder.SetCancelable(false);
                builder.SetMultiChoiceItems(items, checkedItems, MultiListClicked);
                builder.SetPositiveButton(@"Сохранить",
                                          delegate {
                    attendance.promos = tempPromos.ToArray <int>();
                    builder.Dispose();
                    RefreshPromos();
                }
                                          );
                builder.SetNegativeButton(@"Отмена", delegate { builder.Dispose(); });
                builder.Show();
            };
            RefreshPromos();

            pharmacistCountEdit      = rootView.FindViewById <EditText> (Resource.Id.b1fPharmacistCountEdit);
            pharmacistCountEdit.Text = attendance.pharmacistCount.ToString();

            commentEdit      = rootView.FindViewById <EditText> (Resource.Id.b1fCommentEdit);
            commentEdit.Text = attendance.comment;

            RefreshControlsState();
            return(rootView);
        }
예제 #3
0
        void RefreshContent()
        {
            llSyncItems.RemoveAllViews();
            queue = (List <SyncQueue>)SyncQueueManager.GetSyncQueue(selectedDate);
            foreach (var q in queue)
            {
                View view = LayoutInflater.Inflate(Resource.Layout.SyncFragmentItem, null);

                RelativeLayout rl = view.FindViewById <RelativeLayout> (Resource.Id.sfiRelativeLayout);
                ImageView      iv = view.FindViewById <ImageView> (Resource.Id.sfiStatusImage);

                TextView type = view.FindViewById <TextView> (Resource.Id.sfiTypeInfoText);
                TextView loc  = view.FindViewById <TextView> (Resource.Id.sfiLocationText);

                try {
                    if (q.isSync)
                    {
                        rl.SetBackgroundColor(Android.Graphics.Color.LightGreen);
                        iv.SetImageResource(Resource.Drawable.ic_check_circle_white_36dp);
                        type.SetTextAppearance(this, Resource.Style.text_success);
                        loc.SetTextAppearance(this, Resource.Style.text_success_small);
                    }
                    else
                    {
                        rl.SetBackgroundColor(Android.Graphics.Color.LightPink);
                        iv.SetImageResource(Resource.Drawable.ic_highlight_off_white_36dp);
                        type.SetTextAppearance(this, Resource.Style.text_danger);
                        loc.SetTextAppearance(this, Resource.Style.text_danger_small);
                    }

                    Attendance att   = null;
                    Pharmacy   pharm = null;
                    switch (q.type)
                    {
                    case SyncQueueType.sqtAttendance:
                        att       = AttendanceManager.GetAttendance(q.itemID);
                        pharm     = PharmacyManager.GetPharmacy(att.pharmacy);
                        type.Text = string.Format(@"Тип: Посещение аптеки {0} за дату {1}", pharm.fullName, att.date.ToString(@"d"));
                        loc.Text  = string.Format(@"Размещение: {0}", q.fileLocation);
                        break;

                    case SyncQueueType.sqtAttendanceResult:
                        AttendanceResult attRes = AttendanceResultManager.GetAttendanceResult(q.itemID);
                        att       = AttendanceManager.GetAttendance(attRes.attendance);
                        pharm     = PharmacyManager.GetPharmacy(att.pharmacy);
                        type.Text = string.Format(@"Тип: Значение по препарату в посещение аптеки {0} за дату {1}", pharm.fullName, att.date.ToString(@"d"));
                        loc.Text  = string.Format(@"Размещение: {0}", q.fileLocation);
                        break;

                    case SyncQueueType.sqtAttendanceGPSPoint:
                        AttendanceGPSPoint attGPS = AttendanceGPSPointManager.GetAttendanceGPSPoint(q.itemID);
                        att       = AttendanceManager.GetAttendance(attGPS.attendance);
                        pharm     = PharmacyManager.GetPharmacy(att.pharmacy);
                        type.Text = string.Format(@"Тип: GPS значение в посещение аптеки {0} за дату {1} - lat:{2}, lon:{3}", pharm.fullName, att.date.ToString(@"d"), attGPS.latitude, attGPS.longitude);
                        loc.Text  = string.Format(@"Размещение: {0}", q.fileLocation);
                        break;

                    case SyncQueueType.sqtAttendancePhoto:
                        AttendancePhoto attPho = AttendancePhotoManager.GetAttendancePhoto(q.itemID);
                        type.Text = string.Format(@"Фото: {0}", attPho.photoPath);
                        loc.Text  = q.fileLocation;
                        break;

                    default:
                        type.Text = @"Неизвестный тип файла";
                        type.SetTextColor(Android.Graphics.Color.DarkRed);
                        break;
                    }
                } catch (Exception ex) {
                    type.Text = @"Error:";
                    loc.Text  = ex.Message;
                }

                llSyncItems.AddView(view);
            }
        }