private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } var c = BList[e.RowIndex]; currentRecord = BList[e.RowIndex]; t1.Text = c.DrugInfo.ProductGeneralName; t2.Text = c.BatchNumber; t3.Text = c.DrugInfo.FactoryName; t4.Text = c.produceDate.ToLongDateString(); t5.Text = c.ExpireDate.ToLongDateString(); t6.Text = c.supplyer; t7.Text = c.PurchasePrice.ToString(); richTextBox1.Text = c.rsn; c1.Text = c.creater; c2.Text = c.createTime.ToLongDateString(); richTextBox2.Text = c.sta; c3.Text = c.staSigner; c4.Text = c.staSignDate == c.createTime ? "" : c.staSignDate.ToLongDateString(); richTextBox3.Text = c.conclusion; c5.Text = c.conclusionSigner; c6.Text = c.conclusionDate == c.createTime ? "" : c.conclusionDate.ToLongDateString(); textBox1.Text = 0.ToString(); textBox2.Text = c.UnqualificationQuantity.ToString(); }
public bool SaveDrugMaintainDetailAndUndeterminate(Models.DrugMaintainRecordDetail[] dmrds) { lock (locker) { string outDetail = string.Empty; try { foreach (DrugMaintainRecordDetail dmrd in dmrds) { dmrd.CheckDate = DateTime.Now; this.Save(dmrd); decimal UndeNum = dmrd.MaintainCount - Convert.ToDecimal(dmrd.CheckqualifiedNumber); if (UndeNum > 0) { DrugsUndeterminate du = RepositoryProvider.Db.DrugsUndeterminates.Where(r => r.UnqualificationApprovalID == dmrd.Id).ToList().FirstOrDefault(); if (du == null) { du = new DrugsUndeterminate(); du.BatchNumber = dmrd.BatchNumber; du.conclusionDate = DateTime.Now; Guid emId = RepositoryProvider.Db.Users.Where(r => r.Id == dmrd.UserId).ToList().FirstOrDefault().EmployeeId; du.creater = RepositoryProvider.Db.Employees.Where(r => r.Id == emId).FirstOrDefault().Name; du.createTime = DateTime.Now; du.DosageType = dmrd.DictionaryDosageCode; DrugInventoryRecord dir = RepositoryProvider.Db.DrugInventoryRecords.Where(r => r.Id == dmrd.DrugInventoryRecordId).ToList().First(); du.DrugInfoID = dir.DrugInfoId; du.drugName = dmrd.ProductName; du.ExpireDate = dmrd.OutValidDate; du.Id = Guid.NewGuid(); du.InventoryID = dmrd.DrugInventoryRecordId; if (!dir.PurchaseInInventeryOrderDetailId.Equals(Guid.Empty)) { PurchaseInInventeryOrderDetail piio = RepositoryProvider.Db.PurchaseInInventeryOrderDetails.Where(r => r.Id == dir.PurchaseInInventeryOrderDetailId).FirstOrDefault(); PurchaseInInventeryOrder pi = RepositoryProvider.Db.PurchaseInInventeryOrders.Where(r => r.Id == piio.PurchaseInInventeryOrderId).FirstOrDefault(); Guid orderId = pi.PurchaseOrderId; PurchaseOrder po = RepositoryProvider.Db.PurchaseOrders.Where(r => r.Id == orderId).ToList().First(); du.OrderDocumentID = po.DocumentNumber; du.PurchaseOrderID = pi.Id; du.supplyer = RepositoryProvider.Db.SupplyUnits.Where(r => r.Id == po.SupplyUnitId).ToList().First().Name; } else { du.OrderDocumentID = "前期库存,无入库单号"; du.PurchaseOrderID = Guid.Empty; du.supplyer = "无"; } du.proc = 0; du.produceDate = dmrd.PruductDate; du.DocumentNumber = new BillDocumentCodeBusinessHandler(BusinessHandlerFactory.RepositoryProvider, null).GenerateBillDocumentCodeByTypeValue((int)BillDocumentType.DrugUndeterminate).Code; du.PurchasePrice = dir.PurchasePricce; du.QualificationQuantity = Convert.ToDecimal(dmrd.CheckqualifiedNumber); du.quantity = UndeNum; du.rsn = "养护疑问药品复查"; du.Source = "养护"; du.Specific = dmrd.DictionarySpecificationCode; du.sta = string.Empty; du.staSignDate = DateTime.Now; du.staSigner = string.Empty; du.storeID = dir.StoreId; du.UnqualificationApprovalID = dmrd.Id; //该字段临时作为质量复查单的id。 du.UnqualificationQuantity = 0; du.updateTime = DateTime.Now; du.wareHouse = RepositoryProvider.Db.WarehouseZones.Where(r => r.Id == dir.WarehouseZoneId).First().Name; du.Origin = dir.Decription; BusinessHandlerFactory.DrugsUndeterminateBusinessHandler.Add(du); decimal cansaleNum = dir.CanSaleNum; dir.drugsUnqualicationNum += UndeNum;//库存记录中加上质量复查数量,然后保存。 if (dir.CanSaleNum < 0) { outDetail = "养护品种细节数据在当月1日自动完成,库存数量发生变化," + du.drugName + "当前库存数量为:" + cansaleNum + ",提交养护疑问药品数量不正确。"; throw new Exception("养护品种细节数据在当月1日自动完成,库存数量发生变化," + du.drugName + "当前库存数量为:" + cansaleNum + ",提交养护疑问药品数量不正确。"); } dir.Valid = dir.CanSaleNum > 0 ? true : false; BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Save(dir); } } } this.Save(); string documentNumber = dmrds.FirstOrDefault().BillDocumentNo; var re = RepositoryProvider.Db.DrugMaintainRecordDetails.Where(r => r.CheckDate == null && r.BillDocumentNo == documentNumber && r.Deleted == false).FirstOrDefault(); if (re == null) { var c = RepositoryProvider.Db.DrugMaintainRecords.Where(r => r.BillDocumentNo == documentNumber).FirstOrDefault(); if (c == null) { return(false); } c.CompleteState = 1; this.Save(); } return(true); } catch (Exception e) { this.HandleException("养护细节提交失败!" + outDetail, e); return(false); } } }
private void toolStripButton11_Click(object sender, EventArgs e) { if (this.currentDU == null) { MessageBox.Show("请点击‘注记码’文本框,回车,并且选择药品,填写数量后执行提交操作!"); return; } if (MessageBox.Show("确定要提交至质量复查吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } decimal quantity = 0m; if (!decimal.TryParse(this.textBox2.Text, out quantity)) { MessageBox.Show("请填写数字信息!"); this.textBox2.Text = "0"; this.textBox2.Focus(); return; } var v = this.PharmacyDatabaseService.GetDrugInventoryRecord(out msg, this.CurrentIM.InventoryID); decimal currentCansaleNumber = v.CanSaleNum; if (quantity > currentCansaleNumber) { MessageBox.Show("数量超过当前库存量,请修改!"); this.textBox2.Text = "0"; this.textBox3.Text = currentCansaleNumber.ToString(); CurrentIM.CanSaleNum = currentCansaleNumber; this.textBox2.Focus(); return; } DrugsUndeterminate du = new DrugsUndeterminate(); du.supplyer = currentDU.Supplyer; du.BatchNumber = currentDU.batchNo; du.creater = BugsBox.Pharmacy.AppClient.Common.AppClientContext.currentUser.Employee.Name; du.Deleted = false; var d = PharmacyDatabaseService.GenerateBillDocumentCodeByTypeValue(out msg, (int)BillDocumentType.DrugUndeterminate); du.DocumentNumber = d.Code; du.DosageType = currentDU.DosageType; du.DrugInfoID = currentDU.DrugInfo; du.drugName = currentDU.drugName; du.ExpireDate = currentDU.ExpireDate; du.Id = Guid.NewGuid(); du.InventoryID = currentDU.DrugInventoryRecordID; du.OrderDocumentID = CurrentIM.PurchaseOrderDocumentNumber; du.Origin = currentDU.Origin; du.proc = 0; du.produceDate = currentDU.produceDate; du.PurchaseOrderID = CurrentIM.PurchaseOrderId; du.PurchasePrice = currentDU.PurchasePrice; du.QualificationQuantity = 0; du.quantity = Decimal.Parse(this.textBox2.Text); du.rsn = this.txtRemark.Text.Trim(); du.Source = "其他"; du.Specific = currentDU.Specific; du.storeID = BugsBox.Pharmacy.AppClient.Common.AppClientContext.Config.Store.Id; du.supplyer = currentDU.Supplyer; du.UnqualificationApprovalID = Guid.Empty; du.UnqualificationQuantity = 0; du.wareHouse = "待处理药品库"; if (this.PharmacyDatabaseService.AddDrugsUndeterminate(du, out msg)) { v.drugsUnqualicationNum += du.quantity; this.PharmacyDatabaseService.SaveDrugInventoryRecord(out msg, v); this.PharmacyDatabaseService.AddBillDocumentCode(out msg, d); MessageBox.Show("提交成功!单号:" + du.DocumentNumber); this.PharmacyDatabaseService.WriteLog(BugsBox.Pharmacy.AppClient.Common.AppClientContext.currentUser.Id, "提交质量复查成功!"); this.ClearCurrent(); } else { MessageBox.Show("提交失败,请联系管理员!"); } }
public bool SaveToNextProc(DrugsUndeterminate value, Guid userID) { string msg = string.Empty; try { if (value.proc == 1) { this.Save(value, out msg); return(true); } if (value.QualificationQuantity > 0) { if (value.Source.Contains("其他") || value.Source.Contains("养护")) { var V = BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Get(value.InventoryID); V.drugsUnqualicationNum -= value.QualificationQuantity; BusinessHandlerFactory.DrugInventoryRecordBusinessHandler.Save(V); } else { var purchaseOrder = BusinessHandlerFactory.RepositoryProvider.Db.PurchaseOrders.Where(r => r.DocumentNumber == value.OrderDocumentID).FirstOrDefault(); PurchaseCheckingOrder pco = new PurchaseCheckingOrder(); pco.Id = Guid.NewGuid(); pco.DocumentNumber = new BillDocumentCodeBusinessHandler(BusinessHandlerFactory.RepositoryProvider, null).GenerateBillDocumentCodeByTypeValue((int)BillDocumentType.PurchaseCheckingOrder).Code; pco.OperateTime = DateTime.Now; pco.StoreId = BugsBox.Pharmacy.Config.PharmacyServiceConfig.Config.CurrentStore.Id; pco.OperateUserId = userID; pco.OrderStatusValue = 13; pco.PurchaseOrderId = purchaseOrder.Id; pco.Decription = "待处理药品复核验收正常,可入库!"; pco.RelatedOrderDocumentNumber = value.DocumentNumber; pco.RelatedOrderId = value.Id; pco.RelatedOrderType = OrderType.Undeterminate; //采购验收单更新 purchaseOrder.UpdateTime = DateTime.Now; purchaseOrder.UpdateUserId = userID; purchaseOrder.OrderStatusValue = 13; BusinessHandlerFactory.PurchaseCheckingOrderBusinessHandler.Add(pco); BusinessHandlerFactory.PurchaseOrderBusinessHandler.Save(purchaseOrder); PurchaseCheckingOrderDetail purchaseOrderDetail = new PurchaseCheckingOrderDetail(); purchaseOrderDetail.ArrivalAmount = value.QualificationQuantity; purchaseOrderDetail.ArrivalDateTime = pco.OperateTime; purchaseOrderDetail.BatchNumber = value.BatchNumber; purchaseOrderDetail.CheckResult = 0; purchaseOrderDetail.Decription = value.Origin; purchaseOrderDetail.DrugInfoId = value.DrugInfoID; purchaseOrderDetail.OutValidDate = value.ExpireDate; purchaseOrderDetail.PruductDate = value.produceDate; purchaseOrderDetail.QualifiedAmount = value.QualificationQuantity; purchaseOrderDetail.PurchasePrice = value.PurchasePrice; purchaseOrderDetail.PurchaseCheckingOrderId = pco.Id; purchaseOrderDetail.StoreId = pco.StoreId; purchaseOrderDetail.Id = Guid.NewGuid(); BusinessHandlerFactory.PurchaseCheckingOrderDetailBusinessHandler.Add(purchaseOrderDetail); } } //如果不合格药品填写数量不为0,则将其写入不合格药品审批流程 if (value.UnqualificationQuantity > 0) { drugsUnqualication du = new drugsUnqualication(); du.Id = Guid.NewGuid(); du.createTime = DateTime.Now; du.createUID = userID; du.ApprovalStatusValue = -1; du.flowID = Guid.NewGuid(); du.Description = "质量部结论:" + value.conclusion; du.quantity = value.UnqualificationQuantity; du.drugName = value.drugName; du.batchNo = value.BatchNumber; du.DrugInventoryRecordID = value.InventoryID; du.DocumentNumber = new BillDocumentCodeBusinessHandler(BusinessHandlerFactory.RepositoryProvider, null).GenerateBillDocumentCodeByTypeValue((int)BillDocumentType.DrugUnqualification).Code; du.CheckDocumentNumber = value.DocumentNumber; du.source = "质量复核"; du.DosageType = value.DosageType; du.Specific = value.Specific; du.produceDate = value.produceDate; du.ExpireDate = value.ExpireDate; du.factoryName = value.DrugInfo.FactoryName; du.PurchasePrice = value.PurchasePrice; du.unqualificationType = -1; //养护流程不合格 du.updateTime = DateTime.Now; du.Deleted = false; du.DrugInfo = value.DrugInfoID; du.Origin = value.Origin; du.Supplyer = value.supplyer; du.PurchaseOrderId = value.PurchaseOrderID == null?Guid.Empty:(Guid)value.PurchaseOrderID; du.PurchaseOrderDocumentNumber = value.OrderDocumentID; BusinessHandlerFactory.DrugsUnqualificationHandler.EditDrugUnqualification(du, 0); } this.Save(value); } catch (Exception ex) { msg = "保存出错!"; return(false); } this.Save(); return(true); }
private void toolStripButton2_Click(object sender, EventArgs e) { if (this.cmbApprovalSelector.Items.Count <= 0) { MessageBox.Show("不合格药品审批流程没有设定。\n请通知系统管理员设置不合格药品审核流程!"); return; } Guid userId = AppClientContext.CurrentUser.Id; if (currentRecord == null) { MessageBox.Show("请先双击列表中的记录,填写意见后再提交!"); return; } if (currentRecord.proc == 0) { currentRecord.sta = richTextBox2.Text.Trim(); currentRecord.staSignDate = DateTime.Now; currentRecord.staSigner = PharmacyDatabaseService.GetEmployeeByUserId(out msg, userId).Name; currentRecord.proc = 1; } else { try { decimal q = Convert.ToDecimal(textBox1.Text); decimal un = Convert.ToDecimal(textBox2.Text); if (un + q != currentRecord.quantity) { MessageBox.Show("合格数量与不合格数量之和应与质量复核申请数量一致,请检查!"); textBox1.Focus(); return; } currentRecord.QualificationQuantity = q; currentRecord.UnqualificationQuantity = un; currentRecord.UnqualificationApprovalID = (Guid)cmbApprovalSelector.SelectedValue; } catch (Exception ex) { MessageBox.Show("合格数量与不合格数量应填写为数字!"); textBox1.Focus(); return; } currentRecord.conclusion = richTextBox3.Text.Trim(); currentRecord.conclusionDate = DateTime.Now; currentRecord.conclusionSigner = PharmacyDatabaseService.GetEmployeeByUserId(out msg, userId).Name; currentRecord.proc = 2; } if (PharmacyDatabaseService.SaveToNextProc(currentRecord, userId, out msg)) { MessageBox.Show("提交成功!"); this.PharmacyDatabaseService.WriteLog(AppClientContext.CurrentUser.Id, "提交质量复查报告成功!"); currentRecord = null; this.getData(pro); this.textBox1.Text = "0"; this.textBox2.Text = "0"; this.richTextBox1.Text = string.Empty; this.richTextBox2.Text = string.Empty; this.richTextBox3.Text = string.Empty; clearLabels(); } }