예제 #1
0
        public int Update(PengeluaranBiaya obj)
        {
            var result = 0;

            try
            {
                obj.tanggal = obj.tanggal.ToUtc();

                var api      = "update";
                var response = RestSharpHelper <OpenRetailWebApiPostResponse> .PostRequest(_apiUrl, api, obj);

                result = Convert.ToInt32(response.Results);

                if (result > 0)
                {
                    obj.total = GetTotalNota(obj);

                    foreach (var item in obj.item_pengeluaran_biaya.Where(f => f.JenisPengeluaran != null))
                    {
                        item.entity_state = EntityState.Unchanged;
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #2
0
        public int Update(PengeluaranBiaya obj)
        {
            var result = 0;

            if (_isUseWebAPI)
            {
                foreach (var item in obj.item_pengeluaran_biaya.Where(f => f.entity_state == EntityState.Added))
                {
                    item.item_pengeluaran_id = Guid.NewGuid().ToString();
                }

                _unitOfWork = new UnitOfWork(_isUseWebAPI, _baseUrl, _log);
                result      = _unitOfWork.PengeluaranBiayaRepository.Update(obj);
            }
            else
            {
                using (IDapperContext context = new DapperContext())
                {
                    _unitOfWork = new UnitOfWork(context, _log);
                    result      = _unitOfWork.PengeluaranBiayaRepository.Update(obj);
                }
            }

            return(result);
        }
예제 #3
0
        public int Save(PengeluaranBiaya obj)
        {
            var result = 0;

            if (_isUseWebAPI)
            {
                obj.pengeluaran_id = Guid.NewGuid().ToString();

                foreach (var item in obj.item_pengeluaran_biaya)
                {
                    item.item_pengeluaran_id = Guid.NewGuid().ToString();
                }

                _unitOfWork = new UnitOfWork(_isUseWebAPI, _baseUrl, _log);
                result      = _unitOfWork.PengeluaranBiayaRepository.Save(obj);
            }
            else
            {
                using (IDapperContext context = new DapperContext())
                {
                    _unitOfWork = new UnitOfWork(context, _log);
                    result      = _unitOfWork.PengeluaranBiayaRepository.Save(obj);
                }
            }

            return(result);
        }
예제 #4
0
        private double GetTotalNota(PengeluaranBiaya obj)
        {
            var total = obj.item_pengeluaran_biaya.Where(f => f.JenisPengeluaran != null && f.entity_state != EntityState.Deleted)
                        .Sum(f => f.jumlah * f.harga);

            return(Math.Round(total, MidpointRounding.AwayFromZero));
        }
예제 #5
0
        public void SaveTest()
        {
            var obj = new PengeluaranBiaya
            {
                pengguna_id = "00b5acfa-b533-454b-8dfd-e7881edd180f",
                nota        = _bll.GetLastNota(),
                tanggal     = DateTime.Today,
                keterangan  = "tes keterangan"
            };

            var listOfItemPengeluaran = new List <ItemPengeluaranBiaya>();

            listOfItemPengeluaran.Add(new ItemPengeluaranBiaya {
                JenisPengeluaran = new JenisPengeluaran {
                    jenis_pengeluaran_id = "6c262064-6453-4bea-9e0f-5ae1810d0557"
                }, jenis_pengeluaran_id = "6c262064-6453-4bea-9e0f-5ae1810d0557", pengguna_id = obj.pengguna_id, harga = 50000, jumlah = 5
            });
            listOfItemPengeluaran.Add(new ItemPengeluaranBiaya {
                JenisPengeluaran = new JenisPengeluaran {
                    jenis_pengeluaran_id = "c2116c49-a940-4385-be94-302470b67b83"
                }, jenis_pengeluaran_id = "c2116c49-a940-4385-be94-302470b67b83", pengguna_id = obj.pengguna_id, harga = 25000, jumlah = 10
            });
            listOfItemPengeluaran.Add(new ItemPengeluaranBiaya {
                JenisPengeluaran = new JenisPengeluaran {
                    jenis_pengeluaran_id = "2cc2ae56-dc3b-4991-af56-7768ae10816a"
                }, jenis_pengeluaran_id = "2cc2ae56-dc3b-4991-af56-7768ae10816a", pengguna_id = obj.pengguna_id, harga = 30000, jumlah = 15
            });

            obj.item_pengeluaran_biaya = listOfItemPengeluaran; // menghubungkan jual dan item jual

            var validationError = new ValidationError();

            var result = _bll.Save(obj, ref validationError);

            Console.WriteLine("Error : " + validationError.Message);

            Assert.IsTrue(result != 0);

            var newObj = _bll.GetByID(obj.pengeluaran_id);

            Assert.IsNotNull(newObj);
            Assert.AreEqual(obj.pengeluaran_id, newObj.pengeluaran_id);
            Assert.AreEqual(obj.pengguna_id, newObj.pengguna_id);
            Assert.AreEqual(obj.nota, newObj.nota);
            Assert.AreEqual(obj.tanggal, newObj.tanggal);
            Assert.AreEqual(obj.total, newObj.total);
            Assert.AreEqual(obj.keterangan, newObj.keterangan);

            var index = 0;

            foreach (var itemPengeluaran in newObj.item_pengeluaran_biaya)
            {
                Assert.AreEqual(listOfItemPengeluaran[index].jenis_pengeluaran_id, itemPengeluaran.jenis_pengeluaran_id);
                Assert.AreEqual(listOfItemPengeluaran[index].harga, itemPengeluaran.harga);
                Assert.AreEqual(listOfItemPengeluaran[index].jumlah, itemPengeluaran.jumlah);

                index++;
            }
        }
예제 #6
0
        public void SaveTest()
        {
            var obj = new PengeluaranBiaya
            {
                pengguna_id = "00b5acfa-b533-454b-8dfd-e7881edd180f",
                nota        = _bll.GetLastNota(),
                tanggal     = DateTime.Today,
                keterangan  = "tes keterangan"
            };

            var listOfItemPengeluaran = new List <ItemPengeluaranBiaya>();

            listOfItemPengeluaran.Add(new ItemPengeluaranBiaya {
                JenisPengeluaran = new JenisPengeluaran {
                    jenis_pengeluaran_id = "7fde2c41-5187-4fe9-a274-b96ad8e79451"
                }, jenis_pengeluaran_id = "7fde2c41-5187-4fe9-a274-b96ad8e79451", pengguna_id = obj.pengguna_id, harga = 50000, jumlah = 5
            });
            listOfItemPengeluaran.Add(new ItemPengeluaranBiaya {
                JenisPengeluaran = new JenisPengeluaran {
                    jenis_pengeluaran_id = "b7968f37-5a92-4ea3-bff0-2909aed18d9d"
                }, jenis_pengeluaran_id = "b7968f37-5a92-4ea3-bff0-2909aed18d9d", pengguna_id = obj.pengguna_id, harga = 25000, jumlah = 10
            });
            listOfItemPengeluaran.Add(new ItemPengeluaranBiaya {
                JenisPengeluaran = new JenisPengeluaran {
                    jenis_pengeluaran_id = "2d921654-2646-4e38-b09c-d691a40469b4"
                }, jenis_pengeluaran_id = "2d921654-2646-4e38-b09c-d691a40469b4", pengguna_id = obj.pengguna_id, harga = 30000, jumlah = 15
            });

            obj.item_pengeluaran_biaya = listOfItemPengeluaran; // menghubungkan jual dan item jual

            var validationError = new ValidationError();

            var result = _bll.Save(obj, ref validationError);

            Console.WriteLine("Error : " + validationError.Message);

            Assert.IsTrue(result != 0);

            var newObj = _bll.GetByID(obj.pengeluaran_id);

            Assert.IsNotNull(newObj);
            Assert.AreEqual(obj.pengeluaran_id, newObj.pengeluaran_id);
            Assert.AreEqual(obj.pengguna_id, newObj.pengguna_id);
            Assert.AreEqual(obj.nota, newObj.nota);
            Assert.AreEqual(obj.tanggal, newObj.tanggal);
            Assert.AreEqual(obj.total, newObj.total);
            Assert.AreEqual(obj.keterangan, newObj.keterangan);

            var index = 0;

            foreach (var itemPengeluaran in newObj.item_pengeluaran_biaya)
            {
                Assert.AreEqual(listOfItemPengeluaran[index].jenis_pengeluaran_id, itemPengeluaran.jenis_pengeluaran_id);
                Assert.AreEqual(listOfItemPengeluaran[index].harga, itemPengeluaran.harga);
                Assert.AreEqual(listOfItemPengeluaran[index].jumlah, itemPengeluaran.jumlah);

                index++;
            }
        }
예제 #7
0
        private double GetTotalNota(PengeluaranBiaya obj)
        {
            var total = obj.item_pengeluaran_biaya.Where(f => f.JenisPengeluaran != null && f.entity_state != EntityState.Deleted)
                        .Sum(f => f.jumlah * f.harga);

            total = Math.Ceiling(total);
            return(total);
        }
예제 #8
0
        public int Update(PengeluaranBiaya obj)
        {
            var result = 0;

            try
            {
                _context.BeginTransaction();

                var transaction = _context.transaction;

                obj.total = GetTotalNota(obj);

                // update header
                result = _context.db.Update <PengeluaranBiaya>(obj, transaction) ? 1 : 0;

                // delete detail
                foreach (var item in obj.item_pengeluaran_biaya_deleted)
                {
                    result = _context.db.Delete <ItemPengeluaranBiaya>(item, transaction) ? 1 : 0;
                }

                // insert/update detail
                foreach (var item in obj.item_pengeluaran_biaya.Where(f => f.JenisPengeluaran != null))
                {
                    item.pengeluaran_id = obj.pengeluaran_id;
                    item.pengguna_id    = obj.pengguna_id;

                    if (item.entity_state == EntityState.Added)
                    {
                        item.item_pengeluaran_id = _context.GetGUID();

                        _context.db.Insert <ItemPengeluaranBiaya>(item, transaction);

                        result = 1;
                    }
                    else if (item.entity_state == EntityState.Modified)
                    {
                        result = _context.db.Update <ItemPengeluaranBiaya>(item, transaction) ? 1 : 0;
                    }

                    // update entity state
                    item.entity_state = EntityState.Unchanged;
                }

                _context.Commit();

                LogicalThreadContext.Properties["NewValue"] = obj.ToJson();
                _log.Info("Update data");

                result = 1;
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #9
0
        public int Save(PengeluaranBiaya obj)
        {
            var result = 0;

            try
            {
                _context.BeginTransaction();

                var transaction = _context.transaction;

                if (obj.pengeluaran_id == null)
                {
                    obj.pengeluaran_id = _context.GetGUID();
                }

                obj.total = GetTotalNota(obj);

                // insert header
                _context.db.Insert <PengeluaranBiaya>(obj, transaction);

                // insert detail
                foreach (var item in obj.item_pengeluaran_biaya.Where(f => f.JenisPengeluaran != null))
                {
                    if (item.jenis_pengeluaran_id.Length > 0)
                    {
                        if (item.item_pengeluaran_id == null)
                        {
                            item.item_pengeluaran_id = _context.GetGUID();
                        }

                        item.pengeluaran_id = obj.pengeluaran_id;
                        item.pengguna_id    = obj.pengguna_id;

                        _context.db.Insert <ItemPengeluaranBiaya>(item, transaction);

                        // update entity state
                        item.entity_state = EntityState.Unchanged;
                    }
                }

                _context.Commit();

                LogicalThreadContext.Properties["NewValue"] = obj.ToJson();
                _log.Info("Tambah data");

                result = 1;
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #10
0
        public int Delete(PengeluaranBiaya obj)
        {
            var result = 0;

            using (IDapperContext context = new DapperContext())
            {
                IUnitOfWork uow = new UnitOfWork(context, _log);
                result = uow.PengeluaranBiayaRepository.Delete(obj);
            }

            return(result);
        }
예제 #11
0
        public PengeluaranBiaya GetByID(string id)
        {
            PengeluaranBiaya obj = null;

            using (IDapperContext context = new DapperContext())
            {
                IUnitOfWork uow = new UnitOfWork(context, _log);
                obj = uow.PengeluaranBiayaRepository.GetByID(id);
            }

            return(obj);
        }
예제 #12
0
        public void DeleteTest()
        {
            var obj = new PengeluaranBiaya
            {
                pengeluaran_id = "25683f15-251a-4d64-9956-d20d07b2f732"
            };

            var result = _bll.Delete(obj);

            Assert.IsTrue(result != 0);

            var deletedObj = _bll.GetByID(obj.pengeluaran_id);

            Assert.IsNull(deletedObj);
        }
예제 #13
0
        public void DeleteTest()
        {
            var obj = new PengeluaranBiaya
            {
                pengeluaran_id = "5b7fb72b-5cea-407f-8654-986de89e1cf9"
            };

            var result = _bll.Delete(obj);

            Assert.IsTrue(result != 0);

            var deletedObj = _bll.GetByID(obj.pengeluaran_id);

            Assert.IsNull(deletedObj);
        }
예제 #14
0
        public int Update(PengeluaranBiaya obj, ref ValidationError validationError)
        {
            var validatorResults = _validator.Validate(obj);

            if (!validatorResults.IsValid)
            {
                foreach (var failure in validatorResults.Errors)
                {
                    validationError.Message      = failure.ErrorMessage;
                    validationError.PropertyName = failure.PropertyName;
                    return(0);
                }
            }

            return(Update(obj));
        }
예제 #15
0
        public int Delete(PengeluaranBiaya obj)
        {
            var result = 0;

            try
            {
                var api      = "delete";
                var response = RestSharpHelper <OpenRetailWebApiPostResponse> .PostRequest(_apiUrl, api, obj);

                result = Convert.ToInt32(response.Results);
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #16
0
        public int Delete(PengeluaranBiaya obj)
        {
            var result = 0;

            if (_isUseWebAPI)
            {
                _unitOfWork = new UnitOfWork(_isUseWebAPI, _baseUrl, _log);
                result      = _unitOfWork.PengeluaranBiayaRepository.Delete(obj);
            }
            else
            {
                using (IDapperContext context = new DapperContext())
                {
                    _unitOfWork = new UnitOfWork(context, _log);
                    result      = _unitOfWork.PengeluaranBiayaRepository.Delete(obj);
                }
            }

            return(result);
        }
예제 #17
0
        public PengeluaranBiaya GetByID(string id)
        {
            PengeluaranBiaya obj = null;

            if (_isUseWebAPI)
            {
                _unitOfWork = new UnitOfWork(_isUseWebAPI, _baseUrl, _log);
                obj         = _unitOfWork.PengeluaranBiayaRepository.GetByID(id);
            }
            else
            {
                using (IDapperContext context = new DapperContext())
                {
                    _unitOfWork = new UnitOfWork(context, _log);
                    obj         = _unitOfWork.PengeluaranBiayaRepository.GetByID(id);
                }
            }

            return(obj);
        }
예제 #18
0
        public int Delete(PengeluaranBiaya obj)
        {
            var result = 0;

            try
            {
                result = _context.db.Delete <PengeluaranBiaya>(obj) ? 1 : 0;

                if (result > 0)
                {
                    LogicalThreadContext.Properties["OldValue"] = obj.ToJson();
                    _log.Info("Hapus data");
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #19
0
        public PengeluaranBiaya GetByID(string id)
        {
            PengeluaranBiaya obj = null;

            try
            {
                obj = _context.db.Get <PengeluaranBiaya>(id);

                // load item pengeluaran
                if (obj != null)
                {
                    obj.item_pengeluaran_biaya = GetItemPengeluaranBiaya(obj.pengeluaran_id);
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(obj);
        }
예제 #20
0
        public PengeluaranBiaya GetByID(string id)
        {
            PengeluaranBiaya obj = null;

            try
            {
                var api      = string.Format("get_by_id?id={0}", id);
                var response = RestSharpHelper <OpenRetailWebApiGetResponse <PengeluaranBiaya> > .GetRequest(_apiUrl, api).Data;

                if (response.Results.Count > 0)
                {
                    obj = response.Results[0];
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(obj);
        }
예제 #21
0
        public PengeluaranBiaya GetByID(string id)
        {
            PengeluaranBiaya obj = null;

            try
            {
                var client   = new RestClient(_apiUrl);
                var request  = new RestRequest(string.Format("get_by_id?id={0}", id), Method.GET);
                var response = client.Execute <OpenRetailWebApiGetResponse <PengeluaranBiaya> >(request).Data;

                if (response.Results.Count > 0)
                {
                    obj = response.Results[0];
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(obj);
        }
        public FrmEntryPengeluaranBiaya(string header, PengeluaranBiaya pengeluaran, IPengeluaranBiayaBll bll)
            : base()
        {
            InitializeComponent();
            ColorManagerHelper.SetTheme(this, this);

            base.SetHeader(header);
            base.SetButtonSelesaiToBatal();
            this._bll         = bll;
            this._pengeluaran = pengeluaran;
            this._log         = MainProgram.log;
            this._pengguna    = MainProgram.pengguna;

            txtNota.Text     = this._pengeluaran.nota;
            dtpTanggal.Value = (DateTime)this._pengeluaran.tanggal;

            txtKeterangan.Text = this._pengeluaran.keterangan;

            // simpan data lama
            _listOfItemPengeluaranOld.Clear();
            foreach (var item in this._pengeluaran.item_pengeluaran_biaya)
            {
                _listOfItemPengeluaranOld.Add(new ItemPengeluaranBiaya
                {
                    item_pengeluaran_id = item.item_pengeluaran_id,
                    jumlah = item.jumlah,
                    harga  = item.harga
                });
            }

            _listOfItemPengeluaran = this._pengeluaran.item_pengeluaran_biaya;
            _listOfItemPengeluaran.Add(new ItemPengeluaranBiaya()); // add dummy objek

            InitGridControl(gridControl);

            RefreshTotal();
        }
예제 #23
0
        public int Delete(PengeluaranBiaya obj)
        {
            var result = 0;

            try
            {
                var client  = new RestClient(_apiUrl);
                var request = new RestRequest("delete", Method.POST);

                request.RequestFormat = DataFormat.Json;
                request.AddBody(obj);

                var response        = client.Execute(request);
                var responseContent = JsonConvert.DeserializeObject <OpenRetailWebApiPostResponse>(response.Content);

                result = Convert.ToInt32(responseContent.Results);
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
예제 #24
0
        public int Update(PengeluaranBiaya obj)
        {
            var result = 0;

            try
            {
                var client  = new RestClient(_apiUrl);
                var request = new RestRequest("update", Method.POST);

                obj.tanggal = obj.tanggal.ToUtc();

                request.RequestFormat = DataFormat.Json;
                request.AddBody(obj);

                var response        = client.Execute(request);
                var responseContent = JsonConvert.DeserializeObject <OpenRetailWebApiPostResponse>(response.Content);

                result = Convert.ToInt32(responseContent.Results);

                if (result > 0)
                {
                    obj.total = GetTotalNota(obj);

                    foreach (var item in obj.item_pengeluaran_biaya.Where(f => f.JenisPengeluaran != null))
                    {
                        item.entity_state = EntityState.Unchanged;
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
        protected override void Simpan()
        {
            var total = SumGrid(this._listOfItemPengeluaran);

            if (!(total > 0))
            {
                MsgHelper.MsgWarning("Anda belum melengkapi inputan data produk !");
                return;
            }

            if (!MsgHelper.MsgKonfirmasi("Apakah proses ingin dilanjutkan ?"))
            {
                return;
            }

            if (_isNewData)
            {
                _pengeluaran = new PengeluaranBiaya();
            }

            _pengeluaran.pengguna_id = this._pengguna.pengguna_id;
            _pengeluaran.Pengguna    = this._pengguna;
            _pengeluaran.nota        = txtNota.Text;
            _pengeluaran.tanggal     = dtpTanggal.Value;
            _pengeluaran.keterangan  = txtKeterangan.Text;

            _pengeluaran.item_pengeluaran_biaya = this._listOfItemPengeluaran.Where(f => f.JenisPengeluaran != null).ToList();

            if (!_isNewData) // update
            {
                _pengeluaran.item_pengeluaran_biaya_deleted = _listOfItemPengeluaranDeleted.ToList();
            }

            var result          = 0;
            var validationError = new ValidationError();

            using (new StCursor(Cursors.WaitCursor, new TimeSpan(0, 0, 0, 0)))
            {
                if (_isNewData)
                {
                    result = _bll.Save(_pengeluaran, ref validationError);
                }
                else
                {
                    result = _bll.Update(_pengeluaran, ref validationError);
                }

                if (result > 0)
                {
                    Listener.Ok(this, _isNewData, _pengeluaran);

                    _listOfItemPengeluaran.Clear();
                    _listOfItemPengeluaranDeleted.Clear();

                    this.Close();
                }
                else
                {
                    if (validationError.Message.NullToString().Length > 0)
                    {
                        MsgHelper.MsgWarning(validationError.Message);
                        base.SetFocusObject(validationError.PropertyName, this);
                    }
                    else
                    {
                        MsgHelper.MsgUpdateError();
                    }
                }
            }
        }