Beispiel #1
0
 /// <summary>
 /// Implements the execution of <see cref="LoadedCommand" />
 /// </summary>
 private async void LoadedCommand_Execute(object obj)
 {
     SelectedPurchaseVm   = new LiquorShop.Classes.PurchaseVm();
     NewPurchase          = new Purchase();
     PostPurchaseToLedger = false;
     IsCash   = true;
     IsCredit = false;
     IsBank   = false;
     await Task.Run(() => InitAsync()).ContinueWith(a => { IsDataNotLoaded = false; IsDataLoaded = true; });
 }
Beispiel #2
0
        /// <summary>
        /// Implements the execution of <see cref="SavePurchasesCommand" />
        /// </summary>
        private void SavePurchasesCommand_Execute(object obj)
        {
            if (PurchaseSubTotal < 0)
            {
                MessageBox.Show("Total Amount Not Entered");
                return;
            }
            voice = new Invoice();
            try
            {
                var confirm = MessageBox.Show("Are You Sure You Want to Save This Invoice?\n Please Recheck Your Invoice For Any Mistakes.", "Confirmation", MessageBoxButton.YesNoCancel);
                if (confirm == MessageBoxResult.No || confirm == MessageBoxResult.Cancel)
                {
                    return;
                }

                if (IsDirty)
                {
                    MessageBox.Show("There may be some transactions left  to add");
                    return;
                }
                var data = SelectedPurchaseVm.Purchases;
                if (data.Count < 1)
                {
                    return;
                }
                decimal taxable = 0;
                foreach (var item in data)
                {
                    taxable += item.LineTotalAmount;
                }
                SelectedPurchaseVm.TaxableAmount = taxable;
                if (SelectedPurchaseVm.Total != PurchaseSubTotal)
                {
                    SelectedPurchaseVm.Total = PurchaseSubTotal;
                }

                voice.Date                = SelectedPurchaseVm.Date;
                voice.InvoiceNumber       = SelectedPurchaseVm.InvoiceNumber;
                voice.Supplier            = SelectedPurchaseVm.Supplier;
                SelectedPurchaseVm.Total -= SelectedPurchaseVm.Discount;
                voice.Vat = SelectedPurchaseVm.VatAmount;
                SelectedPurchaseVm.Total += SelectedPurchaseVm.VatAmount;

                voice.TaxableAmount = SelectedPurchaseVm.TaxableAmount;
                voice.Discount      = SelectedPurchaseVm.Discount;
                voice.Due           = SelectedPurchaseVm.Due;
                voice.AmountPaid    = SelectedPurchaseVm.AmountPaid;
                voice.Total         = PurchaseSubTotal;
                voice.Purchases     = data;

                var save = Service.SavePurchases(voice);

                if (PostPurchaseToLedger)
                {
                    if (save > 0)
                    {
                        var saccount         = AccountService.GetLedgerAccountByName(voice.Supplier.SupplierName);
                        LedgerTransaction lt = new LedgerTransaction();
                        lt.Date   = DateTime.Now;
                        lt.UserId = 1;
                        if (string.IsNullOrEmpty(PurchaseNarration))
                        {
                            lt.Description = "purchases from " + saccount.AccountName;
                        }
                        else
                        {
                            lt.Description = PurchaseNarration;
                        }

                        var result = AccountService.SaveLedgerTransaction(lt);
                        if (result > 0)
                        {
                            ResolvePaymentMode(voice, lt, saccount);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                SelectedPurchaseVm = new LiquorShop.Classes.PurchaseVm();
                RateString         = "";
                PurchaseSubTotal   = 0;
                UnitQuantity       = 0;
                voice            = new Invoice();
                PurchaseSubTotal = 0;
            }
        }