Пример #1
0
 private void FillGrid()
 {
     dgvInvoiceItems.DataSource         = null;
     dgvInvoiceItems.DataSource         = InvoiceItemVms;
     dgvInvoiceItems.Columns[0].Visible = false;
     btnDeleteItem.Enabled = InvoiceItemVms.Any();
 }
Пример #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());

            InvoiceItemVms.Remove(InvoiceItemVms.Find(item => item.MaterialId == materialId));
            MaterialsList.Find(material => material.Id == materialId).AvailableQuantity += deletedMaterialQuantity;
            FillGrid();
            SetTotalPrice();
            ResetInsertControls();
        }
Пример #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 (!isFormValid)
            {
                return;
            }
            var addedQuantity = (decimal)dblInQuantity.Value;
            var materialId    = int.Parse(cmbMaterials.SelectedValue.ToString());

            if (InvoiceItemVms.Exists(item => item.MaterialId == materialId))
            {
                var invoiceItem = InvoiceItemVms.Find(item => item.MaterialId == materialId);
                invoiceItem.Quantity  += addedQuantity;
                invoiceItem.TotalPrice = GetMaterialPrice(materialId) * invoiceItem.Quantity;
            }
            else
            {
                InvoiceItemVms.Add(new InvoiceItemVm
                {
                    MaterialId   = materialId,
                    MaterialCode = MaterialsList.FirstOrDefault(material => material.Id == materialId)?.Code,
                    MaterialName = ((KeyValuePair <int, string>)cmbMaterials.SelectedItem).Value,
                    Quantity     = addedQuantity,
                    TotalPrice   = GetMaterialPrice(materialId) * addedQuantity,
                    Notes        = txtNotes.Text.FullTrim()
                });
            }
            MaterialsList.Find(material => material.Id == materialId).AvailableQuantity -= addedQuantity;
            FillGrid();
            SetTotalPrice();
            ResetInsertControls();
        }
Пример #4
0
 private void SetTotalPrice()
 {
     dblInTotal.Value = (double)InvoiceItemVms.Select(item => item.TotalPrice).Sum();
 }
Пример #5
0
        private void SaveInvoice()
        {
            ErrorProvider.Clear();
            var    isFormValid = true;
            Client newClient   = null;

            if (txtClientName.Text.IsNullOrEmptyOrWhiteSpace())
            {
                isFormValid = false;
                ErrorProvider.SetError(txtClientName, Resources.ThisFieldIsRequired);
            }
            else if (!ClientsNames.Contains(txtClientName.Text.FullTrim()))
            {
                isFormValid = ShowConfirmationDialog(Resources.ClientNotExists) == DialogResult.Yes;
                newClient   = new Client {
                    Name = txtClientName.Text.FullTrim()
                };
            }
            if (!InvoiceItemVms.Any())
            {
                isFormValid = false;
                ShowErrorMsg(Resources.InvoiceWithoutItems);
            }
            if (!isFormValid)
            {
                return;
            }
            if (!InvoiceItemVms.Any())
            {
                ShowErrorMsg(Resources.NoItemsAdded);
                return;
            }

            if (newClient != null)
            {
                ClientManager.AddClient(newClient);
            }

            var invoice = new Invoice
            {
                ClientId = ClientManager.GetClientIdByName(txtClientName.Text.FullTrim()),
                Date     = dtInvoiceDate.Value,
                Total    = (decimal)dblInTotal.Value,
                Paid     = (decimal)dblInPaid.Value,
                Discount = (decimal)dblInDiscount.Value
            };

            InvoiceManager.AddInvoice(invoice);
            InvoiceItemManager.AddInvoiceItems(InvoiceItemVms.Select(item => new InvoiceItem
            {
                InvoiceId  = invoice.Id,
                MaterialId = item.MaterialId,
                Quantity   = item.Quantity,
                Price      = item.TotalPrice,
                Notes      = item.Notes
            }).ToList());
            if (invoice.Paid > 0)
            {
                InvoicePaymentManager.AddInvoicePayment(new InvoicePayment
                {
                    InvoiceId = invoice.Id,
                    Date      = dtInvoiceDate.Value,
                    Paid      = (decimal)dblInPaid.Value
                });
            }
            MaterialManager.UpdateQuantitiesAfterCreatingInvoice(InvoiceItemVms);
            ShowInfoMsg(Resources.InvoiceCreatedSuccessfully);
            Close();
        }