示例#1
0
        public ISoldProductModel FindById(int id)
        {
            SoldProduct       item  = _db.SoldProducts.Find(id);
            ISoldProductModel model = MapTheSoldProductObject(item);

            return(model);
        }
示例#2
0
        public void EntryWithTwoPreviousEntries()
        {
            _entries = new List <RaffleEntry>();

            Guid        serial      = Guid.NewGuid();
            SoldProduct soldProduct = new SoldProduct {
                SerialNumber = serial
            };

            _products = new List <SoldProduct> {
                soldProduct
            };

            RaffleEntry entry1 = getEntry();

            entry1.SoldProduct = soldProduct;

            RaffleEntry entry2 = getEntry();

            entry2.SoldProduct = soldProduct;

            _entries.Add(entry1);
            _entries.Add(entry2);

            _entry             = getEntry();
            _entry.SoldProduct = soldProduct;

            bool validEntry = _validator.ValidateEntry(_products.AsQueryable(), _entries.AsQueryable(), _entry);

            Assert.False(validEntry, "Entry got validated with 2 previous entries with the same serial number.");
        }
示例#3
0
        public void CompletePurchase()
        {
            //Do transaction
            if (ProductsInBasket.Count > 0)
            {
                Transaction transaction = new Transaction(this.ProductsInBasket.ToList());
                transaction.ExecuteTransaction();

                //Move products to soldproducts
                List <SoldProduct> soldList = new List <SoldProduct>();
                foreach (List <Product> x in this.ProductsInBasket.ToList())
                {
                    foreach (Product product in x)
                    {
                        SoldProduct soldproduct = new SoldProduct(product);
                        soldproduct.transactionid = transaction.id;
                        soldList.Add(soldproduct);
                    }
                }
                AddSoldProductsToDatabase(soldList);
                RemoveProductsInBasketFromDatabase(ProductsInBasket.ToList());
                notifyUserAboutCompletedPurchase(transaction.id, transaction.sum);
            }
            else
            {
                PopupService.PopupMessage("Der er ikke blevet tilføjet nogen produkter til kurven.", "Ingen produkter");
            }
        }
示例#4
0
        public static Invoice IssuedInvoiceValidWithoutShippingCompanyWithAddresseeLegalPerson()
        {
            Invoice invoice = new Invoice();

            invoice.Id = 1;
            invoice.OperationNature = "Venda";
            invoice.EntryDate       = DateTime.Now;
            invoice.IssueDate       = DateTime.Now;
            invoice.AcessKey        = "BAJDSA0123IU43I249206954";
            invoice.Issuer          = IssuerValidWithoutIdAndWithAddress();
            invoice.Addressee       = AddresseePessoaJuridicaValida(AddressValid());
            invoice.ShippingCompany = null;
            List <SoldProduct> productsSold = new List <SoldProduct>();

            for (int i = 0; i < 20; i++)
            {
                SoldProduct soldProduct = SoldProductValidWithoutId();
                soldProduct.Product.Code = i.ToString();
                productsSold.Add(soldProduct);
            }
            invoice.SoldProducts = productsSold;
            invoice.InvoiceTax   = new InvoiceTax();
            invoice.CalculateTax();
            invoice.InvoiceTax.ShippingValue = 10;
            return(invoice);
        }
