/// <summary> /// Изменить остаток на складе ИЦ или главном складе /// </summary> /// <param name="tmcId"></param> /// <param name="countOut"></param> private void UpdateTmcResidue(Guid tmcId, decimal countOut) { TmcRepository tmcRepository = new TmcRepository(false); var tmc = tmcRepository.GetById(tmcId); tmc.CountActual = (tmc.CountActual == 0 ? tmc.CountConvert : tmc.CountActual) - countOut; tmcRepository.Update(tmc); tmcRepository.Save(); }
public ActionResult CreateTmc([DataSourceRequest] DataSourceRequest request, TmcViewModel model) { TmcRepository repo = new TmcRepository(false); Tmc tmc = new Tmc() { Id = Guid.NewGuid(), StateType = model.StateType, Name = model.Name, Code = model.Code, CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, Count = model.Count, CountActual = model.CountActual, OwnerEmployeeId = model.OwnerEmployeeId, Number = model.Number, CountFact = model.CountFact, CountConvert = model.CountFact, ExpiryDate = model.ExpiryDate, ManufactureDate = model.ManufactureDate, Manufacturer = model.Manufacturer, MeasureTypeConvertDicId = model.MeasureTypeConvertDicId, MeasureTypeDicId = model.MeasureTypeDicId, PackageDicId = model.PackageDicId, Rack = model.Rack, Safe = model.Safe, Serial = model.Serial, StorageDicId = model.StorageDicId, TmcTypeDicId = model.TmcTypeDicId, ReceivingDate = model.ReceivingDate, TmcInId = Guid.Parse(model.TmcInIdString), }; repo.Insert(tmc); repo.Save(); model.Id = tmc.Id; var newDictionary = repo.TvGetAsQuarable(o => o.Id == tmc.Id).First(); model.MeasureTypeDicValue = newDictionary.MeasureTypeDicValue; var appRepo = new ApplicationPoaRepository(false); appRepo.AddLimsTmcTemp(new LimsTmcTemp() { TmcId = tmc.Id, TmcInId = tmc.TmcInId, CountRequest = model.CountRequest, CountReceived = null, IsSelected = model.IsSelected, CreatedDate = DateTime.Now }); appRepo.Save(); return(Json(new[] { model }.ToDataSourceResult(request, ModelState))); }
public JsonResult ReadData([DataSourceRequest] DataSourceRequest request) { TmcRepository repository = new TmcRepository(); var qr = repository.LtaGetAsQuarable(); qr = base.FilterByCurrentUser(qr, repository.GetContext()); qr = qr.OrderBy(m => m.Name); var data = qr; return(Json(data.ToDataSourceResult(request), JsonRequestBehavior.AllowGet)); }
public ActionResult UpdateTmc([DataSourceRequest] DataSourceRequest request, TmcViewModel model) { TmcRepository repo = new TmcRepository(false); Tmc tmc = repo.GetAsQuarable(o => o.Id == model.Id).FirstOrDefault(); if (tmc != null) { //tmc.StateType = model.StateType; //tmc.Name = model.Name; //tmc.Code = model.Code; //tmc.Count = model.Count; //tmc.CountActual = model.CountRequest.Value; //tmc.OwnerEmployeeId = model.OwnerEmployeeId; //tmc.Number = model.Number; //tmc.CountFact = model.CountRequest.Value; //tmc.CountConvert = model.CountRequest.Value; //tmc.ExpiryDate = model.ExpiryDate; //tmc.ManufactureDate = model.ManufactureDate; //tmc.Manufacturer = model.Manufacturer; //tmc.MeasureTypeConvertDicId = model.MeasureTypeConvertDicId; //tmc.MeasureTypeDicId = model.MeasureTypeDicId; //tmc.PackageDicId = model.PackageDicId; //tmc.Rack = model.Rack; //tmc.Safe = model.Safe; //tmc.Serial = model.Serial; //tmc.StorageDicId = model.StorageDicId; //tmc.TmcTypeDicId = model.TmcTypeDicId; //tmc.ReceivingDate = model.ReceivingDate; tmc.MeasureTypeDicId = model.MeasureTypeDicId; } repo.Save(); if (tmc != null) { var newDictionary = repo.TvGetAsQuarable(o => o.Id == tmc.Id).First(); model.MeasureTypeDicValue = newDictionary.MeasureTypeDicValue; var appRepo = new ApplicationPoaRepository(false); var limsTmcTemp = appRepo.GetLimsTmcTemps(ltt => ltt.TmcId == tmc.Id && ltt.TmcInId == tmc.TmcInId).FirstOrDefault(); if (limsTmcTemp != null) { limsTmcTemp.CountRequest = model.CountRequest; limsTmcTemp.CountReceived = model.CounReceived; } appRepo.Save(); } return(Json(new[] { model }.ToDataSourceResult(request, ModelState))); }
public ActionResult DestroyApplication([DataSourceRequest] DataSourceRequest request, TmcInView model) { if (model != null) { TmcRepository tRepo = new TmcRepository(false); tRepo.RemoveTmcByPoaId(model.Id); tRepo.Save(); ApplicationPoaRepository repo = new ApplicationPoaRepository(false); TmcIn d = repo.GetAsQuarable(o => o.Id == model.Id).FirstOrDefault(); repo.Delete(d); repo.Save(); } return(Json(new[] { model }.ToDataSourceResult(request, ModelState))); }
// GET: OrderTmc public PartialViewResult OrderTmcView(Guid tmcId, Guid?id = null, string note = "", bool isEdit = false) { TmcRepository tmcRepository = new TmcRepository(false); LimsTmcOutView toc = new LimsTmcOutView() { Id = tmcId, TmcId = tmcId, TmcOutId = id ?? Guid.Empty }; if (id == null) { var tmcOrdering = tmcRepository.GetAsQuarable(tmc => tmc.Id == tmcId).FirstOrDefault(); if (tmcOrdering != null) { toc.Name = tmcOrdering.Name; toc.Count = tmcOrdering.CountActual; toc.OwnerEmployeeId = tmcOrdering.OwnerEmployeeId; toc.MeasureTypeConvertDicId = tmcOrdering.MeasureTypeConvertDicId; } DictionaryRepository dicRep = new DictionaryRepository(false); var outTypeId = dicRep.GetAsQuarable(d => d.Type == Dictionary.OutTypes.DicCode && d.ExpireDate == null) .Select(d => d.Id) .FirstOrDefault(); toc.OutTypeDicId = outTypeId; toc.Note = note; } else { OrderTmcRepository otRepo = new OrderTmcRepository(false); toc = otRepo.LimsTmcOutViewGetAsQuarable(lto => lto.TmcId == tmcId && lto.TmcOutId == id).FirstOrDefault(); var tmcOrdering = tmcRepository.GetAsQuarable(tmc => tmc.Id == tmcId).FirstOrDefault(); if (tmcOrdering != null && toc != null) { toc.MeasureTypeConvertDicId = tmcOrdering.MeasureTypeConvertDicId; } } if (toc != null) { toc.IsEdit = isEdit; } return(PartialView(toc)); }
public ActionResult ConfirmAcceptTmc(Guid id, Tmc tmc) { TmcRepository repo = new TmcRepository(false); var tmcExist = repo.GetAsQuarable(o => o.Id == id).FirstOrDefault(); if (tmcExist != null) { if (tmcExist.StateType == Tmc.TmcStatuses.Accepted) { tmcExist.CountFact += tmc.Count; tmcExist.CountActual += tmc.CountConvert; tmcExist.CountConvert += tmc.CountConvert; } else { tmcExist.CountFact = tmc.Count; tmcExist.CountActual = tmcExist.CountConvert = tmc.CountConvert; } tmcExist.StateType = Tmc.TmcStatuses.Accepted; if (tmc.MeasureTypeConvertDicId != null) { tmcExist.MeasureTypeConvertDicId = tmc.MeasureTypeConvertDicId; } else { tmcExist.MeasureTypeConvertDicId = tmcExist.MeasureTypeDicId; tmcExist.CountActual = tmcExist.CountConvert = tmcExist.CountFact = tmc.Count; } tmcExist.OwnerEmployeeId = UserHelper.GetCurrentEmployee().Id; tmcExist.ReceivingDate = tmc.ReceivingDate ?? DateTime.Now; repo.Save(); ApplicationPoaRepository repository = new ApplicationPoaRepository(false); var limsTmcTemp = repository.GetLimsTmcTemps(ltt => ltt.TmcId == tmc.Id && ltt.TmcInId == tmc.TmcInId).FirstOrDefault(); if (limsTmcTemp != null) { limsTmcTemp.CountReceived = tmc.Count; } repository.Save(); } return(Json(id, JsonRequestBehavior.AllowGet)); }
public ActionResult DestroyTmc([DataSourceRequest] DataSourceRequest request, TmcViewModel dictionary) { TmcRepository repo = new TmcRepository(false); ApplicationPoaRepository poaRepo = new ApplicationPoaRepository(false); if (dictionary != null) { var limsTmcTemp = poaRepo.GetLimsTmcTemps(ltt => ltt.TmcId == dictionary.Id && ltt.TmcInId == dictionary.TmcInId).FirstOrDefault(); poaRepo.DeleteLimsTmcTemp(limsTmcTemp); poaRepo.Save(); Tmc d = repo.GetAsQuarable(o => o.Id == dictionary.Id).First(); repo.Delete(d); repo.Save(); } return(Json(new[] { dictionary }.ToDataSourceResult(request, ModelState))); }
public PartialViewResult DeliveryTmcIssueView(Guid id) { OrderTmcRepository repository = new OrderTmcRepository(false); var limsTmcOutModel = repository.LimsTmcOutViewGetAsQuarable(lto => lto.Id == id).FirstOrDefault(); if (limsTmcOutModel != null) { TmcRepository tmcRepo = new TmcRepository(false); var tmcState = tmcRepo.LtaGetAsQuarable(lta => lta.Id == limsTmcOutModel.TmcId).FirstOrDefault(); if (EmployeePermissionHelper.IsFrpCenterTmc) { if (tmcState == null) { var tmcView = tmcRepo.TvGetAsQuarable(tv => tv.Id == limsTmcOutModel.TmcId).FirstOrDefault(); limsTmcOutModel.CountFact = tmcView != null ? Math.Min(tmcView.CountActual, limsTmcOutModel.Count) : limsTmcOutModel.Count; limsTmcOutModel.CountActual = tmcView?.CountActual ?? 0; } else { limsTmcOutModel.CountFact = tmcState.TmcCountActual != null ? Math.Min(tmcState.TmcCountActual.Value, limsTmcOutModel.Count) : limsTmcOutModel.Count; limsTmcOutModel.CountActual = tmcState.TmcCountActual ?? 0; } } else { limsTmcOutModel.CountFact = Math.Min(tmcState?.CountActual ?? 0, limsTmcOutModel.Count); if (tmcState?.CountActual != null) { limsTmcOutModel.CountActual = tmcState.CountActual.Value; } } } return(PartialView(limsTmcOutModel)); }
public JsonResult ConfirmOrderTmc(LimsTmcOutView outCount) { OrderTmcRepository repository = new OrderTmcRepository(false); // берем у ТМЦ var ownerId = outCount.OwnerEmployeeId; if (outCount.OwnerEmployeeId == null) { var tmcRepo = new TmcRepository(false); ownerId = tmcRepo.GetAsQuarable(t => t.Id == outCount.TmcId).Select(t => t.OwnerEmployeeId).FirstOrDefault(); } TmcOut tmcOut = new TmcOut() { Id = Guid.NewGuid(), Note = outCount.Note, CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, StateType = TmcOut.TmcOutStatuses.Ordered, OwnerEmployeeId = ownerId, OutTypeDicId = outCount.OutTypeDicId }; repository.Insert(tmcOut); TmcOutCount tmcOutCount = new TmcOutCount() { Id = Guid.NewGuid(), TmcId = outCount.TmcId, Count = outCount.Count, Note = outCount.Note, TmcOutId = tmcOut.Id }; repository.TocInsert(tmcOutCount); repository.Save(); return(Json(outCount.TmcId, JsonRequestBehavior.AllowGet)); }
public ActionResult UpdateRequestTake([DataSourceRequest] DataSourceRequest request, TmcInView dictionary) { if (dictionary.Id == Guid.Empty) { dictionary.Id = dictionary.TmcInId; } TmcIn d = db.TmcIns.First(o => o.Id == dictionary.Id); bool isContractChange = d.ContractNumber != dictionary.ContractNumber; d.StateType = dictionary.StateType; d.ContractDate = dictionary.ContractDate; d.ContractNumber = dictionary.ContractNumber; d.IsFullDelivery = dictionary.IsFullDelivery; d.LastDeliveryDate = dictionary.LastDeliveryDate; d.OwnerEmployeeId = dictionary.OwnerEmployeeId; d.Provider = dictionary.Provider; d.ProviderBin = dictionary.ProviderBin; d.ExecutorEmployeeId = dictionary.ExecutorEmployeeId; d.AgreementEmployeeId = dictionary.AgreementEmployeeId; d.AccountantEmployeeId = dictionary.AccountantEmployeeId; db.SaveChanges(); dictionary = db.TmcInViews.First(o => o.Id == d.Id); if (isContractChange) { TmcRepository tmcRepo = new TmcRepository(); tmcRepo.RemoveTmcByPoaId(dictionary.Id); var dicRepo = new DictionaryRepository(false); var contractProducts = tmcRepo.GetI1cLimsContractProducts(lc => lc.ContractNumber == d.ContractNumber); foreach (var prod in contractProducts.ToList()) { var measureId = dicRepo.GetDictionaryIdByTypeAndDisplayName(Dictionary.MeasureType.DicCode, prod.Unit); var t = new Tmc() { Id = Guid.NewGuid(), CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, TmcInId = d.Id, StateType = 0, Number = prod.ProductId, Code = prod.ProductId, Name = prod.Name, Count = prod.QuantityVolume.Value, CountActual = prod.QuantityVolume.Value, CountFact = prod.QuantityVolume.Value, CountConvert = prod.QuantityVolume.Value, MeasureTypeDicId = measureId, MeasureTypeConvertDicId = measureId }; tmcRepo.Insert(t); } tmcRepo.Save(); } return(Json(new[] { dictionary }.ToDataSourceResult(request, ModelState))); }
public ActionResult CreateRequestTake([DataSourceRequest] DataSourceRequest request, TmcInViewModel dictionary) { if (ModelState.IsValid) { TmcIn tmc = new TmcIn() { Id = Guid.NewGuid(), StateType = dictionary.StateType, ContractDate = dictionary.ContractDate, ContractNumber = dictionary.ContractNumber, CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, IsFullDelivery = dictionary.IsFullDelivery, LastDeliveryDate = dictionary.LastDeliveryDate, OwnerEmployeeId = dictionary.OwnerEmployeeId, Provider = dictionary.Provider, ProviderBin = dictionary.ProviderBin, ExecutorEmployeeId = dictionary.ExecutorEmployeeId, AgreementEmployeeId = dictionary.AgreementEmployeeId, AccountantEmployeeId = dictionary.AccountantEmployeeId }; db.TmcIns.Add(tmc); db.SaveChanges(); var newDictionary = db.TmcInViews.First(o => o.Id == tmc.Id); dictionary.TmcInId = tmc.Id; dictionary.OwnerEmployeeValue = newDictionary.OwnerEmployeeValue; dictionary.StateTypeValue = newDictionary.StateTypeValue; dictionary.PowerOfAttorney = newDictionary.PowerOfAttorney; dictionary.IsFullDeliveryValue = newDictionary.IsFullDeliveryValue; dictionary.ExecutorEmployeeValue = newDictionary.ExecutorEmployeeValue; dictionary.AgreementEmployeeValue = newDictionary.AgreementEmployeeValue; dictionary.AccountantEmployeeValue = newDictionary.AccountantEmployeeValue; dictionary.Id = newDictionary.Id; TmcRepository tmcRepo = new TmcRepository(); var dicRepo = new DictionaryRepository(false); var contractProducts = tmcRepo.GetI1cLimsContractProducts(lc => lc.ContractNumber == tmc.ContractNumber); foreach (var prod in contractProducts.ToList()) { var measureId = dicRepo.GetDictionaryIdByTypeAndDisplayName(Dictionary.MeasureType.DicCode, prod.Unit); var t = new Tmc() { Id = Guid.NewGuid(), CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, TmcInId = tmc.Id, StateType = 0, Number = prod.ProductId, Code = prod.ProductId, Name = prod.Name, Count = prod.QuantityVolume.Value, CountActual = prod.QuantityVolume.Value, CountFact = prod.QuantityVolume.Value, CountConvert = prod.QuantityVolume.Value, MeasureTypeDicId = measureId, MeasureTypeConvertDicId = measureId }; tmcRepo.Insert(t); } tmcRepo.Save(); } return(Json(new[] { dictionary }.ToDataSourceResult(request, ModelState))); }
public ActionResult UpdateApplication([DataSourceRequest] DataSourceRequest request, TmcInView model) { if (model.Id == Guid.Empty) { model.Id = model.TmcInId; } ApplicationPoaRepository repo = new ApplicationPoaRepository(false); TmcIn d = repo.GetAsQuarable(o => o.Id == model.Id).FirstOrDefault(); bool isContractChange = d.ContractNumber != model.ContractNumber; d.StateType = model.StateType; d.ContractDate = model.ContractDate; d.ContractNumber = model.ContractNumber; d.IsFullDelivery = model.IsFullDelivery; d.LastDeliveryDate = model.LastDeliveryDate; d.OwnerEmployeeId = model.OwnerEmployeeId; d.Provider = model.Provider; d.ProviderBin = model.ProviderBin; d.ExecutorEmployeeId = model.ExecutorEmployeeId; d.AgreementEmployeeId = model.AgreementEmployeeId; d.AccountantEmployeeId = model.AccountantEmployeeId; repo.Save(); model = repo.GetTmcInViews(o => o.Id == d.Id).FirstOrDefault(); if (isContractChange) { TmcRepository tmcRepo = new TmcRepository(); tmcRepo.RemoveTmcByPoaId(model.Id); var dicRepo = new DictionaryRepository(false); var contractProducts = tmcRepo.GetI1cLimsContractProducts(lc => lc.ContractNumber == d.ContractNumber); foreach (var prod in contractProducts.ToList()) { var measureId = dicRepo.GetDictionaryIdByTypeAndDisplayName(Dictionary.MeasureType.DicCode, prod.Unit); var tmc = new Tmc() { Id = Guid.NewGuid(), CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, TmcInId = d.Id, StateType = 0, Number = prod.ProductId, Code = prod.ProductId, Name = prod.Name, Count = prod.QuantityVolume.Value, CountActual = prod.QuantityVolume.Value, CountFact = prod.QuantityVolume.Value, CountConvert = prod.QuantityVolume.Value, MeasureTypeDicId = measureId, MeasureTypeConvertDicId = measureId }; var tmcExist = tmcRepo.GetAsQuarable(t => t.Number == tmc.Number && t.CountFact < t.Count).FirstOrDefault(); if (tmcExist == null) { tmcRepo.Insert(tmc); var limsTmc = new LimsTmcTemp() { TmcId = tmc.Id, TmcInId = tmc.TmcInId, CreatedDate = DateTime.Now, CountRequest = tmc.Count, IsSelected = false }; repo.AddLimsTmcTemp(limsTmc); } else { var limsTmc = new LimsTmcTemp() { TmcId = tmc.Id, TmcInId = tmc.TmcInId, CreatedDate = DateTime.Now, CountRequest = prod.QuantityVolume.Value - tmcExist.CountFact, IsSelected = false }; if (prod.QuantityVolume.Value - tmcExist.CountFact > 0) { repo.AddLimsTmcTemp(limsTmc); } } } tmcRepo.Save(); repo.Save(); } return(Json(new[] { model }.ToDataSourceResult(request, ModelState))); }
public ActionResult CreateApplication([DataSourceRequest] DataSourceRequest request, TmcInViewModel model) { if (ModelState.IsValid) { ApplicationPoaRepository repo = new ApplicationPoaRepository(false); TmcIn tmcIn = new TmcIn() { Id = Guid.NewGuid(), StateType = model.StateType, ContractDate = model.ContractDate, ContractNumber = model.ContractNumber, CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, IsFullDelivery = model.IsFullDelivery, LastDeliveryDate = model.LastDeliveryDate, OwnerEmployeeId = model.OwnerEmployeeId, Provider = model.Provider, ProviderBin = model.ProviderBin, ExecutorEmployeeId = model.ExecutorEmployeeId, AgreementEmployeeId = model.AgreementEmployeeId, AccountantEmployeeId = model.AccountantEmployeeId }; repo.Insert(tmcIn); repo.Save(); var newDictionary = repo.GetTmcInViews(o => o.Id == tmcIn.Id).First(); model.TmcInId = tmcIn.Id; model.OwnerEmployeeValue = newDictionary.OwnerEmployeeValue; model.StateTypeValue = newDictionary.StateTypeValue; model.PowerOfAttorney = newDictionary.PowerOfAttorney; model.IsFullDeliveryValue = newDictionary.IsFullDeliveryValue; model.ExecutorEmployeeValue = newDictionary.ExecutorEmployeeValue; model.AgreementEmployeeValue = newDictionary.AgreementEmployeeValue; model.AccountantEmployeeValue = newDictionary.AccountantEmployeeValue; model.Id = newDictionary.Id; TmcRepository tmcRepo = new TmcRepository(); var dicRepo = new DictionaryRepository(false); var contractProducts = tmcRepo.GetI1cLimsContractProducts(lc => lc.ContractNumber == tmcIn.ContractNumber); foreach (var prod in contractProducts.ToList()) { var measureId = dicRepo.GetDictionaryIdByTypeAndDisplayName(Dictionary.MeasureType.DicCode, prod.Unit); if (measureId == null || measureId == Guid.Empty) { measureId = dicRepo.GetDictionaryIdByTypeAndName(Dictionary.MeasureType.DicCode, prod.Unit); } var tmc = new Tmc() { Id = Guid.NewGuid(), CreatedDate = DateTime.Now, CreatedEmployeeId = UserHelper.GetCurrentEmployee().Id, TmcInId = tmcIn.Id, StateType = 0, Number = prod.ProductId, Code = prod.ProductId, Name = prod.Name, Count = prod.QuantityVolume.Value, CountActual = 0, //prod.QuantityVolume.Value, CountFact = 0, //prod.QuantityVolume.Value, CountConvert = 0, // prod.QuantityVolume.Value, MeasureTypeDicId = measureId, MeasureTypeConvertDicId = measureId }; var tmcExist = tmcRepo.GetAsQuarable(t => t.Number == tmc.Number && t.StateType != Tmc.TmcStatuses.Writeoff).FirstOrDefault(); if (tmcExist == null) { tmcRepo.Insert(tmc); var limsTmc = new LimsTmcTemp() { TmcId = tmc.Id, TmcInId = tmc.TmcInId, CreatedDate = DateTime.Now, CountRequest = tmc.Count, IsSelected = false }; repo.AddLimsTmcTemp(limsTmc); } else if (tmcExist.CountFact < tmcExist.Count) { var limsTmc = new LimsTmcTemp() { TmcId = tmcExist.Id, TmcInId = tmcIn.Id, CreatedDate = DateTime.Now, CountRequest = prod.QuantityVolume.Value - tmcExist.CountFact, IsSelected = false }; if (prod.QuantityVolume.Value - tmcExist.CountFact > 0) { repo.AddLimsTmcTemp(limsTmc); } } } tmcRepo.Save(); repo.Save(); } return(Json(new[] { model }.ToDataSourceResult(request, ModelState))); }