public static IList <DispatchFormItemEntity> GetItems(string dispatchId) { var sql = @" select id,dispatch_id,serial_id,count,batch_no,expired_date,logistics_code,logistics_content, is_confirmed,confirmed_id,confirmed_time,created_id,created_time from dispatch_form_items where dispatch_id=@p_dispatch_id order by created_time desc"; var db = DatabaseFactory.CreateDatabase(); var cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "p_dispatch_id", DbType.String, dispatchId); var list = new List <DispatchFormItemEntity>(); using (var reader = db.ExecuteReader(cmd)) { while (reader.Read()) { var entity = new DispatchFormItemEntity(); entity.Init(reader); list.Add(entity); } } return(list); }
public static void Pass(DispatchFormItemEntity formItem) { var form = Get(formItem.DispatchId); if (form == null) { throw new Exception("The dispatch form does not exist."); } var db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); using (var trans = conn.BeginTransaction()) { try { UpdateItem(formItem, db, trans); UpdateDispatchStatus(form.Id, db, trans); UpdateGoodsSerial(formItem, db, trans); CreateReceiveForm(form, formItem, db, trans); trans.Commit(); } catch { trans.Rollback(); throw; } } } }
public static DispatchFormItemEntity GetItemBySerialId(string serialId) { var sql = @" select id,dispatch_id,serial_id,count,batch_no,expired_date,logistics_code,logistics_content, is_confirmed,confirmed_id,confirmed_time,created_id,created_time from dispatch_form_items where serial_id=@p_serial_id"; var db = DatabaseFactory.CreateDatabase(); var cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "p_serial_id", DbType.String, serialId); using (var reader = db.ExecuteReader(cmd)) { if (reader.Read()) { var entity = new DispatchFormItemEntity(); entity.Init(reader); return(entity); } } return(null); }
public static IList <DispatchFormItemEntity> GetItems(int formNo, string hospitalID) { var sql = @" select a.* from dispatch_form_items a inner join dispatch_form b on a.dispatch_id = b.id where b.order_form_no =@p_form_no and b.hospital_id=@p_hospital_id order by a.created_time desc"; var db = DatabaseFactory.CreateDatabase(); var cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "p_form_no", DbType.Int32, formNo); db.AddInParameter(cmd, "p_hospital_id", DbType.String, hospitalID); var list = new List <DispatchFormItemEntity>(); using (var reader = db.ExecuteReader(cmd)) { while (reader.Read()) { var entity = new DispatchFormItemEntity(); entity.Init(reader); list.Add(entity); } } return(list); }
private static void UpdateGoodsSerial(DispatchFormItemEntity form, Database db, DbTransaction trans) { GoodsSerialRepository.UpdateSerialInfo(new GoodsSerialEntity { Id = form.SerialId, LogisticsCode = form.LogisticsCode, LogisticsContent = form.LogisticsContent, UpdatedId = form.ConfirmedId, UpdatedTime = form.ConfirmedTime }, db, trans); }
private static string DispatchGoods(DispatchFormEntity form, DispatchFormItemEntity formItem, Database db, DbTransaction trans) { var orderDetail = OrderFormRepository.GetItem(form.OrderDetailId); var goodsSerial = new GoodsSerialEntity { ProductId = form.ProductId, DispatchedCount = formItem.Count, HospitalId = form.HospitalId, VendorId = form.VendorId, NeedAudit = orderDetail.NeedAudit, NeedCheck = orderDetail.NeedCheck, NeedSplit = orderDetail.NeedSplit, SplitCopies = orderDetail.SplitCopies, SplitUnit = orderDetail.SplitUnit, SplitCapacity = orderDetail.SplitCapacity, SplitPackageCount = orderDetail.SplitPackageCount, ValidDays = orderDetail.ValidDays, BatchNo = formItem.BatchNo, ExpiredDate = formItem.ExpiredDate, IsClosed = false, CreatedId = form.CreatedId, CreatedTime = DateTime.Now, UpdatedId = form.CreatedId, UpdatedTime = DateTime.Now }; GoodsSerialRepository.Create(goodsSerial, db, trans); GoodsSerialFormRepository.Create(new GoodsSerialFormEntity { SerialId = goodsSerial.Id, FormId = form.Id, FormKind = FormKind.DispatchItem, CreatedId = form.CreatedId, CreatedTime = DateTime.Now, }, new GoodsSerialFormEntity { SerialId = goodsSerial.Id, FormId = form.OrderDetailId, FormKind = FormKind.OrderDetail, CreatedId = form.CreatedId, CreatedTime = DateTime.Now, }, db, trans); return(goodsSerial.Id); }
private static void UpdateItem(DispatchFormItemEntity form, Database db, DbTransaction trans) { var sql = @"update dispatch_form_items set logistics_code=@p_logistics_code,logistics_content=@p_logistics_content, is_confirmed=@p_is_confirmed,confirmed_id=@p_confirmed_id,confirmed_time=@p_confirmed_time where id=@p_id"; var dc = db.GetSqlStringCommand(sql); db.AddInParameter(dc, "p_id", DbType.String, form.Id); db.AddInParameter(dc, "p_logistics_code", DbType.String, form.LogisticsCode); db.AddInParameter(dc, "p_logistics_content", DbType.String, form.LogisticsContent); db.AddInParameter(dc, "p_is_confirmed", DbType.Boolean, form.IsConfirmed); db.AddInParameter(dc, "p_confirmed_id", DbType.String, form.ConfirmedId); db.AddInParameter(dc, "p_confirmed_time", DbType.DateTime, form.ConfirmedTime); db.ExecuteNonQuery(dc, trans); }
private static void CreateReceiveForm(DispatchFormEntity form, DispatchFormItemEntity formItem, Database db, DbTransaction trans) { var receiveForm = new ReceiveFormEntity { OrderId = form.OrderId, OrderFormNo = form.OrderFormNo, OrderDetailId = form.OrderDetailId, ApplyUnitId = form.ApplyUnitId, SerialId = formItem.SerialId, ProductId = form.ProductId, ReceivedCount = formItem.Count, HospitalId = form.HospitalId, VendorId = form.VendorId, CreatedId = form.ChangedId, CreatedTime = form.ChangedTime }; ReceiveFormRepository.Create(receiveForm, db, trans); }
public static void CreateItem(DispatchFormEntity form, DispatchFormItemEntity formItem) { var db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); using (var trans = conn.BeginTransaction()) { try { var count = SumItems(form.Id); if (form.DispatchedCount == count + formItem.Count) { UpdateStatus(form.Id, DispatchFormStatus.Dispatching, formItem.CreatedId, formItem.CreatedTime, db, trans); } else if (count == 0) { UpdateStatus(form.Id, DispatchFormStatus.Dispatching, formItem.CreatedId, formItem.CreatedTime, db, trans); } else if (formItem.Count + count > form.DispatchedCount) { throw new Exception("The count of dispatch form is over."); } formItem.Id = Guid.NewGuid().ToString(); formItem.SerialId = DispatchGoods(form, formItem, db, trans); CreateItem(formItem, db, trans); trans.Commit(); } catch { trans.Rollback(); throw; } } } }
private static void CreateItem(DispatchFormItemEntity formItem, Database db, DbTransaction trans) { var sql = @"insert into dispatch_form_items( id,dispatch_id,serial_id,count,batch_no,expired_date,is_confirmed,created_id,created_time ) values( @p_id,@p_dispatch_id,@p_serial_id,@p_count,@p_batch_no,@p_expired_date,@p_is_confirmed,@p_created_id,@p_created_time )"; var cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "p_id", DbType.String, formItem.Id); db.AddInParameter(cmd, "p_dispatch_id", DbType.String, formItem.DispatchId); db.AddInParameter(cmd, "p_serial_id", DbType.String, formItem.SerialId); db.AddInParameter(cmd, "p_count", DbType.Int32, formItem.Count); db.AddInParameter(cmd, "p_batch_no", DbType.String, formItem.BatchNo); db.AddInParameter(cmd, "p_expired_date", DbType.DateTime, formItem.ExpiredDate); db.AddInParameter(cmd, "p_is_confirmed", DbType.Boolean, formItem.IsConfirmed); db.AddInParameter(cmd, "p_created_id", DbType.String, formItem.CreatedId); db.AddInParameter(cmd, "p_created_time", DbType.DateTime, formItem.CreatedTime); db.ExecuteNonQuery(cmd, trans); }