示例#1
0
        /// <summary>
        /// 删除处方明细
        /// </summary>
        /// <param name="PrescriptionDetailId">要删除的明细ID</param>
        /// <returns>被删除的处方明细数</returns>
        public int DeletePrescriptionDetail(int PrescriptionDetailId)
        {
            MZ_PresOrder mz_presorder = BindEntity <MZ_PresOrder> .CreateInstanceDAL(oleDb).GetModel(PrescriptionDetailId);

            MZ_PresMaster mz_presmaster = BindEntity <MZ_PresMaster> .CreateInstanceDAL(oleDb).GetModel(mz_presorder.PresMasterID);

            if (mz_presmaster.Charge_Flag == 1)
            {
                throw new OperatorException("该处方已经收费,不能删除!");
            }

            oleDb.BeginTransaction( );
            try
            {
                int          effectRow = 0;
                MZ_PresOrder detail    = BindEntity <MZ_PresOrder> .CreateInstanceDAL(oleDb).GetModel(PrescriptionDetailId);

                BindEntity <MZ_PresOrder> .CreateInstanceDAL(oleDb).Delete(detail.PresOrderID);

                effectRow++;
                oleDb.CommitTransaction( );
                return(effectRow);
            }
            catch (Exception err)
            {
                oleDb.RollbackTransaction( );
                ErrorWriter.WriteLog(err.Message);
                return(0);
            }
        }
示例#2
0
        private static void update_mz_presorder(MZ_PresOrder mz_presorder)
        {
            string update = "update " + "MZ_PRESORDER" + " set " +
                            Tables.mz_presorder.AMOUNT + "=" + "" + mz_presorder.Amount + "" + "," +
                            Tables.mz_presorder.BIGITEMCODE + "=" + "'" + mz_presorder.BigItemCode + "'" + "," +
                            Tables.mz_presorder.BUY_PRICE + "=" + "" + mz_presorder.Buy_Price + "" + "," +
                            Tables.mz_presorder.CASEID + "=" + "" + mz_presorder.CaseID + "" + "," +
                            Tables.mz_presorder.COMP_MONEY + "=" + "" + mz_presorder.Comp_Money + "" + "," +
                            Tables.mz_presorder.ITEMID + "=" + "" + mz_presorder.ItemID + "" + "," +
                            Tables.mz_presorder.ITEMNAME + "=" + "'" + mz_presorder.ItemName + "'" + "," +
                            Tables.mz_presorder.ITEMTYPE + "=" + "'" + mz_presorder.ItemType + "'" + "," +
                            Tables.mz_presorder.ORDER_FLAG + "=" + "" + mz_presorder.Order_Flag + "" + "," +
                            Tables.mz_presorder.PASSID + "=" + "" + mz_presorder.PassID + "" + "," +
                            Tables.mz_presorder.PATID + "=" + "" + mz_presorder.PatID + "" + "," +
                            Tables.mz_presorder.PATLISTID + "=" + "" + mz_presorder.PatListID + "" + "," +
                            Tables.mz_presorder.PRESAMOUNT + "=" + "" + mz_presorder.PresAmount + "" + "," +
                            Tables.mz_presorder.PRESMASTERID + "=" + "" + mz_presorder.PresMasterID + "" + "," +
                            Tables.mz_presorder.RELATIONNUM + "=" + "" + mz_presorder.RelationNum + "" + "," +
                            Tables.mz_presorder.SELL_PRICE + "=" + "" + mz_presorder.Sell_Price + "" + "," +
                            Tables.mz_presorder.STANDARD + "=" + "'" + mz_presorder.Standard + "'" + "," +
                            Tables.mz_presorder.TOLAL_FEE + "=" + "" + mz_presorder.Tolal_Fee + "" + "," +
                            Tables.mz_presorder.UNIT + "=" + "'" + mz_presorder.Unit + "'" +
                            " where " + Tables.mz_presorder.PRESORDERID + "=" + mz_presorder.PresOrderID;

            Execute(update);
        }
