public async Task <GarmentPurchaseRequest> GetTestData(GarmentPurchaseRequest data = null)
        {
            data = data ?? GetNewData();
            await facade.Create(data, "Unit Test");

            return(data);
        }
Beispiel #2
0
        public async Task <int> Update(int id, GarmentPurchaseRequest m, string user, int clientTimeZoneOffset = 7)
        {
            int Updated = 0;

            using (var transaction = dbContext.Database.BeginTransaction())
            {
                try
                {
                    var oldM = this.dbSet.AsNoTracking()
                               .Include(d => d.Items)
                               .SingleOrDefault(pr => pr.Id == id && !pr.IsDeleted);

                    if (oldM != null && oldM.Id == id)
                    {
                        EntityExtension.FlagForUpdate(m, user, USER_AGENT);

                        foreach (var item in m.Items)
                        {
                            if (item.Id == 0)
                            {
                                EntityExtension.FlagForCreate(item, user, USER_AGENT);
                                item.Status = "Belum diterima Pembelian";
                            }
                            else
                            {
                                EntityExtension.FlagForUpdate(item, user, USER_AGENT);
                            }
                        }

                        dbSet.Update(m);

                        foreach (var oldItem in oldM.Items)
                        {
                            var newItem = oldM.Items.FirstOrDefault(i => i.Id.Equals(oldItem.Id));
                            if (newItem == null)
                            {
                                EntityExtension.FlagForDelete(oldItem, user, USER_AGENT);
                                dbContext.GarmentPurchaseRequestItems.Update(oldItem);
                            }
                        }

                        Updated = await dbContext.SaveChangesAsync();

                        transaction.Commit();
                    }
                    else
                    {
                        throw new Exception("Invalid Id");
                    }
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Updated);
        }
 public DataUtilResult(BasicDataUtil dataUtil, GarmentPurchaseRequest purchaseRequest, List <GarmentInternalPurchaseOrder> internalPurchaseOrders, GarmentExternalPurchaseOrder externalPurchaseOrder, GarmentDeliveryOrder deliveryOrder)
 {
     this.dataUtil               = dataUtil;
     this.purchaseRequest        = purchaseRequest;
     this.internalPurchaseOrders = internalPurchaseOrders;
     this.externalPurchaseOrder  = externalPurchaseOrder;
     this.deliveryOrder          = deliveryOrder;
 }
Beispiel #4
0
        public async Task Should_Error_Update_Data()
        {
            GarmentPurchaseRequestFacade facade = new GarmentPurchaseRequestFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var model = await dataUtil(facade, GetCurrentMethod()).GetTestData();

            Exception errorInvalidId = await Assert.ThrowsAsync <Exception>(async() => await facade.Update(0, model, USERNAME));

            Assert.NotNull(errorInvalidId.Message);

            GarmentPurchaseRequest newModel = new GarmentPurchaseRequest();
            Exception errorNullItems        = await Assert.ThrowsAsync <Exception>(async() => await facade.Update((int)model.Id, newModel, USERNAME));

            Assert.NotNull(errorNullItems.Message);
        }
        public GarmentPurchaseRequest CopyData(GarmentPurchaseRequest data)
        {
            return(new GarmentPurchaseRequest
            {
                UId = data.UId,

                Id = data.Id,
                Active = data.Active,
                CreatedUtc = data.CreatedUtc,
                CreatedBy = data.CreatedBy,
                CreatedAgent = data.CreatedAgent,
                LastModifiedUtc = data.LastModifiedUtc,
                LastModifiedBy = data.LastModifiedBy,
                LastModifiedAgent = data.LastModifiedAgent,
                IsDeleted = data.IsDeleted,
                DeletedUtc = data.DeletedUtc,
                DeletedBy = data.DeletedBy,
                DeletedAgent = data.DeletedAgent,

                PRNo = data.PRNo,
                PRType = data.PRType,
                RONo = data.RONo,
                MDStaff = data.MDStaff,
                SCId = data.SCId,
                SCNo = data.SCNo,
                BuyerId = data.BuyerId,
                BuyerCode = data.BuyerCode,
                BuyerName = data.BuyerName,
                Article = data.Article,
                Date = data.Date,
                ExpectedDeliveryDate = data.ExpectedDeliveryDate,
                ShipmentDate = data.ShipmentDate,
                UnitId = data.UnitId,
                UnitCode = data.UnitCode,
                UnitName = data.UnitName,
                IsPosted = data.IsPosted,
                IsUsed = data.IsUsed,
                IsValidated = data.IsValidated,
                Remark = data.Remark,
                ValidatedBy = data.ValidatedBy,
                ValidatedDate = data.ValidatedDate,
            });
        }
Beispiel #6
0
        public async Task Should_Success_Update_Data()
        {
            GarmentPurchaseRequestFacade facade = new GarmentPurchaseRequestFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var dataUtil = this.dataUtil(facade, GetCurrentMethod());
            var model    = await dataUtil.GetTestData();

            GarmentPurchaseRequest newModel = dataUtil.CopyData(model);

            newModel.Items = new List <GarmentPurchaseRequestItem>();
            foreach (var item in model.Items)
            {
                newModel.Items.Add(dataUtil.CopyDataItem(item));
            }
            var firstItem = newModel.Items.First();

            firstItem.Id = 0;
            firstItem.PO_SerialNumber = null;

            var Response = await facade.Update((int)newModel.Id, newModel, USERNAME);

            Assert.NotEqual(Response, 0);
        }
Beispiel #7
0
        public async Task <int> Create(GarmentPurchaseRequest m, string user, int clientTimeZoneOffset = 7)
        {
            int Created = 0;

            using (var transaction = this.dbContext.Database.BeginTransaction())
            {
                try
                {
                    EntityExtension.FlagForCreate(m, user, USER_AGENT);

                    m.PRNo     = $"PR{m.RONo}";
                    m.IsPosted = true;
                    m.IsUsed   = false;

                    foreach (var item in m.Items)
                    {
                        EntityExtension.FlagForCreate(item, user, USER_AGENT);

                        item.Status = "Belum diterima Pembelian";
                    }

                    this.dbSet.Add(m);

                    Created = await dbContext.SaveChangesAsync();

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(Created);
        }
        public async Task <List <GarmentInternalPurchaseOrder> > GetTestDataByTags(GarmentPurchaseRequest garmentPurchaseRequest = null)
        {
            var testData = await GetTestData(garmentPurchaseRequest);

            return(facade.ReadByTags($"#{testData.UnitName}#{testData.BuyerName}", DateTimeOffset.MinValue, DateTimeOffset.MinValue));
        }
Beispiel #9
0
 public async Task<List<GarmentInternalPurchaseOrder>> GetNewData(GarmentPurchaseRequest garmentPurchaseRequest = null)
 {
     return await Task.Run(() => garmentPurchaseRequestDataUtil.GetTestDataByTags(garmentPurchaseRequest));
 }