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 }); }
/// <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); }