public OutputInvoiceResponse Delete(Guid identifier)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();

                SqliteCommand insertCommand = new SqliteCommand();
                insertCommand.Connection = db;

                //Use parameterized query to prevent SQL injection attacks
                insertCommand.CommandText = "DELETE FROM OutputInvoices WHERE Identifier = @Identifier";
                insertCommand.Parameters.AddWithValue("@Identifier", identifier);

                try
                {
                    insertCommand.ExecuteNonQuery();
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    return(response);
                }
                db.Close();

                response.Success = true;
                return(response);
            }
        }
        public OutputInvoiceResponse Update(OutputInvoiceViewModel oi)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                //List<OutputInvoiceItem> outputInvoiceItems = oi.ConvertToOutputInvoice().InvoiceItems;
                //oi.SumOfBase = outputInvoiceItems.Sum(x => x.Base);
                //oi.SumOfPdvValue = outputInvoiceItems.Sum(x => x.Pdv);
                //oi.SumOfTotalValue = outputInvoiceItems.Sum(x => x.TotalPrice);
                //oi.OutputInvoiceSubItems = null;

                OutputInvoice updatedOutputInvoice = unitOfWork.GetOutputInvoiceRepository().Update(oi.ConvertToOutputInvoice());

                //unitOfWork.GetOutputInvoiceItemRepository().UpdateOutputInvoiceItems(outputInvoiceItems ?? new List<OutputInvoiceItem>(), updatedOutputInvoice);

                unitOfWork.Save();

                response.OutputInvoice = updatedOutputInvoice.ConvertToOutputInvoiceViewModel();
                response.Success       = true;
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
Пример #3
0
        public JsonResult CancelOutputInvoice([FromBody] OutputInvoiceViewModel inOI)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                if (inOI != null && inOI.Id > 0)
                {
                    response = this.outputInvoiceService.CancelOutputInvoice(inOI.Id);
                }
                else
                {
                    response.Success = false;
                    string errorMessage = "Prilikom storniranja izlaznog racuna id nije prosledjen.";
                    response.Message = errorMessage;
                    Console.WriteLine(errorMessage);
                }
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }

            return(Json(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting = Newtonsoft.Json.Formatting.Indented
            }));
        }
        public OutputInvoiceResponse Create(OutputInvoiceViewModel outputInvoice)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            using (SqliteConnection db = new SqliteConnection("Filename=SirmiumERPGFC.db"))
            {
                db.Open();
                SqliteCommand insertCommand = db.CreateCommand();
                insertCommand.CommandText = SqlCommandInsertPart;

                try
                {
                    insertCommand = AddCreateParameters(insertCommand, outputInvoice);
                    insertCommand.ExecuteNonQuery();
                }
                catch (SqliteException error)
                {
                    MainWindow.ErrorMessage = error.Message;
                    response.Success        = false;
                    response.Message        = error.Message;
                    return(response);
                }
                db.Close();

                response.Success = true;
                return(response);
            }
        }
        public OutputInvoiceResponse GetNewCodeValue()
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response = WpfApiHandler.GetFromApi <OutputInvoiceViewModel, OutputInvoiceResponse>("GetNewCodeValue", null);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }
            return(response);
        }
        public OutputInvoiceResponse Create(OutputInvoiceViewModel re)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response = WpfApiHandler.SendToApi <OutputInvoiceViewModel, OutputInvoiceResponse>(re, "Create");
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
        private void BtnSubmit_Click(object sender, RoutedEventArgs e)
        {
            #region Validation

            if (OutputInvoiceDocumentsFromDB == null || OutputInvoiceDocumentsFromDB.Count == 0)
            {
                MainWindow.WarningMessage = ((string)Application.Current.FindResource("Ne_postoje_stavke_za_proknjižavanje"));
                return;
            }

            #endregion

            Thread td = new Thread(() => {
                SubmitButtonContent = ((string)Application.Current.FindResource("Čuvanje_u_tokuTriTacke"));
                SubmitButtonEnabled = false;

                CurrentOutputInvoice.OutputInvoiceDocuments = OutputInvoiceDocumentsFromDB;
                OutputInvoiceResponse response = outputInvoiceService.Create(CurrentOutputInvoice);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Greška_kod_čuvanja_na_serveruUzvičnik"));
                    SubmitButtonContent     = ((string)Application.Current.FindResource("Proknjiži"));
                    SubmitButtonEnabled     = true;
                }

                if (response.Success)
                {
                    MainWindow.SuccessMessage = ((string)Application.Current.FindResource("Podaci_su_uspešno_sačuvaniUzvičnik"));
                    SubmitButtonContent       = ((string)Application.Current.FindResource("Proknjiži"));
                    SubmitButtonEnabled       = true;

                    OutputInvoiceCreatedUpdated();

                    Application.Current.Dispatcher.BeginInvoke(
                        System.Windows.Threading.DispatcherPriority.Normal,
                        new Action(() =>
                    {
                        FlyoutHelper.CloseFlyout(this);
                    })
                        );
                }
            });
            td.IsBackground = true;
            td.Start();
        }
        public OutputInvoiceResponse GetNewCodeValue()
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response.OutputInvoiceCode = unitOfWork.GetOutputInvoiceRepository().GetNewCodeValue();
                response.Success           = true;
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
Пример #9
0
        public JsonResult GetNewCodeValue()
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response = outputInvoiceService.GetNewCodeValue();
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }
            return(new JsonResult(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting = Newtonsoft.Json.Formatting.Indented
            }));
        }
