Esempio n. 1
0
        public ReceiptsForm(For formFor, ReceiptDb receiptDb, ReceiptType type)
        {
            InitializeComponent();

            this.FormFor     = formFor;
            this.ReceiptDb   = receiptDb;
            this.ReceiptType = type;
        }
Esempio n. 2
0
        public void RemoveReceipt()
        {
            var receipt   = this.GetTestReceipts()[0];
            var receiptDb = new ReceiptDb();

            receiptDb.Save(receipt);
            receiptDb.Remove(receipt.No);

            Assert.IsFalse(receiptDb.GetAll().Any(r => r.No.Equals(receipt.No)));
            Assert.IsFalse(new ReceiptDb().GetAll().Any(r => r.No.Equals(receipt.No)));
        }
Esempio n. 3
0
        public void GetReceiptTankDetails()
        {
            var receipt   = this.GetTestReceipts()[0];
            var receiptDb = new ReceiptDb();

            receiptDb.Save(receipt);
            var actual = new ReceiptDb().GetReceiptTankDetails(receipt.No);

            Assert.AreEqual(receipt.ReceiptTankDetails.Count(), actual.Count());
            this.AssertAreEqual(receipt.ReceiptTankDetails[0], actual.First(d => d.TankName.Equals(receipt.ReceiptTankDetails[0].TankName)));
            this.AssertAreEqual(receipt.ReceiptTankDetails[1], actual.First(d => d.TankName.Equals(receipt.ReceiptTankDetails[1].TankName)));
        }
Esempio n. 4
0
        public void RemoveKindOfGoods()
        {
            var kindOfGoods = new KindOfGoods {
                UId = Guid.NewGuid().ToString(), Name = "kind 01", Customized = true
            };
            var receiptDb = new ReceiptDb();

            receiptDb.Save(kindOfGoods);
            receiptDb.RemoveKindOfGoods(kindOfGoods.UId);

            Assert.IsFalse(receiptDb.GetAllKindsOfGoods().Any(k => k.UId.Equals(kindOfGoods.UId)));
            Assert.IsFalse(new ReceiptDb().GetAllKindsOfGoods().Any(k => k.UId.Equals(kindOfGoods.UId)));
        }
Esempio n. 5
0
        public void SaveKindOfGoods()
        {
            var kindOfGoods = new KindOfGoods {
                UId = "kind 01", Name = "kind 01", Customized = true
            };
            var receiptDb = new ReceiptDb();

            receiptDb.Save(kindOfGoods);

            var actual = receiptDb.GetAllKindsOfGoods().First(k => k.UId.Equals(kindOfGoods.UId));

            this.AssertAreEqual(kindOfGoods, actual);
        }
Esempio n. 6
0
        public void Save()
        {
            var receipt   = this.GetTestReceipts()[0];
            var receiptDb = new ReceiptDb();

            receiptDb.Save(receipt);

            var actual = receiptDb.Get(receipt.No);

            this.AssertAreEqual(receipt, actual);
            Assert.AreEqual(receipt.ReceiptTankDetails.Count, actual.ReceiptTankDetails.Count);
            receipt.ReceiptTankDetails.ForEach(d => this.AssertAreEqual(d, actual.ReceiptTankDetails.First(actualDetail => actualDetail.TankName.Equals(d.TankName))));
        }
Esempio n. 7
0
        public void VerifyThatShouldThrowWhileRemovingAnInUsedKind()
        {
            var kindOfGoods = new KindOfGoods {
                UId = Guid.NewGuid().ToString(), Name = "kind 01", Customized = true
            };
            var receiptDb = new ReceiptDb();

            receiptDb.Save(kindOfGoods);
            var receipt = this.GetTestReceipts()[0];

            receipt.KindOfGoods = kindOfGoods;
            receiptDb.Save(receipt);

            this.AssertHasException <InvalidOperationException>(String.Format("The kind [{0}] is currently in used, cannot be removed", kindOfGoods.UId), () => receiptDb.RemoveKindOfGoods(kindOfGoods.UId));
        }
