Esempio n. 1
0
        private void btnCancel_Click(object sender, EventArgs e)
        {
            if (txtId.Text.Trim().Equals(String.Empty))
            {
                MessageBox.Show("A caixa de Id não deve estar vazia, selecione um registro de compra de lote para cancelar.");
                return;
            }

            else
            {
                var canceledSale = new Sale(dtSale.Value, dtExpiration.Value)
                {
                    SaleId = Convert.ToInt64(txtId.Text)
                };

                canceledSale.Canceled = true;

                List <SaleProduct> saleProducts = saleProductService.ShowAll().Where(sp => sp.SaleId == canceledSale.SaleId).ToList();

                foreach (SaleProduct saleProduct in saleProducts)
                {
                    Storage storage = storageService.ShowAll().Where(s => s.ProductId == saleProduct.ProductId && s.Lot == saleProduct.Lot).FirstOrDefault();
                    storage.Quantity += saleProduct.Quantity;
                    storageService.Alter(storage);
                }

                saleService.Alter(canceledSale);

                List <Cashflow> canceledCashflows = new List <Cashflow>();
                List <Earning>  canceledEarnings  = earningService.ShowAll().Where(earning => earning.SaleId == canceledSale.SaleId).ToList();

                foreach (var canceledEarning in canceledEarnings)
                {
                    canceledEarning.Paid     = false;
                    canceledEarning.Canceled = true;
                    earningService.Alter(canceledEarning);

                    var canceledCashflow = cashflowService.ShowAll().Where(c => c.EarningId == canceledEarning.EarningId).FirstOrDefault();
                    canceledCashflows.Add(canceledCashflow);
                }

                foreach (var canceledCashflow in canceledCashflows)
                {
                    canceledCashflow.Paid     = false;
                    canceledCashflow.Canceled = true;
                    cashflowService.Alter(canceledCashflow);
                }

                refreshDataGridView();

                resetForm();
            }
        }