From 8634720b08addc6f2a327fb81d7be7c54b444baf Mon Sep 17 00:00:00 2001 From: fly-l <1420031550@qq.com> Date: Sun, 12 May 2024 20:12:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=A5=A8=E7=AE=A1=E7=90=86=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=89=93=E5=8D=B0=EF=BC=8C=E5=92=8C=E6=8E=A8=E9=80=81?= =?UTF-8?q?oa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/SGGL_SeDin/v17/.wsuo | Bin 265728 -> 266240 bytes SGGL/BLL/Common/Funs.cs | 25 ++ .../ContractCompile/PHTGL_ApproveService.cs | 4 +- .../InvoiceManage/PhtglInvoiceService .cs | 84 ++++- SGGL/BLL/PHTGL/OAWebSevice.cs | 107 +++++- SGGL/BLL/Person/Person_PersonsService.cs | 15 + SGGL/FineUIPro.Mobile/ErrLog.txt | 156 +++++++++ SGGL/FineUIPro.Mobile/FineUIPro.Mobile.csproj | 8 + .../InvoiceManage/InvoiceOrderDetail.aspx | 179 +++++++++++ .../InvoiceManage/InvoiceOrderDetail.aspx.cs | 228 +++++++++++++ .../InvoiceOrderDetail.aspx.designer.cs | 296 +++++++++++++++++ .../File/Excel/DataIn/发票导入模版.xlsx | Bin 9188 -> 10418 bytes .../File/Fastreport/发票存货入库单.frx | 279 ++++++++++++++++ .../File/Fastreport/发票存货出库单.frx | 304 ++++++++++++++++++ .../PHTGL/InvoiceManage/InvoiceOrder.aspx | 71 ++-- .../PHTGL/InvoiceManage/InvoiceOrder.aspx.cs | 103 +++++- .../InvoiceOrder.aspx.designer.cs | 36 +++ .../InvoiceManage/InvoiceOrderDetail.aspx | 5 +- .../InvoiceManage/InvoiceOrderDetail.aspx.cs | 10 +- .../InvoiceOrderReviewEdit.aspx.cs | 2 +- SGGL/FineUIPro.Web/common/PageBase.cs | 4 +- SGGL/Model/Model.csproj | 1 + SGGL/Model/PHTGL/PHTGL_InvoicePrintModel.cs | 83 +++++ 23 files changed, 1959 insertions(+), 41 deletions(-) create mode 100644 SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx create mode 100644 SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.cs create mode 100644 SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/File/Fastreport/发票存货入库单.frx create mode 100644 SGGL/FineUIPro.Web/File/Fastreport/发票存货出库单.frx create mode 100644 SGGL/Model/PHTGL/PHTGL_InvoicePrintModel.cs diff --git a/.vs/SGGL_SeDin/v17/.wsuo b/.vs/SGGL_SeDin/v17/.wsuo index eabef08fc88d8669efe8700bfb22334ccc65e35c..92ce933b3ee27170edc34d31292f81e39355a085 100644 GIT binary patch delta 2406 zcmcIlYfMx}6yABTE_ivkEU-KlSD}Ky>OK$_C3JbD^-%$ZC`}AydBwJQZDXvl(X_QSX=4+@nqsMRW@X7@sr64!^4*y^ zbI!TvH8b5O;<|_828%NzH5v`(cr-ON#Rm=INa0B3NaHYZC@5zL$+#`1VIu#5>-0^O z%bA*N=)fK56a;W3j3(GnFL+6C7QKt_zAi*KNq}gQGmg*r4}uiI=g}Nmj&zR29Ci+| z8PCW0)AJ>KJnA;A7oPp~1fr&8gpQyEPppMbHs>wnSU$a%$Hy#XgnoizTp#>L99>Jp zV+j6&e{|e}@I+V-Q5-DNWpoL@^&Im!gx?7qp}0c+3yttN#M;2+#2BJyjw4Jjkr(JQ z-5NxDI1{Q94a`hYo#Kh=MRJsG4(_=a4?;`98(X8xnYIHP7G}bD>{W?!hA4_~=rJ>< zdrsN-YAKV;i6Vw%Q6hK^UFZk|3^lq?#f1@c7`zEx=nw=F-j}kthDeD3oKD;W{jp%LB$1@JL zgEzTK67h)+o?-7$0?Cyq8j0WqQ&2E?PwIedsCZhS{4a!S{WIE#L!3=uB6Xc4j+bbV zkXf`Hy!tNi=+huB-T|Z7hF$`%sY((Zv?xqa62b9xkYHqM0KRWs2d;&FdGYc8FOL~@ zk~o4A$Bf5sf;Y2Dis3AAszPjKJo5^UMq()rSBM>9~=I= z1o`H880)QpNppd+-&~I5d}_qJfT9wDw0thcB>pRYE&hc5RZWS=$-EzNflg7u%Zs|miC}cFtO^A6w5`zbE%A%Nk}dk6&Em! zmsAS{@H{^tS5!zMQK5TMbhF}lVF1Y$t97%P6$9wpl2P9M!mYW=xMnR@%4^Rf1=UWG zRPiQ=H$spY_t|dXPx}M6>c&cy)Gc?3ZY|j*zak01JXcg z&+~F`Hala&W?0?p^zEU({*GZS!ow8d!#Xsq!*Ou+>y518G;*@@8%Y#<=VPQ(Po(2! zBzOD@rQHd~lCdBBo!LQur? zv^t9#ZOtoMomQtK=y>v6jt8BE?+&IyMvv*Szj1X}L_NiWyG`TP?9#wskCnMhI2+FN z7>CU`ik&@08q|h7JcOWO#G`sHlL0cEgE8EBTYp5q46FKOsLflms}$^ z33C|{Ws@(X#jxc)ox1D>xkli^ND8a|hEO&AOY#GPvHol}c%8V^t+&YWNErG&T}}Uk zZ?HiJF|a#1{6+9T)T_mh$VD`KonTgS8@H?NKa;^&u>18N>gj#Ne0NEGP<7t}atN`? zF0_TUpG0}gwGd0{yAMelm!Y&kEx_~(#2S7o zNd^%s)1i8`o>CuTNTTroy|1tiEzJc}-#oIprIER{RD~b=OmMbO&qg9>0y9Xop7~AK z1($lWW(liYxEV29G_|OwB(o-Gx?Z9Rif`GqeB16u@2hRi%k5UH J!?D%l`5WXzlZ^lX delta 2455 zcmcIkeN0nV6z{$70;RT4ODPor1yL%}@d|AzOtE~-Wr)CpMY1enp|H)VFw!!EW<0H% zWFv(2Bwm-Oah)N{=C;V2shf%G(EYK^h%-|cwo{#y|hn1vOHI#QmHV*)b#W;`=}6uks+NSgCP@g)$@<^45A?3l+rZr z$j{t$2`yueNCEWYeslmPaf42!WsIJIMVW@L7v!Ve;7=ORy~wB+7`P<^A{hg7*@!RV zmczyg3_6BHhCGH62A&JIY&PbB`S{-%C}aNR#(BjSv$b<()+?MLZqDLnP8Tr3!cZLN zC}QI!@)2?zrHH-(je zxSl)2^zBTo+0r{hzQn$MhCYU^Gn}$<8=J$m^mRIv&qjnnIT(B<3H89FsX>SMHP4Up zp>FVJG-~7ThUc2Fg{`TSZ!BJow2JK8;pPnmvudGMxU)!imYEkRyD?Uw+_*Di;@LcA zV0->3WIwwGa91U`7ewf=jyz7A=a5I`aj_D?hBfZs!oB}ny>eT%g)9%Qja%%VUIl;N z&8+!Pr_gdVZvw+fY)ddR*3N2^gdtyTmi0~}h9Z}mV5a{KkC~WQLy}uuhtZwdLKXO4 z@=C~Deu)WeJ3ow@nYS<&`5SbXD>dd4OU|NTUhP99uSG#q&BH&AWwRgg&4&Ru3ck|v zHq5&a&zIK?qV5SDN@Wah#<$t330^gbRyS#R6Xp(Xu`RxupJRPren4}6FRxdf{p8Qq!Mu+jJ6v(TWA9&Ed7D<1t zRZ_9Oy12Qe!d5C)h!xvxHm8?LnYeC|!|Cesc$`*8d8f;2FB7}0hd^C?6!7S znaAECzb|17#eum9K~-QSZ-_Db?oA&P-_6D>5NCdWgA{i6ioQH(Hs`8`~{yE+kts}u2w)Up1n=)Ogn9(XOk zqr9ZdQP$aR^|X82S;n2BwcX`%SWBGtPOshWD0O+fv5bw5(sFBgX_?Jx@9He~h+YT# zJE3OhieSJ^BiYyj&jrl)662z34RL{fu!S~N3r>2XMbOaUV@Ms|XTn}YuYD@$!}=Wj zNAl<+7*j(;kiwD$OXyV*kBY(p`sHPuNt-4F63)3GTw$H;Ltofeh=&A_juJZZIWkf4 zqM!{gIU`&WMt>IY=sAH<@f@xUSAHvuCxiGyPq^o*Fp>(9?=|%BWuY%D{Vhmn^ooG# z!6vjmy#5~{gs3zmu!V$-Ad35tk^X2wCWu@&gqQy$oI>>J1=tWaTo-;r!Tn3<8H}~z zk}2T~qO961L?U4!+!|6a>uwIfa+{MjB$2U?$R!L(this T[] entities) + { + DataTable dataTable = new DataTable(typeof(T).Name); + + PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); + + foreach (PropertyInfo propInfo in properties) + { + dataTable.Columns.Add(propInfo.Name, propInfo.PropertyType); + } + + foreach (T entity in entities) + { + object[] values = new object[properties.Length]; + for (int i = 0; i < properties.Length; i++) + { + values[i] = properties[i].GetValue(entity); + } + + dataTable.Rows.Add(values); + } + + return dataTable; + } /// /// 趨ֵڲ /// diff --git a/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs b/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs index 3562d8f2..42b34d15 100644 --- a/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs +++ b/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs @@ -17,6 +17,8 @@ namespace BLL public const string SetSubReview = "SetSubReview"; public const string ContractReview = "ContractReview"; public const string ContractReview_Countersign = "ContractReview_Countersign"; + public const string Invoice_Input = "Invoice_Input"; + public const string Invoice_Output = "Invoice_Output"; public static Model.PHTGL_Approve GetPHTGL_ApproveById(string ApproveId) { @@ -170,7 +172,7 @@ namespace BLL /// public static List GetApproves_NopushOa() { - var q = (from x in Funs.DB.PHTGL_Approve where x.IsPushOa == 0 && x.ApproveMan != "" select x).ToList(); + var q = (from x in Funs.DB.PHTGL_Approve where x.IsPushOa == 0 && x.ApproveMan != "" && x.State==0 select x).ToList(); return q; } /// diff --git a/SGGL/BLL/PHTGL/InvoiceManage/PhtglInvoiceService .cs b/SGGL/BLL/PHTGL/InvoiceManage/PhtglInvoiceService .cs index 7d65e020..4a49c8f7 100644 --- a/SGGL/BLL/PHTGL/InvoiceManage/PhtglInvoiceService .cs +++ b/SGGL/BLL/PHTGL/InvoiceManage/PhtglInvoiceService .cs @@ -3,13 +3,16 @@ using FineUIPro; using MiniExcelLibs; using MiniExcelLibs.Attributes; using Model; +using NPOI.SS.Formula.Eval; using NPOI.SS.Formula.Functions; +using Org.BouncyCastle.Security; using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics.Contracts; using System.Linq; using System.Runtime.CompilerServices; +using System.Security.Cryptography; using System.Text; using WIA; @@ -108,7 +111,7 @@ namespace BLL where (string.IsNullOrEmpty(table.InvoiceId) || x.InvoiceId.Contains(table.InvoiceId)) && (string.IsNullOrEmpty(table.ProjectId) || x.ProjectId.Contains(table.ProjectId)) && - (string.IsNullOrEmpty(table.ContractId) || x.ProjectId.Contains(table.ContractId)) && + (string.IsNullOrEmpty(table.ContractId) || x.ContractId.Contains(table.ContractId)) && (string.IsNullOrEmpty(table.InvoiceCode) || x.InvoiceCode.Contains(table.InvoiceCode)) && (string.IsNullOrEmpty(table.InvoiceNumber) || x.InvoiceNumber.Contains(table.InvoiceNumber)) && (string.IsNullOrEmpty(table.SellerName) || x.SellerName.Contains(table.SellerName)) && @@ -174,9 +177,29 @@ namespace BLL }); } - public static IEnumerable GetOrderInListData(Model.PHTGL_Invoice table, Grid grid1) + + public static IEnumerable GetOrderInListData(Model.PHTGL_Invoice table, Grid grid1,string state) { var q = GetPHTGL_InvoiceByModle(table); + + switch (state) + { + case "0": q = q.Where(x => x.State > StateDataIn); //全部 + break; + case "1": + q = q.Where(x => x.State > StateDataIn &&x.State< StateInPutApproveSuccess); //未入库 + break; + case "2": + q = q.Where(x => x.State >= StateInPutApproveSuccess ); //已入库 + break; + case "3": + q = q.Where(x => x.State >=StateInPutApproveSuccess && x.State < StateOutPutApproveSuccess);//未出库 + break; + case "4": + q = q.Where(x => x.State == StateOutPutApproveSuccess);//已出库 + break; + + } Count = q.Count(); if (Count == 0) { @@ -224,6 +247,60 @@ namespace BLL return Funs.DB.PHTGL_Invoice.FirstOrDefault(x => x.InvoiceId == InvoiceId); } + public static PHTGL_InvoicePrintModel GetPHTGL_InvoicePrintModel(string InvoiceId) + { + var result = new PHTGL_InvoicePrintModel(); + Order order = new Order(); + List orderDetails = new List(); + OrderApproveIn orderApproveIn = new OrderApproveIn(); + OrderApproveOut orderApproveOut = new OrderApproveOut(); + + var invoiceModel = GetPHTGL_InvoiceById(InvoiceId); + var invoiceDetail = PhtglInvoicedetailService.GetPHTGL_InvoiceDetailByInvoiceId(InvoiceId); + var approveManModels = GetInvoiceApproveManEntity(InvoiceId); + //将invoiceModel 映射到order + var mapper = EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper(); + order=mapper.Map(invoiceModel); + order.ProjectName=ProjectService.GetProjectNameByProjectId(invoiceModel.ProjectId); + order.ContractCode=ContractService.GetContractById(invoiceModel.ContractId)?.ContractNum; + //invoiceDetail 映射到orderDetails + var mapper2 = EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper, List>(); + orderDetails = mapper2.Map(invoiceDetail); + orderDetails= orderDetails.Select(x => new OrderDetail + { + GoodsOrServicesName = x.GoodsOrServicesName, + SpecificationModel = x.SpecificationModel, + Unit = x.Unit, + Quantity = x.Quantity, + UnitPrice = x.UnitPrice, + NoTaxPrice = x.Amount - x.Tax, + TaxRate = string.Format("{0:P0}", Convert.ToDecimal(x.TaxRate) ), + Tax =x.Tax , + Amount = x.Amount, + }).ToList(); + if (approveManModels!=null) + { + orderApproveIn.ProjectManager = !string.IsNullOrEmpty(approveManModels.InputApproveMan.ProjectManager) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.InputApproveMan.ProjectManager) : ""; + orderApproveIn.ControlManager = !string.IsNullOrEmpty(approveManModels.InputApproveMan.ControlManager) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.InputApproveMan.ControlManager) : ""; + orderApproveIn.ConstructionManager = !string.IsNullOrEmpty(approveManModels.InputApproveMan.ConstructionManager) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.InputApproveMan.ConstructionManager) : ""; + orderApproveIn.ProfessionalEngineer = !string.IsNullOrEmpty(approveManModels.InputApproveMan.ProfessionalEngineer) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.InputApproveMan.ProfessionalEngineer) : ""; + + orderApproveOut.ProjectManager = !string.IsNullOrEmpty(approveManModels.OutputApproveMan.ProjectManager) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.OutputApproveMan.ProjectManager) : ""; + orderApproveOut.ControlManager = !string.IsNullOrEmpty(approveManModels.OutputApproveMan.ControlManager) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.OutputApproveMan.ControlManager) : ""; + orderApproveOut.PurchasingMan = !string.IsNullOrEmpty(approveManModels.OutputApproveMan.PurchasingMan) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.OutputApproveMan.PurchasingMan) : ""; + orderApproveOut.ConUnitMaterialOfficer = !string.IsNullOrEmpty(approveManModels.OutputApproveMan.ConUnitMaterialOfficer) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.OutputApproveMan.ConUnitMaterialOfficer) : ""; + orderApproveOut.ConUnitProjectManager = !string.IsNullOrEmpty(approveManModels.OutputApproveMan.ConUnitProjectManager) ? BLL.Person_PersonsService.getSignatureUrl(approveManModels.OutputApproveMan.ConUnitProjectManager) : ""; + + } + + + result.Order = order; + result.Data = orderDetails; + result.ApproveIn = orderApproveIn; + result.ApproveOut = orderApproveOut; + return result; + } + /// /// 添加实体 /// @@ -518,6 +595,7 @@ namespace BLL _Approve.State = 0; _Approve.IsAgree = 0; _Approve.ApproveIdea = ""; + _Approve.IsPushOa = 0; _Approve.ApproveType = approveManModels.Rolename; _Approve.ApproveForm =(type==0? "Invoice_Input": "Invoice_Output"); BLL.PHTGL_ApproveService.AddPHTGL_Approve(_Approve); @@ -580,6 +658,8 @@ namespace BLL model.State = (type == 0 ? StateInPutApproveRefuse : StateOutPutApproveRefuse); UpdatePHTGL_Invoice(model); } + OAWebSevice.Pushoa(); + OAWebSevice.DoneRequest(thisApprovemodel.ApproveId); } } diff --git a/SGGL/BLL/PHTGL/OAWebSevice.cs b/SGGL/BLL/PHTGL/OAWebSevice.cs index ea6f97b8..83ccfbc1 100644 --- a/SGGL/BLL/PHTGL/OAWebSevice.cs +++ b/SGGL/BLL/PHTGL/OAWebSevice.cs @@ -5,7 +5,14 @@ namespace BLL { public static class OAWebSevice { - + /// + /// 获取推送OA的PCurl + /// + /// + /// + /// + /// + /// public static string geturl(string projectid, string formname, string ID, string personId) { //string SGGLUrl = Funs.SGGLUrl.Substring(Funs.SGGLUrl.IndexOf("//")+2); @@ -37,12 +44,26 @@ namespace BLL case ActionPlanListApproveService.ActionPlanListEdit: PHTUrl = string.Format("PHTUrl=ZHGL/Plan/ActionPlanListEdit.aspx?ActionPlanListId={0}", ID); break; + case PHTGL_ApproveService.Invoice_Input: + PHTUrl = string.Format("PHTUrl=PHTGL/InvoiceManage/InvoiceOrderDetail.aspx?InvoiceId={0}&Type=0", ID); + break; + case PHTGL_ApproveService.Invoice_Output: + PHTUrl = string.Format("PHTUrl=PHTGL/InvoiceManage/InvoiceOrderDetail.aspx?InvoiceId={0}&Type=1", ID); + break; } url = url + PHTUrl; //LogService.AddSys_Log(Person_PersonsService.GetPerson_PersonsById(personId),"", ID, "ActionPlanListEdit",url); return url; } + /// + /// 获取推送OA的Appurl + /// + /// + /// + /// + /// + /// public static string getAppurl(string projectid, string formname, string ID, string userid) { string mobileWebUrl = Funs.MobileWebUrl; @@ -65,12 +86,18 @@ namespace BLL case PHTGL_ApproveService.ContractReview: PHTUrl = string.Format("PHTGL/ContractCompile/{0}Detail.aspx?ContractReviewId={1}&PersonId={2}", formname, ID, userid); break; + case PHTGL_ApproveService.Invoice_Input: + PHTUrl = string.Format("PHTGL/InvoiceManage/InvoiceOrderDetail.aspx?InvoiceId={0}&Type=0&PersonId={1}", ID, userid); + break; + case PHTGL_ApproveService.Invoice_Output: + PHTUrl = string.Format("PHTGL/InvoiceManage/InvoiceOrderDetail.aspx?InvoiceId={0}&Type=1&PersonId={1}", ID, userid); + break; } url = url + PHTUrl; return url; } /// - /// 获取审批表单主界面 + /// 获取审批表单主界面(用于推送给创建者) /// /// /// @@ -103,6 +130,12 @@ namespace BLL case PHTGL_ApproveService.ContractReview_Countersign: PHTUrl = string.Format("PHTUrl=PHTGL/ContractCompile/{0}.aspx", formname); break; + case PHTGL_ApproveService.Invoice_Input: + PHTUrl = string.Format("PHTUrl=PHTGL/InvoiceManage/InvoiceOrder.aspx"); + break; + case PHTGL_ApproveService.Invoice_Output: + PHTUrl = string.Format("PHTUrl=PHTGL/InvoiceManage/InvoiceOrder.aspx"); + break; } url = url + PHTUrl; return url; @@ -226,6 +259,38 @@ namespace BLL } break; + case PHTGL_ApproveService.Invoice_Input: + var invoice = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(users.ContractId); + if (invoice != null) + { + var gereceiver = BLL.Person_PersonsService.GetPerson_PersonsById(invoice.CreateUser); + var geCreatUser = BLL.Person_PersonsService.GetPerson_PersonsById(users.ApproveMan); + var project = BLL.ProjectService.GetProjectByProjectId(invoice.ProjectId); + webJson.flowid = users.ApproveId; + webJson.requestname = "入库单审批(被拒) " + project.ProjectName; + webJson.nodename = users.ApproveType; + webJson.creator = geCreatUser.JobNum; + webJson.receiver = gereceiver.JobNum; + webJson.pcurl = geturl_Form(invoice.ProjectId, PHTGL_ApproveService.Invoice_Input, gereceiver.PersonId); + webJson.appurl = getAppurl(invoice.ProjectId, PHTGL_ApproveService.Invoice_Input, invoice.InvoiceId, gereceiver.PersonId); + } + break; + case PHTGL_ApproveService.Invoice_Output: + var invoice_output = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(users.ContractId); + if (invoice_output != null) + { + var gereceiver = BLL.Person_PersonsService.GetPerson_PersonsById(invoice_output.CreateUser); + var geCreatUser = BLL.Person_PersonsService.GetPerson_PersonsById(users.ApproveMan); + var project = BLL.ProjectService.GetProjectByProjectId(invoice_output.ProjectId); + webJson.flowid = users.ApproveId; + webJson.requestname = "出库单审批(被拒) " + project.ProjectName; + webJson.nodename = users.ApproveType; + webJson.creator = geCreatUser.JobNum; + webJson.receiver = gereceiver.JobNum; + webJson.pcurl = geturl_Form(invoice_output.ProjectId, PHTGL_ApproveService.Invoice_Output, gereceiver.PersonId); + webJson.appurl = getAppurl(invoice_output.ProjectId, PHTGL_ApproveService.Invoice_Output, invoice_output.InvoiceId, gereceiver.PersonId); + } + break; } strjson = JsonConvert.SerializeObject(webJson); returnjson = OAWeb.receiveTodoRequestByJson(strjson); @@ -368,6 +433,38 @@ namespace BLL webJson.appurl = getAppurl(Con_Co.ProjectId, PHTGL_ApproveService.ContractReview, Ctr_Co.ContractReviewId, users[i].ApproveMan); } break; + case PHTGL_ApproveService.Invoice_Input: + var invoice = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(users[i].ContractId); + if (invoice != null) + { + var geCreatUser = BLL.Person_PersonsService.GetPerson_PersonsById(invoice.CreateUser); + var gereceiver = BLL.Person_PersonsService.GetPerson_PersonsById(users[i].ApproveMan); + var project = BLL.ProjectService.GetProjectByProjectId(invoice.ProjectId); + webJson.flowid = users[i].ApproveId; + webJson.requestname = "入库单审批 " + project.ProjectName; + webJson.nodename = users[i].ApproveType; + webJson.creator = geCreatUser.JobNum; + webJson.receiver = gereceiver.JobNum; + webJson.pcurl = geturl(invoice.ProjectId, PHTGL_ApproveService.Invoice_Input, invoice.InvoiceId, users[i].ApproveMan); + webJson.appurl = getAppurl(invoice.ProjectId, PHTGL_ApproveService.Invoice_Input, invoice.InvoiceId, users[i].ApproveMan); + } + break; + case PHTGL_ApproveService.Invoice_Output: + var invoice_output = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(users[i].ContractId); + if (invoice_output != null) + { + var geCreatUser = BLL.Person_PersonsService.GetPerson_PersonsById(invoice_output.CreateUser); + var gereceiver = BLL.Person_PersonsService.GetPerson_PersonsById(users[i].ApproveMan); + var project = BLL.ProjectService.GetProjectByProjectId(invoice_output.ProjectId); + webJson.flowid = users[i].ApproveId; + webJson.requestname = "出库单审批 " + project.ProjectName; + webJson.nodename = users[i].ApproveType; + webJson.creator = geCreatUser.JobNum; + webJson.receiver = gereceiver.JobNum; + webJson.pcurl = geturl(invoice_output.ProjectId, PHTGL_ApproveService.Invoice_Output, invoice_output.InvoiceId, users[i].ApproveMan); + webJson.appurl = getAppurl(invoice_output.ProjectId, PHTGL_ApproveService.Invoice_Output, invoice_output.InvoiceId, users[i].ApproveMan); + } + break; } strjson = JsonConvert.SerializeObject(webJson); returnjson = OAWeb.receiveTodoRequestByJson(strjson); @@ -497,6 +594,12 @@ namespace BLL case PHTGL_ApproveService.ContractReview: webJson.requestname = "合同审批"; break; + case PHTGL_ApproveService.Invoice_Input: + webJson.requestname = "入库单审批"; + break; + case PHTGL_ApproveService.Invoice_Output: + webJson.requestname = "出库单审批"; + break; } string strjson = JsonConvert.SerializeObject(webJson); var returnjson = OAWeb.processDoneRequestByJson(strjson); diff --git a/SGGL/BLL/Person/Person_PersonsService.cs b/SGGL/BLL/Person/Person_PersonsService.cs index 9bc12b41..199aa2ba 100644 --- a/SGGL/BLL/Person/Person_PersonsService.cs +++ b/SGGL/BLL/Person/Person_PersonsService.cs @@ -457,6 +457,21 @@ namespace BLL } return userName; } + public static string getSignatureUrl(string personId) + { + string Url = string.Empty; + var getUser = Person_PersonsService.GetPerson_PersonsById(personId); + if (getUser != null) + { + Url = getUser.PersonName; + if (!string.IsNullOrEmpty(getUser.SignatureUrl)) + { + Url = Funs.RootPath + getUser.SignatureUrl; + + } + } + return Url; + } #endregion #region 根据项目ID单位ID 获取人员下拉框 (项目角色 且可审批) diff --git a/SGGL/FineUIPro.Mobile/ErrLog.txt b/SGGL/FineUIPro.Mobile/ErrLog.txt index e69de29b..798a5d79 100644 --- a/SGGL/FineUIPro.Mobile/ErrLog.txt +++ b/SGGL/FineUIPro.Mobile/ErrLog.txt @@ -0,0 +1,156 @@ + +错误信息开始=====> +错误类型:NullReferenceException +错误信息:未将对象引用设置到对象的实例。 +错误堆栈: + 在 FineUIPro.Mobile.PHTGL.InvoiceManage.InvoiceOrderDetail.Page_Load(Object sender, EventArgs e) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\FineUIPro.Mobile\PHTGL\InvoiceManage\InvoiceOrderDetail.aspx.cs:行号 55 + 在 System.EventHandler.Invoke(Object sender, EventArgs e) + 在 System.Web.UI.Control.OnLoad(EventArgs e) + 在 System.Web.UI.Control.LoadRecursive() + 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +出错时间:05/12/2024 15:53:48 +出错文件:http://localhost:60276/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx?InvoiceId=f8087626-f2e5-4cee-8765-54a1a942aac8&Type=0&PersonId=406007bf-c852-4e4d-aa32-060445fc26c4 +IP地址:::1 + +出错时间:05/12/2024 15:53:48 + +System.ServiceModel.EndpointNotFoundException: 没有终结点在侦听可以接受消息的 http://172.25.0.43/services/OfsTodoDataWebService。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。 ---> System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 172.25.0.43:80 + 在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) + 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) + --- 内部异常堆栈跟踪的结尾 --- + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() + --- 内部异常堆栈跟踪的结尾 --- + +Server stack trace: + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() + 在 System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) + 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) + +Exception rethrown at [0]: + 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) + 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) + 在 BLL.OAWebService.OfsTodoDataWebServicePortType.receiveTodoRequestByJson(String in0) + 在 BLL.OAWebService.OfsTodoDataWebServicePortTypeClient.receiveTodoRequestByJson(String in0) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\Service References\OAWebService\Reference.cs:行号 478 + 在 BLL.OAWebSevice.Pushoa() 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\PHTGL\OAWebSevice.cs:行号 470 +System.ServiceModel.EndpointNotFoundException: 没有终结点在侦听可以接受消息的 http://172.25.0.43/services/OfsTodoDataWebService。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。 ---> System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 172.25.0.43:80 + 在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) + 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) + --- 内部异常堆栈跟踪的结尾 --- + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() + --- 内部异常堆栈跟踪的结尾 --- + +Server stack trace: + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() + 在 System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) + 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) + +Exception rethrown at [0]: + 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) + 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) + 在 BLL.OAWebService.OfsTodoDataWebServicePortType.receiveTodoRequestByJson(String in0) + 在 BLL.OAWebService.OfsTodoDataWebServicePortTypeClient.receiveTodoRequestByJson(String in0) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\Service References\OAWebService\Reference.cs:行号 478 + 在 BLL.OAWebSevice.Pushoa() 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\PHTGL\OAWebSevice.cs:行号 470 + +错误信息开始=====> +错误类型:EndpointNotFoundException +错误信息:没有终结点在侦听可以接受消息的 http://172.25.0.43/services/OfsTodoDataWebService。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。 +错误堆栈: + +Server stack trace: + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() + 在 System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) + 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) + +Exception rethrown at [0]: + 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) + 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) + 在 BLL.OAWebService.OfsTodoDataWebServicePortType.processDoneRequestByJson(String in0) + 在 BLL.OAWebService.OfsTodoDataWebServicePortTypeClient.processDoneRequestByJson(String in0) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\Service References\OAWebService\Reference.cs:行号 406 + 在 BLL.OAWebSevice.DoneRequest(String id) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\PHTGL\OAWebSevice.cs:行号 605 + 在 BLL.PhtglInvoiceService.Approve(String invoiceId, Int32 type, String userid, Boolean isAgree, String idea) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\BLL\PHTGL\InvoiceManage\PhtglInvoiceService .cs:行号 662 + 在 FineUIPro.Mobile.PHTGL.InvoiceManage.InvoiceOrderDetail.btnAgree_Click(Object sender, EventArgs e) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\FineUIPro.Mobile\PHTGL\InvoiceManage\InvoiceOrderDetail.aspx.cs:行号 194 + 在 FineUIPro.Button.OnClick(EventArgs e) + 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +----错误类型:WebException +----错误信息: +----无法连接到远程服务器 +----错误堆栈: + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() +--------错误类型:SocketException +--------错误信息: +--------由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 172.25.0.43:80 +--------错误堆栈: + 在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) + 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) +出错时间:05/12/2024 15:57:50 +出错文件:http://localhost:60276/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx?InvoiceId=f8087626-f2e5-4cee-8765-54a1a942aac8&Type=0&PersonId=406007bf-c852-4e4d-aa32-060445fc26c4 +IP地址:::1 + +出错时间:05/12/2024 15:57:50 + + +错误信息开始=====> +错误类型:EndpointNotFoundException +错误信息:没有终结点在侦听可以接受消息的 http://172.25.0.43/services/OfsTodoDataWebService。这通常是由于不正确的地址或者 SOAP 操作导致的。如果存在此情况,请参见 InnerException 以了解详细信息。 +错误堆栈: + +Server stack trace: + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() + 在 System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) + 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) + 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) + +Exception rethrown at [0]: + 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) + 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) + 在 BLL.OAWebService.OfsTodoDataWebServicePortType.processDoneRequestByJson(String in0) + 在 BLL.OAWebService.OfsTodoDataWebServicePortTypeClient.processDoneRequestByJson(String in0) + 在 BLL.OAWebSevice.DoneRequest(String id) + 在 BLL.PhtglInvoiceService.Approve(String invoiceId, Int32 type, String userid, Boolean isAgree, String idea) + 在 FineUIPro.Mobile.PHTGL.InvoiceManage.InvoiceOrderDetail.btnDisgree_Click(Object sender, EventArgs e) 位置 D:\数据\诺必达\赛鼎\SGGL_SeDin\SGGL\FineUIPro.Mobile\PHTGL\InvoiceManage\InvoiceOrderDetail.aspx.cs:行号 212 + 在 FineUIPro.Button.OnClick(EventArgs e) + 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +----错误类型:WebException +----错误信息: +----无法连接到远程服务器 +----错误堆栈: + 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) + 在 System.Net.HttpWebRequest.GetRequestStream() + 在 System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() +--------错误类型:SocketException +--------错误信息: +--------由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 172.25.0.43:80 +--------错误堆栈: + 在 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) + 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception) +出错时间:05/12/2024 20:10:23 +出错文件:http://localhost:60276/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx?InvoiceId=f8087626-f2e5-4cee-8765-54a1a942aac8&Type=0&PersonId=e79671b9-6ea9-46c3-8aa1-b5ea057bd4bc +IP地址:::1 + +出错时间:05/12/2024 20:10:23 + diff --git a/SGGL/FineUIPro.Mobile/FineUIPro.Mobile.csproj b/SGGL/FineUIPro.Mobile/FineUIPro.Mobile.csproj index c4c16785..57b9f43d 100644 --- a/SGGL/FineUIPro.Mobile/FineUIPro.Mobile.csproj +++ b/SGGL/FineUIPro.Mobile/FineUIPro.Mobile.csproj @@ -143,6 +143,7 @@ + @@ -3385,6 +3386,13 @@ ContractReviewDetail.aspx + + InvoiceOrderDetail.aspx + ASPXCodeBehind + + + InvoiceOrderDetail.aspx + imageUp.ashx diff --git a/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx b/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx new file mode 100644 index 00000000..8f109b8b --- /dev/null +++ b/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx @@ -0,0 +1,179 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InvoiceOrderDetail.aspx.cs" Inherits="FineUIPro.Mobile.PHTGL.InvoiceManage.InvoiceOrderDetail" %> + + + + + + + + + + +
+
+ + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + diff --git a/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.cs b/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.cs new file mode 100644 index 00000000..fb299fc6 --- /dev/null +++ b/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.cs @@ -0,0 +1,228 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Mobile.PHTGL.InvoiceManage +{ + public partial class InvoiceOrderDetail : PageBase + { + public string InvoiceId + { + get + { + return (string)ViewState["InvoiceId"]; + } + set + { + ViewState["InvoiceId"] = value; + } + } + public string Type + { + get + { + return (string)ViewState["Type"]; + } + set + { + ViewState["Type"] = value; + } + } + public string PersonId + { + get + { + PersonId = Request.Params["PersonId"]; + return (string)ViewState["PersonId"]; + } + set + { + ViewState["PersonId"] = value; + } + } + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + InvoiceId = Request.QueryString["InvoiceId"]; + Type = Request.QueryString["Type"]; + + Model.PHTGL_Invoice table = new Model.PHTGL_Invoice(); + table.InvoiceId = InvoiceId; + var invoiceModel = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(InvoiceId); + var ContractModel = BLL.ContractService.GetContractById(invoiceModel.ContractId); + + if (invoiceModel != null) + { + txtProjectName.Text = ProjectService.GetProjectNameByProjectId(invoiceModel.ProjectId); + txtContractNum.Text = ContractModel?.ContractNum; + txtSellerName.Text = invoiceModel.SellerName; + txtOrderInDate.SelectedDate = invoiceModel.OrderInDate; + txtInvoiceDate.Text = invoiceModel.InvoiceDate; + txtOrderCode.Text = invoiceModel.OrderCode; + txtInvoiceNumber.Text = invoiceModel.InvoiceNumber; + txtOrderOutDate.SelectedDate = invoiceModel.OrderOutDate; + txtMaterialRequisitionUnit.Text = invoiceModel.MaterialRequisitionUnit; + } + + BindGrid(); + BindApproveData(); + if (Type == "0") + { + Grid1.Title = "入库单列表"; + PanelOrderIn.Hidden = false; + } + else if (Type == "1") + { + PanelOrderOut.Hidden = false; + Grid1.Title = "出库单列表"; + } + + if (invoiceModel.CreateUser == PersonId) //创建人 + { + // TbCreate.Hidden = false; + if (invoiceModel.State > PhtglInvoiceService.StateCreate) + { + Form_approve.Hidden = false; + } + } + + if (PHTGL_ApproveService.IsApprovingMan(InvoiceId, PersonId)) //判断当前人是否审批人 + { + TbApprove.Hidden = false; + Form_approve.Hidden = false; + + } + } + } + + public void BindApproveData() + { + var approveModel = PHTGL_ApproveService.GetAllApproveData(InvoiceId, Type == "0" ? "Invoice_Input" : "Invoice_Output"); + if (approveModel != null) + { + Grid2.DataSource = approveModel; + Grid2.DataBind(); + } + } + public void BindGrid() + { + var invoiceDetail = PhtglInvoicedetailService.GetPHTGL_InvoiceDetailByInvoiceId(InvoiceId); + Grid1.DataSource = invoiceDetail; + Grid1.DataBind(); + txtSumUnitPrice.Text = invoiceDetail.Sum(p => p.UnitPrice).ToString(); + txtSumTax.Text = invoiceDetail.Sum(p => p.Tax).ToString(); + txtSumAmount.Text = invoiceDetail.Sum(p => p.Amount).ToString(); + txtAmountInWords.Text = Funs.NumericCapitalization(invoiceDetail.Sum(p => p.Amount) ?? 0); + } + + + protected void Grid1_OnRowCommand(object sender, GridCommandEventArgs e) + { + if (e.CommandName == "delete") + { + PhtglInvoicedetailService.DeletePHTGL_InvoiceDetailById(e.RowID); + BindGrid(); + } + } + + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + if (Type == "1") + { + Grid1.FindColumn("btnDelete").Hidden = true; + } + } + + protected string GetTaxRate(object eval) + { + string result = ""; + if (eval != null) + { + decimal taxRate = Convert.ToDecimal(eval); + string percentage = string.Format("{0:P0}", taxRate); + result = percentage.Replace("%", ""); + } + return result; + } + + protected string GetNoTaxPrice(object amount, object tax) + { + //获取amount-tax 的值 + string result = ""; + if (amount != null && tax != null) + { + decimal amountValue = Convert.ToDecimal(amount); + decimal taxValue = Convert.ToDecimal(tax); + decimal noTaxPrice = amountValue - taxValue; + result = noTaxPrice.ToString(); + } + return result; + } + + protected void btnSave_Click(object sender, EventArgs e) + { + var invoiceModel = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(InvoiceId); + invoiceModel.OrderInDate = txtOrderInDate.SelectedDate; + invoiceModel.OrderOutDate = txtOrderOutDate.SelectedDate; + invoiceModel.OrderCode = txtOrderCode.Text; + invoiceModel.MaterialRequisitionUnit = txtMaterialRequisitionUnit.Text; + BLL.PhtglInvoiceService.UpdatePHTGL_Invoice(invoiceModel); + ShowNotify("保存成功!", MessageBoxIcon.Success); + } + + protected void btnEditProcess_Click(object sender, EventArgs e) + { + if (Type == "0") + { + + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InvoiceOrderReviewEdit.aspx?InvoiceId={0}&&Type={1}", InvoiceId, "0", "编辑 - "))); + } + else if (Type == "1") + { + + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InvoiceOrderReviewEdit.aspx?InvoiceId={0}&&Type={1}", InvoiceId, "1", "编辑 - "))); + } + } + + protected void btnAgree_Click(object sender, EventArgs e) + { + PhtglInvoiceService.Approve(InvoiceId, int.Parse(Type), PersonId, true, txtApproveIdea.Text); + ShowNotify("审批成功!", MessageBoxIcon.Success); + if (!string.IsNullOrEmpty(Request.Params["PHTUrl"])) + { + PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); + PageContext.RegisterStartupScript("closeActiveTab();"); + + } + else + { + PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); + + } + + } + + protected void btnDisgree_Click(object sender, EventArgs e) + { + PhtglInvoiceService.Approve(InvoiceId, int.Parse(Type), PersonId, false, txtApproveIdea.Text); + ShowNotify("审批成功!", MessageBoxIcon.Success); + if (!string.IsNullOrEmpty(Request.Params["PHTUrl"])) + { + PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); + PageContext.RegisterStartupScript("closeActiveTab();"); + + } + else + { + PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); + + } + + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.designer.cs b/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.designer.cs new file mode 100644 index 00000000..65eca825 --- /dev/null +++ b/SGGL/FineUIPro.Mobile/PHTGL/InvoiceManage/InvoiceOrderDetail.aspx.designer.cs @@ -0,0 +1,296 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Mobile.PHTGL.InvoiceManage +{ + + + public partial class InvoiceOrderDetail + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// TbApprove 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar TbApprove; + + /// + /// btnAgree 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAgree; + + /// + /// btnDisgree 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnDisgree; + + /// + /// Panel4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel4; + + /// + /// txtProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProjectName; + + /// + /// txtContractNum 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtContractNum; + + /// + /// txtSellerName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtSellerName; + + /// + /// PanelOrderIn 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel PanelOrderIn; + + /// + /// txtOrderInDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtOrderInDate; + + /// + /// txtInvoiceDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtInvoiceDate; + + /// + /// txtOrderCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtOrderCode; + + /// + /// PanelOrderOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel PanelOrderOut; + + /// + /// txtOrderOutDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtOrderOutDate; + + /// + /// txtMaterialRequisitionUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtMaterialRequisitionUnit; + + /// + /// txtInvoiceNumber 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtInvoiceNumber; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// lblPageIndex 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblPageIndex; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// txtSumUnitPrice 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtSumUnitPrice; + + /// + /// txtSumTax 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtSumTax; + + /// + /// txtSumAmount 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtSumAmount; + + /// + /// txtAmountInWords 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtAmountInWords; + + /// + /// Form_approve 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form_approve; + + /// + /// txtApproveIdea 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtApproveIdea; + + /// + /// Grid2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid2; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label3; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + } +} diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/发票导入模版.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataIn/发票导入模版.xlsx index 2916650c5dc9ba74b47a399a401ae17add81a21a..b70122e646b9199503d7262543316e591e4f3bb9 100644 GIT binary patch delta 4658 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 diff --git a/SGGL/FineUIPro.Web/File/Fastreport/发票存货入库单.frx b/SGGL/FineUIPro.Web/File/Fastreport/发票存货入库单.frx new file mode 100644 index 00000000..8a323cc9 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/发票存货入库单.frx @@ -0,0 +1,279 @@ + + + using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Drawing; +using System.Data; +using FastReport; +using FastReport.Data; +using FastReport.Dialog; +using FastReport.Barcode; +using FastReport.Table; +using FastReport.Utils; + +namespace FastReport +{ + public class ReportScript + { + + + private void Table4_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("Table1"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Table4.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Table4.PrintColumns(); + + // now enumerate the data source and print the table body + + // print the table body + Table4.PrintRow(1); + Table4.PrintColumns(); + Table4.PrintRow(2); + Table4.PrintColumns(); + Table4.PrintRow(3); + Table4.PrintColumns(); + Table4.PrintRow(4); + Table4.PrintColumns(); + // go next data source row + rowData.Next(); + + } + + private void Table6_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("ApproveInData"); + // init the data source + rowData.Init(); + Table6.PrintRow(0); + Table6.PrintColumns(); + Table6.PrintRow(1); + Table6.PrintColumns(); + rowData.Next(); + } + + + private int x; + private void Tabel_Data_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("Data"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Tabel_Data.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Tabel_Data.PrintColumns(); + x=0; + // now enumerate the data source and print the table body + while (rowData.HasMoreRows) + { + x++; + // print the table body + Tabel_Data.PrintRow(1); + Tabel_Data.PrintColumns(); + + // go next data source row + rowData.Next(); + } + Tabel_Data.PrintRow(2); + Tabel_Data.PrintColumns(); + Tabel_Data.PrintRow(3); + Tabel_Data.PrintColumns(); + } + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/File/Fastreport/发票存货出库单.frx b/SGGL/FineUIPro.Web/File/Fastreport/发票存货出库单.frx new file mode 100644 index 00000000..35711973 --- /dev/null +++ b/SGGL/FineUIPro.Web/File/Fastreport/发票存货出库单.frx @@ -0,0 +1,304 @@ + + + using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Drawing; +using System.Data; +using FastReport; +using FastReport.Data; +using FastReport.Dialog; +using FastReport.Barcode; +using FastReport.Table; +using FastReport.Utils; + +namespace FastReport +{ + public class ReportScript + { + + + private void Table4_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("Table1"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Table4.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Table4.PrintColumns(); + + // now enumerate the data source and print the table body + + // print the table body + Table4.PrintRow(1); + Table4.PrintColumns(); + Table4.PrintRow(2); + Table4.PrintColumns(); + Table4.PrintRow(3); + Table4.PrintColumns(); + // go next data source row + rowData.Next(); + + } + + private void Table6_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("ApproveOutData"); + // init the data source + rowData.Init(); + Table6.PrintRow(0); + Table6.PrintColumns(); + Table6.PrintRow(1); + Table6.PrintColumns(); + Table6.PrintRow(2); + Table6.PrintColumns(); + Table6.PrintRow(3); + Table6.PrintColumns(); + rowData.Next(); + } + + + private int x; + private void Tabel_Data_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("Data"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Tabel_Data.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Tabel_Data.PrintColumns(); + x=0; + // now enumerate the data source and print the table body + while (rowData.HasMoreRows) + { + x++; + // print the table body + Tabel_Data.PrintRow(1); + Tabel_Data.PrintColumns(); + + // go next data source row + rowData.Next(); + } + Tabel_Data.PrintRow(2); + Tabel_Data.PrintColumns(); + Tabel_Data.PrintRow(3); + Tabel_Data.PrintColumns(); + } + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/PHTGL/InvoiceManage/InvoiceOrder.aspx b/SGGL/FineUIPro.Web/PHTGL/InvoiceManage/InvoiceOrder.aspx index 6a77951a..e2a3a800 100644 --- a/SGGL/FineUIPro.Web/PHTGL/InvoiceManage/InvoiceOrder.aspx +++ b/SGGL/FineUIPro.Web/PHTGL/InvoiceManage/InvoiceOrder.aspx @@ -30,31 +30,44 @@ - + - - - - <%-- + + + + <%-- - --%> - + --%> + + + + + + + + + + + + + - - + + - + - + -<%-- + + + + <%-- --%> - + @@ -102,15 +117,19 @@ - + - + +