public static IList <ReceiveFormItemEntity> GetItems(int formNo, string hospitalID) { var sql = @" select a.* from receive_form_items a inner join receive_form b on a.receive_id = b.id where b.order_form_no =@p_form_no and b.hospital_id=@p_hospital_id"; 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 <ReceiveFormItemEntity>(); using (var reader = db.ExecuteReader(cmd)) { while (reader.Read()) { var entity = new ReceiveFormItemEntity(); entity.Init(reader); list.Add(entity); } } return(list); }
public static string PartPass(ReceiveFormEntity form, IList <string> barcodes, string userId) { var serialId = form.SerialId; var passedCount = SumPassed(form.Id); if (form.ReceivedCount == passedCount) { return(serialId); } if (form.ReceivedCount == passedCount + barcodes.Count) { Pass(form); return(serialId); } var goodsSerial = GoodsSerialRepository.Get(form.SerialId); var db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); using (var trans = conn.BeginTransaction()) { try { var formItem = new ReceiveFormItemEntity { Id = Guid.NewGuid().ToString(), ReceiveId = form.Id, ReceivedCount = barcodes.Count, ConfirmedId = userId, ConfirmedTime = DateTime.Now }; formItem.SerialId = CreateGoodsSerial(goodsSerial, formItem, barcodes, db, trans); CreateItem(formItem, db, trans); //TODO: need to add inspection form CreateIncomingForm(form, formItem, db, trans); trans.Commit(); serialId = formItem.SerialId; } catch { trans.Rollback(); throw; } } } return(serialId); }
private static string CreateGoodsSerial(GoodsSerialEntity parent, ReceiveFormItemEntity formItem, IList <string> barcodes, Database db, DbTransaction trans) { var goodsSerial = GoodsSerialRepository.CreateSub(parent, barcodes, formItem.ConfirmedId, db, trans); GoodsSerialFormRepository.Create(new GoodsSerialFormEntity { SerialId = goodsSerial.Id, FormId = formItem.Id, FormKind = FormKind.ReceiveItem, CreatedId = formItem.ConfirmedId, CreatedTime = formItem.ConfirmedTime, }, db, trans); return(goodsSerial.Id); }
private static void CreateItem(ReceiveFormItemEntity item, Database db, DbTransaction trans) { var sql = @"insert into receive_form_items( id,receive_id,serial_id,received_count,confirmed_id,confirmed_time ) values( @p_id,@p_receive_id,@p_serial_id,@p_received_count,@p_confirmed_id,@p_confirmed_time )"; var cmd = db.GetSqlStringCommand(sql); db.AddInParameter(cmd, "p_id", DbType.String, item.Id); db.AddInParameter(cmd, "p_receive_id", DbType.String, item.ReceiveId); db.AddInParameter(cmd, "p_serial_id", DbType.String, item.SerialId); db.AddInParameter(cmd, "p_received_count", DbType.Int32, item.ReceivedCount); db.AddInParameter(cmd, "p_confirmed_id", DbType.String, item.ConfirmedId); db.AddInParameter(cmd, "p_confirmed_time", DbType.DateTime, item.ConfirmedTime); db.ExecuteNonQuery(cmd, trans); }
private static string CreateIncomingForm(ReceiveFormEntity form, ReceiveFormItemEntity formItem, Database db, DbTransaction trans) { var incoming = new IncomingFormEntity { OrderId = form.OrderId, OrderFormNo = form.OrderFormNo, OrderDetailId = form.OrderDetailId, ApplyUnitId = form.ApplyUnitId, SerialId = formItem.SerialId, ProductId = form.ProductId, IncomingCount = formItem.ReceivedCount, HospitalId = form.HospitalId, VendorId = form.VendorId, IsConfirmed = false, CreatedId = formItem.ConfirmedId, CreatedTime = formItem.ConfirmedTime }; IncomingFormRepository.Create(incoming, db, trans); return(incoming.Id); }
public static string PartPass(ReceiveFormEntity form, IList <string> barcodes, string userId, Database db, DbTransaction trans) { var serialId = form.SerialId; var passedCount = SumPassed(form.Id); if (form.ReceivedCount == passedCount) { return(serialId); } if (form.ReceivedCount == passedCount + barcodes.Count) { Pass(form); return(serialId); } var goodsSerial = GoodsSerialRepository.Get(form.SerialId); var formItem = new ReceiveFormItemEntity { Id = Guid.NewGuid().ToString(), ReceiveId = form.Id, ReceivedCount = barcodes.Count, ConfirmedId = userId, ConfirmedTime = DateTime.Now }; formItem.SerialId = CreateGoodsSerial(goodsSerial, formItem, barcodes, db, trans); CreateItem(formItem, db, trans); //TODO: need to add inspection form CreateIncomingForm(form, formItem, db, trans); serialId = formItem.SerialId; return(serialId); }