Skip to content

Commit 3d11235

Browse files
authored
Merge pull request #350 from SP25SE153-CFMS/feature/dev/fix
fix: fix complete tasks
2 parents a39ff1a + aeca0a3 commit 3d11235

File tree

1 file changed

+105
-100
lines changed

1 file changed

+105
-100
lines changed

src/CFMS.Application/Features/TaskFeat/CompleteTask/CompleteTaskCommandHandler.cs

Lines changed: 105 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public async Task<BaseResponse<bool>> Handle(CompleteTaskCommand request, Cancel
7474
{
7575
return BaseResponse<bool>.FailureResponse(message: "Công việc này đã được báo cáo rồi");
7676
}
77+
7778
var chickenBatch = Guid.Empty;
7879
var location = existTask.TaskLocations.FirstOrDefault();
7980
if (location?.LocationType?.Equals("COOP") == true)
@@ -94,123 +95,124 @@ public async Task<BaseResponse<bool>> Handle(CompleteTaskCommand request, Cancel
9495

9596
var taskType = _unitOfWork.SubCategoryRepository.Get(filter: x => x.SubCategoryId.Equals(existTask.TaskTypeId) && x.IsDeleted == false).FirstOrDefault()?.SubCategoryName;
9697

97-
var totalConsumed = request?.TaskResources?.Sum(x => x.ConsumedQuantity) ?? 0;
98-
var totalSupplied = request?.TaskResources?.Sum(x => x.SuppliedQuantity) ?? 0;
99-
var isRedundant = totalSupplied - totalConsumed > 0 ? true : false;
98+
//var totalConsumed = request?.TaskResources?.Sum(x => x.ConsumedQuantity) ?? 0;
99+
//var totalSupplied = request?.TaskResources?.Sum(x => x.SuppliedQuantity) ?? 0;
100+
//var isRedundant = totalSupplied - totalConsumed > 0 ? true : false;
100101

101102
try
102103
{
103104
//string[] keywords = { "thực phẩm", "dược phẩm", "thiết bị", "thu hoạch", "con giống" };
104105

105-
existTask.Status = 2;
106106
//var leader = existTask.Assignments.Where(x => x.Status.Equals(1)).FirstOrDefault();
107107
//leader.Note = request.Note;
108108

109-
var requestType = _unitOfWork.SubCategoryRepository.Get(x => x.SubCategoryName.Equals("IMPORT") && x.IsDeleted == false).FirstOrDefault();
110109

111110
//var lastRequest = _unitOfWork.RequestRepository.Get(filter: r => r.CreatedByUser.UserId.ToString().Equals(leader.AssignedToId)).FirstOrDefault();
112111

113-
var newRequest = new Request()
114-
{
115-
RequestTypeId = requestType?.SubCategoryId,
116-
FarmId = existTask.FarmId,
117-
Status = 0
118-
};
112+
//if (isRedundant || (request?.HarvestProducts?.ToList().Count > 0))
113+
//{
114+
// _unitOfWork.RequestRepository.Insert(newRequest);
115+
// await _unitOfWork.SaveChangesAsync();
116+
117+
// if (request?.TaskResources != null)
118+
// {
119+
// Resource resource;
120+
121+
// var groupedResources = request?.TaskResources?
122+
// .Select(detail => new
123+
// {
124+
125+
// Resource = _unitOfWork.ResourceRepository.GetIncludeMultiLayer(
126+
// filter: r => r.ResourceId == detail.ResourceId,
127+
// include: x => x
128+
// .Include(t => t.Food)
129+
// .Include(t => t.Equipment)
130+
// .Include(t => t.Medicine)
131+
// .Include(t => t.Chicken)
132+
// .Include(t => t.HarvestProduct)
133+
// .Include(t => t.ResourceType)
134+
// .Include(t => t.ResourceSuppliers))
135+
// .FirstOrDefault(),
136+
// SuppliedQuantity = detail.SuppliedQuantity,
137+
// ConsumedQuantity = detail.ConsumedQuantity,
138+
// SupplierId = detail.SupplierId
139+
// })
140+
// .GroupBy(x =>
141+
// {
142+
// var resource = x.Resource;
143+
// if (resource?.Food != null) return "food";
144+
// if (resource?.Medicine != null) return "medicine";
145+
// if (resource?.Equipment != null) return "equipment";
146+
// if (resource?.Chicken != null) return "breeding";
147+
// if (resource?.HarvestProduct != null) return "harvest_product";
148+
// return "others";
149+
// })
150+
// .ToList();
151+
152+
// foreach (var group in groupedResources)
153+
// {
154+
// bool isCreateRequest = false;
155+
// var inventoryRequest = new InventoryRequest();
156+
157+
// foreach (var detail in group)
158+
// {
159+
// var stock = _unitOfWork.WareStockRepository
160+
// .Get(filter: w => w.ResourceId.Equals(detail.Resource.ResourceId) && w.SupplierId == detail.SupplierId)
161+
// .FirstOrDefault();
162+
163+
// var ware = _unitOfWork.WarehouseRepository
164+
// .Get(filter: w => w.WareId.Equals(stock.WareId) && w.IsDeleted == false)
165+
// .FirstOrDefault();
166+
167+
// if (!isCreateRequest)
168+
// {
169+
// inventoryRequest = new InventoryRequest
170+
// {
171+
// RequestId = newRequest.RequestId,
172+
// InventoryRequestTypeId = requestType?.SubCategoryId,
173+
// WareToId = ware?.WareId
174+
// };
175+
176+
// _unitOfWork.InventoryRequestRepository.Insert(inventoryRequest);
177+
// await _unitOfWork.SaveChangesAsync();
178+
179+
// isCreateRequest = true;
180+
// }
181+
182+
// var inventoryRequestDetail = new InventoryRequestDetail
183+
// {
184+
// InventoryRequestId = inventoryRequest.InventoryRequestId,
185+
// ResourceId = detail?.Resource?.ResourceId,
186+
// ResourceSupplierId = detail?.Resource?.ResourceSuppliers?.Where(t => t.ResourceId.Equals(detail?.Resource?.ResourceId)).FirstOrDefault()?.ResourceSupplierId,
187+
// ExpectedQuantity = detail?.SuppliedQuantity - detail?.ConsumedQuantity,
188+
// UnitId = detail?.Resource?.UnitId,
189+
// Reason = request?.Reason,
190+
// ExpectedDate = DateTime.Now.ToLocalTime(),
191+
// Note = request?.Note
192+
// };
193+
194+
// _unitOfWork.InventoryRequestDetailRepository.Insert(inventoryRequestDetail);
195+
// }
196+
197+
// await _unitOfWork.SaveChangesAsync();
198+
// }
199+
// }
200+
//}
119201

120-
if (isRedundant || (request?.HarvestProducts?.ToList().Count > 0))
202+
if (request?.HarvestProducts != null)
121203
{
122-
_unitOfWork.RequestRepository.Insert(newRequest);
123-
await _unitOfWork.SaveChangesAsync();
124-
125-
if (request?.TaskResources != null)
126-
{
127-
Resource resource;
128-
129-
var groupedResources = request?.TaskResources?
130-
.Select(detail => new
131-
{
132-
133-
Resource = _unitOfWork.ResourceRepository.GetIncludeMultiLayer(
134-
filter: r => r.ResourceId == detail.ResourceId,
135-
include: x => x
136-
.Include(t => t.Food)
137-
.Include(t => t.Equipment)
138-
.Include(t => t.Medicine)
139-
.Include(t => t.Chicken)
140-
.Include(t => t.HarvestProduct)
141-
.Include(t => t.ResourceType)
142-
.Include(t => t.ResourceSuppliers))
143-
.FirstOrDefault(),
144-
SuppliedQuantity = detail.SuppliedQuantity,
145-
ConsumedQuantity = detail.ConsumedQuantity,
146-
SupplierId = detail.SupplierId
147-
})
148-
.GroupBy(x =>
149-
{
150-
var resource = x.Resource;
151-
if (resource?.Food != null) return "food";
152-
if (resource?.Medicine != null) return "medicine";
153-
if (resource?.Equipment != null) return "equipment";
154-
if (resource?.Chicken != null) return "breeding";
155-
if (resource?.HarvestProduct != null) return "harvest_product";
156-
return "others";
157-
})
158-
.ToList();
159-
160-
foreach (var group in groupedResources)
161-
{
162-
bool isCreateRequest = false;
163-
var inventoryRequest = new InventoryRequest();
164204

165-
foreach (var detail in group)
166-
{
167-
var stock = _unitOfWork.WareStockRepository
168-
.Get(filter: w => w.ResourceId.Equals(detail.Resource.ResourceId) && w.SupplierId == detail.SupplierId)
169-
.FirstOrDefault();
170-
171-
var ware = _unitOfWork.WarehouseRepository
172-
.Get(filter: w => w.WareId.Equals(stock.WareId) && w.IsDeleted == false)
173-
.FirstOrDefault();
174-
175-
if (!isCreateRequest)
176-
{
177-
inventoryRequest = new InventoryRequest
178-
{
179-
RequestId = newRequest.RequestId,
180-
InventoryRequestTypeId = requestType?.SubCategoryId,
181-
WareToId = ware?.WareId
182-
};
183-
184-
_unitOfWork.InventoryRequestRepository.Insert(inventoryRequest);
185-
await _unitOfWork.SaveChangesAsync();
186-
187-
isCreateRequest = true;
188-
}
189-
190-
var inventoryRequestDetail = new InventoryRequestDetail
191-
{
192-
InventoryRequestId = inventoryRequest.InventoryRequestId,
193-
ResourceId = detail?.Resource?.ResourceId,
194-
ResourceSupplierId = detail?.Resource?.ResourceSuppliers?.Where(t => t.ResourceId.Equals(detail?.Resource?.ResourceId)).FirstOrDefault()?.ResourceSupplierId,
195-
ExpectedQuantity = detail?.SuppliedQuantity - detail?.ConsumedQuantity,
196-
UnitId = detail?.Resource?.UnitId,
197-
Reason = request?.Reason,
198-
ExpectedDate = DateTime.Now.ToLocalTime(),
199-
Note = request?.Note
200-
};
201-
202-
_unitOfWork.InventoryRequestDetailRepository.Insert(inventoryRequestDetail);
203-
}
204-
205-
await _unitOfWork.SaveChangesAsync();
206-
}
207-
}
208-
}
205+
var requestType = _unitOfWork.SubCategoryRepository.Get(x => x.SubCategoryName.Equals("IMPORT") && x.IsDeleted == false).FirstOrDefault();
209206

210-
if (request?.HarvestProducts != null)
211-
{
212207
Resource resource;
213208

209+
var newRequest = new Request()
210+
{
211+
RequestTypeId = requestType?.SubCategoryId,
212+
FarmId = existTask.FarmId,
213+
Status = 0
214+
};
215+
214216
var groupedResources = request?.HarvestProducts?
215217
.Select(detail => new
216218
{
@@ -271,7 +273,10 @@ public async Task<BaseResponse<bool>> Handle(CompleteTaskCommand request, Cancel
271273
await _unitOfWork.SaveChangesAsync();
272274
}
273275
}
276+
274277
existTask.EndWorkDate = DateTime.Now.ToLocalTime();
278+
existTask.Status = 2;
279+
275280
_unitOfWork.TaskRepository.Update(existTask);
276281
var result = await _unitOfWork.SaveChangesAsync();
277282
if (result > 0)

0 commit comments

Comments
 (0)