public async Task <IActionResult> PutByNumber(int key, [FromBody] FinishedGoodsMaster uFinishedGoodsMaster)
        {
            var Message = "Finished goods master not been found.";

            if (uFinishedGoodsMaster != null)
            {
                uFinishedGoodsMaster = this.helpers.AddHourMethod(uFinishedGoodsMaster);
                // set modified
                uFinishedGoodsMaster.ModifyDate = DateTime.Now;
                uFinishedGoodsMaster.Modifyer   = uFinishedGoodsMaster.Modifyer ?? "Someone";
                // null for FK
                uFinishedGoodsMaster.ColorItem          = null;
                uFinishedGoodsMaster.ColorMovementStock = null;

                var updateFG = await this.repository.UpdateAsync(uFinishedGoodsMaster, key);

                if (updateFG != null && updateFG.ColorMovementStockId.HasValue)
                {
                    var updateMovementStock = await this.repositoryMovement.GetAllAsQueryable()
                                              .FirstOrDefaultAsync(x => x.ColortMovementStockId == updateFG.ColorMovementStockId);

                    updateMovementStock.Quantity          = updateFG.Quantity ?? updateMovementStock.Quantity;
                    updateMovementStock.MovementStockDate = updateFG.FinishedGoodsDate;
                    updateMovementStock.ModifyDate        = updateFG.ModifyDate;
                    updateMovementStock.Modifyer          = updateFG.Modifyer;

                    await this.repositoryMovement.UpdateAsync(updateMovementStock, updateMovementStock.ColortMovementStockId);
                }

                return(new JsonResult(updateFG, this.DefaultJsonSettings));
            }
            return(NotFound(new { Error = Message }));
        }
        public async Task <IActionResult> Post([FromBody] FinishedGoodsMaster nFinishedGoodsMaster)
        {
            if (nFinishedGoodsMaster != null)
            {
                nFinishedGoodsMaster = this.helpers.AddHourMethod(nFinishedGoodsMaster);

                nFinishedGoodsMaster.CreateDate = DateTime.Now;
                nFinishedGoodsMaster.Creator    = nFinishedGoodsMaster.Creator ?? "Someone";
                // null for FK
                nFinishedGoodsMaster.ColorItem = null;

                if (nFinishedGoodsMaster.ColorMovementStock == null)
                {
                    var StockStatus = await this.repositoryMoveStatus.GetAllAsQueryable()
                                      .FirstOrDefaultAsync(x => x.StatusMovement == StatusMovement.Stock);

                    if (StockStatus != null)
                    {
                        nFinishedGoodsMaster.ColorMovementStock = new ColorMovementStock()
                        {
                            MovementStockDate     = nFinishedGoodsMaster.FinishedGoodsDate,
                            Quantity              = nFinishedGoodsMaster.Quantity.Value,
                            ColorItemId           = nFinishedGoodsMaster.ColorItemId,
                            CreateDate            = nFinishedGoodsMaster.CreateDate,
                            Creator               = nFinishedGoodsMaster.Creator,
                            MovementStockStatusId = StockStatus.MovementStockStatusId,
                        };
                    }
                }

                return(new JsonResult(await this.repository.AddAsync(nFinishedGoodsMaster), this.DefaultJsonSettings));
            }
            return(NotFound(new { Error = "Not found finished goods master data !!!" }));
        }