示例#1
0
        public async Task <InventoryWeavingMovement> GetTestData()
        {
            InventoryWeavingMovement Data = GetNewData();
            await Service.Create(Data);

            return(Data);
        }
        public async Task <int> UpdateAsyncMovement(InventoryWeavingMovement model)
        {
            try
            {
                int Updated = 0;

                var existingStock = DbSet2.Where(x => x.InventoryWeavingDocumentItemId == model.InventoryWeavingDocumentItemId).FirstOrDefault();


                if (existingStock.Quantity != model.Quantity)
                {
                    existingStock.Quantity = model.Quantity;
                }
                if (existingStock.QuantityPiece != model.QuantityPiece)
                {
                    existingStock.QuantityPiece = model.QuantityPiece;
                }
                //existingStock.Quantity -= model.Quantity;
                existingStock.FlagForUpdate(IdentityService.Username, UserAgent);

                Updated = await DbContext.SaveChangesAsync();



                //transaction.Commit();

                return(Updated);
            }
            catch (Exception e)
            {
                //transaction.Rollback();
                throw e;
            }
        }
示例#3
0
        public InventoryWeavingMovement GetNewData()
        {
            InventoryWeavingMovement TestData = new InventoryWeavingMovement
            {
                ProductOrderName           = "Name",
                BonNo                      = "nota",
                ReferenceNo                = "Ref",
                _CreatedUtc                = DateTime.UtcNow,
                Construction               = "construction",
                MaterialName               = "Name",
                WovenType                  = "Type",
                Yarn1                      = "Yarn1",
                Yarn2                      = "Yarn2",
                Width                      = "Width",
                YarnOrigin1                = "YarnOrigin1",
                YarnOrigin2                = "YarnOrigin2",
                YarnType1                  = "YarnType1",
                YarnType2                  = "YarnType2",
                QuantityPiece              = 10,
                Quantity                   = 10,
                Grade                      = "Grade",
                Type                       = "IN",
                InventoryWeavingDocumentId = 1,
            };

            return(TestData);
        }
示例#4
0
        public async Task Create(InventoryWeavingDocument model)
        {
            //var bonCheck = this.DbSetDoc.FirstOrDefault(s => s.Date.Date == model.Date.Date && s.BonType == model.BonType && s.Type == "OUT");

            // var bonCheck = this.DbContext.InventoryWeavingDocuments.Where(s => s.Date.Date == model.Date.Date && s.BonType == model.BonType && s.Type == "OUT").FirstOrDefault();

            // if (bonCheck == null)
            //{
            model.BonNo = GenerateBon(model.BonType, model.Date);
            model.FlagForCreate(IdentityService.Username, UserAgent);
            model.FlagForUpdate(IdentityService.Username, UserAgent);

            foreach (var item in model.Items)
            {
                item.FlagForCreate(IdentityService.Username, UserAgent);
                item.FlagForUpdate(IdentityService.Username, UserAgent);
            }

            DbSetDoc.Add(model);

            var result = await DbContext.SaveChangesAsync();

            foreach (var item in model.Items)
            {
                InventoryWeavingMovement movement = new InventoryWeavingMovement
                {
                    ProductOrderName = item.ProductOrderName,
                    BonNo            = model.BonNo,
                    ReferenceNo      = item.ReferenceNo,
                    Construction     = item.Construction,
                    Grade            = item.Grade,
                    //Piece = item.Piece,
                    MaterialName  = item.MaterialName,
                    WovenType     = item.WovenType,
                    Width         = item.Width,
                    Yarn1         = item.Yarn1,
                    Yarn2         = item.Yarn2,
                    YarnType1     = item.YarnType1,
                    YarnType2     = item.YarnType2,
                    YarnOrigin1   = item.YarnOrigin1,
                    YarnOrigin2   = item.YarnOrigin2,
                    UomId         = item.UomId,
                    UomUnit       = item.UomUnit,
                    Quantity      = item.Quantity,
                    QuantityPiece = item.QuantityPiece,
                    ProductRemark = item.ProductRemark,
                    Type          = model.Type,
                    InventoryWeavingDocumentId     = model.Id,
                    InventoryWeavingDocumentItemId = item.Id
                };

                movement.FlagForCreate(IdentityService.Username, UserAgent);
                movement.FlagForUpdate(IdentityService.Username, UserAgent);
                DbSetMovement.Add(movement);
            }

            var result2 = await DbContext.SaveChangesAsync();
        }
        private InventoryWeavingMovement GenerateMovement(InventoryWeavingDocumentItem item)
        {
            InventoryWeavingMovement movement = new InventoryWeavingMovement
            {
                Quantity      = item.Quantity,
                QuantityPiece = item.QuantityPiece,
                InventoryWeavingDocumentItemId = item.Id
            };

            return(movement);
        }
