Example #1
0
        public NvVatTuChungTu UpdatePhieu(NvNhapKhacVm.Dto instance)
        {
            instance.Calc();
            var exsitItem = FindById(instance.Id);

            if (exsitItem.TrangThai == (int)ApprovalState.IsComplete)
            {
                return(null);
            }
            var masterData            = Mapper.Map <NvNhapKhacVm.Dto, NvVatTuChungTu>(instance);
            var detailData            = Mapper.Map <List <NvNhapKhacVm.DtoDetail>, List <NvVatTuChungTuChiTiet> >(instance.DataDetails);
            var merchandiseCollection = UnitOfWork.Repository <MdMerchandise>().DbSet;

            {
                var detailCollection = UnitOfWork.Repository <NvVatTuChungTuChiTiet>().DbSet.Where(x => x.MaChungTuPk == exsitItem.MaChungTuPk);
                detailCollection.ToList().ForEach(x => x.ObjectState = ObjectState.Deleted);
            }
            detailData.ForEach(x =>
            {
                var merchandise = merchandiseCollection.FirstOrDefault(u => u.MaVatTu == x.MaHang);
                x.TenHang       = merchandise != null ? merchandise.TenHang : "";
                x.Id            = Guid.NewGuid().ToString();
                x.MaChungTuPk   = exsitItem.MaChungTuPk;
                x.MaChungTu     = exsitItem.MaChungTu;
            });
            UnitOfWork.Repository <NvVatTuChungTuChiTiet>().InsertRange(detailData);
            UpdateGeneralLedger(instance.DataClauseDetails, exsitItem);
            var result = Update(masterData);

            return(result);
        }