示例#3
0
        /// <summary>
        /// 删除处方明细
        /// </summary>
        /// <param name="PrescriptionDetailId">要删除的明细ID</param>
        /// <returns>被删除的处方明细数</returns>
        public int DeletePrescriptionDetail(int PrescriptionDetailId)
        {
            MZ_PresOrder  mz_presorder  = (MZ_PresOrder)MSAccessDb.GetModel("MZ_PRESORDER", Tables.mz_presorder.PRESORDERID + "=" + PrescriptionDetailId, typeof(MZ_PresOrder));
            MZ_PresMaster mz_presmaster = (MZ_PresMaster)MSAccessDb.GetModel("MZ_PRESMASTER", Tables.mz_presmaster.PRESMASTERID + "=" + mz_presorder.PresMasterID, typeof(MZ_PresMaster));

            if (mz_presmaster.Charge_Flag == 1)
            {
                throw new Exception("该处方已经收费,不能删除!");
            }

            MSAccessDb.BeginTrans( );
            try
            {
                int          effectRow = 0;
                MZ_PresOrder detail    = (MZ_PresOrder)MSAccessDb.GetModel("MZ_PRESORDER", Tables.mz_presorder.PRESORDERID + "=" + PrescriptionDetailId, typeof(MZ_PresOrder));
                MSAccessDb.Execute("delete * from mz_presorder where presorderid=" + detail.PresOrderID);
                effectRow++;
                MSAccessDb.CommitTrans( );
                return(effectRow);
            }
            catch (Exception err)
            {
                MSAccessDb.RollbackTrans( );
                return(0);
            }
        }
