private async void Button_RetryBill_Clicked(object sender, EventArgs e)
        {
            App.ShowLoading(true);
            ActualBill = this.BindingContext as DataContracts.Model.Bill;
            ActualBill.EmissionDate = null;
            ActualBill.LastSendDate = null;
            ActualBill.ClientId     = ActualBill.SoldProductsJSON.ClientId;
            try
            {
                // Remove Unused Products
                ActualBill.SoldProductsJSON.RemoveProductsWithoutQuantity();

                var vRetryBillProxy = new BusinessProxy.Bill.TryToBillWithHacienda();
                var vBillRequest    = new BusinessProxy.Models.BillRequest
                {
                    SSOT       = App.SSOT,
                    User       = App.ActualUser,
                    ClientBill = ActualBill,
                };
                var vRetryResponse = await vRetryBillProxy.GetDataAsync(vBillRequest);

                // For testing
                var jsonTEST = Newtonsoft.Json.JsonConvert.SerializeObject(vBillRequest);
                if (vRetryResponse != null)
                {
                    if (vRetryResponse.IsSuccessful)
                    {
                        App.ShowLoading(false);

                        Button_RetryBill.IsEnabled = false;
                        Button_RetryBill.IsVisible = false;

                        await Toasts.ToastRunner.ShowSuccessToast("", "Se ha podido enviar con éxito");
                    }
                    else
                    {
                        App.ShowLoading(false);
                        await DisplayAlert("",
                                           string.IsNullOrEmpty(vRetryResponse.TechnicalMessage)?
                                           vRetryResponse.UserMessage : vRetryResponse.TechnicalMessage, "Ok");

                        //await Toasts.ToastRunner.ShowErrorToast("Sistema", vRetryResponse.UserMessage);
                        //await DisplayAlert("", vRetryResponse.TechnicalMessage, "Ok");
                    }
                    EditorSystemMessage.Text = vRetryResponse.UserMessage;
                }
                else
                {
                    App.ShowLoading(false);
                    await DisplayAlert("", "Respuesta Null", "Ok");
                }
            }
            catch (Exception ex)
            {
                await Toasts.ToastRunner.ShowErrorToast("Sistema", ex.Message);
            }
        }
        private async void Button_SeeBill_Clicked(object sender, EventArgs e)
        {
            try {
                var vGetBillInvoiceClient = new BusinessProxy.Bill.GetBillInvoice();
                var vBillRequest          = new BusinessProxy.Models.BillRequest
                {
                    SSOT       = App.SSOT,
                    User       = App.ActualUser,
                    ClientBill = ActualBill,
                };
                var vGetBillInvoiceResponse = await vGetBillInvoiceClient.GetDataAsync(vBillRequest);

                if (vGetBillInvoiceResponse.IsSuccessful)
                {
                    var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage);

                    if (status != PermissionStatus.Granted)
                    {
                        await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Storage);

                        var results = await CrossPermissions.Current.RequestPermissionsAsync(Permission.Storage);

                        //Best practice to always check that the key exists
                        if (results.ContainsKey(Permission.Storage))
                        {
                            status = results[Permission.Storage];
                        }
                    }

                    if (status == PermissionStatus.Granted)
                    {
                        DependencyService.Get <IReportingService>().SaveAndOpenFile("Factura" + ActualBill.ConsecutiveNumber + ".pdf",
                                                                                    vGetBillInvoiceResponse.PdfInvoice);
                    }
                    else if (status != PermissionStatus.Unknown)
                    {
                        await DisplayAlert("No hay Permisos", "Agrega el permiso de storage", "OK");
                    }
                }
                else
                {
                    await this.DisplayAlert("Error", string.IsNullOrEmpty(vGetBillInvoiceResponse.UserMessage)?
                                            vGetBillInvoiceResponse.TechnicalMessage : vGetBillInvoiceResponse.UserMessage, "ok");
                }
            }
            catch (Exception vEx)
            {
                await this.DisplayAlert("Error", vEx.ToString(), "ok");
            }
        }
Esempio n. 3
0
        private async void Generate_Bill(object sender, EventArgs e)
        {
            App.ShowLoading(true);
            ActualBill = this.BindingContext as DataContracts.Model.Bill;
            ActualBill.EmissionDate = null;
            ActualBill.LastSendDate = null;
            ActualBill.ClientId     = ActualBill.SoldProductsJSON.ClientId;
            try
            {
                // Remove Unused Products
                ActualBill.SoldProductsJSON.RemoveProductsWithoutQuantity();

                var vCreateUserBills = new BusinessProxy.Bill.CreateBill();
                var vBillRequest     = new BusinessProxy.Models.BillRequest
                {
                    SSOT       = App.SSOT,
                    User       = App.ActualUser,
                    ClientBill = ActualBill,
                };
                // For testing
                var jsonTEST             = Newtonsoft.Json.JsonConvert.SerializeObject(vBillRequest);
                var vCreateBillsResponse = await vCreateUserBills.GetDataAsync(vBillRequest);


                if (vCreateBillsResponse != null)
                {
                    if (vCreateBillsResponse.IsSuccessful)
                    {
                        App.ShowLoading(false);
                        if (vCreateBillsResponse.PdfInvoice != null)
                        {
                            DependencyService.Get <IReportingService>().SaveAndOpenFile("Factura" + vCreateBillsResponse.BillNumber + ".pdf",
                                                                                        vCreateBillsResponse.PdfInvoice);
                        }

                        await Navigation.PopToRootAsync();

                        await Toasts.ToastRunner.ShowSuccessToast("Sistema",
                                                                  string.IsNullOrEmpty(vCreateBillsResponse.UserMessage)?"Se procesará la solicitud de la factura N°" + vCreateBillsResponse.BillNumber : vCreateBillsResponse.UserMessage
                                                                  );
                    }
                    else
                    {
                        App.ShowLoading(false);
                        //await Toasts.ToastRunner.ShowErrorToast("Sistema", vCreateBillsResponse.UserMessage);
                        await DisplayAlert("", string.IsNullOrEmpty(vCreateBillsResponse.UserMessage)?
                                           vCreateBillsResponse.TechnicalMessage : vCreateBillsResponse.UserMessage, "Ok");

                        await Navigation.PopToRootAsync();
                    }
                }
                else
                {
                    App.ShowLoading(false);
                    await DisplayAlert("", "Respuesta Null", "Ok");
                }
            }
            catch (Exception vEx)
            {
                await DisplayAlert("Error", vEx.ToString(), "Ok");
            }
        }