Esempio n. 8
0
        public void Exists()
        {
            var receipt   = this.GetTestReceipts()[0];
            var receiptDb = new ReceiptDb();

            // exists
            receiptDb.Save(receipt);
            var actual = new ReceiptDb().Exists(receipt.No);

            Assert.AreEqual(true, actual);

            // not exist
            receiptDb.Remove(receipt.No);
            actual = new ReceiptDb().Exists(receipt.No);
            Assert.AreEqual(false, actual);
        }
Esempio n. 9
0
        public void UpdateKindOfGoods()
        {
            var kindOfGoods = new KindOfGoods {
                UId = "kind 01", Name = "kind 01", Customized = true
            };
            var receiptDb = new ReceiptDb();

            receiptDb.Save(kindOfGoods);
            kindOfGoods.Name = "kind 01 changed";
            receiptDb.Save(kindOfGoods);

            var actual = receiptDb.GetAllKindsOfGoods().First(k => k.UId.Equals(kindOfGoods.UId));

            Assert.AreEqual(kindOfGoods.Name, actual.Name);
            actual = new ReceiptDb().GetAllKindsOfGoods().First(k => k.UId.Equals(kindOfGoods.UId));
            Assert.AreEqual(kindOfGoods.Name, actual.Name);
        }
Esempio n. 10
0
        public void AddReceipt()
        {
            var receipts     = this.GetTestReceipts();
            var kindsOfGoods = new[] { new KindOfGoods {
                                           UId = Guid.NewGuid().ToString(), Name = "kind 01", Customized = true
                                       }, new KindOfGoods {
                                           UId = Guid.NewGuid().ToString(), Name = "kind 02", Customized = true
                                       } };

            receipts[0].KindOfGoods = kindsOfGoods[0];
            receipts[1].KindOfGoods = kindsOfGoods[1];
            var receiptDb = new ReceiptDb();

            kindsOfGoods.Each(k => receiptDb.Save(k));
            receiptDb.GetAll().Select(r => r.No).ToList().ForEach(n => receiptDb.Remove(n));

            // add one
            receiptDb.Save(receipts[0]);
            Assert.AreEqual(1, receiptDb.GetAll().Count());
            Assert.AreEqual(1, new ReceiptDb().GetAll().Count());
            var actual = receiptDb.GetAll().First();

            this.AssertAreEqual(receipts[0], actual);
            actual = new ReceiptDb().GetAll().First();
            this.AssertAreEqual(receipts[0], actual);
            actual = new ReceiptDb().Get(receipts[0].No);
            this.AssertAreEqual(receipts[0], actual);
            Assert.AreNotEqual(null, actual.KindOfGoods);
            Assert.AreEqual(receipts[0].ReceiptTankDetails.Count, actual.ReceiptTankDetails.Count);
            receipts[0].ReceiptTankDetails.ForEach(d => this.AssertAreEqual(d, actual.ReceiptTankDetails.First(actualDetail => actualDetail.TankName.Equals(d.TankName))));

            // add another
            receiptDb.Save(receipts[1]);
            Assert.AreEqual(2, receiptDb.GetAll().Count());
            Assert.AreEqual(2, new ReceiptDb().GetAll().Count());
            actual = receiptDb.GetAll().First(r => r.No.Equals(receipts[1].No));
            this.AssertAreEqual(receipts[1], actual);
            actual = new ReceiptDb().GetAll().First(r => r.No.Equals(receipts[1].No));
            this.AssertAreEqual(receipts[1], actual);
            actual = new ReceiptDb().Get(receipts[1].No);
            this.AssertAreEqual(receipts[1], actual);
            Assert.AreNotEqual(null, actual.KindOfGoods);
            Assert.AreEqual(receipts[1].ReceiptTankDetails.Count, actual.ReceiptTankDetails.Count);
            receipts[1].ReceiptTankDetails.ForEach(d => this.AssertAreEqual(d, actual.ReceiptTankDetails.First(actualDetail => actualDetail.TankName.Equals(d.TankName))));
        }
