/// <summary> /// Initializes this instance. /// </summary> private void Initialize() { this._vWareHouseDetailList = new List<VWareHouseDetail>(); this.bdsMedicine.DataSource = _medicineRepo.GetAll(); this._medDeliveryAllocationList = new List<MedicineDeliveryAllocationEntity>(); this._prescription = _prescriptionRepo.Get(this._prescriptionId); this.bdsPrescription.DataSource = this._prescription; this._prescriptionDetailList = _prescriptionDetailRepo.GetByPrescription(this._prescriptionId); if (_prescription == null || this._prescriptionDetailList == null) throw new Exception("Data dosenot existed"); this._medicineDelivery = this._medicineDeliveryRepo.GetByPrescriptionId(this._prescriptionId); this._formMode = this._medicineDelivery == null ? ViewModes.Add : ViewModes.View; if (this._formMode == ViewModes.Add) { // Createe MachineDelivery // Create MachineDeliveryDetail // Craete MedicindeDeliveryDetailAllocate // Get WareHouseDetail // Get WareHouse; // this._warehouseDetailList = this._warehouseDetailRepo var medincineIdList = this._prescriptionDetailList.Select(item => item.MedicineId).ToList(); this._warehouseList = this._warehouseRepo.GetByMedicineId(medincineIdList, AppContext.CurrentClinic.Id); this._vWareHouseDetailList = this._vWareHouseDetailRepo.GetByMedicine(medincineIdList); this._medicineDelivery = CreatePrescription(this._prescription); this._medicineDeliveryDetailList = CreateMedicineDeliveryDetail(this._prescriptionDetailList); this.AutoAllocate(this._medicineDeliveryDetailList, this._vWareHouseDetailList); // this._warehouseDetailList = this._warehouseDetailRepo.GetByMedicine(medincineIdList, AppContext.CurrentClinic.Id);) // this._mdecidineDeliveryDetailAllocate = AutoAllocate(this._medicineDeliveryDetailList, this._warehouseDetailList); // var item = this._warehouseDetailList.Select(x => new { x.MedicineId, x.LotNo, x.ExpiredDate}).GroupBy(x => new { x.MedicineId, x.LotNo, x.ExpiredDate }).ToList(); var no = 1; foreach (var deliveryItem in this._medicineDeliveryDetailList) { // var allocatedList = this._mdecidineDeliveryDetailAllocate.Where(x => x.MedicineDeliveryDetailId == deliveryItem.Id).ToList(); var warehouse = this._warehouseList.FirstOrDefault(x => x.MedicineId == deliveryItem.MedicineId); var item = new MedicineDeliveryAllocationEntity(no++, deliveryItem, warehouse); this._medDeliveryAllocationList.Add(item); var subNo = 1; foreach (var itm in deliveryItem.AllocatedWareHouseDetail) { var subItem = new MedicineDeliveryAllocationEntity(subNo++, itm); _medDeliveryAllocationList.Add(subItem); } } this.bindingSource1.DataSource = this._medDeliveryAllocationList; } else { var medincineIdList = this._prescriptionDetailList.Select(item => item.MedicineId).ToList(); this._warehouseList = this._warehouseRepo.GetByMedicineId(medincineIdList, AppContext.CurrentClinic.Id); this._vWareHouseDetailList = this._vWareHouseDetailRepo.GetByMedicine(medincineIdList); this._medicineDelivery = this._medicineDeliveryRepo.GetByPrescriptionId(this._prescription.Id); this._medicineDeliveryDetailList = this._medicineDeliveryDetailRepo.GetByDelivery(this._medicineDelivery.Id); var deliveryDetailList = this._medicineDeliveryDetailList.Select(x => x.Id).ToList(); this._vMedicineDeliveryDetailAllocateds = this._medicineDeliveryDetailRepo.GetDeliveryDetailAllocateds(deliveryDetailList); // this._mdecidineDeliveryDetailAllocate = AutoAllocate(this._medicineDeliveryDetailList, this._warehouseDetailList); // var item = this._warehouseDetailList.Select(x => new { x.MedicineId, x.LotNo, x.ExpiredDate}).GroupBy(x => new { x.MedicineId, x.LotNo, x.ExpiredDate }).ToList(); // this._warehouseDetailList = this._warehouseDetailRepo.GetByMedicine(medincineIdList, AppContext.CurrentClinic.Id);) var no = 1; foreach (var deliveryItem in this._medicineDeliveryDetailList) { // var allocatedList = this._mdecidineDeliveryDetailAllocate.Where(x => x.MedicineDeliveryDetailId == deliveryItem.Id).ToList(); var warehouse = this._warehouseList.FirstOrDefault(x => x.MedicineId == deliveryItem.MedicineId); var item = new MedicineDeliveryAllocationEntity(no++, deliveryItem, warehouse); this._medDeliveryAllocationList.Add(item); List<VMedicineDeliveryDetailAllocated> allocatedWareHouseDetailList = this._vMedicineDeliveryDetailAllocateds.Where(x => x.MedicineDeliveryDetailId == deliveryItem.Id) .ToList(); var subNo = 1; foreach (var itm in allocatedWareHouseDetailList) { var subItem = new MedicineDeliveryAllocationEntity(subNo++, itm); _medDeliveryAllocationList.Add(subItem); } } this.dataGridViewX1.Columns[6].Visible = false; this.dataGridViewX1.Columns[8].Visible = false; this.bindingSource1.DataSource = this._medDeliveryAllocationList; } }
private void dataGridViewX1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { if (this._formMode != ViewModes.Add) return; MedicineDeliveryAllocationEntity ent = (MedicineDeliveryAllocationEntity) this.bindingSource1.Current; if (ent.SubNo != null) return; DeliveryAllocateDetail detailDialog = new DeliveryAllocateDetail(ent.MedicineDeliveryDetail); detailDialog.ShowDialog(this); if (detailDialog.DialogResult == DialogResult.Cancel) return; ent.MedicineDeliveryDetail.AllocatedWareHouseDetail = detailDialog.Result; var no = 1; this._medDeliveryAllocationList= new List<MedicineDeliveryAllocationEntity>(); foreach (var deliveryItem in this._medicineDeliveryDetailList) { // var allocatedList = this._mdecidineDeliveryDetailAllocate.Where(x => x.MedicineDeliveryDetailId == deliveryItem.Id).ToList(); var warehouse = this._warehouseList.FirstOrDefault(x => x.MedicineId == deliveryItem.MedicineId); var item = new MedicineDeliveryAllocationEntity(no++, deliveryItem, warehouse); this._medDeliveryAllocationList.Add(item); var subNo = 1; foreach (var itm in deliveryItem.AllocatedWareHouseDetail) { var subItem = new MedicineDeliveryAllocationEntity(subNo++, itm); _medDeliveryAllocationList.Add(subItem); } } this.bindingSource1.DataSource = this._medDeliveryAllocationList; this.bindingSource1.ResetBindings(true); this.dataGridViewX1.ResetBindings(); }