Ejemplo n.º 1
0
        public async Task <ActionResult> CollectDeadstock([FromBody] CollectDeadstockRequest _model)
        {
            string link = URI_API.LIVESTOCK_PROCEED_COLLECT_DEADSTOCK;
            ResponseConsult <int> response = await PostAsJsonAsync <int>(link, _model);

            return(Ok(response));
        }
Ejemplo n.º 2
0
        public async Task <int> CollectDeadstock(CollectDeadstockRequest _model)
        {
            if (_model.FishPondWarehouseId <= 0)
            {
                scopeContext.AddError("Chưa chọn ao");
                return(0);
            }
            if (_model.MassAmount <= 0)
            {
                scopeContext.AddError("Tổng trọng lượng không đúng");
                return(0);
            }
            if (_model.Ratio <= 0)
            {
                scopeContext.AddError("Tỷ lệ không đúng");
                return(0);
            }
            // dữ liệu ao
            var thisFishPond = await svcFishPond.GetByWarehouseId(_model.FishPondWarehouseId);

            if (thisFishPond == null)
            {
                scopeContext.AddError("Lỗi dữ liệu kho-ao " + _model.FishPondWarehouseId);
                return(0);
            }
            // đợt nuôi
            var thisFarmingSeason = await svcFarmingSeason.GetByFishPondId(thisFishPond.Id);

            if (thisFarmingSeason == null)
            {
                scopeContext.AddError("Ao này chưa vào đợt nuôi");
                return(0);
            }
            // dữ liệu kho-ao
            var thisFishPondWarehouse = await svcWarehouse.GetDetail(_model.FishPondWarehouseId);

            if (thisFishPondWarehouse == null || thisFishPondWarehouse.DefaultWarehouseId <= 0)
            {
                scopeContext.AddError("Lỗi dữ liệu kho mặc định cho ao");
                return(0);
            }
            _model.CollectDate = _model.CollectDate.GetValueOrDefault(DateTime.UtcNow);
            if (_model.DeadstockId <= 0)
            {
                scopeContext.AddError("Mã giống nuôi không tồn tại");
                return(0);
            }
            var deadstock = await svcProduct.GetDetail(_model.DeadstockId);

            if (deadstock == null)
            {
                scopeContext.AddError("Mã giống nuôi không tồn tại");
                return(0);
            }
            var lastFCR = await svcFeedConversionRate.GetLast(thisFarmingSeason.Id, _model.DeadstockId);

            if (lastFCR == null)
            {
                scopeContext.AddError("Ao không có đợt thả nào cho giống nuôi này");
                return(0);
            }
            if (lastFCR.SurveyDate.Date >= _model.CollectDate.Value.Date)
            {
                scopeContext.AddError($"Ngày {_model.CollectDate.Value.ToString("dd/MM/yyyy")} đã được kiểm tra cân trọng");
                return(0);
            }
            // bắt đầu tạo phiếu
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    // Lịch sử đợt nuôi (master lịch sử ao nuôi)
                    FarmingSeasonHistory history = new FarmingSeasonHistory();
                    history.ActionDate      = _model.CollectDate.Value;
                    history.ActionType      = (int)SystemIDEnum.FarmingSeason_ActionType_Collect_Deadstock;
                    history.Description     = "Kiểm cá chết";
                    history.FarmingSeasonId = thisFarmingSeason.Id;
                    history.Id = await svcFarmingSeasonHistory.Add(history);

                    // Lịch sử con giống (detail lịch sử ao nuôi)
                    LivestockHistoryDetail historyDetail = new LivestockHistoryDetail();
                    historyDetail.HistoryId      = history.Id;
                    historyDetail.LivestockId    = _model.DeadstockId;
                    historyDetail.MassAmount     = _model.MassAmount; // kg
                    historyDetail.DeadstockRatio = _model.Ratio;      // Tỷ lệ dùng tính toán số lượng khi kiểm trọng
                    historyDetail.Id             = await svcLivestockHistoryDetail.Add(historyDetail);

                    transaction.Commit();
                    return(history.Id);
                }
                catch
                {
                    transaction.Rollback();
                    return(0);
                }
            }
        }
        public async Task <IActionResult> CollectDeadstock([FromBody] CollectDeadstockRequest _model)
        {
            var result = await busLivestockProcess.CollectDeadstock(_model);

            return(Ok(context.WrapResponse(result)));
        }