Example #1
0
 private void FillGrid()
 {
     dgvInvoiceItems.DataSource         = null;
     dgvInvoiceItems.DataSource         = PurchaseInvoiceItemVms;
     dgvInvoiceItems.Columns[0].Visible = false;
     btnDeleteItem.Enabled = PurchaseInvoiceItemVms.Any();
 }
Example #2
0
        private void DeleteItem()
        {
            var materialId = int.Parse(dgvInvoiceItems.SelectedRows[0].Cells[0].Value.ToString());
            var deletedMaterialQuantity = decimal.Parse(dgvInvoiceItems.SelectedRows[0].Cells["Quantity"].Value
                                                        .ToString());

            PurchaseInvoiceItemVms.Remove(PurchaseInvoiceItemVms.Find(item => item.MaterialId == materialId));
            MaterialsList.Find(material => material.Id == materialId).AvailableQuantity += deletedMaterialQuantity;
            FillGrid();
            SetTotalPrice();
            ResetInsertControls();
        }
Example #3
0
        private void InsertItem()
        {
            ErrorProvider.Clear();
            var isFormValid = true;

            if (cmbMaterials.SelectedIndex == 0)
            {
                isFormValid = false;
                ErrorProvider.SetError(cmbMaterials, Resources.ShouldSelectMaterial);
            }
            if (Math.Abs(dblInQuantity.Value) <= 0)
            {
                isFormValid = false;
                ErrorProvider.SetError(dblInQuantity, Resources.ThisFieldIsRequired);
            }
            if (Math.Abs(dblInUnitPrice.Value) <= 0)
            {
                isFormValid = false;
                ErrorProvider.SetError(dblInUnitPrice, Resources.ThisFieldIsRequired);
            }
            if (!isFormValid)
            {
                return;
            }
            var unitPrice     = (decimal)dblInUnitPrice.Value;
            var addedQuantity = (decimal)dblInQuantity.Value;
            var materialId    = int.Parse(cmbMaterials.SelectedValue.ToString());

            if (PurchaseInvoiceItemVms.Exists(item => item.MaterialId == materialId))
            {
                var purchaseInvoiceItem = PurchaseInvoiceItemVms.Find(item => item.MaterialId == materialId);
                purchaseInvoiceItem.Quantity += addedQuantity;
            }
            else
            {
                PurchaseInvoiceItemVms.Add(new PurchaseInvoiceItemVm
                {
                    MaterialId   = materialId,
                    MaterialCode = MaterialsList.FirstOrDefault(material => material.Id == materialId)?.Code,
                    MaterialName = ((KeyValuePair <int, string>)cmbMaterials.SelectedItem).Value,
                    UnitPrice    = unitPrice,
                    Quantity     = addedQuantity,
                    Notes        = txtNotes.Text.FullTrim()
                });
            }
            MaterialsList.Find(material => material.Id == materialId).AvailableQuantity -= addedQuantity;
            FillGrid();
            SetTotalPrice();
            ResetInsertControls();
        }
Example #4
0
 private void SetTotalPrice()
 {
     dblInTotal.Value = (double)PurchaseInvoiceItemVms.Select(item => item.TotalPrice).Sum();
 }
Example #5
0
        private void SavePurchaseInvoice()
        {
            ErrorProvider.Clear();
            var      isFormValid = true;
            Supplier newSupplier = null;

            if (txtSupplierName.Text.IsNullOrEmptyOrWhiteSpace())
            {
                isFormValid = false;
                ErrorProvider.SetError(txtSupplierName, Resources.ThisFieldIsRequired);
            }
            else if (!SuppliersNames.Contains(txtSupplierName.Text.FullTrim()))
            {
                isFormValid = ShowConfirmationDialog(Resources.SupplierNotExists) == DialogResult.Yes;
                newSupplier = new Supplier {
                    Name = txtSupplierName.Text.FullTrim()
                };
            }

            if (!PurchaseInvoiceItemVms.Any())
            {
                isFormValid = false;
                ShowErrorMsg(Resources.InvoiceWithoutItems);
            }

            if (!isFormValid)
            {
                return;
            }
            if (!PurchaseInvoiceItemVms.Any())
            {
                ShowErrorMsg(Resources.NoItemsAdded);
                return;
            }

            if (newSupplier != null)
            {
                SupplierManager.AddSupplier(newSupplier);
            }

            var purchaseInvoice = new PurchaseInvoice
            {
                SupplierId = SupplierManager.GetSupplierIdByName(txtSupplierName.Text.FullTrim()),
                Date       = dtInvoiceDate.Value,
                Total      = (decimal)dblInTotal.Value,
                Paid       = (decimal)dblInPaid.Value,
                Discount   = (decimal)dblInDiscount.Value
            };

            PurchaseInvoiceManager.AddPurchaseInvoice(purchaseInvoice);
            PurchaseInvoiceItemManager.AddPurchaseInvoiceItems(PurchaseInvoiceItemVms.Select(item =>
                                                                                             new PurchaseInvoiceItem
            {
                InvoiceId  = purchaseInvoice.Id,
                MaterialId = item.MaterialId,
                Quantity   = item.Quantity,
                UnitPrice  = item.UnitPrice,
                Notes      = item.Notes
            }).ToList());
            if (purchaseInvoice.Paid > 0)
            {
                PurchaseInvoicePaymentManager.AddPurchaseInvoicePayment(new PurchaseInvoicePayment
                {
                    InvoiceId = purchaseInvoice.Id,
                    Date      = dtInvoiceDate.Value,
                    Paid      = (decimal)dblInPaid.Value
                });
            }
            MaterialManager.UpdateQuantitiesAfterCreatingPurchaseInvoice(PurchaseInvoiceItemVms);
            ShowInfoMsg(Resources.InvoiceCreatedSuccessfully);
            Close();
        }