示例#6
0
        public async Task UploadData(InventoryWeavingDocument data, string username)
        {
            //IInventoryWeavingMovementService movement = ServiceProvider.GetService<IInventoryWeavingMovementService>();
            foreach (var i in data.Items)
            {
                MoonlayEntityExtension.FlagForCreate(i, username, USER_AGENT);
                MoonlayEntityExtension.FlagForUpdate(i, username, USER_AGENT);
            }
            MoonlayEntityExtension.FlagForCreate(data, username, USER_AGENT);
            MoonlayEntityExtension.FlagForUpdate(data, username, USER_AGENT);
            DbSet.Add(data);

            var result = await DbContext.SaveChangesAsync();

            foreach (var item in data.Items)
            {
                InventoryWeavingMovement movementModel = new InventoryWeavingMovement
                {
                    ProductOrderName = item.ProductOrderName,
                    BonNo            = data.BonNo,
                    ReferenceNo      = item.ReferenceNo,
                    Construction     = item.Construction,
                    Grade            = item.Grade,
                    //Piece = item.Piece,
                    MaterialName  = item.MaterialName,
                    WovenType     = item.WovenType,
                    Width         = item.Width,
                    Yarn1         = item.Yarn1,
                    Yarn2         = item.Yarn2,
                    YarnType1     = item.YarnType1,
                    YarnType2     = item.YarnType2,
                    YarnOrigin1   = item.YarnOrigin1,
                    YarnOrigin2   = item.YarnOrigin2,
                    UomId         = item.UomId,
                    UomUnit       = item.UomUnit,
                    Quantity      = item.Quantity,
                    QuantityPiece = item.QuantityPiece,
                    ProductRemark = item.ProductRemark,
                    Type          = data.Type,
                    InventoryWeavingDocumentId     = data.Id,
                    InventoryWeavingDocumentItemId = item.Id,
                    Barcode             = item.Barcode,
                    ProductionOrderDate = item.ProductionOrderDate,
                    DestinationArea     = item.DestinationArea


                                          //await BulkInsert(data, username);
                };
                MoonlayEntityExtension.FlagForCreate(movementModel, username, USER_AGENT);
                MoonlayEntityExtension.FlagForUpdate(movementModel, username, USER_AGENT);
                DbSet2.Add(movementModel);
            }
            var result2 = await DbContext.SaveChangesAsync();
        }
