コード例 #1
0
        public Respbase ApplyWriteInvioce(ApplyWriteInvioceReq req)
        {
            InvioceFacade facade = new InvioceFacade();
            var           result = facade.ApplyWriteInvioce(req);

            if (result)
            {
                return(new Respbase {
                    Result = 1, Message = facade.PromptInfo.Message
                });
            }
            return(new Respbase {
                Result = facade.PromptInfo.Result, Message = facade.PromptInfo.Message
            });
        }
コード例 #2
0
        /// <summary>
        /// 开票申请
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public bool ApplyWriteInvioce(ApplyWriteInvioceReq req)
        {
            if (req.Typeid != 1 && req.Typeid != 2)
            {
                Alert("参数错误");
                return(false);
            }
            //if (req.Typeid == 1&&!IsEmail(req.Email))
            //{
            //    Alert("邮箱格式错误");
            //    return false;
            //}

            var list                = Array.ConvertAll(req.IdNo.Split(','), int.Parse);
            var sumprice            = 0M;
            TpxinInvoiceLimit limit = new TpxinInvoiceLimit();

            if (req.Typeid == 2)
            {
                limit = db.TpxinInvoiceLimitSet.Where(c => c.Nodeid == req.Nodeid && c.Status == 2).FirstOrDefault();
                if (limit == null)
                {
                    Alert("只有增票资质通过审核才能申请此类型发票");
                    return(false);
                }
            }
            var result = GetAvailableAmount(req.Nodeid);

            db.BeginTransaction();
            foreach (var item in list)
            {
                var cardhis = db.TblcCentcardHisSet.Where(c => c.Nodeid == req.Nodeid && c.Typeid == 0 && c.Idno == item).FirstOrDefault();
                if (cardhis == null)
                {
                    Alert("只能操作自己的充值卡");
                    db.Rollback();
                    return(false);
                }
                var card = db.TblcCentcardSet.Where(c => c.Idno == item).FirstOrDefault();

                var data = db.TblcCentcardInvoiceSet.Where(c => c.Idno == card.Idno).Count();
                if (data > 0)
                {
                    Alert("已经开票的卡不能再次操作");
                    db.Rollback();
                    return(false);
                }
                sumprice += (decimal)card.Amount;

                var Address = "";
                var Code    = "";
                var Head    = "";
                var status  = 1;

                if (req.Typeid == 1)
                {
                    //Address = req.Email;
                    //Code = req.Code;
                    //Head = req.Head;
                    //status = 2;
                    if (!WriteInvioce_Pro(req.Nodeid))
                    {
                        Alert("电子发票开具失败");
                        db.Rollback();
                        return(false);
                    }

                    Address = req.Address.ToString();
                    Code    = req.Code;
                    Head    = req.Head;
                    status  = 1;
                }
                else
                {
                    Address = req.Address.ToString();
                    Code    = limit.Taxnum;
                    Head    = limit.Company;
                    status  = 1;
                }


                db.TblcCentcardInvoiceSet.Add(new TblcCentcardInvoice
                {
                    Address    = Address,
                    Code       = Code,
                    Createtime = DateTime.Now,
                    Head       = Head,
                    Idno       = card.Idno,
                    Isperson   = req.Isperson,
                    Modifytime = DateTime.Now,
                    Nodeid     = req.Nodeid,
                    Status     = status,
                    Typeid     = req.Typeid
                });

                if (db.SaveChanges() <= 0)
                {
                    Alert("操作失败");
                    db.Rollback();
                    return(false);
                }
            }

            if (sumprice > result.Item1)
            {
                Alert("开票金额不能超过当前可开票金额");
                db.Rollback();
                return(false);
            }

            db.Commit();
            return(true);
        }