示例#5
0
        private void btnAdd_Click(object sender, System.EventArgs e)
        {
            if (CurrentProduct == null)
            {
                return;
            }

            var productInGrid = new SoldProduct
            {
                Id         = -1,
                CategoryId = CurrentProduct.CategoryId,
                CreditId   = CurrentCredit == null ? -1 : CurrentCredit.Id,
                Name       = CurrentProduct.Name,
                AddAmount  = string.IsNullOrEmpty(tbAdd.Text) ? 0 : Convert.ToDecimal(tbAdd.Text.Replace('.', ',')),
                Total      = string.IsNullOrEmpty(tbTotalForTovar.Text) ? 0 : Convert.ToDecimal(tbTotalForTovar.Text.Replace('.', ',')),
                Price      = string.IsNullOrEmpty(tbPrice.Text) ? 0 : Convert.ToDecimal(tbPrice.Text.Replace('.', ',')),
                Discount   = string.IsNullOrEmpty(tbDiscount.Text) ? 0 : Convert.ToDecimal(tbDiscount.Text.Replace('.', ','))
            };

            var row = new DataGridViewRow();

            row.Tag = productInGrid;
            for (int i = 0; i < 5; i++)
            {
                row.Cells.Add(new DataGridViewTextBoxCell());
            }
            row.Cells[0].Value = productInGrid.Name;
            row.Cells[1].Value = productInGrid.Price.ToString("#.00");
            row.Cells[2].Value = productInGrid.AddAmount.ToString("#.00");
            row.Cells[3].Value = productInGrid.Discount.ToString("#.00");
            row.Cells[4].Value = productInGrid.Total.ToString("#.00");
            gridProducts.Rows.Add(row);
        }
        public async void NoDuplicateSoldProduct()
        {
            Guid        serial  = Guid.NewGuid();
            SoldProduct product = new SoldProduct {
                SerialNumber = serial
            };

            RaffleDbContext context = getDb("NoDupe");

            context.SoldProducts.Add(product);
            await context.SaveChangesAsync();

            RaffleEntry entry = getEntry();

            entry.SoldProduct.SerialNumber = serial;

            RaffleApiController controller = new RaffleApiController(
                context,
                new EntryValidator());

            IStatusCodeActionResult result = await controller.PostRaffleEntry(entry);

            StatusCodeResult statusResult = Assert.IsType <StatusCodeResult>(result);

            Assert.Equal((int)HttpStatusCode.OK, statusResult.StatusCode);

            Assert.Equal(1, await context.SoldProducts.CountAsync());
        }
        public static void InitializeRaffle(RaffleDbContext context)
        {
            context.Database.EnsureCreated();

            if (!context.SoldProducts.Any())
            {
                SoldProduct[] products = new SoldProduct[100];
                for (int i = 0; i < 100; i++)
                {
                    products[i] = new SoldProduct {
                        SerialNumber = Guid.NewGuid()
                    };
                }

                context.SoldProducts.AddRange(products);
                context.SaveChanges();

                using (StreamWriter writer = File.CreateText("SerialNumbers.txt"))
                {
                    foreach (SoldProduct product in products)
                    {
                        writer.WriteLine(product.SerialNumber.ToString());
                    }
                }
            }
        }
