Example #1
0
        private void Leavelist_ItemTapped(object sender, ItemTappedEventArgs e)
        {
            if (CrossConnectivity.Current.IsConnected)
            {
                try
                {
                    LeavesModel data = (LeavesModel)e.Item;
                    Navigation.PushAsync(new LeavesDetailPage(data));
                }

                catch
                {
                    LeavesModelDB data = (LeavesModelDB)e.Item;
                    Navigation.PushAsync(new LeavesDetailPage(data));
                }
            }
            else
            {
                try
                {
                    LeavesModelDB data = (LeavesModelDB)e.Item;
                    Navigation.PushAsync(new LeavesDetailPage(data));
                }
                catch
                {
                    LeavesModel data = (LeavesModel)e.Item;
                    Navigation.PushAsync(new LeavesDetailPage(data));
                }
            }
        }
Example #2
0
        public List <LeavesModel> GetMasterData()
        {
            try
            {
                JObject res = odooConnector.odooFilterDataCall("res.users", "get_master_data");

                App.user_name   = res["user_name"].ToString();
                App.user_image  = res["user_image_medium"].ToString();
                App.user_mobile = res["user_mobile"].ToString();
                App.user_email  = res["user_email"].ToString();
                App.partner_id  = res["partner_id"].ToObject <int>();
                App.employee_id = res["employee_id"].ToObject <int>();

                App.productList         = res["Products"].ToObject <List <ProductsList> >();
                App.expense_productList = res["expense_products"].ToObject <List <ExpenseProductsList> >();

                App.product_Uom   = res["product_uom"].ToObject <List <ProductUOM> >();
                App.taxList       = res["taxes"].ToObject <List <taxes> >();
                App.hr_yearList   = res["hr_years"].ToObject <List <HRYear> >();
                App.currencyList  = res["available_currency"].ToObject <List <Currency> >();
                App.leaveTypeList = res["holiday_status"].ToObject <List <LeaveType> >();

                App.employee_list = res["employees"].ToObject <List <EmployeesModel> >();

                App.access_dict = res["access_right"].ToObject <Dictionary <string, dynamic> >();

                App._connection = DependencyService.Get <ISQLiteDb>().GetConnection();
                App._connection.CreateTable <UserModelDB>();

                if (App.UserListDb.Count == 0)
                {
                    var jso_tags_list            = Newtonsoft.Json.JsonConvert.SerializeObject(res["taxes"]);
                    var jso_products_list        = Newtonsoft.Json.JsonConvert.SerializeObject(res["Products"]);
                    var jso_expenseproducts_list = Newtonsoft.Json.JsonConvert.SerializeObject(res["expense_products"]);
                    var jso_product_Uomlist      = Newtonsoft.Json.JsonConvert.SerializeObject(res["product_uom"]);
                    var jso_hr_year_list         = Newtonsoft.Json.JsonConvert.SerializeObject(res["hr_years"]);
                    var jso_currency_list        = Newtonsoft.Json.JsonConvert.SerializeObject(res["available_currency"]);
                    var jso_leavetype_list       = Newtonsoft.Json.JsonConvert.SerializeObject(res["holiday_status"]);
                    var jso_employee_list        = Newtonsoft.Json.JsonConvert.SerializeObject(res["employees"]);

                    var sample = new UserModelDB
                    {
                        userid            = App.userid,
                        partnerid         = App.partner_id,
                        employeeid        = App.employee_id,
                        user_name         = App.user_name,
                        user_email        = App.user_email,
                        user_mobile       = App.user_mobile,
                        user_image_medium = App.user_image,
                        products          = jso_products_list,
                        expense_products  = jso_expenseproducts_list,
                        tax_list          = jso_tags_list,
                        product_Uom       = jso_product_Uomlist,
                        hr_year_list      = jso_hr_year_list,
                        currency_list     = jso_currency_list,
                        leavetype_list    = jso_leavetype_list,
                        employee_list     = jso_employee_list,
                    };
                    App._connection.Insert(sample);

                    try
                    {
                        var details = (from y in App._connection.Table <UserModelDB>() select y).ToList();
                        App.UserListDb = details;

                        List <ProductsList>        productslistdb         = new List <ProductsList>();
                        List <ExpenseProductsList> expense_productslistdb = new List <ExpenseProductsList>();
                        List <taxes>          taxListDb       = new List <taxes>();
                        List <ProductUOM>     product_UomDb   = new List <ProductUOM>();
                        List <Currency>       currencyListDb  = new List <Currency>();
                        List <HRYear>         hr_yearListDb   = new List <HRYear>();
                        List <LeaveType>      leaveTypeListDb = new List <LeaveType>();
                        List <EmployeesModel> employeeListDb  = new List <EmployeesModel>();

                        foreach (var item in App.UserListDb)
                        {
                            productslistdb         = JsonConvert.DeserializeObject <List <ProductsList> >(item.products);
                            expense_productslistdb = JsonConvert.DeserializeObject <List <ExpenseProductsList> >(item.expense_products);
                            taxListDb                 = JsonConvert.DeserializeObject <List <taxes> >(item.tax_list);
                            product_UomDb             = JsonConvert.DeserializeObject <List <ProductUOM> >(item.product_Uom);
                            currencyListDb            = JsonConvert.DeserializeObject <List <Currency> >(item.currency_list);
                            hr_yearListDb             = JsonConvert.DeserializeObject <List <HRYear> >(item.hr_year_list);
                            leaveTypeListDb           = JsonConvert.DeserializeObject <List <LeaveType> >(item.leavetype_list);
                            employeeListDb            = JsonConvert.DeserializeObject <List <EmployeesModel> >(item.employee_list);
                            App.userid_db             = item.userid;
                            App.ProductListDb         = productslistdb;
                            App.expense_productListDb = expense_productslistdb;
                            App.taxListDb             = taxListDb;
                            App.product_UomDb         = product_UomDb;
                            App.hr_yearListDb         = hr_yearListDb;
                            App.currencyListDb        = currencyListDb;
                            App.leaveTypeListDb       = leaveTypeListDb;
                            App.employee_idDb         = item.employeeid;
                            App.employee_listDb       = employeeListDb;
                        }
                    }
                    catch (Exception ex)
                    {
                        int i = 0;
                    }
                }

                /////// For Leaves

                App.leaves_list = res["holidays"].ToObject <List <LeavesModel> >();

                App._connection = DependencyService.Get <ISQLiteDb>().GetConnection();
                App._connection.CreateTable <LeavesModelDB>();

                //  List<AttachmentFile> attlistDb = new List<AttachmentFile>();



                var leaves_details = App._connection.Query <LeavesModelDB>("SELECT * from LeavesModelDB where sync_string = ?", "sync.png");
                if (leaves_details.Count() == 0)
                {
                    App._connection.Query <LeavesModelDB>("DELETE from LeavesModelDB");

                    foreach (var item in App.leaves_list)
                    {
                        var dbattachment_list = Newtonsoft.Json.JsonConvert.SerializeObject(item.attachment);

                        var sample = new LeavesModelDB
                        {
                            id              = item.id,
                            name            = item.name,
                            display_name    = item.display_name,
                            state           = item.state,
                            state_name      = item.state_name,
                            date_from       = item.date_from,
                            date_to         = item.date_to,
                            no_of_days      = item.no_of_days,
                            stage_colour    = item.stage_colour,
                            is_half_day     = item.is_half_day,
                            am_or_pm        = item.am_or_pm,
                            leave_structure = item.leave_structure,
                            year            = item.year,
                            employee        = item.employee,
                            report_note     = item.report_note,
                            holidays_status = item.holidays_status,
                            datefrom        = item.datefrom,
                            dateto          = item.dateto,
                            fromDate        = item.fromDate,
                            endDate         = item.endDate,
                            check_tt        = item.check_tt,
                            department      = item.department,
                            attachment_list = dbattachment_list,
                            date            = item.date,
                        };
                        App._connection.Insert(sample);
                    }

                    try
                    {
                        var details = (from y in App._connection.Table <LeavesModelDB>() select y).ToList();
                        App.leaves_listDb = details;
                    }
                    catch
                    {
                        int i = 0;
                    }
                }

                var rpc_condition = App._connection.Query <LeavesModelDB>("SELECT * from LeavesModelDB where check_rpc_condition = ?", "false");
                if (rpc_condition.Count != 0)
                {
                    //  List<AttachmentFile> productslistdb = new List<AttachmentFile>();

                    foreach (var item in rpc_condition)
                    {
                        var sample = new LeavesModel
                        {
                            name                = item.name,
                            holidays_status     = item.holidays_status,
                            year                = item.year,
                            date_from           = item.date_from,
                            date_to             = item.date_to,
                            state               = item.state,
                            state_name          = item.state_name,
                            stage_colour        = item.stage_colour,
                            no_of_days          = item.no_of_days,
                            is_half_day         = item.is_half_day,
                            sync_string         = item.sync_string,
                            am_or_pm            = item.check_tt,
                            employee            = item.employee,
                            error_rpcTxt        = item.txt_rpc_error,
                            dbid_error_txt      = item.Dbid,
                            check_rpc_condition = item.check_rpc_condition,
                            //  attachlistfield = item.error_attachment_list,

                            attachment = JsonConvert.DeserializeObject <List <AttachmentFile> >(item.attachment_list),
                            // attachment = item.error_attachment_list,
                        };
                        App.leaves_list.Add(sample);
                    }
                }
                var data = App.leaves_list;

                /////// For Expense
                App.expense_list = res["expense"].ToObject <List <ExpenseModel> >();

                App._connection = DependencyService.Get <ISQLiteDb>().GetConnection();
                App._connection.CreateTable <ExpenseModelDB>();

                var expense_details = App._connection.Query <ExpenseModelDB>("SELECT * from ExpenseModelDB where sync_string = ? OR sync_string = ?", "sync.png", "editexp.png");
                if (expense_details.Count() == 0)
                {
                    App._connection.Query <ExpenseModelDB>("DELETE from ExpenseModelDB");

                    foreach (var item in App.expense_list)
                    {
                        var expattach_list = Newtonsoft.Json.JsonConvert.SerializeObject(item.attachment);

                        var sample = new ExpenseModelDB
                        {
                            id           = item.id,
                            name         = item.name,
                            product      = item.product,
                            product_uom  = item.product_uom,
                            state        = item.state,
                            unit_price   = item.unit_price,
                            quantity     = item.quantity,
                            reference    = item.reference,
                            notes        = item.notes,
                            account      = item.account,
                            employee_id  = item.employee_id,
                            currency     = item.currency,
                            date         = item.date,
                            stage_name   = item.stage_name,
                            stage_colour = item.stage_colour,
                            half_date    = item.half_date,
                            full_date    = item.full_date,

                            attachment = expattach_list,
                        };
                        App._connection.Insert(sample);
                    }

                    try
                    {
                        var details = (from y in App._connection.Table <ExpenseModelDB>() select y).ToList();
                        App.expense_listDb = details;
                    }
                    catch
                    {
                        int i = 0;
                    }
                }

                return(App.leaves_list);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("::::: HRM Warning Message ::::  " + ex.Message);

                if (ex.Message.Contains("(Network is unreachable)") || ex.Message.Contains("NameResolutionFailure"))
                {
                    App.NetAvailable = false;
                }
                else if (ex.Message.Contains("(503) Service Unavailable"))
                {
                    App.responseState = false;
                }
                return(App.leaves_list);
            }
        }
