public void DeleteTest() { using (var trans = TransHelper.NewScope()) { // arrange // act _purchaseDal.Delete("A1"); } }
private BPPurchaseModel Save(BPPurchaseModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } // validate supplier var supplier = _supplierDal.GetData(model.SupplierID); if (supplier == null) { throw new ArgumentException("SupplierID invalie"); } else { model.SupplierName = supplier.SupplierName; } // update nilai Total Harga dari detil model.TotHargaPurchase = model.ListBrg.Sum(x => x.QtyPurchase * (x.Harga - x.Diskon + x.Tax)); model.TotHargaReceipt = model.ListBrg.Sum(x => x.QtyReceipt * (x.Harga - x.Diskon + x.Tax)); // validasi; penerimaan tidak boleh melebihi purchasing if (model.TotHargaReceipt > model.TotHargaPurchase) { throw new ArgumentException("Penerimaan melebihi pembelian"); } // update subtotal di detil foreach (var item in model.ListBrg) { item.SubTotal = (item.QtyPurchase - item.QtyReceipt) * (item.Harga - item.Diskon + item.Tax); } // update keterangan di detil foreach (var item in model.ListBrg) { var brg = _brgDal.GetData(item.BrgID); if (brg == null) { throw new ArgumentException("BrgID invalid"); } if (item.BPReceiptID.Trim() == "") { item.Keterangan = string.Format("Purchase {0}", brg.BrgName); } else { item.Keterangan = string.Format(" Received {0}", brg.BrgName); } } // atur urutannya sedemikian rupa kelihatan history penerimaan barang var listData = model.ListBrg.OrderBy(x => x.BrgID + x.Tgl + x.Jam); int i = 1; foreach (var item in listData) { item.NoUrut = i; i++; } model.ListBrg = listData.ToList(); // update kode Purchase di Detil harus sama dengan header foreach (var item in model.ListBrg) { item.BPPurchaseID = model.BPPurchaseID; } if (model.TotHargaPurchase == model.TotHargaReceipt) { model.IsClosed = true; } // save using (var trans = TransHelper.NewScope()) { // hapus data lama _bpPurchaseReceiptDal.Delete(model.BPPurchaseID); _bpPurchaseDal.Delete(model.BPPurchaseID); // insert data baru _bpPurchaseDal.Insert(model); foreach (var item in model.ListBrg) { _bpPurchaseReceiptDal.Insert(item); } trans.Complete(); } return(model); }