示例#4
0
        private static int insert_mz_presorder(MZ_PresOrder mz_presorder)
        {
            string insert = "insert into MZ_PRESORDER (" +
                            "" + Tables.mz_presorder.PRESORDERID + "," +
                            "" + Tables.mz_presorder.AMOUNT + "," +
                            "" + Tables.mz_presorder.BIGITEMCODE + "," +
                            "" + Tables.mz_presorder.BUY_PRICE + "," +
                            "" + Tables.mz_presorder.CASEID + "," +
                            "" + Tables.mz_presorder.COMP_MONEY + "," +
                            "" + Tables.mz_presorder.ITEMID + "," +
                            "" + Tables.mz_presorder.ITEMNAME + "," +
                            "" + Tables.mz_presorder.ITEMTYPE + "," +
                            "" + Tables.mz_presorder.ORDER_FLAG + "," +
                            "" + Tables.mz_presorder.PASSID + "," +
                            "" + Tables.mz_presorder.PATID + "," +
                            "" + Tables.mz_presorder.PATLISTID + "," +
                            "" + Tables.mz_presorder.PRESAMOUNT + "," +
                            "" + Tables.mz_presorder.PRESMASTERID + "," +
                            "" + Tables.mz_presorder.RELATIONNUM + "," +
                            "" + Tables.mz_presorder.SELL_PRICE + "," +
                            "" + Tables.mz_presorder.STANDARD + "," +
                            "" + Tables.mz_presorder.TOLAL_FEE + "," +
                            "" + Tables.mz_presorder.UNIT + ")";
            string values = "values (" +
                            "" + mz_presorder.PresOrderID + "," +
                            "" + mz_presorder.Amount + "," +
                            "'" + mz_presorder.BigItemCode + "'," +
                            "" + mz_presorder.Buy_Price + "," +
                            "" + mz_presorder.CaseID + "," +
                            "" + mz_presorder.Comp_Money + "," +
                            "" + mz_presorder.ItemID + "," +
                            "'" + mz_presorder.ItemName + "'," +
                            "'" + mz_presorder.ItemType + "'," +
                            "" + mz_presorder.Order_Flag + "," +
                            "" + mz_presorder.PassID + "," +
                            "" + mz_presorder.PatID + "," +
                            "" + mz_presorder.PatListID + "," +
                            "" + mz_presorder.PresAmount + "," +
                            "" + mz_presorder.PresMasterID + "," +
                            "" + mz_presorder.RelationNum + "," +
                            "" + mz_presorder.Sell_Price + "," +
                            "'" + mz_presorder.Standard + "'," +
                            "" + mz_presorder.Tolal_Fee + "," +
                            "'" + mz_presorder.Unit + "')";

            int effectrow = Execute(insert + " " + values);

            return(mz_presorder.PresOrderID);
        }
        /// <summary>
        /// 上传单个病人费用信息
        /// </summary>
        /// <param name="PatlistId"></param>
        public void UploadDataWithSinglePatient(int PatlistId)
        {
            if (_oleDb == null)
            {
                ConnectToRemoteDB( );
            }

            DataTable tbPatList       = MSAccessDb.GetDataTable("select * from mz_patlist where patlistid=" + PatlistId);
            DataTable tbPresMaster    = MSAccessDb.GetDataTable("select * from mz_presmaster where upload_flag=0 and patlistid = " + PatlistId + " and record_flag in (0,1,2) and prescostcode='" + _employeeId + "'");
            DataTable tbPresOrder     = MSAccessDb.GetDataTable("select * from mz_presorder where upload_flag=0 and presmasterid in (select presmasterid from mz_presmaster where patlistid = " + PatlistId + " and record_flag in (0,1,2) and prescostcode='" + _employeeId + "')");
            DataTable tbCostMaster    = MSAccessDb.GetDataTable("select * from mz_costmaster where upload_flag=0 and patlistid = " + PatlistId + " and record_flag in (0,1,2) and chargecode='" + _employeeId + "'");
            DataTable tbCostOrder     = MSAccessDb.GetDataTable("select * from mz_costorder where upload_flag=0 and costid in (select costmasterid from mz_costmaster where patlistid = " + PatlistId + " and record_flag in (0,1,2) and chargecode='" + _employeeId + "')");
            DataTable tbAccount       = MSAccessDb.GetDataTable("select * from mz_account where accountcode='" + _employeeId + "' and upload_flag = 0 ");
            string    patName         = tbPatList.Rows[0]["patname"].ToString( );
            int       presMasterCount = tbPresMaster.Rows.Count;
            int       presOrderCount  = tbPresOrder.Rows.Count;
            int       costMasterCount = tbCostMaster.Rows.Count;
            int       costOrderCount  = tbCostOrder.Rows.Count;
            int       accountCount    = tbAccount.Rows.Count;

            if (UpLoadingEvent != null)
            {
                UpLoadingEvent(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "开始上传病人【" + patName + "】的数据!\r\n");
            }
            if (presMasterCount == 0 && presOrderCount == 0 && costMasterCount == 0 && costOrderCount == 0 && accountCount == 0)
            {
                if (UpLoadingEvent != null)
                {
                    UpLoadingEvent("病人【" + patName + "】没有需要上传的数据!\r\n");
                }
                return;
            }
            try
            {
                BeginTrans( );

                MZ_PatList mz_patlist = new MZ_PatList( );
                DataBind <MZ_PatList>(tbPatList.Rows[0], mz_patlist);
                BindEntity <MZ_PatList> .CreateInstanceDAL(_oleDb).Add(mz_patlist);

                int serverPatlistId = mz_patlist.PatListID;
                MSAccessDb.Execute("update mz_patlist set upload_flag =1 where patlistid=" + PatlistId);
                for (int accountIndex = 0; accountIndex < tbAccount.Rows.Count; accountIndex++)
                {
                    //上传交款记录
                    int        localAccountId = Convert.ToInt32(tbAccount.Rows[accountIndex][Tables.mz_account.ACCOUNTID]);
                    MZ_Account mz_account     = new MZ_Account( );
                    DataBind <MZ_Account>(tbAccount.Rows[accountIndex], mz_account);
                    BindEntity <MZ_Account> .CreateInstanceDAL(_oleDb).Add(mz_account);

                    MSAccessDb.Execute("update mz_account set upload_flag = 1 where accountid=" + localAccountId);
                    //上传已交款的结算记录、结算明细,处方记录和处方明细(传完后从tbCostMaster中移除,剩下未交账的记录)
                    #region .....
                    DataRow[] drsCostMaster = tbCostMaster.Select(Tables.mz_costmaster.ACCOUNTID + "=" + localAccountId);
                    for (int costmasterIndex = 0; costmasterIndex < drsCostMaster.Length; costmasterIndex++)
                    {
                        //结算记录
                        int           localCostMasterId = Convert.ToInt32(drsCostMaster[costmasterIndex][Tables.mz_costmaster.COSTMASTERID]);
                        MZ_CostMaster mz_costmaster     = new MZ_CostMaster( );
                        DataBind <MZ_CostMaster>(drsCostMaster[costmasterIndex], mz_costmaster);
                        mz_costmaster.AccountID = mz_account.AccountID;
                        mz_costmaster.PatListID = serverPatlistId;
                        BindEntity <MZ_CostMaster> .CreateInstanceDAL(_oleDb).Add(mz_costmaster);

                        MSAccessDb.Execute("update mz_costmaster set upload_flag =1 where costmasterid=" + localCostMasterId);
                        //结算明细
                        DataRow[] drsCostOrder = tbCostOrder.Select(Tables.mz_costorder.COSTID + "=" + localCostMasterId);
                        for (int costorderIndex = 0; costorderIndex < drsCostOrder.Length; costorderIndex++)
                        {
                            int          loaclCostorderId = Convert.ToInt32(drsCostOrder[costorderIndex][Tables.mz_costorder.COSTORDERID]);
                            MZ_CostOrder mz_costorder     = new MZ_CostOrder( );
                            DataBind <MZ_CostOrder>(drsCostOrder[costorderIndex], mz_costorder);
                            mz_costorder.CostID = mz_costmaster.CostMasterID;
                            BindEntity <MZ_CostOrder> .CreateInstanceDAL(_oleDb).Add(mz_costorder);

                            MSAccessDb.Execute("update mz_costorder set upload_flag =1 where costorderid=" + loaclCostorderId);
                        }
                        //处方记录
                        DataRow[] drsPresMaster = tbPresMaster.Select(Tables.mz_presmaster.COSTMASTERID + "=" + localCostMasterId);
                        for (int presMasterIndex = 0; presMasterIndex < drsPresMaster.Length; presMasterIndex++)
                        {
                            int           localPresMasterId = Convert.ToInt32(drsPresMaster[presMasterIndex][Tables.mz_presmaster.PRESMASTERID]);
                            MZ_PresMaster mz_presmaster     = new MZ_PresMaster( );
                            DataBind <MZ_PresMaster>(drsPresMaster[presMasterIndex], mz_presmaster);
                            mz_presmaster.CostMasterID = mz_costmaster.CostMasterID;
                            mz_presmaster.PatListID    = serverPatlistId;
                            BindEntity <MZ_PresMaster> .CreateInstanceDAL(_oleDb).Add(mz_presmaster);

                            MSAccessDb.Execute("update mz_presmaster set upload_flag =1 where presmasterid=" + localPresMasterId);
                            //处方明细
                            DataRow[] drsPresOrder = tbPresOrder.Select(Tables.mz_presorder.PRESMASTERID + "=" + localPresMasterId);
                            for (int presorderIndex = 0; presorderIndex < drsPresOrder.Length; presorderIndex++)
                            {
                                int          localPresOrderId = Convert.ToInt32(drsPresOrder[presorderIndex][Tables.mz_presorder.PRESORDERID]);
                                MZ_PresOrder mz_presorder     = new MZ_PresOrder( );
                                DataBind <MZ_PresOrder>(drsPresOrder[presorderIndex], mz_presorder);
                                mz_presorder.PresMasterID = mz_presmaster.PresMasterID;
                                BindEntity <MZ_PresOrder> .CreateInstanceDAL(_oleDb).Add(mz_presorder);

                                MSAccessDb.Execute("update mz_presorder set upload_flag =1 where presorderid=" + localPresOrderId);
                            }
                        }
                        tbCostMaster.Rows.Remove(drsCostMaster[costmasterIndex]);
                    }
                    #endregion
                }
                //上传未交账的结算记录
                for (int costMasterIndex = 0; costMasterIndex < tbCostMaster.Rows.Count; costMasterIndex++)
                {
                    #region ...
                    //结算记录
                    int           localCostMasterId = Convert.ToInt32(tbCostMaster.Rows[costMasterIndex][Tables.mz_costmaster.COSTMASTERID]);
                    MZ_CostMaster mz_costmaster     = new MZ_CostMaster( );
                    DataBind <MZ_CostMaster>(tbCostMaster.Rows[costMasterIndex], mz_costmaster);
                    mz_costmaster.PatListID = serverPatlistId;
                    BindEntity <MZ_CostMaster> .CreateInstanceDAL(_oleDb).Add(mz_costmaster);

                    MSAccessDb.Execute("update mz_costmaster set upload_flag =1 where costmasterid=" + localCostMasterId);
                    //结算明细
                    DataRow[] drsCostOrder = tbCostOrder.Select(Tables.mz_costorder.COSTID + "=" + localCostMasterId);
                    for (int costorderIndex = 0; costorderIndex < drsCostOrder.Length; costorderIndex++)
                    {
                        int          loaclCostorderId = Convert.ToInt32(drsCostOrder[costorderIndex][Tables.mz_costorder.COSTORDERID]);
                        MZ_CostOrder mz_costorder     = new MZ_CostOrder( );
                        DataBind <MZ_CostOrder>(drsCostOrder[costorderIndex], mz_costorder);
                        mz_costorder.CostID = mz_costmaster.CostMasterID;
                        BindEntity <MZ_CostOrder> .CreateInstanceDAL(_oleDb).Add(mz_costorder);

                        MSAccessDb.Execute("update mz_costorder set upload_flag=1 where costorderid=" + loaclCostorderId);
                    }
                    //处方记录
                    DataRow[] drsPresMaster = tbPresMaster.Select(Tables.mz_presmaster.COSTMASTERID + "=" + localCostMasterId);
                    for (int presMasterIndex = 0; presMasterIndex < drsPresMaster.Length; presMasterIndex++)
                    {
                        int           localPresMasterId = Convert.ToInt32(drsPresMaster[presMasterIndex][Tables.mz_presmaster.PRESMASTERID]);
                        MZ_PresMaster mz_presmaster     = new MZ_PresMaster( );
                        DataBind <MZ_PresMaster>(drsPresMaster[presMasterIndex], mz_presmaster);
                        mz_presmaster.CostMasterID = mz_costmaster.CostMasterID;
                        mz_presmaster.PatListID    = serverPatlistId;
                        BindEntity <MZ_PresMaster> .CreateInstanceDAL(_oleDb).Add(mz_presmaster);

                        MSAccessDb.Execute("update mz_presmaster set upload_flag=1 where presmasterid=" + localPresMasterId);
                        //处方明细
                        DataRow[] drsPresOrder = tbPresOrder.Select(Tables.mz_presorder.PRESMASTERID + "=" + localPresMasterId);
                        for (int presorderIndex = 0; presorderIndex < drsPresOrder.Length; presorderIndex++)
                        {
                            int          localPresOrderId = Convert.ToInt32(drsPresOrder[presorderIndex][Tables.mz_presorder.PRESORDERID]);
                            MZ_PresOrder mz_presorder     = new MZ_PresOrder( );
                            DataBind <MZ_PresOrder>(drsPresOrder[presorderIndex], mz_presorder);
                            mz_presorder.PresMasterID = mz_presmaster.PresMasterID;
                            BindEntity <MZ_PresOrder> .CreateInstanceDAL(_oleDb).Add(mz_presorder);

                            MSAccessDb.Execute("update mz_presorder set upload_flag =1 where presorderid=" + localPresOrderId);
                        }
                    }
                    #endregion
                }

                //提交事务
                CommitTrans( );

                if (UpLoadingEvent != null)
                {
                    UpLoadingEvent(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "上传成功!\r\n处方记录" + presMasterCount + "条,处方明细" + presOrderCount + "条,结算记录" + costMasterCount + "条,结算明细" + costOrderCount + "条,个人交款记录" + accountCount + "条\r\n\r\n");
                }
            }
            catch (Exception err)
            {
                RollbackTrans( );
                throw err;
            }
        }