示例#8
0
        public void EntryGetsNewProductReference()
        {
            _entries = new List <RaffleEntry>();

            Guid        serial        = Guid.NewGuid();
            SoldProduct targetProduct = new SoldProduct {
                SerialNumber = serial, SoldProductId = 2
            };

            _products = new List <SoldProduct>
            {
                new SoldProduct {
                    SerialNumber = Guid.NewGuid(), SoldProductId = 1
                },
                targetProduct,
                new SoldProduct {
                    SerialNumber = Guid.NewGuid(), SoldProductId = 3
                },
            };

            _entry             = new RaffleEntry();
            _entry.SoldProduct = new SoldProduct {
                SerialNumber = serial
            };

            _validator.ValidateEntry(_products.AsQueryable(), _entries.AsQueryable(), _entry);

            Assert.Equal(targetProduct.SoldProductId, _entry.SoldProduct.SoldProductId);
        }
        public void registerProduits(ObservableCollection <TableProduct> ProduitsCollection, Transaction transaction)
        {
            using (var context = new bourseContainer())
            {
                foreach (var produit in ProduitsCollection)
                {
                    //update the product if it exists
                    if (!String.IsNullOrEmpty(produit.Code) && context.ProductSet.Any(p => p.code == produit.Code))
                    {
                        Product product = context.ProductSet.Single(p => p.code == produit.Code);

                        product.title  = produit.Titre;
                        product.type   = produit.Type;
                        product.editor = produit.Editeur;
                        product.author = produit.Auteur;

                        context.Entry(product).State = EntityState.Modified;
                        context.SaveChanges();
                        context.Entry(product).State = EntityState.Detached;
                    }

                    //otherwise, add it
                    if (!String.IsNullOrEmpty(produit.Code) && !context.ProductSet.Any(p => p.code == produit.Code))
                    {
                        Product product = new Product
                        {
                            author = produit.Auteur,
                            code   = produit.Code,
                            editor = produit.Editeur,
                            title  = produit.Titre,
                            type   = produit.Type
                        };

                        context.Entry(product).State = EntityState.Added;
                        context.SaveChanges();
                        context.Entry(product).State = EntityState.Detached;
                    }

                    decimal productPrice = 0;
                    decimal.TryParse(produit.Prix, out productPrice);

                    SoldProduct soldProduct = new SoldProduct
                    {
                        price       = productPrice,
                        inStock     = produit.Reassort == ReassortTypeEnum.REASSORTI.ToString() ? true : false,
                        datetime    = DateTime.Now,
                        Transaction = transaction,
                        author      = produit.Auteur,
                        code        = produit.Code,
                        editor      = produit.Editeur,
                        title       = produit.Titre,
                        type        = produit.Type
                    };

                    context.Entry(soldProduct).State = EntityState.Added;
                    context.SaveChanges();
                    context.Entry(soldProduct).State = EntityState.Detached;
                }
            }
        }
示例#10
0
        public void EntryWithOnePreviousEntry()
        {
            _entries = new List <RaffleEntry>();

            Guid        serial      = Guid.NewGuid();
            SoldProduct soldProduct = new SoldProduct {
                SerialNumber = serial
            };

            _products = new List <SoldProduct> {
                soldProduct
            };

            RaffleEntry entry1 = getEntry();

            entry1.SoldProduct = soldProduct;
            _entries.Add(entry1);

            _entry             = getEntry();
            _entry.SoldProduct = soldProduct;

            bool validEntry = _validator.ValidateEntry(_products.AsQueryable(), _entries.AsQueryable(), _entry);

            Assert.True(validEntry, "Entry got rejected even though there has only been 1 previous entry with the same serial number.");
        }
示例#11
0
 public int UpdateSoldProduct(SoldProduct soldProduct)
 {
     using (db)
     {
         db.Entry(soldProduct).State = System.Data.Entity.EntityState.Modified;
         db.SaveChanges();
         return(1);
     }
 }
示例#12
0
        public static SoldProduct SoldProductValidWithId()
        {
            SoldProduct soldProduct = new SoldProduct();

            soldProduct.Id       = 1;
            soldProduct.Product  = ProductValidWithId();
            soldProduct.Quantity = 2;

            return(soldProduct);
        }
示例#13
0
    public static SoldProduct MakeInstance(SoldProduct soldProduct)
    {
        SoldProduct soldProduct1 = ScriptableObject.CreateInstance("SoldProduct") as SoldProduct;

        soldProduct1.name          = soldProduct.name;
        soldProduct1.parentProduct = soldProduct.parentProduct;
        soldProduct1.amount        = soldProduct.amount;

        return(soldProduct1);
    }
示例#14
0
 public int DeleteSoldProduct(int id)
 {
     using (db)
     {
         SoldProduct soldProducts = db.SoldProducts.Find(id);
         db.SoldProducts.Remove(soldProducts);
         db.SaveChanges();
         return(1);
     }
 }
示例#15
0
 public static SoldProductDTO ToSoldProductDTO(SoldProduct model)
 {
     return(model == null ? null : new SoldProductDTO()
     {
         Id = model.Id,
         Client = ToClientDTO(model.Client),
         Manager = ToManagerDTO(model.Manager),
         Product = ToProductDTO(model.Product),
         Date = model.Date
     });
 }