Example #3
0
        private async void update_clickedAsync(object sender, EventArgs e)
        {
            //var currentpage = new LoadingIndicator();
            //await PopupNavigation.Instance.PushAsync(currentpage);

            act_ind.IsRunning = true;

            Dictionary <string, dynamic> vals = new Dictionary <string, dynamic>();

            string convertstartdate = start_date.Date.ToString("yyyy-MM-dd");
            var    dt = start_time.Time.ToString();

            convertstartdate = convertstartdate + " " + dt.ToString();
            string   convertstart_datetime = convertstartdate;
            DateTime startDate             = DateTime.ParseExact(convertstart_datetime, "yyyy-MM-dd HH:mm:ss", null);

            convertstart_datetime = startDate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");

            string convertstopdate = stop_date.Date.ToString("yyyy-MM-dd");
            var    dt1             = stop_time.Time.ToString();

            convertstopdate = convertstopdate + " " + dt1.ToString();
            string   convertstop_datetime = convertstopdate;
            DateTime stopDate             = DateTime.ParseExact(convertstop_datetime, "yyyy-MM-dd HH:mm:ss", null);

            convertstop_datetime = stopDate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");

            var employee_id = App.employee_id;

            TimeSpan diff = stopDate - startDate;
            string   dur  = diff.Days.ToString();

            string am_or_pm = "";

            if (check_half_day == true)
            {
                am_or_pm = half_dayPicker.SelectedItem.ToString();
            }
            else
            {
                am_or_pm = "";
            }

            List <dynamic> attfile = new List <dynamic>();

            foreach (var data in attach)
            {
                if (data.id == 0)
                {
                    Dictionary <string, dynamic> dict = new Dictionary <string, dynamic>();

                    dict.Add("file_name", data.file_name);
                    // dict.Add("file_data", data.filebase64);
                    dict.Add("file_data", data.file_data);
                    attfile.Add(dict);
                }
            }

            if (CrossConnectivity.Current.IsConnected)
            {
                var leave_type_id = App.leaveTypeList.FirstOrDefault(x => x.Name2 == leave_pick.SelectedItem.ToString()).Id;
                var hr_year_id    = App.hr_yearList.FirstOrDefault(x => x.Name == hr_year_picker.SelectedItem.ToString()).Id;

                vals["name"] = reason_entry.Text;
                vals["holiday_status_id"] = leave_type_id;
                vals["hr_year_id"]        = hr_year_id;
                vals["employee_id"]       = employee_id;

                vals["date_from"]           = convertstart_datetime;
                vals["date_to"]             = convertstop_datetime;
                vals["number_of_days_temp"] = dur;
                vals["half_day_related"]    = check_half_day;
                vals["half_day"]            = check_half_day;
                vals["am_or_pm"]            = am_or_pm;
                vals["add_attachment"]      = attfile;
                vals["remove_attachment"]   = delete_attach;


                var updated = Controller.InstanceCreation().UpdateLeave("hr.holidays", "app_update_leave", levobj.id, vals);

                if (updated == "True")
                {
                    App.Current.MainPage = new MasterPage(new LeavesPage());
                    act_ind.IsRunning    = false;
                    //  Loadingalertcall();
                    //  attach.Clear();
                    DependencyService.Get <Toast>().Show("Updated successfully...");
                }
                else
                {
                    //  Loadingalertcall();
                    act_ind.IsRunning = false;
                    DependencyService.Get <Toast>().Show(updated);
                }
            }

            else
            {
                var itemToRemove = App.leaves_listDb.Single(r => r.id == levobjDb.id);
                App.leaves_listDb.Remove(itemToRemove);

                string jso_addattchment_list    = "";
                string jso_removeattchment_list = "";

                int loc_leave_type_id = App.leaveTypeListDb.FirstOrDefault(x => x.Name2 == leave_pick.SelectedItem.ToString()).Id;
                int loc_hr_year_id    = App.hr_yearListDb.FirstOrDefault(x => x.Name == hr_year_picker.SelectedItem.ToString()).Id;

                App._connection.Query <LeavesModelDB>("DELETE FROM [LeavesModelDB] WHERE [id] = " + levobjDb.id);

                try
                {
                    jso_addattchment_list = Newtonsoft.Json.JsonConvert.SerializeObject(attfile);
                }

                catch
                {
                    int j = 0;
                    act_ind.IsRunning = true;
                }

                try
                {
                    jso_removeattchment_list = Newtonsoft.Json.JsonConvert.SerializeObject(delete_attach);
                }
                catch
                {
                    int jk = 0;
                    act_ind.IsRunning = true;
                }



                DateTime edit_dt   = DateTime.ParseExact(convertstart_datetime, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                string   date_from = edit_dt.ToLocalTime().ToString("MMM dd");

                DateTime edit_dt1 = DateTime.ParseExact(convertstop_datetime, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                string   date_to  = edit_dt.ToLocalTime().ToString("MMM dd");

                var sample = new LeavesModelDB
                {
                    id              = levobjDb.id,
                    name            = reason_entry.Text,
                    holidays_status = leave_pick.SelectedItem.ToString(),
                    //   holiday_status_id = leave_type_id,
                    year     = hr_year_picker.SelectedItem.ToString(),
                    year_id  = loc_hr_year_id,
                    datefrom = date_from,
                    dateto   = date_to,
                    //  fromDate = startdate,
                    //  endDate = enddate,
                    date_from           = convertstart_datetime,
                    date_to             = convertstop_datetime,
                    leave_type_id       = loc_leave_type_id,
                    employee_id         = App.employee_id,
                    sync_string         = "editexp.png",
                    stage_colour        = levobjDb.stage_colour,
                    state               = levobjDb.state,
                    state_name          = levobjDb.state_name,
                    attachment_list     = jso_addattchment_list,
                    remove_attachment   = jso_removeattchment_list,
                    no_of_days          = dur,
                    is_half_day         = check_half_day,
                    check_tt            = am_or_pm,
                    employee            = levobjDb.employee,
                    check_rpc_condition = "edit",
                    //  error_attachment_list = attach_list,
                };
                App._connection.Insert(sample);

                App._connection.CreateTable <LeavesModelDB>();
                try
                {
                    var details = (from y in App._connection.Table <LeavesModelDB>() select y).ToList();
                    App.leaves_listDb = details;

                    App.Current.MainPage = new MasterPage(new LeavesPage());
                    DependencyService.Get <Toast>().Show("Updated locally...");
                }
                catch (Exception ex)
                {
                    int i = 0;
                    act_ind.IsRunning = false;
                }

                act_ind.IsRunning = false;
            }
        }
Example #4
0
        public LeavesDetailPage(LeavesModelDB obj)
        {
            InitializeComponent();

            levobjDb = obj;

            label_display_Name.Text        = obj.display_name;
            reasonlabel.Text               = obj.name;
            leavetypelabel.Text            = obj.holidays_status;
            hryearlabel.Text               = obj.year;
            leave_structure_Namelabel.Text = obj.leave_structure;
            dept_namelabel.Text            = obj.department;

            startdate_label.Text = obj.fromDate;
            enddate_label.Text   = obj.endDate;
            duration_label.Text  = obj.no_of_days.ToString();

            if (obj.is_half_day == false)
            {
                check_half_day                   = false;
                checkImg.IsVisible               = false;
                uncheckImg.IsVisible             = true;
                tt_label.Text                    = obj.check_tt;
                overall_enddate_layout.IsVisible = true;
            }
            else
            {
                check_half_day                   = true;
                checkImg.IsVisible               = true;
                uncheckImg.IsVisible             = false;
                tt_label.Text                    = obj.check_tt;
                overall_enddate_layout.IsVisible = false;
            }

            if (obj.state.Equals("confirm"))
            {
                btnApprove.IsVisible = true;
                btnRefuse.IsVisible  = true;
                btnDraft.IsVisible   = true;
                btnConfirm.IsVisible = false;
                frame_state_color.BackgroundColor = Color.FromHex(obj.stage_colour);
                statelabel.Text = obj.state_name;
            }
            else if (obj.state.Equals("draft"))
            {
                btnConfirm.IsVisible = true;
                btnApprove.IsVisible = false;
                btnRefuse.IsVisible  = false;
                btnDraft.IsVisible   = false;
                frame_state_color.BackgroundColor = Color.FromHex(obj.stage_colour);
                statelabel.Text = obj.state_name;
            }
            else if (obj.state.Equals("refuse"))
            {
                btnConfirm.IsVisible = false;
                btnApprove.IsVisible = false;
                btnRefuse.IsVisible  = false;
                btnDraft.IsVisible   = true;
                frame_state_color.BackgroundColor = Color.FromHex(obj.stage_colour);
                statelabel.Text = obj.state_name;
            }
            else if (obj.state.Equals("validate"))
            {
                btnConfirm.IsVisible = false;
                btnApprove.IsVisible = false;
                btnRefuse.IsVisible  = true;
                btnDraft.IsVisible   = false;
                frame_state_color.BackgroundColor = Color.FromHex(obj.stage_colour);
                statelabel.Text = obj.state_name;
            }

            // List<AttachmentFile> addattachlistDb = JsonConvert.DeserializeObject<List<AttachmentFile>>(dbobj.attachment_list);
            attach = JsonConvert.DeserializeObject <List <AttachmentFile> >(obj.attachment_list);
            // attach = obj.attachment_list;
            if (attach.Count > 0)
            {
                attachviewlist.IsVisible     = true;
                attachviewlist.HeightRequest = 45 * attach.Count;
                attachviewlist.ItemsSource   = attach;
            }


            halfday.Add("AM");
            halfday.Add("PM");
            half_dayPicker.ItemsSource = halfday;
            //half_dayPicker.SelectedIndex = 0;


            var editRecognizer = new TapGestureRecognizer();

            editRecognizer.Tapped += (s, e) =>
            {
                edit.IsVisible           = false;
                add_attachment.IsEnabled = true;
                attachviewlist.IsEnabled = true;
                if (obj.check_rpc_condition != "false")
                {
                    updatebtn.IsVisible = true;
                }
                else
                {
                    createbtn.IsVisible                = true;
                    durlayout.IsVisible                = false;
                    dur_boxlayout.IsVisible            = false;
                    delete.IsVisible                   = false;
                    state_layout.IsVisible             = false;
                    state_boxlayout.IsVisible          = false;
                    leavestructure_layout.IsVisible    = false;
                    leavestructure_boxlayout.IsVisible = false;
                    department_layout.IsVisible        = false;
                    department_boxlayout.IsVisible     = false;
                    btnStack.IsVisible                 = false;
                }

                leave_pick.ItemsSource   = App.leaveTypeListDb.Select(n => n.Name2).ToList();
                leave_pick.SelectedIndex = 0;
                leave_pick.SelectedItem  = levobjDb.holidays_status;

                hr_year_picker.ItemsSource   = App.hr_yearListDb.Select(y => y.Name).ToList();
                hr_year_picker.SelectedIndex = 0;
                hr_year_picker.SelectedItem  = levobjDb.year;

                reasonlabel.IsVisible  = false;
                reason_entry.IsVisible = true;
                reason_entry.Text      = levobjDb.name;

                leavetypelabel.IsVisible   = false;
                leavetype_layout.IsVisible = true;

                //employee_namelabel.IsVisible = false;
                //employee_layout.IsVisible = true;

                hryearlabel.IsVisible   = false;
                hryear_layout.IsVisible = true;

                startdate_label.IsVisible  = false;
                startdate_layout.IsVisible = true;

                enddate_label.IsVisible  = false;
                enddate_layout.IsVisible = true;

                // half day field
                uncheckImg.IsVisible = false;
                checkImg.IsVisible   = false;
                tt_label.IsVisible   = false;
                if (obj.is_half_day == false)
                {
                    editcheckImg.IsVisible           = false;
                    edituncheckImg.IsVisible         = true;
                    half_dayPicker.IsVisible         = false;
                    drdownImg.IsVisible              = false;
                    overall_enddate_layout.IsVisible = true;
                }
                else
                {
                    editcheckImg.IsVisible           = true;
                    edituncheckImg.IsVisible         = false;
                    half_dayPicker.IsVisible         = true;
                    half_dayPicker.SelectedItem      = levobjDb.check_tt;
                    drdownImg.IsVisible              = true;
                    overall_enddate_layout.IsVisible = false;
                }

                if (levobjDb.is_half_day)
                {
                    halfday_layout.IsVisible = true;
                }

                else
                {
                    halfday_layout.IsVisible = false;
                }

                //start date field
                DateTime start_dateTime   = DateTime.ParseExact(obj.date_from, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture).ToLocalTime();
                string   start_datestring = start_dateTime.ToString("yyyy-MM-dd");
                string   start_timestring = start_dateTime.ToString("HH:mm");
                string   start_fullTime   = start_datestring + " " + start_timestring;
                TimeSpan start_timespan   = TimeSpan.Parse(start_timestring);
                start_date.Date = start_dateTime;
                start_time.Time = start_timespan;

                //stop date field
                DateTime stop_dateTime   = DateTime.ParseExact(obj.date_to, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture).ToLocalTime();
                string   stop_datestring = stop_dateTime.ToString("yyyy-MM-dd");
                string   stop_timestring = stop_dateTime.ToString("HH:mm");
                string   stop_fullTime   = stop_datestring + " " + stop_timestring;
                TimeSpan stop_timespan   = TimeSpan.Parse(stop_timestring);
                stop_date.Date = stop_dateTime;
                stop_time.Time = stop_timespan;


                //DependencyService.Get<Toast>().Show("Need internet connection...");
            };
            edit.GestureRecognizers.Add(editRecognizer);


            var attach_file = new TapGestureRecognizer();

            attach_file.Tapped += async(s, e) =>
            {
                System.Diagnostics.Debug.WriteLine("OUTT" + attach.Count());
                await PopupNavigation.Instance.PushAsync(new FileAttachmentPage("update", attach));
            };
            add_attachment.GestureRecognizers.Add(attach_file);

            //var uncheck_Img = new TapGestureRecognizer();
            //uncheck_Img.Tapped += (s, e) =>
            //{
            //    edituncheckImg.IsVisible = false;
            //    editcheckImg.IsVisible = true;
            //    half_dayPicker.IsVisible = true;
            //    drdownImg.IsVisible = true;
            //};
            //edituncheckImg.GestureRecognizers.Add(uncheck_Img);

            //var check_Img = new TapGestureRecognizer();
            //check_Img.Tapped += (s, e) =>
            //{
            //    editcheckImg.IsVisible = false;
            //    edituncheckImg.IsVisible = true;
            //    half_dayPicker.IsVisible = false;
            //    drdownImg.IsVisible = false;
            //};
            //editcheckImg.GestureRecognizers.Add(check_Img);
        }
Example #5
0
        private async void create_Clicked(object sender, EventArgs e)
        {
            //var currentpage = new LoadingIndicator();
            //await PopupNavigation.Instance.PushAsync(currentpage);

            act_ind.IsRunning = true;

            try
            {
                //   List<LeavesModel> Data = Controller.InstanceCreation().GetMasterData();
                JObject attdetails = await Task.Run(() => Controller.InstanceCreation().GetAttendanceData());
            }
            catch
            {
                int jk = 0;
            }

            Dictionary <string, dynamic> vals = new Dictionary <string, dynamic>();

            string convertstartdate = start_date.Date.ToString("yyyy-MM-dd");
            var    dt = start_time.Time.ToString();

            convertstartdate = convertstartdate + " " + dt.ToString();
            string   convertstart_datetime = convertstartdate;
            DateTime startDate             = DateTime.ParseExact(convertstart_datetime, "yyyy-MM-dd HH:mm:ss", null);

            convertstart_datetime = startDate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");

            string convertstopdate = stop_date.Date.ToString("yyyy-MM-dd");
            var    dt1             = stop_time.Time.ToString();

            convertstopdate = convertstopdate + " " + dt1.ToString();
            string   convertstop_datetime = convertstopdate;
            DateTime stopDate             = DateTime.ParseExact(convertstop_datetime, "yyyy-MM-dd HH:mm:ss", null);

            convertstop_datetime = stopDate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");

            TimeSpan diff;
            string   dur = "";

            diff = stopDate - startDate;
            dur  = diff.Days.ToString();


            List <dynamic> attfile = new List <dynamic>();

            foreach (var data in attach)
            {
                Dictionary <string, dynamic> dict = new Dictionary <string, dynamic>();

                dict.Add("file_name", data.file_name);
                dict.Add("file_data", data.filebase64);
                attfile.Add(dict);
            }

            string am_or_pm = "";

            if (half_day == true)
            {
                am_or_pm = half_dayPicker.SelectedItem.ToString();
                var stopdate = startDate.AddHours(4);
                var loctime  = stopdate.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");
                convertstop_datetime = stopdate.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss");
                diff = stopdate - startDate;
                dur  = diff.Days.ToString();
            }
            else
            {
                am_or_pm = "";
            }

            if (App.NetAvailable == true)
            {
                if (leaveType_picker.SelectedItem == null)
                {
                    leavepick_alert.IsVisible = true;
                    act_ind.IsRunning         = false;
                }
                else
                {
                    var leave_type_id = App.leaveTypeList.FirstOrDefault(x => x.Name2 == leaveType_picker.SelectedItem.ToString()).Id;
                    var hr_year_id    = App.hr_yearList.FirstOrDefault(x => x.Name == hr_year_picker.SelectedItem.ToString()).Id;
                    var employee_id   = App.employee_id;

                    leavepick_alert.IsVisible = false;

                    vals["name"] = reason.Text;
                    vals["holiday_status_id"]   = leave_type_id;
                    vals["hr_year_id"]          = hr_year_id;
                    vals["employee_id"]         = employee_id;
                    vals["date_from"]           = convertstart_datetime;
                    vals["date_to"]             = convertstop_datetime;
                    vals["half_day_related"]    = half_day;
                    vals["half_day"]            = half_day;
                    vals["am_or_pm"]            = am_or_pm;
                    vals["attachment"]          = attfile;
                    vals["number_of_days_temp"] = dur;

                    var dic = vals;

                    // await Task.Run(() => App.Current.MainPage = new MasterPage(new AttendancesPage()));

                    var created = await Task.Run(() => Controller.InstanceCreation().CreateLeave("hr.holidays", "app_create_leave", vals));

                    if (created == "True")
                    {
                        await Task.Run(() => App.Current.MainPage = new MasterPage(new LeavesPage()));

                        Loadingalertcall();
                        DependencyService.Get <Toast>().Show("Created Successfully...");
                        act_ind.IsRunning = false;
                    }
                    else
                    {
                        Loadingalertcall();
                        DependencyService.Get <Toast>().Show(created);
                        act_ind.IsRunning = false;
                    }
                }
            }
            else
            {
                string reasontxt = reason.Text;
                string leavetype = leaveType_picker.SelectedItem.ToString();
                string year      = hr_year_picker.SelectedItem.ToString();

                DateTime fromdt   = DateTime.ParseExact(convertstart_datetime, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                string   datefrom = fromdt.ToLocalTime().ToString("MMM dd");

                DateTime todt   = DateTime.ParseExact(convertstop_datetime, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                string   dateto = todt.ToLocalTime().ToString("MMM dd");

                DateTime fullstartdt = DateTime.ParseExact(convertstart_datetime, "yyyy-MM-dd HH:mm:ss", null);
                string   startdate   = fullstartdt.ToLocalTime().ToString("dd/MM/yyyy HH:mm");

                DateTime fullstopdt = DateTime.ParseExact(convertstop_datetime, "yyyy-MM-dd HH:mm:ss", null);
                string   enddate    = fullstopdt.ToLocalTime().ToString("dd/MM/yyyy HH:mm");

                var leave_id = App.leaveTypeListDb.FirstOrDefault(x => x.Name2 == leaveType_picker.SelectedItem.ToString()).Id;
                var year_id  = App.hr_yearListDb.FirstOrDefault(x => x.Name == hr_year_picker.SelectedItem.ToString()).Id;
                var emp_id   = App.employee_idDb;

                var jso_attchment_list = Newtonsoft.Json.JsonConvert.SerializeObject(attfile);

                var attach_list = Newtonsoft.Json.JsonConvert.SerializeObject(attach);

                var sample = new LeavesModelDB
                {
                    name                  = reasontxt,
                    holidays_status       = leavetype,
                    year                  = year,
                    datefrom              = datefrom,
                    dateto                = dateto,
                    fromDate              = startdate,
                    endDate               = enddate,
                    date_from             = convertstart_datetime,
                    date_to               = convertstop_datetime,
                    leave_type_id         = leave_id,
                    employee_id           = emp_id,
                    year_id               = year_id,
                    sync_string           = "sync.png",
                    stage_colour          = "#efb139",
                    state                 = "confirm",
                    state_name            = "Waiting Pre-Approval",
                    attachment_list       = jso_attchment_list,
                    no_of_days            = dur,
                    is_half_day           = half_day,
                    check_tt              = am_or_pm,
                    employee              = "Administrator",
                    check_rpc_condition   = "true",
                    error_attachment_list = attach_list,
                };
                App._connection.Insert(sample);

                App._connection.CreateTable <LeavesModelDB>();
                try
                {
                    var details = (from y in App._connection.Table <LeavesModelDB>() select y).ToList();
                    App.leaves_listDb = details;
                }
                catch (Exception ex)
                {
                    int i = 0;
                }

                await Task.Run(() => App.Current.MainPage = new MasterPage(new LeavesPage()));

                DependencyService.Get <Toast>().Show("Created successfully need to sync with server...");

                act_ind.IsRunning = false;

                //   Loadingalertcall();
            }
        }