Пример #10
0
        public JsonResult SetInvoiceLock(int id, bool locked)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response = outputInvoiceService.SetInvoiceLock(id, locked);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }
            return(Json(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting = Newtonsoft.Json.Formatting.Indented
            }));
        }
        public OutputInvoiceResponse Delete(Guid identifier)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                OutputInvoiceViewModel re = new OutputInvoiceViewModel();
                re.Identifier = identifier;
                response      = WpfApiHandler.SendToApi <OutputInvoiceViewModel, OutputInvoiceResponse>(re, "Delete");
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
        public OutputInvoiceResponse CancelOutputInvoice(int id)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                OutputInvoiceViewModel oi = new OutputInvoiceViewModel();
                oi.Id    = id;
                response = WpfApiHandler.SendToApi <OutputInvoiceViewModel, OutputInvoiceResponse>(oi, "CancelOutputInvoice");
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
Пример #13
0
        public JsonResult Update([FromBody] OutputInvoiceViewModel c)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response = this.outputInvoiceService.Update(c);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
                Console.WriteLine(ex.Message);
            }

            return(Json(response, new Newtonsoft.Json.JsonSerializerSettings()
            {
                Formatting = Newtonsoft.Json.Formatting.Indented
            }));
        }
        public OutputInvoiceResponse SetInvoiceLock(int id, bool locked)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response.OutputInvoice = unitOfWork.GetOutputInvoiceRepository().SetInvoiceLock(id, locked)
                                         .ConvertToOutputInvoiceViewModel();
                unitOfWork.Save();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
        public OutputInvoiceResponse GetOutputInvoice(int id)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                response = WpfApiHandler.GetFromApi <OutputInvoiceViewModel, OutputInvoiceResponse>("GetOutputInvoice", new Dictionary <string, string>()
                {
                    { "id", id.ToString() }
                });
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
Пример #16
0
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            // Check if any data is selected for delete
            if (CurrentOutputInvoice == null)
            {
                MainWindow.ErrorMessage = ("Morate odabrati iznizni račun za brisanje!");
                return;
            }

            // Show blur effects
            SirmiumERPVisualEffects.AddEffectOnDialogShow(this);

            // Create confirmation window
            DeleteConfirmation deleteConfirmationForm = new DeleteConfirmation("izlazni račun", CurrentOutputInvoice.Code.ToString());

            var showDialog = deleteConfirmationForm.ShowDialog();

            if (showDialog != null && showDialog.Value)
            {
                // Delete business partner
                OutputInvoiceResponse response = outputInvoiceService.Delete(CurrentOutputInvoice.Id);

                // Display data and notifications
                if (response.Success)
                {
                    MainWindow.SuccessMessage = ("Podaci su uspešno obrisani!");
                    Thread displayThread = new Thread(() => PopulateData());
                    displayThread.IsBackground = true;
                    displayThread.Start();
                }
                else
                {
                    MainWindow.ErrorMessage = (response.Message);
                }
            }

            // Remove blur effects
            SirmiumERPVisualEffects.RemoveEffectOnDialogShow(this);

            dgOutputInvoices.Focus();
        }
        public OutputInvoiceResponse Delete(int id)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                OutputInvoice deletedOutputInvoice = unitOfWork.GetOutputInvoiceRepository().Delete(id);

                unitOfWork.Save();

                response.OutputInvoice = deletedOutputInvoice.ConvertToOutputInvoiceViewModel();
                response.Success       = true;
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
        public OutputInvoiceResponse CancelOutputInvoice(int id)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                OutputInvoice outputInvoice = unitOfWork.GetOutputInvoiceRepository().CancelOutputInvoice(id);
                if (outputInvoice != null && outputInvoice.Active != false)
                {
                    unitOfWork.Save();
                }

                response.OutputInvoice = outputInvoice.ConvertToOutputInvoiceViewModel();
                response.Success       = true;
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
        public OutputInvoiceResponse Create(OutputInvoiceViewModel outputInvoice)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                //Backup items
                List <OutputInvoiceNoteViewModel> outputInvoiceNotes = outputInvoice
                                                                       .OutputInvoiceNotes?.ToList() ?? new List <OutputInvoiceNoteViewModel>();
                outputInvoice.OutputInvoiceNotes = null;

                List <OutputInvoiceDocumentViewModel> outputInvoiceDocuments = outputInvoice
                                                                               .OutputInvoiceDocuments?.ToList() ?? new List <OutputInvoiceDocumentViewModel>();
                outputInvoice.OutputInvoiceDocuments = null;

                OutputInvoice createdOutputInvoice = unitOfWork.GetOutputInvoiceRepository()
                                                     .Create(outputInvoice.ConvertToOutputInvoice());

                // Update items
                if (outputInvoiceNotes != null && outputInvoiceNotes.Count > 0)
                {
                    foreach (OutputInvoiceNoteViewModel item in outputInvoiceNotes
                             .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <OutputInvoiceNoteViewModel>())
                    {
                        item.OutputInvoice = new OutputInvoiceViewModel()
                        {
                            Id = createdOutputInvoice.Id
                        };
                        item.ItemStatus = ItemStatus.Submited;
                        var createdItem = unitOfWork.GetOutputInvoiceNoteRepository().Create(item.ConvertToOutputInvoiceNote());
                    }

                    foreach (OutputInvoiceNoteViewModel item in outputInvoiceNotes
                             .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <OutputInvoiceNoteViewModel>())
                    {
                        item.OutputInvoice = new OutputInvoiceViewModel()
                        {
                            Id = createdOutputInvoice.Id
                        };
                        unitOfWork.GetOutputInvoiceNoteRepository().Create(item.ConvertToOutputInvoiceNote());

                        unitOfWork.GetOutputInvoiceNoteRepository().Delete(item.Identifier);
                    }
                }

                // Update items
                if (outputInvoiceDocuments != null && outputInvoiceDocuments.Count > 0)
                {
                    foreach (OutputInvoiceDocumentViewModel item in outputInvoiceDocuments
                             .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <OutputInvoiceDocumentViewModel>())
                    {
                        item.OutputInvoice = new OutputInvoiceViewModel()
                        {
                            Id = createdOutputInvoice.Id
                        };
                        item.ItemStatus = ItemStatus.Submited;
                        var createdItem = unitOfWork.GetOutputInvoiceDocumentRepository().Create(item.ConvertToOutputInvoiceDocument());
                    }

                    foreach (OutputInvoiceDocumentViewModel item in outputInvoiceDocuments
                             .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <OutputInvoiceDocumentViewModel>())
                    {
                        item.OutputInvoice = new OutputInvoiceViewModel()
                        {
                            Id = createdOutputInvoice.Id
                        };
                        unitOfWork.GetOutputInvoiceDocumentRepository().Create(item.ConvertToOutputInvoiceDocument());

                        unitOfWork.GetOutputInvoiceDocumentRepository().Delete(item.Identifier);
                    }
                }

                unitOfWork.Save();

                response.OutputInvoice = createdOutputInvoice.ConvertToOutputInvoiceViewModel();
                response.Success       = true;
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }