public void DisplayData()
        {
            BusinessPartnerDataLoading = true;

            BusinessPartnerListResponse response = new BusinessPartnerSQLiteRepository()
                                                   .GetBusinessPartnersByPage(MainWindow.CurrentCompanyId, BusinessPartnerSearchObject, currentPage, itemsPerPage);

            if (response.Success)
            {
                BusinessPartnersFromDB = new ObservableCollection <BusinessPartnerViewModel>(response.BusinessPartners ?? new List <BusinessPartnerViewModel>());
                totalItems             = response.TotalItems;
            }
            else
            {
                BusinessPartnersFromDB  = new ObservableCollection <BusinessPartnerViewModel>();
                totalItems              = 0;
                MainWindow.ErrorMessage = response.Message;
            }

            int itemFrom = totalItems != 0 ? (currentPage - 1) * itemsPerPage + 1 : 0;
            int itemTo   = currentPage * itemsPerPage < totalItems ? currentPage * itemsPerPage : totalItems;

            PaginationDisplay = itemFrom + " - " + itemTo + " od " + totalItems;

            BusinessPartnerDataLoading = false;
        }
        private void PopulateFromDb(string filterString = "")
        {
            Application.Current.Dispatcher.BeginInvoke(
                System.Windows.Threading.DispatcherPriority.Normal,
                new Action(() =>
                {
                    //new BusinessPartnerSQLiteRepository().Sync(businessPartnerService);

                    BusinessPartnerListResponse businessPartnerResp = new BusinessPartnerSQLiteRepository().GetBusinessPartnersForPopup(MainWindow.CurrentCompanyId, filterString);
                    if (businessPartnerResp.Success)
                    {
                        BusinessPartnersFromDB = new ObservableCollection<BusinessPartnerViewModel>();
                        foreach (var item in businessPartnerResp.BusinessPartners.Where(x => !String.IsNullOrEmpty(x.Name)))
                        {
                            BusinessPartnersFromDB.Add(item);
                        }
                        foreach (var item in businessPartnerResp.BusinessPartners.Where(x => !String.IsNullOrEmpty(x.NameGer)))
                        {
                            item.Name = item.NameGer;
                            BusinessPartnersFromDB.Add(item);
                        }
                    }
                    else
                        BusinessPartnersFromDB = new ObservableCollection<BusinessPartnerViewModel>();
                })
            );
        }
        private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            if (CurrentBusinessPartner == null)
            {
                MainWindow.WarningMessage = "Morate odabrati firmu za brisanje!";
                return;
            }

            SirmiumERPVisualEffects.AddEffectOnDialogShow(this);

            // Create confirmation window
            DeleteConfirmation deleteConfirmationForm = new DeleteConfirmation("firma", CurrentBusinessPartner.Name + CurrentBusinessPartner.Code);
            var showDialog = deleteConfirmationForm.ShowDialog();

            if (showDialog != null && showDialog.Value)
            {
                BusinessPartnerResponse response = businessPartnerService.Delete(CurrentBusinessPartner.Identifier);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = "Greška kod brisanja sa servera!";
                    SirmiumERPVisualEffects.RemoveEffectOnDialogShow(this);
                    return;
                }

                response = new BusinessPartnerSQLiteRepository().Delete(CurrentBusinessPartner.Identifier);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = "Greška kod lokalnog brisanja!";
                    SirmiumERPVisualEffects.RemoveEffectOnDialogShow(this);
                    return;
                }

                MainWindow.SuccessMessage = "Firma je uspešno obrisana!";

                Thread displayThread = new Thread(() => PopulateData());
                displayThread.IsBackground = true;
                displayThread.Start();
            }

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

            dgBusinessPartners.Focus();
        }