Esempio n. 11
0
        public void VerifyThatVolumeOfHeightShouldBeSaved()
        {
            var receiptDb = new ReceiptDb();

            // VolumeByHeight is true
            var receipt = this.GetTestReceipts()[0];

            receipt.ReceiptTankDetails.ForEach(d => d.VolumeByHeight = true);
            receiptDb.Save(receipt);
            var actual = new ReceiptDb().GetReceiptTankDetails(receipt.No);

            actual.Each(d => Assert.AreEqual(true, d.VolumeByHeight));

            // VolumeByHeight is false
            receipt = this.GetTestReceipts()[1];
            receipt.ReceiptTankDetails.ForEach(d => d.VolumeByHeight = false);
            receiptDb.Save(receipt);
            actual = new ReceiptDb().GetReceiptTankDetails(receipt.No);
            actual.Each(d => Assert.AreEqual(false, d.VolumeByHeight));
        }
Esempio n. 12
0
        public void AddKindOfGoods()
        {
            // todo. test case run failed.
            var kindsOfGoods = new[]
            {
                new KindOfGoods {
                    UId = Guid.NewGuid().ToString(), Name = "added kind 01", Customized = true
                },
                new KindOfGoods {
                    UId = Guid.NewGuid().ToString(), Name = "added kind 02", Customized = true
                }
            };
            var receiptDb = new ReceiptDb();

            try
            {
                receiptDb.GetAllKindsOfGoods().Where(k => k.Name.StartsWith("added kind ")).Select(k => k.UId).ToList().ForEach(u => receiptDb.RemoveKindOfGoods(u));
            }
            catch
            {
            }

            // add one
            receiptDb.Save(kindsOfGoods[0]);
            Assert.AreEqual(1, receiptDb.GetAllKindsOfGoods().Where(k => k.Name.StartsWith("added kind ")).Count());
            Assert.AreEqual(1, new ReceiptDb().GetAllKindsOfGoods().Where(k => k.Name.StartsWith("added kind ")).Count());
            var actual = receiptDb.GetAllKindsOfGoods().First(k => k.UId.Equals(kindsOfGoods[0].UId));

            this.AssertAreEqual(kindsOfGoods[0], actual);
            actual = new ReceiptDb().GetAllKindsOfGoods().First(k => k.UId.Equals(kindsOfGoods[0].UId));
            this.AssertAreEqual(kindsOfGoods[0], actual);

            // add another
            receiptDb.Save(kindsOfGoods[1]);
            Assert.AreEqual(2, receiptDb.GetAllKindsOfGoods().Where(k => k.Name.StartsWith("added kind ")).Count());
            Assert.AreEqual(2, new ReceiptDb().GetAllKindsOfGoods().Where(k => k.Name.StartsWith("added kind ")).Count());
            actual = receiptDb.GetAllKindsOfGoods().First(k => k.UId.Equals(kindsOfGoods[1].UId));
            this.AssertAreEqual(kindsOfGoods[1], actual);
            actual = new ReceiptDb().GetAllKindsOfGoods().First(k => k.UId.Equals(kindsOfGoods[1].UId));
            this.AssertAreEqual(kindsOfGoods[1], actual);
        }
Esempio n. 13
0
        public void UpdateReceipt()
        {
            var receipt   = this.GetTestReceipts()[0];
            var receiptDb = new ReceiptDb();

            receiptDb.Save(receipt);
            receipt.AgentName   = "AgentName changed";
            receipt.TotalOfMass = 10101.010101m;
            receiptDb.Save(receipt);

            var actual = receiptDb.GetAll().First(r => r.No.Equals(receipt.No));

            Assert.AreEqual(receipt.AgentName, actual.AgentName);
            Assert.AreEqual(receipt.TotalOfMass, actual.TotalOfMass);
            actual = new ReceiptDb().GetAll().First(r => r.No.Equals(receipt.No));
            Assert.AreEqual(receipt.AgentName, actual.AgentName);
            Assert.AreEqual(receipt.TotalOfMass, actual.TotalOfMass);
            actual = new ReceiptDb().Get(receipt.No);
            Assert.AreEqual(receipt.AgentName, actual.AgentName);
            Assert.AreEqual(receipt.TotalOfMass, actual.TotalOfMass);
        }
