예제 #1
0
        public ActionResult Create([Bind(Include = "id_cost,id_os,cost1,costchangedate")] cost cost)
        {
            if (ModelState.IsValid)
            {
                db.cost.Add(cost);
                db.SaveChanges();
                if (TempData["HomePage"].Equals("/Functions"))
                {
                    return(RedirectToAction("Functions", "Home"));
                }
                return(RedirectToAction("Index"));
            }

            SelectList s = new SelectList(db.OS, "id_os", "os_name");

            List <SelectListItem> sl = s.ToList();

            List <OS> sd = db.OS.ToList();//класс

            for (int i = 0; i < sl.Count; i++)
            {
                sl[i].Text = sd[i].id_os.ToString() + ", " + sd[i].os_name.ToString();//поля
            }
            ViewBag.id_os = sl;
            return(View(cost));
        }
        public bool billPaid(int BillId)
        {//upates balance onhand ; bill can not be modified now.
         //If bill is already paid ; error
            bill_master v = (from x in dc.GetTable <bill_master>()
                             where x.billid == BillId
                             select x).SingleOrDefault();

            var abc = (from x in dc.GetTable <case_master>()
                       where x.caseid == v.caseid
                       select x).SingleOrDefault();

            abc.isactive = "no";
            dc.SubmitChanges();

            v.paid = "yes";
            long sal, starting_balance, final_balance;

            sal = v.total;
            starting_balance = getBalance();
            final_balance    = starting_balance + sal;

            cost c = new cost();

            c.date             = DateTime.Now;
            c.starting_balance = starting_balance;
            c.billid           = BillId;
            c.chequeid         = 0;
            c.final_balance    = final_balance;
            setBalance(final_balance);
            dc.costs.InsertOnSubmit(c);
            dc.SubmitChanges();
            return(true);
        }
예제 #3
0
        /// <summary>
        /// 添加费用单
        /// </summary>
        /// <param name="cost">费用单主表对象 Main:apply_id、apply_money、status、apply_time、remark
        /// 费用单审批详情列表 ApprovalList:approval_id
        /// 费用详情列表 DetailList:cost_type、money</param>
        /// <returns>数据表受影响的行数</returns>
        public int Add(cost cost)
        {
            cost_main          Main       = cost.Main;
            List <cost_detail> DetailList = cost.DetailList;

            //先构造所有的sql语句
            string[] sqlArray = new string[2 + DetailList.Count];
            //构造插入cost_main、cost_approval表的语句
            int timeStamp = TimeTools.Timestamp();

            Main.id     = timeStamp;//主键(费用单id)是时间戳
            sqlArray[0] = ConditionsToSql <cost_main> .InsertSql(Main);

            //插入cost_approval表时,鉴于审核逻辑的关系,最多一次插入一个
            cost_approval Approval = cost.ApprovalList.First();

            Approval.cost_id = timeStamp;
            sqlArray[1]      = ConditionsToSql <cost_approval> .InsertSql(Approval);

            //构造插入cost_detail表语句
            int count = 1;

            foreach (cost_detail detail in DetailList)
            {
                detail.cost_id      = timeStamp;
                sqlArray[count + 1] = ConditionsToSql <cost_detail> .InsertSql(detail);

                count++;
            }
            //调用方法以事务方式执行sql数组里的语句
            return(sqlArrayToTran.doTran(sqlArray));
        }
예제 #4
0
        /// <summary>
        /// 更新费用单信息
        /// </summary>
        /// <param name="cost">费用单主表对象 Main:id、apply_money、remark
        /// 费用单审批详情列表 ApprovalList:
        /// 费用详情列表 DetailList:cost_type、money</param>
        /// <returns>数据表受影响的行数</returns>
        public int Update(cost cost)
        {
            cost_main          Main       = cost.Main;
            List <cost_detail> DetailList = cost.DetailList;

            //构造sql语句数组
            string[] sqlArray = new string[2 + DetailList.Count];
            //先更新cost_main表
            //更新费用金额信息和状态
            sqlArray[0] = "update cost_main set " +
                          nameof(cost_main.apply_money) + "=" + Main.apply_money + "," +
                          nameof(cost_main.remark) + "='" + Main.remark +
                          "' where id='" + Main.id + "'";
            //再删除cost_detail表数据
            sqlArray[1] = "delete from cost_detail where " + nameof(cost_detail.cost_id) + "='" + Main.id + "'";
            //再插入cost_detail表数据
            int count = 1;

            foreach (cost_detail detail in DetailList)
            {
                detail.cost_id      = Main.id;
                sqlArray[count + 1] = ConditionsToSql <cost_detail> .InsertSql(detail);

                count++;
            }
            //调用方法以事务方式执行sql数组里的语句
            return(sqlArrayToTran.doTran(sqlArray));
        }