Beispiel #4
0
        public void DisplayBusinessPartnersData(ObservableCollection <BusinessPartnerByConstructionSiteViewModel> businessPartnersOnConstructionSites)
        {
            BusinessPartnerDataLoading = true;

            BusinessPartnerListResponse response = new BusinessPartnerSQLiteRepository()
                                                   .GetBusinessPartnersByPage(MainWindow.CurrentCompanyId, new BusinessPartnerViewModel(), currentPage, Int32.MaxValue);

            if (response.Success)
            {
                List <BusinessPartnerViewModel> bps = response.BusinessPartners
                                                      .Where(x => businessPartnersOnConstructionSites.Select(y => y.BusinessPartner.Identifier).Contains(x.Identifier))
                                                      .ToList();
                BusinessPartnersFromDB = new ObservableCollection <BusinessPartnerViewModel>(bps);
            }
            else
            {
                BusinessPartnersFromDB  = new ObservableCollection <BusinessPartnerViewModel>();
                MainWindow.ErrorMessage = response.Message;
            }

            BusinessPartnerDataLoading = false;
        }
        private void btnSync_Click(object sender, RoutedEventArgs e)
        {
            Thread th = new Thread(() =>
            {
                BusinessPartnerButtonContent = " Sinhronizacija u toku... ";
                BusinessPartnerButtonEnabled = false;

                BusinessPartnerSQLiteRepository sqlLite = new BusinessPartnerSQLiteRepository();

                SyncBusinessPartnerRequest request = new SyncBusinessPartnerRequest();
                request.UnSyncedBusinessPartners   = sqlLite.GetUnSyncedBusinessPartners().BusinessPartners;
                request.LastUpdatedAt = sqlLite.GetLastUpdatedAt(MainWindow.CurrentCompanyId);

                BusinessPartnerListResponse response = businessPartnerService.Sync(request);
                if (response.Success)
                {
                    List <BusinessPartnerViewModel> businessPartnersFromDB = response.BusinessPartners;
                    int total   = businessPartnersFromDB.Count;
                    int counter = 1;
                    foreach (var businessPartner in businessPartnersFromDB.OrderBy(x => x.Id))
                    {
                        BusinessPartnerButtonContent = " Sinhronizacija u toku " + counter++ + " od " + total;
                        sqlLite.Delete(businessPartner.Identifier);
                        businessPartner.IsSynced = true;
                        sqlLite.Create(businessPartner);
                    }

                    MainWindow.SuccessMessage = "Podaci su uspešno sinhronizovani (" + businessPartnersFromDB.Count + ")!";
                }

                PopulateData();

                BusinessPartnerButtonContent = " Sinhronizacija lekova sa serverom ";
                BusinessPartnerButtonEnabled = true;
            });

            th.IsBackground = true;
            th.Start();
        }