Esempio n. 14
0
        public ReceiptForm()
        {
            InitializeComponent();

            this.TankDb            = new TankDb();
            this.StandardDensityDb = new StandardDensityDb();
            this.VcfDb             = new VcfDb();
            this.ReceiptDb         = new ReceiptDb();

            this.SetupValidation();

            this.header.ReceiptDb                   = this.ReceiptDb;
            this.header.TankDb                      = this.TankDb;
            this.header.VesselName                  = this.TankDb.GetVessel().Name;
            this.header.HInclinationChanged        += h => this.grid.HInclination = h;
            this.header.VInclinationChanged        += v => this.grid.VInclination = v;
            this.header.SelectedKindOfGoodsChanged += k => this.grid.SelectedKindOfGoods = k;
            this.header.Dirty += this.ReportDirty;
            this.grid.TotalOfVolumeOfStandardChanged += v => this.summary.TotalOfVolumeOfStandard = v;
            this.grid.TotalOfVolumeChanged           += v => this.summary.TotalOfVolume = v + this.header.TotalOfVolumeOfPipes;
            this.grid.TotalOfVolumeOfWaterChanged    += v => this.summary.TotalOfVolumeOfWater = v;
            this.grid.TotalOfMassChanged             += v => this.summary.TotalOfMass = v;
            this.grid.Dirty += this.ReportDirty;
            this.grid.VolumeByHeightChanged += v => { this.menuVolumeByHeight.Checked = v; this.menuVolumeByUllage.Checked = !v; };
            this.grid.NewNotification       += (m, l) => this.ReportStatus(m, l);
            this.summary.Dirty += this.ReportDirty;

            this.menuNew.Click            += (s, a) => this.NewReceipt();
            this.menuLoad.Click           += (s, a) => this.LoadReceipt();
            this.menuSave.Click           += (s, a) => this.SaveReceipt();
            this.menuPrint.Click          += (s, a) => this.PrintReceipt();
            this.menuVolumeByHeight.Click += (s, a) => this.menuVolumeByHeight.Checked = this.grid.VolumeByHeight = true;
            this.menuVolumeByUllage.Click += (s, a) => { this.menuVolumeByUllage.Checked = true; this.grid.VolumeByHeight = false; };
            this.menuAutoCalculate.Checked = Config.AutoCalculate;
            this.menuAutoCalculate.Click  += (s, a) => { Config.AutoCalculate = this.menuAutoCalculate.Checked = !this.menuAutoCalculate.Checked; this.grid.AutoCalculate = this.menuAutoCalculate.Checked; this.menuCalculate.Enabled = !this.menuAutoCalculate.Checked; };
            this.menuCalculate.Enabled     = !Config.AutoCalculate;
            this.menuCalculate.Click      += (s, a) => this.grid.Calculate();

            this.grid.TankDb            = this.TankDb;
            this.grid.StandardDensityDb = this.StandardDensityDb;
            this.grid.VcfDb             = this.VcfDb;
            this.grid.AutoCalculate     = Config.AutoCalculate;

            this.txtOperatorName.TextChanged       += (s, a) => this.ReportDirty();
            this.txtAgentLoading.TextChanged       += (s, a) => this.ReportDirty();
            this.txtAgentDestination.TextChanged   += (s, a) => this.ReportDirty();
            this.txtShipperLoading.TextChanged     += (s, a) => this.ReportDirty();
            this.txtShipperDestination.TextChanged += (s, a) => this.ReportDirty();
            this.txtConsigner.TextChanged          += (s, a) => this.ReportDirty();
            this.txtConsignee.TextChanged          += (s, a) => this.ReportDirty();

            this.KeyPreview = true;
            this.KeyDown   += (s, a) =>
            {
                if (a.Control && !a.Alt && !a.Shift && a.KeyCode == Keys.S) //[ctrl]-[s]
                {
                    this.SaveReceipt();
                }
            };

            this.SetReceiptType(ReceiptType.MassOfOil);
        }
Esempio n. 15
0
 public KindsOfGoodsForm(ReceiptDb receiptDb)
 {
     InitializeComponent();
     this.ReceiptDb = receiptDb;
 }