示例#16
0
 public void AddOrUpdate(SoldProduct soldProduct)
 {
     if (GetSoldProducts().Any(p => p.Id == soldProduct.Id))
     {
         string sql = "UPDATE SoldProduct SET " +
                      "CategoryId=" + soldProduct.CategoryId +
                      ", CreditId='" + soldProduct.CreditId +
                      "',Name='" + soldProduct.Name +
                      "',Price='" + soldProduct.Price.ToString().Replace(',', '.') +
                      "',Discount='" + soldProduct.Discount.ToString().Replace(',', '.') +
                      "',Total='" + soldProduct.Total.ToString().Replace(',', '.') +
                      "',AddAmount='" + soldProduct.AddAmount.ToString().Replace(',', '.') +
                      "' WHERE Id=" + soldProduct.Id;
         using (SqlCeConnection conn = new SqlCeConnection(Storage.ConnectionString))
         {
             try
             {
                 conn.Open();
             }
             catch
             {
                 MessageBox.Show("Невозможно установить соединение с базой данных!", "Ошибка подключения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
             }
             SqlCeCommand command = new SqlCeCommand(sql, conn);
             command.ExecuteScalar();
         }
     }
     else
     {
         string sql = "INSERT INTO SoldProduct (CategoryId, CreditId, Name, Price, AddAmount, Discount, Total) Values (" +
                      soldProduct.CategoryId + "," +
                      soldProduct.CreditId + ",'" +
                      soldProduct.Name + "','" +
                      soldProduct.Price.ToString().Replace(',', '.') + "','" +
                      soldProduct.AddAmount.ToString().Replace(',', '.') + "','" +
                      soldProduct.Discount.ToString().Replace(',', '.') + "','" +
                      soldProduct.Total.ToString().Replace(',', '.') + "')";
         using (SqlCeConnection conn = new SqlCeConnection(Storage.ConnectionString))
         {
             try
             {
                 conn.Open();
             }
             catch
             {
                 MessageBox.Show("Невозможно установить соединение с базой данных!", "Ошибка подключения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
             }
             SqlCeCommand command = new SqlCeCommand(sql, conn);
             command.ExecuteScalar();
         }
     }
 }
示例#17
0
 public int CreateSoldProduct(SoldProduct SoldProduct)
 {
     using (db)
     {
         long id = db.SoldProducts.Max(x => x.Id);
         SoldProduct.Id = id + 1;
         db.SoldProducts.Add(SoldProduct);
         db.SaveChanges();
         return(1);
     }
 }
示例#18
0
        public async Task DeleteSoldProduct(SoldProduct id)
        {
            var soldProduct = this.soldProductRepository.Find(id.Id);
            var product     = this.productRepository.Find(soldProduct.ProductId);

            product.Sum  = product.Sum + (soldProduct.SoldQty * product.SinglePrice);
            product.Qty += soldProduct.SoldQty;
            await this.soldProductRepository.SaveChangesAsync();

            this.soldProductRepository.Delete(soldProduct);
            await this.productRepository.SaveChangesAsync();
        }
示例#19
0
        public static SoldProduct SoldProductValidWithoutId()
        {
            SoldProduct soldProduct = new SoldProduct();

            soldProduct.Product     = ProductValidWithId();
            soldProduct.Product.Tax = new ProductTax()
            {
                IcmsAliquot = 4, IpiAliquot = 10
            };
            soldProduct.Quantity = 2;

            return(soldProduct);
        }
示例#20
0
文件: Tests.cs 项目: TomBina/CbCode
        public void SoldProduct_NotDamaged_CanClaimMoneyBack()
        {
            var rules = new List <Func <SoldProduct, bool> >()
            {
                product => (DateTime.Now - product.Sold).TotalDays < 30,
                product => !product.Damaged
            };
            var soldProduct = new SoldProduct(1, "Some product", DateTime.Now, rules);

            var canClaimMoneyBack = soldProduct.CanClaimMoneyBack();

            Assert.IsTrue(canClaimMoneyBack);
        }
示例#21
0
        public void Create(ISoldProductModel model)
        {
            SoldProduct item = new SoldProduct();

            item.Name       = model.Name;
            item.CategoryID = model.CategoryID;
            item.TableID    = model.TableID;
            item.Price      = model.Price;
            item.Detail     = model.Detail;

            _db.SoldProducts.Add(item);
            _db.SaveChanges();
        }
示例#22
0
        private void btnEdit_Click(object sender, System.EventArgs e)
        {
            if (gridProducts.SelectedRows.Count == 0)
            {
                return;
            }

            CurrentProduct = gridProducts.SelectedRows[0].Tag as SoldProduct;
            if (CurrentProduct != null)
            {
                DisplayCurrentProduct();
                cbProduct.SelectedItem = cbProduct.Items.Cast <Product>().FirstOrDefault(p => p.Name == CurrentProduct.Name);
                gridProducts.Rows.Remove(gridProducts.SelectedRows[0]);
            }
        }
示例#23
0
        private ISoldProductModel MapTheSoldProductObject(SoldProduct item)
        {
            ISoldProductModel model = Factory.InstanceSoldProductModel();

            model.ID            = item.ID;
            model.Name          = item.Name;
            model.CategoryID    = item.CategoryID;
            model.Category.ID   = item.CategoryID;
            model.Category.Name = _db.Categories.Where(x => x.ID == item.CategoryID).FirstOrDefault().Name;
            model.TableID       = item.TableID;
            model.Table.ID      = item.TableID;
            model.Price         = item.Price;
            model.Detail        = item.Detail;

            return(model);
        }
示例#24
0
        private void EFTBuying()
        {
            lblResult.Visible = true;
            lblResult.Text    = "Bankayla iletişime geçiliyor...";
            Refresh();
            Thread.Sleep(1000);
            lblResult.Text = "Hesap bilgileri kontrol ediliyor...";
            Refresh();
            Thread.Sleep(1000);
            lblResult.Text = "Hesap bakiyesi kontrol ediliyor...";
            Refresh();
            Thread.Sleep(1000);
            lblResult.Text = "Ödeme işlemi tamamlanıyor...";
            Refresh();
            Thread.Sleep(1000);

            DialogResult dr = new DialogResult();

            dr = MessageBox.Show(product.Name + " x " + txtProductAdet.Text + " = " + (product.Price * int.Parse(txtProductAdet.Text) + "\nAlışverişi tamamlamak istiyor musunuz??"), "Uyarı !!!", MessageBoxButtons.YesNo);

            if (dr == DialogResult.Yes)
            {
                lblResult.Text = "Satın alma başarılı bir şekilde yapıldı.";
                Refresh();
                SoldProduct sp = new SoldProduct();
                sp.SoldID      = dataHolder.SoldProducts[dataHolder.SoldProducts.Count - 1].SoldID + 1;
                sp.Adet        = int.Parse(txtProductAdet.Text);
                sp.Category    = product.Category;
                sp.Product     = product;
                sp.Toplam      = product.Price * int.Parse(txtProductAdet.Text);
                sp.User        = dataHolder.CurrentUser;
                sp.PaymentType = rbKK.Checked ? "KK" : "EFT";
                dataHolder.SoldProducts.Add(sp);
                saveuserForm.SoldsLoad();
                Thread.Sleep(1000);

                saveuserForm.Show();
                Dispose();
            }
            else
            {
                lblResult.Text = "Satın alma iptal edildi...";
                Refresh();
                Thread.Sleep(1000);
            }
        }
示例#25
0
 private void cbProduct_SelectedValueChanged(object sender, EventArgs e)
 {
     if (cbProduct.SelectedItem is Product)
     {
         var tempProduct = cbProduct.SelectedItem as Product;
         CurrentProduct            = new SoldProduct();
         CurrentProduct.AddAmount  = tempProduct.AddAmount;
         CurrentProduct.CategoryId = tempProduct.CategoryId;
         CurrentProduct.CreditId   = CurrentCredit == null ? -1 : CurrentCredit.Id;
         CurrentProduct.Discount   = tempProduct.Discount;
         CurrentProduct.Id         = tempProduct.Id;
         CurrentProduct.Price      = tempProduct.Price;
         CurrentProduct.Total      = tempProduct.Total;
         CurrentProduct.Name       = tempProduct.Name;
     }
     DisplayCurrentProduct();
 }
示例#26
0
        public SoldProductDTO AddRecord(CsvRecord record)
        {
            SoldProduct soldProduct;

            lock (_sync)
            {
                soldProduct = new SoldProduct()
                {
                    Client  = GetClient(record.Client),
                    Product = GetProduct(record.Product, record.Price),
                    Manager = GetManager(record.Manager),
                    Date    = record.Date
                };
                SoldProductRepository.Add(soldProduct);
                //(SoldProductRepository as SoldProductRepository)?.DetachModels(soldProduct);
            }
            return(DataMapper.ToSoldProductDTO(soldProduct));
        }
示例#27
0
 private void gridProducts_MouseClick(object sender, MouseEventArgs e)
 {
     try
     {
         if (e.Button == MouseButtons.Right)
         {
             int currentMouseOverRow = gridProducts.HitTest(e.X, e.Y).RowIndex;
             CurrentProduct = gridSchedule.Rows[currentMouseOverRow].Tag as SoldProduct;
             if (CurrentProduct != null)
             {
                 gridContextMenu.Show(gridProducts, e.Location);
             }
         }
     }
     catch
     {
         //nothing to do, wait for the next user actions
     }
 }
示例#28
0
        private List <SoldProduct> saveAsSoldProduct() // kullanılan parçanın satıldı olarak veritabanına gönderilmesi
        {
            List <SoldProduct> soldProducts = new List <SoldProduct>();

            for (int i = 0; i < gv_urunler.RowCount; i++)
            {
                SoldProduct solds = new SoldProduct()   //parça nesnesi oluşturuluyor
                {
                    productSold_customerID = customer_id,
                    productSold_productID  = Convert.ToInt32(gv_urunler.GetRowCellDisplayText(i, "product_ID")),
                    productSold_totalPrice = Convert.ToInt32(gv_urunler.GetRowCellDisplayText(i, "product_saleprice")),
                    productSold_unit       = 1,
                    productSold_reasonID   = 2,
                    productSold_soldDate   = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy"))
                };
                soldProducts.Add(solds); // kullanılan ürün satıldı olarak veritabanına ekleniyor.
            }
            return(soldProducts);
        }
示例#29
0
        public void Delete(SoldProduct soldProduct)
        {
            string sql = "DELETE FROM SoldProduct WHERE Id=" + soldProduct.Id;

            using (SqlCeConnection conn = new SqlCeConnection(Storage.ConnectionString))
            {
                try
                {
                    conn.Open();
                }
                catch
                {
                    MessageBox.Show("Невозможно установить соединение с базой данных!", "Ошибка подключения", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                SqlCeCommand command = new SqlCeCommand(sql, conn);
                command.ExecuteScalar();
            }
        }
示例#30
0
        public async Task AddSellingProduct(Product product, decimal sellingQty, DateTime crOn)
        {
            var soldProduct = new SoldProduct()
            {
                Id        = Guid.NewGuid(),
                ProductId = product.Id,
                SoldQty   = sellingQty,
            };

            soldProduct.CreatedOn = crOn;
            product.Qty           = product.Qty - sellingQty;
            product.Sum           = product.Sum - (product.SinglePrice * sellingQty);
            await this.soldProductRepository.AddAsync(soldProduct);

            await this.soldProductRepository.SaveChangesAsync();

            this.productRepository.Update(product);
            await this.productRepository.SaveChangesAsync();
        }