Beispiel #6
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            #region Validation

            if (String.IsNullOrEmpty(CurrentBusinessPartner.Mobile))
            {
                MainWindow.WarningMessage = "Morate uneti mobilni!";
                return;
            }

            #endregion

            Thread th = new Thread(() =>
            {
                SaveButtonContent = " Čuvanje u toku... ";
                SaveButtonEnabled = false;

                CurrentBusinessPartner.CreatedBy = new UserViewModel()
                {
                    Id = MainWindow.CurrentUserId
                };

                CurrentBusinessPartner.IsSynced  = false;
                CurrentBusinessPartner.UpdatedAt = DateTime.Now;

                BusinessPartnerResponse response = new BusinessPartnerSQLiteRepository().Delete(CurrentBusinessPartner.Identifier);
                response = new BusinessPartnerSQLiteRepository().Create(CurrentBusinessPartner);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = "Greška kod lokalnog čuvanja!";
                    SaveButtonContent       = " Sačuvaj ";
                    SaveButtonEnabled       = true;
                    return;
                }

                response = businessPartnerService.Create(CurrentBusinessPartner);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = "Podaci su sačuvani u lokalu!. Greška kod čuvanja na serveru!";
                    SaveButtonContent       = " Sačuvaj ";
                    SaveButtonEnabled       = true;
                }

                if (response.Success)
                {
                    new BusinessPartnerSQLiteRepository().UpdateSyncStatus(response.BusinessPartner.Identifier, response.BusinessPartner.Id, true);
                    MainWindow.SuccessMessage = "Podaci su uspešno sačuvani!";
                    SaveButtonContent         = " Sačuvaj ";
                    SaveButtonEnabled         = true;

                    BusinessPartnerCreatedUpdated();

                    if (IsCreateProcess)
                    {
                        CurrentBusinessPartner            = new BusinessPartnerViewModel();
                        CurrentBusinessPartner.Identifier = Guid.NewGuid();
                        CurrentBusinessPartner.Code       = new BusinessPartnerSQLiteRepository().GetNewCodeValue();

                        Application.Current.Dispatcher.BeginInvoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(() =>
                        {
                            txtName.Focus();
                        })
                            );
                    }
                    else
                    {
                        Application.Current.Dispatcher.BeginInvoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(() =>
                        {
                            FlyoutHelper.CloseFlyout(this);
                        })
                            );
                    }
                }
            });
            th.IsBackground = true;
            th.Start();
        }
        public BusinessPartner_ReportWindow(BusinessPartnerViewModel businessPartnerView)
        {
            InitializeComponent();

            string path = "";

            try
            {
                rdlcBusinessPartnerReport.LocalReport.DataSources.Clear();

                List <BusinessPartnersReportViewModel> businessPartner      = new List <BusinessPartnersReportViewModel>();
                List <BusinessPartnerViewModel>        BusinessPartnerItems = new BusinessPartnerSQLiteRepository().GetBusinessPartnersByPage(MainWindow.CurrentCompanyId, BusinessPartnerSearchObject, 1, 50).BusinessPartners;
                int counter = 1;
                foreach (var BusinessPartnerItem in BusinessPartnerItems)
                {
                    businessPartner.Add(new BusinessPartnersReportViewModel()
                    {
                        OrderNumbersForBusinessPartners = counter++,
                        InternalCode   = BusinessPartnerItem?.InternalCode ?? "",
                        Name           = BusinessPartnerItem?.Name ?? "",
                        NameGer        = BusinessPartnerItem?.NameGer ?? "",
                        TaxNr          = BusinessPartnerItem?.TaxNr ?? "",
                        Valuta         = BusinessPartnerItem?.DueDate.ToString("#.00") ?? "",
                        VatDescription = BusinessPartnerItem?.Vat?.Amount.ToString() ?? "",
                        PIO            = BusinessPartnerItem?.PIO ?? "",
                        Customer       = BusinessPartnerItem?.Customer ?? "",
                        DiscountName   = BusinessPartnerItem?.Discount?.Amount.ToString("#.00") ?? "",
                        IsInPDV        = BusinessPartnerItem?.IsInPDV.ToString() ?? ""
                    });
                }
                var rpdsModel = new ReportDataSource()
                {
                    Name  = "DataSet1",
                    Value = businessPartner
                };
                rdlcBusinessPartnerReport.LocalReport.DataSources.Add(rpdsModel);

                //List<ReportParameter> reportParams = new List<ReportParameter>();
                //string parameterText = "Dana " + (CurrentInputInvoice?.InvoiceDate.ToString("dd.MM.yyyy") ?? "") + " na stočni depo klanice Bioesen primljeno je:";
                //reportParams.Add(new ReportParameter("txtInputInvoiceDate", parameterText));


                //var businessPartnerList = new List<InvoiceBusinessPartnerViewModel>();
                //businessPartnerList.Add(new InvoiceBusinessPartnerViewModel() { Name = "Pera peric " });
                //var businessPartnerModel = new ReportDataSource() { Name = "DataSet2", Value = businessPartnerList };
                //rdlcInputNoteReport.LocalReport.DataSources.Add(businessPartnerModel);


                string exeFolder    = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
                string ContentStart = System.IO.Path.Combine(exeFolder, @"RdlcReports\BusinessPartners\BusinessPartnersReport.rdlc");
                rdlcBusinessPartnerReport.LocalReport.ReportPath = ContentStart;
                // rdlcBusinessPartnerReport.LocalReport.SetParameters(reportParams);
                rdlcBusinessPartnerReport.SetDisplayMode(DisplayMode.PrintLayout);
                rdlcBusinessPartnerReport.Refresh();
                rdlcBusinessPartnerReport.ZoomMode    = ZoomMode.Percent;
                rdlcBusinessPartnerReport.ZoomPercent = 100;
                rdlcBusinessPartnerReport.RefreshReport();
            } catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #8
0
        private void BtnSubmit_Click(object sender, RoutedEventArgs e)
        {
            #region Validation

            if (CurrentBusinessPartner?.InternalCode == null)
            {
                MainWindow.WarningMessage = ((string)Application.Current.FindResource("Obavezno_poljeDvotačka_Šifra"));
                return;
            }

            #endregion

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

                CurrentBusinessPartner.IsSynced = false;
                CurrentBusinessPartner.Company  = new CompanyViewModel()
                {
                    Id = MainWindow.CurrentCompanyId
                };
                CurrentBusinessPartner.CreatedBy = new UserViewModel()
                {
                    Id = MainWindow.CurrentUserId
                };

                BusinessPartnerResponse response = new BusinessPartnerSQLiteRepository().Create(CurrentBusinessPartner);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Greška_kod_lokalnog_čuvanjaUzvičnik"));
                    SubmitButtonContent     = ((string)Application.Current.FindResource("Proknjiži"));
                    SubmitButtonEnabled     = true;
                }

                response = businessPartnerService.Create(CurrentBusinessPartner);
                if (!response.Success)
                {
                    MainWindow.ErrorMessage = ((string)Application.Current.FindResource("Podaci_su_sačuvani_u_lokaluUzvičnikTačka_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;

                    new BusinessPartnerSQLiteRepository().Sync(businessPartnerService);

                    BusinessPartnerCreatedUpdated();

                    Application.Current.Dispatcher.BeginInvoke(
                        System.Windows.Threading.DispatcherPriority.Normal,
                        new Action(() =>
                    {
                        FlyoutHelper.CloseFlyout(this);
                    })
                        );
                }
            });
            td.IsBackground = true;
            td.Start();
        }
        private async void MetroWindow_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            Thread td = new Thread(() =>
            {
                List <ServiceInterfaces.ViewModels.Common.Invoices.InvoiceItemViewModel> itemsFromDB = new List <ServiceInterfaces.ViewModels.Common.Invoices.InvoiceItemViewModel>();

                var response = new InvoiceItemSQLiteRepository().GetInvoiceItemsByInvoice(MainWindow.CurrentCompanyId, CurrentInvoice.Identifier);

                if (response.Success)
                {
                    itemsFromDB.AddRange(response.InvoiceItems ?? new List <ServiceInterfaces.ViewModels.Common.Invoices.InvoiceItemViewModel>());
                }

                Dispatcher.BeginInvoke(new Action(() =>
                {
                    rdlcInvoiceReport.LocalReport.DataSources.Clear();
                }));



                List <RdlcReports.Invoices.InvoiceItemViewModel> items = new List <RdlcReports.Invoices.InvoiceItemViewModel>();

                int id = 1;
                foreach (var item in itemsFromDB)
                {
                    var quantity = GetFormatted((double)item.Quantity, "00");

                    double?priceWithoutPDVSuffix = null;
                    double?priceWithPDVSuffix    = null;
                    double?amountSuffix          = null;
                    double?pdvValueSuffix        = null;
                    double?rebateSuffix          = null;

                    if (CurrentInvoice.CurrencyExchangeRate != null)
                    {
                        priceWithoutPDVSuffix = (double)((double)item.BaseAfterDiscount / CurrentInvoice.CurrencyExchangeRate.Value);
                        priceWithPDVSuffix    = (double)((double)(item.BaseAfterDiscount + item.PDV) / CurrentInvoice.CurrencyExchangeRate.Value);
                        amountSuffix          = (double)((double)item.Amount / CurrentInvoice.CurrencyExchangeRate.Value);
                        pdvValueSuffix        = (double)((double)item.PDV / CurrentInvoice.CurrencyExchangeRate.Value);
                        rebateSuffix          = (double)((double)item.TotalDiscount / CurrentInvoice.CurrencyExchangeRate.Value);
                    }

                    items.Add(new RdlcReports.Invoices.InvoiceItemViewModel()
                    {
                        Id          = (id++).ToString(),
                        ProductCode = item.Code,
                        ProductName = item.Name + Environment.NewLine
                                      + CurrentInvoice.CurrencyCode,
                        UnitOfMeasurement = item.UnitOfMeasure,
                        Quantity          = quantity + Environment.NewLine + quantity,
                        PDVPercent        = item.PDVPercent + "%",
                        PriceWithoutPDV   = GetFormatted((double)item.BaseAfterDiscount) + Environment.NewLine
                                            + GetFormatted(priceWithoutPDVSuffix),
                        PriceWithPDV = GetFormatted((double)(item.BaseAfterDiscount + item.PDV)) + Environment.NewLine
                                       + GetFormatted(priceWithPDVSuffix),
                        Amount = GetFormatted((double)item.Amount) + Environment.NewLine
                                 + GetFormatted(amountSuffix),
                        PDVValue = GetFormatted((double)item.PDV) + Environment.NewLine
                                   + GetFormatted(pdvValueSuffix),
                        Rebate = GetFormatted((double)item.TotalDiscount) + Environment.NewLine
                                 + GetFormatted(rebateSuffix)
                    });
                }

                var buyerResponse = new BusinessPartnerSQLiteRepository().GetBusinessPartner(CurrentInvoice.Buyer.Identifier);

                BusinessPartnerViewModel buyer = buyerResponse?.BusinessPartner;


                double sumOfAmount           = (double)itemsFromDB.Sum(x => x.Amount);
                double sumOfAmountInCurrency = (double)itemsFromDB.Sum(x => x.CurrencyPriceWithPDV);
                double sumOfBase             = (double)itemsFromDB.Sum(x => x.BaseAfterDiscount); // sum of base
                double sumOfPDV            = (double)itemsFromDB.Sum(x => x.PDV);                 // sum of base
                double?sumOfBaseInCurrency = null;

                if (CurrentInvoice.CurrencyExchangeRate != null)
                {
                    sumOfBaseInCurrency = (double)(sumOfBase / CurrentInvoice.CurrencyExchangeRate);
                }
                WpfAppCommonCode.Helpers.BrojUTekst brText = new WpfAppCommonCode.Helpers.BrojUTekst()
                {
                    Hrvatskezik = false
                };

                string preFormattedText = GetFormatted(sumOfAmount, "00");
                string textFormTotal    = brText.PretvoriBrojUTekst(preFormattedText, ',', "RSD", "");

                List <RdlcReports.Invoices.InvoiceViewModel> invoice = new List <RdlcReports.Invoices.InvoiceViewModel>()
                {
                    new RdlcReports.Invoices.InvoiceViewModel()
                    {
                        InvoiceNumber                  = CurrentInvoice.InvoiceNumber,
                        CityAndInvoiceDate             = CurrentInvoice.City?.Name + ", " + CurrentInvoice.InvoiceDate.ToString("dd.MM.yyyy"),
                        DeliveryDateOfGoodsAndServices = CurrentInvoice.DateOfPayment?.ToString("dd.MM.yyyy"),
                        DueDate = CurrentInvoice.DueDate.ToString("dd.MM.yyyy"),

                        BusinessPartnerCode    = buyer?.InternalCode,
                        BusinessPartnerPIB     = buyer?.PIB,
                        BusinessPartnerMB      = buyer.IdentificationNumber,
                        BusinessPartnerName    = buyer?.Name,
                        BusinessPartnerAddress = CurrentInvoice.Address,
                        BusinessPartnerCity    = CurrentInvoice.City?.ZipCode + " " + CurrentInvoice.City?.Name,

                        Amount           = GetFormatted((double)sumOfBase),
                        AmountInCurrency = (CurrentInvoice?.CurrencyExchangeRate == null ? "" : GetFormatted((double)sumOfBaseInCurrency)),

                        TotalAmount           = GetFormatted((double)sumOfAmount),
                        TotalAmountInCurrency = (CurrentInvoice?.CurrencyExchangeRate == null ? "" : GetFormatted((double)sumOfAmountInCurrency)),
                        TotalBase             = GetFormatted((double)sumOfBase),

                        TotalPDV = GetFormatted((double)sumOfPDV),

                        TotalAmountInText = textFormTotal
                    }
                };


                Dispatcher.BeginInvoke(new Action(() =>
                {
                    var rpdsModel = new ReportDataSource()
                    {
                        Name  = "Invoices",
                        Value = invoice
                    };

                    var rdpsitems = new ReportDataSource()
                    {
                        Name  = "InvoiceItems",
                        Value = items
                    };
                    rdlcInvoiceReport.LocalReport.DataSources.Add(rpdsModel);
                    rdlcInvoiceReport.LocalReport.DataSources.Add(rdpsitems);

                    string exeFolder = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

                    switch (CurrentInvoice.PdvType)
                    {
                    case 1:     // sa pdv
                        {
                            string ContentStart = @"SirmiumERPGFC.RdlcReports.Invoices.Invoice_WithPDV.rdlc";
                            rdlcInvoiceReport.LocalReport.ReportEmbeddedResource = ContentStart;
                            break;
                        }

                    case 2:     // bez pdv
                        {
                            string ContentStart = @"SirmiumERPGFC.RdlcReports.Invoices.Invoice_WithoutPDV.rdlc";
                            rdlcInvoiceReport.LocalReport.ReportEmbeddedResource = ContentStart;
                            break;
                        }

                    case 3:     // nije u sistemu pdv
                        {
                            string ContentStart = @"SirmiumERPGFC.RdlcReports.Invoices.Invoice_NotInPDV.rdlc";
                            rdlcInvoiceReport.LocalReport.ReportEmbeddedResource = ContentStart;
                            break;
                        }
                    }
                    //rdlcInvoiceReport.LocalReport.ReportPath = ContentStart;
                    // rdlcInputInvoiceReport.LocalReport.SetParameters(reportParams);
                    rdlcInvoiceReport.SetDisplayMode(DisplayMode.PrintLayout);
                    rdlcInvoiceReport.Refresh();
                    rdlcInvoiceReport.ZoomMode    = ZoomMode.Percent;
                    rdlcInvoiceReport.ZoomPercent = 100;
                    rdlcInvoiceReport.RefreshReport();
                }));
            });

            td.IsBackground = true;
            td.Start();
        }