@@ -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