public static void Pass(ReceiveFormEntity form)
        {
            var db = DatabaseFactory.CreateDatabase();

            using (var conn = db.CreateConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        Update(form, db, trans);

                        //TODO: need to add inspection form
                        CreateIncomingForm(form, db, trans);

                        trans.Commit();
                    }
                    catch
                    {
                        trans.Rollback();
                        throw;
                    }
                }
            }
        }
        public static string PartPass(ReceiveFormEntity form, IList <string> barcodes, string userId)
        {
            var newSerialId = form.SerialId;
            var db          = DatabaseFactory.CreateDatabase();

            using (var conn = db.CreateConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        newSerialId = ReceiveFormRepository.PartPass(form, barcodes, userId, db, trans);
                        var incomingService = new IncomingFormEntity
                                              IncomingFormEntity formIncoming = incomingService.GetBySerialId(newSerialId);
                        formIncoming.ConfirmedTime = DateTime.Now;
                        incomingService.Pass(formIncoming);

                        trans.Commit();
                    }
                    catch
                    {
                        trans.Rollback();
                        throw;
                    }
                }
            }
            return(serialId);
        }
        private static ReceiveFormEntity Get(string id, Database db, DbTransaction trans)
        {
            var sql = string.Format("select {0} from receive_form where id=@p_id", COLUMN_SQL);

            if (db == null)
            {
                db = DatabaseFactory.CreateDatabase();
            }

            var dc = db.GetSqlStringCommand(sql);

            db.AddInParameter(dc, "p_id", DbType.String, id);

            ReceiveFormEntity entity = null;

            using (var reader = (trans == null ? db.ExecuteReader(dc) : db.ExecuteReader(dc, trans)))
            {
                while (reader.Read())
                {
                    entity = new ReceiveFormEntity();
                    entity.Init(reader);

                    break;
                }
            }

            return(entity);
        }
        public static IList <ReceiveFormEntity> GetReceives(int formNo, string hospitalID)
        {
            var sql = string.Format("select {0} from receive_form where order_form_no=@p_form_no and hospital_id=@p_hospital_id", COLUMN_SQL);

            var db = DatabaseFactory.CreateDatabase();
            var dc = db.GetSqlStringCommand(sql);

            db.AddInParameter(dc, "p_form_no", DbType.Int32, formNo);
            db.AddInParameter(dc, "p_hospital_id", DbType.String, hospitalID);

            var list = new List <ReceiveFormEntity>();

            using (var reader = db.ExecuteReader(dc))
            {
                while (reader.Read())
                {
                    var entity = new ReceiveFormEntity();
                    entity.Init(reader);

                    list.Add(entity);
                }
            }

            return(list);
        }
        public static void Pass(ReceiveFormEntity form, Database db, DbTransaction trans)
        {
            Update(form, db, trans);

            //TODO: need to add inspection form
            CreateIncomingForm(form, db, trans);
        }
        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 void Update(ReceiveFormEntity form, Database db, DbTransaction trans)
        {
            var sql = @"update receive_form set 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_is_confirmed", DbType.String, form.IsConfirmed);
            db.AddInParameter(dc, "p_confirmed_id", DbType.String, form.ConfirmedId);
            db.AddInParameter(dc, "p_confirmed_time", DbType.DateTime, form.ConfirmedTime.Equals(DBNull.Value) ? DateTime.Now : 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 Pass(ReceiveFormEntity form)
        {
            var db = DatabaseFactory.CreateDatabase();

            using (var conn = db.CreateConnection())
            {
                conn.Open();
                using (var trans = conn.BeginTransaction())
                {
                    try
                    {
                        trans.Commit();
                    }
                    catch
                    {
                        trans.Rollback();
                        throw;
                    }
                }
            }
        }
示例#10
0
        public static ReceiveFormEntity GetBySerialId(string serialId)
        {
            var sql = string.Format("select {0} from receive_form where serial_id=@p_serial_id", COLUMN_SQL);

            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 ReceiveFormEntity();
                    entity.Init(reader);

                    return(entity);
                }
            }

            return(null);
        }
示例#11
0
        internal static void Create(ReceiveFormEntity entity, Database db, DbTransaction trans)
        {
            var sql = @"insert into receive_form
(
id,order_id,order_form_no,order_detail_id,apply_unit_id,serial_id,product_id,received_count,hospital_id,vendor_id,is_confirmed,created_id,created_time
)
values(
@p_id,@p_order_id,@p_order_form_no,@p_order_detail_id,@p_apply_unit_id,@p_serial_id,@p_product_id,@p_received_count,
@p_hospital_id,@p_vendor_id,@p_is_confirmed,@p_created_id,@p_created_time
)";

            var dc = db.GetSqlStringCommand(sql);

            entity.Id = Guid.NewGuid().ToString();

            db.AddInParameter(dc, "p_id", DbType.String, entity.Id);
            db.AddInParameter(dc, "p_order_id", DbType.String, entity.OrderId);
            db.AddInParameter(dc, "p_order_form_no", DbType.Int32, entity.OrderFormNo);
            db.AddInParameter(dc, "p_order_detail_id", DbType.String, entity.OrderDetailId);
            db.AddInParameter(dc, "p_apply_unit_id", DbType.String, entity.ApplyUnitId);
            db.AddInParameter(dc, "p_serial_id", DbType.String, entity.SerialId);
            db.AddInParameter(dc, "p_product_id", DbType.String, entity.ProductId);
            db.AddInParameter(dc, "p_received_count", DbType.Int32, entity.ReceivedCount);
            db.AddInParameter(dc, "p_hospital_id", DbType.String, entity.HospitalId);
            db.AddInParameter(dc, "p_vendor_id", DbType.String, entity.VendorId);
            db.AddInParameter(dc, "p_is_confirmed", DbType.Boolean, entity.IsConfirmed);
            db.AddInParameter(dc, "p_created_id", DbType.String, entity.CreatedId);
            db.AddInParameter(dc, "p_created_time", DbType.DateTime, entity.CreatedTime);

            db.ExecuteNonQuery(dc, trans);

            GoodsSerialFormRepository.FlowNextForm(new GoodsSerialFormEntity
            {
                SerialId    = entity.SerialId,
                FormId      = entity.Id,
                FormKind    = FormKind.Receive,
                CreatedId   = entity.CreatedId,
                CreatedTime = entity.CreatedTime
            }, db, trans);
        }
示例#12
0
        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);
        }
示例#13
0
        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);
        }