示例#7
0
        public async Task <int> Create(InventoryWeavingMovement model, string username)
        {
            int Created = 0;

            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    model.FlagForCreate(username, USER_AGENT);
                    model.FlagForUpdate(username, USER_AGENT);
                    DbSet.Add(model);
                    Created = await DbContext.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception("Insert Error : " + e.Message);
                }
            }

            return(Created);
        }
        //public async Task<InventoryWeavingDocument> GetExistingModel( InventoryWeavingDocument data)
        //{
        //    List<InventoryWeavingDocumentItem> DocsItems = new List<InventoryWeavingDocumentItem>();
        //    foreach (var i in Id)
        //    {
        //        i.ListItems = i.ListItems.Where(s => s.IsSave).ToList();

        //        data = data.Items.Where(s => s.Id ==  );
        //        foreach (var d in i.ListItems)
        //        {
        //            DocsItems.Add(new InventoryWeavingDocumentItem
        //            {
        //                Id = d.Id,
        //                Active = d.Active,
        //                _CreatedBy = d._CreatedBy,
        //                _CreatedUtc = d._CreatedUtc,
        //                _CreatedAgent = d._CreatedAgent,
        //                _LastModifiedBy = d._LastModifiedBy,
        //                _LastModifiedUtc = d._LastModifiedUtc,
        //                _LastModifiedAgent = d._LastModifiedAgent,
        //                _IsDeleted = d._IsDeleted,
        //                ProductOrderName = i.ProductOrderNo,
        //                ReferenceNo = i.ReferenceNo,
        //                Construction = i.Construction,

        //                Grade = d.Grade,
        //                Piece = d.Piece == "BESAR" ? "1" : d.Piece == "KECIL" ? "2" : "3",
        //                MaterialName = d.MaterialName,
        //                WovenType = d.WovenType,
        //                Width = d.Width,
        //                Yarn1 = d.Yarn1,
        //                Yarn2 = d.Yarn2,
        //                YarnType1 = d.YarnType1,
        //                YarnType2 = d.YarnType2,
        //                YarnOrigin1 = d.YarnOrigin1,
        //                YarnOrigin2 = d.YarnOrigin2,

        //                UomId = 35,
        //                UomUnit = "MTR",
        //                Quantity = d.Qty,
        //                QuantityPiece = d.QtyPiece,
        //                ProductRemark = d.ProductRemark,
        //                //InventoryWeavingDocumentId = d.InventoryWeavingDocumentId
        //            });


        //        }
        //    }

        //    InventoryWeavingDocument model = new InventoryWeavingDocument
        //    {
        //        BonNo = data.BonNo,
        //        BonType = data.BonType,
        //        Date = data.Date,
        //        StorageId = data.Id,
        //        StorageCode = data.StorageCode,
        //        StorageName = data.StorageName,
        //        Remark = "",
        //        Type = data.Type,
        //        Items = DocsItems

        //    };
        //    return model;

        //}

        public async Task <int> UpdateAsync(int id, InventoryWeavingDocument model)
        {
            using (var transaction = DbContext.Database.CurrentTransaction ?? DbContext.Database.BeginTransaction())
            {
                try
                {
                    int Updated = 0;

                    int[] Id            = model.Items.Select(i => i.Id).ToArray();
                    var   existingModel = this.DbSet.Where(d => d.Id.Equals(id) && d._IsDeleted.Equals(false)).Include(p => p.Items).FirstOrDefault();
                    //var existingModel = GetExistingModel(Id);

                    //var modelExist = this.DbSet.Where(x => x.Items.Any(s => Id.Contains(s.Id))).ToList();
                    //var existingModel = this.DbSet.Where(d => d.Id.Equals(id) && d._IsDeleted.Equals(false)).Include(p => p.Items.Any( s=> Id.Contains(s.Id))).FirstOrDefault();

                    //existingModel = existingModel.Items.Any(s => Id.Contains(s.Id));


                    //foreach (var existingItem in existingModel.Detail)
                    //{
                    //    GarmentLeftoverWarehouseStock stockIn = GenerateStock(existingItem);
                    //    await StockService.StockIn(stockIn, model.ExpenditureNo, model.Id, existingItem.Id);
                    //}

                    foreach (var existingItem in existingModel.Items.Where(x => Id.Contains(x.Id)))
                    {
                        var item = model.Items.FirstOrDefault(i => i.Id == existingItem.Id);

                        if (item != null)
                        {
                            if (existingItem.Quantity != item.Quantity)
                            {
                                existingItem.Quantity = item.Quantity;
                            }

                            if (existingItem.QuantityPiece != item.QuantityPiece)
                            {
                                existingItem.QuantityPiece = item.QuantityPiece;
                            }
                            existingItem.FlagForUpdate(IdentityService.Username, UserAgent);
                        }
                        //else
                        //{
                        //    if (existingItem.Quantity != item.Quantity)
                        //    {
                        //        existingItem.Quantity = item.Quantity;
                        //    }

                        //    if (existingItem.QuantityPiece != item.QuantityPiece)
                        //    {
                        //        existingItem.QuantityPiece = item.QuantityPiece;
                        //    }
                        //    existingItem.FlagForUpdate(IdentityService.Username, UserAgent);
                        //}
                    }

                    foreach (var item in model.Items.Where(i => i.Id == 0))
                    {
                        item.FlagForCreate(IdentityService.Username, UserAgent);
                        item.FlagForUpdate(IdentityService.Username, UserAgent);
                        existingModel.Items.Add(item);
                    }

                    Updated = await DbContext.SaveChangesAsync();

                    foreach (var item in model.Items)
                    {
                        InventoryWeavingMovement movement = GenerateMovement(item);
                        await movementService.UpdateAsync(movement);
                    }



                    transaction.Commit();

                    return(Updated);
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }
        }