Ejemplo n.º 1
0
        private async Task ExportFunction()
        {
            var initInstance = NovaAPI.APIReports.Boxitems;

            //Create a new List<T>
            var TestList = new List <NovaAPI.APIReports.BoxitemsClass>();

            double Pages      = (Convert.ToInt32(NovaAPI.APIReports.Count) / 15);
            double TotalPages = Math.Floor(Pages);


            //Get list of all items
            for (int i = 0; i < TotalPages + 1; i++)
            {
                LoadingLabel.Content = $"Obteniendo datos {i + 1} de {TotalPages + 1} paginas...";
                //Try to clear existent list
                try
                {
                    NovaAPI.APIReports.Boxitems.Clear();
                    NovaAPI.APIReports.Sellitems.Clear();
                }
                catch (Exception) { }

                var Data = new NovaAPI.APIReports.RequestData
                {
                    branch_id = ((NovaAPI.APIBranch.BranchClass)BranchCB.SelectedItem).id,
                    box_id    = ((NovaAPI.APIStatus.box)BoxCB.SelectedItem).BoxID.ToString(),
                    date_from = FromDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"),
                    date_to   = ToDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"),
                    from      = (i * 15).ToString()
                };

                //Create string request
                string requestData = JsonConvert.SerializeObject(Data);

                //Send request
                string requestType = Cache.Cache.SelectedSellReport == "0" ? "1" : "2";
                bool   Response    = await NovaAPI.APIReports.GetValues(requestType, DataConfig.LocalAPI, requestData);

                if (Response)
                {
                    TestList.AddRange(NovaAPI.APIReports.Boxitems);
                }
                else
                {
                    MessageBox.Show(NovaAPI.APIReports.Message);
                    return;
                }

                await Task.Delay(100);
            }

            LoadingLabel.Content = "Generando informe de datos ...";

            //Create datatable
            DataTable dt = new DataTable();

            //Asing datatable colummns
            dt = await ExportModule.ConvertToDataTable(TestList.Select(l => new {
                NOMBRE = l.name,
                APERTURA = l.opendate,
                USUARIO_APERTURA = l.openuser,
                VALOR_APERTURA = l.openvalue,
                CIERRE = l.closedate,
                USUARIO_CIERRE = l.closeuser,
                VALOR_CIERRE = l.closevalue,
                COMMENTARIOS = l.comment
            }).ToList());


            //Openfile dialog file path
            await ExportModule.GenerateExcel(dt, @"C:\Users\nicot\OneDrive\Documentos 1\CPY_SAVES\TOTAL.xls", "TEst");

            NovaAPI.APIReports.Boxitems = initInstance;

            //Restore loading status
            ReportDock.IsEnabled     = true;
            PaginationGrid.IsEnabled = true;
            LoadingGrid.Visibility   = Visibility.Collapsed;
            Spinner.Spin             = false;
            LoadingLabel.Content     = "Cargando datos";
        }
Ejemplo n.º 2
0
        private async void LoadData(string Page = null)
        {
            //Set loading grid visibility
            LoadingGrid.Visibility = Visibility.Visible;
            Spinner.Spin           = true;

            //Try to clear existent list
            try
            {
                NovaAPI.APIReports.Boxitems.Clear();
                NovaAPI.APIReports.Sellitems.Clear();
            }
            catch (Exception) { }

            //Set data for request
            var Data = new NovaAPI.APIReports.RequestData
            {
                branch_id = ((NovaAPI.APIBranch.BranchClass)BranchCB.SelectedItem).id,
                box_id    = ((NovaAPI.APIStatus.box)BoxCB.SelectedItem).BoxID.ToString(),
                date_from = FromDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"),
                date_to   = ToDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"),
                from      = Page
            };

            //Create string request
            string requestData = JsonConvert.SerializeObject(Data);

            //Send request
            string requestType = Cache.Cache.SelectedSellReport == "0" ? "1" : "2";
            bool   Response    = await NovaAPI.APIReports.GetValues(requestType, DataConfig.LocalAPI, requestData);

            if (Response)
            {
                //Set data to datagrid
                if (requestType == "1")
                {
                    ContentDataGrid.ItemsSource = NovaAPI.APIReports.Boxitems;
                }
                else
                {
                    ContentDataGrid.ItemsSource = NovaAPI.APIReports.Sellitems;
                }
                TotalValueLB.Text       = requestType == "1" ? "" : string.Format("Venta total: {0:C0} \t Creditos: {1:C0}", NovaAPI.APIReports.Total, NovaAPI.APIReports.Credits);
                TotalValueLB.Visibility = requestType == "1" ? Visibility.Collapsed : Visibility.Visible;
                ContentDataGrid.Items.Refresh();

                TotalProducts.Content = NovaAPI.APIReports.Count;

                //Set pagination info
                double Pages      = (Convert.ToInt32(NovaAPI.APIReports.Count) / 15);
                double TotalPages = Math.Floor(Pages);

                SetPagination(TotalPages);
            }
            else
            {
                //Reset pagination data
                ContentDataGrid.Items.Refresh();
                TotalProducts.Content = "0";
                TotalValueLB.Text     = "";
                Pagination            = 1;
                SetPagination(0);

                MessageBox.Show(NovaAPI.APIReports.Message);

                //Set loading grid visibility
                LoadingGrid.Visibility = Visibility.Collapsed;
                Spinner.Spin           = false;
                return;
            }

            await Task.Delay(100);

            //Set loading grid visibility
            LoadingGrid.Visibility = Visibility.Collapsed;
            Spinner.Spin           = false;
        }