public void DeleteForeverDrugs(string drugStoreID, params int[] drugIds) { if (drugIds == null || !drugIds.Any()) { return; } var rNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuNhapChiTiet> >(); var dNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuXuatChiTiet> >(); var invNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuKiemKeChiTiet> >(); var sumPeriodNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, TongKetKyChiTiet> >(); var sumPeriodNoteRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, TongKetKy> >(); var invRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, Inventory> >(); var drugMappingRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, DrugMapping> >(); var drugRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, Thuoc> >(); var priceRefRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedReportContext, ReceiptDrugPriceRef> >(); var reduceRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedReportContext, ReduceNoteItem> >(); var snapshotRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedReportContext, DeliveryNoteItemSnapshotInfo> >(); using (var trans = TransactionScopeHelper.CreateReadCommittedForWrite()) { priceRefRepo.Delete(i => i.DrugStoreCode == drugStoreID && drugIds.Contains(i.DrugId)); reduceRepo.Delete(i => i.DrugStoreCode == drugStoreID && drugIds.Contains(i.DrugID)); snapshotRepo.Delete(i => i.DrugStoreCode == drugStoreID && drugIds.Contains(i.DrugId)); rNoteItemRepo.Delete(i => i.NhaThuoc_MaNhaThuoc == drugStoreID && drugIds.Contains(i.Thuoc_ThuocId.Value)); dNoteItemRepo.Delete(i => i.NhaThuoc_MaNhaThuoc == drugStoreID && drugIds.Contains(i.Thuoc_ThuocId.Value)); invNoteItemRepo.Delete(i => drugIds.Contains(i.Thuoc_ThuocId.Value)); sumPeriodNoteItemRepo.Delete(i => i.NhaThuoc_MaNhaThuoc == drugStoreID && drugIds.Contains(i.Thuoc_ThuocId.Value)); sumPeriodNoteRepo.Delete(i => i.NhaThuoc_MaNhaThuoc == drugStoreID && drugIds.Contains(i.Thuoc_ThuocId.Value)); invRepo.Delete(i => i.DrugStoreID == drugStoreID && drugIds.Contains(i.DrugID)); drugMappingRepo.Delete(i => i.DrugStoreID == drugStoreID && drugIds.Contains(i.SlaveDrugID)); drugRepo.Delete(i => i.NhaThuoc_MaNhaThuoc == drugStoreID && drugIds.Contains(i.ThuocId)); trans.Complete(); } }
private void UpdateChangesByDrugs(string drugStoreID, params int[] drugIds) { if (drugIds == null || !drugIds.Any()) { return; } var dNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuXuatChiTiet> >(); var rNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuNhapChiTiet> >(); var refPriceRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedReportContext, ReceiptDrugPriceRef> >(); using (var trans = TransactionScopeHelper.CreateReadCommittedForWrite()) { dNoteItemRepo.UpdateMany(i => i.NhaThuoc_MaNhaThuoc == drugStoreID && drugIds.Contains(i.Thuoc_ThuocId.Value), i => new PhieuXuatChiTiet() { IsModified = true }); } }
private void UpdateAffectedItems(string drugStoreID, List <int> deliveryItemIds, List <int> receiptItemIds, List <int> drugIds) { deliveryItemIds = deliveryItemIds.Distinct().ToList(); receiptItemIds = receiptItemIds.Distinct().ToList(); drugIds = drugIds.Distinct().ToList(); var dNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuXuatChiTiet> >(); var rNoteItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuNhapChiTiet> >(); var refPriceRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedReportContext, ReceiptDrugPriceRef> >(); using (var trans = TransactionScopeHelper.CreateReadCommittedForWrite()) { if (deliveryItemIds.Any()) { dNoteItemRepo.UpdateMany(i => deliveryItemIds.Contains(i.MaPhieuXuatCt), i => new PhieuXuatChiTiet() { IsModified = true }); } if (receiptItemIds.Any()) { rNoteItemRepo.UpdateMany(i => receiptItemIds.Contains(i.MaPhieuNhapCt), i => new PhieuNhapChiTiet() { IsModified = true }); } if ((deliveryItemIds.Any() || receiptItemIds.Any()) && drugIds.Any()) { refPriceRepo.UpdateMany(i => (receiptItemIds.Contains(i.ReceiptNoteItemId) || deliveryItemIds.Contains(i.DeliveryNoteItemId)) && i.DrugStoreCode == drugStoreID && drugIds.Contains(i.DrugId) && !i.IsDeleted, i => new ReceiptDrugPriceRef() { IsDeleted = true }); } trans.Complete(); } }
public bool MarkAsDeleteForeverDrugs(string drugStoreCode, params int[] drugIds) { if (drugIds == null || !drugIds.Any()) { return(false); } var retVal = true; try { using (var tran = TransactionScopeHelper.CreateReadCommittedForWrite()) { //if (CheckDrugsHasDeals(drugStoreCode, drugIds)) //{ // tran.Complete(); // return false; //} var drugRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, Thuoc> >(); drugRepo.UpdateMany(i => i.NhaThuoc_MaNhaThuoc == drugStoreCode && drugIds.Contains(i.ThuocId), i => new Thuoc() { RecordStatusID = (byte)RecordStatus.DeletedForever }); //var sqlCommands = GetDeleteDrugsCommands(drugStoreCode, drugIds); //drugRepo.ExecuteSqlCommand(sqlCommands); tran.Complete(); } } catch (Exception ex) { retVal = false; FaultHandler.Instance.Handle(ex, this); } return(retVal); }
public int DeleteReceiptNote(string drugStoreCode, int noteId) { var noteTypeId = 0; if (noteId <= 0) { return(noteTypeId); } try { var validItems = _dataFilterService.GetValidReceiptNotes(drugStoreCode); var currNote = validItems.Where(i => i.MaPhieuNhap == noteId).Select(i => new { NoteDate = i.NgayNhap, NoteType = i.LoaiXuatNhap_MaLoaiXuatNhap }).FirstOrDefault(); if (currNote == null) { return(noteTypeId); } noteTypeId = currNote.NoteType.Value; var currNoteDate = (DateTime?)currNote.NoteDate.Value.AbsoluteStart(); var effectedNoteIds = validItems.Where(i => i.NgayNhap >= currNoteDate && i.LoaiXuatNhap_MaLoaiXuatNhap == currNote.NoteType) .Select(i => i.MaPhieuNhap).ToList(); effectedNoteIds.Add(noteId); var receiptItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuNhapChiTiet> >(); var drugIds = receiptItemRepo.GetAll().Where(i => i.PhieuNhap_MaPhieuNhap == noteId) .Select(i => i.Thuoc_ThuocId.Value).Distinct().ToArray(); using (var tran = TransactionScopeHelper.CreateReadCommittedForWrite()) { receiptItemRepo.UpdateMany(i => effectedNoteIds.Contains(i.PhieuNhap_MaPhieuNhap), i => new PhieuNhapChiTiet() { IsModified = true }); var receiptRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuNhap> >(); receiptRepo.UpdateMany(i => i.MaPhieuNhap == noteId, i => new PhieuNhap() { Xoa = true }); var whTransitRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, WarehouseTransition> >(); whTransitRepo.UpdateMany(i => i.ReceiptNoteId == noteId, i => new WarehouseTransition() { RecordStatusId = (int)RecordStatus.Deleted }); tran.Complete(); } BackgroundServiceJobHelper.EnqueueUpdateLastInventoryQuantity4CacheDrugs(drugStoreCode, drugIds); } catch (Exception ex) { noteTypeId = 0; FaultHandler.Instance.Handle(ex, this); } return(noteTypeId); }
public int DeleteDeliveryNote(string drugStoreCode, int noteId, int?actorId) { var noteTypeId = 0; if (noteId <= 0) { return(noteTypeId); } try { var validItems = _dataFilterService.GetValidDeliveryNotes(drugStoreCode); var currNote = validItems.Where(i => i.MaPhieuXuat == noteId).Select(i => new { NoteDate = i.NgayXuat, NoteType = i.MaLoaiXuatNhap }).FirstOrDefault(); if (currNote == null) { return(noteTypeId); } noteTypeId = currNote.NoteType; var currNoteDate = currNote.NoteDate.Value.AbsoluteStart(); var effectedNoteIds = validItems.Where(i => i.NgayXuat >= currNoteDate && i.MaLoaiXuatNhap == currNote.NoteType) .Select(i => i.MaPhieuXuat).ToList(); effectedNoteIds.Add(noteId); var deliveryItemRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuXuatChiTiet> >(); var drugIds = deliveryItemRepo.GetAll().Where(i => i.PhieuXuat_MaPhieuXuat == noteId) .Select(i => i.Thuoc_ThuocId.Value).Distinct().ToArray(); using (var tran = TransactionScopeHelper.CreateReadCommittedForWrite()) { if (effectedNoteIds.Any()) { deliveryItemRepo.UpdateMany(i => effectedNoteIds.Contains(i.PhieuXuat_MaPhieuXuat.Value), i => new PhieuXuatChiTiet() { IsModified = true, }); } deliveryItemRepo.UpdateMany(i => i.PhieuXuat_MaPhieuXuat == noteId && i.NhaThuoc_MaNhaThuoc == drugStoreCode, i => new PhieuXuatChiTiet() { IsModified = true, RecordStatusID = (byte)RecordStatus.Deleted }); var deliveryRepo = IoC.Container.Resolve <BaseRepositoryV2 <MedDbContext, PhieuXuat> >(); deliveryRepo.UpdateMany(i => i.MaPhieuXuat == noteId, i => new PhieuXuat() { RecordStatusID = (byte)RecordStatus.Deleted }); tran.Complete(); } BackgroundServiceJobHelper.EnqueueMakeAffectedChangesRelatedDeliveryNotes(drugStoreCode, actorId, effectedNoteIds.ToArray()); } catch (Exception ex) { noteTypeId = 0; FaultHandler.Instance.Handle(ex, this); } return(noteTypeId); }