예제 #5
0
        // GET: costs/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            cost cost = db.cost.Find(id);

            if (cost == null)
            {
                return(HttpNotFound());
            }

            SelectList s = new SelectList(db.OS, "id_os", "os_name", cost.id_os);

            List <SelectListItem> sl = s.ToList();

            List <OS> sd = db.OS.ToList();//класс

            for (int i = 0; i < sl.Count; i++)
            {
                sl[i].Text = sd[i].id_os.ToString() + ", " + sd[i].os_name.ToString();//поля
            }
            ViewBag.id_os = sl;

            return(View(cost));
        }
예제 #6
0
        private void BtnCostApply_Click(object sender, EventArgs e)
        {
            if (CmbApprover.SelectedItem == null)
            {
                MessageBox.Show("请选择一个审批人负责您的费用申请", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            CostApplyBLL       costApplyBLL = new CostApplyBLL();
            List <cost_detail> listDetail   = new List <cost_detail>();
            decimal            applyMoney   = 0;

            foreach (DataGridViewRow row in this.DgvCostDetail.Rows)
            {
                if (row.Cells[0].Value == null)
                {
                    continue;
                }
                int     type  = int.Parse((((string)row.Cells[0].Value).Split('.')[0]));
                decimal money = decimal.Parse((string)row.Cells[1].Value);
                listDetail.Add(new cost_detail
                {
                    cost_type_id = type,
                    money        = money
                });
                applyMoney += money;
            }
            cost_main main = new cost_main
            {
                apply_money = applyMoney,
                apply_time  = DateTime.Now,
                apply_id    = UserInfoBLL.UserId,
                status      = 0,
                remark      = TexRemark.Text
            };
            List <cost_approval> ListApproval = new List <cost_approval>
            {
                new cost_approval
                {
                    approval_id = int.Parse(CmbApprover.SelectedItem.ToString().Split('.')[0])
                }
            };
            cost cost = new cost
            {
                Main         = main,
                DetailList   = listDetail,
                ApprovalList = ListApproval
            };
            Result       res          = costApplyBLL.Add(cost);
            DialogResult dialogResult = MessageBox.Show(res.Message, "添加费用申请单状态提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

            if (dialogResult == DialogResult.OK)
            {
                if (res.Code == RES.OK)
                {
                    this.DgvCostDetail.Rows.Clear();
                    this.Close();
                }
            }
        }
예제 #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            cost cost = db.cost.Find(id);

            db.cost.Remove(cost);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #8
0
        public void Form2Test()
        {
            //test the cost of the video after passing the year
            cost obj = new cost();
            int  y   = 5;
            int  x   = obj.calcualteCost(2019);

            Assert.IsTrue(true);
        }
예제 #9
0
        // GET: costs/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            cost cost = db.cost.Find(id);

            if (cost == null)
            {
                return(HttpNotFound());
            }
            return(View(cost));
        }
예제 #10
0
        private void Delete_Click(object sender, RoutedEventArgs e)
        {
            confirmationAlert alert = new confirmationAlert("Are you sure you want to delete this record?");

            if (alert.GetConfirmation())
            {
                foreach (object itm in costGrid.SelectedItems)
                {
                    con.Open();
                    cost       item = (cost)itm;
                    SqlCommand cmd  = new SqlCommand("Delete from [dbo].[cost] where costId = '" + item.costId + "' ", con);
                    cmd.CommandType = CommandType.Text;
                    cmd.ExecuteNonQuery();
                    con.Close();
                }
                loadDetailsGrid();
            }
        }
        /*     public List<item> viewBill(int BillId)
         *   {
         *       return true;
         *   }
         *  public List<bill> viewBillsInCase(int CaseId)
         *   {
         *       return true;
         *   }
         *
         */
        public bool giveSalaries()
        {
            DoctorClass docs = new DoctorClass();

            //GetAllDoctors
            IQueryable <doctor> ld = docs.getAllDoctors();
            long sal, starting_balance, final_balance;

            //Check if all doctors can be given salaries
            bool res = checkEnoughCash();

            if (res == false)
            {
                return(false);
            }
            //Give Salaries
            foreach (var doc in ld)
            {
                //Generate Cheque
                cheque chq = new cheque();
                chq.doctorid = doc.doctorid;
                chq.date     = DateTime.Now;
                chq.amount   = doc.salary;
                dc.cheques.InsertOnSubmit(chq);
                dc.SubmitChanges();

                //Log it and modify Balance
                sal = doc.salary;
                starting_balance = getBalance();
                final_balance    = starting_balance - sal;

                cost c = new cost();
                c.date             = DateTime.Now;
                c.starting_balance = starting_balance;
                c.billid           = 0;
                c.chequeid         = getLastChequeId(chq); //Cheque id of the last cheque inserted
                c.final_balance    = final_balance;
                setBalance(final_balance);
                dc.costs.InsertOnSubmit(c);
                dc.SubmitChanges();
            }
            return(true);
        }
예제 #12
0
        /// <summary>
        /// 费用审批添加/修改 、审批状态(待审批,通过,驳回)以及审批意见
        /// </summary>
        /// <param name="cost">费用单主表对象Main:id、status
        /// DetailList 费用详情列表:
        /// ApprovalList 费用审批表列表:详见方法体注释</param>
        public Result Update(cost Cost)
        {
            Result res = new Result()
            {
                Code    = RES.ERROR,
                Message = "更新失败"
            };

            if (Cost == null)
            {
                return(res);
            }

            if (new CostApprovaDAL().Update(Cost) == 1 + Cost.ApprovalList.Count)
            {
                res.Code    = RES.OK;
                res.Message = "更新成功";
            }
            return(res);
        }
예제 #13
0
        /// <summary>
        /// 费用审批添加/修改 、审批状态(待审批,通过,驳回)以及审批意见
        /// </summary>
        /// <param name="cost">费用单主表对象Main:id、status
        /// DetailList 费用详情列表:
        /// ApprovalList 费用审批表列表:详见方法体注释</param>
        /// <returns>数据表受影响行数</returns>
        public int Update(cost cost)
        {
            /*
             * ApprovalList最多只有两个元素(前端并不会将已审核通过的cost_approval对象封装到此列表)
             * 第一个元素是正在审批的cost_approval对象:
             * 第二个元素是需要再提交到上级进行审批的cost_approval对象
             */
            string[] sqlArray = new string[1 + cost.ApprovalList.Count];
            sqlArray[0] = "update cost_main set " +
                          nameof(cost_main.status) + "='" + cost.Main.status + "' where id='" + cost.Main.id + "'";
            cost_approval approvalFirst = cost.ApprovalList.First();

            sqlArray[1] = "update cost_approval set result=" + ((bool)approvalFirst.result?1:0) +
                          ",time='" + approvalFirst.time + "',opinion=N'" + approvalFirst.opinion
                          + "' where cost_id='" + approvalFirst.cost_id + "' and approval_id='" + approvalFirst.approval_id + "'";
            if (sqlArray.Length > 2)
            {
                sqlArray[2] = ConditionsToSql <cost_approval> .InsertSql(cost.ApprovalList[1]);
            }
            return(sqlArrayToTran.doTran(sqlArray));
        }
예제 #14
0
        public ActionResult Edit([Bind(Include = "id_cost,id_os,cost1,costchangedate")] cost cost)
        {
            if (ModelState.IsValid)
            {
                db.Entry(cost).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            SelectList s = new SelectList(db.OS, "id_os", "os_name", cost.id_os);

            List <SelectListItem> sl = s.ToList();

            List <OS> sd = db.OS.ToList();//класс

            for (int i = 0; i < sl.Count; i++)
            {
                sl[i].Text = sd[i].id_os.ToString() + ", " + sd[i].os_name.ToString();//поля
            }
            ViewBag.id_os = sl;
            return(View(cost));
        }
예제 #15
0
        /// <summary>
        /// 更新费用单信息
        /// </summary>
        /// <param name="cost">费用单主表对象 Main:id、apply_money、remark
        /// 费用单审批详情列表 ApprovalList:
        /// 费用详情列表 DetailList:cost_type、cost_type_name、money</param>
        /// <returns>更新是否成功</returns>
        public Result Update(cost cost)
        {
            cost_main          main       = cost.Main;
            List <cost_detail> listDeatil = cost.DetailList;
            Result             res        = new Result()
            {
                Code    = RES.ERROR,
                Message = "更新失败!"
            };

            if (main == null || listDeatil == null || listDeatil.Count == 0)
            {
                return(res);
            }
            CostApplyDAL apply = new CostApplyDAL();
            //获取该费用单的审批状态
            byte status = apply.QueryMain(new Dictionary <string, object>
            {
                { "id", main.id }
            }).First().status;

            //如果费用单不是未审批状态,则更新信息失败
            if (status != 0)
            {
                return(res);
            }
            //先获取未更新时费用详情记录数
            int originDetailCount = apply.QueryDetail(main.id).Count;
            //再更新费用单
            int rows = apply.Update(cost);

            if (rows == 1 + originDetailCount + listDeatil.Count)
            {
                res.Code    = RES.OK;
                res.Message = "更新成功!";
            }
            return(res);
        }
예제 #16
0
        /// <summary>
        /// 添加费用单
        /// </summary>
        /// <param name="cost">费用单主表对象 Main:apply_id、apply_money、status、apply_time、remark
        /// 费用单审批详情列表 ApprovalList:approval_id
        /// 费用详情列表 DetailList:cost_type、money</param>
        /// <returns>添加是否成功</returns>
        public Result Add(cost cost)
        {
            cost_main          Main       = cost.Main;
            List <cost_detail> DetailList = cost.DetailList;
            Result             res        = new Result()
            {
                Code    = RES.ERROR,
                Message = "添加失败!"
            };

            if (Main == null || DetailList == null || DetailList.Count == 0)
            {
                return(res);
            }
            int rows = new CostApplyDAL().Add(cost);

            if (rows == 2 + DetailList.Count)
            {
                res.Code    = RES.OK;
                res.Message = "添加成功!";
            }
            return(res);
        }
예제 #17
0
 Msmt(sources, targets, cost, bound, max);