/// <summary> /// Insert new Product to database /// </summary> /// <param name="blackList">The object of Product</param> /// <returns>The Product object</returns> public async Task <RequisitionDataModel> SaveRequisitionData(RequisitionDataModel objData) { try { //RequisitionModel objMast = new RequisitionModel(); List <ProductModel> lstProRemain = new List <ProductModel>(); if ("APR,POS,DLV".Contains(objData._master.requisition_type)) { foreach (var item in objData._lstProducts) { var objChk = UnitOfWork.Context.Set <ProductModel>() .Where(w => w.product_id.Equals(item.product_id) && w.remain_amt < item.quantity) .FirstOrDefault(); if (objChk != null) { lstProRemain.Add(objChk); } } if (lstProRemain.Count > 0) { var lstMsg = lstProRemain.Select(s => string.Format("รายการสินค้า {0} ยอดคงเหลือ {1} น้อยกว่า ยอดเบิกจ่าย", s.product_name, s.remain_amt)); throw new Exception(new ErrorInfo { Message = string.Join("\n", lstMsg), MessageLocal = string.Join("\n", lstMsg), Data = -1 }.ConvertErrorInfoToException()); } } objData._master.ModifyDate = DateTime.Now; objData._master.ModifyByUserId = 1; if (objData._master.requisition_id <= 0) { objData._master.document_no = "abc"; objData._master.CreateDate = DateTime.Now; objData._master.CreateByUserId = 1; UnitOfWork.Context.Set <RequisitionModel>().Add(objData._master); } else { UnitOfWork.Context.Set <RequisitionModel>().Update(objData._master); } int i = UnitOfWork.Context.SaveChanges(); foreach (var item in objData._lstProducts) { item.ModifyDate = DateTime.Now; item.ModifyByUserId = 1; if (item.id <= 0) { item.requisition_id = objData._master.requisition_id; item.document_no = objData._master.document_no; item.status = "Y"; item.CreateDate = DateTime.Now; item.CreateByUserId = 1; UnitOfWork.Context.Set <RequisitionProductModel>().Add(item); } else { UnitOfWork.Context.Set <RequisitionProductModel>().Update(item); } await UnitOfWork.Context.SaveChangesAsync(); if ("APR,POS,DLV".Contains(objData._master.requisition_type)) { ProductStockModel objStock = new ProductStockModel(); objStock.CreateByUserId = 1; objStock.CreateDate = DateTime.Now; objStock.ModifyByUserId = item.ModifyByUserId; objStock.ModifyDate = item.ModifyDate; objStock.product_id = item.product_id; objStock.relate_doc_id = item.requisition_id; objStock.item_amt = item.quantity; objStock.from_action = objData._master.requisition_type; ProductStockModule processStock = new ProductStockModule(UnitOfWork); await processStock.InsertAsync(objStock); } } if (objData._lstPackages != null) { foreach (var item in objData._lstPackages) { item.ModifyDate = DateTime.Now; item.ModifyByUserId = 1; if (item.id <= 0) { item.requisition_id = objData._master.requisition_id; item.document_no = objData._master.document_no; item.status = "Y"; item.CreateDate = DateTime.Now; item.CreateByUserId = 1; UnitOfWork.Context.Set <RequisitionPackageModel>().Add(item); } else { UnitOfWork.Context.Set <RequisitionPackageModel>().Update(item); } await UnitOfWork.Context.SaveChangesAsync(); } } return(objData); } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// Insert new Product to database /// </summary> /// <param name="blackList">The object of Product</param> /// <returns>The Product object</returns> public async Task <ReturnRequisitionDataModel> SaveReturnRequisitionData(ReturnRequisitionDataModel objData) { try { //ReturnRequisitionModel objMast = new ReturnRequisitionModel(); //List<ProductModel> lstProRemain = new List<ProductModel>(); //if (objData._master.description == "APR") //{ // foreach (var item in objData._lstProducts) // { // var objChk = UnitOfWork.Context.Set<ProductModel>().Where(w => w.product_id.Equals(item.product_id) && w.remain_amt < item.quantity).FirstOrDefault(); // if (objChk != null) // lstProRemain.Add(objChk); // } // if (lstProRemain.Count > 0) // { // var lstMsg = lstProRemain.Select(s => string.Format("รายการสินค้า {0} ยอดคงเหลือ {1} น้อยกว่า ยอดเบิกจ่าย", s.product_name, s.remain_amt)); // throw new Exception(new ErrorInfo // { // Message = string.Join("\n", lstMsg), // MessageLocal = string.Join("\n", lstMsg), // Data = -1 // }.ConvertErrorInfoToException()); // } //} objData._master.ModifyDate = DateTime.Today; objData._master.ModifyByUserId = 1; if (objData._master.retrun_requisition_id <= 0) { //objData._master.document_no = "abc"; objData._master.CreateDate = DateTime.Today; objData._master.CreateByUserId = 1; UnitOfWork.Context.Set <ReturnRequisitionModel>().Add(objData._master); } else { UnitOfWork.Context.Set <ReturnRequisitionModel>().Update(objData._master); } int i = UnitOfWork.Context.SaveChanges(); foreach (var item in objData._lstProducts) { item.ModifyDate = DateTime.Today; item.ModifyByUserId = 1; if (item.return_product_id <= 0) { item.retrun_requisition_id = objData._master.retrun_requisition_id; //item.document_no = objData._master.document_no; item.status = "Y"; item.CreateDate = DateTime.Today; item.CreateByUserId = 1; UnitOfWork.Context.Set <ReturnRequisitionProductModel>().Add(item); } else { UnitOfWork.Context.Set <ReturnRequisitionProductModel>().Update(item); } UnitOfWork.Context.SaveChanges(); if (item.return_quantity > 0) { ProductStockModel objStock = new ProductStockModel(); objStock.CreateByUserId = 1; objStock.CreateDate = DateTime.Today; objStock.ModifyByUserId = item.ModifyByUserId; objStock.ModifyDate = item.ModifyDate; objStock.product_id = item.product_id; objStock.relate_doc_id = item.return_product_id; objStock.item_amt = item.return_quantity ?? 0; objStock.from_action = "RTN"; ProductStockModule processStock = new ProductStockModule(UnitOfWork); await processStock.InsertAsync(objStock); } } foreach (var item in objData._lstPackages) { //item.ModifyDate = DateTime.Today; //item.ModifyByUserId = 1; if (item.return_requisition_package_id <= 0) { item.retrun_requisition_id = objData._master.retrun_requisition_id; //item.document_no = objData._master.document_no; item.status = "Y"; //item.CreateDate = DateTime.Today; //item.CreateByUserId = 1; UnitOfWork.Context.Set <ReturnRequisitionPackageModel>().Add(item); } else { UnitOfWork.Context.Set <ReturnRequisitionPackageModel>().Update(item); } UnitOfWork.Context.SaveChanges(); } foreach (var item in objData._lstItems) { //item.ModifyDate = DateTime.Today; //item.ModifyByUserId = 1; if (item.return_requisition_item_id <= 0) { item.retrun_requisition_id = objData._master.retrun_requisition_id; //item.document_no = objData._master.document_no; item.status = "Y"; //item.CreateDate = DateTime.Today; //item.CreateByUserId = 1; UnitOfWork.Context.Set <ReturnRequisitionItemModel>().Add(item); } else { UnitOfWork.Context.Set <ReturnRequisitionItemModel>().Update(item); } UnitOfWork.Context.SaveChanges(); } return(objData); } catch (Exception ex) { throw new Exception(ex.Message); } }
public ProductStockController(IceFactoryUnitOfWork unitOfWork) : base(unitOfWork) { _objModule = new ProductStockModule(unitOfWork); }