commit 461d5141773f95069e94a8999b753e3cab92aa2c Author: yuyubo <1870149533@qq.com> Date: Mon Apr 7 21:06:39 2025 +0800 1 diff --git a/1.sql b/1.sql new file mode 100644 index 0000000..fd874db --- /dev/null +++ b/1.sql @@ -0,0 +1,522 @@ +ALter PROC [dbo].[GetTempModelData] +( + @FID NVARCHAR(100), + @FType NVARCHAR(100) +) +AS +DECLARE @FitemName NVARCHAR(1000) --纸质合同号 +DECLARE @YFitemName NVARCHAR(1000) --原纸质合同号 +DECLARE @SJFP NVARCHAR(1000) --税金及发票 +DECLARE @GPhone NVARCHAR(1000) --固定电话 +DECLARE @THDate NVARCHAR(1000) --退货日期 +DECLARE @YFDate NVARCHAR(1000) --原日期 +DECLARE @YFDateYear NVARCHAR(1000) -- 原日期 年 +DECLARE @YFDateMonth NVARCHAR(1000) -- 原日期 月 +DECLARE @YFDateDay NVARCHAR(1000) -- 原日期 日 +DECLARE @SYFitemName NVARCHAR(1000) --S原纸质合同号 +DECLARE @SYFDate NVARCHAR(1000) --S原日期 +DECLARE @SYFDateYear NVARCHAR(1000) -- S原日期 年 +DECLARE @SYFDateMonth NVARCHAR(1000) -- S原日期 月 +DECLARE @SYFDateDay NVARCHAR(1000) -- S原日期 日 +DECLARE @FContractFPhone NVARCHAR(1000) --纸质合同号 +DECLARE @FContract NVARCHAR(1000) --纸质合同号 +DECLARE @FCustAddress NVARCHAR(1000) --纸质合同号 +DECLARE @FPaymentMethod NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle2 NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle NVARCHAR(1000) --纸质合同号 +DECLARE @FContractNo NVARCHAR(1000) --纸质合同号 +DECLARE @FCustName NVARCHAR(1000) --甲方名称 +DECLARE @FDate NVARCHAR(1000) -- 日期 +DECLARE @FDateYear NVARCHAR(1000) -- 日期 年 +DECLARE @FDateMonth NVARCHAR(1000) -- 日期 月 +DECLARE @FDateDay NVARCHAR(1000) -- 日期 日 +DECLARE @CreatedName NVARCHAR(1000) -- 创建人 +DECLARE @FTaxAmountText NVARCHAR(1000) +DECLARE @FTaxAmount NVARCHAR(1000) +DECLARE @FItem NVARCHAR(1000) +DECLARE @FAddressAndPhone NVARCHAR(1000) +DECLARE @FDeliveryDate NVARCHAR(1000) +DECLARE @FlegalRepresentative NVARCHAR(1000) +DECLARE @FBank NVARCHAR(1000) +DECLARE @FBankAccount NVARCHAR(1000) +DECLARE @FFax NVARCHAR(1000) +DECLARE @FPhone NVARCHAR(1000) +DECLARE @FEMAIL NVARCHAR(1000) +DECLARE @FTax NVARCHAR(1000) +DECLARE @FItemData NVARCHAR(1000) +DECLARE @FJHAddressFContractPhone NVARCHAR(1000) +DECLARE @FAProjectManager NVARCHAR(1000) +DECLARE @FAProjectPhone NVARCHAR(1000) +DECLARE @FBProjectManager NVARCHAR(1000) +DECLARE @FBProjectPhone NVARCHAR(1000) +DECLARE @FDeliveryTime NVARCHAR(1000) +DECLARE @FSHADDRESS NVARCHAR(1000) +DECLARE @FProjectDeadline NVARCHAR(1000) +DECLARE @FSettleMethod NVARCHAR(1000) +DECLARE @FProductionAddress NVARCHAR(1000) +DECLARE @FPeriod NVARCHAR(1000) +DECLARE @FJHAddress NVARCHAR(1000) +DECLARE @FWarrantyPeriod NVARCHAR(1000) +DECLARE @FAddress NVARCHAR(1000) +DECLARE @FINFORMATION NVARCHAR(1000) +DECLARE @FStartDate NVARCHAR(1000) +DECLARE @FEndDate NVARCHAR(1000) +DECLARE @FSaleId NVARCHAR(1000) +DECLARE @FMONTH NVARCHAR(1000) --质保月份 +DECLARE @FMONTHYear NVARCHAR(1000) --质保年份 +DECLARE @Projectarea NVARCHAR(1000) --项目所属领域 +DECLARE @Province NVARCHAR(1000) --项目所属省份 +DECLARE @VPAYMENTMETHOD NVARCHAR(1000)--结算方式 +DECLARE @CreatedPhone NVARCHAR(1000)--创建人电话 +DECLARE @FDELIVERYCONDITIONS NVARCHAR(1000)--发货条件 +DECLARE @HFPaymentMethod NVARCHAR(1000)--付款方式 F_PaymentMethod +DECLARE @FNOTE NVARCHAR(1000)--备注单据头 +DECLARE @FSALEORGID NVARCHAR(1000)--销售订单组织 +DECLARE @SX01 NVARCHAR(1000)--SX合同 +DECLARE @SX02 NVARCHAR(1000)--SX合同 +DECLARE @SX03 NVARCHAR(1000)--SX合同 +DECLARE @SX04 NVARCHAR(1000)--SX合同 +DECLARE @SX05 NVARCHAR(1000)--SX合同 +DECLARE @SX06 NVARCHAR(1000)--SX合同 +DECLARE @SX07 NVARCHAR(1000)--SX合同 +DECLARE @SX08 NVARCHAR(1000)--SX合同 + +DECLARE @TH_001 NVARCHAR(1000)--公司名 +DECLARE @TH_002 NVARCHAR(1000)--地址 +DECLARE @TH_003 NVARCHAR(1000)--法定代表人 +DECLARE @TH_004 NVARCHAR(1000)--电话 +DECLARE @TH_005 NVARCHAR(1000)--传真 +DECLARE @TH_006 NVARCHAR(1000)--开户银行 +DECLARE @TH_007 NVARCHAR(1000)--账号 +DECLARE @TH_008 NVARCHAR(1000)--税号 + +--100302 珠海派诺 +--100303 珠海兴诺 +--100305 武汉派诺 +--438223 广东碳索 +--438224 香港派诺 +--533896 华夏云联 + +SELECT top 1 +@VPAYMENTMETHOD = A.F_VPAYMENTMETHOD, +@FDELIVERYCONDITIONS = (CASE WHEN A.F_DELIVERYCONDITIONS = '' THEN '' +ELSE SUBSTRING(A.F_DELIVERYCONDITIONS, CHARINDEX(',',A.F_DELIVERYCONDITIONS) + 1, LEN(A.F_DELIVERYCONDITIONS)) END), +@CreatedPhone = P.FPhone, + +@TH_001 =(CASE WHEN A.FSALEORGID=100302 THEN '珠海派诺科技股份有限公司' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '武汉派诺科技发展有限公司' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_002 =(CASE WHEN A.FSALEORGID=100302 THEN '珠海市唐家高新区创新海岸科技六路15号' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '武汉经济技术开发区川江池二路28号4号楼A501' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_003 =(CASE WHEN A.FSALEORGID=100302 THEN '李健' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_004 =(CASE WHEN A.FSALEORGID=100302 THEN '0756-3629690' --电话 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '027-87508171' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_005 =(CASE WHEN A.FSALEORGID=100302 THEN '0756-3629670' --传真 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_006 =(CASE WHEN A.FSALEORGID=100302 THEN '工商银行珠海分行营业部' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '招商银行股份有限公司武汉经济技术开发区支行' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_007 =(CASE WHEN A.FSALEORGID=100302 THEN '2002 0207 19100 0780 51' --账号 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '1279 1590 4410 401' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_008 =(CASE WHEN A.FSALEORGID=100302 THEN '91321191588407302A' --税号 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '91420100MA4F4JX60A' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@SX01 = A.F_VRYF_Text_ne11, +@SX02 = A.F_VRYF_Text_6oq, +@SX03 = A.F_VRYF_Text_pzg, +@SX04 = A.F_VRYF_Text_795, +@SX05 = A.F_VRYF_Remarks_43c, +@SX06 = A.F_VRYF_Remarks_43c_s58, +@SX07 = A.F_VRYF_Remarks_43c_9uj, +@SX08 = A.F_VRYF_Remarks_43c_bgx, +@HFPaymentMethod = A.F_PaymentMethod+',', +@FStartDate=F_TGKSRQ, +@FEndDate =F_TGJSRQ, +@FNOTE = A.FNOTE, +@FAddress=F_VRYF_Text_fg2, +@FJHAddress =F_Shippingaddress, +@FContractNo= F_contractnumber, +@FTaxAmount=FORMAT(b.FBillAllAmount, 'N2') , +@FDate=convert(nvarchar(10), A.FDATE ,23), +@FDateYear=Year(A.FDATE),--年 +@FDateMonth=Month(A.FDATE),--月 +@FDateDay=DAY(A.FDATE),--日 +@FCustName=isnull(C.FNAME,''), +@FItem=isnull(D.FNAME,''), +@FAddressAndPhone=CONCAT( e.FADDRESS,' ',FLinkMan,' ',FLinkPhone), +@FlegalRepresentative=isnull(e.FLegalPerson,''), +@FBank=isnull(L.FINVOICEBANKNAME,''), +@FBankAccount=isnull(L.FINVOICEBANKACCOUNT,''), +@FTax=isnull(e.FTAXREGISTERCODE,''), +@FFax=isnull(e.FFAX,''), +@FTaxAmountText=dbo.ConvertAmountToChineseWords(b.FBillAllAmount), +@FEMAIL=isnull(g.FEMAIL,''), +@FProductionCycle= F_SCZQ, +@FProductionCycle2 =F_Deliverymethod, +@FPaymentMethod =ISNULL(N.FNAME+',',''), +@FCustAddress=e.FADDRESS, +@FContract=H.FNAME, +@FitemName =H.FNAME, +@FContractFPhone = g.FTEL, +@FPhone = e.FTEL, +@FitemName= I.FNAME, +@FItemData = A.F_VRYF_Text_fg2, +@FJHAddressFContractPhone = F_Shippingaddress, +@FAProjectManager = a.F_ProjectManager , +@FAProjectPhone = a.F_Contactnumber , +@FBProjectManager = a.F_VRYF_TEXT_UKY , +@FBProjectPhone = a.F_VRYF__Contactnumber_dvn , +@FDeliveryTime=F_FHSJ, +@FProjectDeadline = F_ProjectDeadli , +@FPeriod = J.FDATAVALUE , +@FWarrantyPeriod = J.FDATAVALUE, +@FMONTH = FLOOR(A.F_MONTH), +@FMONTHYear = FLOOR(A.F_MONTH/12), +@FSaleId = K.FNAME, +@FSALEORGID = Q.FNAME, +@Projectarea = (CASE WHEN O.F_PROJECTFIELD = 1 THEN '建筑楼宇' +WHEN O.F_PROJECTFIELD = 2 THEN '医疗卫生' +WHEN O.F_PROJECTFIELD = 3 THEN '学校' +WHEN O.F_PROJECTFIELD = 4 THEN '文娱康乐' +WHEN O.F_PROJECTFIELD = 5 THEN '市政工程' +WHEN O.F_PROJECTFIELD = 6 THEN '能源' +WHEN O.F_PROJECTFIELD = 7 THEN '工业' +WHEN O.F_PROJECTFIELD = 8 THEN '交通运输' +END ), +@Province = O.F_Province, +@FINFORMATION = A.F_INFORMATION, +@CreatedName = P.FNAME, +@GPhone = P.F_GPhone, +@THDate = A.F_THDate, +@SJFP = A.F_SJFP + +FROM T_SAL_ORDER A +INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID +--INNER JOIN T_SAL_ORDERENTRY BB ON A.FID = BB.FID +LEFT JOIN T_BD_CUSTOMER_L C ON C.FCUSTID =A.FCUSTID AND C.FLOCALEID =2052 +LEFT JOIN T_BD_CUSTOMER E ON E.FCUSTID =A.FCUSTID +LEFT JOIN T_BAS_PREBDONE_L D ON D.FID = A.F_projectname AND D.FLocaleID =2052 +LEFT JOIN T_BD_CUSTBANK F ON F.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_CUSTOMER_F L ON L.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_COMMONCONTACT g on g.FCOMPANY = e.FCUSTID and g.FISDEFAULTCONTACT =1 +LEFT JOIN T_BD_COMMONCONTACT_L H on H.FCONTACTID =G.FCONTACTID AND H.FLOCALEID =2052 +LEFT JOIN T_BAS_PREBDONE_L I ON I.FID = A.F_projectname +LEFT JOIN V_ASSISTANTDATA J ON J.FENTRYID=A.F_ZBQ +left join V_BD_SALESMAN_L K ON K.FID = A.FSALERID +LEFT JOIN T_SAL_ORDERPLAN M ON M.FID =A.FID AND M.FSEQ = 1 +LEFT JOIN T_BD_RecCondition_L N on N.FID = M.F_RecConditionId +LEFT JOIN T_BAS_PREBDTHREE O on O.FID = A.F_BON +LEFT JOIN T_SEC_USER P on A.FCreatorId = P.FUSERID +LEFT JOIN T_ORG_ORGANIZATIONS_L Q on Q.FORGID = A.FSALEORGID +--LEFT JOIN (Select B.FDATE,A.FENTRYID From T_SAL_ORDERENTRY_LK A +--JOIN T_SAL_ORDER B on A.FSBILLID = B.FID) P on P.FENTRYID = BB.FENTRYID +WHERE A.FID =@FID; +--2025/01/09 改动 --↓ +SELECT top 1 +@YFitemName = F_CONTRACTNUMBER, +@YFDate = convert(nvarchar(10), FDATE ,23), +@YFDateYear=Year(FDATE),--年 +@YFDateMonth=Month(FDATE),--月 +@YFDateDay=DAY(FDATE)--日 +From T_SAL_ORDER Where FID = +(SELECT top 1 FSBILLID From +T_SAL_ORDERENTRY A +JOIN T_SAL_ORDERENTRY_LK B +on A.FENTRYID = B.FENTRYID +Where A.FID = @FID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY') +--2025/01/09 改动 --↑ + +--2025/01/12 改动 --↓ +SELECT top 1 +@SYFitemName = F_CONTRACTNUMBER, +@SYFDate = convert(nvarchar(10), FDATE ,23), +@SYFDateYear=Year(FDATE),--年 +@SYFDateMonth=Month(FDATE),--月 +@SYFDateDay=DAY(FDATE)--日 +From T_SAL_ORDER Where F_CONTRACTNUMBER = +(Select top 1 F_ZHTH From T_SAL_ORDER Where FID = @FID) +--2025/01/12 改动 --↑ + +;with t as( +SELECT A.FID, +CONCAT(RANK()OVER(PARTITION BY A.FID ORDER BY A.FSEQ) ,'、',B.FDESCRIPTION,' ',CAST( a.F_day AS REAL),'天',' ', +CAST( A.FRECADVANCERATE AS REAL),'%') AS '付款条件' +FROM T_SAL_ORDERPLAN A +INNER JOIN T_SAL_ORDER C ON C.FID = A.FID +INNER JOIN T_BD_RecCondition_L b on a.F_RecConditionId = b.fid +WHERE a.fid =@fid +) +, +H AS( +SELECT FID, -- 分组的主键 +STUFF( +( +SELECT ','+ CONVERT(NVARCHAR(100), 付款条件,120) -- 要拼接的列 +FROM t a WHERE b.FID = a.FID FOR XML PATH('') +),1 ,1, '') 付款条件 +FROM t b +GROUP BY FID +) +SELECT @FSettleMethod =付款条件 FROM H + --@VPAYMENTMETHOD + +select 'TH_001' as 'Key' ,isnull(@TH_001,'') as 'VALUE' +union all +select 'TH_002' as 'Key' ,isnull(@TH_002,'') as 'VALUE' +union all +select 'TH_003' as 'Key' ,isnull(@TH_003,'') as 'VALUE' +union all +select 'TH_004' as 'Key' ,isnull(@TH_004,'') as 'VALUE' +union all +select 'TH_005' as 'Key' ,isnull(@TH_005,'') as 'VALUE' +union all +select 'TH_006' as 'Key' ,isnull(@TH_006,'') as 'VALUE' +union all +select 'TH_007' as 'Key' ,isnull(@TH_007,'') as 'VALUE' +union all +select 'TH_008' as 'Key' ,isnull(@TH_008,'') as 'VALUE' +union all +select 'F_VRYF_Text_ne11' as 'Key' ,isnull(@SX01,'') as 'VALUE' +union all +select 'F_VRYF_Text_ne11' as 'Key' ,isnull(@SX01,'') as 'VALUE' +union all +select 'F_VRYF_Text_6oq' as 'Key' ,isnull(@SX02,'') as 'VALUE' +union all +select 'F_VRYF_Text_pzg' as 'Key' ,isnull(@SX03,'') as 'VALUE' +union all +select 'F_VRYF_Text_795' as 'Key' ,isnull(@SX04,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c' as 'Key' ,isnull(@SX05,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c_s58' as 'Key' ,isnull(@SX06,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c_9uj' as 'Key' ,isnull(@SX07,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c_bgx' as 'Key' ,isnull(@SX08,'') as 'VALUE' +union all +select 'FSaleId' as 'Key' ,isnull(@FSaleId,'') as 'VALUE' +union all +select 'FSALEORGID' as 'Key' ,isnull(@FSALEORGID,'') as 'VALUE' +union all +select 'SJFP' as 'Key' ,isnull(@SJFP,'') as 'VALUE' +union all +select 'THDate' as 'Key' ,isnull(@THDate,'') as 'VALUE' +union all +select 'GPhone' as 'Key' ,isnull(@GPhone,'') as 'VALUE' +union all +select 'FNOTE' as 'Key' ,@FNOTE as 'VALUE' +union all +select 'YFContractNo' as 'Key' ,@YFitemName as 'VALUE' +union all +select 'YFDate' as 'Key' ,isnull(@YFDate,'') as 'VALUE' +union all +select 'YFDateYear' as 'Key' ,isnull(@YFDateYear,'') as 'VALUE' +union all +select 'YFDateMonth' as 'Key' ,isnull(@YFDateMonth,'') as 'VALUE' +union all +select 'YFDateDay' as 'Key' ,isnull(@YFDateDay,'') as 'VALUE' +union all +select 'SYFContractNo' as 'Key' ,@SYFitemName as 'VALUE' +union all +select 'SYFDate' as 'Key' ,isnull(@SYFDate,'') as 'VALUE' +union all +select 'SYFDateYear' as 'Key' ,isnull(@SYFDateYear,'') as 'VALUE' +union all +select 'SYFDateMonth' as 'Key' ,isnull(@SYFDateMonth,'') as 'VALUE' +union all +select 'SYFDateDay' as 'Key' ,isnull(@SYFDateDay,'') as 'VALUE' +union all +select 'Province' as 'Key' ,Isnull(@Province,'') as 'VALUE' +union all +select 'VPAYMENTMETHOD' as 'Key' ,Isnull(@VPAYMENTMETHOD,'') as 'VALUE' +union all +select 'Projectarea' as 'Key' ,Isnull(@Projectarea,'') as 'VALUE' +union all +select 'FMONTH' as 'Key' ,@FMONTH as 'VALUE' +union all +select 'FStartDate' as 'Key' ,isnull(@FStartDate,'') as 'VALUE' +union all +select 'FEndDate' as 'Key' ,isnull(@FEndDate,'') as 'VALUE' +union all +select 'FAddress' as 'Key' ,isnull(@FAddress,'') as 'VALUE' +union all +select 'FWarrantyPeriod' as 'Key' ,isnull(@FWarrantyPeriod,'') as 'VALUE' +union all +select 'HFPaymentMethod' as 'Key' ,@HFPaymentMethod as 'VALUE' +union all +select 'FDELIVERYCONDITIONS' as 'Key' ,@FDELIVERYCONDITIONS as 'VALUE' +union all +select 'CreatedName' as 'Key' ,@CreatedName as 'VALUE' +union all +select 'CreatedPhone' as 'Key',@CreatedPhone as 'VALUE' +union all +select 'FINFORMATION' as 'Key' ,Isnull(@FINFORMATION,'') as 'VALUE' +union all +select 'FMONTHYear' as 'Key' ,Isnull(@FMONTHYear,'') as 'VALUE' +union all +select 'FJHAddress' as 'Key' ,isnull(@FJHAddress,'') as 'VALUE' +union all +select 'FPeriod' as 'Key' ,isnull(@FPeriod,'') as 'VALUE' +union all +select 'FItemName' as 'Key' ,isnull(@FitemName,'') as 'VALUE' +UNION ALL +select 'FSettleMethod' as 'Key' ,isnull(@FSettleMethod,'') as 'VALUE' +UNION ALL +select 'FProjectDeadline' as 'Key' ,@FProjectDeadline as 'VALUE' +UNION ALL +select 'FDeliveryTime' as 'Key' ,@FDeliveryTime as 'VALUE' +UNION ALL +select 'FAProjectManager' as 'Key' ,@FAProjectManager as 'VALUE' +UNION ALL +select 'FAProjectPhone' as 'Key' ,@FAProjectPhone as 'VALUE' +UNION ALL +select 'FBProjectManager' as 'Key' ,@FBProjectManager as 'VALUE' +UNION ALL +select 'FBProjectPhone' as 'Key' ,@FBProjectPhone as 'VALUE' +UNION ALL +select 'FJHAddressFContractPhone' as 'Key' ,@FJHAddressFContractPhone as 'VALUE' +UNION ALL +select 'FItemData' as 'Key' ,@FItemData as 'VALUE' +UNION ALL +select 'FitemName' as 'Key' ,@FitemName as 'VALUE' +UNION ALL +select 'FFax' as 'Key' ,@FFax as 'VALUE' +UNION ALL +select 'FContractPhone' as 'Key' ,@FContractFPhone as 'VALUE' +UNION ALL +select 'FContract' as 'Key' ,@FContract as 'VALUE' +UNION ALL +select 'FCustAddress' as 'Key' ,@FCustAddress as 'VALUE' +UNION ALL +select 'FPaymentMethod' as 'Key' ,@FPaymentMethod as 'VALUE' +UNION ALL +select 'FProductionCycle2' as 'Key' ,@FProductionCycle2 as 'VALUE' +UNION ALL +select 'FProductionCycle' as 'Key' ,@FProductionCycle as 'VALUE' +UNION ALL +select 'FContractNo' as 'Key' ,@FContractNo as 'VALUE' +UNION ALL +select 'FCustName' as 'Key' ,@FCustName as 'VALUE' +UNION ALL +select 'FDate' as 'Key' ,@FDate as 'VALUE' +UNION ALL +select 'FDateYear' as 'Key' ,@FDateYear as 'VALUE' +UNION ALL +select 'FDateMonth' as 'Key' ,@FDateMonth as 'VALUE' +UNION ALL +select 'FDateDay' as 'Key' ,@FDateDay as 'VALUE' +UNION ALL +select 'FTaxAmountText' as 'Key' ,@FTaxAmountText as 'VALUE' +UNION ALL +select 'FTaxAmount' as 'Key' ,@FTaxAmount as 'VALUE' +UNION ALL +select 'FItem' as 'Key' ,@FItem as 'VALUE' +UNION ALL +select 'FAddressAndPhone' as '@FAddressAndPhone' ,@FCustName as 'VALUE' +UNION ALL +select 'FDeliveryDate' as 'Key' ,@FDeliveryDate as 'VALUE' +UNION ALL +select 'FlegalRepresentative' as 'Key' ,@FlegalRepresentative as 'VALUE' +UNION ALL +select 'FBank' as 'Key' ,@FBank as 'VALUE' +UNION ALL +select 'FBankAccount' as 'Key' ,@FBankAccount as 'VALUE' +UNION ALL +select 'FTax' as 'Key' ,@FTax as 'VALUE' +UNION ALL +select 'FPhone' as 'Key' ,@FPhone as 'VALUE' +UNION ALL +select 'FEmial' as 'Key' ,@FEMAIL as 'VALUE' +UNION ALL +select 'FEMAIL' as 'Key' ,@FEMAIL as 'VALUE' + + +SELECT fseq,B.fname,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A' + +SELECT rank()over(partition by a.fid ,a.F_Projecttype order by a.fseq desc) as 'fseq',B.fname,b.FSPECIFICATION,E.F_103,FLOOR(A.FQTY),C.FNAME, +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE,F_Projecttype as 'FType', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID ),2),'N2') AS 'FALLAMOUNT', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID,F_Projecttype) ,2), 'N2') AS 'FALLAMOUNT2' +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_MATERIAL E ON E.FMATERIALID = A.FMATERIALID +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A' +ORDER BY a.F_Projecttype ,a.fseq DESC + +Select ROW_NUMBER() OVER (ORDER BY B.FRETURNTYPE) AS ID,CASE WHEN B.FRETURNTYPE = 'SEND' THEN '换货' ELSE '退货' END as 'FRETURNTYPE' +,C.FSPECIFICATION,D.FNAME,FLOOR(B.FQTY),FORMAT(E.FTAXPRICE,'N2'),FORMAT(E.FALLAMOUNT_LC,'N2') From T_SAL_ORDER A JOIN T_SAL_ORDERENTRY B +on A.FID = B.FID INNER JOIN T_BD_MATERIAL_L C ON C.FMATERIALID = B.FMATERIALID AND C.FLOCALEID =2052 INNER JOIN T_BD_UNIT_L D ON D.FUNITID =B.FUNITID +AND D.FLOCALEID =2052 INNER JOIN T_SAL_ORDERENTRY_F E ON E.FENTRYID =B.FENTRYID Where --A.FID = @FID AND B.FMRPCLOSESTATUS = 'A' +(ISNULL(A.FCHANGEDATE,'') = '' AND A.FID = @FID) or (A.FID = @FID AND B.FMRPCLOSESTATUS = 'A') + +SELECT fseq,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A' + +--EXEC GetTempModelData @FID = 101521,@FType = 'HH' +--Select * From T_TempModelPath +--Update T_TempModelPath set FTempPath = 'D:\模板\SX系统模板.docx' Where FKeyId = 'SX' +--Update T_SAL_ORDER set FDocumentStatus = 'D' Where FBILLNO = 'PL-XSDD20250100011' +--Select * From V_BD_SALESMAN_L Where FNAME = '杜丽菊' + +Select * From T_SAL_QUOTATION Where FBILLNO = '' \ No newline at end of file diff --git a/Pilot_KD_Parino.sln b/Pilot_KD_Parino.sln new file mode 100644 index 0000000..dc786f7 --- /dev/null +++ b/Pilot_KD_Parino.sln @@ -0,0 +1,25 @@ +锘 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35327.3 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pilot_KD_Parino", "Pilot_KD_Parino\Pilot_KD_Parino.csproj", "{D8751053-74AF-4619-A5BE-939ADFF10991}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D8751053-74AF-4619-A5BE-939ADFF10991}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D8751053-74AF-4619-A5BE-939ADFF10991}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D8751053-74AF-4619-A5BE-939ADFF10991}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D8751053-74AF-4619-A5BE-939ADFF10991}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2FBF6E92-7A31-4F97-92E5-06708A39F5AD} + EndGlobalSection +EndGlobal diff --git a/Pilot_KD_Parino/Common/CombinaAddClass1.cs b/Pilot_KD_Parino/Common/CombinaAddClass1.cs new file mode 100644 index 0000000..6e8da0d --- /dev/null +++ b/Pilot_KD_Parino/Common/CombinaAddClass1.cs @@ -0,0 +1,93 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Common +{ + /// + /// 瀛樺偍閿鍞鍗/搴旀敹鍗 + /// + public class CombinaAddClass1 + { + /// + /// 绾歌川鍚堝悓鍙 + /// + public string FCONTRACTNUMBER { get; set; } + /// + /// 瀹㈡埛鍚嶇О + /// + public int FClient { get; set; } + /// + /// 鍟嗗姟浜哄憳 + /// + public int FCreated { get; set; } + /// + /// 閿鍞憳 + /// + public int FSalesman { get; set; } + /// + /// 閿鍞棩鏈 + /// + public string FDate { get; set; } + /// + /// 鏍搁攢閲戦 + /// + public decimal FALLAMOUNT { get; set; } + /// + /// 鍗曟嵁缂栧彿 + /// + public string FBIllNO { get; set; } + /// + /// 绫诲瀷 + /// + public string FType { get; set; } + /// + /// 鏀舵鍗曞垪琛 + /// + public List SKList { get; set; } = new List(); + } + /// + /// 瀛樺偍鏀舵鍗 + /// + public class CombinaAddSK + { + /// + /// 绾歌川鍚堝悓鍙 + /// + public string FCONTRACTNUMBER { get; set; } + /// + /// 瀹㈡埛鍚嶇О + /// + public int FClient { get; set; } + /// + /// 鍟嗗姟浜哄憳 + /// + public int FCreated { get; set; } + /// + /// 閿鍞憳 + /// + public int FSalesman { get; set; } + /// + /// 鏀舵鏃ユ湡 + /// + public string FDate { get; set; } + /// + /// 鏍搁攢閲戦 + /// + public decimal FALLAMOUNT { get; set; } + /// + /// 鏀舵鍗曞彿 + /// + public string FBIllNO { get; set; } + /// + /// 澶囨敞 + /// + public string FRemark { get; set; } + /// + /// 閿鍞鍗/搴旀敹鍗曞垪琛 + /// + public List XSAPList { get; set; } = new List(); + } +} diff --git a/Pilot_KD_Parino/Common/CombinaClass.cs b/Pilot_KD_Parino/Common/CombinaClass.cs new file mode 100644 index 0000000..e07684d --- /dev/null +++ b/Pilot_KD_Parino/Common/CombinaClass.cs @@ -0,0 +1,171 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Common +{ + public class DataItem + { + /// + /// 鍗曟嵁缂栧彿 + /// + public List FBIllNO2 { get; set; } + + /// + /// 绾歌川鍚堝悓鍙 + /// + public string FCONTRACTNUMBER2 { get; set; } + + /// + /// 瀹㈡埛鍚嶇О + /// + public List FClient2 { get; set; } + + /// + /// 瀹㈡埛鍚嶇О + /// + public int FClient { get; set; } + + /// + /// 椤圭洰鍚嶇О + /// + public int FProject2 { get; set; } + + /// + /// 鍒跺崟浜 + /// + public int FCreated2 { get; set; } + + /// + /// 澶囨敞 + /// + public string FRemark2 { get; set; } + + /// + /// 鍗曟嵁缂栧彿 + /// + public List FBIllNO { get; set; } + + /// + /// 鏃ユ湡 + /// + public string FDate { get; set; } + + /// + /// 閲戦 + /// + public double FALLAMOUNT { get; set; } + + /// + /// 甯佸埆 + /// + public int FCurr2 { get; set; } + + /// + /// 閲戦锛堝師甯侊級 + /// + public double FALLAMOUNTY2 { get; set; } + } + public class CombinaClass + { + /// + /// 琛屽彿 + /// + public int FRow { get; set; } + /// + /// 琛岀骇 + /// + public int F_RowNew { get; set; } + /// + /// 绾歌川鍚堝悓鍙 + /// + public string FCONTRACTNUMBER { get; set; } + + /// + /// 瀹㈡埛鍚嶇О + /// + public int FClient { get; set; } + + /// + /// 椤圭洰鍚嶇О + /// + public int FProject { get; set; } + + /// + /// 鍒跺崟浜 + /// + public int FCreated { get; set; } + + /// + /// 甯佸埆 + /// + public int FCurr { get; set; } + + /// + /// 鍗曟嵁缂栧彿 + /// + public string FBIllNO { get; set; } + + /// + /// 鍗曟嵁缂栧彿(鏀舵鍗) + /// + public string FSKBIllNO { get; set; } + + /// + /// 鏃ユ湡 + /// + public string FDate { get; set; } + + /// + /// 鏄惁鏍搁攢閰嶅 + /// + public string FISHX { get; set; } + + /// + /// 閲戦 + /// + public double FALLAMOUNT { get; set; } + + /// + /// 宸叉牳閿閲戦 + /// + public double FYAMOUNT { get; set; } + + /// + /// 寰呮牳閿閲戦 + /// + public double FDAMOUNT { get; set; } + + /// + /// 閲戦锛堝師甯侊級 + /// + public double FALLAMOUNTY { get; set; } + + /// + /// 鏄惁瓒呰繃30澶 + /// + public bool FIs30 { get; set; } + + /// + /// 绫诲瀷 + /// + public string FType { get; set; } + + /// + /// 澶囨敞 + /// + public string FRemark { get; set; } + + /// + /// 鏄惁鍞竴 + /// + public string FWeiYi { get; set; } + + /// + /// 閿鍞憳 + /// + public int FSalesman { get; set; } + } +} diff --git a/Pilot_KD_Parino/Common/CombinationGenerator.cs b/Pilot_KD_Parino/Common/CombinationGenerator.cs new file mode 100644 index 0000000..9ecf398 --- /dev/null +++ b/Pilot_KD_Parino/Common/CombinationGenerator.cs @@ -0,0 +1,192 @@ +锘縰sing Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Common +{ + public class CombinationGenerator + { + + + public static List DeleteCombinationsDataByList(List List, List FBILLNO) + { + foreach (var item in FBILLNO) + { + List.RemoveAll(t => t.FBIllNO.Contains(item)); + } + return List; + } + + + + public static List GetCombinationsDataByList(List List, double FAllAmount, int FClient) + { + return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList(); + } + + public static List GetCombinationsDataByListTK(List List, double FAllAmount, int FClient) + { + var TestList = List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList(); + foreach (var item in TestList) + { + var fbnumber = item.FBIllNO; + item.FBIllNO2 = fbnumber; + item.FBIllNO = new List(); + } + return TestList; + } + + public static List GetCombinationsDataByList2(List List, double FAllAmount,int FClient) + { + return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FBIllNO.Count == 1 && t.FClient2[0].Equals(FClient)).ToList(); + } + + + /// + /// 璁$畻鍙栧 + /// + /// + /// + /// + /// + /// + public static void GetCombinations(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount) + { + var FBILLNOLIST2 = new List(FBILLNOLIST); + var FClient2 = new List(FClient); + var item = List.GroupBy(a => a.FClient).ToList(); + + for (int i = index; i < List.Count; i++) + { + FBILLNOLIST2.Add(List[i].FBIllNO); + FClient2.Add(List[i].FClient); + DataItem DataItem = new DataItem(); + DataItem.FBIllNO = new List(FBILLNOLIST2); + DataItem.FClient2 = new List(FClient2); + DataItem.FALLAMOUNT = FAllAmount + List[i].FALLAMOUNT; + result.Add(DataItem); + if (i < 9) + { + GetCombinations(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FALLAMOUNT); + } + FBILLNOLIST2 = new List(FBILLNOLIST); + } + } + + /// + /// 璁$畻鍙栧 + /// + /// + /// + /// + /// + /// + public static void GetCombinations2(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount) + { + var FBILLNOLIST2 = new List(FBILLNOLIST); + var FClient2 = new List(FClient); + var item = List.GroupBy(a => a.FClient).ToList(); + + for (int i = index; i < List.Count; i++) + { + FBILLNOLIST2.Add(List[i].FBIllNO); + FClient2.Add(List[i].FClient); + DataItem DataItem = new DataItem(); + DataItem.FBIllNO = new List(FBILLNOLIST2); + DataItem.FClient2 = new List(FClient2); + DataItem.FALLAMOUNT = FAllAmount + List[i].FDAMOUNT; + result.Add(DataItem); + if (i < 10) + { + GetCombinations2(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FDAMOUNT); + } + FBILLNOLIST2 = new List(FBILLNOLIST); + } + } + + + public static List> GetCombinations2(T[] array) + { + List FAllmount = new List(); + List FDaySum = new List(); + List> result = new List>(); + Combine2(array, 0, new List(), FAllmount, FDaySum, ref result); + return result; + } + + static void Combine2(T[] array, int index, List combination, List FAllmount, List FDaySum, ref List> result) + { + for (int i = index; i < array.Length; i++) + { + + combination.Add(array[i]); + Combine2(array, i + 1, combination, FAllmount, FDaySum, ref result); + combination.RemoveAt(combination.Count - 1); // 鍥炴函 + } + if (combination.Count > 0) + { + result.Add(new List(combination)); + } + } + + + + + + + + + + + + + public static List GetCombinations(List array) + { + List result = new List(); + List FIDList = new List(); + List FEntryList = new List(); + List FAllmount = new List(); + List FDaySum = new List(); + Combine(array, 0, new List(), FIDList, FEntryList, FAllmount, FDaySum, ref result); + return result; + } + + static void Combine(List array, int index, List combination, List FIDList, List FEntryList, + List FAllmount, List FDaySum, ref List result) + { + for (int i = index; i < array.Count; i++) + { + FIDList.Add(Convert.ToString(array[i][0])); + FEntryList.Add(Convert.ToString(array[i][3])); + FAllmount.Add(Convert.ToDouble(array[i][2])); + FDaySum.Add(CulDayByDate(Convert.ToDateTime(array[i][1]), DateTime.Now)); + combination.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), "0", "0" }); + Combine(array, i + 1, combination, FIDList, FEntryList, FAllmount, FDaySum, ref result); + //FIDList.RemoveAt(FIDList.Count - 1); // 鍥炴函 + //FEntryList.RemoveAt(FEntryList.Count - 1); // 鍥炴函 + //FAllmount.RemoveAt(combination.Count - 1); // 鍥炴函 + //FDaySum.RemoveAt(FDaySum.Count - 1); // 鍥炴函 + combination.RemoveAt(combination.Count - 1); // 鍥炴函 + } + //if (FIDList.Count > 0) + //{ + result.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), FAllmount.Sum().ToString(), FDaySum.Sum().ToString() }); + //} + } + /// + /// 璁$畻涓ゆ棩鏈熷ぉ鏁板樊 + /// + /// + /// + /// + public static int CulDayByDate(DateTime date1, DateTime date2) + { + TimeSpan difference = date2.Subtract(date1); + return difference.Days; + + } + } +} diff --git a/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs b/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs new file mode 100644 index 0000000..43f4106 --- /dev/null +++ b/Pilot_KD_Parino/Common/CombinationGenerator_yuyubo.cs @@ -0,0 +1,246 @@ +锘縰sing Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Common +{ + public class CombinationGenerator_yuyubo + { + + + public static List DeleteCombinationsDataByList(List List, List FBILLNO) + { + foreach (var item in FBILLNO) + { + List.RemoveAll(t => t.FBIllNO.Contains(item)); + } + return List; + } + + + + public static List GetCombinationsDataByList(List List, double FAllAmount, int FClient) + { + return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList(); + } + + public static List GetCombinationsDataByListTK(List List, double FAllAmount, int FClient) + { + var TestList = List.Where(t => t.FALLAMOUNT == FAllAmount && t.FClient2.Contains(FClient)).ToList(); + foreach (var item in TestList) + { + var fbnumber = item.FBIllNO; + item.FBIllNO2 = fbnumber; + item.FBIllNO = new List(); + } + return TestList; + } + + public static List GetCombinationsDataByList2(List List, double FAllAmount,int FClient) + { + return List.Where(t => t.FALLAMOUNT == FAllAmount && t.FBIllNO.Count == 1 && t.FClient2[0].Equals(FClient)).ToList(); + } + + + /// + /// 璁$畻鍙栧 + /// + /// + /// + /// + /// + /// + public static void GetCombinations(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount) + { + var FBILLNOLIST2 = new List(FBILLNOLIST); + var FClient2 = new List(FClient); + var item = List.GroupBy(a => a.FClient).ToList(); + + for (int i = index; i < List.Count; i++) + { + FBILLNOLIST2.Add(List[i].FBIllNO); + FClient2.Add(List[i].FClient); + DataItem DataItem = new DataItem(); + DataItem.FBIllNO = new List(FBILLNOLIST2); + DataItem.FClient2 = new List(FClient2); + DataItem.FALLAMOUNT = FAllAmount + List[i].FALLAMOUNT; + result.Add(DataItem); + if (i < 9) + { + GetCombinations(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FALLAMOUNT); + } + FBILLNOLIST2 = new List(FBILLNOLIST); + } + } + + /// + /// 璁$畻鍙栧 + /// + /// + /// + /// + /// + /// + public static void GetCombinations2(List List, int index, List FBILLNOLIST, List FClient, ref List result, double FAllAmount) + { + var FBILLNOLIST2 = new List(FBILLNOLIST); + var FClient2 = new List(FClient); + //var item = List.GroupBy(a => a.FClient).ToList(); + + for (int i = index; i < List.Count; i++) + { + FBILLNOLIST2.Add(List[i].FBIllNO); + FClient2.Add(List[i].FClient); + DataItem DataItem = new DataItem(); + DataItem.FBIllNO = new List(FBILLNOLIST2); + DataItem.FClient2 = new List(FClient2); + DataItem.FALLAMOUNT = FAllAmount + List[i].FDAMOUNT; + result.Add(DataItem); + if (i < 10) + { + GetCombinations2(List, i + 1, FBILLNOLIST2, FClient2, ref result, FAllAmount + List[i].FDAMOUNT); + } + FBILLNOLIST2 = new List(FBILLNOLIST); + } + } + + + public static List> GetCombinations2(T[] array) + { + List FAllmount = new List(); + List FDaySum = new List(); + List> result = new List>(); + Combine2(array, 0, new List(), FAllmount, FDaySum, ref result); + return result; + } + + static void Combine2(T[] array, int index, List combination, List FAllmount, List FDaySum, ref List> result) + { + for (int i = index; i < array.Length; i++) + { + + combination.Add(array[i]); + Combine2(array, i + 1, combination, FAllmount, FDaySum, ref result); + combination.RemoveAt(combination.Count - 1); // 鍥炴函 + } + if (combination.Count > 0) + { + result.Add(new List(combination)); + } + } + + + + + public static List GetCombinations(List array) + { + List result = new List(); + List FIDList = new List(); + List FEntryList = new List(); + List FAllmount = new List(); + List FDaySum = new List(); + Combine(array, 0, new List(), FIDList, FEntryList, FAllmount, FDaySum, ref result); + return result; + } + + static void Combine(List array, int index, List combination, List FIDList, List FEntryList, + List FAllmount, List FDaySum, ref List result) + { + for (int i = index; i < array.Count; i++) + { + FIDList.Add(Convert.ToString(array[i][0])); + FEntryList.Add(Convert.ToString(array[i][3])); + FAllmount.Add(Convert.ToDouble(array[i][2])); + FDaySum.Add(CulDayByDate(Convert.ToDateTime(array[i][1]), DateTime.Now)); + combination.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), "0", "0" }); + Combine(array, i + 1, combination, FIDList, FEntryList, FAllmount, FDaySum, ref result); + //FIDList.RemoveAt(FIDList.Count - 1); // 鍥炴函 + //FEntryList.RemoveAt(FEntryList.Count - 1); // 鍥炴函 + //FAllmount.RemoveAt(combination.Count - 1); // 鍥炴函 + //FDaySum.RemoveAt(FDaySum.Count - 1); // 鍥炴函 + combination.RemoveAt(combination.Count - 1); // 鍥炴函 + } + //if (FIDList.Count > 0) + //{ + result.Add(new string[4] { string.Join("-", FIDList), string.Join("-", FEntryList), FAllmount.Sum().ToString(), FDaySum.Sum().ToString() }); + //} + } + /// + /// 璁$畻涓ゆ棩鏈熷ぉ鏁板樊 + /// + /// + /// + /// + public static int CulDayByDate(DateTime date1, DateTime date2) + { + TimeSpan difference = date2.Subtract(date1); + return difference.Days; + + } + + + #region AI鎻愪緵鐨勫洖婧畻娉 + // 涓诲嚱鏁帮細鍖归厤閿鍞崟涓庢敹娆惧崟缁勫悎 + public static Dictionary>> MatchSalesAndPayments(List sales, List payments) + { + var result = new Dictionary>>(); + + for (int i = 0; i < sales.Count(); i++) + { + double target = sales[i]; + var combinations = new List>(); + Backtrack(payments, target, 0, new List(), combinations); + + if (combinations.Count > 0) + { + result[i] = combinations; // 璁板綍鍖归厤鐨勯攢鍞崟绱㈠紩鍙婂叾鏀舵鍗曠粍鍚 + } + } + + return result; + } + + // 鍥炴函绠楁硶鐢熸垚鎵鏈夊彲鑳界殑缁勫悎 + private static void Backtrack(List payments, double target, int start, List current, List> result) + { + if (target == 0) + { + result.Add(new List(current)); + return; + } + + for (int i = start; i < payments.Count(); i++) + { + if (payments[i] > target) + continue; // 鍓灊锛氳烦杩囬噾棰濊秴杩囧墿浣欑洰鏍囧肩殑鏀舵鍗 + if (result.Count() >= 1) //濡傛灉宸茬粡鎵惧埌涓涓粍鍚堬紝灏变笉鐢ㄧ户缁壘浜 + return; + current.Add(payments[i]); + Backtrack(payments, target - payments[i], i + 1, current, result); // 閫掑綊鎼滅储涓嬩竴涓敹娆惧崟 + current.RemoveAt(current.Count - 1); // 鍥炴函 + } + } + + // 绀轰緥鐢ㄦ硶 + public static void Main() + { + List sales =new List { 100, 200 }; // 閿鍞崟閲戦鏁扮粍 + List payments =new List { 50, 30, 20, 50, 100 }; // 鏀舵鍗曢噾棰濇暟缁 + + var matches = MatchSalesAndPayments(sales, payments); + + foreach (var sale in matches) + { + Console.WriteLine($"閿鍞崟 {sale.Key + 1} 鍖归厤鐨勬敹娆惧崟缁勫悎锛"); + foreach (var combo in sale.Value) + { + Console.WriteLine($"閲戦缁勫悎锛歿string.Join(", ", combo)}锛屾诲拰锛歿combo.Sum()}"); + } + } + } + #endregion + } +} diff --git a/Pilot_KD_Parino/Common/CommonHelper.cs b/Pilot_KD_Parino/Common/CommonHelper.cs new file mode 100644 index 0000000..f8cf98d --- /dev/null +++ b/Pilot_KD_Parino/Common/CommonHelper.cs @@ -0,0 +1,1465 @@ +锘縰sing Kingdee.BOS; +using Kingdee.BOS.Core; +using Kingdee.BOS.Core.Bill; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Enums; +using Kingdee.BOS.Core.Interaction; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Core.Metadata.FormElement; +using Kingdee.BOS.JSON; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using Xceed.Document.NET; +using Xceed.Words.NET; + +namespace Pilot_KD_Parino.Common +{ + public static class CommonHelper + { + public static void DolondWord(string templatePath, DataSet data, string outputPath, string FType) + { + List List = new List() { "CS", "ES" }; + + // 鍔犺浇妯℃澘鏂囨。 + using (var document = DocX.Load(templatePath)) + { + //int n = data.Tables.Count; + var datatable = data.Tables[0]; + foreach (DataRow item in datatable.Rows) + { + document.ReplaceText("{" + Convert.ToString(item["Key"]) + "}", Convert.ToString(item["Value"])); + } + int x = document.Tables.Count; + if (FType == "D") + { + + } + else if (FType == "S") + { + // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍 + var table = document.Tables[2]; + Row previousRow = (Row)table.Rows[1]; + //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿 + //{ + // table.Rows[i].Remove(); + //} + table.Rows[1].Remove(); + var datatable2 = data.Tables[1]; + foreach (DataRow item in datatable2.Rows) + { + Row newRow = table.InsertRow(previousRow, table.Rows.Count - 1); + foreach (var cell in newRow.Cells) + { + { + // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡 + Border Border = new Border() { Size = BorderSize.four, Color = Color.Black }; + cell.SetBorder(TableCellBorderType.Left, Border); + cell.SetBorder(TableCellBorderType.Right, Border); + cell.SetBorder(TableCellBorderType.Top, Border); + cell.SetBorder(TableCellBorderType.Bottom, Border); + } + } + for (int i = 0; i < datatable2.Columns.Count; i++) + { + newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i])); + } + } + } + else if (FType == "W") + { + // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍 + var table = document.Tables[1]; + Row previousRow = (Row)table.Rows[1]; + //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿 + //{ + // table.Rows[i].Remove(); + //} + table.Rows[1].Remove(); + var datatable2 = data.Tables[1]; + foreach (DataRow item in datatable2.Rows) + { + Row newRow = table.InsertRow(previousRow, table.Rows.Count - 2); + foreach (var cell in newRow.Cells) + { + { + // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡 + Border Border = new Border() { Size = BorderSize.four, Color = Color.Black }; + cell.SetBorder(TableCellBorderType.Left, Border); + cell.SetBorder(TableCellBorderType.Right, Border); + cell.SetBorder(TableCellBorderType.Top, Border); + cell.SetBorder(TableCellBorderType.Bottom, Border); + } + } + for (int i = 0; i < datatable2.Columns.Count; i++) + { + newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i])); + } + } + } + else if (FType == "SX-1" || FType == "SX-2") + { + #region 杩欓噷寮濮嬪鍒 + // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍 + var table = document.Tables[2]; + //// 娓呯┖琛ㄦ牸涓殑鎵鏈夎锛堥櫎浜嗚〃澶达紝濡傛灉鏈夌殑璇濓級 + //// 娉ㄦ剰锛氳繖閲屽亣璁剧涓琛屾槸琛ㄥご锛屼笉鍒犻櫎 + Row previousRowNew = (Row)table.Rows[1]; + Row previousRowthreeNew = (Row)table.Rows[2]; + Row previousRowfourNew = (Row)table.Rows[3]; + for (int i = 3; i >= 1; i--) + { + table.Rows[i].Remove(); + } + var datatable2 = data.Tables[2]; + + // 浣跨敤LINQ鏉ヨ幏鍙栧幓閲嶅悗鐨凢Type瀛楁 + var DistinctFTypes = datatable2.AsEnumerable() + .Select(row => row.Field("FType")) + .Distinct() + .ToList(); + int Index = DistinctFTypes.Count; + foreach (var item in DistinctFTypes) + { + Row previousRow = previousRowNew; + var previousRowthree = previousRowthreeNew; + var previousRowfour = previousRowfourNew; + //鎻掑叆缁勫悎涓叿浣撶殑鏁版嵁琛 + var Rows = datatable2.AsEnumerable().Where(t => Convert.ToString(t["FType"]) == item).ToList(); + //鎻掑叆涓涓粍鍚 + #region + Row newRowfour = table.InsertRow(previousRowfour, 1); + newRowfour.Cells[1].ReplaceText("{9}", Convert.ToString(Rows[0][11])); + foreach (var Row in Rows) + { + Row newRowthree = table.InsertRow(previousRowthree, 1); + for (int i = 0; i < 9; i++) + { + newRowthree.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(Row[i])); + } + document.ReplaceText("{10}", Convert.ToString(Row[10])); + } + Row newRow = table.InsertRow(previousRow, 1); + newRow.Cells[0].ReplaceText("{0}", string.Format("{0}銆亄1}", ConvertToChineseUppercase(Index), Convert.ToString(item))); + #endregion + Index--; + + } + #endregion + } + else if (!List.Contains(FType) && FType != "HH" && FType != "TH") + { + // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍 + var table = document.Tables[1]; + Row previousRow = (Row)table.Rows[1]; + //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿 + //{ + // table.Rows[i].Remove(); + //} + table.Rows[1].Remove(); + var datatable2 = data.Tables[1]; + foreach (DataRow item in datatable2.Rows) + { + Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3); + foreach (var cell in newRow.Cells) + { + { + // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡 + Border Border = new Border() { Size = BorderSize.four, Color = Color.Black }; + cell.SetBorder(TableCellBorderType.Left, Border); + cell.SetBorder(TableCellBorderType.Right, Border); + cell.SetBorder(TableCellBorderType.Top, Border); + cell.SetBorder(TableCellBorderType.Bottom, Border); + } + } + for (int i = 0; i < datatable2.Columns.Count; i++) + { + newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i])); + } + } + } + else if (List.Contains(FType)) + { + #region 杩欓噷寮濮嬪鍒 + // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍 + var table = document.Tables[3]; + //// 娓呯┖琛ㄦ牸涓殑鎵鏈夎锛堥櫎浜嗚〃澶达紝濡傛灉鏈夌殑璇濓級 + //// 娉ㄦ剰锛氳繖閲屽亣璁剧涓琛屾槸琛ㄥご锛屼笉鍒犻櫎 + Row previousRowNew = (Row)table.Rows[1]; + Row previousRowthreeNew = (Row)table.Rows[2]; + Row previousRowfourNew = (Row)table.Rows[3]; + for (int i = 3; i >= 1; i--) + { + table.Rows[i].Remove(); + } + var datatable2 = data.Tables[2]; + + // 浣跨敤LINQ鏉ヨ幏鍙栧幓閲嶅悗鐨凢Type瀛楁 + var DistinctFTypes = datatable2.AsEnumerable() + .Select(row => row.Field("FType")) + .Distinct() + .ToList(); + int Index = DistinctFTypes.Count; + foreach (var item in DistinctFTypes) + { + Row previousRow = previousRowNew; + var previousRowthree = previousRowthreeNew; + var previousRowfour = previousRowfourNew; + //鎻掑叆缁勫悎涓叿浣撶殑鏁版嵁琛 + var Rows = datatable2.AsEnumerable().Where(t => Convert.ToString(t["FType"]) == item).ToList(); + //鎻掑叆涓涓粍鍚 + #region + Row newRowfour = table.InsertRow(previousRowfour, 1); + newRowfour.Cells[1].ReplaceText("{9}", Convert.ToString(Rows[0][11])); + foreach (var Row in Rows) + { + Row newRowthree = table.InsertRow(previousRowthree, 1); + for (int i = 0; i < 9; i++) + { + newRowthree.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(Row[i])); + } + document.ReplaceText("{10}", Convert.ToString(Row[10])); + } + Row newRow = table.InsertRow(previousRow, 1); + newRow.Cells[0].ReplaceText("{0}", string.Format("{0}銆亄1}", ConvertToChineseUppercase(Index), Convert.ToString(item))); + #endregion + Index--; + + } + #endregion + } + else if (FType == "HH") + { + // 鑾峰彇妯℃澘鏂囨。涓殑琛ㄦ牸 + var table = document.Tables[1]; + Row previousRow = (Row)table.Rows[1]; + var roww = table.Rows; + table.Rows[1].Remove(); + //鑾峰彇瀛樺偍杩囩▼鐨勬煡璇 + var datatable2 = data.Tables[3]; + foreach (DataRow item in datatable2.Rows) + { + int textn = table.Rows.Count; + Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3); + foreach (var cell in newRow.Cells) + { + { + // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡 + Border Border = new Border() { Size = BorderSize.four, Color = Color.Black }; + cell.SetBorder(TableCellBorderType.Left, Border); + cell.SetBorder(TableCellBorderType.Right, Border); + cell.SetBorder(TableCellBorderType.Top, Border); + cell.SetBorder(TableCellBorderType.Bottom, Border); + } + } + for (int i = 0; i < datatable2.Columns.Count; i++) + { + newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i])); + } + } + } + else + { + // 鑾峰彇妯℃澘鏂囨。涓殑琛ㄦ牸 + var table = document.Tables[1]; + Row previousRow = (Row)table.Rows[1]; + var roww = table.Rows; + table.Rows[1].Remove(); + //鑾峰彇瀛樺偍杩囩▼鐨勬煡璇 + var datatable2 = data.Tables[4]; + foreach (DataRow item in datatable2.Rows) + { + int textn = table.Rows.Count; + Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3); + foreach (var cell in newRow.Cells) + { + { + // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡 + Border Border = new Border() { Size = BorderSize.four, Color = Color.Black }; + cell.SetBorder(TableCellBorderType.Left, Border); + cell.SetBorder(TableCellBorderType.Right, Border); + cell.SetBorder(TableCellBorderType.Top, Border); + cell.SetBorder(TableCellBorderType.Bottom, Border); + } + } + for (int i = 0; i < datatable2.Columns.Count; i++) + { + newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i])); + } + } + } + if (!Directory.Exists(Path.GetDirectoryName(outputPath))) + { + Directory.CreateDirectory(Path.GetDirectoryName(outputPath)); + } + // 淇濆瓨鏂版枃妗 + document.SaveAs(outputPath); + } + } + public static void DolondWord2(DataSet data) + { + // 妯℃澘鏂囦欢璺緞 + string templatePath = @"D:\妯℃澘\妯℃澘.docx"; + // 杈撳嚭鏂囦欢璺緞 + string outputPath = @"D:\妯℃澘\閲嶆柊瀵煎嚭鐨勭粨鏋.docx"; + + //// 妯℃澘鏂囦欢璺緞 + //string templatePath = @"D:\妯℃澘\妯℃澘.docx"; + //// 杈撳嚭鏂囦欢璺緞 + //string outputPath = @"D:\妯℃澘\閲嶆柊瀵煎嚭鐨勭粨鏋.docx"; + + //using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(templatePath, false)) + //{ + // // 鑾峰彇涓绘枃妗i儴鍒 + // MainDocumentPart mainPart = wordDoc.MainDocumentPart; + + // // 鑾峰彇鏂囨。涓殑鎵鏈夎〃鏍 + // IEnumerable tables = mainPart.Document.Body.Elements
(); + + // foreach (Table table in tables) + // { + // // 閬嶅巻琛ㄦ牸涓殑鎵鏈夎 + // foreach (TableRow row in table.Elements()) + // { + // // 閬嶅巻琛屼腑鐨勬墍鏈夊崟鍏冩牸 + // foreach (TableCell cell in row.Elements()) + // { + // // 鑾峰彇鍗曞厓鏍肩殑娈佃惤锛堝彲鑳芥湁澶氫釜锛 + // foreach (Paragraph paragraph in cell.Elements()) + // { + // // 鑾峰彇娈佃惤鐨勫睘鎬э紙杩欎簺灞炴у彲浠ュ寘鍚瓧浣撱佸瓧鍙风瓑淇℃伅锛 + // ParagraphProperties paragraphProperties = paragraph.ParagraphProperties; + + // // 绀轰緥锛氭墦鍗版钀界殑瀵归綈鏂瑰紡 + // if (paragraphProperties.Justification != null) + // { + // Console.WriteLine($"Cell in table {table.TableId.Value} row {row.RowIndex.Value} has paragraph justification: {paragraphProperties.Justification.Value}"); + // } + + // // 鑾峰彇娈佃惤涓殑杩愯锛圧un锛夛紝瀹冧滑鍖呭惈鏂囨湰鍙婂叾鏍煎紡 + // foreach (Run run in paragraph.Elements()) + // { + // // 鑾峰彇杩愯鐨勫睘鎬э紙杩欎簺灞炴у彲浠ュ寘鍚瓧浣撱佸瓧鍙枫侀鑹茬瓑淇℃伅锛 + // RunProperties runProperties = run.RunProperties; + + // // 绀轰緥锛氭墦鍗拌繍琛岀殑瀛椾綋鍜屽瓧鍙 + // if (runProperties.RunFonts != null && runProperties.FontSize != null) + // { + // Console.WriteLine($"Cell in table {table.TableId.Value} row {row.RowIndex.Value} has run font: {runProperties.RunFonts.Ascii}, size: {runProperties.FontSize.Val}"); + // } + + // // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜杩愯锛屾瘡涓繍琛屽彲鑳芥湁涓嶅悓鐨勬牱寮 + // } + // } + + // // 娉ㄦ剰锛氬崟鍏冩牸涔熷彲鑳藉寘鍚叾浠栧厓绱狅紝濡傝〃鏍煎祵濂椼佸浘鐗囩瓑锛岃繖閲屽彧澶勭悊浜嗘钀藉拰杩愯 + // } + // } + // } + //} + List List = new List() { "CS", "ES", "S" }; + + // 鍔犺浇妯℃澘鏂囨。 + using (var document = DocX.Load(templatePath)) + { + var datatable = data.Tables[0]; + //foreach (DataRow item in datatable.Rows) + //{ + // document.ReplaceText("{" + Convert.ToString(item["Key"]) + "}", Convert.ToString(item["Value"])); + //} + if (!List.Contains("D")) + { + // 鍋囪妯℃澘涓殑琛ㄦ牸鏄涓涓〃鏍 + var table = document.Tables[1]; + Row previousRow = (Row)table.Rows[1]; + //for (int i = table.Rows.Count - 4; i >= 1; i--) // 浠庢渶鍚庝竴琛屽紑濮嬪垹闄わ紝閬垮厤绱㈠紩瓒呭嚭鑼冨洿 + //{ + // table.Rows[i].Remove(); + //} + table.Rows[1].Remove(); + var datatable2 = data.Tables[1]; + foreach (DataRow item in datatable2.Rows) + { + Row newRow = table.InsertRow(previousRow, table.Rows.Count - 3); + foreach (var cell in newRow.Cells) + { + { + // 娉ㄦ剰锛氬鏋滃崟鍏冩牸涓湁澶氫釜娈佃惤鎴栨洿澶嶆潅鐨勭粨鏋勶紝浣犲彲鑳介渶瑕侀亶鍘嗗畠浠苟鍒嗗埆澶嶅埗鏍峰紡 + Border Border = new Border() { Size = BorderSize.four, Color = Color.Black }; + cell.SetBorder(TableCellBorderType.Left, Border); + cell.SetBorder(TableCellBorderType.Right, Border); + cell.SetBorder(TableCellBorderType.Top, Border); + cell.SetBorder(TableCellBorderType.Bottom, Border); + } + } + for (int i = 0; i < datatable2.Columns.Count; i++) + { + newRow.Cells[i].ReplaceText("{" + i.ToString() + "}", Convert.ToString(item[i])); + } + } + } + + if (!Directory.Exists(Path.GetDirectoryName(outputPath))) + { + Directory.CreateDirectory(Path.GetDirectoryName(outputPath)); + } + // 淇濆瓨鏂版枃妗 + document.SaveAs(outputPath); + } + } + + /// + /// 淇濆瓨Txt鍒版湇鍔″櫒鍟 + /// + /// 鎺ュ彛璋冪敤鏁版嵁 + /// Txt鍦板潃 + /// 鎺ュ彛杩斿洖鏁版嵁 + public static void SaveTxt(string Data, string path, string Result) + { + if (!Directory.Exists(Path.GetDirectoryName(path))) + { + Directory.CreateDirectory(Path.GetDirectoryName(path)); + } + StringBuilder sb = new StringBuilder(); + sb.AppendLine("\r\n"); + sb.AppendLine("----------------------璋冪敤鎺ュ彛鎵鐢↗Son----------------------"); + sb.AppendLine(Data); + sb.AppendLine("\r\n"); + sb.AppendLine("----------------------璋冪敤鎺ュ彛杩斿洖JSon----------------------"); + sb.AppendLine(Result); + FileStream fs = new FileStream(path, FileMode.Create); + StreamWriter sw = new StreamWriter(fs); + fs.Position = fs.Length; + //寮濮嬪啓鍏ヂ 聽 聽 聽 聽 + sw.Write(sb.ToString()); + //娓呯┖缂撳啿鍖郝 聽 聽 聽 + sw.Flush(); + //鍏抽棴娴伮 聽 聽 聽 聽 聽 + sw.Close(); + fs.Close(); + } + + public static String ApiUrl = "http://doc.pmac.com.cn/api/services"; //姝e紡鍦板潃 + public static String CustApiUrl = "http://10.0.110.12:8090/Api"; //姝e紡鍦板潃 鍒涘缓澶氱骇鏂囦欢澶逛娇鐢,8090绔彛 + public static String integrationKey = "675cb5b3-6405-78ab-4834-82c25131851b";//姝e紡 闆嗘垚鐧诲綍绉橀挜 + + //娴嬭瘯鐜 + //public static String username = "erp1";//姝e紡 闆嗘垚鐧诲綍绉橀挜 + //public static String password = "edoc@erp";//姝e紡 闆嗘垚鐧诲綍绉橀挜 + //姝e紡鐜 + public static String username = "admin";//姝e紡 闆嗘垚鐧诲綍绉橀挜 + public static String password = "PIL@edoc3";//姝e紡 闆嗘垚鐧诲綍绉橀挜 + + + /// + /// 鑾峰彇鏂囨。浜戠殑Token + /// + /// 鐢ㄦ埛鍚 + /// 瀵嗙爜 + /// + public static string UserLogin(string FApiPath) + { + ///澹版槑杩斿洖Token + String token = ""; + //澹版槑鎺ュ彛鍚嶇О + String url = "/Org/UserLogin"; + String postJson = "{\"userName\": \"" + username + "\",\"password\": \"" + password + "\" } "; + HttpClient httpClient = new HttpClient(); + httpClient.Url = ApiUrl + url; + httpClient.Content = postJson; + var resule = JsonConvert.DeserializeObject(httpClient.Post()); + token = Convert.ToString(resule["data"]); + //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + SaveTxt(Convert.ToString(httpClient.Url), FApiPath, JsonConvert.SerializeObject(resule)); + return token; + } + + + /// + public static string GetFolderInfoByNamePath(string Token, string FPath, string FApiPath, Context ctx) + { + ///澹版槑杩斿洖Token + String FolderId = ""; + //澹版槑鎺ュ彛鍚嶇О + String url = string.Format(@"/Folder/GetFolderInfoByNamePath?token={0}&folderNamePath={1}", Token, FPath); + HttpClient httpClient = new HttpClient(); + httpClient.Url = ApiUrl + url; + var resule = JsonConvert.DeserializeObject(httpClient.Get()); + if (resule["data"] != null) + { + try + { + FolderId = Convert.ToString(resule["data"]["FolderId"]); + } + catch + { + FolderId = ""; + } + } + //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + SaveTxt(Convert.ToString(httpClient.Url), FApiPath, JsonConvert.SerializeObject(resule)); + return FolderId; + } + + + public static string CreateFolder(string Token, string parentFolderId, string folderName, string FApiPath, Context ctx) + { + ///澹版槑杩斿洖Token + String FolderId = ""; + //澹版槑鎺ュ彛鍚嶇О + String url = "/Folder/CreateFolder"; + HttpClient httpClient = new HttpClient(); + httpClient.Url = ApiUrl + url; + httpClient.Content = "{\"token\": \"" + Token + "\",\"name\": \"" + folderName + "\",\"parentFolderId\":" + parentFolderId + " } "; + var resule = JsonConvert.DeserializeObject(httpClient.Post()); + if (resule["data"] != null) + { + FolderId = Convert.ToString(resule["data"]["FolderId"]); + } + //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + SaveTxt(Convert.ToString(httpClient.Url) + "\r\n" + httpClient.Content, FApiPath, JsonConvert.SerializeObject(resule)); + return FolderId; + } + + + + + /// + /// 鍒涘缓澶氬眰绾ф枃浠跺す + /// + /// + /// 鐖剁骇鏂囦欢澶筰d + /// 骞翠唤 + /// 鍚堝悓鏂囦欢澶瑰悕绉 + /// + public static string batchCreateFolder(string Token, string parentFolderId, string FYear, string contractFolderName, string FApiPath) + { + ///澹版槑杩斿洖Token + String FolderId = ""; + //澹版槑鎺ュ彛鍚嶇О + String url = "/Folder/CreateFolder"; + + //澹版槑瀵硅薄 + HttpClient httpClient = new HttpClient(); + //璧嬪兼帴鍙rl + httpClient.Url = ApiUrl + url; + #region 璁剧疆A闃舵鏂囦欢澶 + + JSONObject obj1 = new JSONObject(); + obj1.Add("Name", "A-鍟嗘満鑷冲悎鍚岄樁娈"); + JSONArray arry1 = new JSONArray(); + String[] jd1Array = { "A01-鍚堝悓鎵弿浠", "A02-鎶鏈柟妗堣祫鏂", "A04-涓爣鐩稿叧璧勬枡", "A05-鍏朵粬璧勬枡" }; + for (int i = 0; i < jd1Array.Length; i++) + { + JSONObject obj11 = new JSONObject(); + obj11.Add("Name", jd1Array[i]); + arry1.Add(obj11); + } + obj1.Add("FolderChildren", arry1); + #endregion + + #region 璁剧疆B闃舵鏂囦欢澶 + JSONObject obj2 = new JSONObject(); + obj2.Add("Name", "B-瀹炴柦鍑嗗闃舵"); + JSONArray arry2 = new JSONArray(); + String[] jd2rray = { "B01-椤圭洰闇姹傚垎鏋", "B02-椤圭洰鍚姩浼氳", "B03-鏂藉伐缁勭粐璁″垝", "B04-渚涜揣閲囪喘璁″垝", "B05-鎴愭湰绠$悊璁″垝", "B06-椤圭洰绠$悊璁″垝", "B07-鏂藉伐鏂规", "B08-鏂藉伐鍒嗗寘绠$悊", "B09-鏂藉伐甯冪嚎鎸囧", "B10-鍏朵粬鏂囦欢" }; + for (int i = 0; i < jd2rray.Length; i++) + { + JSONObject obj22 = new JSONObject(); + obj22.Add("Name", jd2rray[i]); + arry2.Add(obj22); + } + obj2.Add("FolderChildren", arry2); + #endregion + #region 璁剧疆C闃舵鏂囦欢澶 + JSONObject obj3 = new JSONObject(); + obj3.Add("Name", "C-瀹炴柦鎵ц闃舵"); + JSONArray arry3 = new JSONArray(); + String[] jd3rray = { "C01-缃戠粶鎷撴墤鍥", "C02-璁捐闄㈡垚濂楀巶鍥剧焊", "C03-鏈烘煖鍘熺悊鍙婄粨鏋勫浘", "C04-娣卞寲鏂藉伐骞抽潰鍥", "C05-椤圭洰璁惧鐐硅〃", "C06-閲囬泦鍣ㄩ厤缃浠", "C07-绯荤粺鍙婃暟鎹簱澶囦唤", "C08-绗笁鏂逛骇鍝佽祫鏂欏簱", "C09-宸ョ▼绛捐瘉鍗", "C10-鍒嗛」宸ョ▼鎶ラ獙鍗", "C11-宸ョ▼鑱旂粶鍗", "C12-鍒嗗寘鎴愭湰绠$悊", "C13-鏁村绔e伐鍥剧焊", "C14-浜у搧瀹氬埗鍗", "C15-鍓嶆渶缁堟柦宸ュ浘绾稿叏濂", "C16-鎶ヤ环宸ョ▼閲忔竻鍗", "C17-椤圭洰浜ゆ帴鍗", "C18-娉ㄥ唽鐮", "C19-鏈烘煖鍑哄巶娴嬭瘯鎶ュ憡", "C20-绯荤粺璋冭瘯鏂规", "C21-椤圭洰鏃ュ織", "C22-鍏朵粬鏂囦欢" }; + for (int i = 0; i < jd3rray.Length; i++) + { + JSONObject obj33 = new JSONObject(); + obj33.Add("Name", jd3rray[i]); + arry3.Add(obj33); + } + obj3.Add("FolderChildren", arry3); + #endregion + + #region 璁剧疆D闃舵鏂囦欢澶 + JSONObject obj4 = new JSONObject(); + obj4.Add("Name", "D-楠屾敹浜や粯闃舵"); + JSONArray arry4 = new JSONArray(); + String[] jd4rray = { "D01-楠屾敹鎶ュ憡鎵弿浠", "D02-璁惧璋冭瘯璁板綍鎶ュ憡", "D03-鍙戣揣鍗曪紙绛惧瓧鍥炲崟锛", "D04-璇曡繍琛屾垨鐪熷疄杩愯鎶ュ憡", "D05-瀹¤缁撶畻璧勬枡", "D06-椤圭洰鎬荤粨鎶ュ憡", "D07-閬楃暀闂娓呭崟", "D08-璇存槑涔︽垨鎿嶄綔鎵嬪唽", "D09-鐜板満鐓х墖鎴栫晫闈㈡埅鍥", "D10-绉讳氦鐢叉柟鐨勮祫鏂", "D11-鍏朵粬鏂囦欢" }; + for (int i = 0; i < jd4rray.Length; i++) + { + JSONObject obj44 = new JSONObject(); + obj44.Add("Name", jd4rray[i]); + arry4.Add(obj44); + } + obj4.Add("FolderChildren", arry4); + #endregion + + #region 璁剧疆E闃舵鏂囦欢澶 + JSONObject obj5 = new JSONObject(); + obj5.Add("Name", "E-楠屾敹鍚庤繍缁撮樁娈"); + JSONArray arry5 = new JSONArray(); + String[] jd5rray = { "E01-鐢ㄦ埛璇佹槑鍜屽鎴疯瘎浠锋枃浠", "E02-宸℃鎶ュ憡", "E03-鍞悗婊℃剰搴﹁皟鏌ヨ〃", "E04-鐜板満鏇存柊璧勬枡澶囦唤", "E05-鍏朵粬鏂囦欢" }; + for (int i = 0; i < jd5rray.Length; i++) + { + JSONObject obj55 = new JSONObject(); + obj55.Add("Name", jd5rray[i]); + arry5.Add(obj55); + } + obj5.Add("FolderChildren", arry5); + #endregion + //5涓樁娈电殑鎵鏈夋枃浠跺す鏀惧叆鍒板搴斿悎鍚岀洰褰曚笅 + //鍚堝悓鏂囦欢澶 + JSONObject dataObj = new JSONObject(); + + JSONArray arry0 = new JSONArray(); + arry0.Add(obj1); + arry0.Add(obj2); + arry0.Add(obj3); + arry0.Add(obj4); + arry0.Add(obj5); + dataObj.Add("FolderChildren", arry0); + //灏嗗悎鍚岀洰褰曟斁鍒板搴斿勾浠界殑鐩綍涓 + JSONArray yearArray = new JSONArray(); + yearArray.Add(dataObj); + JSONObject yearobj = new JSONObject(); + yearobj.Add("FolderName", FYear); + yearobj.Add("FolderChildren", yearArray); + //寮濮嬪垱寤 + JSONObject obj = new JSONObject(); + obj.Add("Token", Token); + obj.Add("ParentFolderId", parentFolderId); + obj.Add("name", contractFolderName); + obj.Add("FolderChildren", arry0); + String postJson = obj.ToString(); + httpClient.Content = postJson; + var resule = JsonConvert.DeserializeObject(httpClient.Post()); + if (resule["data"] != null) + { + FolderId = Convert.ToString(resule["data"]["FolderId"]); + } + //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + SaveTxt(Convert.ToString(httpClient.Url) + "\r\n" + httpClient.Content, FApiPath, JsonConvert.SerializeObject(resule)); + return FolderId; + } + + + /// + /// 鍒涘缓BPM娴佺▼鍙戣捣浜у搧鐢熶骇鍑鸿揣棰勭疆鍗 + /// + public static string CreateDocument2(DynamicObjectCollection data, Context ctx) + { + StringBuilder xml = new StringBuilder("FormData="); + xml.Append(""); + xml.Append(""); + xml.Append("" + Convert.ToString(data[0]["鍒涘缓鏃堕棿"]) + "");//鍒涘缓鏃堕棿 + xml.Append("" + Convert.ToString(data[0]["濉崟浜"]) + "");//濉崟浜 + xml.Append("" + Convert.ToString(data[0]["濉崟浜洪儴闂"]) + ""); //濉崟浜洪儴闂 + xml.Append("" + Convert.ToString(data[0]["瑙勬牸鍨嬪彿"]) + ""); //瑙勬牸鍨嬪彿 + xml.Append("" + Convert.ToString(data[0]["璐揣鍗曚綅"]) + "");//璐揣鍗曚綅 + xml.Append("" + Convert.ToString(data[0]["椤圭洰鍚嶇О"]) + "");//椤圭洰鍚嶇О + xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛"]) + ""); //閿鍞汉鍛 + xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛橀儴闂"]) + ""); //閿鍞汉鍛橀儴闂 + xml.Append("" + Convert.ToString(data[0]["濉崟浜鸿亴浣"]) + ""); //濉崟浜鸿亴浣 + xml.Append("" + Convert.ToString(data[0]["鍚堝悓鍙"]) + "");//鍚堝悓鍙 + xml.Append("" + Convert.ToString(data[0]["鍙戣揣鏃ユ湡"]) + "");//鍙戣揣鏃ユ湡 + xml.Append(""); + foreach (var item in data) + { + xml.Append(""); + xml.Append("" + Convert.ToString(item["鐗╂枡浠g爜"]) + ""); //鐗╂枡浠g爜 + xml.Append("" + Convert.ToString(item["鐗╂枡鍚嶇О"]) + ""); //鐗╂枡鍚嶇О + xml.Append("" + Convert.ToString(item["鏁伴噺"]) + ""); //鏁伴噺 + xml.Append("" + Convert.ToString(item["鍝佺墝"]) + ""); //鍝佺墝 + xml.Append("" + Convert.ToString(item["澶囨敞"]) + ""); //瀹氬埗鍗曞嚭璐ф鏁 + xml.Append(""); + } + xml.Append(""); + //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml); + HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml); + request.Method = "POST"; + request.ContentType = "text/xml"; + Encoding encoding = Encoding.GetEncoding("UTF-8"); + // 瑕佸彂閫佺殑鏁版嵁 + byte[] buffer = encoding.GetBytes(xml.ToString()); + // 鑾峰彇璇锋眰娴 + using (Stream writer = request.GetRequestStream()) + { + // 鍐欏叆鏁版嵁 + writer.Write(buffer, 0, buffer.Length); + } + string retString = ""; + string sn = "澶辫触"; + + //鑾峰彇鍝嶅簲 + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + // 澶勭悊鍝嶅簲 + Stream myResponseStream = response.GetResponseStream();//鑾峰彇杩斿洖鍊 + using (StreamReader reader = new StreamReader(myResponseStream, Encoding.UTF8)) + { + try + { + retString = reader.ReadToEnd(); + //鑾峰彇SN鏁版嵁 + var snOBJ = JsonConvert.DeserializeObject(retString); + if (Convert.ToString(snOBJ["success"]).ToUpper() == "TRUE") + { + sn = Convert.ToString(snOBJ["SN"]); + } + + } + catch + { + + } + } + } + //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + //SaveTxt("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount="+data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml, + // string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt", + // Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString); + SaveTxt("http://bpm.pmac.com.cn/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧鐢熶骇鍑鸿揣棰勭疆鍗&Action=鎻愪氦&Comment=''&" + xml, + string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt", + Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString); + return sn; + + } + + /// + /// 鍒涘缓BPM娴佺▼鍙戣捣浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗 + /// + public static string CreateDocument(DynamicObjectCollection data, Context ctx) + { + StringBuilder xml = new StringBuilder("FormData="); + xml.Append(""); + xml.Append(""); + xml.Append("" + Convert.ToString(data[0]["鍒涘缓鏃堕棿"]) + "");//鍒涘缓鏃堕棿 + xml.Append("" + Convert.ToString(data[0]["濉崟浜"]) + "");//濉崟浜 + xml.Append("" + Convert.ToString(data[0]["濉崟浜洪儴闂"]) + ""); //濉崟浜洪儴闂 + xml.Append("" + Convert.ToString(data[0]["濉崟浜鸿亴浣"]) + ""); //濉崟浜鸿亴浣 + xml.Append("" + Convert.ToString(data[0]["鍚堝悓鍙"]) + "");//鍚堝悓鍙 + xml.Append("" + Convert.ToString(data[0]["璐揣鍗曚綅"]) + "");//璐揣鍗曚綅 + xml.Append("" + Convert.ToString(data[0]["椤圭洰鍚嶇О"]) + "");//椤圭洰鍚嶇О + xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛"]) + ""); //閿鍞汉鍛 + xml.Append("" + Convert.ToString(data[0]["閿鍞汉鍛橀儴闂"]) + ""); //閿鍞汉鍛橀儴闂 + xml.Append("" + Convert.ToString(data[0]["瑙勬牸鍨嬪彿"]) + ""); //瑙勬牸鍨嬪彿 + xml.Append(""); + foreach (var item in data) + { + xml.Append(""); + xml.Append("" + Convert.ToString(item["鐗╂枡浠g爜"]) + ""); //鐗╂枡浠g爜 + xml.Append("" + Convert.ToString(item["鐗╂枡鍚嶇О"]) + ""); //鐗╂枡鍚嶇О + xml.Append("" + Convert.ToString(item["瑙勬牸鍨嬪彿"]) + ""); //瑙勬牸鍨嬪彿 + xml.Append("" + Convert.ToString(item["鍝佺墝"]) + ""); //鍝佺墝 + xml.Append("" + Convert.ToString(item["鏁伴噺"]) + ""); //鏁伴噺 + xml.Append("" + Convert.ToString(item["澶囨敞"]) + ""); //澶囨敞 + xml.Append("" + Convert.ToString(item["瀹氬埗鍗曞嚭璐ф鏁"]) + ""); //瀹氬埗鍗曞嚭璐ф鏁 + xml.Append(""); + } + xml.Append(""); + HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://bpm.pmac.com.cn/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml); + //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml); + + + request.Method = "POST"; + request.ContentType = "text/xml"; + Encoding encoding = Encoding.GetEncoding("UTF-8"); + // 瑕佸彂閫佺殑鏁版嵁 + byte[] buffer = encoding.GetBytes(xml.ToString()); + // 鑾峰彇璇锋眰娴 + using (Stream writer = request.GetRequestStream()) + { + // 鍐欏叆鏁版嵁 + writer.Write(buffer, 0, buffer.Length); + } + string retString = ""; + string sn = "澶辫触"; + + //鑾峰彇鍝嶅簲 + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + // 澶勭悊鍝嶅簲 + Stream myResponseStream = response.GetResponseStream();//鑾峰彇杩斿洖鍊 + using (StreamReader reader = new StreamReader(myResponseStream, Encoding.UTF8)) + { + try + { + retString = reader.ReadToEnd(); + //鑾峰彇SN鏁版嵁 + var snOBJ = JsonConvert.DeserializeObject(retString); + if (Convert.ToString(snOBJ["success"]).ToUpper() == "TRUE") + { + sn = Convert.ToString(snOBJ["SN"]); + } + + } + catch + { + + } + } + } + ////鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + //SaveTxt("http://10.0.120.98/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml, + // string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt", + // Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString); + //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + SaveTxt("http://bpm.pmac.com.cn/bpm/YZSoft/WebService/YZService.ashx?Method=PostTask&UserAccount=" + data[0]["bpm璐﹀彿"] + "&ProcessName=浜у搧瀹氬埗鍐嶆鍑鸿揣纭鍗&Action=鎻愪氦&Comment=''&" + xml, + string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓娴佺▼\{0}\鍒涘缓娴佺▼\{1}.txt", + Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), retString); + return sn; + } + + + + + /// + /// 鍒涘缓宸ョ▼椤圭洰 + /// + public static string CreateItemData(Context ctx, string FOrgId, string FNumber, string FName) + { + string FID; + string FBILLNO; + // 鏋勫缓涓涓狪BillView瀹炰緥锛岄氳繃姝ゅ疄渚嬶紝鍙互鏂逛究鐨勫~鍐 + IBillView billView = CommonHelper.CreateBillView(ctx, "BAS_PreBaseDataOne"); + // 鏂板缓涓涓┖鐧藉姵鍔ㄥ悎鍚 + // billView.CreateNewModelData(); + ((IBillViewService)billView).LoadData(); + // 瑙﹀彂鎻掍欢鐨凮nLoad浜嬩欢锛 + // 缁勭粐鎺у埗鍩虹被鎻掍欢锛屽湪OnLoad浜嬩欢涓紝瀵逛富涓氬姟缁勭粐鏀瑰彉鏄惁鎻愮ず閫夐」杩涜鍒濆鍖栥 + // 濡傛灉涓嶈Е鍙慜nLoad浜嬩欢锛屼細瀵艰嚧涓讳笟鍔$粍缁囪祴鍊间笉鎴愬姛 + DynamicFormViewPlugInProxy eventProxy = billView.GetService(); + eventProxy.FireOnLoad(); + // 濉啓姣忔棩鎵撳崱璁板綍 + CreateItem(billView, ctx, FOrgId, FNumber, FName); + // 淇濆瓨姣忔棩鎵撳崱璁板綍 + OperateOption saveOption = OperateOption.Create(); + Form form = billView.BillBusinessInfo.GetForm(); + if (form.FormIdDynamicProperty != null) + { + form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id); + } + //淇濆瓨宸ョ▼椤圭洰 + CommonHelper.SaveBill(ctx, billView, saveOption, true, out FID, out FBILLNO); + return FID; + } + + + + private static void CreateItem(IBillView billView, Context ctx, string FOrgId, string FNumber, string FName) + { + //璧嬪煎垱寤虹粍缁 + billView.Model.SetValue("FCreateOrgId", FOrgId, 0); + //璧嬪间娇鐢ㄧ粍缁 + billView.Model.SetValue("FUseOrgId", FOrgId, 0); + //璧嬪肩紪鐮 + billView.Model.SetValue("FNumber", FNumber, 0); + //璧嬪煎悕绉 + billView.Model.SetValue("FName", FName, 0); + } + + /// + /// 璋冪敤PMS鎺ュ彛 + /// + /// + /// + /// + public static string PMSLogin(DynamicObjectCollection data, Context ctx, string Json, string FType) + { + String userName = "test"; + String password = "crm@2022.PMS"; + String url_str = "http://portal.pmac.com.cn/distributor.action?serviceName="; + String getUserBinding_url = url_str + "clogin&userName=" + userName + "&password=" + password; + + WebClient client = new WebClient(); + client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; + client.Encoding = Encoding.UTF8; + string result = client.UploadString(getUserBinding_url, ""); + SaveTxt(getUserBinding_url, + string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓寰呭垎閰嶉」鐩甛{0}\{3}\鐧诲綍\{1}.txt", + Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName, FType), result); + JObject jo = (JObject)JsonConvert.DeserializeObject(result);//鑾峰彇binding + string userBinding = jo["binding"] == null ? "" : jo["binding"].ToString(); + return userBinding; + } + + + + public static string PushPMSItem(DynamicObjectCollection data, Context ctx, string Json, string FType, string Token) + { + //String userName = "test"; + //String password = "crm@2022.PMS"; + //String url_str = "http://portal.pmac.com.cn/distributor.action?serviceName="; + //String getUserBinding_url = url_str + "clogin&userName=" + userName + "&password=" + password; + + //WebClient client = new WebClient(); + //client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; + //client.Encoding = Encoding.UTF8; + //string result = client.UploadString(getUserBinding_url, ""); + //SaveTxt(getUserBinding_url, + // string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓寰呭垎閰嶉」鐩甛{0}\鐧诲綍\{1}.txt", + // Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName), result); + //JObject jo = (JObject)JsonConvert.DeserializeObject(result);//鑾峰彇binding + string userBinding = Token; + + string up_url = ""; + up_url = "http://portal.pmac.com.cn/distributor.action?serviceName=insert&objectApiName=" + FType + "&data=[" + Json + "]&binding=" + userBinding; + WebClient client2 = new WebClient(); + client2.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; + client2.Encoding = Encoding.UTF8; + String result2 = client2.UploadString(up_url, ""); + //鍐欏叆Txt鍒版湇鍔″櫒鍦板潃 + SaveTxt(up_url, + string.Format(@"D:\Api鏃ュ織\{2}\鍒涘缓寰呭垎閰嶉」鐩甛{0}\{3}\鍒涘缓寰呭垎閰嶉」鐩甛{1}.txt", + Convert.ToString(data[0]["鍗曟嵁缂栧彿"]), DateTime.Now.ToString("yyyyMMddHHmmssfff"), ctx.DataCenterName, FType), result2); + return result2; + } + + + + + + + + + public static BillOpenParameter CreateOpenParameter(Kingdee.BOS.Context ctx, FormMetadata meta) + { + Form form = meta.BusinessInfo.GetForm(); + // 鎸囧畾FormId, LayoutId + BillOpenParameter openParam = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id); + // 鏁版嵁搴撲笂涓嬫枃 + openParam.Context = ctx; + // 鏈崟鎹ā鍨嬩娇鐢ㄧ殑MVC妗嗘灦 + openParam.ServiceName = form.FormServiceName; + // 闅忔満浜х敓涓涓笉閲嶅鐨凱ageId锛屼綔涓鸿鍥剧殑鏍囪瘑 + openParam.PageId = Guid.NewGuid().ToString(); + // 鍏冩暟鎹 + openParam.FormMetaData = meta; + // 鐣岄潰鐘舵侊細鏂板 (淇敼銆佹煡鐪) + openParam.Status = OperationStatus.ADDNEW; + // 鍗曟嵁涓婚敭锛氭湰妗堜緥婕旂ず鏂板缓鍟嗗搧绫诲瀷锛屼笉闇瑕佽缃富閿 + openParam.PkValue = null; + // 鐣岄潰鍒涘缓鐩殑锛氭櫘閫氭棤鐗规畩鐩殑 锛堜负宸ヤ綔娴併佷负涓嬫帹銆佷负澶嶅埗绛夛級 + openParam.CreateFrom = CreateFrom.Default; + // 鍩虹璧勬枡鍒嗙粍缁村害锛氬熀纭璧勬枡鍏佽娣诲姞澶氫釜鍒嗙粍瀛楁锛屾瘡涓垎缁勫瓧娈典細鏈変竴涓垎缁勭淮搴 + // 鍏蜂綋鍒嗙粍缁村害Id锛岃鍙傞槄 form.FormGroups 灞炴 + openParam.GroupId = ""; + // 鍩虹璧勬枡鍒嗙粍锛氬鏋滈渶瑕佷负鏂板缓鐨勫熀纭璧勬枡鎸囧畾鎵鍦ㄥ垎缁勶紝璇疯缃灞炴 + openParam.ParentId = 0; + // 鍗曟嵁绫诲瀷 + openParam.DefaultBillTypeId = ""; + // 涓氬姟娴佺▼ + openParam.DefaultBusinessFlowId = ""; + // 涓讳笟鍔$粍缁囨敼鍙樻椂锛屼笉鐢ㄥ脊鍑烘彁绀虹晫闈 + openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false); + // 鎻掍欢 + List plugs = form.CreateFormPlugIns(); + openParam.SetCustomParameter(FormConst.PlugIns, plugs); + PreOpenFormEventArgs args = new PreOpenFormEventArgs(ctx, openParam); + foreach (var plug in plugs) + {// 瑙﹀彂鎻掍欢PreOpenForm浜嬩欢锛屼緵鎻掍欢纭鏄惁鍏佽鎵撳紑鐣岄潰 + plug.PreOpenForm(args); + } + if (args.Cancel == true) + {// 鎻掍欢涓嶅厑璁告墦寮鐣岄潰 + // 鏈渚嬩笉鐞嗕細鎻掍欢鐨勮瘔姹傦紝缁х画.... + } + // 杩斿洖 + return openParam; + } + + public static IBillView CreateBillView(Kingdee.BOS.Context ctx, string FKEY) + { + // 璇诲彇鍟嗗搧绫诲瀷鐨勫厓鏁版嵁 + FormMetadata meta = MetaDataServiceHelper.Load(ctx, FKEY) as FormMetadata; + Form form = meta.BusinessInfo.GetForm(); + // 鍒涘缓鐢ㄤ簬寮曞叆鏁版嵁鐨勫崟鎹畍iew + Type type = Type.GetType("Kingdee.BOS.Web.Import.ImportBillView,Kingdee.BOS.Web"); + var billView = (IDynamicFormViewService)Activator.CreateInstance(type); + // 寮濮嬪垵濮嬪寲billView锛 + // 鍒涘缓瑙嗗浘鍔犺浇鍙傛暟瀵硅薄锛屾寚瀹氬悇绉嶅弬鏁帮紝濡侳ormId, 瑙嗗浘(LayoutId)绛 + BillOpenParameter openParam = CommonHelper.CreateOpenParameter(ctx, meta); + // 鍔ㄦ侀鍩熸ā鍨嬫湇鍔℃彁渚涚被锛岄氳繃姝ょ被锛屾瀯寤篗VC瀹炰緥 + var provider = form.GetFormServiceProvider(); + billView.Initialize(openParam, provider); + return billView as IBillView; + } + + + + + /// + /// 淇濆瓨鍗曟嵁 + /// + /// + /// + /// + /// 鏄惁鑷姩鎻愪氦瀹℃牳 + public static void SaveBill(Context ctx, IBillView billView, OperateOption saveOption, bool IsAutoSubmitAudit, out string Id, out string FBILLNO) + { + FBILLNO = ""; + Id = ""; + // 璋冪敤淇濆瓨鎿嶄綔 + IOperationResult saveResult = BusinessDataServiceHelper.Save( + ctx, + billView.BillBusinessInfo, + billView.Model.DataObject, + saveOption, + "Save"); + // 鏄剧ず澶勭悊缁撴灉 + if (saveResult == null) + { + billView.ShowErrMessage("鏈煡鍘熷洜瀵艰嚧淇濆瓨澶辫触锛"); + return; + } + else if (saveResult.IsSuccess == true) + {// 淇濆瓨鎴愬姛锛岀洿鎺ユ樉绀 + billView.ShowOperateResult(saveResult.OperateResult); + object[] pkArray = new object[] { saveResult.OperateResult[0].PKValue }; + //鑾峰彇淇濆瓨鎴愬姛鐨勫崟鎹紪鍙 + //FBillno = saveResult.OperateResult[0].Number; + //鑾峰彇淇濆瓨鎴愬姛鐨凢ID + Id = Convert.ToString(pkArray[0]); + FBILLNO = saveResult.OperateResult[0].Number; + //鏄惁鑷姩鎻愪氦瀹℃牳 + if (IsAutoSubmitAudit) + { + OperateOption submitOption = OperateOption.Create(); + //鎻愪氦 + if (Submit(ctx, Convert.ToString(pkArray[0]), billView.BusinessInfo.GetForm().Id) == "鎻愪氦鎴愬姛锛") + { + //濡傛灉鎻愪氦鎴愬姛,鍒欒繘琛屽鏍 + Audit(ctx, Convert.ToString(pkArray[0]), billView.BusinessInfo.GetForm().Id); + } + } + return; + } + else if (saveResult.InteractionContext != null + && saveResult.InteractionContext.Option.GetInteractionFlag().Count > 0) + {// 淇濆瓨澶辫触锛岄渶瑕佺敤鎴风‘璁ら棶棰 + + } + // 淇濆瓨澶辫触锛屾樉绀洪敊璇俊鎭 + if (saveResult.IsShowMessage) + { + saveResult.MergeValidateErrors(); + billView.ShowOperateResult(saveResult.OperateResult); + return; + } + } + + + /// + /// 瀹℃牳鍗曟嵁 + /// + /// + /// + /// + /// + public static string Audit(Context ctx, string fid, string Key) + { + //澹版槑閿欒淇℃伅鍙橀噺 + string _Message = string.Empty; + #region 瀹℃牳 + //鑾峰彇鍗曟嵁淇℃伅 + FormMetadata meta = MetaDataServiceHelper.Load(ctx, Key) as FormMetadata; + var data1 = BusinessDataServiceHelper.LoadSingle(ctx, fid, meta.BusinessInfo.GetDynamicObjectType()); + object[] idlist = new object[1]; + idlist[0] = fid; + //瀹℃牳 + OperateOption auditOption = OperateOption.Create(); + //auditOption.SetIgnoreWarning(true); + auditOption.SetIgnoreWarning(false); + auditOption.SetIgnoreInteractionFlag(true); + auditOption.AddInteractionFlag("STK_InvCheckResult");// 璺宠繃搴忓垪鍙锋牎楠 + IOperationResult auditResult = BusinessDataServiceHelper.Audit(ctx, meta.BusinessInfo, idlist, auditOption); + //瀹℃牳鎴愬姛 + if (auditResult.IsSuccess == true) + { + _Message = "瀹℃牳鎴愬姛锛"; + } + //瀹℃牳澶辫触 + else + { + //閬嶅巻閿欒淇℃伅骞舵嫾鎺 + foreach (var item in auditResult.ValidationErrors) + { + _Message = _Message + string.Format("{0}\r\n", item.Message); + } + if (auditResult.InteractionContext != null) + { + _Message = _Message + auditResult.InteractionContext.SimpleMessage + "\r\n"; + } + _Message = _Message.Remove(_Message.LastIndexOf("\r\n"), 2); + } + //杩斿洖閿欒淇℃伅 + return _Message; + #endregion + } + /// + /// 鎻愪氦鍗曟嵁 + /// + /// + /// + /// + /// + + public static string Submit(Context ctx, string fid, string Key) + { + //澹版槑閿欒淇℃伅鍙橀噺 + string _Message = string.Empty; + //鑾峰彇鍗曟嵁鍏冩暟鎹 + FormMetadata meta = MetaDataServiceHelper.Load(ctx, Key) as FormMetadata; + //鏍规嵁鍗曟嵁鍐呯爜鑾峰彇瀵瑰簲鍗曟嵁鏁版嵁鍖 + var data1 = BusinessDataServiceHelper.LoadSingle(ctx, fid, meta.BusinessInfo.GetDynamicObjectType()); + //澹版槑鍗曟嵁鍐呯爜闆嗗悎 + object[] idlist = new object[1]; + //灏嗘帴鍙g殑鍗曟嵁鍐呯爜娣诲姞鍒伴泦鍚堜腑 + idlist[0] = fid; + //鎻愪氦 + OperateOption submitOption = null; + //璋冪敤鎻愪氦鎿嶄綔 + IOperationResult subResult = BusinessDataServiceHelper.Submit(ctx, meta.BusinessInfo, idlist, "Submit", submitOption); + //鎻愪氦鎴愬姛 + if (subResult.IsSuccess == true) + { + _Message = "鎻愪氦鎴愬姛锛"; + } + //鎻愪氦澶辫触 + else + { + //閬嶅巻閿欒淇℃伅骞舵嫾鎺 + foreach (var item in subResult.ValidationErrors) + { + _Message = _Message + string.Format("{0}\r\n", item.Message); + } + if (subResult.InteractionContext != null) + { + _Message = _Message + subResult.InteractionContext.SimpleMessage + "\r\n"; + } + _Message = _Message.Remove(_Message.LastIndexOf("\r\n"), 2); + } + //杩斿洖閿欒淇℃伅 + return _Message; + } + + + /// + /// 鍒嗛厤 + /// + /// + /// + /// + /// + public static string Allocate(Context ctx, string fid, string Key, string orgId, string OrgName) + { + //澹版槑閿欒淇℃伅鍙橀噺 + string _Message = string.Empty; + //鑾峰彇鍗曟嵁鍏冩暟鎹 + FormMetadata meta = MetaDataServiceHelper.Load(ctx, Key) as FormMetadata; + //鏍规嵁鍗曟嵁鍐呯爜鑾峰彇瀵瑰簲鍗曟嵁鏁版嵁鍖 + var data1 = BusinessDataServiceHelper.LoadSingle(ctx, fid, meta.BusinessInfo.GetDynamicObjectType()); + //澹版槑鍗曟嵁鍐呯爜闆嗗悎 + object[] idlist = new object[1]; + //灏嗘帴鍙g殑鍗曟嵁鍐呯爜娣诲姞鍒伴泦鍚堜腑 + idlist[0] = fid; + //鎻愪氦 + OperateOption submitOption = null; + var allocateParameter = new Kingdee.BOS.Core.Metadata.Operation.AllocateParameter + (meta.BusinessInfo, meta.InheritPath, + 1, BOSEnums.Enu_AllocateType.Allocate, "Allocate"); + allocateParameter.PkId = new List { fid }; + allocateParameter.DestOrgId = Convert.ToInt64(orgId); + allocateParameter.DestOrgName = OrgName; + allocateParameter.AutoSubmitAndAudit = true; + allocateParameter.AllocateUserId = ctx.UserId; + //璋冪敤鍒嗛厤鎿嶄綔 + IOperationResult subResult = BusinessDataServiceHelper.Allocate(ctx, allocateParameter); + //鍒嗛厤鎴愬姛 + if (subResult.IsSuccess == true) + { + _Message = "鍒嗛厤鎴愬姛锛"; + } + //鎻愪氦澶辫触 + else + { + //閬嶅巻閿欒淇℃伅骞舵嫾鎺 + foreach (var item in subResult.ValidationErrors) + { + _Message = _Message + string.Format("{0}\r\n", item.Message); + } + if (subResult.InteractionContext != null) + { + _Message = _Message + subResult.InteractionContext.SimpleMessage + "\r\n"; + } + _Message = _Message.Remove(_Message.LastIndexOf("\r\n"), 2); + } + //杩斿洖閿欒淇℃伅 + return _Message; + } + + /// + /// 鍒涘缓鏍搁攢璁板綍鍗 + /// + public static string CreateAutoWrireRecord(Context ctx, string FOrgId, List DATA1, DynamicObjectCollection DATA2) + { + string FBILLNO; + string FID; + // 鏋勫缓涓涓狪BillView瀹炰緥锛岄氳繃姝ゅ疄渚嬶紝鍙互鏂逛究鐨勫~鍐 + IBillView billView = CommonHelper.CreateBillView(ctx, "QPHY_AutoWrireRecord"); + // billView.CreateNewModelData(); + ((IBillViewService)billView).LoadData(); + // 瑙﹀彂鎻掍欢鐨凮nLoad浜嬩欢锛 + // 缁勭粐鎺у埗鍩虹被鎻掍欢锛屽湪OnLoad浜嬩欢涓紝瀵逛富涓氬姟缁勭粐鏀瑰彉鏄惁鎻愮ず閫夐」杩涜鍒濆鍖栥 + // 濡傛灉涓嶈Е鍙慜nLoad浜嬩欢锛屼細瀵艰嚧涓讳笟鍔$粍缁囪祴鍊间笉鎴愬姛 + DynamicFormViewPlugInProxy eventProxy = billView.GetService(); + eventProxy.FireOnLoad(); + CreateAutoWrireRecordData(billView, ctx, FOrgId, DATA1, DATA2); + OperateOption saveOption = OperateOption.Create(); + Form form = billView.BillBusinessInfo.GetForm(); + if (form.FormIdDynamicProperty != null) + { + form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id); + } + //淇濆瓨宸ョ▼椤圭洰 + CommonHelper.SaveBill(ctx, billView, saveOption, true, out FID, out FBILLNO); + return FBILLNO; + } + + private static void CreateAutoWrireRecordData(IBillView billView, Context ctx, string FOrgId, List DATA1, DynamicObjectCollection DATA2) + { + billView.Model.SetValue("FOrgId", FOrgId, 0); + for (int i = 0; i < DATA1.Count; i++) + { + var Rowindex = billView.Model.GetEntryRowCount("FEntity"); + billView.Model.CreateNewEntryRow("FEntity"); + billView.Model.SetValue("FBILLNO2", DATA1[i]["FBILLNO3"], Rowindex); + billView.Model.SetValue("FDate2", DATA1[i]["FDate3"], Rowindex); + billView.Model.SetValue("FALLAMOUNT2", DATA1[i]["FALLAMOUNT3"], Rowindex); + billView.Model.SetValue("FCONTRACTNUMBER", DATA1[i]["FCONTRACTNUMBER3"], Rowindex); + billView.Model.SetValue("FClient", DATA1[i]["FClient3"], Rowindex); + billView.Model.SetValue("FProject", DATA1[i]["FProject3"], Rowindex); + billView.Model.SetValue("FCreated", DATA1[i]["FCreated3"], Rowindex); + billView.Model.SetValue("FAmountY", DATA1[i]["FAmountY3"], Rowindex); + billView.Model.SetValue("FCurr", DATA1[i]["FCurr3"], Rowindex); + } + for (int i = 0; i < DATA2.Count; i++) + { + var Rowindex = billView.Model.GetEntryRowCount("FEntity2"); + billView.Model.CreateNewEntryRow("FEntity2"); + billView.Model.SetValue("FBILLNO3", DATA2[i]["FBILLNO4"], Rowindex); + billView.Model.SetValue("FDate3", DATA2[i]["FDate4"], Rowindex); + billView.Model.SetValue("FALLAMOUNT3", DATA2[i]["FALLAMOUNT4"], Rowindex); + billView.Model.SetValue("FClient2", DATA2[i]["FClient4"], Rowindex); + billView.Model.SetValue("FRemark", DATA2[i]["FRemark4"], Rowindex); + billView.Model.SetValue("FCurr2", DATA2[i]["FCurr4"], Rowindex); + billView.Model.SetValue("FAmountY2", DATA2[i]["FAmountY4"], Rowindex); + } + } + + /// + /// 鍒涘缓鏍搁攢璁板綍鍗(鏀舵鍗曚负涓) + /// + public static string CreateAutoWrireRecord2(Context ctx, string FOrgId, List DATA1, CombinaAddSK DATA2) + { + string FBILLNO; + string FID; + // 鏋勫缓涓涓狪BillView瀹炰緥锛岄氳繃姝ゅ疄渚嬶紝鍙互鏂逛究鐨勫~鍐 + IBillView billView = CommonHelper.CreateBillView(ctx, "QPHY_AutoWrireRecord"); + // billView.CreateNewModelData(); + ((IBillViewService)billView).LoadData(); + // 瑙﹀彂鎻掍欢鐨凮nLoad浜嬩欢锛 + // 缁勭粐鎺у埗鍩虹被鎻掍欢锛屽湪OnLoad浜嬩欢涓紝瀵逛富涓氬姟缁勭粐鏀瑰彉鏄惁鎻愮ず閫夐」杩涜鍒濆鍖栥 + // 濡傛灉涓嶈Е鍙慜nLoad浜嬩欢锛屼細瀵艰嚧涓讳笟鍔$粍缁囪祴鍊间笉鎴愬姛 + DynamicFormViewPlugInProxy eventProxy = billView.GetService(); + eventProxy.FireOnLoad(); + CreateAutoWrireRecordData2(billView, ctx, FOrgId, DATA1, DATA2); + OperateOption saveOption = OperateOption.Create(); + Form form = billView.BillBusinessInfo.GetForm(); + if (form.FormIdDynamicProperty != null) + { + form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id); + } + //淇濆瓨宸ョ▼椤圭洰 + CommonHelper.SaveBill(ctx, billView, saveOption, true, out FID, out FBILLNO); + return FBILLNO; + } + private static void CreateAutoWrireRecordData2(IBillView billView, Context ctx, string FOrgId, List DATA1, CombinaAddSK DATA2) + { + billView.Model.SetValue("FOrgId", FOrgId, 0); + + decimal amount = DATA2.FALLAMOUNT; + + for (int i = 0; i < DATA1.Count; i++) + { + decimal amount2 = 0; + //鑰冭檻鍒版墜鍔ㄦ牳閿閲戦涓嶄竴瀹氱浉绛夌殑鎯呭喌 + if (amount == DATA1[0].FALLAMOUNT) + { + amount2 = DATA2.FALLAMOUNT; + } + else if (amount > DATA1[0].FALLAMOUNT) + { + amount2 = DATA1[i].FALLAMOUNT; + } + else if (amount - DATA1[i].FALLAMOUNT > 0) + { + amount2 = DATA1[i].FALLAMOUNT; + amount -= DATA1[i].FALLAMOUNT; + } + else + { + amount2 = amount; + } + var Rowindex = billView.Model.GetEntryRowCount("FEntity"); + billView.Model.CreateNewEntryRow("FEntity"); + billView.Model.SetValue("FBILLNO2", DATA1[i].FBIllNO, Rowindex); + billView.Model.SetValue("FDate2", DATA1[i].FDate, Rowindex); + billView.Model.SetValue("FALLAMOUNT2", amount2, Rowindex); + billView.Model.SetValue("FCONTRACTNUMBER", DATA1[i].FCONTRACTNUMBER, Rowindex); + billView.Model.SetValue("FClient", DATA1[i].FClient, Rowindex); + billView.Model.SetValue("FCreated", DATA1[i].FCreated, Rowindex); + billView.Model.SetValue("FSalesman", DATA1[i].FSalesman, Rowindex); + //billView.Model.SetValue("FProject", DATA1[i]["FProject3"], Rowindex); + //billView.Model.SetValue("FCreated", DATA1[i]["FCreated3"], Rowindex); + //billView.Model.SetValue("FAmountY", DATA1[i]["FAmountY3"], Rowindex); + //billView.Model.SetValue("FCurr", DATA1[i]["FCurr3"], Rowindex); + } + + //鑰冭檻鍒版墜鍔ㄦ牳閿閲戦涓嶄竴瀹氱浉绛夌殑鎯呭喌 + decimal amount1 = Convert.ToDecimal(DATA1.Sum(a => a.FALLAMOUNT)); + if (DATA2.FALLAMOUNT < amount1) + { + amount1 = DATA2.FALLAMOUNT; + } + + var Rowindex2 = billView.Model.GetEntryRowCount("FEntity2"); + billView.Model.CreateNewEntryRow("FEntity2"); + billView.Model.SetValue("FBILLNO3", DATA2.FBIllNO, Rowindex2); + billView.Model.SetValue("FDate3", DATA2.FDate, Rowindex2); + billView.Model.SetValue("FALLAMOUNT3", amount1, Rowindex2); + billView.Model.SetValue("FClient2", DATA2.FClient, Rowindex2); + billView.Model.SetValue("FRemark", DATA2.FRemark, Rowindex2); + billView.Model.SetValue("FCreated2", DATA2.FCreated, Rowindex2); + billView.Model.SetValue("FSalesman2", DATA2.FSalesman, Rowindex2); + billView.Model.SetValue("FCONTRACTNUMBER2", DATA2.FCONTRACTNUMBER, Rowindex2); + //billView.Model.SetValue("FCurr2", DATA2[i]["FCurr4"], Rowindex); + //billView.Model.SetValue("FAmountY2", DATA2[i]["FAmountY4"], Rowindex); + } + + /// + /// 鍒涘缓鏍搁攢璁板綍鍗(閿鍞鍗/搴旀敹鍗曚负涓) + /// + public static string CreateAutoWrireRecord3(Context ctx, string FOrgId, CombinaAddClass1 DATA1, List DATA2) + { + string FBILLNO; + string FID; + // 鏋勫缓涓涓狪BillView瀹炰緥锛岄氳繃姝ゅ疄渚嬶紝鍙互鏂逛究鐨勫~鍐 + IBillView billView = CommonHelper.CreateBillView(ctx, "QPHY_AutoWrireRecord"); + // billView.CreateNewModelData(); + ((IBillViewService)billView).LoadData(); + // 瑙﹀彂鎻掍欢鐨凮nLoad浜嬩欢锛 + // 缁勭粐鎺у埗鍩虹被鎻掍欢锛屽湪OnLoad浜嬩欢涓紝瀵逛富涓氬姟缁勭粐鏀瑰彉鏄惁鎻愮ず閫夐」杩涜鍒濆鍖栥 + // 濡傛灉涓嶈Е鍙慜nLoad浜嬩欢锛屼細瀵艰嚧涓讳笟鍔$粍缁囪祴鍊间笉鎴愬姛 + DynamicFormViewPlugInProxy eventProxy = billView.GetService(); + eventProxy.FireOnLoad(); + CreateAutoWrireRecordData3(billView, ctx, FOrgId, DATA1, DATA2); + OperateOption saveOption = OperateOption.Create(); + Form form = billView.BillBusinessInfo.GetForm(); + if (form.FormIdDynamicProperty != null) + { + form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id); + } + //淇濆瓨宸ョ▼椤圭洰 + CommonHelper.SaveBill(ctx, billView, saveOption, true, out FID, out FBILLNO); + return FBILLNO; + } + private static void CreateAutoWrireRecordData3(IBillView billView, Context ctx, string FOrgId, CombinaAddClass1 DATA1, List DATA2) + { + billView.Model.SetValue("FOrgId", FOrgId, 0); + + var Rowindex = billView.Model.GetEntryRowCount("FEntity"); + billView.Model.CreateNewEntryRow("FEntity"); + billView.Model.SetValue("FBILLNO2", DATA1.FBIllNO, Rowindex); + billView.Model.SetValue("FDate2", DATA1.FDate, Rowindex); + billView.Model.SetValue("FALLAMOUNT2", DATA1.FALLAMOUNT, Rowindex); + billView.Model.SetValue("FCONTRACTNUMBER", DATA1.FCONTRACTNUMBER, Rowindex); + billView.Model.SetValue("FClient", DATA1.FClient, Rowindex); + billView.Model.SetValue("FCreated", DATA1.FCreated, Rowindex); + billView.Model.SetValue("FSalesman", DATA1.FSalesman, Rowindex); + //billView.Model.SetValue("FProject", DATA1[i]["FProject3"], Rowindex); + //billView.Model.SetValue("FCreated", DATA1[i]["FCreated3"], Rowindex); + //billView.Model.SetValue("FAmountY", DATA1[i]["FAmountY3"], Rowindex); + //billView.Model.SetValue("FCurr", DATA1[i]["FCurr3"], Rowindex); + + + for (int i = 0; i < DATA2.Count; i++) + { + var Rowindex2 = billView.Model.GetEntryRowCount("FEntity2"); + billView.Model.CreateNewEntryRow("FEntity2"); + billView.Model.SetValue("FBILLNO3", DATA2[i].FBIllNO, Rowindex2); + billView.Model.SetValue("FDate3", DATA2[i].FDate, Rowindex2); + billView.Model.SetValue("FALLAMOUNT3", DATA2[i].FALLAMOUNT, Rowindex2); + billView.Model.SetValue("FClient2", DATA2[i].FClient, Rowindex2); + billView.Model.SetValue("FCONTRACTNUMBER2", DATA2[i].FCONTRACTNUMBER, Rowindex2); + billView.Model.SetValue("FRemark", DATA2[i].FRemark, Rowindex2); + billView.Model.SetValue("FCreated2", DATA2[i].FCreated, Rowindex2); + billView.Model.SetValue("FSalesman2", DATA2[i].FSalesman, Rowindex2); + //billView.Model.SetValue("FCurr2", DATA2[i]["FCurr4"], Rowindex); + //billView.Model.SetValue("FAmountY2", DATA2[i]["FAmountY4"], Rowindex); + } + } + + /// + /// 鏁板瓧灏忓啓杞ぇ鍐 + /// + /// + /// + public static string ConvertToChineseUppercase(int number) + { + // 瀹氫箟涓涓瓧鍏告潵瀛樺偍鏁板瓧鍒板ぇ鍐欐眽瀛楃殑鏄犲皠 + Dictionary numberToChineseMap = new Dictionary + { + { 0, "闆" }, + { 1, "涓" }, + { 2, "浜" }, + { 3, "涓" }, + { 4, "鍥" }, + { 5, "浜" }, + { 6, "鍏" }, + { 7, "涓" }, + { 8, "鍏" }, + { 9, "涔" } + }; + + // 妫鏌ュ瓧鍏镐腑鏄惁鍖呭惈璇ユ暟瀛 + if (numberToChineseMap.ContainsKey(number)) + { + return numberToChineseMap[number]; + } + else + { + // 澶勭悊瓒呭嚭鑼冨洿鐨勬儏鍐碉紝鍙互鎶涘嚭寮傚父鎴栬呰繑鍥為粯璁ゅ + throw new ArgumentException("鏁板瓧瓒呭嚭鑼冨洿"); + } + } + } +} diff --git a/Pilot_KD_Parino/Common/HttpClient.cs b/Pilot_KD_Parino/Common/HttpClient.cs new file mode 100644 index 0000000..7a38db1 --- /dev/null +++ b/Pilot_KD_Parino/Common/HttpClient.cs @@ -0,0 +1,102 @@ +锘縰sing Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Common +{ + public class HttpClient + { + /// + /// Seivice URL + /// + public string Url { get; set; } + /// + /// 鍐呭 + /// + public string Content { get; set; } + + + /// + /// Token + /// + public string Token { get; set; } + + /// + /// Cookie锛屼繚璇佺櫥褰曞悗锛屾墍鏈夎闂寔鏈変竴涓狢ookie锛 + /// + static CookieContainer Cookie = new CookieContainer(); + + /// + /// HTTP璁块棶 + /// + public string Post() + { + HttpWebRequest httpRequest = HttpWebRequest.Create(Url) as HttpWebRequest; + httpRequest.Method = "POST"; + httpRequest.ContentType = "application/json"; + httpRequest.CookieContainer = Cookie; + httpRequest.Timeout = 1000 * 60 * 10;//10min + + //httpRequest.Headers.Add("JWT", string.Format("Bearer {0}", Token==null?"": Token.Trim().Replace("\"", ""))); + httpRequest.Headers.Add("jwt", string.Format("Bearer {0}", Token == null ? "" : Token.Trim().Replace("\"", ""))); + + using (Stream reqStream = httpRequest.GetRequestStream()) + { + JObject jObj = new JObject(); + //jObj.Add("format", 1); + //jObj.Add("useragent", "ApiClient"); + //jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString()); + //jObj.Add("parameters", Content); + //jObj.Add("timestamp", DateTime.Now); + //jObj.Add("v", "1.0"); + string sContent = jObj.ToString(); + var bytes = UnicodeEncoding.UTF8.GetBytes(Content); + reqStream.Write(bytes, 0, bytes.Length); + reqStream.Flush(); + } + using (var repStream = httpRequest.GetResponse().GetResponseStream()) + { + using (var reader = new StreamReader(repStream)) + { + return ValidateResult(reader.ReadToEnd()); + } + } + } + + + + + public string Get() + { + string result = string.Empty; + string error = string.Empty; + + HttpWebRequest httpRequest = HttpWebRequest.Create(Url) as HttpWebRequest; + httpRequest.Timeout = 20000; + httpRequest.Method = "GET"; + httpRequest.KeepAlive = true; + httpRequest.Headers.Add("Authorization", "token"); + + HttpWebResponse reponse = (HttpWebResponse)httpRequest.GetResponse(); + string PostContent = new StreamReader(reponse.GetResponseStream()).ReadToEnd(); + return PostContent; + + } + + + + private static string ValidateResult(string responseText) + { + if (responseText.StartsWith("response_error:")) + { + return responseText.TrimStart("response_error:".ToCharArray()); + } + return responseText; + } + } +} diff --git a/Pilot_KD_Parino/Opportunities/ClickGridCellAndOpenUrlListPlugIn.cs b/Pilot_KD_Parino/Opportunities/ClickGridCellAndOpenUrlListPlugIn.cs new file mode 100644 index 0000000..f3a98e2 --- /dev/null +++ b/Pilot_KD_Parino/Opportunities/ClickGridCellAndOpenUrlListPlugIn.cs @@ -0,0 +1,64 @@ +锘縰sing Kingdee.BOS.Core.Bill; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.Metadata.FieldElement; + +namespace Pilot_KD_Parino.Opportunities +{ + /// + /// 銆愯〃鍗曟彃浠躲戝崟鎹綋琛屽弻鍑讳簨浠 + /// + [Description("銆愯〃鍗曟彃浠躲戝崟鎹綋琛屽弻鍑讳簨浠"), HotUpdate] + public class ClickGridCellAndOpenUrlListPlugIn : AbstractDynamicFormPlugIn + { + public override void EntryButtonCellClick(EntryButtonCellClickEventArgs e) + { + + base.EntryButtonCellClick(e); + + var fieldKey = "FBILLNO2"; + if (e.FieldKey.EqualsIgnoreCase(fieldKey)) + { + var billNo = this.View.Model.GetValue("FBILLNO2", e.Row); + + var formId = "SAL_SaleOrder"; + + var requisitionMetadata = (FormMetadata)MetaDataServiceHelper.Load(this.Context, formId); + + var objs = BusinessDataServiceHelper.Load(this.Context, requisitionMetadata.BusinessInfo, new List(new[] { new SelectorItemInfo("FID") }), OQLFilter.CreateHeadEntityFilter("FBillNo='" + billNo + "'")); + + if (objs == null || objs.Count() == 0) + return; + + var pkId = objs[0]["Id"].ToString(); + + BillShowParameter billShowParameter = new BillShowParameter(); + + billShowParameter.FormId = "SAL_SaleOrder";//鍗曟嵁鍚嶇О + billShowParameter.ParentPageId = this.View.PageId; + + billShowParameter.OpenStyle.ShowType = ShowType.Modal; + + billShowParameter.Status = OperationStatus.VIEW; + + //billShowParameter.PKey = strDJNM; + billShowParameter.PKey = pkId; + this.View.ShowForm(billShowParameter); + } + } + } +} diff --git a/Pilot_KD_Parino/Opportunities/OpportunitiesAuditPlugIn.cs b/Pilot_KD_Parino/Opportunities/OpportunitiesAuditPlugIn.cs new file mode 100644 index 0000000..4baa1e3 --- /dev/null +++ b/Pilot_KD_Parino/Opportunities/OpportunitiesAuditPlugIn.cs @@ -0,0 +1,67 @@ +锘縰sing Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Opportunities +{ + /// + /// 銆愬鏍告彃浠躲戝鏍稿悗甯﹀嚭鍩虹璧勬枡閿鍞憳 + /// + [Description("銆愬鏍告彃浠躲戝鏍稿悗甯﹀嚭鍩虹璧勬枡閿鍞憳"),HotUpdate] + public class OpportunitiesAuditPlugIn: AbstractOperationServicePlugIn + { + /// + /// 鎿嶄綔浜嬬墿鍚庝簨浠讹紙浜嬪姟鍐呰Е鍙戯級 + /// + /// + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + + if (this.FormOperation.OperationId == 1) //淇濆瓨8鎻愪氦9瀹℃牳1鍙嶅鏍26 + { + for (int i = 0; i < e.DataEntitys.Count(); i++) + { + var result = e.DataEntitys[i]; + + //鑾峰彇鍗曟嵁Id + string Id = result["Id"].ToString(); + + //閫氳繃鍗曟嵁Id鑾峰彇褰撳墠鍗曟嵁鐨勯攢鍞憳鍚嶇О + string sql = string.Format(@"/*dialect*/Select F_XSY From T_BAS_PREBDTHREE Where FId = '{0}'", Id); + var IdList = DBUtils.ExecuteDynamicObject(Context, sql); + + //鍒ゆ柇閿鍞憳鏂囨湰鏄惁瀛樺湪 + if (IdList.Count > 0) + { + //鑾峰彇閿鍞憳鍚嶇О + string fName = IdList[0]["F_XSY"].ToString(); + + //鑾峰彇閿鍞憳瀵瑰簲FID + string sql2 = string.Format(@"/*dialect*/Select top 1 fid From V_BD_SALESMAN_L Where FNAME = '{0}'", fName); + var IdList2 = DBUtils.ExecuteDynamicObject(Context, sql2); + + int SalesId = 0; + + //鍒ゆ柇鏄惁鍩虹璧勬枡瀛樺湪璇ラ攢鍞憳 + if (IdList2.Count > 0) + { + SalesId = IdList2[0]["fId"].Long2Int(); + } + + //淇敼褰撳墠鍗曟嵁鐨勫熀纭璧勬枡閿鍞憳 + string sql3 = string.Format(@"Update T_BAS_PREBDTHREE Set F_Sale = '{0}' Where FId = '{1}'", SalesId, Id); + DBUtils.ExecuteDynamicObject(Context, sql3); + } + } + } + } + } +} diff --git a/Pilot_KD_Parino/Opportunities/YJFT_AuditPlugIn.cs b/Pilot_KD_Parino/Opportunities/YJFT_AuditPlugIn.cs new file mode 100644 index 0000000..7fa66ea --- /dev/null +++ b/Pilot_KD_Parino/Opportunities/YJFT_AuditPlugIn.cs @@ -0,0 +1,32 @@ +锘縰sing Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Opportunities +{ + /// + /// 銆愬鏍告彃浠躲戜笟缁╁垎鎽婂崟瀹℃牳鍚庢洿鏂伴攢鍞鍗曞凡鍒嗘憡閲戦 + /// + [Description("銆愬鏍告彃浠躲戜笟缁╁垎鎽婂崟瀹℃牳鍚庢洿鏂伴攢鍞鍗曞凡鍒嗘憡閲戦"),HotUpdate] + public class YJFT_AuditPlugIn: AbstractOperationServicePlugIn + { + //EndOperationTransaction + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + if (this.FormOperation.OperationId == 1) //淇濆瓨8鎻愪氦9瀹℃牳1鍙嶅鏍26 + { + for (int i = 0; i < e.DataEntitys.Count(); i++) + { + } + } + } + } +} diff --git a/Pilot_KD_Parino/Pilot_KD_Parino.csproj b/Pilot_KD_Parino/Pilot_KD_Parino.csproj new file mode 100644 index 0000000..41e7652 --- /dev/null +++ b/Pilot_KD_Parino/Pilot_KD_Parino.csproj @@ -0,0 +1,343 @@ +锘 + + + + Debug + AnyCPU + {D8751053-74AF-4619-A5BE-939ADFF10991} + Library + Properties + Pilot_KD_Parino + Pilot_KD_Parino + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\AForge.Video.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\AForge.Video.DirectShow.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Antlr3.Runtime.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Aspose.Cells.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Castle.Core.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\DevExpress.Data.v13.1.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\DevExpress.Printing.v13.1.Core.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\DevExpress.Utils.v13.1.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\DevExpress.XtraEditors.v13.1.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\DocumentFormat.OpenXml.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\DocumentFormat.OpenXml.Framework.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.CalcEngine.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.Excel.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.Localization.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.PDF.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.PluginCalendar.WinForms.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.Win.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.Win.Chart.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\FarPoint.Win.Spread.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\K3Cloud.WebApi.Client.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.AOP.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Apm.dll + + + ..\..\..\..\閲戣澏\WebSite\Bin\Kingdee.BOS.Apm.Client.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.App.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.App.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.ApprovalFlow.PlugIns.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.BusinessEntity.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.CloudQueue.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Contracts.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.DataEntity.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Excel.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.ExcelToolHelper.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.FullTextSearch.Model.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.IBPM.Model.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.KDSReportCommon.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.KDSReportEntity.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.MDSCommonLib.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.MDSCore.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.MessageCenter.Model.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Performance.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.PlatformDetection.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.ServiceFacade.KDServiceClient.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.ServiceFacade.KDServiceFx.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.ServiceHelper.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.SQL.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Verification.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.VerificationHelper.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.VerificationService.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Web.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.Web.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.WebApi.Client.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.WebApi.FormService.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.BOS.WebApi.ServicesStub.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.FIN.App.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.FIN.CB.App.Report.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.FIN.Contracts.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.FIN.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.FIN.HS.App.Report.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.MFG.App.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.MFG.PLN.App.MrpModel.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.App.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.App.Credit.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.App.Sal.ServicePlugIn.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.App.Stock.Report.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.Business.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.Common.BusinessEntity.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.Contracts.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.Core.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.ServiceHelper.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Kingdee.K3.SCM.Stock.Business.PlugIn.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\log4net.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Newtonsoft.Json.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\NPOI.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\NPOI.OOXML.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\NPOI.OpenXml4Net.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\NPOI.OpenXmlFormats.dll + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Oracle.DataAccess.dll + + + + + False + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\System.Data.SQLite.dll + + + + + + + + + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Xceed.Document.NET.dll + + + ..\..\娲捐(1)\娲捐\git\6銆佺▼搴廫GZ_KD_Parino\bin\Debug\Xceed.Words.NET.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Pilot_KD_Parino/Planorder/List.cs b/Pilot_KD_Parino/Planorder/List.cs new file mode 100644 index 0000000..507a6c6 --- /dev/null +++ b/Pilot_KD_Parino/Planorder/List.cs @@ -0,0 +1,102 @@ +锘縰sing Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.List.PlugIn; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Kingdee.BOS; + +namespace Pilot_KD_Parino.Planorder +{ + [HotUpdate] + [Description("璁″垝璁㈠崟鍒楄〃鎻掍欢--鐐瑰嚮鍗曟嵁浣撳脊鍑哄搴旂殑鐖堕」鐗╂枡淇℃伅")] + public class List : AbstractListPlugIn + { + /// + /// 褰撳墠椤甸潰Id + /// + string currentRecId; + + + + /// + /// 琛岀偣鍑讳簨浠 + /// + /// + public override void EntityRowClick(EntityRowClickEventArgs e) + { + base.EntityRowClick(e); + } + + + public override void AfterDoOperation(AfterDoOperationEventArgs e) + { + base.AfterDoOperation(e); + //寮瑰嚭涓婄骇鐗╂枡淇℃伅 + if (e.Operation.Operation.Equals("ShowFatherMaterial")) + { + //鑾峰彇閫変腑琛屾暟鎹 + var lv = this.View as IListView; + var selectedRows = lv.SelectedRowsInfo; + //濡傛灉娌℃湁閫変腑琛屽垯閫鍑 + if (selectedRows == null || selectedRows.Count == 0) + { + this.View.ShowErrMessage("璇烽夋嫨鍗曟嵁锛"); + } + else if (selectedRows.Count > 1) + { + this.View.ShowErrMessage("鍙厑璁搁夋嫨涓寮犲崟鎹紒"); + } + else + { + //鑾峰彇閫変腑琛屾暟鎹殑鐗╂枡缂栫爜 + DynamicObjectDataRow DynamicObjectDataRow = selectedRows[0].DataRow as DynamicObjectDataRow; + //寮瑰嚭涓婄骇鐗╂枡淇℃伅 + ShowMaterialData(Convert.ToString((DynamicObjectDataRow.DynamicObject)["FMaterialId_Id"])); + } + } + } + + + /// + /// 寮瑰嚭鐖堕」鐗╂枡娓呭崟淇℃伅 + /// + /// + public void ShowMaterialData(string FMaterialId) + { + //鑾峰彇宸叉墦寮鐨剉iew + IDynamicFormView view = this.View.GetView(currentRecId); + if (view != null) + { + //鍏抽棴宸叉墦寮view + view.Close(); + this.View.SendDynamicFormAction(view); + } + + ListShowParameter ListShowParameter = new ListShowParameter(); + //鏄剧ず鐗╂枡娓呭崟 + //澹版槑鍒楄〃鏄剧ず鍙傛暟 + var listShowParameter = new ListShowParameter(); + var schemeId = "672eeb2229cf3c"; // 杩囨护鏂规鍐呯爜 + //澹版槑鏄墿鏂欐竻鍗曞垪琛 + listShowParameter.FormId = "ENG_BOM"; + listShowParameter.PageId = Guid.NewGuid().ToString(); + //璁剧疆杩囨护鏉′欢,鍙渶瑕佸綋鍓嶇墿鏂欑紪鐮佸氨琛屼簡 + listShowParameter.ListFilterParameter.Filter = string.Format(" FMATERIALIDCHILD = '{0}' ", FMaterialId); + //鏀寔杩斿洖鏁版嵁 + listShowParameter.IsLookUp = false; + ListShowParameter.ParentPageId = this.View.PageId; + listShowParameter.OpenStyle.ShowType = ShowType.FloatingAutoHide; + listShowParameter.IsShowFilter = false; + listShowParameter.FilterSchemeId = schemeId; + //listShowParameter.FilterSchemeId = "60ed36b2fe38c7"; + currentRecId = listShowParameter.PageId; + this.View.ShowForm(listShowParameter); + } + } +} diff --git a/Pilot_KD_Parino/Properties/AssemblyInfo.cs b/Pilot_KD_Parino/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6017a3d --- /dev/null +++ b/Pilot_KD_Parino/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +锘縰sing System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 鏈夊叧绋嬪簭闆嗙殑涓鑸俊鎭敱浠ヤ笅 +// 鎺у埗銆傛洿鏀硅繖浜涚壒鎬у煎彲淇敼 +// 涓庣▼搴忛泦鍏宠仈鐨勪俊鎭 +[assembly: AssemblyTitle("Pilot_KD_Parino")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Pilot_KD_Parino")] +[assembly: AssemblyCopyright("Copyright 漏 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 灏 ComVisible 璁剧疆涓 false 浼氫娇姝ょ▼搴忛泦涓殑绫诲瀷 +//瀵 COM 缁勪欢涓嶅彲瑙併傚鏋滈渶瑕佷粠 COM 璁块棶姝ょ▼搴忛泦涓殑绫诲瀷 +//璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规ц缃负 true銆 +[assembly: ComVisible(false)] + +// 濡傛灉姝ら」鐩悜 COM 鍏紑锛屽垯涓嬪垪 GUID 鐢ㄤ簬绫诲瀷搴撶殑 ID +[assembly: Guid("d8751053-74af-4619-a5be-939adff10991")] + +// 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓肩粍鎴: +// +// 涓荤増鏈 +// 娆$増鏈 +// 鐢熸垚鍙 +// 淇鍙 +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill.cs new file mode 100644 index 0000000..9d66221 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill.cs @@ -0,0 +1,1036 @@ +锘縰sing Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Pilot_KD_Parino.Common; +using Kingdee.BOS.ServiceHelper; +using Kingdee.K3.FIN.Core; +using Kingdee.BOS.App.Data; + +namespace Pilot_KD_Parino.QPHY_AutoWrire +{ + [HotUpdate] + [Description("鏀舵鏍搁攢")] + //鏈鍒濈殑鐗堟湰 涓嶇敤浜 + public class Bill : AbstractDynamicFormPlugIn + { + public List SaleBILLLIS = new List(); + public List ReceiveBILLLIST = new List(); + //鎷挎潵鍖归厤鐨勯泦鍚 + public List SaleBILLLIS2 = new List(); + public override void AfterDoOperation(AfterDoOperationEventArgs e) + { + base.AfterDoOperation(e); + //鏂板鍖归厤 + if (e.Operation.Id.ToString().ToUpper().Equals("ADDROW3")) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity3"); + this.View.Model.CreateNewEntryRow("FEntity3"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + } + //鏂板鍖归厤 + if (e.Operation.Id.ToString().ToUpper().Equals("ADDROW")) + { + int CurrentIndex = this.View.Model.GetEntryCurrentRowIndex("FEntity"); + if (CurrentIndex == -1) + { + this.View.ShowErrMessage("璇烽夋嫨琛岋紒"); + return; + } + int CurrentIndex2 = this.View.Model.GetEntryCurrentRowIndex("FEntity3"); + if (CurrentIndex2 == -1) + { + this.View.ShowErrMessage("璇烽夋嫨琛岋紒"); + return; + } + var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", CurrentIndex2)); + this.View.Model.SetValue("FPARENTROWID", FROWID, CurrentIndex2); + //鑾峰彇鍗曟嵁浣撹鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + DynamicObject obj = FEntity[CurrentIndex]; + DynamicObjectCollection FEntity3 = this.View.Model.DataObject["FEntity3"] as DynamicObjectCollection; + DynamicObject obj2 = FEntity3[CurrentIndex2]; + //瀛愬崟鎹綋鏁版嵁鍖 + EntryEntity FEntity4 = this.View.BusinessInfo.GetEntryEntity("FEntity4"); + //鑾峰彇瀛愬崟鎹綋鏁版嵁 + var FSubEntityObjs = FEntity4.DynamicProperty.GetValue(obj2) as DynamicObjectCollection; + this.View.Model.DeleteEntryRow("FEntity", CurrentIndex); + if (Convert.ToString(obj2["FBILLNO3"]) == "") + { + var RowId = SequentialGuid.NewGuid().ToString(); + this.View.Model.SetValue("FROWID", RowId, CurrentIndex2); + this.View.Model.SetValue("FPARENTROWID", RowId, CurrentIndex2); + this.View.Model.SetValue("FBILLNO3", obj["FBILLNO"], CurrentIndex2); + this.View.Model.SetValue("FDATE3", obj["FDATE"], CurrentIndex2); + this.View.Model.SetValue("FALLAMOUNT3", obj["FALLAMOUNT"], CurrentIndex2); + this.View.Model.SetValue("FType3", obj["FType"], CurrentIndex2); + //--------------20250121--------------鈫 + this.View.Model.SetValue("FCONTRACTNUMBER3", obj["FCONTRACTNUMBER"], CurrentIndex2); + this.View.Model.SetValue("FClient3", obj["FClient"], CurrentIndex2); + this.View.Model.SetValue("FProject3", obj["FProject"], CurrentIndex2); + this.View.Model.SetValue("FCreated3", obj["FCreated"], CurrentIndex2); + this.View.Model.SetValue("FCurr3", obj["FCurr"], CurrentIndex2); + this.View.Model.SetValue("FAmountY3", obj["FAmountY"], CurrentIndex2); + //--------------20250121--------------鈫 + } + else + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity3"); + this.View.Model.CreateNewEntryRow("FEntity3"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO3", obj["FBILLNO"], Rowindex); + this.View.Model.SetValue("FDATE3", obj["FDATE"], Rowindex); + this.View.Model.SetValue("FALLAMOUNT3", obj["FALLAMOUNT"], Rowindex); + this.View.Model.SetValue("FType3", obj["FType"], Rowindex); + //--------------20250121--------------鈫 + this.View.Model.SetValue("FCONTRACTNUMBER3", obj["FCONTRACTNUMBER"], Rowindex); + this.View.Model.SetValue("FClient3", obj["FClient"], Rowindex); + this.View.Model.SetValue("FProject3", obj["FProject"], Rowindex); + this.View.Model.SetValue("FCreated3", obj["FCreated"], Rowindex); + this.View.Model.SetValue("FCurr3", obj["FCurr"], Rowindex); + this.View.Model.SetValue("FAmountY3", obj["FAmountY"], Rowindex); + //--------------20250121--------------鈫 + //鑾峰彇瀛愬崟鎹綋鏁版嵁 + var FSubEntityObjsNew = FEntity4.DynamicProperty.GetValue(FEntity3[Rowindex]) as DynamicObjectCollection; + foreach (var item in FSubEntityObjs) + { + //鏂板瀛愬崟鎹綋琛 + var FSubEntityObj = FSubEntityObjsNew.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject; + FSubEntityObj["FBILLNO4"] = item["FBILLNO4"]; + FSubEntityObj["FDate4"] = item["FDate4"]; + FSubEntityObj["FALLAMOUNT4"] = item["FALLAMOUNT4"]; + //--------------20250121--------------鈫 + FSubEntityObj["FRemark4"] = item["FRemark4"]; + FSubEntityObj["FClient4"] = item["FClient4"]; + FSubEntityObj["FCurr4"] = item["FCurr4"]; + FSubEntityObj["FAmountY4"] = item["FAmountY4"]; + //--------------20250121--------------鈫 + FSubEntityObjsNew.Add(FSubEntityObj); + } + } + var FEntity3List = FEntity3.Where(t => Convert.ToString(t["PARENTROWID"]) == FROWID).ToList(); + this.View.Model.SetValue("FALLAMOUNTSUM", FEntity3List.Sum(t => Convert.ToDouble(t["FALLAMOUNT3"])), CurrentIndex2); + // 閲嶆柊鍔犺浇鏁版嵁鍖 + //DBServiceHelper.LoadReferenceObject(this.Context, FEntity3.ToArray(), FEntity3.FirstOrDefault().DynamicObjectType, false); + this.View.UpdateView("FEntity3"); + this.View.UpdateView("FEntity"); + for (int i = 0; i < this.View.Model.GetEntryRowCount("FEntity3"); i++) + { + this.View.GetControl("FEntity3").ExpandedRow(i); + } + + var List = FEntity3.Where(t => t["PARENTROWID"] == obj2["PARENTROWID"]).ToList(); + //鑾峰彇鎬婚噾棰 + var FALLAMOUNT3Sum = Convert.ToDouble(List.Sum(t => Convert.ToDouble(t["FALLAMOUNT3"]))); + //鑾峰彇绗竴琛屾暟鎹 + var ListFirst = FEntity3.Where(t => t["ROWID"] == obj2["PARENTROWID"]).ToList(); + //璁剧疆鎬婚噾棰 + if (ListFirst.Count > 0) + { + this.View.Model.SetValue("FALLAMOUNTSUM", FALLAMOUNT3Sum, Convert.ToInt32(ListFirst[0]["SEQ"]) - 1); + } + + } + //鏂板鍖归厤 + if (e.Operation.Id.ToString().ToUpper().Equals("ADDROW2")) + { + int CurrentIndex = this.View.Model.GetEntryCurrentRowIndex("FEntity2"); + int CurrentIndex2 = this.View.Model.GetEntryCurrentRowIndex("FEntity3"); + if (CurrentIndex == -1) + { + this.View.ShowErrMessage("璇烽夋嫨琛岋紒"); + return; + } + if (CurrentIndex2 == -1) + { + this.View.ShowErrMessage("璇烽夋嫨琛岋紒"); + return; + } + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + DynamicObject obj = FEntity2[CurrentIndex]; + DynamicObjectCollection FEntity3 = this.View.Model.DataObject["FEntity3"] as DynamicObjectCollection; + DynamicObject obj2 = FEntity3[CurrentIndex2]; + //瀛愬崟鎹綋鏁版嵁鍖 + EntryEntity FEntity4 = this.View.BusinessInfo.GetEntryEntity("FEntity4"); + var List = FEntity3.Where(t => t["PARENTROWID"] == obj2["PARENTROWID"]).ToList(); + foreach (var item in List) + { + //鑾峰彇瀛愬崟鎹綋鏁版嵁 + var FSubEntityObjs = FEntity4.DynamicProperty.GetValue(item) as DynamicObjectCollection; + //鏂板瀛愬崟鎹綋琛 + var FSubEntityObj = FSubEntityObjs.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject; + FSubEntityObj["FBILLNO4"] = obj["FBILLNO2"]; + FSubEntityObj["FDate4"] = obj["FDate2"]; + FSubEntityObj["FALLAMOUNT4"] = obj["FALLAMOUNT2"]; + //--------------20250121--------------鈫 + FSubEntityObj["FRemark4"] = obj["FRemark2"]; + FSubEntityObj["FClient4"] = obj["FClient2"]; + FSubEntityObj["FCurr4"] = obj["FCurr2"]; + FSubEntityObj["FAmountY4"] = obj["FAmountY2"]; + //--------------20250121--------------鈫 + FSubEntityObjs.Add(FSubEntityObj); + } + // 閲嶆柊鍔犺浇鏁版嵁鍖 + DBServiceHelper.LoadReferenceObject(this.Context, FEntity3.ToArray(), FEntity3.FirstOrDefault().DynamicObjectType, false); + this.View.Model.DeleteEntryRow("FEntity2", CurrentIndex); + this.View.UpdateView("FEntity3"); + this.View.UpdateView("FEntity4"); + this.View.UpdateView("FEntity2"); + for (int i = 0; i < this.View.Model.GetEntryRowCount("FEntity3"); i++) + { + this.View.GetControl("FEntity3").ExpandedRow(i); + } + } + //鍒犻櫎鍖归厤 + if (e.Operation.Id.ToString().ToUpper().Equals("DELETEROW")) + { + int CurrentIndex2 = this.View.Model.GetEntryCurrentRowIndex("FEntity3"); + if (CurrentIndex2 == -1) + { + this.View.ShowErrMessage("璇烽夋嫨琛岋紒"); + return; + } + DynamicObjectCollection FEntity3 = this.View.Model.DataObject["FEntity3"] as DynamicObjectCollection; + DynamicObject obj2 = FEntity3[CurrentIndex2]; + + var List = FEntity3.Where(t => t["PARENTROWID"] == obj2["PARENTROWID"]).ToList(); + + + if (List.Count == 1) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + this.View.Model.SetValue("FBILLNO", obj2["FBILLNO3"], Rowindex); + this.View.Model.SetValue("FDATE", obj2["FDATE3"], Rowindex); + this.View.Model.SetValue("FALLAMOUNT", obj2["FALLAMOUNT3"], Rowindex); + this.View.Model.SetValue("FType", obj2["FType3"], Rowindex); + //--------------20250121--------------鈫 + this.View.Model.SetValue("FCONTRACTNUMBER", obj2["FCONTRACTNUMBER3"], Rowindex); + this.View.Model.SetValue("FClient", obj2["FClient3"], Rowindex); + this.View.Model.SetValue("FProject", obj2["FProject3"], Rowindex); + this.View.Model.SetValue("FCreated", obj2["FCreated3"], Rowindex); + this.View.Model.SetValue("FCurr", obj2["FCurr3"], Rowindex); + this.View.Model.SetValue("FAmountY", obj2["FAmountY3"], Rowindex); + //--------------20250121--------------鈫 + //瀛愬崟鎹綋鏁版嵁鍖 + EntryEntity FEntity4 = this.View.BusinessInfo.GetEntryEntity("FEntity4"); + //鑾峰彇瀛愬崟鎹綋鏁版嵁 + var FSubEntityObjs = FEntity4.DynamicProperty.GetValue(obj2) as DynamicObjectCollection; + foreach (var item in FSubEntityObjs) + { + Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FBILLNO2", item["FBILLNO4"], Rowindex); + this.View.Model.SetValue("FDATE2", item["FDATE4"], Rowindex); + this.View.Model.SetValue("FALLAMOUNT2", item["FALLAMOUNT4"], Rowindex); + //--------------20250121--------------鈫 + this.View.Model.SetValue("FRemark2", item["FRemark4"], Rowindex); + this.View.Model.SetValue("FClient2", item["FClient4"], Rowindex); + this.View.Model.SetValue("FCurr2", item["FCurr4"], Rowindex); + this.View.Model.SetValue("FAmountY2", item["FAmountY4"], Rowindex); + //--------------20250121--------------鈫 + } + } + else + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + this.View.Model.SetValue("FBILLNO", obj2["FBILLNO3"], Rowindex); + this.View.Model.SetValue("FDATE", obj2["FDATE3"], Rowindex); + this.View.Model.SetValue("FALLAMOUNT", obj2["FALLAMOUNT3"], Rowindex); + this.View.Model.SetValue("FType", obj2["FType3"], Rowindex); + //--------------20250121--------------鈫 + this.View.Model.SetValue("FCONTRACTNUMBER", obj2["FCONTRACTNUMBER3"], Rowindex); + this.View.Model.SetValue("FClient", obj2["FClient3"], Rowindex); + this.View.Model.SetValue("FProject", obj2["FProject3"], Rowindex); + this.View.Model.SetValue("FCreated", obj2["FCreated3"], Rowindex); + this.View.Model.SetValue("FCurr", obj2["FCurr3"], Rowindex); + this.View.Model.SetValue("FAmountY", obj2["FAmountY3"], Rowindex); + //--------------20250121--------------鈫 + } + this.View.Model.DeleteEntryRow("FEntity3", CurrentIndex2); + List = FEntity3.Where(t => t["PARENTROWID"] == obj2["PARENTROWID"]).ToList(); + //鑾峰彇鎬婚噾棰 + var FALLAMOUNT3Sum = Convert.ToDouble(List.Sum(t => Convert.ToDouble(t["FALLAMOUNT3"]))); + //鑾峰彇绗竴琛屾暟鎹 + var ListFirst = FEntity3.Where(t => t["ROWID"] == obj2["PARENTROWID"]).ToList(); + //璁剧疆鎬婚噾棰 + if (ListFirst.Count > 0) + { + this.View.Model.SetValue("FALLAMOUNTSUM", FALLAMOUNT3Sum, Convert.ToInt32(ListFirst[0]["SEQ"]) - 1); + } + } + + //鍒犻櫎鍖归厤 + if (e.Operation.Id.ToString().ToUpper().Equals("DELETEROW2")) + { + int CurrentIndex4 = this.View.Model.GetEntryCurrentRowIndex("FEntity4"); + if (CurrentIndex4 == -1) + { + this.View.ShowErrMessage("璇烽夋嫨琛岋紒"); + return; + } + int CurrentIndex3 = this.View.Model.GetEntryCurrentRowIndex("FEntity3"); + if (CurrentIndex3 == -1) + { + this.View.ShowErrMessage("璇烽夋嫨琛岋紒"); + return; + } + DynamicObjectCollection FEntity3 = this.View.Model.DataObject["FEntity3"] as DynamicObjectCollection; + //瀛愬崟鎹綋鏁版嵁鍖 + EntryEntity FEntity4 = this.View.BusinessInfo.GetEntryEntity("FEntity4"); + DynamicObject obj3 = FEntity3[CurrentIndex3]; + var FSubEntityObjs = FEntity4.DynamicProperty.GetValue(obj3) as DynamicObjectCollection; + var FSubEntityObj = FSubEntityObjs[CurrentIndex4]; + + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FBILLNO2", FSubEntityObj["FBILLNO4"], Rowindex); + this.View.Model.SetValue("FDATE2", FSubEntityObj["FDATE4"], Rowindex); + this.View.Model.SetValue("FALLAMOUNT2", FSubEntityObj["FALLAMOUNT4"], Rowindex); + //--------------20250121--------------鈫 + this.View.Model.SetValue("FRemark2", FSubEntityObj["FRemark4"], Rowindex); + this.View.Model.SetValue("FClient2", FSubEntityObj["FClient4"], Rowindex); + this.View.Model.SetValue("FCurr2", FSubEntityObj["FCurr4"], Rowindex); + this.View.Model.SetValue("FAmountY2", FSubEntityObj["FAmountY4"], Rowindex); + //--------------20250121--------------鈫 + var List = FEntity3.Where(t => t["PARENTROWID"] == obj3["PARENTROWID"]).ToList(); + foreach (var item in List) + { + FSubEntityObjs = FEntity4.DynamicProperty.GetValue(item) as DynamicObjectCollection; + var FSubEntityObjsNew = FSubEntityObjs.Where(t => t["FBILLNO4"] == FSubEntityObj["FBILLNO4"]).ToList(); + foreach (var item2 in FSubEntityObjsNew) + { + FSubEntityObjs.Remove(item2); + } + } + DBServiceHelper.LoadReferenceObject(this.Context, FEntity3.ToArray(), FEntity3.FirstOrDefault().DynamicObjectType, false); + this.View.UpdateView("FEntity3"); + this.View.UpdateView("FEntity4"); + } + } + + /// + /// 鐐瑰嚮鎸夐挳鎿嶄綔 + /// + /// + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + //鑾峰彇鏁版嵁 + if (e.BarItemKey.ToString().ToUpper().Equals("FGETDATE")) + { + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + List SaleBILLLISnew = new List(); + List ReceiveBILLLISTNew = new List(); + //鍒犻櫎鍥涗釜鍗曟嵁浣 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + this.View.Model.DeleteEntryData("FEntity3"); + this.View.Model.DeleteEntryData("FEntity4"); + DynamicObject FOrgId = this.View.Model.GetValue("FOrgId") as DynamicObject; + //DynamicObject FCustId = this.View.Model.GetValue("FCustId") as DynamicObject; + DynamicObjectCollection FCustId2 = this.View.Model.GetValue("FCustId") as DynamicObjectCollection; + var FIDTEST = FCustId2?.Select(n => (n["FCustId"] as DynamicObject)["msterID"].ToString()).ToList(); + + string fCUSTId = ""; + + foreach (var item in FIDTEST) + { + string sqlKH = string.Format(@"/*dialect*/ + Select FCUSTID From T_BD_CUSTOMER + Where FMASTERID = '{0}' + AND FUSEORGID = {1} + AND FDOCUMENTSTATUS = 'C'", item, Convert.ToString(FOrgId["ID"])); + + var sqlKHList = DBUtils.ExecuteDynamicObject(Context, sqlKH); + if (sqlKHList.Count() > 0) + { + fCUSTId += "'" + sqlKHList[0]["FCUSTID"] + "',"; + } + + } + + fCUSTId += "'0'"; + + if (FIDTEST == null) + { + this.View.ShowErrMessage("璇疯緭鍏ュ鎴蜂俊鎭紒"); + return; + } + + //string fCUSTId = "'" + string.Join("','", FIDTEST) + "'"; + + //璋冪敤SQL鑾峰彇鏁版嵁 + var WriteOrderDate = SQL.SqlManage.GetWriteOrderDate2(this.Context, Convert.ToString(FOrgId["ID"]), fCUSTId); + var WriteReceiveDate = SQL.SqlManage.GetWriteReceiveDate2(this.Context, Convert.ToString(FOrgId["ID"]), fCUSTId); + foreach (var item in WriteOrderDate) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FIs30 = Convert.ToBoolean(item["FIs30"]), + FType = Convert.ToString(item["FType"]), + FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FCUSTID"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FProject = Convert.ToInt32(item["F_PROJECTNAME"]), + FALLAMOUNTY = Convert.ToDouble(item["FALLAMOUNTY"]), + FCurr = Convert.ToInt32(item["FCurr"]) + }); + } + foreach (var item in WriteReceiveDate) + { + ReceiveBILLLIST.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FClient = Convert.ToInt32(item["FCONTACTUNIT"]), + FRemark = Convert.ToString(item["FREMARK"]), + FALLAMOUNTY = Convert.ToDouble(item["FALLAMOUNTY"]), + FCurr = Convert.ToInt32(item["FCurr"]) + }); + } + SaleBILLLIS2 = SaleBILLLIS.Where(t => t.FIs30 == true).ToList(); + + #region 浠g爜娉ㄩ噴 + + //SaleBILLLIS = new List() + //{ + // new CombinaClass(){FBIllNO="A01",FDate="0",FALLAMOUNT=100,FIs30=true,FType = "閿鍞鍗" }, + // new CombinaClass(){FBIllNO="A02",FDate="1",FALLAMOUNT=100,FIs30=true,FType = "閿鍞鍗" }, + // new CombinaClass(){FBIllNO="A03",FDate="2",FALLAMOUNT=500,FIs30=true,FType = "閿鍞鍗" }, + // new CombinaClass(){FBIllNO="A04",FDate="3",FALLAMOUNT=100,FIs30=true,FType = "閿鍞鍗" }, + // new CombinaClass(){FBIllNO="A05",FDate="4",FALLAMOUNT=100,FIs30=true,FType = "閿鍞鍗" }, + // new CombinaClass(){FBIllNO="A06",FDate="5",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A07",FDate="6",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A08",FDate="7",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A09",FDate="8",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A10",FDate="9",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A11",FDate="10",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A12",FDate="11",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A13",FDate="12",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A14",FDate="13",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A15",FDate="14",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A16",FDate="15",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A17",FDate="16",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A18",FDate="17",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A19",FDate="18",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A20",FDate="19",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A21",FDate="20",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A22",FDate="21",FALLAMOUNT=9500 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A22",FDate="21",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A23",FDate="22",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A24",FDate="23",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A25",FDate="24",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A26",FDate="25",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A27",FDate="26",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A28",FDate="27",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A29",FDate="28",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A30",FDate="29",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A01",FDate="0",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A02",FDate="1",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A03",FDate="2",FALLAMOUNT=500,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A04",FDate="3",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A05",FDate="4",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A06",FDate="5",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A07",FDate="6",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A08",FDate="7",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A09",FDate="8",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A10",FDate="9",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A11",FDate="10",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A12",FDate="11",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A13",FDate="12",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A14",FDate="13",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A15",FDate="14",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A16",FDate="15",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A17",FDate="16",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A18",FDate="17",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A19",FDate="18",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A20",FDate="19",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A21",FDate="20",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A22",FDate="21",FALLAMOUNT=9500 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A22",FDate="21",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A23",FDate="22",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A24",FDate="23",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A25",FDate="24",FALLAMOUNT=100,FIs30=true ,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A26",FDate="25",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A27",FDate="26",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A28",FDate="27",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + // new CombinaClass(){FBIllNO="A29",FDate="28",FALLAMOUNT=100,FIs30=true,FType = "搴旀敹鍗" }, + // new CombinaClass(){FBIllNO="A30",FDate="29",FALLAMOUNT=100 ,FIs30=true,FType = "搴旀敹鍗"}, + //}; + //ReceiveBILLLIST = new List() + //{ + // new CombinaClass(){FBIllNO="C01",FDate="0",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C02",FDate="1",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C03",FDate="2",FALLAMOUNT=600 }, + // new CombinaClass(){FBIllNO="C04",FDate="3",FALLAMOUNT=700 }, + // new CombinaClass(){FBIllNO="C05",FDate="4",FALLAMOUNT=200 }, + // new CombinaClass(){FBIllNO="C06",FDate="5",FALLAMOUNT=300 }, + // new CombinaClass(){FBIllNO="C07",FDate="6",FALLAMOUNT=1400 }, + // new CombinaClass(){FBIllNO="C08",FDate="7",FALLAMOUNT=1600 }, + // new CombinaClass(){FBIllNO="C09",FDate="8",FALLAMOUNT=1800 }, + // new CombinaClass(){FBIllNO="C10",FDate="9",FALLAMOUNT=200 }, + // new CombinaClass(){FBIllNO="C21",FDate="20",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C22",FDate="21",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C23",FDate="22",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C24",FDate="23",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C25",FDate="24",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C26",FDate="25",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C27",FDate="26",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C28",FDate="27",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C29",FDate="28",FALLAMOUNT=100 }, + // new CombinaClass(){FBIllNO="C30",FDate="29",FALLAMOUNT=100 }, + //}; + //SaleBILLLIS2 = SaleBILLLIS.Where(t => t.FIs30 == true).ToList(); + + #endregion + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLIS[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("FALLAMOUNT", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //椤圭洰鍚嶇О + this.View.Model.SetValue("FProject", SaleBILLLIS[i].FProject, i); + //鍒跺崟浜 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i].FCreated, i); + //甯佸埆 + this.View.Model.SetValue("FCurr", SaleBILLLIS[i].FCurr, i); + //閲戦锛堝師甯侊級 + this.View.Model.SetValue("FAmountY", SaleBILLLIS[i].FALLAMOUNTY, i); + + this.View.UpdateView("FEntity"); + } + //缁戝畾鏀舵鍗曟暟鎹 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLIST[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("FALLAMOUNT2", ReceiveBILLLIST[i].FALLAMOUNT, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, i); + //澶囨敞 + this.View.Model.SetValue("FRemark2", ReceiveBILLLIST[i].FRemark, i); + //甯佸埆 + this.View.Model.SetValue("FCurr2", ReceiveBILLLIST[i].FCurr, i); + //閲戦锛堝師甯侊級 + this.View.Model.SetValue("FAmountY2", ReceiveBILLLIST[i].FALLAMOUNTY, i); + + this.View.UpdateView("FEntity2"); + } + } + + //鑷姩鍖归厤 + if (e.BarItemKey.ToString().ToUpper().Equals("FAUTOWRITE")) + { + //閿鍞鍗曠粦瀹氭暟鎹 + var SaleBILLLISNew = new List(SaleBILLLIS); + List FBILLNOLIST = new List(); + List FClient = new List(); + List result = new List(); + var FStartTime = DateTime.Now; + #region 鍖归厤閿鍞鍗 + var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "閿鍞鍗").ToList(); + //-----------20250117--------------------鈫 + //灏嗛攢鍞鍗曟牴鎹鎴峰垎缁 + var FClientList = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); + //璁$畻鍒嗙粍姹囨诲悎璁¢噾棰濈敤浜庨厤瀵规敹娆惧崟 + for (int i = 0; i < FClientList.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = SaleBILLLIS2Sal.Where(a => a.FClient == FClientList[i].Key).ToList(); + CombinationGenerator.GetCombinations(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //------------20250117-------------------鈫 + //瀛樺偍鏀舵鍗 + List ReceiveBILLLISTNew = new List(ReceiveBILLLIST); + //瀛樺偍瀵瑰簲閿鍞鍗/搴旀敹鍗曚互鍙婃敹娆惧崟鐨 + List resultNew = new List(); + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + var aaa = CombinationGenerator.GetCombinationsDataByList2(result, ReceiveBILLLIST[i].FALLAMOUNT, ReceiveBILLLIST[i].FClient); + if (aaa.Count > 0) + { + //FBIllNO瀛樻斁瀵瑰簲鐨勯攢鍞鍗曠紪鍙枫丗BIllNO2瀛樻斁瀵瑰簲鏀舵鍗曠紪鍙 + aaa[0].FBIllNO2 = new List(); + aaa[0].FBIllNO2.Add(ReceiveBILLLIST[i].FBIllNO); + resultNew.Add(aaa[0]); + result = CombinationGenerator.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLISNew.Remove(item); + SaleBILLLIS2Sal.Remove(item); + } + ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); + } + } + + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FALLAMOUNT, ReceiveBILLLIST[i].FClient); + if (resultNew2.Count > 0) + { + resultNew2[0].FBIllNO2 = new List(); + resultNew2[0].FBIllNO2.Add(ReceiveBILLLISTNew[i].FBIllNO); + resultNew.Add(resultNew2[0]); + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLISNew.Remove(item); + SaleBILLLIS2Sal.Remove(item); + } + ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); + } + } + + //-----------20250118--------------------鈫 + //灏嗘敹娆惧崟鏍规嵁瀹㈡埛鍒嗙粍 + var SKFClientList = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); + result = new List(); + for (int i = 0; i < SKFClientList.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList[i].Key).ToList(); + CombinationGenerator.GetCombinations(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //1涓攢鍞鍗曞搴斿寮犳敹娆惧崟 + for (int i = 0; i < SaleBILLLIS2Sal.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByListTK(result, SaleBILLLIS2Sal[i].FALLAMOUNT, SaleBILLLIS2Sal[i].FClient); + if (resultNew2.Count > 0) + { + resultNew2[0].FBIllNO = new List(); + resultNew2[0].FBIllNO.Add(SaleBILLLIS2Sal[i].FBIllNO); + resultNew.Add(resultNew2[0]); + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); + foreach (var item in ReceiveBILLLIST.Where(t => resultNew2[0].FBIllNO2.Contains(t.FBIllNO))) + { + ReceiveBILLLISTNew.Remove(item); + } + SaleBILLLIS2Sal.Remove(SaleBILLLIS2Sal[i]); + } + } + //-----------20250118--------------------鈫 + + #region 澶氬澶氭敞閲婏紙閿鍞鍗曪級 + //鍏堟寫澶氬紶鏀舵鍗曞搴斿寮犲紶閿鍞鍗 + //var resultNew3 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew.Sum(t => t.FALLAMOUNT)); + //if (resultNew3.Count > 0) + //{ + // resultNew3[0].FBIllNO2 = new List(); + // for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + // { + // resultNew3[0].FBIllNO2.Add(ReceiveBILLLISTNew[i].FBIllNO); + // } + // resultNew.Add(resultNew3[0]); + // result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew3[0].FBIllNO); + // foreach (var item in SaleBILLLIS.Where(t => resultNew3[0].FBIllNO.Contains(t.FBIllNO))) + // { + // SaleBILLLISNew.Remove(item); + // SaleBILLLIS2Sal.Remove(item); + // } + // ReceiveBILLLISTNew.Clear(); + //} + #endregion + + #endregion + #region 鍖归厤搴旀敹鍗 + var SaleBILLLIS2Receive = SaleBILLLIS2.Where(t => t.FType == "搴旀敹鍗").ToList(); + result = new List(); + //-----------20250117--------------------鈫 + var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); + //璁$畻鍒嗙粍姹囨诲悎璁¢噾棰濈敤浜庨厤瀵规敹娆惧崟 + for (int i = 0; i < FClientList2.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = SaleBILLLIS2Sal.Where(a => a.FClient == FClientList2[i].Key).ToList(); + CombinationGenerator.GetCombinations(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //------------20250117-------------------鈫 + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var aaa = CombinationGenerator.GetCombinationsDataByList2(result, ReceiveBILLLISTNew[i].FALLAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (aaa.Count > 0) + { + aaa[0].FBIllNO2 = new List(); + aaa[0].FBIllNO2.Add(ReceiveBILLLISTNew[i].FBIllNO); + resultNew.Add(aaa[0]); + result = CombinationGenerator.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLISNew.Remove(item); + SaleBILLLIS2Receive.Remove(item); + } + ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); + } + } + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FALLAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (resultNew2.Count > 0) + { + resultNew2[0].FBIllNO2 = new List(); + resultNew2[0].FBIllNO2.Add(ReceiveBILLLISTNew[i].FBIllNO); + resultNew.Add(resultNew2[0]); + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLISNew.Remove(item); + SaleBILLLIS2Receive.Remove(item); + SaleBILLLIS2.Remove(item); + } + ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); + } + } + + //-----------20250118--------------------鈫 + //灏嗘敹娆惧崟鏍规嵁瀹㈡埛鍒嗙粍 + var SKFClientList2 = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); + result = new List(); + for (int i = 0; i < SKFClientList.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList[i].Key).ToList(); + CombinationGenerator.GetCombinations(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //1涓簲鏀跺崟瀵瑰簲澶氬紶鏀舵鍗 + for (int i = 0; i < SaleBILLLIS2Receive.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByListTK(result, SaleBILLLIS2Receive[i].FALLAMOUNT, SaleBILLLIS2Receive[i].FClient); + if (resultNew2.Count > 0) + { + resultNew2[0].FBIllNO = new List(); + resultNew2[0].FBIllNO.Add(SaleBILLLIS2Receive[i].FBIllNO); + resultNew.Add(resultNew2[0]); + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); + foreach (var item in ReceiveBILLLIST.Where(t => resultNew2[0].FBIllNO2.Contains(t.FBIllNO))) + { + ReceiveBILLLISTNew.Remove(item); + } + SaleBILLLIS2Receive.Remove(SaleBILLLIS2Receive[i]); + } + } + //-----------20250118--------------------鈫 + + #region 澶氬澶氭敞閲婏紙搴旀敹鍗曪級 + //鍏堟寫澶氬紶鏀舵鍗曞搴斿寮犲紶閿鍞鍗 + //resultNew3 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew.Sum(t => t.FALLAMOUNT)); + //if (resultNew3.Count > 0) + //{ + // resultNew3[0].FBIllNO2 = new List(); + // for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + // { + // resultNew3[0].FBIllNO2.Add(ReceiveBILLLISTNew[i].FBIllNO); + // } + // resultNew.Add(resultNew3[0]); + // result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew3[0].FBIllNO); + // foreach (var item in SaleBILLLIS.Where(t => resultNew3[0].FBIllNO.Contains(t.FBIllNO))) + // { + // SaleBILLLISNew.Remove(item); + // SaleBILLLIS2Receive.Remove(item); + // SaleBILLLIS2.Remove(item); + // } + // ReceiveBILLLISTNew.Clear(); + //} + #endregion + + #endregion + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLISNew.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLISNew[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLISNew[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("FALLAMOUNT", SaleBILLLISNew[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLISNew[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLISNew[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLISNew[i].FClient, i); + //椤圭洰鍚嶇О + this.View.Model.SetValue("FProject", SaleBILLLISNew[i].FProject, i); + //鍒跺崟浜 + this.View.Model.SetValue("FCreated", SaleBILLLISNew[i].FCreated, i); + //甯佸埆 + this.View.Model.SetValue("FCurr", SaleBILLLISNew[i].FCurr, i); + //閲戦锛堝師甯侊級 + this.View.Model.SetValue("FAmountY", SaleBILLLISNew[i].FALLAMOUNTY, i); + } + this.View.UpdateView("FEntity"); + //缁戝畾鏀舵鍗曟暟鎹 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLISTNew[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLISTNew[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("FALLAMOUNT2", ReceiveBILLLISTNew[i].FALLAMOUNT, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient2", ReceiveBILLLISTNew[i].FClient, i); + //澶囨敞 + this.View.Model.SetValue("FRemark2", ReceiveBILLLISTNew[i].FRemark, i); + //甯佸埆 + this.View.Model.SetValue("FCurr2", ReceiveBILLLISTNew[i].FCurr, i); + //閲戦锛堝師甯侊級 + this.View.Model.SetValue("FAmountY2", ReceiveBILLLISTNew[i].FALLAMOUNTY, i); + } + this.View.UpdateView("FEntity2"); + this.View.Model.DeleteEntryData("FEntity3"); + //鑾峰彇鍗曟嵁浣撹鏁版嵁 + DynamicObjectCollection FEntity3 = this.View.Model.DataObject["FEntity3"] as DynamicObjectCollection; + //瀛愬崟鎹綋鏁版嵁鍖 + EntryEntity FEntity4 = this.View.BusinessInfo.GetEntryEntity("FEntity4"); + //缁戝畾鏍戝舰鍗曟嵁浣 + for (int i = 0; i < resultNew.Count; i++) + { + ////鏂板瀛愬崟鎹綋琛 + //DynamicObject FEntryIdObj = FEntity3.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject; + + int Rowindex = this.View.Model.GetEntryRowCount("FEntity3"); + int RowindexNew = Rowindex; + this.View.Model.CreateNewEntryRow("FEntity3"); + string FROWID = SequentialGuid.NewGuid().ToString(); + this.View.Model.SetValue("FROWID", FROWID, RowindexNew); + this.View.Model.SetValue("FPARENTROWID", FROWID, RowindexNew); + this.View.Model.SetValue("FBILLNO3", resultNew[i].FBIllNO[0], RowindexNew); + this.View.Model.SetValue("FDATE3", DateTime.Now.AddDays(-1 * Convert.ToDouble(SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FDate)).ToString("yyyy-MM-dd"), RowindexNew); + this.View.Model.SetValue("FALLAMOUNT3", SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FALLAMOUNT, RowindexNew); + this.View.Model.SetValue("FALLAMOUNTSUM", resultNew[i].FALLAMOUNT, RowindexNew); + //-----2025-01-15鏀--------鈫 + this.View.Model.SetValue("FCONTRACTNUMBER3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FCONTRACTNUMBER, RowindexNew); + this.View.Model.SetValue("FClient3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FClient, RowindexNew); + this.View.Model.SetValue("FProject3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FProject, RowindexNew); + this.View.Model.SetValue("FCreated3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FCreated, RowindexNew); + this.View.Model.SetValue("FAmountY3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FALLAMOUNTY, RowindexNew); + this.View.Model.SetValue("FCurr3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FCurr, RowindexNew); + //-----2025-01-15鏀--------鈫 + this.View.Model.SetValue("FType3", SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[0]).ToList()[0].FType, RowindexNew); + + //鑾峰彇瀛愬崟鎹綋鏁版嵁 + var FSubEntityObjs = FEntity4.DynamicProperty.GetValue(FEntity3[RowindexNew]) as DynamicObjectCollection; + foreach (var item in resultNew[i].FBIllNO2) + { + //鏂板瀛愬崟鎹綋琛 + var FSubEntityObj = FSubEntityObjs.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject; + FSubEntityObj["FBILLNO4"] = item; + FSubEntityObj["FDate4"] = DateTime.Now.AddDays(-1 * Convert.ToDouble(ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FDate)).ToString("yyyy-MM-dd"); + FSubEntityObj["FALLAMOUNT4"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FALLAMOUNT; + //-----2025-01-15鏀--------鈫 + FSubEntityObj["FClient4_Id"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FClient; + FSubEntityObj["FRemark4"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FRemark; + FSubEntityObj["FCurr4_Id"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FCurr; + FSubEntityObj["FAmountY4"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FALLAMOUNTY; + //-----2025-01-15鏀--------鈫 + FSubEntityObjs.Add(FSubEntityObj); + } + for (int j = 1; j < resultNew[i].FBIllNO.Count; j++) + { + //鏂板瀛愬崟鎹綋琛 + //FEntryIdObj = FEntity3.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject; + //Rowindex = this.View.Model.GetEntryRowCount("FEntity3"); + //FEntryIdObj["ROWID"] = Rowindex; + //FEntryIdObj["PARENTROWID"] = Rowindex; + //FEntryIdObj["FBILLNO3"] = resultNew[i].FBIllNO[j]; + //FEntryIdObj["FDATE3"] = DateTime.Now.AddDays(-1 * Convert.ToDouble(SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FDate)); + //FEntryIdObj["FALLAMOUNT3"] = SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FALLAMOUNT; + //FEntryIdObj["FALLAMOUNTSUM"] = ""; + //FEntity3.Add(FEntryIdObj); + Rowindex = this.View.Model.GetEntryRowCount("FEntity3"); + this.View.Model.CreateNewEntryRow("FEntity3"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO3", resultNew[i].FBIllNO[j], Rowindex); + this.View.Model.SetValue("FDATE3", DateTime.Now.AddDays(-1 * Convert.ToDouble(SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FDate)).ToString("yyyy-MM-dd"), Rowindex); + this.View.Model.SetValue("FALLAMOUNT3", SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FALLAMOUNT, Rowindex); + //-----2025-01-15鏀--------鈫 + this.View.Model.SetValue("FCONTRACTNUMBER3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FCONTRACTNUMBER, Rowindex); + this.View.Model.SetValue("FClient3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FClient, Rowindex); + this.View.Model.SetValue("FProject3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FProject, Rowindex); + this.View.Model.SetValue("FCreated3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FCreated, Rowindex); + this.View.Model.SetValue("FCurr3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FCurr, Rowindex); + this.View.Model.SetValue("FAmountY3", SaleBILLLIS.Where(a => a.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FALLAMOUNTY, Rowindex); + //-----2025-01-15鏀--------鈫 + this.View.Model.SetValue("FType3", SaleBILLLIS.Where(t => t.FBIllNO == resultNew[i].FBIllNO[j]).ToList()[0].FType, Rowindex); + //鑾峰彇瀛愬崟鎹綋鏁版嵁 + FSubEntityObjs = FEntity4.DynamicProperty.GetValue(FEntity3[Rowindex]) as DynamicObjectCollection; + foreach (var item in resultNew[i].FBIllNO2) + { + //鏂板瀛愬崟鎹綋琛 + var FSubEntityObj = FSubEntityObjs.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject; + FSubEntityObj["FBILLNO4"] = item; + FSubEntityObj["FDate4"] = DateTime.Now.AddDays(-1 * Convert.ToDouble(ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FDate)).ToString("yyyy-MM-dd"); + FSubEntityObj["FALLAMOUNT4"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FALLAMOUNT; + //-----2025-01-15鏀--------鈫 + FSubEntityObj["FClient4_Id"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FClient; + FSubEntityObj["FRemark4"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FRemark; + FSubEntityObj["FCurr4_Id"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FCurr; + FSubEntityObj["FAmountY4"] = ReceiveBILLLIST.Where(t => t.FBIllNO == item).ToList()[0].FALLAMOUNTY; + //-----2025-01-15鏀--------鈫 + FSubEntityObjs.Add(FSubEntityObj); + } + } + + } + if (FEntity3.Count > 0) + { + // 閲嶆柊鍔犺浇鏁版嵁鍖 + DBServiceHelper.LoadReferenceObject(this.Context, FEntity3.ToArray(), FEntity3.FirstOrDefault().DynamicObjectType, false); + } + this.View.UpdateView("FEntity3"); + this.View.UpdateView("FEntity4"); + var FEndTime = DateTime.Now; + TimeSpan timeSpan = FEndTime - FStartTime; + this.View.ShowMessage(string.Format("鍖归厤鎴愬姛,鍖归厤鑰楄垂鏃堕暱涓:{0}s", Math.Round(timeSpan.TotalMilliseconds / 1000))); + } + + //鐢熸垚鏍搁攢璁板綍鍗 + if (e.BarItemKey.ToString().ToUpper().Equals("FCREATERECORD")) + { + DynamicObject FOrgId = this.View.Model.GetValue("FOrgId", 0) as DynamicObject; + string Message = string.Empty; + bool ErrMessage = false; + //瀛愬崟鎹綋鏁版嵁鍖 + EntryEntity FEntity4 = this.View.BusinessInfo.GetEntryEntity("FEntity4"); + //鑾峰彇鍗曟嵁浣撹鏁版嵁 + DynamicObjectCollection FEntity3 = this.View.Model.DataObject["FEntity3"] as DynamicObjectCollection; + //鑾峰彇鍗曟嵁浣撴昏鍙 + int RowIndex = this.View.Model.GetEntryRowCount("FEntity3"); + + List FPARENTROWIDList = new List(); + List RowList = new List(); + for (int i = 0; i < RowIndex; i++) + { + //鑾峰彇FPARENTROWID + var FPARENTROWID = Convert.ToString(this.View.Model.GetValue("FPARENTROWID", i)); + if (FPARENTROWIDList.Contains(FPARENTROWID)) + { + continue; + } + else + { + FPARENTROWIDList.Add(FPARENTROWID); + //鑾峰彇瀵瑰簲缁勫埆 + var FEntity3List = FEntity3.Where(t => Convert.ToString(t["PARENTROWID"]) == FPARENTROWID).ToList(); + //鑾峰彇瀵瑰簲鍗曟嵁浣 + //鑾峰彇瀛愬崟鎹綋鏁版嵁 + var FSubEntityObjs = FEntity4.DynamicProperty.GetValue(FEntity3[i]) as DynamicObjectCollection; + //鍒ゆ柇鏄惁鏄悓涓瀹㈡埛 + var FClient4List = FSubEntityObjs[0]["FClient4"] as DynamicObject; + int FClient4Id = Convert.ToInt32(FClient4List["Id"]); + var FClient3List = FEntity3List[0]["FClient3"] as DynamicObject; + var testId = Convert.ToInt32(FClient3List["Id"]); + if (testId != FClient4Id) + { + foreach (var item in FEntity3List) + { + RowList.Add(Convert.ToString(item["SEQ"])); + } + ErrMessage = true; + Message = Message + string.Format("(閿鍞鍗/搴旀敹鍗)鍖瑰鏀舵鍗曞鎴蜂笉涓鑷,涓嶅厑璁告牳閿\r\n"); + continue; + } + + //鎵嬪伐鍖归厤,鍒ゆ柇鍖归厤閲戦鏄惁鐩哥瓑,涓嶇浉绛夊垯寮瑰嚭鎶ラ敊淇℃伅 + if (FEntity3List.Sum(t => Convert.ToDouble(t["FALLAMOUNT3"])) != FSubEntityObjs.Sum(t => Convert.ToDouble(t["FALLAMOUNT4"]))) + { + foreach (var item in FEntity3List) + { + RowList.Add(Convert.ToString(item["SEQ"])); + } + ErrMessage = true; + Message = Message + string.Format("瀛樺湪鏍搁攢閲戦涓嶇浉绛夌殑璁板綍,涓嶅厑璁告牳閿\r\n"); + continue; + } + //鍒ゆ柇閿鍞鍗曞拰搴旀敹鍗曟槸鍚﹀悎骞舵牳閿,濡傛灉鏄,鍒欎笉鍏佽 + var FSalCount = FEntity3.Where(t => Convert.ToString(t["FTYPE3"]) == "閿鍞鍗").ToList(); + var FReceiveCount = FEntity3.Where(t => Convert.ToString(t["FTYPE3"]) == "搴旀敹鍗").ToList(); + if (FSalCount.Count > 0 && FReceiveCount.Count > 0) + { + foreach (var item in FEntity3List) + { + RowList.Add(Convert.ToString(item["SEQ"])); + } + ErrMessage = true; + Message = Message + string.Format("瀛樺湪閿鍞鍗曚笌搴旀敹鍗曞悎骞舵牳閿鐨勮褰,涓嶅厑璁告牳閿\r\n"); + continue; + } + //鍒涘缓鏍搁攢璁板綍鍗 + string FBILLNO = CommonHelper.CreateAutoWrireRecord(this.Context, Convert.ToString(FOrgId["ID"]), FEntity3List, FSubEntityObjs); + Message = Message + string.Format("鐢熸垚鏍搁攢璁板綍鍗曟垚鍔,鍗曞彿涓:'{0}'\r\n", FBILLNO); + } + } + if (!ErrMessage) + { + this.View.ShowMessage(Message); + this.View.Model.DeleteEntryData("FEntity4"); + this.View.UpdateView("FEntity4"); + } + else + { + this.View.ShowErrMessage(Message); + } + int Rowindex = this.View.Model.GetEntryRowCount("FEntity3"); + for (int i = Rowindex - 1; i >= 0; i--) + { + if (!RowList.Contains(Convert.ToString(i + 1))) + { + this.View.Model.DeleteEntryRow("FEntity3", i); + } + } + this.View.UpdateView("FEntity4"); + } + } + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill2.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill2.cs new file mode 100644 index 0000000..d041fd8 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill2.cs @@ -0,0 +1,1466 @@ +锘縰sing DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing; +using Kingdee.BOS.App.Core.Report; +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata.EntityElement; +using Kingdee.BOS.Core.Permission; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Performance.Publisher; +using Kingdee.BOS.ServiceHelper; +using Kingdee.BOS.Util; +using Newtonsoft.Json; +using Pilot_KD_Parino.Common; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static Pilot_KD_Parino.QPHY_AutoWrire.Bill3; + +namespace Pilot_KD_Parino.QPHY_AutoWrire +{ + [HotUpdate] + [Description("鏀舵鏍搁攢2")] + //鏍搁攢鍦ㄧ敤鐨 + public class Bill2 : AbstractDynamicFormPlugIn + { + //鍏ㄥ眬瀛樺偍鍗曟嵁浣撴暟鎹 + public List SaleBILLLIS = new List(); + public List ReceiveBILLLIST = new List(); + //鎷挎潵鍖归厤鐨勯泦鍚 + public List SaleBILLLIS2 = new List(); + int INDEXNumber = 0; + + /// + /// 寮濮 + /// + /// + public override void OnLoad(EventArgs e) + { + base.OnLoad(e); + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + List SaleBILLLISnew = new List(); + List ReceiveBILLLISTNew = new List(); + //鍒犻櫎鍥涗釜鍗曟嵁浣 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + var FShuaXin = this.View.Model.GetValue("FShuaXin"); + + //璋冪敤SQL鑾峰彇鏁版嵁 + var WriteOrderDate = SQL.SqlManage.GetWriteOrderDate3(this.Context, Convert.ToString(FOrgId)); + var WriteReceiveDate = SQL.SqlManage.GetWriteReceiveDate3(this.Context, Convert.ToString(FOrgId)); + foreach (var item in WriteOrderDate) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FCUSTID"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FSalesman = Convert.ToInt32(item["FSALERID"]), + FIs30 = Convert.ToBoolean(item["FIs30"]), + FType = Convert.ToString(item["FType"]), + }); + } + foreach (var item in WriteReceiveDate) + { + ReceiveBILLLIST.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FClient = Convert.ToInt32(item["FCONTACTUNIT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FRemark = Convert.ToString(item["FREMARK"]), + FSalesman = Convert.ToInt32(item["FSALEERID"]), + //FALLAMOUNTY = Convert.ToDouble(item["FALLAMOUNTY"]), + //FCurr = Convert.ToInt32(item["FCurr"]) + }); + } + SaleBILLLIS2 = SaleBILLLIS.Where(t => t.FIs30 == true).ToList(); + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS2.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS2[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLIS2[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS2[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS2[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS2[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS2[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS2[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS2[i].FDAMOUNT, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS2[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS2[i].FSalesman, i); + + this.View.UpdateView("FEntity"); + } + //缁戝畾鏀舵鍗曟暟鎹 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLIST[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_jdx", ReceiveBILLLIST[i].FALLAMOUNT, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, i); + //澶囨敞 + this.View.Model.SetValue("FRemark", ReceiveBILLLIST[i].FRemark, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_391", ReceiveBILLLIST[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_mjq", ReceiveBILLLIST[i].FDAMOUNT, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i].FSalesman, i); + + this.View.UpdateView("FEntity2"); + } + } + + /// + /// 缂栬緫鎸夐挳鐐瑰嚮浜嬩欢 + /// + /// + public override void BeforeF7Select(BeforeF7SelectEventArgs e) + { + base.BeforeF7Select(e); + if (e.FieldKey.EqualsIgnoreCase("FCONTRACTNUMBER2")) + { + //鑾峰彇鏀舵鍗曞彿 + var fBillNo = this.View.Model.GetValue("FBILLNO2", e.Row).ToString(); + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鏂板缓瀛樺偍绫 + List stringFBILLNO = new List(); + foreach (var item in FEntity) + { + if (!string.IsNullOrWhiteSpace(item["FISHX"]?.ToString())) + { + StringFBILLNO stringFBILLNO1 = new StringFBILLNO(); + stringFBILLNO1.FBILLNO = item["FBILLNO"]?.ToString(); + stringFBILLNO.Add(stringFBILLNO1); + } + } + ShowDynamicForm(stringFBILLNO, fBillNo); + } + } + + /// + /// 瀛樺偍涓洪厤瀵规牳閿鐨勯攢鍞鍗曞彿 + /// + public class StringFBILLNO + { + /// + /// 閿鍞鍗曞彿/搴旀敹鍗曞彿(绾歌川鍚堝悓鍙) + /// + public string FBILLNO { get; set; } + } + + /// + /// 寮瑰嚭鍔ㄦ佽〃鍗曠獥鍙 + /// + private void ShowDynamicForm(List stringFBILLNO, string fBillNo) + { + // 灏嗗垪琛ㄥ簭鍒楀寲涓篔SON瀛楃涓 + string jsonFBILLNO = JsonConvert.SerializeObject(stringFBILLNO); + + // 鍒涘缓鍔ㄦ佽〃鍗曟樉绀哄弬鏁 + DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter(); + //dynamicFormShowParameter.FormId = "VRYF_WriteoffWindow"; // 琛ㄥ崟ID + dynamicFormShowParameter.FormId = "MBBA_WriteoffWindow"; // 鏇挎崲涓哄疄闄呭姩鎬佽〃鍗旾D + dynamicFormShowParameter.OpenStyle.ShowType = ShowType.Modal; // 浠ユā鎬佺獥鍙e舰寮忔樉绀 + + // 娣诲姞鑷畾涔夊弬鏁帮紝鐢ㄤ簬浼犻掓暟鎹 + dynamicFormShowParameter.CustomParams.Add("fBillNo", fBillNo); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("stringFBILLNO", jsonFBILLNO); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("IsEditable", "true"); // 纭繚琛ㄥ崟鏄彲缂栬緫鐨 + + var stringFBILLNOANDList = new List(); + + // 鏄剧ず鍔ㄦ佽〃鍗 + this.View.ShowForm(dynamicFormShowParameter, result => + { + if (result != null && result.ReturnData != null) + { + stringFBILLNOANDList.Add((StringFBILLNOANDList)result.ReturnData); + } + + //鍒ゆ柇鏄惁鑾峰彇鍒版暟鎹 + if (stringFBILLNOANDList[0].FBILLNOList.Count > 0) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBILLNO"]), + FCONTRACTNUMBER = Convert.ToString(item["FCONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = Convert.ToString(item["FSKBILLNO"]), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = Convert.ToString(item["FType"]), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + foreach (var item in FEntity2) + { + ReceiveBILLLIST.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBILLNO2"]), + FDate = Convert.ToString(item["FDate2"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_jdx"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_391"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_mjq"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRemark = Convert.ToString(item["FRemark"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FISHX = item["FISHX2"]?.ToString(), + FWeiYi = item["FWeiYi2"]?.ToString(), + }); + } + + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + + //淇敼閿鍞鍗/搴旀敹鍗 + foreach (var item in stringFBILLNOANDList[0].FBILLNOList) + { + foreach (var item2 in SaleBILLLIS) + { + if (item2.FBIllNO == item.FBILLNO) + { + item2.FSKBIllNO = stringFBILLNOANDList[0].FBILLNO; + fString.Add(item2.FCONTRACTNUMBER); + item2.FISHX = "宸叉牳閿閰嶅"; + } + } + } + + string fCONTRACTNUMBER = string.Join(",", fString); + + //淇敼鏀舵鍗 + foreach (var item in ReceiveBILLLIST) + { + if (item.FBIllNO == stringFBILLNOANDList[0].FBILLNO) + { + item.FCONTRACTNUMBER = fCONTRACTNUMBER; + item.FISHX = "宸叉牳閿閰嶅"; + } + } + + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i].FSalesman, i); + } + this.View.UpdateView("FEntity"); + //缁戝畾鏀舵鍗曟暟鎹 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate2", ReceiveBILLLIST[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_jdx", ReceiveBILLLIST[i].FALLAMOUNT, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, i); + //澶囨敞 + this.View.Model.SetValue("FRemark", ReceiveBILLLIST[i].FRemark, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_391", ReceiveBILLLIST[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_mjq", ReceiveBILLLIST[i].FDAMOUNT, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER2", ReceiveBILLLIST[i].FCONTRACTNUMBER, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX2", ReceiveBILLLIST[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi2", ReceiveBILLLIST[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i].FSalesman, i); + } + this.View.UpdateView("FEntity2"); + + } + + }); + } + + /// + /// 寮瑰嚭鍔ㄦ佽〃鍗曠獥鍙2 + /// + private void ShowDynamicForm2(List stringFBILLNO, string fBillNo) + { + // 灏嗗垪琛ㄥ簭鍒楀寲涓篔SON瀛楃涓 + string jsonFBILLNO = JsonConvert.SerializeObject(stringFBILLNO); + + // 鍒涘缓鍔ㄦ佽〃鍗曟樉绀哄弬鏁 + DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter(); + //dynamicFormShowParameter.FormId = "VRYF_OrderWindow"; // 琛ㄥ崟ID + dynamicFormShowParameter.FormId = "MBBA_OrderWindow"; // 鏇挎崲涓哄疄闄呭姩鎬佽〃鍗旾D + dynamicFormShowParameter.OpenStyle.ShowType = ShowType.Modal; // 浠ユā鎬佺獥鍙e舰寮忔樉绀 + + // 娣诲姞鑷畾涔夊弬鏁帮紝鐢ㄤ簬浼犻掓暟鎹 + dynamicFormShowParameter.CustomParams.Add("fBillNo", fBillNo); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("stringFBILLNO", jsonFBILLNO); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("IsEditable", "true"); // 纭繚琛ㄥ崟鏄彲缂栬緫鐨 + + var stringFBILLNOANDList = new List(); + + // 鏄剧ず鍔ㄦ佽〃鍗 + this.View.ShowForm(dynamicFormShowParameter); + } + + /// + /// 鍗曟嵁浣撳弻鍑讳簨浠 + /// + /// + public override void EntityRowDoubleClick(EntityRowClickEventArgs e) + { + base.EntityRowDoubleClick(e); + if (e.Key == "FENTITY2") + { + //鑾峰彇鏀舵鍗曞彿 + var fBillNo = this.View.Model.GetValue("FBILLNO2", e.Row).ToString(); + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + + List stringFBILLNO = new List(); + + foreach (var item in FEntity) + { + //鍒ゆ柇濡傛灉鏈夊涓敹娆惧崟鐨勬儏鍐 + var stringNo = item["FSKBILLNO"]?.ToString(); + if (!string.IsNullOrWhiteSpace(stringNo)) + { + string[] stringNosp = stringNo?.Split(','); + if (stringNosp.Contains(fBillNo)) + { + StringFBILLNO stringFBILLNO1 = new StringFBILLNO(); + stringFBILLNO1.FBILLNO = item["FBILLNO"]?.ToString(); + stringFBILLNO.Add(stringFBILLNO1); + } + } + } + //鍒ゆ柇鏄惁瀛樺湪绾歌川鍚堝悓鍙 + var fCONTRACTNUMBER = this.View.Model.GetValue("FCONTRACTNUMBER2", e.Row)?.ToString(); + if (!string.IsNullOrEmpty(fCONTRACTNUMBER)) + { + ShowDynamicForm2(stringFBILLNO, fBillNo); + } + } + } + + /// + /// 鐐瑰嚮鎸夐挳鎿嶄綔 + /// + /// + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + //鑷姩鍖归厤 + if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2")) + { + //閿鍞鍗曠粦瀹氭暟鎹 + var SaleBILLLISNew = new List(SaleBILLLIS); + List FBILLNOLIST = new List(); + List FClient = new List(); + List result = new List(); + var FStartTime = DateTime.Now; + #region 鍖归厤閿鍞鍗 + //var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "閿鍞鍗" && t.FISHX != "宸叉牳閿閰嶅").ToList(); + var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "閿鍞鍗").ToList(); + //-----------20250117--------------------鈫 + //灏嗛攢鍞鍗曟牴鎹鎴峰垎缁 + var FClientList = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); + //璁$畻鍒嗙粍姹囨诲悎璁¢噾棰濈敤浜庨厤瀵规敹娆惧崟 + for (int i = 0; i < FClientList.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = SaleBILLLIS2Sal.Where(a => a.FClient == FClientList[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //------------20250117-------------------鈫 + //瀛樺偍鏀舵鍗曠敤浜庢牳閿 + List ReceiveBILLLISTNew = new List(ReceiveBILLLIST); + //瀛樺偍瀵瑰簲閿鍞鍗/搴旀敹鍗曚互鍙婃敹娆惧崟鐨 + List resultNew = new List(); + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + var aaa = CombinationGenerator.GetCombinationsDataByList2(result, ReceiveBILLLIST[i].FDAMOUNT, ReceiveBILLLIST[i].FClient); + if (aaa.Count > 0) + { + //FBIllNO瀛樻斁瀵瑰簲鐨勯攢鍞鍗曠紪鍙枫丗BIllNO2瀛樻斁瀵瑰簲鏀舵鍗曠紪鍙 + result = CombinationGenerator.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Sal.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + foreach (var item in SaleBILLLISNew) + { + if (item.FBIllNO.Equals(aaa[0].FBIllNO[0].ToString())) + { + //鏇存柊閿鍞鍗曟暟鎹 + item.FSKBIllNO = ReceiveBILLLIST[i].FBIllNO; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item.FCONTRACTNUMBER); + + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + //鏇存柊鏀舵鍗曟暟鎹 + ReceiveBILLLIST[i].FCONTRACTNUMBER = fCONTRACTNUMBER; + //if (ReceiveBILLLIST[i].FDAMOUNT != 0) + //{ + // ReceiveBILLLIST[i].FYAMOUNT = ReceiveBILLLIST[i].FDAMOUNT; + //} + //ReceiveBILLLIST[i].FDAMOUNT = 0; + ReceiveBILLLIST[i].FISHX = "宸叉牳閿閰嶅"; + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); + } + } + + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Sal.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + //寰幆閿鍞鍗 + foreach (var item in resultNew2[0].FBIllNO) + { + foreach (var item2 in SaleBILLLISNew) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item2.FCONTRACTNUMBER); + } + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + //寰幆鏀舵鍗 + foreach (var item in ReceiveBILLLIST.Where(t => t.FBIllNO == ReceiveBILLLISTNew[i].FBIllNO)) + { + item.FCONTRACTNUMBER = fCONTRACTNUMBER; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); + } + } + + //-----------20250118--------------------鈫 + //灏嗘敹娆惧崟鏍规嵁瀹㈡埛鍒嗙粍 + var SKFClientList = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); + result = new List(); + for (int i = 0; i < SKFClientList.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //1涓攢鍞鍗曞搴斿寮犳敹娆惧崟 + for (int i = 0; i < SaleBILLLIS2Sal.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByListTK(result, SaleBILLLIS2Sal[i].FDAMOUNT, SaleBILLLIS2Sal[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); + foreach (var item in ReceiveBILLLIST.Where(t => resultNew2[0].FBIllNO2.Contains(t.FBIllNO))) + { + ReceiveBILLLISTNew.Remove(item); + } + foreach (var item in SaleBILLLISNew.Where(a => a.FBIllNO == SaleBILLLIS2Sal[i].FBIllNO)) + { + string fCONTRACTNUMBER = string.Join(",", resultNew2[0].FBIllNO2); + item.FSKBIllNO = fCONTRACTNUMBER; + item.FWeiYi = "鏄"; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + foreach (var item in resultNew2[0].FBIllNO2) + { + foreach (var item2 in ReceiveBILLLIST) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FCONTRACTNUMBER = SaleBILLLIS2Sal[i].FCONTRACTNUMBER; + item2.FWeiYi = "鍚"; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + } + } + } + SaleBILLLIS2Sal.Remove(SaleBILLLIS2Sal[i]); + } + } + //-----------20250118--------------------鈫 + + #endregion + #region 鍖归厤搴旀敹鍗 + //var SaleBILLLIS2Receive = SaleBILLLIS2.Where(t => t.FType == "搴旀敹鍗" && t.FISHX != "宸叉牳閿閰嶅").ToList(); + var SaleBILLLIS2Receive = SaleBILLLIS2.Where(t => t.FType == "搴旀敹鍗").ToList(); + result = new List(); + //-----------20250117--------------------鈫 + var FClientList2 = SaleBILLLIS2Receive.GroupBy(t => t.FClient).ToList(); + //璁$畻鍒嗙粍姹囨诲悎璁¢噾棰濈敤浜庨厤瀵规敹娆惧崟 + for (int i = 0; i < FClientList2.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = SaleBILLLIS2Receive.Where(a => a.FClient == FClientList2[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //------------20250117-------------------鈫 + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犲簲鏀跺崟 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var aaa = CombinationGenerator.GetCombinationsDataByList2(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (aaa.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Receive.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + foreach (var item in SaleBILLLISNew) + { + if (item.FBIllNO.Equals(aaa[0].FBIllNO[0].ToString())) + { + //鏇存柊閿鍞鍗曟暟鎹 + item.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item.FCONTRACTNUMBER); + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + //鏇存柊鏀舵鍗曟暟鎹 + ReceiveBILLLIST[i].FCONTRACTNUMBER = fCONTRACTNUMBER; + //if (ReceiveBILLLIST[i].FDAMOUNT != 0) + //{ + // ReceiveBILLLIST[i].FYAMOUNT = ReceiveBILLLIST[i].FDAMOUNT; + //} + //ReceiveBILLLIST[i].FDAMOUNT = 0; + ReceiveBILLLIST[i].FISHX = "宸叉牳閿閰嶅"; + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); + } + } + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶搴旀敹鍗 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Receive.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + foreach (var item in resultNew2[0].FBIllNO) + { + foreach (var item2 in SaleBILLLISNew) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item2.FCONTRACTNUMBER); + } + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + foreach (var item in ReceiveBILLLIST.Where(t => t.FBIllNO == ReceiveBILLLISTNew[i].FBIllNO)) + { + //鏇存柊鏀舵鍗曟暟鎹 + item.FCONTRACTNUMBER = fCONTRACTNUMBER; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); + } + } + + //-----------20250118--------------------鈫 + //灏嗘敹娆惧崟鏍规嵁瀹㈡埛鍒嗙粍 + var SKFClientList2 = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); + result = new List(); + for (int i = 0; i < SKFClientList2.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList2[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //1涓簲鏀跺崟瀵瑰簲澶氬紶鏀舵鍗 + for (int i = 0; i < SaleBILLLIS2Receive.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByListTK(result, SaleBILLLIS2Receive[i].FDAMOUNT, SaleBILLLIS2Receive[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); + foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Receive.Remove(item); + } + foreach (var item in SaleBILLLISNew.Where(a => a.FBIllNO == SaleBILLLIS2Sal[i].FBIllNO)) + { + string fCONTRACTNUMBER = string.Join(",", resultNew2[0].FBIllNO2); + item.FSKBIllNO = fCONTRACTNUMBER; + item.FWeiYi = "鏄"; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + foreach (var item in resultNew2[0].FBIllNO2) + { + foreach (var item2 in ReceiveBILLLIST) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FCONTRACTNUMBER = SaleBILLLIS2Sal[i].FCONTRACTNUMBER; + item2.FWeiYi = "鍚"; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + } + } + } + SaleBILLLIS2Sal.Remove(SaleBILLLIS2Sal[i]); + } + } + //-----------20250118--------------------鈫 + + #endregion + + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + + #region 浜屾杩囨护鏁版嵁 + + //绗簩娆¤嚜鍔ㄩ厤瀵癸紙鏄惁鏈夎锛塠鏀舵鍗曚负涓籡 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + //杩囨护闄や簡1瀵1銆1瀵瑰鐨勬暟鎹 + if (!string.IsNullOrWhiteSpace(ReceiveBILLLIST[i].FISHX?.ToString()) && string.IsNullOrWhiteSpace(ReceiveBILLLIST[i].FWeiYi?.ToString())) + { + string[] strings = ReceiveBILLLIST[i].FCONTRACTNUMBER.Split(','); + + //鑾峰彇鏀舵鍗曟牳閿閲戦 + decimal amount1 = Convert.ToDecimal(ReceiveBILLLIST[i].FDAMOUNT); + + //鑾峰彇閿鍞鍗/搴旀敹鍗曪紙姹囨诲悗閲戦锛 + var number = SaleBILLLISNew.Where(a => strings.Contains(a.FCONTRACTNUMBER)).ToList(); + decimal amount2 = Convert.ToDecimal(number.Sum(a => a.FDAMOUNT)); + + //濡傛灉鑷姩閰嶅鐨勫间笉鐩稿悓灏遍噸缃负鏈尮瀵圭姸鎬 + if (amount1 != amount2) + { + //鏀舵鍗曚慨鏀 + ReceiveBILLLIST[i].FCONTRACTNUMBER = ""; + ReceiveBILLLIST[i].FISHX = ""; + //閿鍞鍗曚慨鏀 + foreach (var item in number) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + } + } + } + } + + //绗簩娆¤嚜鍔ㄩ厤瀵癸紙鏄惁鏈夎锛塠閿鍞鍗曚负涓籡 + for (int i = 0; i < SaleBILLLISNew.Count; i++) + { + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护涓嶆槸鍞竴鐨勬暟鎹 + if (!string.IsNullOrWhiteSpace(SaleBILLLISNew[i].FISHX?.ToString()) && !string.IsNullOrWhiteSpace(SaleBILLLISNew[i].FWeiYi?.ToString())) + { + string[] strings = SaleBILLLISNew[i].FSKBIllNO.Split(','); + + //鑾峰彇鏀舵鍗曟牳閿閲戦锛堟眹鎬诲悗閲戦锛 + var number = ReceiveBILLLIST.Where(a => strings.Contains(a.FBIllNO)).ToList(); + decimal amount2 = Convert.ToDecimal(number.Sum(a => a.FDAMOUNT)); + + //鑾峰彇閿鍞鍗/搴旀敹鍗 + decimal amount1 = Convert.ToDecimal(SaleBILLLISNew[i].FDAMOUNT); + + //濡傛灉鑷姩閰嶅鐨勫间笉鐩稿悓灏遍噸缃负鏈尮瀵圭姸鎬 + if (amount1 != amount2) + { + //閿鍞鍗曚慨鏀 + SaleBILLLISNew[i].FSKBIllNO = ""; + SaleBILLLISNew[i].FISHX = ""; + SaleBILLLISNew[i].FWeiYi = ""; + //鏀舵鍗曚慨鏀 + foreach (var item in number) + { + item.FCONTRACTNUMBER = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + } + } + } + + #endregion + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLISNew.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLISNew[i]?.FBIllNO, i); + //鏃ユ湡 + string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 鎸囧畾鐨勬棩鏈熸牸寮 + if (DateTime.TryParseExact(SaleBILLLISNew[i]?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate", SaleBILLLISNew[i]?.FDate, i); + } + else + { + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLISNew[i]?.FDate)).ToString("yyyy-MM-dd"), i); + } + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLISNew[i]?.FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLISNew[i]?.FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLISNew[i]?.FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLISNew[i]?.FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLISNew[i]?.FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLISNew[i]?.FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLISNew[i]?.FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLISNew[i]?.FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLISNew[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLISNew[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLISNew[i]?.FSalesman, i); + } + INDEXNumber = 1; + this.View.UpdateView("FEntity"); + + //缁戝畾鏀舵鍗曟暟鎹 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i]?.FBIllNO, i); + //鏃ユ湡 + string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 鎸囧畾鐨勬棩鏈熸牸寮 + if (DateTime.TryParseExact(ReceiveBILLLIST[i]?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate2", ReceiveBILLLIST[i]?.FDate, i); + } + else + { + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLIST[i]?.FDate)).ToString("yyyy-MM-dd"), i); + } + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_jdx", ReceiveBILLLIST[i]?.FALLAMOUNT, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i]?.FClient, i); + //澶囨敞 + this.View.Model.SetValue("FRemark", ReceiveBILLLIST[i]?.FRemark, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_391", ReceiveBILLLIST[i]?.FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_mjq", ReceiveBILLLIST[i]?.FDAMOUNT, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER2", ReceiveBILLLIST[i]?.FCONTRACTNUMBER, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX2", ReceiveBILLLIST[i]?.FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi2", ReceiveBILLLIST[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i]?.FSalesman, i); + + } + this.View.UpdateView("FEntity2"); + + var FEndTime = DateTime.Now; + TimeSpan timeSpan = FEndTime - FStartTime; + this.View.ShowMessage(string.Format("鍖归厤鎴愬姛,鍖归厤鑰楄垂鏃堕暱涓:{0}s", Math.Round(timeSpan.TotalMilliseconds / 1000))); + } + + //鐢熸垚鏍搁攢璁板綍鍗 + if (e.BarItemKey.ToString().Equals("MBBA_tbButton_5")) + { + // 寮瑰嚭纭妗 + View.ShowMessage("纭畾瑕佺敓鎴愭牳閿璁板綍鍗曞悧锛", MessageBoxOptions.YesNo, result => + { + if (result == MessageBoxResult.Yes) + { + #region 闅愯棌浠g爜 + + //瀛樺偍閿鍞鍗/搴旀敹鍗 + var fCombinaAddClass1 = new List(); + + //瀛樺偍鏀舵鍗 + var fCombinaAddSK = new List(); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + string Message = string.Empty; + bool ErrMessage = false; + + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = item["FBILLNO"]?.ToString(), + FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = item["FDate"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = item["FSKBILLNO"]?.ToString(), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = item["FType"]?.ToString(), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + + foreach (var item in FEntity2) + { + ReceiveBILLLIST.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBILLNO2"]), + FDate = Convert.ToString(item["FDate2"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_jdx"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_391"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_mjq"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRemark = Convert.ToString(item["FRemark"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FISHX = item["FISHX2"]?.ToString(), + FWeiYi = item["FWeiYi2"]?.ToString(), + }); + } + + //寰幆鏀舵鍗 + foreach (var item in FEntity2) + { + //鍒涘缓瀵硅薄瀛樺偍 + var SKList = new CombinaAddSK(); + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护闄や簡鏀舵鍗1瀵1銆1瀵瑰鐨勬暟鎹 + if (item["F_ISHX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX2"]?.ToString()) && string.IsNullOrWhiteSpace(item["FWeiYi2"]?.ToString())) + { + //鑾峰彇绾歌川鍚堝悓鍙 + var stringSplit = (item["FCONTRACTNUMBER2"])?.ToString()?.Split(','); + + //鎵惧埌瀵瑰簲閿鍞鍗 + foreach (var item2 in FEntity.Where(a => stringSplit.Contains(a["FCONTRACTNUMBER"]))) + { + var nTestList = new CombinaAddClass1(); + nTestList.FBIllNO = item2["FBILLNO"]?.ToString(); + nTestList.FClient = Convert.ToInt32(item2["FClient_Id"]); + nTestList.FDate = item2["FDate"]?.ToString(); + nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_emq"]); + nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER"]?.ToString(); + nTestList.FType = item2["FTYPE"]?.ToString(); + nTestList.FCreated = Convert.ToInt32(item2["FCreated_Id"]); + nTestList.FSalesman = Convert.ToInt32(item2["FSalesman_Id"]); + SKList.XSAPList.Add(nTestList); + } + SKList.FBIllNO = item["FBILLNO2"]?.ToString(); + SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(); + SKList.FClient = Convert.ToInt32(item["FClient2_Id"]); + SKList.FDate = item["FDate2"]?.ToString(); + SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_mjq"]); + SKList.FRemark = item["FRemark"]?.ToString(); + SKList.FCreated = Convert.ToInt32(item["FCreated2_Id"]); + SKList.FSalesman = Convert.ToInt32(item["FSalesman2_Id"]); + fCombinaAddSK.Add(SKList); + } + } + + //寰幆閿鍞鍗/搴旀敹鍗 + foreach (var item in FEntity) + { + //鍒涘缓瀵硅薄瀛樺偍 + var SKList = new CombinaAddClass1(); + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护涓嶆槸鍞竴鐨勬暟鎹 + if (item["F_ISGX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX"]?.ToString()) && !string.IsNullOrWhiteSpace(item["FWeiYi"]?.ToString())) + { + //鑾峰彇绾歌川鍚堝悓鍙 + var stringSplit = (item["FSKBILLNO"])?.ToString()?.Split(','); + + //鎵惧埌瀵瑰簲閿鍞鍗 + foreach (var item2 in FEntity2.Where(a => stringSplit.Contains(a["FBILLNO2"]))) + { + var nTestList = new CombinaAddSK(); + nTestList.FBIllNO = item2["FBILLNO2"]?.ToString(); + nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER2"]?.ToString(); + nTestList.FClient = Convert.ToInt32(item2["FClient2_Id"]); + nTestList.FDate = item2["FDate2"]?.ToString(); + nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_mjq"]); + nTestList.FRemark = item2["FRemark"]?.ToString(); + nTestList.FSalesman = Convert.ToInt32(item2["FSalesman2_Id"]); + nTestList.FCreated = Convert.ToInt32(item2["FCreated2_Id"]); + SKList.SKList.Add(nTestList); + } + SKList.FBIllNO = item["FBILLNO"]?.ToString(); + SKList.FClient = Convert.ToInt32(item["FClient_Id"]); + SKList.FDate = item["FDate"]?.ToString(); + SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_emq"]); + SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(); + SKList.FType = item["FType"]?.ToString(); + SKList.FCreated = Convert.ToInt32(item["FCreated_Id"]); + SKList.FSalesman = Convert.ToInt32(item["FSalesman_Id"]); + fCombinaAddClass1.Add(SKList); + } + } + + #endregion + + if (fCombinaAddClass1.Count == 0 && fCombinaAddSK.Count == 0) + { + this.View.ShowWarnningMessage("鏈夋嫨鏍搁攢鏁版嵁锛"); + return; + } + + //鐢ㄤ簬瀛樺偍鐢熸垚鎴愬姛鐨勬敹娆惧崟 + List strings1 = new List(); + + //鐢ㄤ簬瀛樺偍鐢熸垚鎴愬姛鐨勯攢鍞鍗 + List strings2 = new List(); + + //寰幆鏀舵鍗/鏂板鏍搁攢璁板綍 + foreach (var item in fCombinaAddSK) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗 + var list = item.XSAPList; + + //姹囨婚噾棰 + var Amount = list.Sum(a => a.FALLAMOUNT); + + //搴旀敹鍗/閿鍞鍗曞垽鏂瓧娈 + int isTrue1 = list.GroupBy(t => t.FType).Count(); + + //鏀舵鍗/閿鍞鍗-搴旀敹鍗曞垽鏂鎴峰瓧娈 + int isTrue2 = list.GroupBy(t => t.FClient).Count(); + + //鍒ゆ柇鏄惁瀛樺湪搴旀敹鍗曡窡閿鍞鍗曟眹鎬绘牳閿 + if (isTrue1 > 1) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'瀛樺湪閿鍞鍗曚笌搴旀敹鍗曞悎骞舵牳閿鐨勮褰,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁鏄悓涓涓鎴 + else if (isTrue2 > 1 || item.FClient != list[0].FClient) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'閰嶅鐨(閿鍞鍗/搴旀敹鍗)鐨勫鎴蜂笉涓鑷,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁瀛樺湪涓や釜閿鍞鍗/搴旀敹鍗曟眹鎬绘牳閿锛堜笉鑳藉皬浜庢眹鎬绘暟锛 + else if (list.Count > 1 && item.FALLAMOUNT < Amount) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'鐨勬牳閿閲戦灏忎簬澶氫釜锛堥攢鍞鍗/搴旀敹鍗曪級鐨勬牳閿閲戦,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + else + { + //鍒涘缓鏍搁攢璁板綍鍗 + string FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item); + Message = Message + string.Format("鐢熸垚鏍搁攢璁板綍鍗曟垚鍔,鍗曞彿涓:'{0}'\r\n", FBILLNO); + strings1.Add(item.FBIllNO); + } + } + + //寰幆锛堥攢鍞鍗/搴旀敹鍗曪級/鏂板鏍搁攢璁板綍 + foreach (var item in fCombinaAddClass1) + { + strings2.Add(item.FBIllNO); + //鍒涘缓鏍搁攢璁板綍鍗 + string FBILLNO = CommonHelper.CreateAutoWrireRecord3(this.Context, Convert.ToString(FOrgId), item, item.SKList); + Message = Message + string.Format("鐢熸垚鏍搁攢璁板綍鍗曟垚鍔,鍗曞彿涓:'{0}'\r\n", FBILLNO); + } + + if (!ErrMessage) + { + this.View.ShowMessage(Message); + //this.View.Model.SetValue("FShuaXin", "闇瑕佸埛鏂"); + } + else + { + this.View.ShowErrMessage(Message); + } + //濡傛灉瀛樺湪鐢熸垚鎴愬姛鐨勩佷篃鏈夌敓鎴愬け璐ョ殑涓嶈蛋鍒锋柊鍔熻兘鐩存帴灏嗘垚鍔熺殑鍗曟嵁浣撴暟鎹垹闄わ紒 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + if (strings2.Contains(SaleBILLLIS[i].FBIllNO)) + { + string[] strings = SaleBILLLIS[i].FSKBIllNO?.Split(','); + + SaleBILLLIS.Remove(SaleBILLLIS[i]); + + for (int j = 0; j < ReceiveBILLLIST.Count; j++) + { + if (strings.Contains(ReceiveBILLLIST[j]?.FBIllNO)) + { + ReceiveBILLLIST.Remove(ReceiveBILLLIST[j]); + } + } + } + } + + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + if (strings1.Contains(ReceiveBILLLIST[i].FBIllNO)) + { + string[] strings = ReceiveBILLLIST[i].FCONTRACTNUMBER?.Split(','); + + ReceiveBILLLIST.Remove(ReceiveBILLLIST[i]); + + for (int j = 0; j < SaleBILLLIS.Count; j++) + { + if (strings.Contains(SaleBILLLIS[j]?.FCONTRACTNUMBER)) + { + SaleBILLLIS.Remove(SaleBILLLIS[j]); + } + } + } + } + + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); + } + this.View.UpdateView("FEntity"); + //缁戝畾鏀舵鍗曟暟鎹 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.CreateNewEntryRow("FEntity2"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate2", ReceiveBILLLIST[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_jdx", ReceiveBILLLIST[i].FALLAMOUNT, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, i); + //澶囨敞 + this.View.Model.SetValue("FRemark", ReceiveBILLLIST[i].FRemark, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_391", ReceiveBILLLIST[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_mjq", ReceiveBILLLIST[i].FDAMOUNT, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER2", ReceiveBILLLIST[i].FCONTRACTNUMBER, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i]?.FSalesman, i); + } + this.View.UpdateView("FEntity2"); + } + else + { + return; + } + }); + } + } + + /// + /// 鐢熸垚璁板綍鍗曡嚜鍔ㄥ埛鏂 + /// + /// + public override void DataChanged(DataChangedEventArgs e) + { + if (e.Field.Key.Equals("FShuaXin")) + { + //鏂囨湰瀛楁瑙﹀彂鍊兼洿鏂版椂锛屾ā鎷熺敤鎴风偣鍑昏彍鍗曪紝姝ゅ妯℃嫙鐐瑰嚮鈥滈夐」鈥濊彍鍗曪細 + ((IDynamicFormViewService)this.View).MainBarItemClick("MBBA_tbButton_1"); + } + if (e.Field.Key.Equals("FCONTRACTNUMBER2")) + { + if (INDEXNumber == 0) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + + SaleBILLLIS = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = item["FBILLNO"]?.ToString(), + FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = item["FDate"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = item["FSKBILLNO"]?.ToString(), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = item["FType"]?.ToString(), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + + var fBILLNO = this.Model.GetValue("FBILLNO2", e.Row); + var fCONTRACTNUMBER = this.Model.GetValue("FCONTRACTNUMBER2", e.Row); + + + //鍒ゆ柇鏄惁涓虹┖ + if (string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + { + this.Model.SetValue("FISHX2", "", e.Row); + + foreach (var item in SaleBILLLIS) + { + if (!string.IsNullOrEmpty(item.FSKBIllNO)) + { + string[] strings = item.FSKBIllNO?.ToString()?.Split(','); + //鍒ゆ柇鍋囧鏄竴涓敹娆惧崟瀵瑰簲澶氫釜閿鍞鍗 + if (strings.Contains(fBILLNO?.ToString()) && strings.Count() == 1) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + //鍒ゆ柇澶氫釜鏀舵鍗曞搴斾竴涓攢鍞鍗 + else if (strings.Contains(fBILLNO?.ToString()) && strings.Count() > 1) + { + List strings1 = new List(strings); + strings1.Remove(fBILLNO?.ToString()); + string strings2 = string.Join(",", strings1); + item.FSKBIllNO = strings2; + } + } + } + } + int n = 1; + //鍒ゆ柇澶氫釜閿鍞鍗曞搴1涓敹娆惧崟锛堝彧鍒犻櫎涓涓垨澶氫釜浣嗕笉鏄┖鐨勬儏鍐碉級 + if (!string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + { + string[] strings = fCONTRACTNUMBER?.ToString()?.Split(','); + foreach (var item in SaleBILLLIS) + { + if (!string.IsNullOrEmpty(item.FSKBIllNO) && item.FSKBIllNO == fBILLNO?.ToString()) + { + if (!strings.Contains(item.FCONTRACTNUMBER)) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + } + if (strings.Contains(item.FCONTRACTNUMBER)) + { + item.FSKBIllNO = fBILLNO?.ToString(); + item.FISHX = "宸叉牳閿閰嶅"; + this.Model.SetValue("FISHX2", "宸叉牳閿閰嶅", e.Row); + } + } + n = SaleBILLLIS.Count(a => strings.Contains(a.FCONTRACTNUMBER)); + } + + if (n == 0) + { + this.Model.SetValue("FISHX2", "", e.Row); + } + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); + } + this.View.UpdateView("FEntity"); + } + } + if (e.Field.Key.Equals("F_ISHX")) + { + //鑾峰彇褰撳墠澶嶉夋鐨勫 + var IsHX = this.Model.GetValue("F_ISHX", e.Row)?.ToString(); + var ISWeiYi = this.Model.GetValue("FWeiYi2", e.Row)?.ToString(); + //鏌ヨ瀵瑰簲鐨勯攢鍞鍗/搴旀敹鍗-銆嬪嬀閫夊閫夋 + var fc = this.Model.GetValue("FCONTRACTNUMBER2", e.Row)?.ToString(); + if (IsHX == "True") + { + //鏌ョ湅鏄惁涓哄敮涓 + if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "鍚") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + for (int i = 0; i < FEntity.Count; i++) + { + if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + { + this.Model.SetValue("F_ISGX", "True", i); + } + } + } + } + if (IsHX == "False") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + int n = 0; + //鍒ゆ柇鍏朵粬鏀舵鍗曟槸鍚﹀嬀閫 + foreach (var item in FEntity2) + { + if (item["F_ISHX"]?.ToString() == "True" && item["FCONTRACTNUMBER2"]?.ToString() == fc) + { + n++; + } + } + + if (n == 0) + { + //鏌ョ湅鏄惁涓哄敮涓 + if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "鍚") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + for (int i = 0; i < FEntity.Count; i++) + { + if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + { + this.Model.SetValue("F_ISGX", "False", i); + } + } + } + } + } + } + } + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill3.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill3.cs new file mode 100644 index 0000000..3cae348 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill3.cs @@ -0,0 +1,200 @@ +锘縰sing DevExpress.Xpo.DB; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using Newtonsoft.Json; +using Pilot_KD_Parino.Common; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static Pilot_KD_Parino.QPHY_AutoWrire.Bill2; + +namespace Pilot_KD_Parino.QPHY_AutoWrire +{ + [HotUpdate] + [Description("鏀舵鏍搁攢3")] + //浜や簰浜嬩欢锛屽湪鐢 + public class Bill3 : AbstractDynamicFormPlugIn + { + public List SaleBILLLIS = new List(); + public List ReceiveBILLLIST = new List(); + //鎷挎潵鍖归厤鐨勯泦鍚 + public List SaleBILLLIS2 = new List(); + /// + /// 寮濮 + /// + /// + public override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + //鑾峰彇闇瑕佽繃婊ょ殑閿鍞鍗/搴旀敹鍗曞彿 + string stringFBILLNO = this.View.OpenParameter.GetCustomParameters()["stringFBILLNO"].ToString(); + + // 鍙嶅簭鍒楀寲JSON瀛楃涓蹭负List + List stringFBILLNOList = JsonConvert.DeserializeObject>(stringFBILLNO); + + this.View.OpenParameter.Status = Kingdee.BOS.Core.Metadata.OperationStatus.EDIT; + + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + List SaleBILLLISnew = new List(); + List ReceiveBILLLISTNew = new List(); + //鍒犻櫎涓涓崟鎹綋 + this.View.Model.DeleteEntryData("FEntity"); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + //DynamicObject FCustId = this.View.Model.GetValue("FCustId") as DynamicObject; + DynamicObjectCollection FCustId2 = this.View.Model.GetValue("FCustId") as DynamicObjectCollection; + + //璋冪敤SQL鑾峰彇鏁版嵁 + var WriteOrderDate = SQL.SqlManage.GetWriteOrderDate3(this.Context, Convert.ToString(FOrgId)); + var WriteReceiveDate = SQL.SqlManage.GetWriteReceiveDate3(this.Context, Convert.ToString(FOrgId)); + foreach (var item in WriteOrderDate) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FCUSTID"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FSalesman = Convert.ToInt32(item["FSALERID"]), + FIs30 = Convert.ToBoolean(item["FIs30"]), + FType = Convert.ToString(item["FType"]), + }); + } + SaleBILLLIS2 = SaleBILLLIS.Where(t => t.FIs30 == true).ToList(); + + //鑾峰彇闇瑕佸垹闄ょ殑鍗曟嵁浣 + var SaleBILLLIS3 = new List(); + + foreach (var item in stringFBILLNOList) + { + foreach (var item2 in SaleBILLLIS2) + { + if (item2.FBIllNO.Equals(item.FBILLNO)) + { + SaleBILLLIS3.Add(item2); + } + } + } + + foreach (var item in SaleBILLLIS3) + { + SaleBILLLIS2.Remove(item); + } + + //缁戝畾閿鍞鍗曟暟鎹 SaleBILLLIS2 + for (int i = 0; i < SaleBILLLIS2.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS2[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLIS2[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS2[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS2[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS2[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS2[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS2[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS2[i].FDAMOUNT, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS2[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS2[i].FSalesman, i); + + this.View.UpdateView("FEntity"); + } + + } + + public class StringFBILLNOANDList + { + public string FBILLNO { get; set; } + public List FBILLNOList { get; set; } = new List(); + } + + /// + /// 鍏抽棴绐楀彛骞朵紶鍊 + /// + /// + public override void BeforeClosed(BeforeClosedEventArgs e) + { + base.BeforeClosed(e); + + //鑾峰彇褰撳墠鐐瑰嚮鐨勫崟鎹彿 + string fBillNo = this.View.OpenParameter.GetCustomParameters()["fBillNo"].ToString(); + + //鑾峰彇澶嶉夋閫夋嫨鐨勫 + var SaleBILLLIS2 = new List(); + + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鏂板缓瀛樺偍绫 + List stringFBILLNO = new List(); + foreach (var item in FEntity) + { + if (Convert.ToBoolean(item["F_MBBA_CheckBox_qtr"])) + { + SaleBILLLIS2.Add(new StringFBILLNO() + { + FBILLNO = Convert.ToString(item["FBIllNO"]), + }); + } + } + + StringFBILLNOANDList stringFBILLNOANDList = new StringFBILLNOANDList(); + + //灏嗗煎瓨鍌ㄨ捣鏉 + stringFBILLNOANDList.FBILLNO = fBillNo; + stringFBILLNOANDList.FBILLNOList.AddRange(SaleBILLLIS2); + + #region 鏂瑰紡1锛氱敤ReturnToParentWindow鏂规硶杩斿洖鏁版嵁 + + var result = new FormResult(stringFBILLNOANDList); + + this.View.ReturnToParentWindow(result); + + #endregion + + #region 鏂瑰紡2锛氱洿鎺ュ線鐖跺璞ession闆嗗悎鍐欏叆鏁版嵁 + + //this.View.ParentFormView.Session["returnData2"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + #endregion + } + + /// + /// 鐐瑰嚮鎸夐挳鎿嶄綔 + /// + /// + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + //纭畾閫夋嫨 + if (e.BarItemKey.ToString().Equals("MBBA_tbButton")) + { + // 鍏抽棴琛ㄥ崟骞朵紶閫掗夋嫨鐨勬暟鎹 + this.View.Close(); + } + } + + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill4.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill4.cs new file mode 100644 index 0000000..04c38ec --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill4.cs @@ -0,0 +1,117 @@ +锘縰sing Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using Newtonsoft.Json; +using Pilot_KD_Parino.Common; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static Pilot_KD_Parino.QPHY_AutoWrire.Bill2; + +namespace Pilot_KD_Parino.QPHY_AutoWrire +{ + [HotUpdate] + [Description("鏀舵鏍搁攢4")] + //浜や簰浜嬩欢锛屽湪鐢 + public class Bill4: AbstractDynamicFormPlugIn + { + public List SaleBILLLIS = new List(); + public List ReceiveBILLLIST = new List(); + //鎷挎潵鍖归厤鐨勯泦鍚 + public List SaleBILLLIS2 = new List(); + /// + /// 寮濮 + /// + /// + public override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + //鑾峰彇闇瑕佽繃婊ょ殑閿鍞鍗/搴旀敹鍗曞彿 + string stringFBILLNO = this.View.OpenParameter.GetCustomParameters()["stringFBILLNO"].ToString(); + + // 鍙嶅簭鍒楀寲JSON瀛楃涓蹭负List + List stringFBILLNOList = JsonConvert.DeserializeObject>(stringFBILLNO); + + this.View.OpenParameter.Status = Kingdee.BOS.Core.Metadata.OperationStatus.EDIT; + + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + List SaleBILLLISnew = new List(); + List ReceiveBILLLISTNew = new List(); + //鍒犻櫎涓涓崟鎹綋 + this.View.Model.DeleteEntryData("FEntity"); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + + //璋冪敤SQL鑾峰彇鏁版嵁 + var WriteOrderDate = SQL.SqlManage.GetWriteOrderDate3(this.Context, Convert.ToString(FOrgId)); + + foreach (var item in WriteOrderDate) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FCUSTID"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FSalesman = Convert.ToInt32(item["FSALERID"]), + FIs30 = Convert.ToBoolean(item["FIs30"]), + FType = Convert.ToString(item["FType"]), + }); + } + SaleBILLLIS2 = SaleBILLLIS.Where(t => t.FIs30 == true).ToList(); + + //鑾峰彇闇瑕佹樉绀虹殑鏁版嵁 + var SaleBILLLIS3 = new List(); + + foreach (var item in stringFBILLNOList) + { + foreach (var item2 in SaleBILLLIS2) + { + if (item2.FBIllNO.Equals(item.FBILLNO)) + { + SaleBILLLIS3.Add(item2); + } + } + } + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS3.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS3[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLIS3[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS3[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS3[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS3[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS3[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS3[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS3[i].FDAMOUNT, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS3[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS3[i].FSalesman, i); + + this.View.UpdateView("FEntity"); + } + + } + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs new file mode 100644 index 0000000..cafa8f4 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs @@ -0,0 +1,1451 @@ +锘縰sing DocumentFormat.OpenXml.Drawing.Spreadsheet; +using Kingdee.BOS.App.Core.Utils; +using Kingdee.BOS.BusinessEntity.BusinessFlow; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; +using Kingdee.BOS.Core.Enums; +using Kingdee.BOS.Core.Msg; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Orm.Exceptions; +using Kingdee.BOS.Util; +using Newtonsoft.Json; +using NPOI.SS.Formula.Functions; +using Pilot_KD_Parino.Common; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Web.UI.WebControls; +using static Pilot_KD_Parino.QPHY_AutoWrire.Bill2; +using static Pilot_KD_Parino.QPHY_AutoWrire.Bill3; + +namespace Pilot_KD_Parino.QPHY_AutoWrire +{ + [HotUpdate] + [Description("鏀舵鏍搁攢5_2025-04-07")] + //浜や簰浜嬩欢锛屽湪鐢 + public class Bill5 : AbstractDynamicFormPlugIn + { + //鍏ㄥ眬瀛樺偍鍗曟嵁浣撴暟鎹 + public List SaleBILLLIS = new List(); + public List ReceiveBILLLIST = new List(); + //鎷挎潵鍖归厤鐨勯泦鍚 + public List SaleBILLLIS2 = new List(); + int INDEXNumber = 0; + private int level = 0;//灞傜骇 + private string parentRowId = "";//鐖堕」ID + string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 鎸囧畾鐨勬棩鏈熸牸寮 + + /// + /// 寮濮 + /// + /// + public override void OnLoad(EventArgs e) + { + base.OnLoad(e); + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + List SaleBILLLISnew = new List(); + List ReceiveBILLLISTNew = new List(); + //鍒犻櫎鍥涗釜鍗曟嵁浣 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + var FShuaXin = this.View.Model.GetValue("FShuaXin"); + + //璋冪敤SQL鑾峰彇鏁版嵁 + var WriteOrderDate = SQL.SqlManage_yuyubo.GetWriteOrderDate3(this.Context, Convert.ToString(FOrgId)); + var WriteReceiveDate = SQL.SqlManage_yuyubo.GetWriteReceiveDate3(this.Context, Convert.ToString(FOrgId)); + SaleBILLLIS = WriteOrderDate.Select(item => new CombinaClass + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FCUSTID"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FSalesman = Convert.ToInt32(item["FSALERID"]), + FIs30 = Convert.ToBoolean(item["FIs30"]), + FType = Convert.ToString(item["FType"]), + }).ToList(); + + //foreach (var item in WriteReceiveDate) + //{ + // ReceiveBILLLIST.Add(new CombinaClass() + // { + // FBIllNO = Convert.ToString(item["FBIllNO"]), + // FDate = Convert.ToString(item["FDate"]), + // FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + // FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + // FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + // FClient = Convert.ToInt32(item["FCONTACTUNIT"]), + // FCreated = Convert.ToInt32(item["FCREATORID"]), + // FRemark = Convert.ToString(item["FREMARK"]), + // FSalesman = Convert.ToInt32(item["FSALEERID"]), + // F_RowNew = 1 + // //FALLAMOUNTY = Convert.ToDouble(item["FALLAMOUNTY"]), + // //FCurr = Convert.ToInt32(item["FCurr"]) + // }); + //} + ReceiveBILLLIST = WriteReceiveDate.Select(item => new CombinaClass + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FClient = Convert.ToInt32(item["FCONTACTUNIT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FRemark = Convert.ToString(item["FREMARK"]), + FSalesman = Convert.ToInt32(item["FSALEERID"]), + F_RowNew = 1 + }).ToList(); + SaleBILLLIS2 = SaleBILLLIS.ToList(); + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS2.Count; i++) + { + + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS2[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLIS2[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS2[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS2[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS2[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS2[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS2[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS2[i].FDAMOUNT, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS2[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS2[i].FSalesman, i); + } + + this.View.UpdateView("FEntity"); + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + int RowindexNew = Rowindex; + this.View.Model.CreateNewEntryRow("FEntity2"); + string FROWID = SequentialGuid.NewGuid().ToString(); + this.View.Model.SetValue("FROWID", FROWID, RowindexNew); + this.View.Model.SetValue("FPARENTROWID", FROWID, RowindexNew); + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, RowindexNew); + this.View.Model.SetValue("FDATE2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLIST[i].FDate)).ToString("yyyy-MM-dd"), RowindexNew); + this.View.Model.SetValue("F_MBBA_Decimal_imu", ReceiveBILLLIST[i].FALLAMOUNT, RowindexNew); + this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, RowindexNew); + this.View.Model.SetValue("FRemark", ReceiveBILLLIST[i].FRemark, RowindexNew); + this.View.Model.SetValue("F_MBBA_Decimal_3iy", ReceiveBILLLIST[i].FYAMOUNT, RowindexNew); + this.View.Model.SetValue("F_MBBA_Decimal_lsn", ReceiveBILLLIST[i].FDAMOUNT, RowindexNew); + this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i].FCreated, RowindexNew); + this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i].FSalesman, RowindexNew); + this.View.Model.SetValue("F_RowNew", ReceiveBILLLIST[i].F_RowNew, RowindexNew); + } + this.View.UpdateView("FEntity2"); + } + + /// + /// 缂栬緫鎸夐挳鐐瑰嚮浜嬩欢 + /// + /// + public override void BeforeF7Select(BeforeF7SelectEventArgs e) + { + base.BeforeF7Select(e); + if (e.FieldKey.EqualsIgnoreCase("FCONTRACTNUMBER2")) + { + //鑾峰彇鏀舵鍗曞彿/琛屽彿 + var fBillNo = this.View.Model.GetValue("FBILLNO2", e.Row).ToString(); + var fRow = e.Row; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鏂板缓瀛樺偍绫 + List stringFBILLNO = new List(); + foreach (var item in FEntity) + { + if (!string.IsNullOrWhiteSpace(item["FISHX"]?.ToString())) + { + StringFBILLNO stringFBILLNO1 = new StringFBILLNO(); + stringFBILLNO1.FBILLNO = item["FBILLNO"]?.ToString(); + stringFBILLNO.Add(stringFBILLNO1); + } + } + ShowDynamicForm(stringFBILLNO, fBillNo, fRow); + } + } + + /// + /// 寮瑰嚭鍔ㄦ佽〃鍗曠獥鍙 + /// + private void ShowDynamicForm(List stringFBILLNO, string fBillNo, int fRow) + { + // 灏嗗垪琛ㄥ簭鍒楀寲涓篔SON瀛楃涓 + string jsonFBILLNO = JsonConvert.SerializeObject(stringFBILLNO); + // 鍒涘缓鍔ㄦ佽〃鍗曟樉绀哄弬鏁 + DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter(); + //dynamicFormShowParameter.FormId = "VRYF_WriteoffWindow"; // 琛ㄥ崟ID + dynamicFormShowParameter.FormId = "MBBA_WriteoffWindow"; // 鏇挎崲涓哄疄闄呭姩鎬佽〃鍗旾D + dynamicFormShowParameter.OpenStyle.ShowType = ShowType.Modal; // 浠ユā鎬佺獥鍙e舰寮忔樉绀 + // 娣诲姞鑷畾涔夊弬鏁帮紝鐢ㄤ簬浼犻掓暟鎹 + dynamicFormShowParameter.CustomParams.Add("fBillNo", fBillNo); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("stringFBILLNO", jsonFBILLNO); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("IsEditable", "true"); // 纭繚琛ㄥ崟鏄彲缂栬緫鐨 + var stringFBILLNOANDList = new List(); + // 鏄剧ず鍔ㄦ佽〃鍗 + this.View.ShowForm(dynamicFormShowParameter, result => + { + if (result != null && result.ReturnData != null) + { + stringFBILLNOANDList.Add((StringFBILLNOANDList)result.ReturnData); + } + + //鍒ゆ柇鏄惁鑾峰彇鍒版暟鎹 + if (stringFBILLNOANDList[0].FBILLNOList.Count > 0) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + //鐢ㄤ簬瀛樺偍瀛愭爲褰㈢殑鏁版嵁 + var SaleBILLLIS2 = new List(); + + + SaleBILLLIS = FEntity.Select(item => new CombinaClass + { + FBIllNO = Convert.ToString(item["FBILLNO"]), + FCONTRACTNUMBER = Convert.ToString(item["FCONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = Convert.ToString(item["FSKBILLNO"]), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = Convert.ToString(item["FType"]), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }).ToList(); + ReceiveBILLLIST = FEntity2.Select(item => new CombinaClass + { + FBIllNO = Convert.ToString(item["FBILLNO2"]), + FDate = Convert.ToString(item["FDate2"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRemark = Convert.ToString(item["FRemark"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FISHX = item["FISHX2"]?.ToString(), + FWeiYi = item["FWeiYi2"]?.ToString(), + }).ToList(); + + + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + + //淇敼閿鍞鍗/搴旀敹鍗 + foreach (var item in stringFBILLNOANDList[0].FBILLNOList) + { + + var item2 = SaleBILLLIS.FirstOrDefault(h=>h.FBIllNO==item.FBILLNO); + if (item2 != null) + { + SaleBILLLIS2.Add(item2); + item2.FSKBIllNO = stringFBILLNOANDList[0].FBILLNO; + fString.Add(item2.FCONTRACTNUMBER); + item2.FISHX = "宸叉牳閿閰嶅"; + } + + } + + + + + //鑾峰彇绾歌川鍚堝悓鍙 + string fCONTRACTNUMBER = string.Join(",", fString); + + //淇敼鏀舵鍗 + INDEXNumber = 1; + this.Model.SetValue("FCONTRACTNUMBER2", fCONTRACTNUMBER, fRow); + this.Model.SetValue("FISHX2", "宸叉牳閿閰嶅", fRow); + double sumAmount = 0; + int CurrentIndex2 = this.View.Model.GetEntryCurrentRowIndex("FEntity2"); + var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", CurrentIndex2)); + for (int i = 0; i < SaleBILLLIS2.Count; i++) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.SetValue("FPARENTROWID", FROWID, CurrentIndex2); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO2", SaleBILLLIS2[i].FBIllNO, Rowindex); + this.View.Model.SetValue("FDATE2", SaleBILLLIS2[i].FDate, Rowindex); + this.View.Model.SetValue("F_MBBA_Decimal_imu", SaleBILLLIS2[i].FALLAMOUNT, Rowindex); + this.View.Model.SetValue("FClient2", SaleBILLLIS2[i].FClient, Rowindex); + this.View.Model.SetValue("FCreated2", SaleBILLLIS2[i].FCreated, Rowindex); + this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLIS2[i].FCONTRACTNUMBER, Rowindex); + this.View.Model.SetValue("FSalesman2", SaleBILLLIS2[i].FSalesman, Rowindex); + this.View.UpdateView("FEntity2"); + sumAmount += SaleBILLLIS2[i].FALLAMOUNT; + } + this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, fRow); + + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i].FSalesman, i); + } + this.View.UpdateView("FEntity"); + INDEXNumber = 0; + } + }); + } + + /// + /// 鐐瑰嚮鎸夐挳鎿嶄綔 + /// + /// + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + //鑷姩鍖归厤 + if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2")) + { + //#region 鍏ㄩ儴 + //閿鍞鍗曠粦瀹氭暟鎹 + SaleBILLLIS = new List(); + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + + SaleBILLLIS = FEntity.Select(item => new CombinaClass + { + FBIllNO = Convert.ToString(item["FBILLNO"]), + FCONTRACTNUMBER = Convert.ToString(item["FCONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = Convert.ToString(item["FSKBILLNO"]), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = Convert.ToString(item["FType"]), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }).ToList(); + var SaleBILLLISNew = SaleBILLLIS.Where(a => a.FISHX != "宸叉牳閿閰嶅").ToList(); + var ReceiveBILLLIST2 = new List(); + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + ReceiveBILLLIST2 = FEntity2.Select(item => new CombinaClass + { + FBIllNO = item["FBILLNO2"]?.ToString(), + FDate = item["FDate2"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FRemark = item["FRemark"]?.ToString(), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRow = Convert.ToInt32(item["Seq"]) - 1, + F_RowNew = Convert.ToInt32(item["F_RowNew"]) + }).ToList(); + //閲嶇疆骞跺彧鍙栫埗绾ф爲褰㈡暟鎹 + ReceiveBILLLIST = new List(); + ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "宸叉牳閿閰嶅").OrderBy(t=>t.FClient).ThenBy(t=>t.FCONTRACTNUMBER).ThenBy(t=>t.FDate).ToList(); + List FBILLNOLIST = new List(); + List FClient = new List(); + List result = new List(); + var FStartTime = DateTime.Now; + + #region 鏃х増 + + //#region 鍖归厤閿鍞鍗 + //var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "閿鍞鍗" && t.FISHX != "宸叉牳閿閰嶅").ToList(); + + ////-----------20250117--------------------鈫 + ////灏嗛攢鍞鍗曟牴鎹鎴峰垎缁 + //var FClientList = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); + ////璁$畻鍒嗙粍姹囨诲悎璁¢噾棰濈敤浜庨厤瀵规敹娆惧崟 + //for (int i = 0; i < FClientList.Count; i++) + //{ + // List result2 = new List(); + // var SaleSumAmount = SaleBILLLIS2Sal.Where(a => a.FClient == FClientList[i].Key).ToList(); + // CombinationGenerator_yuyubo.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + // result.AddRange(result2); + //} + ////------------20250117-------------------鈫 + ////瀛樺偍鏀舵鍗曠敤浜庢牳閿 + //List ReceiveBILLLISTNew = new List(ReceiveBILLLIST); + ////瀛樺偍瀵瑰簲閿鍞鍗/搴旀敹鍗曚互鍙婃敹娆惧崟鐨 + //List resultNew = new List(); + ////鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犻攢鍞鍗 + //for (int i = 0; i < ReceiveBILLLIST.Count; i++) + //{ + // var aaa = CombinationGenerator_yuyubo.GetCombinationsDataByList2(result, ReceiveBILLLIST[i].FDAMOUNT, ReceiveBILLLIST[i].FClient); + // if (aaa.Count > 0) + // { + // //FBIllNO瀛樻斁瀵瑰簲鐨勯攢鍞鍗曠紪鍙枫丗BIllNO2瀛樻斁瀵瑰簲鏀舵鍗曠紪鍙 + // result = CombinationGenerator_yuyubo.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); + // foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) + // { + // SaleBILLLIS2Sal.Remove(item); + // } + // //鑾峰彇绾歌川鍚堝悓鍙 + // List fString = new List(); + // foreach (var item in SaleBILLLISNew) + // { + // if (item.FBIllNO.Equals(aaa[0].FBIllNO[0].ToString())) + // { + // //鏇存柊閿鍞鍗曟暟鎹 + // item.FSKBIllNO = ReceiveBILLLIST[i].FBIllNO; + // item.FISHX = "宸叉牳閿閰嶅"; + // fString.Add(item.FCONTRACTNUMBER); + // } + // } + // string fCONTRACTNUMBER = string.Join(",", fString); + // //鏇存柊鏀舵鍗曟暟鎹 + // ReceiveBILLLIST[i].FCONTRACTNUMBER = fCONTRACTNUMBER; + // ReceiveBILLLIST[i].FISHX = "宸叉牳閿閰嶅"; + // //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + // ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); + // } + //} + + //#region 闅愯棌浠g爜 + + ////鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶寮犻攢鍞鍗 + //for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + //{ + // var resultNew2 = CombinationGenerator_yuyubo.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); + // if (resultNew2.Count > 0) + // { + // result = CombinationGenerator_yuyubo.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); + // foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + // { + // SaleBILLLIS2Sal.Remove(item); + // } + // //鑾峰彇绾歌川鍚堝悓鍙 + // List fString = new List(); + // //寰幆閿鍞鍗 + // foreach (var item in resultNew2[0].FBIllNO) + // { + // foreach (var item2 in SaleBILLLISNew) + // { + // if (item2.FBIllNO.Equals(item)) + // { + // item2.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; + // //if (item2.FDAMOUNT != 0) + // //{ + // // item2.FYAMOUNT = item2.FDAMOUNT; + // //} + // //item2.FDAMOUNT = 0; + // item2.FISHX = "宸叉牳閿閰嶅"; + // fString.Add(item2.FCONTRACTNUMBER); + // } + // } + // } + // string fCONTRACTNUMBER = string.Join(",", fString); + // //寰幆鏀舵鍗 + // foreach (var item in ReceiveBILLLIST.Where(t => t.FBIllNO == ReceiveBILLLISTNew[i].FBIllNO)) + // { + // item.FCONTRACTNUMBER = fCONTRACTNUMBER; + // //if (item.FDAMOUNT != 0) + // //{ + // // item.FYAMOUNT = item.FDAMOUNT; + // //} + // //item.FDAMOUNT = 0; + // item.FISHX = "宸叉牳閿閰嶅"; + // } + // //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + // ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); + // } + //} + + ////-----------20250118--------------------鈫 + ////灏嗘敹娆惧崟鏍规嵁瀹㈡埛鍒嗙粍 + //var SKFClientList = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); + //result = new List(); + //for (int i = 0; i < SKFClientList.Count; i++) + //{ + // List result2 = new List(); + // var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList[i].Key).ToList(); + // CombinationGenerator_yuyubo.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + // result.AddRange(result2); + //} + ////1涓攢鍞鍗曞搴斿寮犳敹娆惧崟 + //for (int i = 0; i < SaleBILLLIS2Sal.Count; i++) + //{ + // var resultNew2 = CombinationGenerator_yuyubo.GetCombinationsDataByListTK(result, SaleBILLLIS2Sal[i].FDAMOUNT, SaleBILLLIS2Sal[i].FClient); + // if (resultNew2.Count > 0) + // { + // result = CombinationGenerator_yuyubo.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); + // foreach (var item in ReceiveBILLLIST.Where(t => resultNew2[0].FBIllNO2.Contains(t.FBIllNO))) + // { + // ReceiveBILLLISTNew.Remove(item); + // } + // foreach (var item in SaleBILLLISNew.Where(a => a.FBIllNO == SaleBILLLIS2Sal[i].FBIllNO)) + // { + // string fCONTRACTNUMBER = string.Join(",", resultNew2[0].FBIllNO2); + // item.FSKBIllNO = fCONTRACTNUMBER; + // item.FWeiYi = "鏄"; + // //if (item.FDAMOUNT != 0) + // //{ + // // item.FYAMOUNT = item.FDAMOUNT; + // //} + // //item.FDAMOUNT = 0; + // item.FISHX = "宸叉牳閿閰嶅"; + // } + // foreach (var item in resultNew2[0].FBIllNO2) + // { + // foreach (var item2 in ReceiveBILLLIST) + // { + // if (item2.FBIllNO.Equals(item)) + // { + // item2.FCONTRACTNUMBER = SaleBILLLIS2Sal[i].FCONTRACTNUMBER; + // item2.FWeiYi = "鍚"; + // //if (item2.FDAMOUNT != 0) + // //{ + // // item2.FYAMOUNT = item2.FDAMOUNT; + // //} + // //item2.FDAMOUNT = 0; + // item2.FISHX = "宸叉牳閿閰嶅"; + // } + // } + // } + // SaleBILLLIS2Sal.Remove(SaleBILLLIS2Sal[i]); + // } + //} + ////-----------20250118--------------------鈫 + + //#endregion + + //#endregion + + #endregion + + + #region 鏂扮増 2025-04-07 + #region 鍖归厤閿鍞鍗 + var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "閿鍞鍗" && t.FISHX != "宸叉牳閿閰嶅").ToList(); + //灏嗛攢鍞鍗曟牴鎹鎴峰垎缁 + //var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); + //var FClientReceiveBillList= ReceiveBILLLIST + + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犻攢鍞鍗 + var oneToOneTemp = (from q in SaleBILLLIS2Sal + join u in ReceiveBILLLIST on new { q.FClient, q.FDAMOUNT } equals new { u.FClient, u.FDAMOUNT } + select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO }).ToList(); + var saleList1 = oneToOneTemp.Select(t => t.FBIllNO).Distinct().ToList(); + var ReceiveList1 = oneToOneTemp.Select(t => t.UFbillNo).Distinct().ToList(); + if (saleList1.Count > ReceiveList1.Count) + { + List deleteFBIllNOList = new List(); + ReceiveList1.ForEach(t => + { + + var temp11 = oneToOneTemp.FirstOrDefault(h => h.UFbillNo == t && !deleteFBIllNOList.Contains(h.FBIllNO)).FBIllNO; + deleteFBIllNOList.Add(temp11); + var item = SaleBILLLISNew.Where(h => h.FBIllNO == temp11).OrderBy(h=>h.FDate).FirstOrDefault(); + //鏇存柊閿鍞鍗曟暟鎹 + item.FSKBIllNO = t; + item.FISHX = "宸叉牳閿閰嶅"; + List fString = new List(); + fString.Add(item.FCONTRACTNUMBER); + string fCONTRACTNUMBER = string.Join(",", fString); + //鏇存柊鏀舵鍗曟暟鎹 + var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == t); + if (receiveItemTemp != null) + { + receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER; + receiveItemTemp.FISHX = "宸叉牳閿閰嶅"; + } + + }); + } + else + { + List deleteFBIllNOList = new List(); + saleList1.ForEach(t => + { + var temp11 = oneToOneTemp.Where(h => h.FBIllNO == t && !deleteFBIllNOList.Contains(h.UFbillNo)).OrderBy(h=>h.UFbillNo).FirstOrDefault().UFbillNo; + deleteFBIllNOList.Add(temp11); + var item = SaleBILLLISNew.FirstOrDefault(h => h.FBIllNO == t); + //鏇存柊閿鍞鍗曟暟鎹 + item.FSKBIllNO = t; + item.FISHX = "宸叉牳閿閰嶅"; + List fString = new List(); + fString.Add(item.FCONTRACTNUMBER); + string fCONTRACTNUMBER = string.Join(",", fString); + //鏇存柊鏀舵鍗曟暟鎹 + var receiveItemTemp = ReceiveBILLLIST.FirstOrDefault(h => h.FBIllNO == temp11); + if (receiveItemTemp != null) + { + receiveItemTemp.FCONTRACTNUMBER = fCONTRACTNUMBER; + receiveItemTemp.FISHX = "宸叉牳閿閰嶅"; + } + + }); + } + + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶寮犻攢鍞鍗 + var SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "宸叉牳閿閰嶅").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList(); + ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "宸叉牳閿閰嶅").OrderBy(t => t.FClient).ThenBy(t => t.FDate).ToList(); + + ReceiveBILLLIST.ForEach(t => + { + var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && t.FDAMOUNT >= h.FDAMOUNT).OrderBy(h => h.FBIllNO).ToList(); + List sales1 = new List { t.FDAMOUNT }; + var payments2 = tempList.Select(k => k.FDAMOUNT).ToList(); + + var matches = CombinationGenerator_yuyubo.MatchSalesAndPayments(sales1, payments2); + + if (matches.Count > 0) + { + var FDAMOUNTList = matches[0].FirstOrDefault(); + tempList = tempList.Where(h => FDAMOUNTList.Contains(h.FDAMOUNT)).OrderBy(h => h.FDate).ToList(); + var fbillNoList = tempList.Select(h => h.FBIllNO).ToList(); + var SaleTempList = SaleBILLLISNew.Where(h => fbillNoList.Contains(h.FBIllNO)).ToList(); + List fString = new List(); + SaleTempList.ForEach(item => + { + //鏇存柊閿鍞鍗曟暟鎹 + item.FSKBIllNO = t.FBIllNO; + item.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item.FCONTRACTNUMBER); + }); + + string fCONTRACTNUMBER = string.Join(",", fString); + //鏇存柊鏀舵鍗曟暟鎹 + t.FCONTRACTNUMBER = fCONTRACTNUMBER; + t.FISHX = "宸叉牳閿閰嶅"; + } + + }); + //1涓攢鍞鍗曞搴斿寮犳敹娆惧崟 + SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "宸叉牳閿閰嶅").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList(); + ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "宸叉牳閿閰嶅").OrderBy(t => t.FClient).ThenBy(t => t.FDate).ToList(); + SaleBILLLIS2Sa2.ForEach(t => + { + var tempList = ReceiveBILLLIST.Where(h => h.FClient == t.FClient && t.FDAMOUNT >= h.FDAMOUNT).OrderBy(h => h.FBIllNO).ToList(); + List sales1 = new List { t.FDAMOUNT }; + var payments2 = tempList.Select(k => k.FDAMOUNT).ToList(); + + var matches = CombinationGenerator_yuyubo.MatchSalesAndPayments(sales1, payments2); + + if (matches.Count > 0) + { + var FDAMOUNTList = matches[0].FirstOrDefault(); + tempList = tempList.Where(h => FDAMOUNTList.Contains(h.FDAMOUNT)).OrderBy(h => h.FDate).ToList(); + var fbillNoList = tempList.Select(h => h.FBIllNO).ToList(); + var ReceiveBILLLTempList = ReceiveBILLLIST.Where(h => fbillNoList.Contains(h.FBIllNO)).ToList(); + + ReceiveBILLLTempList.ForEach(item => + { + //鏇存柊鏀舵鍗曟暟鎹 + + item.FSKBIllNO = t.FBIllNO; + item.FISHX = "宸叉牳閿閰嶅"; + item.FCONTRACTNUMBER = t.FCONTRACTNUMBER; + + t.FSKBIllNO = item.FBIllNO; + }); + //鏇存柊閿鍞鍗曟暟鎹 + t.FISHX = "宸叉牳閿閰嶅"; + } + + }); + + #endregion + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLISNew.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLISNew[i]?.FBIllNO, i); + if (DateTime.TryParseExact(SaleBILLLISNew[i]?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate", SaleBILLLISNew[i]?.FDate, i); + } + else + { + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLISNew[i]?.FDate)).ToString("yyyy-MM-dd"), i); + } + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLISNew[i]?.FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLISNew[i]?.FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLISNew[i]?.FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLISNew[i]?.FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLISNew[i]?.FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLISNew[i]?.FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLISNew[i]?.FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLISNew[i]?.FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLISNew[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLISNew[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLISNew[i]?.FSalesman, i); + } + + this.View.UpdateView("FEntity"); + + #endregion + + //鑾峰彇宸查厤瀵圭殑鏁版嵁 + List SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FISHX == "宸叉牳閿閰嶅").ToList(); + INDEXNumber = 1; + //缁戝畾鏀舵鍗曟暟鎹 + foreach (var item in ReceiveBILLLIST) + { + if (!string.IsNullOrWhiteSpace(item.FCONTRACTNUMBER)) + { + this.Model.SetValue("FISHX2", item.FISHX, item.FRow); + this.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, item.FRow); + this.Model.SetValue("FWeiYi2", item.FWeiYi, item.FRow); + var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", item.FRow)); + var sumAmount = this.Model.GetValue("F_MBBA_Decimal_imu", item.FRow); + this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, item.FRow); + string[] strings = item.FCONTRACTNUMBER.Split(','); + if (strings.Count() == 1 && item.FWeiYi == "鍚") + { + for (int i = 0; i < SaleBILLLISNew2.Count; i++) + { + if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER)) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex); + if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate2", item?.FDate, Rowindex); + } + else + { + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex); + } + this.View.Model.SetValue("F_MBBA_Decimal_imu", item.FDAMOUNT, Rowindex); + this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex); + this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex); + this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex); + this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex); + this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex); + this.View.UpdateView("FEntity2"); + } + } + } + else + { + for (int i = 0; i < SaleBILLLISNew2.Count; i++) + { + if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER)) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex); + if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate2", item?.FDate, Rowindex); + } + else + { + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex); + } + this.View.Model.SetValue("F_MBBA_Decimal_imu", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex); + this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex); + this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex); + this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex); + this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex); + this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex); + this.View.UpdateView("FEntity2"); + } + } + } + this.Model.SetValue("FROWEXPANDTYPE", (int)ENUM_ROWTYPE.Expand, item.FRow); + } + } + + TreeEntryGrid entryGrid = this.View.GetControl("FEntity2") as TreeEntryGrid; + DynamicObjectCollection entryGrid2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + if (entryGrid != null) + { + for (int i = 0; i < entryGrid2.Count; i++) + { + entryGrid.ExpandedRow(i); + } + } + + var FEndTime = DateTime.Now; + TimeSpan timeSpan = FEndTime - FStartTime; + this.View.ShowMessage(string.Format("鍖归厤鎴愬姛,鍖归厤鑰楄垂鏃堕暱涓:{0}s", Math.Round(timeSpan.TotalMilliseconds / 1000))); + INDEXNumber = 0; + } + + //鐢熸垚鏍搁攢璁板綍鍗 + if (e.BarItemKey.ToString().Equals("MBBA_tbButton_5")) + { + // 寮瑰嚭纭妗 + View.ShowMessage("纭畾瑕佺敓鎴愭牳閿璁板綍鍗曞悧锛", MessageBoxOptions.YesNo, result => + { + if (result == MessageBoxResult.Yes) + { + #region 闅愯棌浠g爜 + + //瀛樺偍閿鍞鍗/搴旀敹鍗 + var fCombinaAddClass1 = new List(); + + //瀛樺偍鏀舵鍗 + var fCombinaAddSK = new List(); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + string Message = string.Empty; + bool ErrMessage = false; + + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + SaleBILLLIS = new List(); + var ReceiveBILLLIST2 = new List(); + ReceiveBILLLIST = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = item["FBILLNO"]?.ToString(), + FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = item["FDate"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = item["FSKBILLNO"]?.ToString(), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = item["FType"]?.ToString(), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + + foreach (var item in FEntity2) + { + ReceiveBILLLIST2.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBILLNO2"]), + FDate = Convert.ToString(item["FDate2"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRemark = Convert.ToString(item["FRemark"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FISHX = item["FISHX2"]?.ToString(), + FWeiYi = item["FWeiYi2"]?.ToString(), + FRow = Convert.ToInt32(item["Seq"]) - 1, + F_RowNew = Convert.ToInt32(item["F_RowNew"]) + }); + } + + ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX == "宸叉牳閿閰嶅").ToList(); + + //寰幆鏀舵鍗 + foreach (var item in FEntity2) + { + var s1 = Convert.ToInt32(item["F_RowNew"]); + var s2 = item["F_ISHX"]?.ToString(); + var s3 = string.IsNullOrWhiteSpace(item["FISHX2"]?.ToString()); + var s4 = string.IsNullOrWhiteSpace(item["FWeiYi2"]?.ToString()); + //鍒涘缓瀵硅薄瀛樺偍 + var SKList = new CombinaAddSK(); + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护闄や簡鏀舵鍗1瀵1銆1瀵瑰鐨勬暟鎹 + if (Convert.ToInt32(item["F_RowNew"]) == 1 && item["F_ISHX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX2"]?.ToString()) && string.IsNullOrWhiteSpace(item["FWeiYi2"]?.ToString())) + { + //鑾峰彇绾歌川鍚堝悓鍙 + var stringSplit = (item["FCONTRACTNUMBER2"])?.ToString()?.Split(','); + + //鎵惧埌瀵瑰簲閿鍞鍗 + foreach (var item2 in FEntity.Where(a => stringSplit.Contains(a["FCONTRACTNUMBER"]))) + { + var nTestList = new CombinaAddClass1(); + nTestList.FBIllNO = item2["FBILLNO"]?.ToString(); + nTestList.FClient = Convert.ToInt32(item2["FClient_Id"]); + nTestList.FDate = item2["FDate"]?.ToString(); + nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_emq"]); + nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER"]?.ToString(); + nTestList.FType = item2["FTYPE"]?.ToString(); + nTestList.FCreated = Convert.ToInt32(item2["FCreated_Id"]); + nTestList.FSalesman = Convert.ToInt32(item2["FSalesman_Id"]); + SKList.XSAPList.Add(nTestList); + } + SKList.FBIllNO = item["FBILLNO2"]?.ToString(); + SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(); + SKList.FClient = Convert.ToInt32(item["FClient2_Id"]); + SKList.FDate = item["FDate2"]?.ToString(); + SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_lsn"]); + SKList.FRemark = item["FRemark"]?.ToString(); + SKList.FCreated = Convert.ToInt32(item["FCreated2_Id"]); + SKList.FSalesman = Convert.ToInt32(item["FSalesman2_Id"]); + fCombinaAddSK.Add(SKList); + } + } + + //寰幆閿鍞鍗/搴旀敹鍗 + foreach (var item in FEntity) + { + //鍒涘缓瀵硅薄瀛樺偍 + var SKList = new CombinaAddClass1(); + + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护涓嶆槸鍞竴鐨勬暟鎹 + if (item["F_ISGX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX"]?.ToString()) && !string.IsNullOrWhiteSpace(item["FWeiYi"]?.ToString())) + { + //鑾峰彇绾歌川鍚堝悓鍙 + var stringSplit = (item["FSKBILLNO"])?.ToString()?.Split(','); + + //鎵惧埌瀵瑰簲閿鍞鍗 + foreach (var item2 in FEntity2.Where(a => stringSplit.Contains(a["FBILLNO2"]))) + { + var nTestList = new CombinaAddSK(); + nTestList.FBIllNO = item2["FBILLNO2"]?.ToString(); + nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER2"]?.ToString(); + nTestList.FClient = Convert.ToInt32(item2["FClient2_Id"]); + nTestList.FDate = item2["FDate2"]?.ToString(); + nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_lsn"]); + nTestList.FRemark = item2["FRemark"]?.ToString(); + nTestList.FSalesman = Convert.ToInt32(item2["FSalesman2_Id"]); + nTestList.FCreated = Convert.ToInt32(item2["FCreated2_Id"]); + SKList.SKList.Add(nTestList); + } + SKList.FBIllNO = item["FBILLNO"]?.ToString(); + SKList.FClient = Convert.ToInt32(item["FClient_Id"]); + SKList.FDate = item["FDate"]?.ToString(); + SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_emq"]); + SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(); + SKList.FType = item["FType"]?.ToString(); + SKList.FCreated = Convert.ToInt32(item["FCreated_Id"]); + SKList.FSalesman = Convert.ToInt32(item["FSalesman_Id"]); + fCombinaAddClass1.Add(SKList); + } + } + + #endregion + + if (fCombinaAddClass1.Count == 0 && fCombinaAddSK.Count == 0) + { + this.View.ShowWarnningMessage("鏈夋嫨鏍搁攢鏁版嵁锛"); + return; + } + + //鐢ㄤ簬瀛樺偍鐢熸垚鎴愬姛鐨勬敹娆惧崟 + List strings1 = new List(); + + //鐢ㄤ簬瀛樺偍鐢熸垚鎴愬姛鐨勯攢鍞鍗 + List strings2 = new List(); + + int ISXSNUM = 0; + + //寰幆鏀舵鍗/鏂板鏍搁攢璁板綍 + foreach (var item in fCombinaAddSK) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗 + var list = item.XSAPList; + + //姹囨婚噾棰 + var Amount = list.Sum(a => a.FALLAMOUNT); + + //搴旀敹鍗/閿鍞鍗曞垽鏂瓧娈 + int isTrue1 = list.GroupBy(t => t.FType).Count(); + + //鏀舵鍗/閿鍞鍗-搴旀敹鍗曞垽鏂鎴峰瓧娈 + int isTrue2 = list.GroupBy(t => t.FClient).Count(); + + //鍒ゆ柇鏄惁瀛樺湪搴旀敹鍗曡窡閿鍞鍗曟眹鎬绘牳閿 + if (isTrue1 > 1) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'瀛樺湪閿鍞鍗曚笌搴旀敹鍗曞悎骞舵牳閿鐨勮褰,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁鏄悓涓涓鎴 + else if (isTrue2 > 1 || item.FClient != list[0].FClient) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'閰嶅鐨(閿鍞鍗/搴旀敹鍗)鐨勫鎴蜂笉涓鑷,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁瀛樺湪涓や釜閿鍞鍗/搴旀敹鍗曟眹鎬绘牳閿锛堜笉鑳藉皬浜庢眹鎬绘暟锛 + else if (list.Count > 1 && item.FALLAMOUNT < Amount) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'鐨勬牳閿閲戦灏忎簬澶氫釜锛堥攢鍞鍗/搴旀敹鍗曪級鐨勬牳閿閲戦,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + else + { + //鍒涘缓鏍搁攢璁板綍鍗 + string FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item); + Message = Message + string.Format("鐢熸垚鏍搁攢璁板綍鍗曟垚鍔,鍗曞彿涓:'{0}'\r\n", FBILLNO); + strings1.Add(item.FCONTRACTNUMBER); + ISXSNUM++; + } + } + + //寰幆锛堥攢鍞鍗/搴旀敹鍗曪級/鏂板鏍搁攢璁板綍 + foreach (var item in fCombinaAddClass1) + { + //鑾峰彇鏀舵鍗 + var list = item.SKList; + + //姹囨婚噾棰 + var Amount = list.Sum(a => a.FALLAMOUNT); + + //鏀舵鍗/閿鍞鍗-搴旀敹鍗曞垽鏂鎴峰瓧娈 + int isTrue2 = list.GroupBy(t => t.FClient).Count(); + + //鍒ゆ柇鏄惁鏄悓涓涓鎴 + if (isTrue2 > 1 || item.FClient != list[0].FClient) + { + ErrMessage = true; + Message = Message + string.Format("(閿鍞鍗/搴旀敹鍗)鍙:'{0}'閰嶅鐨勬敹娆炬墦閭g殑瀹㈡埛涓嶄竴鑷,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁瀛樺湪涓や釜閿鍞鍗/搴旀敹鍗曟眹鎬绘牳閿锛堜笉鑳藉皬浜庢眹鎬绘暟锛 + else if (list.Count > 1 && item.FALLAMOUNT < Amount) + { + ErrMessage = true; + Message = Message + string.Format("锛堥攢鍞鍗/搴旀敹鍗曪級鍙:'{0}'鐨勬牳閿閲戦灏忎簬澶氫釜鏀舵鍗曠殑鏍搁攢閲戦,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + else + { + //鍒涘缓鏍搁攢璁板綍鍗 + strings2.Add(item.FBIllNO); + strings1.Add(item.FCONTRACTNUMBER); + //鍒涘缓鏍搁攢璁板綍鍗 + string FBILLNO = CommonHelper.CreateAutoWrireRecord3(this.Context, Convert.ToString(FOrgId), item, item.SKList); + Message = Message + string.Format("鐢熸垚鏍搁攢璁板綍鍗曟垚鍔,鍗曞彿涓:'{0}'\r\n", FBILLNO); + ISXSNUM++; + } + } + + if (!ErrMessage) + { + this.View.ShowMessage(Message); + } + else + { + this.View.ShowErrMessage(Message); + } + //濡傛灉瀛樺湪鐢熸垚鎴愬姛鐨勩佷篃鏈夌敓鎴愬け璐ョ殑涓嶈蛋鍒锋柊鍔熻兘鐩存帴灏嗘垚鍔熺殑鍗曟嵁浣撴暟鎹垹闄わ紒 + List SaleBILLLIStext = new List(); + foreach (var item in SaleBILLLIS) + { + if (strings2.Contains(item?.FBIllNO) || strings1.Contains(item?.FCONTRACTNUMBER)) + { + SaleBILLLIStext.Add(item); + } + } + + foreach (var item in SaleBILLLIStext) + { + SaleBILLLIS.Remove(item); + } + + if (ISXSNUM == 1) + { + //鍒犻櫎鍙湁涓鏉℃暟鎹殑鏀舵鍗 + foreach (var item in strings1) + { + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + if (ReceiveBILLLIST[i]?.FCONTRACTNUMBER == item?.ToString()) + { + this.Model.DeleteEntryRow("FEntity2", ReceiveBILLLIST[i].FRow); + } + } + } + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); + } + this.View.UpdateView("FEntity"); + } + else + { + this.Model.SetValue("FShuaXin", "闇瑕佹洿鏂"); + } + } + else + { + return; + } + }); + } + } + + /// + /// 鍗曟嵁浣撳兼洿鏂颁簨浠 + /// + /// + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + if (e.Field.Key.Equals("FShuaXin")) + { + //鏂囨湰瀛楁瑙﹀彂鍊兼洿鏂版椂锛屾ā鎷熺敤鎴风偣鍑昏彍鍗曪紝姝ゅ妯℃嫙鐐瑰嚮鈥滈夐」鈥濊彍鍗曪細 + ((IDynamicFormViewService)this.View).MainBarItemClick("MBBA_tbButton_1"); + } + if (e.Field.Key.Equals("FCONTRACTNUMBER2")) + { + if (INDEXNumber == 0) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + + SaleBILLLIS = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = item["FBILLNO"]?.ToString(), + FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = item["FDate"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = item["FSKBILLNO"]?.ToString(), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = item["FType"]?.ToString(), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + + var fBILLNO = this.Model.GetValue("FBILLNO2", e.Row); + var fCONTRACTNUMBER = this.Model.GetValue("FCONTRACTNUMBER2", e.Row); + + //鍒ゆ柇鏄惁涓虹┖ + if (string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + { + this.Model.SetValue("FISHX2", "", e.Row); + + this.Model.SetValue("F_MBBA_Decimal_qtr", 0, e.Row); + + //鑾峰彇褰撳墠鐨勭埗id + var fPARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString(); + + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + //鑾峰彇琛屾暟 + List ints = new List(); + + foreach (var fEntity in FEntity2) + { + if (fEntity["PARENTROWID"]?.ToString() == fPARENTROWID && fEntity["F_RowNew"]?.ToString() == "0") + { + ints.Add(Convert.ToInt32(fEntity["seq"]) - 1); + } + } + + //寰幆鍒犻櫎瀛愰」 + for (int i = 0; i < ints.Count; i++) + { + this.View.Model.DeleteEntryRow("FEntity2", ints[0]); + } + + foreach (var item in SaleBILLLIS) + { + if (!string.IsNullOrEmpty(item.FSKBIllNO)) + { + string[] strings = item.FSKBIllNO?.ToString()?.Split(','); + //鍒ゆ柇鍋囧鏄竴涓敹娆惧崟瀵瑰簲澶氫釜閿鍞鍗 + if (strings.Contains(fBILLNO?.ToString()) && strings.Count() == 1) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + //鍒ゆ柇澶氫釜鏀舵鍗曞搴斾竴涓攢鍞鍗 + else if (strings.Contains(fBILLNO?.ToString()) && strings.Count() > 1) + { + List strings1 = new List(strings); + strings1.Remove(fBILLNO?.ToString()); + string strings2 = string.Join(",", strings1); + item.FSKBIllNO = strings2; + } + } + } + } + int n = 1; + //鍒ゆ柇澶氫釜閿鍞鍗曞搴1涓敹娆惧崟锛堝彧鍒犻櫎涓涓垨澶氫釜浣嗕笉鏄┖鐨勬儏鍐碉級 + if (!string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + { + double sumAmount = 0; + string[] strings = fCONTRACTNUMBER?.ToString()?.Split(','); + var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", e.Row)); + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + foreach (var item in SaleBILLLIS) + { + if (!string.IsNullOrEmpty(item.FSKBIllNO) && item.FSKBIllNO == fBILLNO?.ToString()) + { + if (!strings.Contains(item.FCONTRACTNUMBER)) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + } + if (strings.Contains(item.FCONTRACTNUMBER)) + { + item.FSKBIllNO = fBILLNO?.ToString(); + item.FISHX = "宸叉牳閿閰嶅"; + this.Model.SetValue("FISHX2", "宸叉牳閿閰嶅", e.Row); + + //this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); + //this.View.Model.CreateNewEntryRow("FEntity2"); + //this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + //this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + //this.View.Model.SetValue("FBILLNO2", item.FBIllNO, Rowindex); + //if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + //{ + // this.View.Model.SetValue("FDate2", item?.FDate, Rowindex); + //} + //else + //{ + // this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex); + //} + //this.View.Model.SetValue("F_MBBA_Decimal_imu", item.FALLAMOUNT, Rowindex); + //this.View.Model.SetValue("FClient2", item.FClient, Rowindex); + //this.View.Model.SetValue("FCreated2", item.FCreated, Rowindex); + //this.View.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, Rowindex); + //this.View.Model.SetValue("FSalesman2", item.FSalesman, Rowindex); + //this.View.UpdateView("FEntity2"); + + sumAmount += item.FALLAMOUNT; + } + } + this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, e.Row); + n = SaleBILLLIS.Count(a => strings.Contains(a.FCONTRACTNUMBER)); + } + + if (n == 0) + { + this.Model.SetValue("FISHX2", "", e.Row); + } + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); + } + this.View.UpdateView("FEntity"); + } + } + if (e.Field.Key.Equals("F_ISHX")) + { + //鑾峰彇褰撳墠澶嶉夋鐨勫 + var IsHX = this.Model.GetValue("F_ISHX", e.Row)?.ToString(); + var ISWeiYi = this.Model.GetValue("FWeiYi2", e.Row)?.ToString(); + //鏌ヨ瀵瑰簲鐨勯攢鍞鍗/搴旀敹鍗-銆嬪嬀閫夊閫夋 + var fc = this.Model.GetValue("FCONTRACTNUMBER2", e.Row)?.ToString(); + if (IsHX == "True") + { + //鏌ョ湅鏄惁涓哄敮涓 + if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "鍚") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + for (int i = 0; i < FEntity.Count; i++) + { + if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + { + this.Model.SetValue("F_ISGX", "True", i); + } + } + } + } + if (IsHX == "False") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + int n = 0; + //鍒ゆ柇鍏朵粬鏀舵鍗曟槸鍚﹀嬀閫 + foreach (var item in FEntity2) + { + if (item["F_ISHX"]?.ToString() == "True" && item["FCONTRACTNUMBER2"]?.ToString() == fc) + { + n++; + } + } + + if (n == 0) + { + //鏌ョ湅鏄惁涓哄敮涓 + if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "鍚") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + for (int i = 0; i < FEntity.Count; i++) + { + if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + { + this.Model.SetValue("F_ISGX", "False", i); + } + } + } + } + } + } + } + + public enum ENUM_ROWTYPE : int + { + Default = 0, + Header = 1,///聽0000聽0000聽0001锛岃〃澶寸被鍨嬫暟鎹聽 + Normal = 16,///0000聽0001聽0000锛屾櫘閫氭暟鎹 + Expand = 32,///0000聽0010聽0000锛屽寘鍚睍寮鎺т欢鏁版嵁琛 + ExpandWaiting = 64,///0000聽0100聽0000锛屽寘鍚睍寮绛夊緟鏁版嵁璇锋眰琛 + Summary = 128///0001聽0000聽000锛屾眹鎬荤被鍨嬫暟鎹聽 + } + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill6.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill6.cs new file mode 100644 index 0000000..f4b0315 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill6.cs @@ -0,0 +1,1531 @@ +锘縰sing DocumentFormat.OpenXml.Drawing.Spreadsheet; +using Kingdee.BOS.App.Core.Utils; +using Kingdee.BOS.BusinessEntity.BusinessFlow; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; +using Kingdee.BOS.Core.Enums; +using Kingdee.BOS.Core.Msg; +using Kingdee.BOS.Orm; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Orm.Exceptions; +using Kingdee.BOS.Util; +using Newtonsoft.Json; +using NPOI.SS.Formula.Functions; +using Pilot_KD_Parino.Common; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Web.UI.WebControls; +using static Pilot_KD_Parino.QPHY_AutoWrire.Bill2; +using static Pilot_KD_Parino.QPHY_AutoWrire.Bill3; + +namespace Pilot_KD_Parino.QPHY_AutoWrire +{ + [HotUpdate] + [Description("鏀舵鏍搁攢6_05鐗堟湰鐨勫浠")] + //浜や簰浜嬩欢锛屽湪鐢 + public class Bill6 : AbstractDynamicFormPlugIn + { + //鍏ㄥ眬瀛樺偍鍗曟嵁浣撴暟鎹 + public List SaleBILLLIS = new List(); + public List ReceiveBILLLIST = new List(); + //鎷挎潵鍖归厤鐨勯泦鍚 + public List SaleBILLLIS2 = new List(); + int INDEXNumber = 0; + private int level = 0;//灞傜骇 + private string parentRowId = "";//鐖堕」ID + string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 鎸囧畾鐨勬棩鏈熸牸寮 + + /// + /// 寮濮 + /// + /// + public override void OnLoad(EventArgs e) + { + base.OnLoad(e); + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + List SaleBILLLISnew = new List(); + List ReceiveBILLLISTNew = new List(); + //鍒犻櫎鍥涗釜鍗曟嵁浣 + this.View.Model.DeleteEntryData("FEntity"); + this.View.Model.DeleteEntryData("FEntity2"); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + var FShuaXin = this.View.Model.GetValue("FShuaXin"); + + //璋冪敤SQL鑾峰彇鏁版嵁 + var WriteOrderDate = SQL.SqlManage.GetWriteOrderDate3(this.Context, Convert.ToString(FOrgId)); + var WriteReceiveDate = SQL.SqlManage.GetWriteReceiveDate3(this.Context, Convert.ToString(FOrgId)); + foreach (var item in WriteOrderDate) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FCONTRACTNUMBER = Convert.ToString(item["F_CONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FCUSTID"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FSalesman = Convert.ToInt32(item["FSALERID"]), + FIs30 = Convert.ToBoolean(item["FIs30"]), + FType = Convert.ToString(item["FType"]), + }); + } + foreach (var item in WriteReceiveDate) + { + ReceiveBILLLIST.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBIllNO"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["FALLAMOUNT"]), + FYAMOUNT = Convert.ToDouble(item["FYAMOUNT"]), + FDAMOUNT = Convert.ToDouble(item["FDAMOUNT"]), + FClient = Convert.ToInt32(item["FCONTACTUNIT"]), + FCreated = Convert.ToInt32(item["FCREATORID"]), + FRemark = Convert.ToString(item["FREMARK"]), + FSalesman = Convert.ToInt32(item["FSALEERID"]), + F_RowNew = 1 + //FALLAMOUNTY = Convert.ToDouble(item["FALLAMOUNTY"]), + //FCurr = Convert.ToInt32(item["FCurr"]) + }); + } + SaleBILLLIS2 = SaleBILLLIS.Where(t => t.FIs30 == true).ToList(); + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS2.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS2[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLIS2[i].FDate)).ToString("yyyy-MM-dd"), i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS2[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS2[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS2[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS2[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS2[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS2[i].FDAMOUNT, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS2[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS2[i].FSalesman, i); + } + this.View.UpdateView("FEntity"); + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + int Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + int RowindexNew = Rowindex; + this.View.Model.CreateNewEntryRow("FEntity2"); + string FROWID = SequentialGuid.NewGuid().ToString(); + this.View.Model.SetValue("FROWID", FROWID, RowindexNew); + this.View.Model.SetValue("FPARENTROWID", FROWID, RowindexNew); + this.View.Model.SetValue("FBILLNO2", ReceiveBILLLIST[i].FBIllNO, RowindexNew); + this.View.Model.SetValue("FDATE2", DateTime.Now.AddDays(-1 * Convert.ToInt32(ReceiveBILLLIST[i].FDate)).ToString("yyyy-MM-dd"), RowindexNew); + this.View.Model.SetValue("F_MBBA_Decimal_imu", ReceiveBILLLIST[i].FALLAMOUNT, RowindexNew); + this.View.Model.SetValue("FClient2", ReceiveBILLLIST[i].FClient, RowindexNew); + this.View.Model.SetValue("FRemark", ReceiveBILLLIST[i].FRemark, RowindexNew); + this.View.Model.SetValue("F_MBBA_Decimal_3iy", ReceiveBILLLIST[i].FYAMOUNT, RowindexNew); + this.View.Model.SetValue("F_MBBA_Decimal_lsn", ReceiveBILLLIST[i].FDAMOUNT, RowindexNew); + this.View.Model.SetValue("FCreated2", ReceiveBILLLIST[i].FCreated, RowindexNew); + this.View.Model.SetValue("FSalesman2", ReceiveBILLLIST[i].FSalesman, RowindexNew); + this.View.Model.SetValue("F_RowNew", ReceiveBILLLIST[i].F_RowNew, RowindexNew); + } + this.View.UpdateView("FEntity2"); + } + + /// + /// 缂栬緫鎸夐挳鐐瑰嚮浜嬩欢 + /// + /// + public override void BeforeF7Select(BeforeF7SelectEventArgs e) + { + base.BeforeF7Select(e); + if (e.FieldKey.EqualsIgnoreCase("FCONTRACTNUMBER2")) + { + //鑾峰彇鏀舵鍗曞彿/琛屽彿 + var fBillNo = this.View.Model.GetValue("FBILLNO2", e.Row).ToString(); + var fRow = e.Row; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鏂板缓瀛樺偍绫 + List stringFBILLNO = new List(); + foreach (var item in FEntity) + { + if (!string.IsNullOrWhiteSpace(item["FISHX"]?.ToString())) + { + StringFBILLNO stringFBILLNO1 = new StringFBILLNO(); + stringFBILLNO1.FBILLNO = item["FBILLNO"]?.ToString(); + stringFBILLNO.Add(stringFBILLNO1); + } + } + ShowDynamicForm(stringFBILLNO, fBillNo, fRow); + } + } + + /// + /// 寮瑰嚭鍔ㄦ佽〃鍗曠獥鍙 + /// + private void ShowDynamicForm(List stringFBILLNO, string fBillNo, int fRow) + { + // 灏嗗垪琛ㄥ簭鍒楀寲涓篔SON瀛楃涓 + string jsonFBILLNO = JsonConvert.SerializeObject(stringFBILLNO); + // 鍒涘缓鍔ㄦ佽〃鍗曟樉绀哄弬鏁 + DynamicFormShowParameter dynamicFormShowParameter = new DynamicFormShowParameter(); + //dynamicFormShowParameter.FormId = "VRYF_WriteoffWindow"; // 琛ㄥ崟ID + dynamicFormShowParameter.FormId = "MBBA_WriteoffWindow"; // 鏇挎崲涓哄疄闄呭姩鎬佽〃鍗旾D + dynamicFormShowParameter.OpenStyle.ShowType = ShowType.Modal; // 浠ユā鎬佺獥鍙e舰寮忔樉绀 + // 娣诲姞鑷畾涔夊弬鏁帮紝鐢ㄤ簬浼犻掓暟鎹 + dynamicFormShowParameter.CustomParams.Add("fBillNo", fBillNo); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("stringFBILLNO", jsonFBILLNO); // 鏍规嵁闇瑕佽缃弬鏁 + dynamicFormShowParameter.CustomParams.Add("IsEditable", "true"); // 纭繚琛ㄥ崟鏄彲缂栬緫鐨 + var stringFBILLNOANDList = new List(); + // 鏄剧ず鍔ㄦ佽〃鍗 + this.View.ShowForm(dynamicFormShowParameter, result => + { + if (result != null && result.ReturnData != null) + { + stringFBILLNOANDList.Add((StringFBILLNOANDList)result.ReturnData); + } + + //鍒ゆ柇鏄惁鑾峰彇鍒版暟鎹 + if (stringFBILLNOANDList[0].FBILLNOList.Count > 0) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + + SaleBILLLIS = new List(); + ReceiveBILLLIST = new List(); + //鐢ㄤ簬瀛樺偍瀛愭爲褰㈢殑鏁版嵁 + var SaleBILLLIS2 = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBILLNO"]), + FCONTRACTNUMBER = Convert.ToString(item["FCONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = Convert.ToString(item["FSKBILLNO"]), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = Convert.ToString(item["FType"]), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + foreach (var item in FEntity2) + { + ReceiveBILLLIST.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBILLNO2"]), + FDate = Convert.ToString(item["FDate2"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRemark = Convert.ToString(item["FRemark"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FISHX = item["FISHX2"]?.ToString(), + FWeiYi = item["FWeiYi2"]?.ToString(), + }); + } + + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + + //淇敼閿鍞鍗/搴旀敹鍗 + foreach (var item in stringFBILLNOANDList[0].FBILLNOList) + { + foreach (var item2 in SaleBILLLIS) + { + if (item2.FBIllNO == item.FBILLNO) + { + SaleBILLLIS2.Add(item2); + item2.FSKBIllNO = stringFBILLNOANDList[0].FBILLNO; + fString.Add(item2.FCONTRACTNUMBER); + item2.FISHX = "宸叉牳閿閰嶅"; + } + } + } + + //鑾峰彇绾歌川鍚堝悓鍙 + string fCONTRACTNUMBER = string.Join(",", fString); + + //淇敼鏀舵鍗 + INDEXNumber = 1; + this.Model.SetValue("FCONTRACTNUMBER2", fCONTRACTNUMBER, fRow); + this.Model.SetValue("FISHX2", "宸叉牳閿閰嶅", fRow); + double sumAmount = 0; + int CurrentIndex2 = this.View.Model.GetEntryCurrentRowIndex("FEntity2"); + var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", CurrentIndex2)); + for (int i = 0; i < SaleBILLLIS2.Count; i++) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.SetValue("FPARENTROWID", FROWID, CurrentIndex2); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO2", SaleBILLLIS2[i].FBIllNO, Rowindex); + this.View.Model.SetValue("FDATE2", SaleBILLLIS2[i].FDate, Rowindex); + this.View.Model.SetValue("F_MBBA_Decimal_imu", SaleBILLLIS2[i].FALLAMOUNT, Rowindex); + this.View.Model.SetValue("FClient2", SaleBILLLIS2[i].FClient, Rowindex); + this.View.Model.SetValue("FCreated2", SaleBILLLIS2[i].FCreated, Rowindex); + this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLIS2[i].FCONTRACTNUMBER, Rowindex); + this.View.Model.SetValue("FSalesman2", SaleBILLLIS2[i].FSalesman, Rowindex); + this.View.UpdateView("FEntity2"); + sumAmount += SaleBILLLIS2[i].FALLAMOUNT; + } + this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, fRow); + + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i].FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i].FSalesman, i); + } + this.View.UpdateView("FEntity"); + INDEXNumber = 0; + } + }); + } + + /// + /// 鐐瑰嚮鎸夐挳鎿嶄綔 + /// + /// + public override void AfterBarItemClick(AfterBarItemClickEventArgs e) + { + base.AfterBarItemClick(e); + + //鑷姩鍖归厤 + if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2")) + { + #region 鍏ㄩ儴 + //閿鍞鍗曠粦瀹氭暟鎹 + SaleBILLLIS = new List(); + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass + { + FBIllNO = Convert.ToString(item["FBILLNO"]), + FCONTRACTNUMBER = Convert.ToString(item["FCONTRACTNUMBER"]), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = Convert.ToString(item["FDate"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = Convert.ToString(item["FSKBILLNO"]), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = Convert.ToString(item["FType"]), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + var SaleBILLLISNew = SaleBILLLIS.Where(a => a.FISHX != "宸叉牳閿閰嶅").ToList(); + var ReceiveBILLLIST2 = new List(); + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + foreach (var item in FEntity2) + { + ReceiveBILLLIST2.Add(new CombinaClass() + { + FBIllNO = item["FBILLNO2"]?.ToString(), + FDate = item["FDate2"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FRemark = item["FRemark"]?.ToString(), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRow = Convert.ToInt32(item["Seq"]) - 1, + F_RowNew = Convert.ToInt32(item["F_RowNew"]) + }); + } + //閲嶇疆骞跺彧鍙栫埗绾ф爲褰㈡暟鎹 + ReceiveBILLLIST = new List(); + ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "宸叉牳閿閰嶅").ToList(); + List FBILLNOLIST = new List(); + List FClient = new List(); + List result = new List(); + var FStartTime = DateTime.Now; + #region 鍖归厤閿鍞鍗 + var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "閿鍞鍗" && t.FISHX != "宸叉牳閿閰嶅").ToList(); + //-----------20250117--------------------鈫 + //灏嗛攢鍞鍗曟牴鎹鎴峰垎缁 + var FClientList = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList(); + //璁$畻鍒嗙粍姹囨诲悎璁¢噾棰濈敤浜庨厤瀵规敹娆惧崟 + for (int i = 0; i < FClientList.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = SaleBILLLIS2Sal.Where(a => a.FClient == FClientList[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //------------20250117-------------------鈫 + //瀛樺偍鏀舵鍗曠敤浜庢牳閿 + List ReceiveBILLLISTNew = new List(ReceiveBILLLIST); + //瀛樺偍瀵瑰簲閿鍞鍗/搴旀敹鍗曚互鍙婃敹娆惧崟鐨 + List resultNew = new List(); + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + var aaa = CombinationGenerator.GetCombinationsDataByList2(result, ReceiveBILLLIST[i].FDAMOUNT, ReceiveBILLLIST[i].FClient); + if (aaa.Count > 0) + { + //FBIllNO瀛樻斁瀵瑰簲鐨勯攢鍞鍗曠紪鍙枫丗BIllNO2瀛樻斁瀵瑰簲鏀舵鍗曠紪鍙 + result = CombinationGenerator.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Sal.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + foreach (var item in SaleBILLLISNew) + { + if (item.FBIllNO.Equals(aaa[0].FBIllNO[0].ToString())) + { + //鏇存柊閿鍞鍗曟暟鎹 + item.FSKBIllNO = ReceiveBILLLIST[i].FBIllNO; + item.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item.FCONTRACTNUMBER); + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + //鏇存柊鏀舵鍗曟暟鎹 + ReceiveBILLLIST[i].FCONTRACTNUMBER = fCONTRACTNUMBER; + ReceiveBILLLIST[i].FISHX = "宸叉牳閿閰嶅"; + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); + } + } + + #region 闅愯棌浠g爜 + + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶寮犻攢鍞鍗 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Sal.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + //寰幆閿鍞鍗 + foreach (var item in resultNew2[0].FBIllNO) + { + foreach (var item2 in SaleBILLLISNew) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item2.FCONTRACTNUMBER); + } + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + //寰幆鏀舵鍗 + foreach (var item in ReceiveBILLLIST.Where(t => t.FBIllNO == ReceiveBILLLISTNew[i].FBIllNO)) + { + item.FCONTRACTNUMBER = fCONTRACTNUMBER; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); + } + } + + //-----------20250118--------------------鈫 + //灏嗘敹娆惧崟鏍规嵁瀹㈡埛鍒嗙粍 + var SKFClientList = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); + result = new List(); + for (int i = 0; i < SKFClientList.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //1涓攢鍞鍗曞搴斿寮犳敹娆惧崟 + for (int i = 0; i < SaleBILLLIS2Sal.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByListTK(result, SaleBILLLIS2Sal[i].FDAMOUNT, SaleBILLLIS2Sal[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); + foreach (var item in ReceiveBILLLIST.Where(t => resultNew2[0].FBIllNO2.Contains(t.FBIllNO))) + { + ReceiveBILLLISTNew.Remove(item); + } + foreach (var item in SaleBILLLISNew.Where(a => a.FBIllNO == SaleBILLLIS2Sal[i].FBIllNO)) + { + string fCONTRACTNUMBER = string.Join(",", resultNew2[0].FBIllNO2); + item.FSKBIllNO = fCONTRACTNUMBER; + item.FWeiYi = "鏄"; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + foreach (var item in resultNew2[0].FBIllNO2) + { + foreach (var item2 in ReceiveBILLLIST) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FCONTRACTNUMBER = SaleBILLLIS2Sal[i].FCONTRACTNUMBER; + item2.FWeiYi = "鍚"; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + } + } + } + SaleBILLLIS2Sal.Remove(SaleBILLLIS2Sal[i]); + } + } + //-----------20250118--------------------鈫 + + #endregion + + #endregion + #region 鍖归厤搴旀敹鍗 + //var SaleBILLLIS2Receive = SaleBILLLIS2.Where(t => t.FType == "搴旀敹鍗" && t.FISHX != "宸叉牳閿閰嶅").ToList(); + var SaleBILLLIS2Receive = SaleBILLLIS2.Where(t => t.FType == "搴旀敹鍗" && t.FISHX != "宸叉牳閿閰嶅").ToList(); + result = new List(); + //-----------20250117--------------------鈫 + var FClientList2 = SaleBILLLIS2Receive.GroupBy(t => t.FClient).ToList(); + //璁$畻鍒嗙粍姹囨诲悎璁¢噾棰濈敤浜庨厤瀵规敹娆惧崟 + for (int i = 0; i < FClientList2.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = SaleBILLLIS2Receive.Where(a => a.FClient == FClientList2[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //------------20250117-------------------鈫 + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲涓寮犲簲鏀跺崟 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var aaa = CombinationGenerator.GetCombinationsDataByList2(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (aaa.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, aaa[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => aaa[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Receive.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + foreach (var item in SaleBILLLISNew) + { + if (item.FBIllNO.Equals(aaa[0].FBIllNO[0].ToString())) + { + //鏇存柊閿鍞鍗曟暟鎹 + item.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item.FCONTRACTNUMBER); + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + //鏇存柊鏀舵鍗曟暟鎹 + ReceiveBILLLIST[i].FCONTRACTNUMBER = fCONTRACTNUMBER; + //if (ReceiveBILLLIST[i].FDAMOUNT != 0) + //{ + // ReceiveBILLLIST[i].FYAMOUNT = ReceiveBILLLIST[i].FDAMOUNT; + //} + //ReceiveBILLLIST[i].FDAMOUNT = 0; + ReceiveBILLLIST[i].FISHX = "宸叉牳閿閰嶅"; + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLIST[i]); + } + } + //鍏堟寫1寮犳敹娆惧崟瀵瑰簲澶氬紶搴旀敹鍗 + for (int i = 0; i < ReceiveBILLLISTNew.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByList(result, ReceiveBILLLISTNew[i].FDAMOUNT, ReceiveBILLLISTNew[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO); + foreach (var item in SaleBILLLIS.Where(t => resultNew2[0].FBIllNO.Contains(t.FBIllNO))) + { + SaleBILLLIS2Receive.Remove(item); + } + //鑾峰彇绾歌川鍚堝悓鍙 + List fString = new List(); + foreach (var item in resultNew2[0].FBIllNO) + { + foreach (var item2 in SaleBILLLISNew) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FSKBIllNO = ReceiveBILLLISTNew[i].FBIllNO; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + fString.Add(item2.FCONTRACTNUMBER); + } + } + } + string fCONTRACTNUMBER = string.Join(",", fString); + foreach (var item in ReceiveBILLLIST.Where(t => t.FBIllNO == ReceiveBILLLISTNew[i].FBIllNO)) + { + //鏇存柊鏀舵鍗曟暟鎹 + item.FCONTRACTNUMBER = fCONTRACTNUMBER; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + //鍒犻櫎宸叉牳閿鍖瑰鐨勬敹娆惧崟 + ReceiveBILLLISTNew.Remove(ReceiveBILLLISTNew[i]); + } + } + + //-----------20250118--------------------鈫 + //灏嗘敹娆惧崟鏍规嵁瀹㈡埛鍒嗙粍 + var SKFClientList2 = ReceiveBILLLISTNew.GroupBy(t => t.FClient).ToList(); + result = new List(); + for (int i = 0; i < SKFClientList2.Count; i++) + { + List result2 = new List(); + var SaleSumAmount = ReceiveBILLLISTNew.Where(a => a.FClient == SKFClientList2[i].Key).ToList(); + CombinationGenerator.GetCombinations2(SaleSumAmount, 0, FBILLNOLIST, FClient, ref result2, 0); + result.AddRange(result2); + } + //1涓簲鏀跺崟瀵瑰簲澶氬紶鏀舵鍗 + for (int i = 0; i < SaleBILLLIS2Receive.Count; i++) + { + var resultNew2 = CombinationGenerator.GetCombinationsDataByListTK(result, SaleBILLLIS2Receive[i].FDAMOUNT, SaleBILLLIS2Receive[i].FClient); + if (resultNew2.Count > 0) + { + result = CombinationGenerator.DeleteCombinationsDataByList(result, resultNew2[0].FBIllNO2); + foreach (var item in ReceiveBILLLIST.Where(t => resultNew2[0].FBIllNO2.Contains(t.FBIllNO))) + { + ReceiveBILLLISTNew.Remove(item); + } + foreach (var item in SaleBILLLISNew.Where(a => a.FBIllNO == SaleBILLLIS2Receive[i].FBIllNO)) + { + string fCONTRACTNUMBER = string.Join(",", resultNew2[0].FBIllNO2); + item.FSKBIllNO = fCONTRACTNUMBER; + item.FWeiYi = "鏄"; + //if (item.FDAMOUNT != 0) + //{ + // item.FYAMOUNT = item.FDAMOUNT; + //} + //item.FDAMOUNT = 0; + item.FISHX = "宸叉牳閿閰嶅"; + } + foreach (var item in resultNew2[0].FBIllNO2) + { + foreach (var item2 in ReceiveBILLLIST) + { + if (item2.FBIllNO.Equals(item)) + { + item2.FCONTRACTNUMBER = SaleBILLLIS2Receive[i].FCONTRACTNUMBER; + item2.FWeiYi = "鍚"; + //if (item2.FDAMOUNT != 0) + //{ + // item2.FYAMOUNT = item2.FDAMOUNT; + //} + //item2.FDAMOUNT = 0; + item2.FISHX = "宸叉牳閿閰嶅"; + } + } + } + SaleBILLLIS2Receive.Remove(SaleBILLLIS2Receive[i]); + } + } + //-----------20250118--------------------鈫 + + #endregion + + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + + #region 浜屾杩囨护鏁版嵁 + + //绗簩娆¤嚜鍔ㄩ厤瀵癸紙鏄惁鏈夎锛塠鏀舵鍗曚负涓籡 + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + //杩囨护闄や簡1瀵1銆1瀵瑰鐨勬暟鎹 + if (!string.IsNullOrWhiteSpace(ReceiveBILLLIST[i].FISHX?.ToString()) && string.IsNullOrWhiteSpace(ReceiveBILLLIST[i].FWeiYi?.ToString())) + { + string[] strings = ReceiveBILLLIST[i].FCONTRACTNUMBER.Split(','); + + //鑾峰彇鏀舵鍗曟牳閿閲戦 + decimal amount1 = Convert.ToDecimal(ReceiveBILLLIST[i].FDAMOUNT); + + //鑾峰彇閿鍞鍗/搴旀敹鍗曪紙姹囨诲悗閲戦锛 + var number = SaleBILLLISNew.Where(a => strings.Contains(a.FCONTRACTNUMBER)).ToList(); + decimal amount2 = Convert.ToDecimal(number.Sum(a => a.FDAMOUNT)); + + //濡傛灉鑷姩閰嶅鐨勫间笉鐩稿悓灏遍噸缃负鏈尮瀵圭姸鎬 + if (amount1 != amount2) + { + //鏀舵鍗曚慨鏀 + ReceiveBILLLIST[i].FCONTRACTNUMBER = ""; + ReceiveBILLLIST[i].FISHX = ""; + //閿鍞鍗曚慨鏀 + foreach (var item in number) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + } + } + } + } + + //绗簩娆¤嚜鍔ㄩ厤瀵癸紙鏄惁鏈夎锛塠閿鍞鍗曚负涓籡 + for (int i = 0; i < SaleBILLLISNew.Count; i++) + { + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护涓嶆槸鍞竴鐨勬暟鎹 + if (!string.IsNullOrWhiteSpace(SaleBILLLISNew[i].FISHX?.ToString()) && !string.IsNullOrWhiteSpace(SaleBILLLISNew[i].FWeiYi?.ToString())) + { + string[] strings = SaleBILLLISNew[i].FSKBIllNO.Split(','); + + //鑾峰彇鏀舵鍗曟牳閿閲戦锛堟眹鎬诲悗閲戦锛 + var number = ReceiveBILLLIST.Where(a => strings.Contains(a.FBIllNO)).ToList(); + decimal amount2 = Convert.ToDecimal(number.Sum(a => a.FDAMOUNT)); + + //鑾峰彇閿鍞鍗/搴旀敹鍗 + decimal amount1 = Convert.ToDecimal(SaleBILLLISNew[i].FDAMOUNT); + + //濡傛灉鑷姩閰嶅鐨勫间笉鐩稿悓灏遍噸缃负鏈尮瀵圭姸鎬 + if (amount1 != amount2) + { + //閿鍞鍗曚慨鏀 + SaleBILLLISNew[i].FSKBIllNO = ""; + SaleBILLLISNew[i].FISHX = ""; + SaleBILLLISNew[i].FWeiYi = ""; + //鏀舵鍗曚慨鏀 + foreach (var item in number) + { + item.FCONTRACTNUMBER = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + } + } + } + + #endregion + + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLISNew.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLISNew[i]?.FBIllNO, i); + if (DateTime.TryParseExact(SaleBILLLISNew[i]?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate", SaleBILLLISNew[i]?.FDate, i); + } + else + { + this.View.Model.SetValue("FDate", DateTime.Now.AddDays(-1 * Convert.ToInt32(SaleBILLLISNew[i]?.FDate)).ToString("yyyy-MM-dd"), i); + } + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLISNew[i]?.FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLISNew[i]?.FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLISNew[i]?.FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLISNew[i]?.FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLISNew[i]?.FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLISNew[i]?.FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLISNew[i]?.FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLISNew[i]?.FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLISNew[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLISNew[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLISNew[i]?.FSalesman, i); + } + + this.View.UpdateView("FEntity"); + + #endregion + + //鑾峰彇宸查厤瀵圭殑鏁版嵁 + List SaleBILLLISNew2 = SaleBILLLISNew.Where(a => a.FISHX == "宸叉牳閿閰嶅").ToList(); + INDEXNumber = 1; + //缁戝畾鏀舵鍗曟暟鎹 + foreach (var item in ReceiveBILLLIST) + { + if (!string.IsNullOrWhiteSpace(item.FCONTRACTNUMBER)) + { + this.Model.SetValue("FISHX2", item.FISHX, item.FRow); + this.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, item.FRow); + this.Model.SetValue("FWeiYi2", item.FWeiYi, item.FRow); + var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", item.FRow)); + var sumAmount = this.Model.GetValue("F_MBBA_Decimal_imu", item.FRow); + this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, item.FRow); + string[] strings = item.FCONTRACTNUMBER.Split(','); + if (strings.Count() == 1 && item.FWeiYi == "鍚") + { + for (int i = 0; i < SaleBILLLISNew2.Count; i++) + { + if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER)) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex); + if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate2", item?.FDate, Rowindex); + } + else + { + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex); + } + this.View.Model.SetValue("F_MBBA_Decimal_imu", item.FDAMOUNT, Rowindex); + this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex); + this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex); + this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex); + this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex); + this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex); + this.View.UpdateView("FEntity2"); + } + } + } + else + { + for (int i = 0; i < SaleBILLLISNew2.Count; i++) + { + if (strings.Contains(SaleBILLLISNew2[i].FCONTRACTNUMBER)) + { + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); + this.View.Model.CreateNewEntryRow("FEntity2"); + this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + this.View.Model.SetValue("FBILLNO2", SaleBILLLISNew2[i].FBIllNO, Rowindex); + if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + { + this.View.Model.SetValue("FDate2", item?.FDate, Rowindex); + } + else + { + this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex); + } + this.View.Model.SetValue("F_MBBA_Decimal_imu", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex); + this.View.Model.SetValue("FClient2", SaleBILLLISNew2[i].FClient, Rowindex); + this.View.Model.SetValue("FCreated2", SaleBILLLISNew2[i].FCreated, Rowindex); + this.View.Model.SetValue("FCONTRACTNUMBER2", SaleBILLLISNew2[i].FCONTRACTNUMBER, Rowindex); + this.View.Model.SetValue("FSalesman2", SaleBILLLISNew2[i].FSalesman, Rowindex); + this.View.Model.SetValue("F_MBBA_Decimal_qtr", SaleBILLLISNew2[i].FALLAMOUNT, Rowindex); + this.View.UpdateView("FEntity2"); + } + } + } + this.Model.SetValue("FROWEXPANDTYPE", (int)ENUM_ROWTYPE.Expand, item.FRow); + } + } + + TreeEntryGrid entryGrid = this.View.GetControl("FEntity2") as TreeEntryGrid; + DynamicObjectCollection entryGrid2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + if (entryGrid != null) + { + for (int i = 0; i < entryGrid2.Count; i++) + { + entryGrid.ExpandedRow(i); + } + } + + var FEndTime = DateTime.Now; + TimeSpan timeSpan = FEndTime - FStartTime; + this.View.ShowMessage(string.Format("鍖归厤鎴愬姛,鍖归厤鑰楄垂鏃堕暱涓:{0}s", Math.Round(timeSpan.TotalMilliseconds / 1000))); + INDEXNumber = 0; + } + + //鐢熸垚鏍搁攢璁板綍鍗 + if (e.BarItemKey.ToString().Equals("MBBA_tbButton_5")) + { + // 寮瑰嚭纭妗 + View.ShowMessage("纭畾瑕佺敓鎴愭牳閿璁板綍鍗曞悧锛", MessageBoxOptions.YesNo, result => + { + if (result == MessageBoxResult.Yes) + { + #region 闅愯棌浠g爜 + + //瀛樺偍閿鍞鍗/搴旀敹鍗 + var fCombinaAddClass1 = new List(); + + //瀛樺偍鏀舵鍗 + var fCombinaAddSK = new List(); + + var FOrgId = this.Context.CurrentOrganizationInfo.ID; + string Message = string.Empty; + bool ErrMessage = false; + + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + //鑾峰彇鏀舵鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + SaleBILLLIS = new List(); + var ReceiveBILLLIST2 = new List(); + ReceiveBILLLIST = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = item["FBILLNO"]?.ToString(), + FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = item["FDate"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = item["FSKBILLNO"]?.ToString(), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = item["FType"]?.ToString(), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + + foreach (var item in FEntity2) + { + ReceiveBILLLIST2.Add(new CombinaClass() + { + FBIllNO = Convert.ToString(item["FBILLNO2"]), + FDate = Convert.ToString(item["FDate2"]), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_imu"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_3iy"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_lsn"]), + FClient = Convert.ToInt32(item["FClient2_Id"]), + FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(), + FRemark = Convert.ToString(item["FRemark"]), + FCreated = Convert.ToInt32(item["FCreated2_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman2_Id"]), + FISHX = item["FISHX2"]?.ToString(), + FWeiYi = item["FWeiYi2"]?.ToString(), + FRow = Convert.ToInt32(item["Seq"]) - 1, + F_RowNew = Convert.ToInt32(item["F_RowNew"]) + }); + } + + ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX == "宸叉牳閿閰嶅").ToList(); + + //寰幆鏀舵鍗 + foreach (var item in FEntity2) + { + var s1 = Convert.ToInt32(item["F_RowNew"]); + var s2 = item["F_ISHX"]?.ToString(); + var s3 = string.IsNullOrWhiteSpace(item["FISHX2"]?.ToString()); + var s4 = string.IsNullOrWhiteSpace(item["FWeiYi2"]?.ToString()); + //鍒涘缓瀵硅薄瀛樺偍 + var SKList = new CombinaAddSK(); + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护闄や簡鏀舵鍗1瀵1銆1瀵瑰鐨勬暟鎹 + if (Convert.ToInt32(item["F_RowNew"]) == 1 && item["F_ISHX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX2"]?.ToString()) && string.IsNullOrWhiteSpace(item["FWeiYi2"]?.ToString())) + { + //鑾峰彇绾歌川鍚堝悓鍙 + var stringSplit = (item["FCONTRACTNUMBER2"])?.ToString()?.Split(','); + + //鎵惧埌瀵瑰簲閿鍞鍗 + foreach (var item2 in FEntity.Where(a => stringSplit.Contains(a["FCONTRACTNUMBER"]))) + { + var nTestList = new CombinaAddClass1(); + nTestList.FBIllNO = item2["FBILLNO"]?.ToString(); + nTestList.FClient = Convert.ToInt32(item2["FClient_Id"]); + nTestList.FDate = item2["FDate"]?.ToString(); + nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_emq"]); + nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER"]?.ToString(); + nTestList.FType = item2["FTYPE"]?.ToString(); + nTestList.FCreated = Convert.ToInt32(item2["FCreated_Id"]); + nTestList.FSalesman = Convert.ToInt32(item2["FSalesman_Id"]); + SKList.XSAPList.Add(nTestList); + } + SKList.FBIllNO = item["FBILLNO2"]?.ToString(); + SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER2"]?.ToString(); + SKList.FClient = Convert.ToInt32(item["FClient2_Id"]); + SKList.FDate = item["FDate2"]?.ToString(); + SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_lsn"]); + SKList.FRemark = item["FRemark"]?.ToString(); + SKList.FCreated = Convert.ToInt32(item["FCreated2_Id"]); + SKList.FSalesman = Convert.ToInt32(item["FSalesman2_Id"]); + fCombinaAddSK.Add(SKList); + } + } + + //寰幆閿鍞鍗/搴旀敹鍗 + foreach (var item in FEntity) + { + //鍒涘缓瀵硅薄瀛樺偍 + var SKList = new CombinaAddClass1(); + + //杩囨护鏈尮瀵逛笂鐨勬暟鎹/杩囨护涓嶆槸鍞竴鐨勬暟鎹 + if (item["F_ISGX"]?.ToString() == "True" && !string.IsNullOrWhiteSpace(item["FISHX"]?.ToString()) && !string.IsNullOrWhiteSpace(item["FWeiYi"]?.ToString())) + { + //鑾峰彇绾歌川鍚堝悓鍙 + var stringSplit = (item["FSKBILLNO"])?.ToString()?.Split(','); + + //鎵惧埌瀵瑰簲閿鍞鍗 + foreach (var item2 in FEntity2.Where(a => stringSplit.Contains(a["FBILLNO2"]))) + { + var nTestList = new CombinaAddSK(); + nTestList.FBIllNO = item2["FBILLNO2"]?.ToString(); + nTestList.FCONTRACTNUMBER = item2["FCONTRACTNUMBER2"]?.ToString(); + nTestList.FClient = Convert.ToInt32(item2["FClient2_Id"]); + nTestList.FDate = item2["FDate2"]?.ToString(); + nTestList.FALLAMOUNT = Convert.ToDecimal(item2["F_MBBA_Decimal_lsn"]); + nTestList.FRemark = item2["FRemark"]?.ToString(); + nTestList.FSalesman = Convert.ToInt32(item2["FSalesman2_Id"]); + nTestList.FCreated = Convert.ToInt32(item2["FCreated2_Id"]); + SKList.SKList.Add(nTestList); + } + SKList.FBIllNO = item["FBILLNO"]?.ToString(); + SKList.FClient = Convert.ToInt32(item["FClient_Id"]); + SKList.FDate = item["FDate"]?.ToString(); + SKList.FALLAMOUNT = Convert.ToDecimal(item["F_MBBA_Decimal_emq"]); + SKList.FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(); + SKList.FType = item["FType"]?.ToString(); + SKList.FCreated = Convert.ToInt32(item["FCreated_Id"]); + SKList.FSalesman = Convert.ToInt32(item["FSalesman_Id"]); + fCombinaAddClass1.Add(SKList); + } + } + + #endregion + + if (fCombinaAddClass1.Count == 0 && fCombinaAddSK.Count == 0) + { + this.View.ShowWarnningMessage("鏈夋嫨鏍搁攢鏁版嵁锛"); + return; + } + + //鐢ㄤ簬瀛樺偍鐢熸垚鎴愬姛鐨勬敹娆惧崟 + List strings1 = new List(); + + //鐢ㄤ簬瀛樺偍鐢熸垚鎴愬姛鐨勯攢鍞鍗 + List strings2 = new List(); + + int ISXSNUM = 0; + + //寰幆鏀舵鍗/鏂板鏍搁攢璁板綍 + foreach (var item in fCombinaAddSK) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗 + var list = item.XSAPList; + + //姹囨婚噾棰 + var Amount = list.Sum(a => a.FALLAMOUNT); + + //搴旀敹鍗/閿鍞鍗曞垽鏂瓧娈 + int isTrue1 = list.GroupBy(t => t.FType).Count(); + + //鏀舵鍗/閿鍞鍗-搴旀敹鍗曞垽鏂鎴峰瓧娈 + int isTrue2 = list.GroupBy(t => t.FClient).Count(); + + //鍒ゆ柇鏄惁瀛樺湪搴旀敹鍗曡窡閿鍞鍗曟眹鎬绘牳閿 + if (isTrue1 > 1) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'瀛樺湪閿鍞鍗曚笌搴旀敹鍗曞悎骞舵牳閿鐨勮褰,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁鏄悓涓涓鎴 + else if (isTrue2 > 1 || item.FClient != list[0].FClient) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'閰嶅鐨(閿鍞鍗/搴旀敹鍗)鐨勫鎴蜂笉涓鑷,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁瀛樺湪涓や釜閿鍞鍗/搴旀敹鍗曟眹鎬绘牳閿锛堜笉鑳藉皬浜庢眹鎬绘暟锛 + else if (list.Count > 1 && item.FALLAMOUNT < Amount) + { + ErrMessage = true; + Message = Message + string.Format("鏀舵鍗曞彿:'{0}'鐨勬牳閿閲戦灏忎簬澶氫釜锛堥攢鍞鍗/搴旀敹鍗曪級鐨勬牳閿閲戦,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + else + { + //鍒涘缓鏍搁攢璁板綍鍗 + string FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item); + Message = Message + string.Format("鐢熸垚鏍搁攢璁板綍鍗曟垚鍔,鍗曞彿涓:'{0}'\r\n", FBILLNO); + strings1.Add(item.FCONTRACTNUMBER); + ISXSNUM++; + } + } + + //寰幆锛堥攢鍞鍗/搴旀敹鍗曪級/鏂板鏍搁攢璁板綍 + foreach (var item in fCombinaAddClass1) + { + //鑾峰彇鏀舵鍗 + var list = item.SKList; + + //姹囨婚噾棰 + var Amount = list.Sum(a => a.FALLAMOUNT); + + //鏀舵鍗/閿鍞鍗-搴旀敹鍗曞垽鏂鎴峰瓧娈 + int isTrue2 = list.GroupBy(t => t.FClient).Count(); + + //鍒ゆ柇鏄惁鏄悓涓涓鎴 + if (isTrue2 > 1 || item.FClient != list[0].FClient) + { + ErrMessage = true; + Message = Message + string.Format("(閿鍞鍗/搴旀敹鍗)鍙:'{0}'閰嶅鐨勬敹娆炬墦閭g殑瀹㈡埛涓嶄竴鑷,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + //鍒ゆ柇鏄惁瀛樺湪涓や釜閿鍞鍗/搴旀敹鍗曟眹鎬绘牳閿锛堜笉鑳藉皬浜庢眹鎬绘暟锛 + else if (list.Count > 1 && item.FALLAMOUNT < Amount) + { + ErrMessage = true; + Message = Message + string.Format("锛堥攢鍞鍗/搴旀敹鍗曪級鍙:'{0}'鐨勬牳閿閲戦灏忎簬澶氫釜鏀舵鍗曠殑鏍搁攢閲戦,涓嶅厑璁告牳閿\r\n", item.FBIllNO); + continue; + } + else + { + //鍒涘缓鏍搁攢璁板綍鍗 + strings2.Add(item.FBIllNO); + strings1.Add(item.FCONTRACTNUMBER); + //鍒涘缓鏍搁攢璁板綍鍗 + string FBILLNO = CommonHelper.CreateAutoWrireRecord3(this.Context, Convert.ToString(FOrgId), item, item.SKList); + Message = Message + string.Format("鐢熸垚鏍搁攢璁板綍鍗曟垚鍔,鍗曞彿涓:'{0}'\r\n", FBILLNO); + ISXSNUM++; + } + } + + if (!ErrMessage) + { + this.View.ShowMessage(Message); + } + else + { + this.View.ShowErrMessage(Message); + } + //濡傛灉瀛樺湪鐢熸垚鎴愬姛鐨勩佷篃鏈夌敓鎴愬け璐ョ殑涓嶈蛋鍒锋柊鍔熻兘鐩存帴灏嗘垚鍔熺殑鍗曟嵁浣撴暟鎹垹闄わ紒 + List SaleBILLLIStext = new List(); + foreach (var item in SaleBILLLIS) + { + if (strings2.Contains(item?.FBIllNO) || strings1.Contains(item?.FCONTRACTNUMBER)) + { + SaleBILLLIStext.Add(item); + } + } + + foreach (var item in SaleBILLLIStext) + { + SaleBILLLIS.Remove(item); + } + + if (ISXSNUM == 1) + { + //鍒犻櫎鍙湁涓鏉℃暟鎹殑鏀舵鍗 + foreach (var item in strings1) + { + for (int i = 0; i < ReceiveBILLLIST.Count; i++) + { + if (ReceiveBILLLIST[i]?.FCONTRACTNUMBER == item?.ToString()) + { + this.Model.DeleteEntryRow("FEntity2", ReceiveBILLLIST[i].FRow); + } + } + } + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); + } + this.View.UpdateView("FEntity"); + } + else + { + this.Model.SetValue("FShuaXin", "闇瑕佹洿鏂"); + } + } + else + { + return; + } + }); + } + } + + /// + /// 鍗曟嵁浣撳兼洿鏂颁簨浠 + /// + /// + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + if (e.Field.Key.Equals("FShuaXin")) + { + //鏂囨湰瀛楁瑙﹀彂鍊兼洿鏂版椂锛屾ā鎷熺敤鎴风偣鍑昏彍鍗曪紝姝ゅ妯℃嫙鐐瑰嚮鈥滈夐」鈥濊彍鍗曪細 + ((IDynamicFormViewService)this.View).MainBarItemClick("MBBA_tbButton_1"); + } + if (e.Field.Key.Equals("FCONTRACTNUMBER2")) + { + if (INDEXNumber == 0) + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + + SaleBILLLIS = new List(); + + foreach (var item in FEntity) + { + SaleBILLLIS.Add(new CombinaClass() + { + FBIllNO = item["FBILLNO"]?.ToString(), + FCONTRACTNUMBER = item["FCONTRACTNUMBER"]?.ToString(), + FClient = Convert.ToInt32(item["FClient_Id"]), + FDate = item["FDate"]?.ToString(), + FALLAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_c1c"]), + FYAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_vb1"]), + FDAMOUNT = Convert.ToDouble(item["F_MBBA_Decimal_emq"]), + FSKBIllNO = item["FSKBILLNO"]?.ToString(), + FCreated = Convert.ToInt32(item["FCreated_Id"]), + FSalesman = Convert.ToInt32(item["FSalesman_Id"]), + FType = item["FType"]?.ToString(), + FISHX = item["FISHX"]?.ToString(), + FWeiYi = item["FWeiYi"]?.ToString(), + }); + } + + var fBILLNO = this.Model.GetValue("FBILLNO2", e.Row); + var fCONTRACTNUMBER = this.Model.GetValue("FCONTRACTNUMBER2", e.Row); + + //鍒ゆ柇鏄惁涓虹┖ + if (string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + { + this.Model.SetValue("FISHX2", "", e.Row); + + this.Model.SetValue("F_MBBA_Decimal_qtr", 0, e.Row); + + //鑾峰彇褰撳墠鐨勭埗id + var fPARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString(); + + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + + //鑾峰彇琛屾暟 + List ints = new List(); + + foreach (var fEntity in FEntity2) + { + if (fEntity["PARENTROWID"]?.ToString() == fPARENTROWID && fEntity["F_RowNew"]?.ToString() == "0") + { + ints.Add(Convert.ToInt32(fEntity["seq"]) - 1); + } + } + + //寰幆鍒犻櫎瀛愰」 + for (int i = 0; i < ints.Count; i++) + { + this.View.Model.DeleteEntryRow("FEntity2", ints[0]); + } + + foreach (var item in SaleBILLLIS) + { + if (!string.IsNullOrEmpty(item.FSKBIllNO)) + { + string[] strings = item.FSKBIllNO?.ToString()?.Split(','); + //鍒ゆ柇鍋囧鏄竴涓敹娆惧崟瀵瑰簲澶氫釜閿鍞鍗 + if (strings.Contains(fBILLNO?.ToString()) && strings.Count() == 1) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + //鍒ゆ柇澶氫釜鏀舵鍗曞搴斾竴涓攢鍞鍗 + else if (strings.Contains(fBILLNO?.ToString()) && strings.Count() > 1) + { + List strings1 = new List(strings); + strings1.Remove(fBILLNO?.ToString()); + string strings2 = string.Join(",", strings1); + item.FSKBIllNO = strings2; + } + } + } + } + int n = 1; + //鍒ゆ柇澶氫釜閿鍞鍗曞搴1涓敹娆惧崟锛堝彧鍒犻櫎涓涓垨澶氫釜浣嗕笉鏄┖鐨勬儏鍐碉級 + if (!string.IsNullOrWhiteSpace(fCONTRACTNUMBER?.ToString())) + { + double sumAmount = 0; + string[] strings = fCONTRACTNUMBER?.ToString()?.Split(','); + var FROWID = Convert.ToString(this.View.Model.GetValue("FROWID", e.Row)); + var Rowindex = this.View.Model.GetEntryRowCount("FEntity2"); + foreach (var item in SaleBILLLIS) + { + if (!string.IsNullOrEmpty(item.FSKBIllNO) && item.FSKBIllNO == fBILLNO?.ToString()) + { + if (!strings.Contains(item.FCONTRACTNUMBER)) + { + item.FSKBIllNO = ""; + item.FISHX = ""; + item.FWeiYi = ""; + } + } + if (strings.Contains(item.FCONTRACTNUMBER)) + { + item.FSKBIllNO = fBILLNO?.ToString(); + item.FISHX = "宸叉牳閿閰嶅"; + this.Model.SetValue("FISHX2", "宸叉牳閿閰嶅", e.Row); + + //this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow); + //this.View.Model.CreateNewEntryRow("FEntity2"); + //this.View.Model.SetValue("FROWID", SequentialGuid.NewGuid().ToString(), Rowindex); + //this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex); + //this.View.Model.SetValue("FBILLNO2", item.FBIllNO, Rowindex); + //if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate)) + //{ + // this.View.Model.SetValue("FDate2", item?.FDate, Rowindex); + //} + //else + //{ + // this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex); + //} + //this.View.Model.SetValue("F_MBBA_Decimal_imu", item.FALLAMOUNT, Rowindex); + //this.View.Model.SetValue("FClient2", item.FClient, Rowindex); + //this.View.Model.SetValue("FCreated2", item.FCreated, Rowindex); + //this.View.Model.SetValue("FCONTRACTNUMBER2", item.FCONTRACTNUMBER, Rowindex); + //this.View.Model.SetValue("FSalesman2", item.FSalesman, Rowindex); + //this.View.UpdateView("FEntity2"); + + sumAmount += item.FALLAMOUNT; + } + } + this.Model.SetValue("F_MBBA_Decimal_qtr", sumAmount, e.Row); + n = SaleBILLLIS.Count(a => strings.Contains(a.FCONTRACTNUMBER)); + } + + if (n == 0) + { + this.Model.SetValue("FISHX2", "", e.Row); + } + //鍒犻櫎鏁版嵁 + this.View.Model.DeleteEntryData("FEntity"); + //缁戝畾閿鍞鍗曟暟鎹 + for (int i = 0; i < SaleBILLLIS.Count; i++) + { + int rowindex = this.View.Model.GetEntryRowCount("FEntity"); + this.View.Model.CreateNewEntryRow("FEntity"); + //鍗曟嵁缂栧彿 + this.View.Model.SetValue("FBILLNO", SaleBILLLIS[i].FBIllNO, i); + //鏃ユ湡 + this.View.Model.SetValue("FDate", SaleBILLLIS[i].FDate, i); + //閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_c1c", SaleBILLLIS[i].FALLAMOUNT, i); + //绫诲瀷 + this.View.Model.SetValue("FType", SaleBILLLIS[i].FType, i); + //绾歌川鍚堝悓鍙 + this.View.Model.SetValue("FCONTRACTNUMBER", SaleBILLLIS[i].FCONTRACTNUMBER, i); + //瀹㈡埛鍚嶇О + this.View.Model.SetValue("FClient", SaleBILLLIS[i].FClient, i); + //宸叉牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_vb1", SaleBILLLIS[i].FYAMOUNT, i); + //寰呮牳閿閲戦 + this.View.Model.SetValue("F_MBBA_Decimal_emq", SaleBILLLIS[i].FDAMOUNT, i); + //鍗曟嵁缂栧彿(鏀舵鍗) + this.View.Model.SetValue("FSKBILLNO", SaleBILLLIS[i].FSKBIllNO, i); + //鏄惁鏍搁攢鍖瑰 + this.View.Model.SetValue("FISHX", SaleBILLLIS[i].FISHX, i); + //鏄惁鍞竴 + this.View.Model.SetValue("FWeiYi", SaleBILLLIS[i]?.FWeiYi, i); + //鍟嗗姟浜哄憳 + this.View.Model.SetValue("FCreated", SaleBILLLIS[i]?.FCreated, i); + //閿鍞憳 + this.View.Model.SetValue("FSalesman", SaleBILLLIS[i]?.FSalesman, i); + } + this.View.UpdateView("FEntity"); + } + } + if (e.Field.Key.Equals("F_ISHX")) + { + //鑾峰彇褰撳墠澶嶉夋鐨勫 + var IsHX = this.Model.GetValue("F_ISHX", e.Row)?.ToString(); + var ISWeiYi = this.Model.GetValue("FWeiYi2", e.Row)?.ToString(); + //鏌ヨ瀵瑰簲鐨勯攢鍞鍗/搴旀敹鍗-銆嬪嬀閫夊閫夋 + var fc = this.Model.GetValue("FCONTRACTNUMBER2", e.Row)?.ToString(); + if (IsHX == "True") + { + //鏌ョ湅鏄惁涓哄敮涓 + if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "鍚") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + for (int i = 0; i < FEntity.Count; i++) + { + if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + { + this.Model.SetValue("F_ISGX", "True", i); + } + } + } + } + if (IsHX == "False") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity2 = this.View.Model.DataObject["FEntity2"] as DynamicObjectCollection; + int n = 0; + //鍒ゆ柇鍏朵粬鏀舵鍗曟槸鍚﹀嬀閫 + foreach (var item in FEntity2) + { + if (item["F_ISHX"]?.ToString() == "True" && item["FCONTRACTNUMBER2"]?.ToString() == fc) + { + n++; + } + } + + if (n == 0) + { + //鏌ョ湅鏄惁涓哄敮涓 + if (!string.IsNullOrEmpty(ISWeiYi) && ISWeiYi == "鍚") + { + //鑾峰彇閿鍞鍗/搴旀敹鍗曞崟鎹綋鏁版嵁 + DynamicObjectCollection FEntity = this.View.Model.DataObject["FEntity"] as DynamicObjectCollection; + for (int i = 0; i < FEntity.Count; i++) + { + if (FEntity[i]["FCONTRACTNUMBER"]?.ToString() == fc) + { + this.Model.SetValue("F_ISGX", "False", i); + } + } + } + } + } + } + } + + public enum ENUM_ROWTYPE : int + { + Default = 0, + Header = 1,///聽0000聽0000聽0001锛岃〃澶寸被鍨嬫暟鎹聽 + Normal = 16,///0000聽0001聽0000锛屾櫘閫氭暟鎹 + Expand = 32,///0000聽0010聽0000锛屽寘鍚睍寮鎺т欢鏁版嵁琛 + ExpandWaiting = 64,///0000聽0100聽0000锛屽寘鍚睍寮绛夊緟鏁版嵁璇锋眰琛 + Summary = 128///0001聽0000聽000锛屾眹鎬荤被鍨嬫暟鎹聽 + } + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/SearchWriteRecord.cs b/Pilot_KD_Parino/QPHY_AutoWrire/SearchWriteRecord.cs new file mode 100644 index 0000000..c42a7b0 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrire/SearchWriteRecord.cs @@ -0,0 +1,47 @@ +锘縰sing Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.Bill; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.Metadata; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.QPHY_AutoWrire +{ + [HotUpdate] + [Description("鏌ョ湅鏀舵鏍搁攢璁板綍")] + public class SearchWriteRecord : AbstractBillPlugIn + { + public override void AfterDoOperation(AfterDoOperationEventArgs e) + { + base.AfterDoOperation(e); + //鏂板鍖归厤 + if (e.Operation.Id.ToString().ToUpper().Equals("SEARCHWRITERECORD")) + //if (e.Operation.Id.ToString().ToUpper().Equals("SAVE")) + { + //鑾峰彇鍗曟嵁缂栧彿 + string FBILLNO = Convert.ToString(this.View.Model.GetValue("FBILLNO", 0)); + + var RESULT = SQL.SqlManage.GetAutoWrireRecordId(this.Context, FBILLNO); + if (RESULT.Count > 0) + { + //澹版槑鍗曟嵁鐣岄潰鍔ㄦ佽〃鍗 + BillShowParameter showParam = new BillShowParameter(); + //澹版槑鏄摢涓姩鎬佽〃鍗 + showParam.FormId = "QPHY_AutoWrireRecord"; + showParam.PageId = Guid.NewGuid().ToString(); + showParam.PKey = Convert.ToString(RESULT[0]["FID"]); + showParam.Status = OperationStatus.VIEW; + showParam.OpenStyle.ShowType = ShowType.Modal; + //鎵撳紑鍗曟嵁 + this.View.ShowForm(showParam); + } + } + } + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs b/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs new file mode 100644 index 0000000..2827f42 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrireRecord/FUpdateAmount.cs @@ -0,0 +1,28 @@ +锘縰sing Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Util; +using Pilot_KD_Parino.SQL; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.QPHY_AutoWrireRecord +{ + /// + /// 鏍搁攢璁板綍鍗--鍙嶅鏍告洿鏂伴攢鍞鍗/搴旀敹鍗/鏀舵鍗->鏍搁攢閲戦 + /// + [Description("鏍搁攢璁板綍鍗--鍙嶅鏍告洿鏂伴攢鍞鍗/搴旀敹鍗/鏀舵鍗->鏍搁攢閲戦"),HotUpdate] + public class FUpdateAmount: AbstractOperationServicePlugIn + { + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + var fId = e.DataEntitys[0][0]?.ToString(); + //鑾峰彇閿鍞鍗曟牳閿閲戦鏁版嵁 + SqlManage.FUpdateSalOrderAmount(this.Context, fId); + } + } +} diff --git a/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs b/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs new file mode 100644 index 0000000..196eb76 --- /dev/null +++ b/Pilot_KD_Parino/QPHY_AutoWrireRecord/UpdateAmount.cs @@ -0,0 +1,87 @@ +锘縰sing Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Util; +using Pilot_KD_Parino.SQL; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Kingdee.BOS.App.Data; + +namespace Pilot_KD_Parino.QPHY_AutoWrireRecord +{ + [HotUpdate] + [Description("鏍搁攢璁板綍鍗--鏇存柊閿鍞鍗曢噾棰")] + public class UpdateAmount : AbstractOperationServicePlugIn + { + public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) + { + base.AfterExecuteOperationTransaction(e); + foreach (var rows in e.SelectedRows) + { + var Billobj = rows.DataEntity; + //鑾峰彇閿鍞鍗曟牳閿閲戦鏁版嵁 + SqlManage.UpdateSalOrderAmount(this.Context, Convert.ToString(Billobj["Id"])); + + string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2 From T_AutoWrireRecord A + JOIN T_AutoWrireRecordEntry B + on A.FID = B.FID Where A.FID = '{0}'", Billobj["Id"]); + + var sql1List = DBUtils.ExecuteDynamicObject(Context, sql1); + + foreach (var item in sql1List.ToList()) + { + decimal FALLAMOUNT = 0; + + FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]); + + string sql2 = string.Format(@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From + T_SAL_ORDER A + JOIN + T_SAL_ORDERPLAN B + on A.FID = B.FID + Where A.FBILLNO = '{0}' + Order by F_ORDER", item["FBILLNO2"]); + + var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2); + //濡傛灉鍙湁涓涓洿鎺ヨ祴鍊 + if (sql2List.Count == 1) + { + string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", FALLAMOUNT, sql2List[0]["FENTRYID"]); + DBUtils.ExecuteDynamicObject(Context, sql3); + } + if (sql2List.Count > 1) + { + for (int i = 0; i < sql2List.Count; i++) + { + //鍒ゆ柇鏍搁攢椤哄簭鏄惁涓虹┖ + if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString())) + { + //鍒ゆ柇鏍搁攢閲戦鏄惁澶т簬鎸夌収鎺掑簭瀵瑰啿閲戦 + decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]); + if (FALLAMOUNT > 0) + { + decimal fAmount = 0; + //鍒ゆ柇鏄惁鏁存潯瀵瑰啿 + if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0) + { + fAmount = FRECADVANCEAMOUNT; + } + else + { + fAmount = FALLAMOUNT; + } + string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]); + DBUtils.ExecuteDynamicObject(Context, sql3); + } + FALLAMOUNT -= FRECADVANCEAMOUNT; + } + } + } + } + } + } + } +} diff --git a/Pilot_KD_Parino/ReceivablesDetails/ReceivablesPlugIn.cs b/Pilot_KD_Parino/ReceivablesDetails/ReceivablesPlugIn.cs new file mode 100644 index 0000000..ada549f --- /dev/null +++ b/Pilot_KD_Parino/ReceivablesDetails/ReceivablesPlugIn.cs @@ -0,0 +1,251 @@ +锘縰sing Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using Kingdee.K3.SCM.Business; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.ReceivablesDetails +{ + /// + /// 搴旀敹娆炬槑缁嗕繚瀛樹簨浠 + /// + [Description("搴旀敹娆炬槑缁嗕繚瀛樹簨浠"), HotUpdate] + public class ReceivablesPlugIn : AbstractDynamicFormPlugIn + { + //BarItemClick + public override void BarItemClick(BarItemClickEventArgs e) + { + base.BarItemClick(e); + if (e.BarItemKey == "MBBA_tbButton_2") + { + var sql_1 = string.Format(@"/*dialect*/Select top 1 FId From ReceivablesDetailsTable"); + var sql_List1 = DBUtils.ExecuteDynamicObject(Context, sql_1); + + //鍒ゆ柇鏄惁瀛樺湪琛 + if (sql_List1.Count() > 0) + { + DynamicObjectCollection entries = this.View.Model.DataObject[6] as DynamicObjectCollection; + List strings = new List(); + foreach (var item in entries) + { + if (item["F_666"]?.ToString() == "True") + { + strings.Add(Convert.ToInt32(item["F_FID"])); + } + } + string fids = string.Join(",", strings.ToArray()); + string sql_2 = string.Format(@"DELETE FROM ReceivablesDetailsTable Where Fid in ({0})", fids); + DBUtils.ExecuteDynamicObject(Context, sql_2); + for (int i = 0; i < entries.Count; i++) + { + var f = this.View.Model.GetValue("F_000", i)?.ToString(); + if (f != "0" && entries[i]["F_666"]?.ToString() == "True") + { + #region 闅愯棌鍗曟嵁浣撹祴鍊 + + var f0 = this.View.Model.GetValue("F_000", i); + var f1 = this.View.Model.GetValue("F_001", i); + var f2 = this.View.Model.GetValue("F_002", i); + var f3 = this.View.Model.GetValue("F_003", i); + var f4 = this.View.Model.GetValue("F_004", i); + var f5 = this.View.Model.GetValue("F_005", i); + var f6 = this.View.Model.GetValue("F_006", i); + var f7 = this.View.Model.GetValue("F_007", i); + var f8 = this.View.Model.GetValue("F_008", i); + var f9 = this.View.Model.GetValue("F_009", i); + var f10 = this.View.Model.GetValue("F_010", i); + var f11 = this.View.Model.GetValue("F_011", i); + var f12 = this.View.Model.GetValue("F_012", i); + var f13 = this.View.Model.GetValue("F_013", i); + var f14 = this.View.Model.GetValue("F_014", i); + var f15 = this.View.Model.GetValue("F_015", i); + var f16 = this.View.Model.GetValue("F_016", i); + var f17 = this.View.Model.GetValue("F_017", i); + var f18 = this.View.Model.GetValue("F_018", i); + var f19 = this.View.Model.GetValue("F_019", i); + var f20 = this.View.Model.GetValue("F_020", i); + var f21 = this.View.Model.GetValue("F_021", i); + var f22 = this.View.Model.GetValue("F_022", i); + var f23 = this.View.Model.GetValue("F_023", i); + var f24 = this.View.Model.GetValue("F_024", i); + var f25 = this.View.Model.GetValue("F_025", i); + var f26 = this.View.Model.GetValue("F_026", i); + var f27 = this.View.Model.GetValue("F_027", i); + var f28 = this.View.Model.GetValue("F_028", i); + var f29 = this.View.Model.GetValue("F_029", i); + var f30 = this.View.Model.GetValue("F_030", i); + var f31 = this.View.Model.GetValue("F_031", i); + var f32 = this.View.Model.GetValue("F_032", i); + var f33 = this.View.Model.GetValue("F_033", i); + var f34 = this.View.Model.GetValue("F_034", i); + var f35 = this.View.Model.GetValue("F_035", i); + var f36 = this.View.Model.GetValue("F_036", i); + var f37 = this.View.Model.GetValue("F_037", i); + var f38 = this.View.Model.GetValue("F_038", i); + var f39 = this.View.Model.GetValue("F_039", i); + var f40 = this.View.Model.GetValue("F_040", i); + var f41 = this.View.Model.GetValue("F_041", i); + var f42 = this.View.Model.GetValue("F_042", i); + var f43 = this.View.Model.GetValue("F_043", i); + var f44 = this.View.Model.GetValue("F_044", i); + var f45 = this.View.Model.GetValue("F_045", i); + var f46 = this.View.Model.GetValue("F_046", i); + var f47 = this.View.Model.GetValue("F_047", i); + var f48 = this.View.Model.GetValue("F_048", i); + var f49 = this.View.Model.GetValue("F_049", i); + var f50 = this.View.Model.GetValue("F_050", i); + var f51 = this.View.Model.GetValue("F_051", i); + var f52 = this.View.Model.GetValue("F_052", i); + var f53 = this.View.Model.GetValue("F_053", i); + var f54 = this.View.Model.GetValue("F_054", i); + var f55 = this.View.Model.GetValue("F_055", i); + var f56 = this.View.Model.GetValue("F_056", i); + var f57 = this.View.Model.GetValue("F_057", i); + var f58 = this.View.Model.GetValue("F_058", i); + var f59 = this.View.Model.GetValue("F_059", i); + var f60 = this.View.Model.GetValue("F_060", i); + var f61 = this.View.Model.GetValue("F_061", i); + var f62 = this.View.Model.GetValue("F_062", i); + var f63 = this.View.Model.GetValue("F_063", i); + + #endregion + + string sql_3 = string.Format(@"Insert Into ReceivablesDetailsTable Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}', + '{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','{23}','{24}','{25}','{26}','{27}','{28}','{29}', + '{30}','{31}','{32}','{33}','{34}','{35}','{36}','{37}','{38}','{39}','{40}','{41}','{42}','{43}','{44}','{45}','{46}','{47}','{48}','{49}', + '{50}','{51}','{52}','{53}','{54}','{55}','{56}','{57}','{58}','{59}','{60}','{61}','{62}','{63}' + )", f1, f2, f3, f4, f5, f6, f7, f8, f9, + f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, + f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, + f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f0, f60, f61, f62, f63); + + DBUtils.ExecuteDynamicObject(Context, sql_3); + } + } + } + #region 闅愯棌浠g爜 + //else + //{ + // DynamicObjectCollection entries = this.View.Model.DataObject[6] as DynamicObjectCollection; + // string sql_2 = string.Format(@"DELETE FROM ReceivablesDetailsTable"); + // DBUtils.ExecuteDynamicObject(Context, sql_2); + + // for (int i = 0; i < entries.Count; i++) + // { + // var f = this.View.Model.GetValue("F_000", i)?.ToString(); + // if (f != "0") + // { + // #region 闅愯棌鍗曟嵁浣撹祴鍊 + + // var f0 = this.View.Model.GetValue("F_000", i); + // var f1 = this.View.Model.GetValue("F_001", i); + // var f2 = this.View.Model.GetValue("F_002", i); + // var f3 = this.View.Model.GetValue("F_003", i); + // var f4 = this.View.Model.GetValue("F_004", i); + // var f5 = this.View.Model.GetValue("F_005", i); + // var f6 = this.View.Model.GetValue("F_006", i); + // var f7 = this.View.Model.GetValue("F_007", i); + // var f8 = this.View.Model.GetValue("F_008", i); + // var f9 = this.View.Model.GetValue("F_009", i); + // var f10 = this.View.Model.GetValue("F_010", i); + // var f11 = this.View.Model.GetValue("F_011", i); + // var f12 = this.View.Model.GetValue("F_012", i); + // var f13 = this.View.Model.GetValue("F_013", i); + // var f14 = this.View.Model.GetValue("F_014", i); + // var f15 = this.View.Model.GetValue("F_015", i); + // var f16 = this.View.Model.GetValue("F_016", i); + // var f17 = this.View.Model.GetValue("F_017", i); + // var f18 = this.View.Model.GetValue("F_018", i); + // var f19 = this.View.Model.GetValue("F_019", i); + // var f20 = this.View.Model.GetValue("F_020", i); + // var f21 = this.View.Model.GetValue("F_021", i); + // var f22 = this.View.Model.GetValue("F_022", i); + // var f23 = this.View.Model.GetValue("F_023", i); + // var f24 = this.View.Model.GetValue("F_024", i); + // var f25 = this.View.Model.GetValue("F_025", i); + // var f26 = this.View.Model.GetValue("F_026", i); + // var f27 = this.View.Model.GetValue("F_027", i); + // var f28 = this.View.Model.GetValue("F_028", i); + // var f29 = this.View.Model.GetValue("F_029", i); + // var f30 = this.View.Model.GetValue("F_030", i); + // var f31 = this.View.Model.GetValue("F_031", i); + // var f32 = this.View.Model.GetValue("F_032", i); + // var f33 = this.View.Model.GetValue("F_033", i); + // var f34 = this.View.Model.GetValue("F_034", i); + // var f35 = this.View.Model.GetValue("F_035", i); + // var f36 = this.View.Model.GetValue("F_036", i); + // var f37 = this.View.Model.GetValue("F_037", i); + // var f38 = this.View.Model.GetValue("F_038", i); + // var f39 = this.View.Model.GetValue("F_039", i); + // var f40 = this.View.Model.GetValue("F_040", i); + // var f41 = this.View.Model.GetValue("F_041", i); + // var f42 = this.View.Model.GetValue("F_042", i); + // var f43 = this.View.Model.GetValue("F_043", i); + // var f44 = this.View.Model.GetValue("F_044", i); + // var f45 = this.View.Model.GetValue("F_045", i); + // var f46 = this.View.Model.GetValue("F_046", i); + // var f47 = this.View.Model.GetValue("F_047", i); + // var f48 = this.View.Model.GetValue("F_048", i); + // var f49 = this.View.Model.GetValue("F_049", i); + // var f50 = this.View.Model.GetValue("F_050", i); + // var f51 = this.View.Model.GetValue("F_051", i); + // var f52 = this.View.Model.GetValue("F_052", i); + // var f53 = this.View.Model.GetValue("F_053", i); + // var f54 = this.View.Model.GetValue("F_054", i); + // var f55 = this.View.Model.GetValue("F_055", i); + // var f56 = this.View.Model.GetValue("F_056", i); + // var f57 = this.View.Model.GetValue("F_057", i); + // var f58 = this.View.Model.GetValue("F_058", i); + // var f59 = this.View.Model.GetValue("F_059", i); + + // #endregion + + // string sql_3 = string.Format(@"Insert Into ReceivablesDetailsTable Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}', + // '{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','{23}','{24}','{25}','{26}','{27}','{28}','{29}', + // '{30}','{31}','{32}','{33}','{34}','{35}','{36}','{37}','{38}','{39}','{40}','{41}','{42}','{43}','{44}','{45}','{46}','{47}','{48}','{49}', + // '{50}','{51}','{52}','{53}','{54}','{55}','{56}','{57}','{58}','{59}' + // )", f1, f2, f3, f4, f5, f6, f7, f8, f9, + // f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, + // f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, + // f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f0); + + // DBUtils.ExecuteDynamicObject(Context, sql_3); + // } + // } + //} + //this.View.Model.SetValue("F_ISSX", "闇瑕佸埛鏂"); + #endregion + } + + if (e.BarItemKey == "MBBA_tbButton_3") + { + string sql = string.Format("Delete From ReceivablesDetailsTable"); + DBUtils.ExecuteDynamicObject(Context, sql); + this.View.Model.SetValue("F_ISSX", "闇瑕佸埛鏂"); + } + } + + public override void DataChanged(DataChangedEventArgs e) + { + base.DataChanged(e); + if (e.Field.Key.Equals("F_ISSX")) + { + //鏂囨湰瀛楁瑙﹀彂鍊兼洿鏂版椂锛屾ā鎷熺敤鎴风偣鍑昏彍鍗曪紝姝ゅ妯℃嫙鐐瑰嚮鈥滈夐」鈥濊彍鍗曪細 + ((IDynamicFormViewService)this.View).MainBarItemClick("MBBA_tbButton"); + } + if (e.Field.Key.Equals("F_061") || e.Field.Key.Equals("F_054") || e.Field.Key.Equals("F_055") || e.Field.Key.Equals("F_056") + || e.Field.Key.Equals("F_060") || e.Field.Key.Equals("F_057") || e.Field.Key.Equals("F_058")) + { + this.Model.SetValue("F_666", "True", e.Row); + } + } + } +} diff --git a/Pilot_KD_Parino/SQL/SqlManage.cs b/Pilot_KD_Parino/SQL/SqlManage.cs new file mode 100644 index 0000000..95f7f13 --- /dev/null +++ b/Pilot_KD_Parino/SQL/SqlManage.cs @@ -0,0 +1,577 @@ +锘縰sing Kingdee.BOS; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.SQL +{ + public class SqlManage + { + /// + /// 鏇存柊閿鍞鍗曟牳閿閲戦 + /// + /// + public static void UpdateSalOrderAmount(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC UpdateSalOrderAmount {0} ", FID); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鍙嶅鏍革紝鏇存柊閿鍞鍗曟牳閿閲戦 + /// + /// + public static void FUpdateSalOrderAmount(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC FUpdateSalOrderAmount {0} ", FID); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓 otherItem 瀵硅薄) + /// + /// + public static DynamicObjectCollection GetSaleOrderData4(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData4 {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetAutoWrireRecordId(Context ctx, string FBILLNO) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT FID FROM T_AutoWrireRecordEntry WHERE FBILLNO2 = '{0}' + UNION ALL + SELECT FID FROM T_AutoWrireRecordEntry2 WHERE FBILLNO3 = '{0}' + ", FBILLNO); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteReceiveDate(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetWriteReceiveDate '{0}','{1}' ", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteReceiveDate2(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT + A.FCONTACTUNIT, + A.FREMARK, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + A.FRECAMOUNT AS 'FALLAMOUNT', + A.FRECAMOUNTFOR as 'FALLAMOUNTY', + A.FCURRENCYID as 'FCurr' + FROM T_AR_RECEIVEBILL A + LEFT JOIN T_AutoWrireRecordEntry2 B ON B.FBILLNO3 = A.FBILLNO + WHERE B.FBILLNO3 IS NULL + AND A.FCONTACTUNIT in ({1}) + AND A.FDOCUMENTSTATUS = 'C' + AND A.FSALEORGID = {0}", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteReceiveDate3(Context ctx, string FORGID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT + A.FSALEERID, + A.FCONTACTUNIT, + A.FREMARK, + A.F_AMOUNT as 'FYAMOUNT', + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + A.FRECAMOUNT AS 'FALLAMOUNT', + A.FRECAMOUNTFOR as 'FALLAMOUNTY', + A.FRECAMOUNT-A.F_AMOUNT as 'FDAMOUNT', + A.FCURRENCYID as 'FCurr', + A.FCREATORID as 'FCREATORID' + FROM T_AR_RECEIVEBILL A + WHERE A.FDOCUMENTSTATUS = 'C' + AND A.FISINIT != '1' + AND A.FSALEORGID = {0} + AND A.FRECAMOUNT != A.F_AMOUNT + AND A.FRECAMOUNT >= A.F_AMOUNT", FORGID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢閿鍞鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteOrderDate(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetWriteOrderDate '{0}','{1}' ", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢閿鍞鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteOrderDate2(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT * FROM + ( + SELECT + A.F_CONTRACTNUMBER, + A.FCUSTID, + A.F_PROJECTNAME, + A.FCREATORID, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' , + C.FBILLALLAMOUNT as 'FALLAMOUNTY', + C.FSETTLECURRID as 'FCurr', + case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , + '閿鍞鍗' as 'FTYPE' + FROM T_SAL_ORDER A + INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID + LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO + LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = A.F_Ordercategory + WHERE B.FBILLNO2 IS NULL + AND C.FBILLALLAMOUNT_LC <>0 + AND A.FCUSTID in ({1}) + AND A.FSALEORGID = {0} + --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 + AND A.FDOCUMENTSTATUS = 'C' + AND d.FNUMBER = 'P' + UNION ALL + SELECT + A.F_PAPERCONTRACT, + A.FCUSTOMERID, + A.F_PROJECTNAME, + A.FCREATORID, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + F.FALLAMOUNT AS 'FALLAMOUNT' , + A.FALLAMOUNTFOR AS 'FALLAMOUNTY' , + A.FCURRENCYID AS 'FCurr' , + case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , + '搴旀敹鍗' as 'FTYPE' + FROM t_AR_receivable A + INNER JOIN T_AR_RECEIVABLEENTRY C ON C.FID =A.FID + INNER JOIN T_AR_RECEIVABLEFIN F ON F.FID = A.FID + INNER JOIN T_SAL_ORDER E ON E.FBILLNO = C.FORDERNUMBER + LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO + LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = e.F_Ordercategory + WHERE B.FBILLNO2 IS NULL + AND F.FALLAMOUNT <>0 + AND A.FCUSTOMERID in ({1}) + AND A.FSALEORGID = {0} + --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 + AND A.FDOCUMENTSTATUS = 'C' + AND d.FNUMBER <> 'P' + ) A ORDER BY A.FTYPE,a.FDATE ", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢閿鍞鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteOrderDate3(Context ctx, string FORGID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT * FROM + ( + SELECT + A.FSALERID, + A.F_CONTRACTNUMBER, + A.FCUSTID, + A.F_PROJECTNAME, + A.FCREATORID, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' , + C.FBILLALLAMOUNT as 'FALLAMOUNTY', + A.F_AMOUNT as 'FYAMOUNT', + C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT', + C.FSETTLECURRID as 'FCurr', + case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , + '閿鍞鍗' as 'FTYPE' + FROM T_SAL_ORDER A + INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID + --LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO + LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = A.F_Ordercategory + WHERE --B.FBILLNO2 IS NULL AND + C.FBILLALLAMOUNT_LC <>0 + AND A.FSALEORGID = {0} + --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 + AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!='' + AND d.FNUMBER = 'P' AND A.F_AMOUNT < C.FBILLALLAMOUNT_LC + AND A.F_AMOUNT != C.FBILLALLAMOUNT_LC + UNION ALL + SELECT + A.FSALEERID, + A.F_PAPERCONTRACT, + A.FCUSTOMERID, + A.F_PROJECTNAME, + A.FCREATORID, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + F.FALLAMOUNT AS 'FALLAMOUNT' , + A.FALLAMOUNTFOR AS 'FALLAMOUNTY' , + A.F_AMOUNT as 'FYAMOUNT', + F.FALLAMOUNT-A.F_AMOUNT as 'FDAMOUNT', + A.FCURRENCYID AS 'FCurr' , + case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , + '搴旀敹鍗' as 'FTYPE' + FROM t_AR_receivable A + INNER JOIN T_AR_RECEIVABLEENTRY C ON C.FID =A.FID + INNER JOIN T_AR_RECEIVABLEFIN F ON F.FID = A.FID + INNER JOIN T_SAL_ORDER E ON E.FBILLNO = C.FORDERNUMBER + --LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO + LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = e.F_Ordercategory + WHERE --B.FBILLNO2 IS NULL AND + F.FALLAMOUNT <>0 + AND A.FSALEORGID = {0} + --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 + AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(F_PAPERCONTRACT,'')!='' + AND d.FNUMBER <> 'P' AND A.F_AMOUNT < F.FALLAMOUNT + AND A.F_AMOUNT != F.FALLAMOUNT + ) A ORDER BY A.FTYPE,a.FDATE ", FORGID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇BMP娴佺▼淇℃伅 + /// + /// + public static void UpdateData(Context ctx, string FID, String sfsj) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + UPDATE T_SAL_ORDER SET FNOTE = FNOTE + '{0}' WHERE FID = '{1}' ", sfsj, FID); + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇BMP娴佺▼淇℃伅 + /// + /// + public static DynamicObjectCollection GetBmpData(Context ctx, string F_contractnumber) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + select * from erptobpm.pilotdb.dbo.v_erp_CustMadeAgain where ContactNo = '{0}' ", F_contractnumber); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + /// + /// 鏇存柊鐗逛环 + /// + /// + public static DynamicObjectCollection UPDATESpecialContracts(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + exec UPDATESpecialContracts '{0}' ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + /// + /// 鏇存柊閿鍞鍗昐N淇℃伅 + /// + /// + public static void UpdateBMPSN(Context ctx, string FID, string SN) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + Update T_SAL_ORDER SET F_FailorBPM = '{1}' WHERE FID ={0} ", FID, SN); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓BPM娴佺▼鍙戣捣) + /// + /// + public static DynamicObjectCollection GetSaleOrderData3(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData3 {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓BPM娴佺▼鍙戣捣) + /// + /// + public static DynamicObjectCollection GetSaleOrderData2(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData2 {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓BPM娴佺▼鍙戣捣) + /// + /// + public static DynamicObjectCollection GetSaleOrderData(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + + } + + + /// + /// 鍒ゆ柇璇ョ粍缁囨槸鍚﹀瓨鍦ㄥ伐绋嬮」鐩 + /// + /// + public static void UpdateItemData(Context ctx, string FID, string FlexNumber) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC UpdateItemData {0},{1}", FlexNumber, FID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + + } + + + + + /// + /// 鍒ゆ柇璇ョ粍缁囨槸鍚﹀瓨鍦ㄥ伐绋嬮」鐩 + /// + /// + public static DynamicObjectCollection CheckItem(Context ctx, string FlexNumber, string FORGID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC CheckItem '{0}','{1}'", FlexNumber, FORGID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + return result; + } + + + + /// + /// 鑾峰彇绾歌川鍚堝悓鍙 + /// + /// + public static string GetFlexNumber(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetFlexNumber {0}", FID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + if (result.Count > 0) + { + return Convert.ToString(result[0]["F_contractnumber"]); + } + else + { + return ""; + } + } + + + + + + + + + + + + /// + /// 鑾峰彇鏂囦欢鍚 + /// + /// + public static string GetFolderName(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetFolderName {0}", FID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + if (result.Count > 0) + { + return Convert.ToString(result[0]["FolderName"]); + } + else + { + return ""; + } + } + + /// + /// 鏇存柊閿鍞鍗曞垱寤烘枃浠跺す鐘舵 + /// + /// + public static void UpdateSaleOrderisdoccreate(Context ctx, string FID, string Path) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + Update T_SAL_ORDER SET Fisdoccreate = 1,Fdocpath = '{1}' WHERE FID ={0} ", FID, Path); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇鍐呭 + /// + /// + public static DataSet GetTempModelData(Context ctx, string FID, string FType) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + exec GetTempModelData '{0}','{1}' ", FID, FType); + //鎵цSQL + return DBServiceHelper.ExecuteDataSet(ctx, sql); + } + + + /// + /// 鑾峰彇妯℃澘鍦板潃 + /// + /// + public static DynamicObjectCollection GetTempModelPath(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT FTempPath FROM T_TempModelPath WHERE FKeyId = '{0}' ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + + /// + /// 鏇存柊閿鍞鍗曠殑鏄惁鍒嗘憡 + /// + /// + public static DynamicObjectCollection UpdateFlexNumber(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + exec UpdateFlexNumber '{0}' ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + + + + + /// + /// 鏇存柊閿鍞鍗曠殑鏄惁鍒嗘憡 + /// + /// + public static DynamicObjectCollection UpdateSaleOrderFisShared(Context ctx) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + UPDATE A SET FIsShare = case when b.FID is null then '鍚' else '鏄' end FROM T_SAL_ORDER A + LEFT JOIN T_PerformanceSharing B ON A.FBILLNO = B.FSOURCEBILLNO"); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + /// + /// 鏇存柊閿鍞鍗曠殑鐗╂祦鍗曞彿 + /// + /// + public static DynamicObjectCollection UpdateSaleOrderLogisticsNumber(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(" EXEC UpdateSaleOrderLogisticsNumber {0}", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + /// + /// 鑾峰彇閲囪喘璁㈠崟鏈澶х殑鍏ュ簱鏃ユ湡 + /// + /// + public static DynamicObjectCollection GetInStockDate(Context ctx) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ select CONCAT( FPOORDERENTRYID,'-', A.FMATERIALID) as 'FKey',MAX(CONVERT(NVARCHAR(10), B.FDATE,23)) AS 'FDate' + from T_STK_INSTOCKENTRY A + INNER JOIN T_STK_INSTOCK B ON A.FID = B.FID + WHERE FPOORDERENTRYID <> 0 + GROUP BY CONCAT(FPOORDERENTRYID, '-', A.FMATERIALID)"); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + } +} diff --git a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs new file mode 100644 index 0000000..162c630 --- /dev/null +++ b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs @@ -0,0 +1,545 @@ +锘縰sing Kingdee.BOS; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.ServiceHelper; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.SQL +{ + public class SqlManage_yuyubo + { + /// + /// 鏇存柊閿鍞鍗曟牳閿閲戦 + /// + /// + public static void UpdateSalOrderAmount(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC UpdateSalOrderAmount {0} ", FID); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鍙嶅鏍革紝鏇存柊閿鍞鍗曟牳閿閲戦 + /// + /// + public static void FUpdateSalOrderAmount(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC FUpdateSalOrderAmount {0} ", FID); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓 otherItem 瀵硅薄) + /// + /// + public static DynamicObjectCollection GetSaleOrderData4(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData4 {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetAutoWrireRecordId(Context ctx, string FBILLNO) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT FID FROM T_AutoWrireRecordEntry WHERE FBILLNO2 = '{0}' + UNION ALL + SELECT FID FROM T_AutoWrireRecordEntry2 WHERE FBILLNO3 = '{0}' + ", FBILLNO); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteReceiveDate(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetWriteReceiveDate '{0}','{1}' ", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteReceiveDate2(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT + A.FCONTACTUNIT, + A.FREMARK, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + A.FRECAMOUNT AS 'FALLAMOUNT', + A.FRECAMOUNTFOR as 'FALLAMOUNTY', + A.FCURRENCYID as 'FCurr' + FROM T_AR_RECEIVEBILL A + LEFT JOIN T_AutoWrireRecordEntry2 B ON B.FBILLNO3 = A.FBILLNO + WHERE B.FBILLNO3 IS NULL + AND A.FCONTACTUNIT in ({1}) + AND A.FDOCUMENTSTATUS = 'C' + AND A.FSALEORGID = {0}", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢鏀舵鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteReceiveDate3(Context ctx, string FORGID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT + A.FSALEERID, + A.FCONTACTUNIT, + A.FREMARK, + A.F_AMOUNT as 'FYAMOUNT', + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + A.FRECAMOUNT AS 'FALLAMOUNT', + A.FRECAMOUNTFOR as 'FALLAMOUNTY', + A.FRECAMOUNT-A.F_AMOUNT as 'FDAMOUNT', + A.FCURRENCYID as 'FCurr', + A.FCREATORID as 'FCREATORID' + FROM T_AR_RECEIVEBILL A + WHERE A.FDOCUMENTSTATUS = 'C' + AND A.FISINIT != '1' + AND A.FSALEORGID = {0} + AND A.FRECAMOUNT != A.F_AMOUNT + AND A.FRECAMOUNT >= A.F_AMOUNT", FORGID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢閿鍞鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteOrderDate(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetWriteOrderDate '{0}','{1}' ", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢閿鍞鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteOrderDate2(Context ctx, string FORGID, string FCUSTID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT * FROM + ( + SELECT + A.F_CONTRACTNUMBER, + A.FCUSTID, + A.F_PROJECTNAME, + A.FCREATORID, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' , + C.FBILLALLAMOUNT as 'FALLAMOUNTY', + C.FSETTLECURRID as 'FCurr', + case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , + '閿鍞鍗' as 'FTYPE' + FROM T_SAL_ORDER A + INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID + LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO + LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = A.F_Ordercategory + WHERE B.FBILLNO2 IS NULL + AND C.FBILLALLAMOUNT_LC <>0 + AND A.FCUSTID in ({1}) + AND A.FSALEORGID = {0} + --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 + AND A.FDOCUMENTSTATUS = 'C' + AND d.FNUMBER = 'P' + UNION ALL + SELECT + A.F_PAPERCONTRACT, + A.FCUSTOMERID, + A.F_PROJECTNAME, + A.FCREATORID, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + F.FALLAMOUNT AS 'FALLAMOUNT' , + A.FALLAMOUNTFOR AS 'FALLAMOUNTY' , + A.FCURRENCYID AS 'FCurr' , + case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , + '搴旀敹鍗' as 'FTYPE' + FROM t_AR_receivable A + INNER JOIN T_AR_RECEIVABLEENTRY C ON C.FID =A.FID + INNER JOIN T_AR_RECEIVABLEFIN F ON F.FID = A.FID + INNER JOIN T_SAL_ORDER E ON E.FBILLNO = C.FORDERNUMBER + LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO + LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = e.F_Ordercategory + WHERE B.FBILLNO2 IS NULL + AND F.FALLAMOUNT <>0 + AND A.FCUSTOMERID in ({1}) + AND A.FSALEORGID = {0} + --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 + AND A.FDOCUMENTSTATUS = 'C' + AND d.FNUMBER <> 'P' + ) A ORDER BY A.FTYPE,a.FDATE ", FORGID, FCUSTID); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + /// + /// 鑾峰彇鏍搁攢閿鍞鍗曚俊鎭 + /// + /// + public static DynamicObjectCollection GetWriteOrderDate3(Context ctx, string FORGID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format($@"/*dialect*/ + SELECT * FROM + ( + SELECT A.FID, + A.FSALERID, + A.F_CONTRACTNUMBER, + A.FCUSTID, + A.F_PROJECTNAME, + A.FCREATORID, + A.FBILLNO AS 'FBILLNO', + DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', + C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' , + C.FBILLALLAMOUNT as 'FALLAMOUNTY', + ISNULL(A.F_AMOUNT,0) as 'FYAMOUNT', + C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT', + C.FSETTLECURRID as 'FCurr', + case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , + '閿鍞鍗' as 'FTYPE' + FROM T_SAL_ORDER A + INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID + WHERE + C.FBILLALLAMOUNT_LC <>0 + AND A.FSALEORGID = {FORGID} + AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!='' + AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC + or A.F_AMOUNT IS NULL) AND A.FBusinessType='NORMAL' + ) A ORDER BY A.FCUSTID,a.FDATE "); + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇BMP娴佺▼淇℃伅 + /// + /// + public static void UpdateData(Context ctx, string FID, String sfsj) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + UPDATE T_SAL_ORDER SET FNOTE = FNOTE + '{0}' WHERE FID = '{1}' ", sfsj, FID); + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇BMP娴佺▼淇℃伅 + /// + /// + public static DynamicObjectCollection GetBmpData(Context ctx, string F_contractnumber) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + select * from erptobpm.pilotdb.dbo.v_erp_CustMadeAgain where ContactNo = '{0}' ", F_contractnumber); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + /// + /// 鏇存柊鐗逛环 + /// + /// + public static DynamicObjectCollection UPDATESpecialContracts(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + exec UPDATESpecialContracts '{0}' ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + /// + /// 鏇存柊閿鍞鍗昐N淇℃伅 + /// + /// + public static void UpdateBMPSN(Context ctx, string FID, string SN) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + Update T_SAL_ORDER SET F_FailorBPM = '{1}' WHERE FID ={0} ", FID, SN); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓BPM娴佺▼鍙戣捣) + /// + /// + public static DynamicObjectCollection GetSaleOrderData3(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData3 {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓BPM娴佺▼鍙戣捣) + /// + /// + public static DynamicObjectCollection GetSaleOrderData2(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData2 {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇閿鍞鍗曟暟鎹(鍒涘缓BPM娴佺▼鍙戣捣) + /// + /// + public static DynamicObjectCollection GetSaleOrderData(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetSaleOrderData {0} ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + + } + + + /// + /// 鍒ゆ柇璇ョ粍缁囨槸鍚﹀瓨鍦ㄥ伐绋嬮」鐩 + /// + /// + public static void UpdateItemData(Context ctx, string FID, string FlexNumber) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC UpdateItemData {0},{1}", FlexNumber, FID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + + } + + + + + /// + /// 鍒ゆ柇璇ョ粍缁囨槸鍚﹀瓨鍦ㄥ伐绋嬮」鐩 + /// + /// + public static DynamicObjectCollection CheckItem(Context ctx, string FlexNumber, string FORGID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC CheckItem '{0}','{1}'", FlexNumber, FORGID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + return result; + } + + + + /// + /// 鑾峰彇绾歌川鍚堝悓鍙 + /// + /// + public static string GetFlexNumber(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetFlexNumber {0}", FID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + if (result.Count > 0) + { + return Convert.ToString(result[0]["F_contractnumber"]); + } + else + { + return ""; + } + } + + + + + + + + + + + + /// + /// 鑾峰彇鏂囦欢鍚 + /// + /// + public static string GetFolderName(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + EXEC GetFolderName {0}", FID); + //鎵цSQL + var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + if (result.Count > 0) + { + return Convert.ToString(result[0]["FolderName"]); + } + else + { + return ""; + } + } + + /// + /// 鏇存柊閿鍞鍗曞垱寤烘枃浠跺す鐘舵 + /// + /// + public static void UpdateSaleOrderisdoccreate(Context ctx, string FID, string Path) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + Update T_SAL_ORDER SET Fisdoccreate = 1,Fdocpath = '{1}' WHERE FID ={0} ", FID, Path); + //鎵цSQL + DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); + } + + + /// + /// 鑾峰彇鍐呭 + /// + /// + public static DataSet GetTempModelData(Context ctx, string FID, string FType) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + exec GetTempModelData '{0}','{1}' ", FID, FType); + //鎵цSQL + return DBServiceHelper.ExecuteDataSet(ctx, sql); + } + + + /// + /// 鑾峰彇妯℃澘鍦板潃 + /// + /// + public static DynamicObjectCollection GetTempModelPath(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + SELECT FTempPath FROM T_TempModelPath WHERE FKeyId = '{0}' ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + + /// + /// 鏇存柊閿鍞鍗曠殑鏄惁鍒嗘憡 + /// + /// + public static DynamicObjectCollection UpdateFlexNumber(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + exec UpdateFlexNumber '{0}' ", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + + + + + /// + /// 鏇存柊閿鍞鍗曠殑鏄惁鍒嗘憡 + /// + /// + public static DynamicObjectCollection UpdateSaleOrderFisShared(Context ctx) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ + UPDATE A SET FIsShare = case when b.FID is null then '鍚' else '鏄' end FROM T_SAL_ORDER A + LEFT JOIN T_PerformanceSharing B ON A.FBILLNO = B.FSOURCEBILLNO"); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + /// + /// 鏇存柊閿鍞鍗曠殑鐗╂祦鍗曞彿 + /// + /// + public static DynamicObjectCollection UpdateSaleOrderLogisticsNumber(Context ctx, string FID) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(" EXEC UpdateSaleOrderLogisticsNumber {0}", FID); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + + + /// + /// 鑾峰彇閲囪喘璁㈠崟鏈澶х殑鍏ュ簱鏃ユ湡 + /// + /// + public static DynamicObjectCollection GetInStockDate(Context ctx) + { + //瀹氫箟SQL,璋冪敤鐗╂枡瑙嗗浘 + string sql = string.Format(@"/*dialect*/ select CONCAT( FPOORDERENTRYID,'-', A.FMATERIALID) as 'FKey',MAX(CONVERT(NVARCHAR(10), B.FDATE,23)) AS 'FDate' + from T_STK_INSTOCKENTRY A + INNER JOIN T_STK_INSTOCK B ON A.FID = B.FID + WHERE FPOORDERENTRYID <> 0 + GROUP BY CONCAT(FPOORDERENTRYID, '-', A.FMATERIALID)"); + //鎵цSQL + return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; + } + } +} diff --git a/Pilot_KD_Parino/SQL/word瀛樺偍杩囩▼.sql b/Pilot_KD_Parino/SQL/word瀛樺偍杩囩▼.sql new file mode 100644 index 0000000..434153b --- /dev/null +++ b/Pilot_KD_Parino/SQL/word瀛樺偍杩囩▼.sql @@ -0,0 +1,348 @@ +alter PROC GetTempModelData +( + @FID NVARCHAR(100), + @FType NVARCHAR(100) +) +AS +DECLARE @FitemName NVARCHAR(1000) --纸质合同号 +DECLARE @YFitemName NVARCHAR(1000) --原纸质合同号 +DECLARE @YFDate NVARCHAR(1000) --原日期 +DECLARE @YFDateYear NVARCHAR(1000) -- 原日期 年 +DECLARE @YFDateMonth NVARCHAR(1000) -- 原日期 月 +DECLARE @YFDateDay NVARCHAR(1000) -- 原日期 日 +DECLARE @FContractFPhone NVARCHAR(1000) --纸质合同号 +DECLARE @FContract NVARCHAR(1000) --纸质合同号 +DECLARE @FCustAddress NVARCHAR(1000) --纸质合同号 +DECLARE @FPaymentMethod NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle2 NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle NVARCHAR(1000) --纸质合同号 +DECLARE @FContractNo NVARCHAR(1000) --纸质合同号 +DECLARE @FCustName NVARCHAR(1000) --甲方名称 +DECLARE @FDate NVARCHAR(1000) -- 日期 +DECLARE @FDateYear NVARCHAR(1000) -- 日期 年 +DECLARE @FDateMonth NVARCHAR(1000) -- 日期 月 +DECLARE @FDateDay NVARCHAR(1000) -- 日期 日 +DECLARE @CreatedName NVARCHAR(1000) -- 创建人 +DECLARE @FTaxAmountText NVARCHAR(1000) +DECLARE @FTaxAmount NVARCHAR(1000) +DECLARE @FItem NVARCHAR(1000) +DECLARE @FAddressAndPhone NVARCHAR(1000) +DECLARE @FDeliveryDate NVARCHAR(1000) +DECLARE @FlegalRepresentative NVARCHAR(1000) +DECLARE @FBank NVARCHAR(1000) +DECLARE @FBankAccount NVARCHAR(1000) +DECLARE @FFax NVARCHAR(1000) +DECLARE @FPhone NVARCHAR(1000) +DECLARE @FEMAIL NVARCHAR(1000) +DECLARE @FTax NVARCHAR(1000) +DECLARE @FItemData NVARCHAR(1000) +DECLARE @FJHAddressFContractPhone NVARCHAR(1000) +DECLARE @FAProjectManager NVARCHAR(1000) +DECLARE @FAProjectPhone NVARCHAR(1000) +DECLARE @FBProjectManager NVARCHAR(1000) +DECLARE @FBProjectPhone NVARCHAR(1000) +DECLARE @FDeliveryTime NVARCHAR(1000) +DECLARE @FSHADDRESS NVARCHAR(1000) +DECLARE @FProjectDeadline NVARCHAR(1000) +DECLARE @FSettleMethod NVARCHAR(1000) +DECLARE @FProductionAddress NVARCHAR(1000) +DECLARE @FPeriod NVARCHAR(1000) +DECLARE @FJHAddress NVARCHAR(1000) +DECLARE @FWarrantyPeriod NVARCHAR(1000) +DECLARE @FAddress NVARCHAR(1000) +DECLARE @FINFORMATION NVARCHAR(1000) +DECLARE @FStartDate NVARCHAR(1000) +DECLARE @FEndDate NVARCHAR(1000) +DECLARE @FSaleId NVARCHAR(1000) +DECLARE @FMONTH NVARCHAR(1000) --质保月份 +DECLARE @FMONTHYear NVARCHAR(1000) --质保年份 +DECLARE @Projectarea NVARCHAR(1000) --项目所属领域 +DECLARE @Province NVARCHAR(1000) --项目所属省份 +DECLARE @VPAYMENTMETHOD NVARCHAR(1000)--结算方式 +DECLARE @CreatedPhone NVARCHAR(1000)--创建人电话 +DECLARE @FDELIVERYCONDITIONS NVARCHAR(1000)--发货条件 +DECLARE @HFPaymentMethod NVARCHAR(1000)--付款方式 F_PaymentMethod +DECLARE @FNOTE NVARCHAR(1000)--备注单据头 + +--- + +SELECT top 1 +@VPAYMENTMETHOD = A.F_VPAYMENTMETHOD, +@FDELIVERYCONDITIONS = (CASE WHEN A.F_DELIVERYCONDITIONS = '' THEN '' +ELSE SUBSTRING(A.F_DELIVERYCONDITIONS, CHARINDEX(',',A.F_DELIVERYCONDITIONS) + 1, LEN(A.F_DELIVERYCONDITIONS)) END), +@CreatedPhone = P.FPhone, +@HFPaymentMethod = A.F_PaymentMethod, +@FStartDate=F_TGKSRQ, +@FEndDate =F_TGJSRQ, +@FNOTE = A.FNOTE, +@FAddress=F_VRYF_Text_fg2, +@FJHAddress =F_Shippingaddress, +@FContractNo= F_contractnumber, +@FTaxAmount=FORMAT(b.FBillAllAmount, 'N2') , +@FDate=convert(nvarchar(10), A.FDATE ,23), +@FDateYear=Year(A.FDATE),--年 +@FDateMonth=Month(A.FDATE),--月 +@FDateDay=DAY(A.FDATE),--日 +@FCustName=isnull(C.FNAME,''), +@FItem=isnull(D.FNAME,''), +@FAddressAndPhone=CONCAT( e.FADDRESS,' ',FLinkMan,' ',FLinkPhone), +@FlegalRepresentative=isnull(e.FLegalPerson,''), +@FBank=isnull(L.FINVOICEBANKNAME,''), +@FBankAccount=isnull(L.FINVOICEBANKACCOUNT,''), +@FTax=isnull(e.FTAXREGISTERCODE,''), +@FFax=isnull(e.FFAX,''), +@FTaxAmountText=dbo.ConvertAmountToChineseWords(b.FBillAllAmount), +@FEMAIL=isnull(g.FEMAIL,''), +@FProductionCycle= F_SCZQ, +@FProductionCycle2 =F_Deliverymethod, +@FPaymentMethod =ISNULL(N.FNAME+',',''), +@FCustAddress=e.FADDRESS, +@FContract=H.FNAME, +@FitemName =H.FNAME, +@FContractFPhone = g.FTEL, +@FPhone = e.FTEL, +@FitemName= I.FNAME, +@FItemData = A.F_VRYF_Text_fg2, +@FJHAddressFContractPhone = F_Shippingaddress, +@FAProjectManager = a.F_ProjectManager , +@FAProjectPhone = a.F_Contactnumber , +@FBProjectManager = a.F_VRYF_TEXT_UKY , +@FBProjectPhone = a.F_VRYF__Contactnumber_dvn , +@FDeliveryTime=F_FHSJ, +@FProjectDeadline = F_ProjectDeadli , +@FPeriod = J.FDATAVALUE , +@FWarrantyPeriod = J.FDATAVALUE, +@FMONTH = FLOOR(A.F_MONTH), +@FMONTHYear = FLOOR(A.F_MONTH/12), +@FSaleId = K.FNAME, +@Projectarea = (CASE WHEN O.F_PROJECTFIELD = 1 THEN '建筑楼宇' +WHEN O.F_PROJECTFIELD = 2 THEN '医疗卫生' +WHEN O.F_PROJECTFIELD = 3 THEN '学校' +WHEN O.F_PROJECTFIELD = 4 THEN '文娱康乐' +WHEN O.F_PROJECTFIELD = 5 THEN '市政工程' +WHEN O.F_PROJECTFIELD = 6 THEN '能源' +WHEN O.F_PROJECTFIELD = 7 THEN '工业' +WHEN O.F_PROJECTFIELD = 8 THEN '交通运输' +END ), +@Province = O.F_Province, +@FINFORMATION = A.F_INFORMATION, +@CreatedName = P.FNAME + + +FROM T_SAL_ORDER A +INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID +--INNER JOIN T_SAL_ORDERENTRY BB ON A.FID = BB.FID +LEFT JOIN T_BD_CUSTOMER_L C ON C.FCUSTID =A.FCUSTID AND C.FLOCALEID =2052 +LEFT JOIN T_BD_CUSTOMER E ON E.FCUSTID =A.FCUSTID +LEFT JOIN T_BAS_PREBDONE_L D ON D.FID = A.F_projectname AND D.FLocaleID =2052 +LEFT JOIN T_BD_CUSTBANK F ON F.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_CUSTOMER_F L ON L.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_COMMONCONTACT g on g.FCOMPANY = e.FCUSTID and g.FISDEFAULTCONTACT =1 +LEFT JOIN T_BD_COMMONCONTACT_L H on H.FCONTACTID =G.FCONTACTID AND H.FLOCALEID =2052 +LEFT JOIN T_BAS_PREBDONE_L I ON I.FID = A.F_projectname +LEFT JOIN V_ASSISTANTDATA J ON J.FENTRYID=A.F_ZBQ +left join V_BD_SALESMAN_L K ON K.FID = A.FSALERID +LEFT JOIN T_SAL_ORDERPLAN M ON M.FID =A.FID AND M.FSEQ = 1 +LEFT JOIN T_BD_RecCondition_L N on N.FID = M.F_RecConditionId +LEFT JOIN T_BAS_PREBDTHREE O on O.FID = A.F_BON +LEFT JOIN T_SEC_USER P on A.FCreatorId = P.FUSERID +--LEFT JOIN (Select B.FDATE,A.FENTRYID From T_SAL_ORDERENTRY_LK A +--JOIN T_SAL_ORDER B on A.FSBILLID = B.FID) P on P.FENTRYID = BB.FENTRYID +WHERE A.FID =@FID; +--2025/01/09 改动 --↓ +SELECT top 1 +@YFitemName = F_CONTRACTNUMBER, +@YFDate = convert(nvarchar(10), FDATE ,23), +@YFDateYear=Year(FDATE),--年 +@YFDateMonth=Month(FDATE),--月 +@YFDateDay=DAY(FDATE)--日 +From T_SAL_ORDER Where FID = +(SELECT FSBILLID From +T_SAL_ORDERENTRY A +JOIN T_SAL_ORDERENTRY_LK B +on A.FENTRYID = B.FENTRYID +Where A.FID = @FID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY') +--2025/01/09 改动 --↑ +;with t as( +SELECT A.FID, +CONCAT(RANK()OVER(PARTITION BY A.FID ORDER BY A.FSEQ) ,'、',B.FDESCRIPTION,' ',CAST( a.F_day AS REAL),'天',' ', +CAST( A.FRECADVANCERATE AS REAL),'%') AS '付款条件' +FROM T_SAL_ORDERPLAN A +INNER JOIN T_SAL_ORDER C ON C.FID = A.FID +INNER JOIN T_BD_RecCondition_L b on a.F_RecConditionId = b.fid +WHERE a.fid =@fid +) +, +H AS( +SELECT FID, -- 分组的主键 +STUFF( +( +SELECT ','+ CONVERT(NVARCHAR(100), 付款条件,120) -- 要拼接的列 +FROM t a WHERE b.FID = a.FID FOR XML PATH('') +),1 ,1, '') 付款条件 +FROM t b +GROUP BY FID +) +SELECT @FSettleMethod =付款条件 FROM H + --@VPAYMENTMETHOD + +select 'FSaleId' as 'Key' ,isnull(@FSaleId,'') as 'VALUE' +union all +select 'FNOTE' as 'Key' ,@FNOTE as 'VALUE' +union all +select 'YFContractNo' as 'Key' ,@YFitemName as 'VALUE' +union all +select 'YFDate' as 'Key' ,isnull(@YFDate,'') as 'VALUE' +union all +select 'YFDateYear' as 'Key' ,isnull(@YFDateYear,'') as 'VALUE' +union all +select 'YFDateMonth' as 'Key' ,isnull(@YFDateMonth,'') as 'VALUE' +union all +select 'YFDateDay' as 'Key' ,isnull(@YFDateDay,'') as 'VALUE' +union all +select 'Province' as 'Key' ,Isnull(@Province,'') as 'VALUE' +union all +select 'VPAYMENTMETHOD' as 'Key' ,Isnull(@VPAYMENTMETHOD,'') as 'VALUE' +union all +select 'Projectarea' as 'Key' ,Isnull(@Projectarea,'') as 'VALUE' +union all +select 'FMONTH' as 'Key' ,@FMONTH as 'VALUE' +union all +select 'FStartDate' as 'Key' ,isnull(@FStartDate,'') as 'VALUE' +union all +select 'FEndDate' as 'Key' ,isnull(@FEndDate,'') as 'VALUE' +union all +select 'FAddress' as 'Key' ,isnull(@FAddress,'') as 'VALUE' +union all +select 'FWarrantyPeriod' as 'Key' ,isnull(@FWarrantyPeriod,'') as 'VALUE' +union all +select 'HFPaymentMethod' as 'Key' ,@HFPaymentMethod as 'VALUE' +union all +select 'FDELIVERYCONDITIONS' as 'Key' ,@FDELIVERYCONDITIONS as 'VALUE' +union all +select 'CreatedName' as 'Key' ,@CreatedName as 'VALUE' +union all +select 'CreatedPhone' as 'Key',@CreatedPhone as 'VALUE' +union all +select 'FINFORMATION' as 'Key' ,Isnull(@FINFORMATION,'') as 'VALUE' +union all +select 'FMONTHYear' as 'Key' ,Isnull(@FMONTHYear,'') as 'VALUE' +union all +select 'FJHAddress' as 'Key' ,isnull(@FJHAddress,'') as 'VALUE' +union all +select 'FPeriod' as 'Key' ,isnull(@FPeriod,'') as 'VALUE' +union all +select 'FItemName' as 'Key' ,isnull(@FitemName,'') as 'VALUE' +UNION ALL +select 'FSettleMethod' as 'Key' ,isnull(@FSettleMethod,'') as 'VALUE' +UNION ALL +select 'FProjectDeadline' as 'Key' ,@FProjectDeadline as 'VALUE' +UNION ALL +select 'FDeliveryTime' as 'Key' ,@FDeliveryTime as 'VALUE' +UNION ALL +select 'FAProjectManager' as 'Key' ,@FAProjectManager as 'VALUE' +UNION ALL +select 'FAProjectPhone' as 'Key' ,@FAProjectPhone as 'VALUE' +UNION ALL +select 'FBProjectManager' as 'Key' ,@FBProjectManager as 'VALUE' +UNION ALL +select 'FBProjectPhone' as 'Key' ,@FBProjectPhone as 'VALUE' +UNION ALL +select 'FJHAddressFContractPhone' as 'Key' ,@FJHAddressFContractPhone as 'VALUE' +UNION ALL +select 'FItemData' as 'Key' ,@FItemData as 'VALUE' +UNION ALL +select 'FitemName' as 'Key' ,@FitemName as 'VALUE' +UNION ALL +select 'FFax' as 'Key' ,@FFax as 'VALUE' +UNION ALL +select 'FContractPhone' as 'Key' ,@FContractFPhone as 'VALUE' +UNION ALL +select 'FContract' as 'Key' ,@FContract as 'VALUE' +UNION ALL +select 'FCustAddress' as 'Key' ,@FCustAddress as 'VALUE' +UNION ALL +select 'FPaymentMethod' as 'Key' ,@FPaymentMethod as 'VALUE' +UNION ALL +select 'FProductionCycle2' as 'Key' ,@FProductionCycle2 as 'VALUE' +UNION ALL +select 'FProductionCycle' as 'Key' ,@FProductionCycle as 'VALUE' +UNION ALL +select 'FContractNo' as 'Key' ,@FContractNo as 'VALUE' +UNION ALL +select 'FCustName' as 'Key' ,@FCustName as 'VALUE' +UNION ALL +select 'FDate' as 'Key' ,@FDate as 'VALUE' +UNION ALL +select 'FDateYear' as 'Key' ,@FDateYear as 'VALUE' +UNION ALL +select 'FDateMonth' as 'Key' ,@FDateMonth as 'VALUE' +UNION ALL +select 'FDateDay' as 'Key' ,@FDateDay as 'VALUE' +UNION ALL +select 'FTaxAmountText' as 'Key' ,@FTaxAmountText as 'VALUE' +UNION ALL +select 'FTaxAmount' as 'Key' ,@FTaxAmount as 'VALUE' +UNION ALL +select 'FItem' as 'Key' ,@FItem as 'VALUE' +UNION ALL +select 'FAddressAndPhone' as '@FAddressAndPhone' ,@FCustName as 'VALUE' +UNION ALL +select 'FDeliveryDate' as 'Key' ,@FDeliveryDate as 'VALUE' +UNION ALL +select 'FlegalRepresentative' as 'Key' ,@FlegalRepresentative as 'VALUE' +UNION ALL +select 'FBank' as 'Key' ,@FBank as 'VALUE' +UNION ALL +select 'FBankAccount' as 'Key' ,@FBankAccount as 'VALUE' +UNION ALL +select 'FTax' as 'Key' ,@FTax as 'VALUE' +UNION ALL +select 'FPhone' as 'Key' ,@FPhone as 'VALUE' +UNION ALL +select 'FEmial' as 'Key' ,@FEMAIL as 'VALUE' +UNION ALL +select 'FEMAIL' as 'Key' ,@FEMAIL as 'VALUE' + + +SELECT fseq,B.fname,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID + +SELECT rank()over(partition by a.fid ,a.F_Projecttype order by a.fseq desc) as 'fseq',B.fname,b.FSPECIFICATION,E.F_103,FLOOR(A.FQTY),C.FNAME, +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE,F_Projecttype as 'FType', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID ),2),'N2') AS 'FALLAMOUNT', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID,F_Projecttype) ,2), 'N2') AS 'FALLAMOUNT2' +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_MATERIAL E ON E.FMATERIALID = A.FMATERIALID +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID +ORDER BY a.F_Projecttype ,a.fseq + +Select ROW_NUMBER() OVER (ORDER BY B.FRETURNTYPE) AS ID,CASE WHEN B.FRETURNTYPE = 'SEND' THEN '补货' ELSE '退货' END as 'FRETURNTYPE' +,C.FSPECIFICATION,D.FNAME,FLOOR(B.FQTY),FORMAT(E.FTAXPRICE,'N2'),FORMAT(E.FALLAMOUNT_LC,'N2') From T_SAL_ORDER A JOIN T_SAL_ORDERENTRY B +on A.FID = B.FID INNER JOIN T_BD_MATERIAL_L C ON C.FMATERIALID = B.FMATERIALID AND C.FLOCALEID =2052 INNER JOIN T_BD_UNIT_L D ON D.FUNITID =B.FUNITID +AND D.FLOCALEID =2052 INNER JOIN T_SAL_ORDERENTRY_F E ON E.FENTRYID =B.FENTRYID Where A.FID = @FID + +SELECT fseq,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID + +--EXEC GetTempModelData @FID = 182422,@FType = 'TH' +--Select F_CONTRACTNUMBER,* From T_SAL_ORDER Where FBILLNO = 'PL-XSDD20250100263' +--Select * From T_TempModelPath +--Update T_TempModelPath set FTempPath = 'D:\模板\SX系统模板.docx' Where FKeyId = 'SX' + +--Update T_SAL_ORDER set FDocumentStatus = 'D' Where FBILLNO = 'PL-XSDD20250100011' \ No newline at end of file diff --git a/Pilot_KD_Parino/SQL/閿鍞嚭搴撳崟鑷姩鏇存柊閫氱煡鍒跺崟浜簊ql.sql b/Pilot_KD_Parino/SQL/閿鍞嚭搴撳崟鑷姩鏇存柊閫氱煡鍒跺崟浜簊ql.sql new file mode 100644 index 0000000..3382f3d --- /dev/null +++ b/Pilot_KD_Parino/SQL/閿鍞嚭搴撳崟鑷姩鏇存柊閫氱煡鍒跺崟浜簊ql.sql @@ -0,0 +1,39 @@ +Select q1.FID,q3.FSBILLID From T_SAL_OUTSTOCK q1 JOIN T_SAL_OUTSTOCKENTRY q2 on q1.FID = q2.FID JOIN T_SAL_OUTSTOCKENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID +Where q1.F_VRYF_TEXT_CA9 = '' AND q3.FSTABLENAME = 'T_SAL_DELIVERYNOTICEENTRY' GROUP BY q1.FID,q3.FSBILLID --获取所有没有通知制单人的销售出库单 + +Select a2.FNAME,a1.FID From T_SAL_DELIVERYNOTICE a1 JOIN T_SEC_USER a2 on a1.FCreatorId = a2.FUSERID --获取发货通知单制单人 +go + +Select A.FID,B.FNAME From (Select q1.FID,q3.FSBILLID From T_SAL_OUTSTOCK q1 JOIN T_SAL_OUTSTOCKENTRY q2 on q1.FID = q2.FID JOIN T_SAL_OUTSTOCKENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID +Where q1.F_VRYF_TEXT_CA9 = '' AND q3.FSTABLENAME = 'T_SAL_DELIVERYNOTICEENTRY' GROUP BY q1.FID,q3.FSBILLID) A JOIN (Select a2.FNAME,a1.FID From T_SAL_DELIVERYNOTICE a1 JOIN +T_SEC_USER a2 on a1.FCreatorId = a2.FUSERID) B on A.FSBILLID = B.FID + +Update T_SAL_OUTSTOCK Set F_VRYF_TEXT_CA9 = (Select top 1 B.FNAME From (Select q1.FID,q3.FSBILLID From T_SAL_OUTSTOCK q1 JOIN T_SAL_OUTSTOCKENTRY q2 on q1.FID = q2.FID JOIN T_SAL_OUTSTOCKENTRY_LK q3 on q2.FENTRYID = q3.FENTRYID +Where q1.F_VRYF_TEXT_CA9 = '' AND q3.FSTABLENAME = 'T_SAL_DELIVERYNOTICEENTRY' GROUP BY q1.FID,q3.FSBILLID) A JOIN (Select a2.FNAME,a1.FID From T_SAL_DELIVERYNOTICE a1 JOIN +T_SEC_USER a2 on a1.FCreatorId = a2.FUSERID) B on A.FSBILLID = B.FID Where A.FID = T_SAL_OUTSTOCK.FID)--where判断 +Where FID in (100189,100190,100191,100192,100193,100194,100195,100196,100197,100198,100199,100200,100201,100202,100203,100204,100205,100206,100207,100208, +100209,100210,100211,100212,100213,100214,100215,100216,100217,100218,100219,100220,100221,100222,100223,100224,100225,100226,100227,100228,100229,100230,100231,100232,100233,100234,100235,100236,100237,100240,100241,100242,100243,100244,100245,100246,100247,100248,100249,100250, +100251,100252,100253,100254,100255,100256,100257,100258,100259,100260,100261,100262,100263,100264,100267,100268,100269,100270,100271,100272,100273,100274,100275,100276, +100277,100278,100279,100280,100281,100282,100283,100284,100285,100286,100287,100288,100289,100290,100291,100292,100293,100294,100295,100296,100297,100298,100299,100300, +100301,100302,100303,100304,100305,100306,100307,100308,100309,100310,100311,100312,100313,100314,100315,100316,100319,100320,100321,100322,100323,100324,100325,100326, +100327,100328,100329,100330,100331,100332,100333,100334,100335,100336,100337,100338,100339,100340,100341,100342,100343,100344,100345,100346,100347,100348,100349,100350, +100351,100352,100353,100354,100355,100356,100357,100358,100359,100360,100361,100362,100363,100364,100365,100366,100367,100368,100369,100370,100371,100372,100373,100374, +100375,100376,100377,100378,100379,100380,100381,100382,100383,100384,100385,100386,100387,100388,100389,100390,100391,100392,100393,100394,100395,100396,100397,100398,100399, +100400,100401,100402,100403,100404,100405,100406,100407,100408,100409,100410,100411,100412,100413,100414,100415,100416,100417,100418,100419,100420,100421,100422,100423, +100424,100425,100426,100427,100428,100429,100430,100431,100432,100433,100434,100435,100436,100437,100438,100439,100440,100441,100443,100444,100445,100446,100449,100450,100451,100452,100453,100454,100455,100456, +100457,100458,100459,100460,100461,100462,100463,100464,100465,100466,100467,100468,100469,100470,100471,100472,100473,100474,100475,100476,100477,100478,100479,100480,100481) + +--Select * From T_SAL_OUTSTOCK Where F_VRYF_TEXT_CA9 = '' + +Select F_VRYF_TEXT_CA9,* From T_SAL_OUTSTOCK Where FID in (100189,100190,100191,100192,100193,100194,100195,100196,100197,100198,100199,100200,100201,100202,100203,100204,100205,100206,100207,100208, +100209,100210,100211,100212,100213,100214,100215,100216,100217,100218,100219,100220,100221,100222,100223,100224,100225,100226,100227,100228,100229,100230,100231,100232,100233,100234,100235,100236,100237,100240,100241,100242,100243,100244,100245,100246,100247,100248,100249,100250, +100251,100252,100253,100254,100255,100256,100257,100258,100259,100260,100261,100262,100263,100264,100267,100268,100269,100270,100271,100272,100273,100274,100275,100276, +100277,100278,100279,100280,100281,100282,100283,100284,100285,100286,100287,100288,100289,100290,100291,100292,100293,100294,100295,100296,100297,100298,100299,100300, +100301,100302,100303,100304,100305,100306,100307,100308,100309,100310,100311,100312,100313,100314,100315,100316,100319,100320,100321,100322,100323,100324,100325,100326, +100327,100328,100329,100330,100331,100332,100333,100334,100335,100336,100337,100338,100339,100340,100341,100342,100343,100344,100345,100346,100347,100348,100349,100350, +100351,100352,100353,100354,100355,100356,100357,100358,100359,100360,100361,100362,100363,100364,100365,100366,100367,100368,100369,100370,100371,100372,100373,100374, +100375,100376,100377,100378,100379,100380,100381,100382,100383,100384,100385,100386,100387,100388,100389,100390,100391,100392,100393,100394,100395,100396,100397,100398,100399, +100400,100401,100402,100403,100404,100405,100406,100407,100408,100409,100410,100411,100412,100413,100414,100415,100416,100417,100418,100419,100420,100421,100422,100423, +100424,100425,100426,100427,100428,100429,100430,100431,100432,100433,100434,100435,100436,100437,100438,100439,100440,100441,100443,100444,100445,100446,100449,100450,100451,100452,100453,100454,100455,100456, +100457,100458,100459,100460,100461,100462,100463,100464,100465,100466,100467,100468,100469,100470,100471,100472,100473,100474,100475,100476,100477,100478,100479,100480,100481) + diff --git a/Pilot_KD_Parino/Sal_Order/Bill.cs b/Pilot_KD_Parino/Sal_Order/Bill.cs new file mode 100644 index 0000000..fa611b1 --- /dev/null +++ b/Pilot_KD_Parino/Sal_Order/Bill.cs @@ -0,0 +1,219 @@ +锘縰sing Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; +using Kingdee.BOS.Core.DynamicForm; +using Kingdee.BOS.Core; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Kingdee.BOS.Core.List; +using Kingdee.BOS.Orm.DataEntity; +using System.Web; +using Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.Deploy; + +namespace Pilot_KD_Parino.Sal_Order +{ + [HotUpdate] + [Description("閿鍞鍗--鏌ョ湅涓氱哗鍒嗘憡鍗")] + public class Bill : AbstractBillPlugIn + { + string currentRecId; + public override void OnInitialize(InitializeEventArgs e) + { + base.OnInitialize(e); + TabControl ctl = (TabControl)this.View.GetControl("FTab"); + ctl.SetFireSelChanged(true); + } + public override void TabItemSelectedChange(TabItemSelectedChangeEventArgs e) + { + base.TabItemSelectedChange(e); + //if (e.TabKey.Equals("FTab_VRYF_P_qtr")) + if (e.TabKey.Equals("FTAB_VRYF_P_QTR")) + { + var Bilno = Convert.ToString(this.View.Model.GetValue("FBILLNO")); + //鑾峰彇宸叉墦寮鐨剉iew + IDynamicFormView view = this.View.GetView(currentRecId); + if (view != null) + { + //鍏抽棴宸叉墦寮view + view.Close(); + this.View.SendDynamicFormAction(view); + } + ListShowParameter ListShowParameter = new ListShowParameter(); + //鏄剧ず涓氱哗鍒嗘憡鍗 + //澹版槑鍒楄〃鏄剧ず鍙傛暟 + var listShowParameter = new ListShowParameter(); + //澹版槑鏄鎯╄褰曞崟鍒楄〃 + listShowParameter.FormId = "QPHY_PerformanceSharing"; + listShowParameter.PageId = Guid.NewGuid().ToString(); + //璁剧疆杩囨护鏉′欢,鍙渶瑕佸綋鍓嶈韩浠借瘉鍙峰氨琛屼簡 + listShowParameter.ListFilterParameter.Filter = string.Format(" FSourceBillNo = '{0}' ", Bilno); + //鏀寔杩斿洖鏁版嵁 + listShowParameter.IsLookUp = false; + ListShowParameter.ParentPageId = this.View.PageId; + listShowParameter.OpenStyle.ShowType = ShowType.InContainer; + listShowParameter.OpenStyle.TagetKey = "F_VRYF_Panel_83g"; + listShowParameter.FilterSchemeId = "672f043629cf3e"; + currentRecId = listShowParameter.PageId; + this.View.ShowForm(listShowParameter); + } + } + + + public override void AfterDoOperation(AfterDoOperationEventArgs e) + { + + base.AfterDoOperation(e); + //涓嬭浇word + if (e.Operation.Operation.Equals("DownWord")) + { + //鑾峰彇鏃堕棿鎴 + var ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); + var _TimeSpan = Convert.ToInt64(ts.TotalSeconds).ToString(); + DynamicObject FSaleOrgId = this.View.Model.GetValue("FSaleOrgId") as DynamicObject; + var oId = Convert.ToInt32(FSaleOrgId["Id"]); + DateTime FDATE = Convert.ToDateTime(this.View.Model.GetValue("FDATE")); + string F_cocntractnumber = Convert.ToString(this.View.Model.GetValue("F_contractnumber")); + DynamicObject FCustId = this.View.Model.GetValue("FCustId") as DynamicObject; + DynamicObject FSalerId = this.View.Model.GetValue("FSalerId") as DynamicObject; + string FIsDebugging = this.View.Model.GetValue("FIsDebugging")?.ToString(); + + DynamicObject F_projectname = this.View.Model.GetValue("F_projectname") as DynamicObject; + + if (FCustId == null) + { + this.View.ShowErrMessage("瀹㈡埛涓嶅厑璁镐负绌猴紒"); + return; + } + if (FSalerId == null) + { + this.View.ShowErrMessage("閿鍞憳涓嶅厑璁镐负绌猴紒"); + return; + } + if (F_projectname == null && oId != 438223) + { + this.View.ShowErrMessage("宸ョ▼椤圭洰涓嶅厑璁镐负绌"); + return; + } + string projectname = ""; + if (oId != 438223) + { + projectname = F_projectname["NAME"]?.ToString(); + //鐗规畩绗﹀彿骞虫浛瑙e喅鏂规硶锛 + projectname = projectname.Replace("/", "锛"); + projectname = projectname.Replace("+", "鉃"); + projectname = projectname.Replace("*", " "); + projectname = projectname.Replace(":", "锛"); + } + + string FPath = string.Format(@"D:\瀵煎嚭Word\{0}\{1}\{2}\{3}骞碶{4}鏈圽{5}鏃{6}.docx", this.Context.DataCenterName, "閿鍞鍗", + this.View.Model.DataObject["Billno"], DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, string.Format("{0}-{1}-{2}-{3}-{4}", FDATE.ToString("yyyy-MM-dd"), F_cocntractnumber + , string.IsNullOrWhiteSpace(projectname) ? "" : projectname, FCustId == null ? "" : FCustId["NAME"], FSalerId == null ? "" : FSalerId["NAME"])); + + //鑾峰彇璁㈠崟绫诲瀷缂栫爜 + DynamicObject F_Ordercategory = this.View.Model.GetValue("F_Ordercategory") as DynamicObject; + if (F_Ordercategory == null) + { + return; + } + string FOrdercategory = Convert.ToString(F_Ordercategory["FNumber"]); + + //鑾峰彇閲戦 + string fBILLNO = this.View.Model.GetValue("FBILLNO").ToString(); + string sql = string.Format(@"/*dialect*/Select B.FBILLALLAMOUNT as 'FBILLALLAMOUNT' From T_SAL_ORDER A + JOIN T_SAL_ORDERFIN B on A.FID = B.FID Where A.FBILLNO = '{0}'", fBILLNO); + var sqlList = DBUtils.ExecuteDynamicObject(Context, sql); + var fAmount = Convert.ToDecimal(sqlList[0]["FBILLALLAMOUNT"]); + + if (fAmount >= 200000 && FOrdercategory == "P") + { + FOrdercategory = "PP"; + } + + var ntess = FIsDebugging; + + if (FOrdercategory == "SX" && FIsDebugging == "1") + { + FOrdercategory = "SX-1"; + } + + if (FOrdercategory == "SX" && FIsDebugging == "0") + { + FOrdercategory = "SX-2"; + } + + //鍒ゆ柇閫璐/鎹㈣揣 + var splitList = F_cocntractnumber.Split('-'); + if (splitList.Count() > 1) + { + if (splitList[1].ToString().Contains("TH")) + { + FOrdercategory = "TH"; + } + else + { + FOrdercategory = "HH"; + } + } + + //鑾峰彇妯℃澘鍦板潃 + var TempModelPath = SQL.SqlManage.GetTempModelPath(this.Context, FOrdercategory); + if (TempModelPath == null) + { + this.View.ShowErrMessage("鎵句笉鍒板搴旂殑word妯℃澘"); + return; + } + //鑾峰彇鍐呭 + var TempModelData = SQL.SqlManage.GetTempModelData(this.Context, Convert.ToString(this.View.Model.DataObject["Id"]), FOrdercategory); + + // 鎻愬彇鏂囦欢鍚 + string fileProjectname = Path.GetFileName(FPath); + + // 鍦ㄤ复鏃舵枃浠剁洰褰曪紝鐢熸垚涓涓畬鏁寸殑鏂囦欢鍚: C:\Program Files\Kingdee\K3Cloud\WebSite\...\JD.xls + string filePath = PathUtils.GetPhysicalPath(KeyConst.TEMPFILEPATH, Path.GetFileName(FPath)); + // 鐢熸垚涓涓緵鐢ㄦ埛涓嬭浇鏂囦欢鐨剈rl鍦板潃: http:\\localhost\K3Cloud\...\JD.xls + string fileUrl = PathUtils.GetServerPath(KeyConst.TEMPFILEPATH, Path.GetFileName(FPath)); + + //鍙﹀瓨涓簑ord + Pilot_KD_Parino.Common.CommonHelper.DolondWord(Convert.ToString(TempModelPath[0]["FTempPath"]), TempModelData, FPath, FOrdercategory); + //鍙﹀瓨涓簑ord + Pilot_KD_Parino.Common.CommonHelper.DolondWord(Convert.ToString(TempModelPath[0]["FTempPath"]), TempModelData, filePath, FOrdercategory); + + //涓嬭浇word + if (!string.IsNullOrEmpty(FPath)) + { + //鎵撳紑鏂囦欢涓嬭浇鐣岄潰 + DynamicFormShowParameter showParameter = new DynamicFormShowParameter(); + showParameter.FormId = "BOS_FileDownload"; + showParameter.OpenStyle.ShowType = ShowType.Modal; + showParameter.CustomComplexParams.Add("url", fileUrl); + //鏄剧ず + this.View.ShowForm(showParameter); + } + } + string opt = e.Operation.Operation; + + if (opt == "Save" && e.OperationResult.IsSuccess) + { + this.View.Refresh(); + } + } + + private string GetWebAppRootUrl() + { + Uri siteuri; + if (Uri.TryCreate(HttpContext.Current.Request.ApplicationPath, UriKind.Absolute, out siteuri)) + { + return siteuri.AbsoluteUri; + } + return ""; + } + + } +} diff --git a/Pilot_KD_Parino/Sal_Order/YJAuditPlugIn.cs b/Pilot_KD_Parino/Sal_Order/YJAuditPlugIn.cs new file mode 100644 index 0000000..cb64808 --- /dev/null +++ b/Pilot_KD_Parino/Sal_Order/YJAuditPlugIn.cs @@ -0,0 +1,47 @@ +锘縰sing Kingdee.BOS.App.Data; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Core.Metadata.ServicePlugIn; +using Kingdee.BOS.Orm.DataEntity; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilot_KD_Parino.Sal_Order +{ + /// + /// 銆愯〃鍗曟彃浠躲戜笟缁╁垎鎽婂崟瀹℃牳鑷姩濉厖瀹℃牳浜-瀹℃牳鏃堕棿 + /// + [Description("銆愯〃鍗曟彃浠躲戜笟缁╁垎鎽婂崟瀹℃牳鑷姩濉厖瀹℃牳浜-瀹℃牳鏃堕棿"),HotUpdate] + public class YJAuditPlugIn: AbstractOperationServicePlugIn + { + /// + /// 鎿嶄綔浜嬬墿鍚庝簨浠讹紙浜嬪姟鍐呰Е鍙戯級 + /// + /// + public override void EndOperationTransaction(EndOperationTransactionArgs e) + { + base.EndOperationTransaction(e); + + if (this.FormOperation.OperationId == 1) //淇濆瓨8鎻愪氦9瀹℃牳1鍙嶅鏍26 + { + for (int i = 0; i < e.DataEntitys.Count(); i++) + { + var result = e.DataEntitys[i]; + + //鑾峰彇鍗曟嵁Id + string Id = result["Id"].ToString(); + + //閫氳繃鍗曟嵁Id淇敼瀹℃牳浜恒佸鏍告椂闂 + string sql = string.Format(@"Update T_PerformanceSharing Set FAPPROVEID = '{0}',FAPPROVEDATE = '{1}' Where FId = '{2}'", this.Context.UserId, DateTime.Now, Id); + DBUtils.ExecuteDynamicObject(Context, sql); + } + } + } + } +} diff --git a/Pilot_KD_Parino/bin/Debug/K3Cloud.WebApi.Client.dll b/Pilot_KD_Parino/bin/Debug/K3Cloud.WebApi.Client.dll new file mode 100644 index 0000000..a3e00fb Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/K3Cloud.WebApi.Client.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.AOP.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.AOP.dll new file mode 100644 index 0000000..338eaa3 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.AOP.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Apm.Client.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Apm.Client.dll new file mode 100644 index 0000000..010ca27 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Apm.Client.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Apm.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Apm.dll new file mode 100644 index 0000000..a8c232e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Apm.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.App.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.App.Core.dll new file mode 100644 index 0000000..4100d59 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.App.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.App.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.App.dll new file mode 100644 index 0000000..68b0d6b Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.App.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ApprovalFlow.PlugIns.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ApprovalFlow.PlugIns.dll new file mode 100644 index 0000000..f060c10 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ApprovalFlow.PlugIns.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.BusinessEntity.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.BusinessEntity.dll new file mode 100644 index 0000000..8dffbf0 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.BusinessEntity.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.CloudQueue.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.CloudQueue.dll new file mode 100644 index 0000000..674047b Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.CloudQueue.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Contracts.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Contracts.dll new file mode 100644 index 0000000..94fbdd1 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Contracts.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Core.dll new file mode 100644 index 0000000..6afad14 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.DataEntity.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.DataEntity.dll new file mode 100644 index 0000000..f3b2391 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.DataEntity.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Excel.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Excel.dll new file mode 100644 index 0000000..8f5d727 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Excel.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ExcelToolHelper.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ExcelToolHelper.dll new file mode 100644 index 0000000..e949e75 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ExcelToolHelper.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.FullTextSearch.Model.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.FullTextSearch.Model.dll new file mode 100644 index 0000000..9697b1a Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.FullTextSearch.Model.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.IBPM.Model.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.IBPM.Model.dll new file mode 100644 index 0000000..8b3d59f Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.IBPM.Model.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.KDSReportCommon.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.KDSReportCommon.dll new file mode 100644 index 0000000..5e77bbe Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.KDSReportCommon.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.KDSReportEntity.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.KDSReportEntity.dll new file mode 100644 index 0000000..64d1b2e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.KDSReportEntity.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MDSCommonLib.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MDSCommonLib.dll new file mode 100644 index 0000000..e5b7f1c Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MDSCommonLib.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MDSCore.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MDSCore.dll new file mode 100644 index 0000000..b507a60 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MDSCore.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MessageCenter.Model.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MessageCenter.Model.dll new file mode 100644 index 0000000..26179c5 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.MessageCenter.Model.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Performance.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Performance.dll new file mode 100644 index 0000000..8fb3a1f Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Performance.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.PlatformDetection.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.PlatformDetection.dll new file mode 100644 index 0000000..209d7d8 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.PlatformDetection.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.SQL.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.SQL.dll new file mode 100644 index 0000000..eaeb90e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.SQL.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Security.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Security.dll new file mode 100644 index 0000000..15956f0 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Security.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceFacade.KDServiceClient.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceFacade.KDServiceClient.dll new file mode 100644 index 0000000..317deb0 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceFacade.KDServiceClient.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceFacade.KDServiceFx.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceFacade.KDServiceFx.dll new file mode 100644 index 0000000..963144c Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceFacade.KDServiceFx.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceHelper.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceHelper.dll new file mode 100644 index 0000000..3259de7 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.ServiceHelper.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Verification.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Verification.dll new file mode 100644 index 0000000..63bfd2f Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Verification.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.VerificationHelper.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.VerificationHelper.dll new file mode 100644 index 0000000..931e531 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.VerificationHelper.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.VerificationService.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.VerificationService.dll new file mode 100644 index 0000000..d66b13e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.VerificationService.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Web.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Web.Core.dll new file mode 100644 index 0000000..5e464c2 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Web.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Web.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Web.dll new file mode 100644 index 0000000..f45bd87 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.Web.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.Client.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.Client.dll new file mode 100644 index 0000000..df8916e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.Client.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.FormService.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.FormService.dll new file mode 100644 index 0000000..d2954e7 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.FormService.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.ServicesStub.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.ServicesStub.dll new file mode 100644 index 0000000..9148ee2 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.WebApi.ServicesStub.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.dll new file mode 100644 index 0000000..763a979 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.BOS.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.Core.dll new file mode 100644 index 0000000..c2442b6 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.App.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.App.Core.dll new file mode 100644 index 0000000..873bf85 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.App.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.CB.App.Report.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.CB.App.Report.dll new file mode 100644 index 0000000..2916d15 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.CB.App.Report.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.Contracts.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.Contracts.dll new file mode 100644 index 0000000..a88f752 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.Contracts.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.Core.dll new file mode 100644 index 0000000..6d049f2 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.HS.App.Report.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.HS.App.Report.dll new file mode 100644 index 0000000..92c7862 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.FIN.HS.App.Report.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.MFG.App.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.MFG.App.dll new file mode 100644 index 0000000..46e7b5e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.MFG.App.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.MFG.PLN.App.MrpModel.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.MFG.PLN.App.MrpModel.dll new file mode 100644 index 0000000..38d8d7f Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.MFG.PLN.App.MrpModel.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Credit.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Credit.Core.dll new file mode 100644 index 0000000..22858ac Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Credit.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Sal.ServicePlugIn.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Sal.ServicePlugIn.dll new file mode 100644 index 0000000..9c1b21e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Sal.ServicePlugIn.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Stock.Report.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Stock.Report.dll new file mode 100644 index 0000000..d1145bf Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.Stock.Report.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.dll new file mode 100644 index 0000000..63c7abf Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.App.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Business.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Business.dll new file mode 100644 index 0000000..f8e48ff Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Business.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Common.BusinessEntity.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Common.BusinessEntity.dll new file mode 100644 index 0000000..9c7bf40 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Common.BusinessEntity.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Contracts.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Contracts.dll new file mode 100644 index 0000000..b51bd80 Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Contracts.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Core.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Core.dll new file mode 100644 index 0000000..f86d15e Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Core.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.ServiceHelper.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.ServiceHelper.dll new file mode 100644 index 0000000..135731d Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.ServiceHelper.dll differ diff --git a/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Stock.Business.PlugIn.dll b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Stock.Business.PlugIn.dll new file mode 100644 index 0000000..f7d61ec Binary files /dev/null and b/Pilot_KD_Parino/bin/Debug/Kingdee.K3.SCM.Stock.Business.PlugIn.dll differ diff --git a/SQLQuery1.sql b/SQLQuery1.sql new file mode 100644 index 0000000..fa64ab7 --- /dev/null +++ b/SQLQuery1.sql @@ -0,0 +1,393 @@ +ALTER PROC [dbo].[GetTempModelData] +( + @FID NVARCHAR(100), + @FType NVARCHAR(100) +) +AS +DECLARE @FitemName NVARCHAR(1000) --纸质合同号 +DECLARE @YFitemName NVARCHAR(1000) --原纸质合同号 +DECLARE @SJFP NVARCHAR(1000) --税金及发票 +DECLARE @GPhone NVARCHAR(1000) --固定电话 +DECLARE @THDate NVARCHAR(1000) --退货日期 +DECLARE @YFDate NVARCHAR(1000) --原日期 +DECLARE @YFDateYear NVARCHAR(1000) -- 原日期 年 +DECLARE @YFDateMonth NVARCHAR(1000) -- 原日期 月 +DECLARE @YFDateDay NVARCHAR(1000) -- 原日期 日 +DECLARE @SYFitemName NVARCHAR(1000) --S原纸质合同号 +DECLARE @SYFDate NVARCHAR(1000) --S原日期 +DECLARE @SYFDateYear NVARCHAR(1000) -- S原日期 年 +DECLARE @SYFDateMonth NVARCHAR(1000) -- S原日期 月 +DECLARE @SYFDateDay NVARCHAR(1000) -- S原日期 日 +DECLARE @FContractFPhone NVARCHAR(1000) --纸质合同号 +DECLARE @FContract NVARCHAR(1000) --纸质合同号 +DECLARE @FCustAddress NVARCHAR(1000) --纸质合同号 +DECLARE @FPaymentMethod NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle2 NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle NVARCHAR(1000) --纸质合同号 +DECLARE @FContractNo NVARCHAR(1000) --纸质合同号 +DECLARE @FCustName NVARCHAR(1000) --甲方名称 +DECLARE @FDate NVARCHAR(1000) -- 日期 +DECLARE @FDateYear NVARCHAR(1000) -- 日期 年 +DECLARE @FDateMonth NVARCHAR(1000) -- 日期 月 +DECLARE @FDateDay NVARCHAR(1000) -- 日期 日 +DECLARE @CreatedName NVARCHAR(1000) -- 创建人 +DECLARE @FTaxAmountText NVARCHAR(1000) +DECLARE @FTaxAmount NVARCHAR(1000) +DECLARE @FItem NVARCHAR(1000) +DECLARE @FAddressAndPhone NVARCHAR(1000) +DECLARE @FDeliveryDate NVARCHAR(1000) +DECLARE @FlegalRepresentative NVARCHAR(1000) +DECLARE @FBank NVARCHAR(1000) +DECLARE @FBankAccount NVARCHAR(1000) +DECLARE @FFax NVARCHAR(1000) +DECLARE @FPhone NVARCHAR(1000) +DECLARE @FEMAIL NVARCHAR(1000) +DECLARE @FTax NVARCHAR(1000) +DECLARE @FItemData NVARCHAR(1000) +DECLARE @FJHAddressFContractPhone NVARCHAR(1000) +DECLARE @FAProjectManager NVARCHAR(1000) +DECLARE @FAProjectPhone NVARCHAR(1000) +DECLARE @FBProjectManager NVARCHAR(1000) +DECLARE @FBProjectPhone NVARCHAR(1000) +DECLARE @FDeliveryTime NVARCHAR(1000) +DECLARE @FSHADDRESS NVARCHAR(1000) +DECLARE @FProjectDeadline NVARCHAR(1000) +DECLARE @FSettleMethod NVARCHAR(1000) +DECLARE @FProductionAddress NVARCHAR(1000) +DECLARE @FPeriod NVARCHAR(1000) +DECLARE @FJHAddress NVARCHAR(1000) +DECLARE @FWarrantyPeriod NVARCHAR(1000) +DECLARE @FAddress NVARCHAR(1000) +DECLARE @FINFORMATION NVARCHAR(1000) +DECLARE @FStartDate NVARCHAR(1000) +DECLARE @FEndDate NVARCHAR(1000) +DECLARE @FSaleId NVARCHAR(1000) +DECLARE @FMONTH NVARCHAR(1000) --质保月份 +DECLARE @FMONTHYear NVARCHAR(1000) --质保年份 +DECLARE @Projectarea NVARCHAR(1000) --项目所属领域 +DECLARE @Province NVARCHAR(1000) --项目所属省份 +DECLARE @VPAYMENTMETHOD NVARCHAR(1000)--结算方式 +DECLARE @CreatedPhone NVARCHAR(1000)--创建人电话 +DECLARE @FDELIVERYCONDITIONS NVARCHAR(1000)--发货条件 +DECLARE @HFPaymentMethod NVARCHAR(1000)--付款方式 F_PaymentMethod +DECLARE @FNOTE NVARCHAR(1000)--备注单据头 +DECLARE @FSALEORGID NVARCHAR(1000)--销售订单组织 + +--- + +SELECT top 1 +@VPAYMENTMETHOD = A.F_VPAYMENTMETHOD, +@FDELIVERYCONDITIONS = (CASE WHEN A.F_DELIVERYCONDITIONS = '' THEN '' +ELSE SUBSTRING(A.F_DELIVERYCONDITIONS, CHARINDEX(',',A.F_DELIVERYCONDITIONS) + 1, LEN(A.F_DELIVERYCONDITIONS)) END), +@CreatedPhone = P.FPhone, +@HFPaymentMethod = A.F_PaymentMethod, +@FStartDate=F_TGKSRQ, +@FEndDate =F_TGJSRQ, +@FNOTE = A.FNOTE, +@FAddress=F_VRYF_Text_fg2, +@FJHAddress =F_Shippingaddress, +@FContractNo= F_contractnumber, +@FTaxAmount=FORMAT(b.FBillAllAmount, 'N2') , +@FDate=convert(nvarchar(10), A.FDATE ,23), +@FDateYear=Year(A.FDATE),--年 +@FDateMonth=Month(A.FDATE),--月 +@FDateDay=DAY(A.FDATE),--日 +@FCustName=isnull(C.FNAME,''), +@FItem=isnull(D.FNAME,''), +@FAddressAndPhone=CONCAT( e.FADDRESS,' ',FLinkMan,' ',FLinkPhone), +@FlegalRepresentative=isnull(e.FLegalPerson,''), +@FBank=isnull(L.FINVOICEBANKNAME,''), +@FBankAccount=isnull(L.FINVOICEBANKACCOUNT,''), +@FTax=isnull(e.FTAXREGISTERCODE,''), +@FFax=isnull(e.FFAX,''), +@FTaxAmountText=dbo.ConvertAmountToChineseWords(b.FBillAllAmount), +@FEMAIL=isnull(g.FEMAIL,''), +@FProductionCycle= F_SCZQ, +@FProductionCycle2 =F_Deliverymethod, +@FPaymentMethod =ISNULL(N.FNAME+',',''), +@FCustAddress=e.FADDRESS, +@FContract=H.FNAME, +@FitemName =H.FNAME, +@FContractFPhone = g.FTEL, +@FPhone = e.FTEL, +@FitemName= I.FNAME, +@FItemData = A.F_VRYF_Text_fg2, +@FJHAddressFContractPhone = F_Shippingaddress, +@FAProjectManager = a.F_ProjectManager , +@FAProjectPhone = a.F_Contactnumber , +@FBProjectManager = a.F_VRYF_TEXT_UKY , +@FBProjectPhone = a.F_VRYF__Contactnumber_dvn , +@FDeliveryTime=F_FHSJ, +@FProjectDeadline = F_ProjectDeadli , +@FPeriod = J.FDATAVALUE , +@FWarrantyPeriod = J.FDATAVALUE, +@FMONTH = FLOOR(A.F_MONTH), +@FMONTHYear = FLOOR(A.F_MONTH/12), +@FSaleId = K.FNAME, +@FSALEORGID = Q.FNAME, +@Projectarea = (CASE WHEN O.F_PROJECTFIELD = 1 THEN '建筑楼宇' +WHEN O.F_PROJECTFIELD = 2 THEN '医疗卫生' +WHEN O.F_PROJECTFIELD = 3 THEN '学校' +WHEN O.F_PROJECTFIELD = 4 THEN '文娱康乐' +WHEN O.F_PROJECTFIELD = 5 THEN '市政工程' +WHEN O.F_PROJECTFIELD = 6 THEN '能源' +WHEN O.F_PROJECTFIELD = 7 THEN '工业' +WHEN O.F_PROJECTFIELD = 8 THEN '交通运输' +END ), +@Province = O.F_Province, +@FINFORMATION = A.F_INFORMATION, +@CreatedName = P.FNAME, +@GPhone = P.F_GPhone, +@THDate = A.F_THDate, +@SJFP = A.F_SJFP + +FROM T_SAL_ORDER A +INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID +--INNER JOIN T_SAL_ORDERENTRY BB ON A.FID = BB.FID +LEFT JOIN T_BD_CUSTOMER_L C ON C.FCUSTID =A.FCUSTID AND C.FLOCALEID =2052 +LEFT JOIN T_BD_CUSTOMER E ON E.FCUSTID =A.FCUSTID +LEFT JOIN T_BAS_PREBDONE_L D ON D.FID = A.F_projectname AND D.FLocaleID =2052 +LEFT JOIN T_BD_CUSTBANK F ON F.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_CUSTOMER_F L ON L.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_COMMONCONTACT g on g.FCOMPANY = e.FCUSTID and g.FISDEFAULTCONTACT =1 +LEFT JOIN T_BD_COMMONCONTACT_L H on H.FCONTACTID =G.FCONTACTID AND H.FLOCALEID =2052 +LEFT JOIN T_BAS_PREBDONE_L I ON I.FID = A.F_projectname +LEFT JOIN V_ASSISTANTDATA J ON J.FENTRYID=A.F_ZBQ +left join V_BD_SALESMAN_L K ON K.FID = A.FSALERID +LEFT JOIN T_SAL_ORDERPLAN M ON M.FID =A.FID AND M.FSEQ = 1 +LEFT JOIN T_BD_RecCondition_L N on N.FID = M.F_RecConditionId +LEFT JOIN T_BAS_PREBDTHREE O on O.FID = A.F_BON +LEFT JOIN T_SEC_USER P on A.FCreatorId = P.FUSERID +LEFT JOIN T_ORG_ORGANIZATIONS_L Q on Q.FORGID = A.FSALEORGID +--LEFT JOIN (Select B.FDATE,A.FENTRYID From T_SAL_ORDERENTRY_LK A +--JOIN T_SAL_ORDER B on A.FSBILLID = B.FID) P on P.FENTRYID = BB.FENTRYID +WHERE A.FID =@FID; +--2025/01/09 改动 --↓ +SELECT top 1 +@YFitemName = F_CONTRACTNUMBER, +@YFDate = convert(nvarchar(10), FDATE ,23), +@YFDateYear=Year(FDATE),--年 +@YFDateMonth=Month(FDATE),--月 +@YFDateDay=DAY(FDATE)--日 +From T_SAL_ORDER Where FID = +(SELECT FSBILLID From +T_SAL_ORDERENTRY A +JOIN T_SAL_ORDERENTRY_LK B +on A.FENTRYID = B.FENTRYID +Where A.FID = @FID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY') +--2025/01/09 改动 --↑ + +--2025/01/12 改动 --↓ +SELECT top 1 +@SYFitemName = F_CONTRACTNUMBER, +@SYFDate = convert(nvarchar(10), FDATE ,23), +@SYFDateYear=Year(FDATE),--年 +@SYFDateMonth=Month(FDATE),--月 +@SYFDateDay=DAY(FDATE)--日 +From T_SAL_ORDER Where F_CONTRACTNUMBER = +(Select top 1 F_ZHTH From T_SAL_ORDER Where FID = @FID) +--2025/01/12 改动 --↑ + +;with t as( +SELECT A.FID, +CONCAT(RANK()OVER(PARTITION BY A.FID ORDER BY A.FSEQ) ,'、',B.FDESCRIPTION,' ',CAST( a.F_day AS REAL),'天',' ', +CAST( A.FRECADVANCERATE AS REAL),'%') AS '付款条件' +FROM T_SAL_ORDERPLAN A +INNER JOIN T_SAL_ORDER C ON C.FID = A.FID +INNER JOIN T_BD_RecCondition_L b on a.F_RecConditionId = b.fid +WHERE a.fid =@fid +) +, +H AS( +SELECT FID, -- 分组的主键 +STUFF( +( +SELECT ','+ CONVERT(NVARCHAR(100), 付款条件,120) -- 要拼接的列 +FROM t a WHERE b.FID = a.FID FOR XML PATH('') +),1 ,1, '') 付款条件 +FROM t b +GROUP BY FID +) +SELECT @FSettleMethod =付款条件 FROM H + --@VPAYMENTMETHOD + +select 'FSaleId' as 'Key' ,isnull(@FSaleId,'') as 'VALUE' +union all +select 'FSALEORGID' as 'Key' ,isnull(@FSALEORGID,'') as 'VALUE' +union all +select 'SJFP' as 'Key' ,isnull(@SJFP,'') as 'VALUE' +union all +select 'THDate' as 'Key' ,isnull(@THDate,'') as 'VALUE' +union all +select 'GPhone' as 'Key' ,isnull(@GPhone,'') as 'VALUE' +union all +select 'FNOTE' as 'Key' ,@FNOTE as 'VALUE' +union all +select 'YFContractNo' as 'Key' ,@YFitemName as 'VALUE' +union all +select 'YFDate' as 'Key' ,isnull(@YFDate,'') as 'VALUE' +union all +select 'YFDateYear' as 'Key' ,isnull(@YFDateYear,'') as 'VALUE' +union all +select 'YFDateMonth' as 'Key' ,isnull(@YFDateMonth,'') as 'VALUE' +union all +select 'YFDateDay' as 'Key' ,isnull(@YFDateDay,'') as 'VALUE' +union all +select 'SYFContractNo' as 'Key' ,@SYFitemName as 'VALUE' +union all +select 'SYFDate' as 'Key' ,isnull(@SYFDate,'') as 'VALUE' +union all +select 'SYFDateYear' as 'Key' ,isnull(@SYFDateYear,'') as 'VALUE' +union all +select 'SYFDateMonth' as 'Key' ,isnull(@SYFDateMonth,'') as 'VALUE' +union all +select 'SYFDateDay' as 'Key' ,isnull(@SYFDateDay,'') as 'VALUE' +union all +select 'Province' as 'Key' ,Isnull(@Province,'') as 'VALUE' +union all +select 'VPAYMENTMETHOD' as 'Key' ,Isnull(@VPAYMENTMETHOD,'') as 'VALUE' +union all +select 'Projectarea' as 'Key' ,Isnull(@Projectarea,'') as 'VALUE' +union all +select 'FMONTH' as 'Key' ,@FMONTH as 'VALUE' +union all +select 'FStartDate' as 'Key' ,isnull(@FStartDate,'') as 'VALUE' +union all +select 'FEndDate' as 'Key' ,isnull(@FEndDate,'') as 'VALUE' +union all +select 'FAddress' as 'Key' ,isnull(@FAddress,'') as 'VALUE' +union all +select 'FWarrantyPeriod' as 'Key' ,isnull(@FWarrantyPeriod,'') as 'VALUE' +union all +select 'HFPaymentMethod' as 'Key' ,@HFPaymentMethod as 'VALUE' +union all +select 'FDELIVERYCONDITIONS' as 'Key' ,@FDELIVERYCONDITIONS as 'VALUE' +union all +select 'CreatedName' as 'Key' ,@CreatedName as 'VALUE' +union all +select 'CreatedPhone' as 'Key',@CreatedPhone as 'VALUE' +union all +select 'FINFORMATION' as 'Key' ,Isnull(@FINFORMATION,'') as 'VALUE' +union all +select 'FMONTHYear' as 'Key' ,Isnull(@FMONTHYear,'') as 'VALUE' +union all +select 'FJHAddress' as 'Key' ,isnull(@FJHAddress,'') as 'VALUE' +union all +select 'FPeriod' as 'Key' ,isnull(@FPeriod,'') as 'VALUE' +union all +select 'FItemName' as 'Key' ,isnull(@FitemName,'') as 'VALUE' +UNION ALL +select 'FSettleMethod' as 'Key' ,isnull(@FSettleMethod,'') as 'VALUE' +UNION ALL +select 'FProjectDeadline' as 'Key' ,@FProjectDeadline as 'VALUE' +UNION ALL +select 'FDeliveryTime' as 'Key' ,@FDeliveryTime as 'VALUE' +UNION ALL +select 'FAProjectManager' as 'Key' ,@FAProjectManager as 'VALUE' +UNION ALL +select 'FAProjectPhone' as 'Key' ,@FAProjectPhone as 'VALUE' +UNION ALL +select 'FBProjectManager' as 'Key' ,@FBProjectManager as 'VALUE' +UNION ALL +select 'FBProjectPhone' as 'Key' ,@FBProjectPhone as 'VALUE' +UNION ALL +select 'FJHAddressFContractPhone' as 'Key' ,@FJHAddressFContractPhone as 'VALUE' +UNION ALL +select 'FItemData' as 'Key' ,@FItemData as 'VALUE' +UNION ALL +select 'FitemName' as 'Key' ,@FitemName as 'VALUE' +UNION ALL +select 'FFax' as 'Key' ,@FFax as 'VALUE' +UNION ALL +select 'FContractPhone' as 'Key' ,@FContractFPhone as 'VALUE' +UNION ALL +select 'FContract' as 'Key' ,@FContract as 'VALUE' +UNION ALL +select 'FCustAddress' as 'Key' ,@FCustAddress as 'VALUE' +UNION ALL +select 'FPaymentMethod' as 'Key' ,@FPaymentMethod as 'VALUE' +UNION ALL +select 'FProductionCycle2' as 'Key' ,@FProductionCycle2 as 'VALUE' +UNION ALL +select 'FProductionCycle' as 'Key' ,@FProductionCycle as 'VALUE' +UNION ALL +select 'FContractNo' as 'Key' ,@FContractNo as 'VALUE' +UNION ALL +select 'FCustName' as 'Key' ,@FCustName as 'VALUE' +UNION ALL +select 'FDate' as 'Key' ,@FDate as 'VALUE' +UNION ALL +select 'FDateYear' as 'Key' ,@FDateYear as 'VALUE' +UNION ALL +select 'FDateMonth' as 'Key' ,@FDateMonth as 'VALUE' +UNION ALL +select 'FDateDay' as 'Key' ,@FDateDay as 'VALUE' +UNION ALL +select 'FTaxAmountText' as 'Key' ,@FTaxAmountText as 'VALUE' +UNION ALL +select 'FTaxAmount' as 'Key' ,@FTaxAmount as 'VALUE' +UNION ALL +select 'FItem' as 'Key' ,@FItem as 'VALUE' +UNION ALL +select 'FAddressAndPhone' as '@FAddressAndPhone' ,@FCustName as 'VALUE' +UNION ALL +select 'FDeliveryDate' as 'Key' ,@FDeliveryDate as 'VALUE' +UNION ALL +select 'FlegalRepresentative' as 'Key' ,@FlegalRepresentative as 'VALUE' +UNION ALL +select 'FBank' as 'Key' ,@FBank as 'VALUE' +UNION ALL +select 'FBankAccount' as 'Key' ,@FBankAccount as 'VALUE' +UNION ALL +select 'FTax' as 'Key' ,@FTax as 'VALUE' +UNION ALL +select 'FPhone' as 'Key' ,@FPhone as 'VALUE' +UNION ALL +select 'FEmial' as 'Key' ,@FEMAIL as 'VALUE' +UNION ALL +select 'FEMAIL' as 'Key' ,@FEMAIL as 'VALUE' + + +SELECT fseq,B.fname,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID + +SELECT rank()over(partition by a.fid ,a.F_Projecttype order by a.fseq desc) as 'fseq',B.fname,b.FSPECIFICATION,E.F_103,FLOOR(A.FQTY),C.FNAME, +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE,F_Projecttype as 'FType', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID ),2),'N2') AS 'FALLAMOUNT', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID,F_Projecttype) ,2), 'N2') AS 'FALLAMOUNT2' +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_MATERIAL E ON E.FMATERIALID = A.FMATERIALID +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID +ORDER BY a.F_Projecttype ,a.fseq + +Select ROW_NUMBER() OVER (ORDER BY B.FRETURNTYPE) AS ID,CASE WHEN B.FRETURNTYPE = 'SEND' THEN '补货' ELSE '退货' END as 'FRETURNTYPE' +,C.FSPECIFICATION,D.FNAME,FLOOR(B.FQTY),FORMAT(E.FTAXPRICE,'N2'),FORMAT(E.FALLAMOUNT_LC,'N2') From T_SAL_ORDER A JOIN T_SAL_ORDERENTRY B +on A.FID = B.FID INNER JOIN T_BD_MATERIAL_L C ON C.FMATERIALID = B.FMATERIALID AND C.FLOCALEID =2052 INNER JOIN T_BD_UNIT_L D ON D.FUNITID =B.FUNITID +AND D.FLOCALEID =2052 INNER JOIN T_SAL_ORDERENTRY_F E ON E.FENTRYID =B.FENTRYID Where A.FID = @FID + +SELECT fseq,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID + +--EXEC GetTempModelData @FID = 101521,@FType = 'HH' +--Select * From T_TempModelPath +--Update T_TempModelPath set FTempPath = 'D:\模板\SX系统模板.docx' Where FKeyId = 'SX' +--Update T_SAL_ORDER set FDocumentStatus = 'D' Where FBILLNO = 'PL-XSDD20250100011' +--Select * From V_BD_SALESMAN_L Where FNAME = '杜丽菊' + + +--Select * From T_ORG_ORGANIZATIONS_L \ No newline at end of file diff --git a/SQLQuery2.sql b/SQLQuery2.sql new file mode 100644 index 0000000..96e1147 --- /dev/null +++ b/SQLQuery2.sql @@ -0,0 +1 @@ +关键字 diff --git a/SQLQuery3.sql b/SQLQuery3.sql new file mode 100644 index 0000000..a2f43ea --- /dev/null +++ b/SQLQuery3.sql @@ -0,0 +1,520 @@ +ALTER PROC [dbo].[GetTempModelData] +( + @FID NVARCHAR(100), + @FType NVARCHAR(100) +) +AS +DECLARE @FitemName NVARCHAR(1000) --纸质合同号 +DECLARE @YFitemName NVARCHAR(1000) --原纸质合同号 +DECLARE @SJFP NVARCHAR(1000) --税金及发票 +DECLARE @GPhone NVARCHAR(1000) --固定电话 +DECLARE @THDate NVARCHAR(1000) --退货日期 +DECLARE @YFDate NVARCHAR(1000) --原日期 +DECLARE @YFDateYear NVARCHAR(1000) -- 原日期 年 +DECLARE @YFDateMonth NVARCHAR(1000) -- 原日期 月 +DECLARE @YFDateDay NVARCHAR(1000) -- 原日期 日 +DECLARE @SYFitemName NVARCHAR(1000) --S原纸质合同号 +DECLARE @SYFDate NVARCHAR(1000) --S原日期 +DECLARE @SYFDateYear NVARCHAR(1000) -- S原日期 年 +DECLARE @SYFDateMonth NVARCHAR(1000) -- S原日期 月 +DECLARE @SYFDateDay NVARCHAR(1000) -- S原日期 日 +DECLARE @FContractFPhone NVARCHAR(1000) --纸质合同号 +DECLARE @FContract NVARCHAR(1000) --纸质合同号 +DECLARE @FCustAddress NVARCHAR(1000) --纸质合同号 +DECLARE @FPaymentMethod NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle2 NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle NVARCHAR(1000) --纸质合同号 +DECLARE @FContractNo NVARCHAR(1000) --纸质合同号 +DECLARE @FCustName NVARCHAR(1000) --甲方名称 +DECLARE @FDate NVARCHAR(1000) -- 日期 +DECLARE @FDateYear NVARCHAR(1000) -- 日期 年 +DECLARE @FDateMonth NVARCHAR(1000) -- 日期 月 +DECLARE @FDateDay NVARCHAR(1000) -- 日期 日 +DECLARE @CreatedName NVARCHAR(1000) -- 创建人 +DECLARE @FTaxAmountText NVARCHAR(1000) +DECLARE @FTaxAmount NVARCHAR(1000) +DECLARE @FItem NVARCHAR(1000) +DECLARE @FAddressAndPhone NVARCHAR(1000) +DECLARE @FDeliveryDate NVARCHAR(1000) +DECLARE @FlegalRepresentative NVARCHAR(1000) +DECLARE @FBank NVARCHAR(1000) +DECLARE @FBankAccount NVARCHAR(1000) +DECLARE @FFax NVARCHAR(1000) +DECLARE @FPhone NVARCHAR(1000) +DECLARE @FEMAIL NVARCHAR(1000) +DECLARE @FTax NVARCHAR(1000) +DECLARE @FItemData NVARCHAR(1000) +DECLARE @FJHAddressFContractPhone NVARCHAR(1000) +DECLARE @FAProjectManager NVARCHAR(1000) +DECLARE @FAProjectPhone NVARCHAR(1000) +DECLARE @FBProjectManager NVARCHAR(1000) +DECLARE @FBProjectPhone NVARCHAR(1000) +DECLARE @FDeliveryTime NVARCHAR(1000) +DECLARE @FSHADDRESS NVARCHAR(1000) +DECLARE @FProjectDeadline NVARCHAR(1000) +DECLARE @FSettleMethod NVARCHAR(1000) +DECLARE @FProductionAddress NVARCHAR(1000) +DECLARE @FPeriod NVARCHAR(1000) +DECLARE @FJHAddress NVARCHAR(1000) +DECLARE @FWarrantyPeriod NVARCHAR(1000) +DECLARE @FAddress NVARCHAR(1000) +DECLARE @FINFORMATION NVARCHAR(1000) +DECLARE @FStartDate NVARCHAR(1000) +DECLARE @FEndDate NVARCHAR(1000) +DECLARE @FSaleId NVARCHAR(1000) +DECLARE @FMONTH NVARCHAR(1000) --质保月份 +DECLARE @FMONTHYear NVARCHAR(1000) --质保年份 +DECLARE @Projectarea NVARCHAR(1000) --项目所属领域 +DECLARE @Province NVARCHAR(1000) --项目所属省份 +DECLARE @VPAYMENTMETHOD NVARCHAR(1000)--结算方式 +DECLARE @CreatedPhone NVARCHAR(1000)--创建人电话 +DECLARE @FDELIVERYCONDITIONS NVARCHAR(1000)--发货条件 +DECLARE @HFPaymentMethod NVARCHAR(1000)--付款方式 F_PaymentMethod +DECLARE @FNOTE NVARCHAR(1000)--备注单据头 +DECLARE @FSALEORGID NVARCHAR(1000)--销售订单组织 +DECLARE @SX01 NVARCHAR(1000)--SX合同 +DECLARE @SX02 NVARCHAR(1000)--SX合同 +DECLARE @SX03 NVARCHAR(1000)--SX合同 +DECLARE @SX04 NVARCHAR(1000)--SX合同 +DECLARE @SX05 NVARCHAR(1000)--SX合同 +DECLARE @SX06 NVARCHAR(1000)--SX合同 +DECLARE @SX07 NVARCHAR(1000)--SX合同 +DECLARE @SX08 NVARCHAR(1000)--SX合同 + +DECLARE @TH_001 NVARCHAR(1000)--公司名 +DECLARE @TH_002 NVARCHAR(1000)--地址 +DECLARE @TH_003 NVARCHAR(1000)--法定代表人 +DECLARE @TH_004 NVARCHAR(1000)--电话 +DECLARE @TH_005 NVARCHAR(1000)--传真 +DECLARE @TH_006 NVARCHAR(1000)--开户银行 +DECLARE @TH_007 NVARCHAR(1000)--账号 +DECLARE @TH_008 NVARCHAR(1000)--税号 + +--100302 珠海派诺 +--100303 珠海兴诺 +--100305 武汉派诺 +--438223 广东碳索 +--438224 香港派诺 +--533896 华夏云联 + +SELECT top 1 +@VPAYMENTMETHOD = A.F_VPAYMENTMETHOD, +@FDELIVERYCONDITIONS = (CASE WHEN A.F_DELIVERYCONDITIONS = '' THEN '' +ELSE SUBSTRING(A.F_DELIVERYCONDITIONS, CHARINDEX(',',A.F_DELIVERYCONDITIONS) + 1, LEN(A.F_DELIVERYCONDITIONS)) END), +@CreatedPhone = P.FPhone, + +@TH_001 =(CASE WHEN A.FSALEORGID=100302 THEN '珠海派诺科技股份有限公司' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '武汉派诺科技发展有限公司' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_002 =(CASE WHEN A.FSALEORGID=100302 THEN '珠海市唐家高新区创新海岸科技六路15号' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '武汉经济技术开发区川江池二路28号4号楼A501' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_003 =(CASE WHEN A.FSALEORGID=100302 THEN '李健' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_004 =(CASE WHEN A.FSALEORGID=100302 THEN '0756-3629690' --电话 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '027-87508171' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_005 =(CASE WHEN A.FSALEORGID=100302 THEN '0756-3629670' --传真 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_006 =(CASE WHEN A.FSALEORGID=100302 THEN '工商银行珠海分行营业部' +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '招商银行股份有限公司武汉经济技术开发区支行' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_007 =(CASE WHEN A.FSALEORGID=100302 THEN '2002 0207 19100 0780 51' --账号 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '1279 1590 4410 401' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@TH_008 =(CASE WHEN A.FSALEORGID=100302 THEN '91321191588407302A' --税号 +WHEN A.FSALEORGID=100303 THEN '' +WHEN A.FSALEORGID=100305 THEN '91420100MA4F4JX60A' +WHEN A.FSALEORGID=438223 THEN '' +WHEN A.FSALEORGID=438224 THEN '' +WHEN A.FSALEORGID=533896 THEN '' +ELSE '' END), + +@SX01 = A.F_VRYF_Text_ne11, +@SX02 = A.F_VRYF_Text_6oq, +@SX03 = A.F_VRYF_Text_pzg, +@SX04 = A.F_VRYF_Text_795, +@SX05 = A.F_VRYF_Remarks_43c, +@SX06 = A.F_VRYF_Remarks_43c_s58, +@SX07 = A.F_VRYF_Remarks_43c_9uj, +@SX08 = A.F_VRYF_Remarks_43c_bgx, +@HFPaymentMethod = A.F_PaymentMethod, +@FStartDate=F_TGKSRQ, +@FEndDate =F_TGJSRQ, +@FNOTE = A.FNOTE, +@FAddress=F_VRYF_Text_fg2, +@FJHAddress =F_Shippingaddress, +@FContractNo= F_contractnumber, +@FTaxAmount=FORMAT(b.FBillAllAmount, 'N2') , +@FDate=convert(nvarchar(10), A.FDATE ,23), +@FDateYear=Year(A.FDATE),--年 +@FDateMonth=Month(A.FDATE),--月 +@FDateDay=DAY(A.FDATE),--日 +@FCustName=isnull(C.FNAME,''), +@FItem=isnull(D.FNAME,''), +@FAddressAndPhone=CONCAT( e.FADDRESS,' ',FLinkMan,' ',FLinkPhone), +@FlegalRepresentative=isnull(e.FLegalPerson,''), +@FBank=isnull(L.FINVOICEBANKNAME,''), +@FBankAccount=isnull(L.FINVOICEBANKACCOUNT,''), +@FTax=isnull(e.FTAXREGISTERCODE,''), +@FFax=isnull(e.FFAX,''), +@FTaxAmountText=dbo.ConvertAmountToChineseWords(b.FBillAllAmount), +@FEMAIL=isnull(g.FEMAIL,''), +@FProductionCycle= F_SCZQ, +@FProductionCycle2 =F_Deliverymethod, +@FPaymentMethod =ISNULL(N.FNAME+',',''), +@FCustAddress=e.FADDRESS, +@FContract=H.FNAME, +@FitemName =H.FNAME, +@FContractFPhone = g.FTEL, +@FPhone = e.FTEL, +@FitemName= I.FNAME, +@FItemData = A.F_VRYF_Text_fg2, +@FJHAddressFContractPhone = F_Shippingaddress, +@FAProjectManager = a.F_ProjectManager , +@FAProjectPhone = a.F_Contactnumber , +@FBProjectManager = a.F_VRYF_TEXT_UKY , +@FBProjectPhone = a.F_VRYF__Contactnumber_dvn , +@FDeliveryTime=F_FHSJ, +@FProjectDeadline = F_ProjectDeadli , +@FPeriod = J.FDATAVALUE , +@FWarrantyPeriod = J.FDATAVALUE, +@FMONTH = FLOOR(A.F_MONTH), +@FMONTHYear = FLOOR(A.F_MONTH/12), +@FSaleId = K.FNAME, +@FSALEORGID = Q.FNAME, +@Projectarea = (CASE WHEN O.F_PROJECTFIELD = 1 THEN '建筑楼宇' +WHEN O.F_PROJECTFIELD = 2 THEN '医疗卫生' +WHEN O.F_PROJECTFIELD = 3 THEN '学校' +WHEN O.F_PROJECTFIELD = 4 THEN '文娱康乐' +WHEN O.F_PROJECTFIELD = 5 THEN '市政工程' +WHEN O.F_PROJECTFIELD = 6 THEN '能源' +WHEN O.F_PROJECTFIELD = 7 THEN '工业' +WHEN O.F_PROJECTFIELD = 8 THEN '交通运输' +END ), +@Province = O.F_Province, +@FINFORMATION = A.F_INFORMATION, +@CreatedName = P.FNAME, +@GPhone = P.F_GPhone, +@THDate = A.F_THDate, +@SJFP = A.F_SJFP + +FROM T_SAL_ORDER A +INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID +--INNER JOIN T_SAL_ORDERENTRY BB ON A.FID = BB.FID +LEFT JOIN T_BD_CUSTOMER_L C ON C.FCUSTID =A.FCUSTID AND C.FLOCALEID =2052 +LEFT JOIN T_BD_CUSTOMER E ON E.FCUSTID =A.FCUSTID +LEFT JOIN T_BAS_PREBDONE_L D ON D.FID = A.F_projectname AND D.FLocaleID =2052 +LEFT JOIN T_BD_CUSTBANK F ON F.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_CUSTOMER_F L ON L.FCUSTID = E.FCUSTID +LEFT JOIN T_BD_COMMONCONTACT g on g.FCOMPANY = e.FCUSTID and g.FISDEFAULTCONTACT =1 +LEFT JOIN T_BD_COMMONCONTACT_L H on H.FCONTACTID =G.FCONTACTID AND H.FLOCALEID =2052 +LEFT JOIN T_BAS_PREBDONE_L I ON I.FID = A.F_projectname +LEFT JOIN V_ASSISTANTDATA J ON J.FENTRYID=A.F_ZBQ +left join V_BD_SALESMAN_L K ON K.FID = A.FSALERID +LEFT JOIN T_SAL_ORDERPLAN M ON M.FID =A.FID AND M.FSEQ = 1 +LEFT JOIN T_BD_RecCondition_L N on N.FID = M.F_RecConditionId +LEFT JOIN T_BAS_PREBDTHREE O on O.FID = A.F_BON +LEFT JOIN T_SEC_USER P on A.FCreatorId = P.FUSERID +LEFT JOIN T_ORG_ORGANIZATIONS_L Q on Q.FORGID = A.FSALEORGID +--LEFT JOIN (Select B.FDATE,A.FENTRYID From T_SAL_ORDERENTRY_LK A +--JOIN T_SAL_ORDER B on A.FSBILLID = B.FID) P on P.FENTRYID = BB.FENTRYID +WHERE A.FID =@FID; +--2025/01/09 改动 --↓ +SELECT top 1 +@YFitemName = F_CONTRACTNUMBER, +@YFDate = convert(nvarchar(10), FDATE ,23), +@YFDateYear=Year(FDATE),--年 +@YFDateMonth=Month(FDATE),--月 +@YFDateDay=DAY(FDATE)--日 +From T_SAL_ORDER Where FID = +(SELECT top 1 FSBILLID From +T_SAL_ORDERENTRY A +JOIN T_SAL_ORDERENTRY_LK B +on A.FENTRYID = B.FENTRYID +Where A.FID = @FID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY') +--2025/01/09 改动 --↑ + +--2025/01/12 改动 --↓ +SELECT top 1 +@SYFitemName = F_CONTRACTNUMBER, +@SYFDate = convert(nvarchar(10), FDATE ,23), +@SYFDateYear=Year(FDATE),--年 +@SYFDateMonth=Month(FDATE),--月 +@SYFDateDay=DAY(FDATE)--日 +From T_SAL_ORDER Where F_CONTRACTNUMBER = +(Select top 1 F_ZHTH From T_SAL_ORDER Where FID = @FID) +--2025/01/12 改动 --↑ + +;with t as( +SELECT A.FID, +CONCAT(RANK()OVER(PARTITION BY A.FID ORDER BY A.FSEQ) ,'、',B.FDESCRIPTION,' ',CAST( a.F_day AS REAL),'天',' ', +CAST( A.FRECADVANCERATE AS REAL),'%') AS '付款条件' +FROM T_SAL_ORDERPLAN A +INNER JOIN T_SAL_ORDER C ON C.FID = A.FID +INNER JOIN T_BD_RecCondition_L b on a.F_RecConditionId = b.fid +WHERE a.fid =@fid +) +, +H AS( +SELECT FID, -- 分组的主键 +STUFF( +( +SELECT ','+ CONVERT(NVARCHAR(100), 付款条件,120) -- 要拼接的列 +FROM t a WHERE b.FID = a.FID FOR XML PATH('') +),1 ,1, '') 付款条件 +FROM t b +GROUP BY FID +) +SELECT @FSettleMethod =付款条件 FROM H + --@VPAYMENTMETHOD + +select 'TH_001' as 'Key' ,isnull(@TH_001,'') as 'VALUE' +union all +select 'TH_002' as 'Key' ,isnull(@TH_002,'') as 'VALUE' +union all +select 'TH_003' as 'Key' ,isnull(@TH_003,'') as 'VALUE' +union all +select 'TH_004' as 'Key' ,isnull(@TH_004,'') as 'VALUE' +union all +select 'TH_005' as 'Key' ,isnull(@TH_005,'') as 'VALUE' +union all +select 'TH_006' as 'Key' ,isnull(@TH_006,'') as 'VALUE' +union all +select 'TH_007' as 'Key' ,isnull(@TH_007,'') as 'VALUE' +union all +select 'TH_008' as 'Key' ,isnull(@TH_008,'') as 'VALUE' +union all +select 'F_VRYF_Text_ne11' as 'Key' ,isnull(@SX01,'') as 'VALUE' +union all +select 'F_VRYF_Text_ne11' as 'Key' ,isnull(@SX01,'') as 'VALUE' +union all +select 'F_VRYF_Text_6oq' as 'Key' ,isnull(@SX02,'') as 'VALUE' +union all +select 'F_VRYF_Text_pzg' as 'Key' ,isnull(@SX03,'') as 'VALUE' +union all +select 'F_VRYF_Text_795' as 'Key' ,isnull(@SX04,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c' as 'Key' ,isnull(@SX05,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c_s58' as 'Key' ,isnull(@SX06,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c_9uj' as 'Key' ,isnull(@SX07,'') as 'VALUE' +union all +select 'F_VRYF_Remarks_43c_bgx' as 'Key' ,isnull(@SX08,'') as 'VALUE' +union all +select 'FSaleId' as 'Key' ,isnull(@FSaleId,'') as 'VALUE' +union all +select 'FSALEORGID' as 'Key' ,isnull(@FSALEORGID,'') as 'VALUE' +union all +select 'SJFP' as 'Key' ,isnull(@SJFP,'') as 'VALUE' +union all +select 'THDate' as 'Key' ,isnull(@THDate,'') as 'VALUE' +union all +select 'GPhone' as 'Key' ,isnull(@GPhone,'') as 'VALUE' +union all +select 'FNOTE' as 'Key' ,@FNOTE as 'VALUE' +union all +select 'YFContractNo' as 'Key' ,@YFitemName as 'VALUE' +union all +select 'YFDate' as 'Key' ,isnull(@YFDate,'') as 'VALUE' +union all +select 'YFDateYear' as 'Key' ,isnull(@YFDateYear,'') as 'VALUE' +union all +select 'YFDateMonth' as 'Key' ,isnull(@YFDateMonth,'') as 'VALUE' +union all +select 'YFDateDay' as 'Key' ,isnull(@YFDateDay,'') as 'VALUE' +union all +select 'SYFContractNo' as 'Key' ,@SYFitemName as 'VALUE' +union all +select 'SYFDate' as 'Key' ,isnull(@SYFDate,'') as 'VALUE' +union all +select 'SYFDateYear' as 'Key' ,isnull(@SYFDateYear,'') as 'VALUE' +union all +select 'SYFDateMonth' as 'Key' ,isnull(@SYFDateMonth,'') as 'VALUE' +union all +select 'SYFDateDay' as 'Key' ,isnull(@SYFDateDay,'') as 'VALUE' +union all +select 'Province' as 'Key' ,Isnull(@Province,'') as 'VALUE' +union all +select 'VPAYMENTMETHOD' as 'Key' ,Isnull(@VPAYMENTMETHOD,'') as 'VALUE' +union all +select 'Projectarea' as 'Key' ,Isnull(@Projectarea,'') as 'VALUE' +union all +select 'FMONTH' as 'Key' ,@FMONTH as 'VALUE' +union all +select 'FStartDate' as 'Key' ,isnull(@FStartDate,'') as 'VALUE' +union all +select 'FEndDate' as 'Key' ,isnull(@FEndDate,'') as 'VALUE' +union all +select 'FAddress' as 'Key' ,isnull(@FAddress,'') as 'VALUE' +union all +select 'FWarrantyPeriod' as 'Key' ,isnull(@FWarrantyPeriod,'') as 'VALUE' +union all +select 'HFPaymentMethod' as 'Key' ,@HFPaymentMethod as 'VALUE' +union all +select 'FDELIVERYCONDITIONS' as 'Key' ,@FDELIVERYCONDITIONS as 'VALUE' +union all +select 'CreatedName' as 'Key' ,@CreatedName as 'VALUE' +union all +select 'CreatedPhone' as 'Key',@CreatedPhone as 'VALUE' +union all +select 'FINFORMATION' as 'Key' ,Isnull(@FINFORMATION,'') as 'VALUE' +union all +select 'FMONTHYear' as 'Key' ,Isnull(@FMONTHYear,'') as 'VALUE' +union all +select 'FJHAddress' as 'Key' ,isnull(@FJHAddress,'') as 'VALUE' +union all +select 'FPeriod' as 'Key' ,isnull(@FPeriod,'') as 'VALUE' +union all +select 'FItemName' as 'Key' ,isnull(@FitemName,'') as 'VALUE' +UNION ALL +select 'FSettleMethod' as 'Key' ,isnull(@FSettleMethod,'') as 'VALUE' +UNION ALL +select 'FProjectDeadline' as 'Key' ,@FProjectDeadline as 'VALUE' +UNION ALL +select 'FDeliveryTime' as 'Key' ,@FDeliveryTime as 'VALUE' +UNION ALL +select 'FAProjectManager' as 'Key' ,@FAProjectManager as 'VALUE' +UNION ALL +select 'FAProjectPhone' as 'Key' ,@FAProjectPhone as 'VALUE' +UNION ALL +select 'FBProjectManager' as 'Key' ,@FBProjectManager as 'VALUE' +UNION ALL +select 'FBProjectPhone' as 'Key' ,@FBProjectPhone as 'VALUE' +UNION ALL +select 'FJHAddressFContractPhone' as 'Key' ,@FJHAddressFContractPhone as 'VALUE' +UNION ALL +select 'FItemData' as 'Key' ,@FItemData as 'VALUE' +UNION ALL +select 'FitemName' as 'Key' ,@FitemName as 'VALUE' +UNION ALL +select 'FFax' as 'Key' ,@FFax as 'VALUE' +UNION ALL +select 'FContractPhone' as 'Key' ,@FContractFPhone as 'VALUE' +UNION ALL +select 'FContract' as 'Key' ,@FContract as 'VALUE' +UNION ALL +select 'FCustAddress' as 'Key' ,@FCustAddress as 'VALUE' +UNION ALL +select 'FPaymentMethod' as 'Key' ,@FPaymentMethod as 'VALUE' +UNION ALL +select 'FProductionCycle2' as 'Key' ,@FProductionCycle2 as 'VALUE' +UNION ALL +select 'FProductionCycle' as 'Key' ,@FProductionCycle as 'VALUE' +UNION ALL +select 'FContractNo' as 'Key' ,@FContractNo as 'VALUE' +UNION ALL +select 'FCustName' as 'Key' ,@FCustName as 'VALUE' +UNION ALL +select 'FDate' as 'Key' ,@FDate as 'VALUE' +UNION ALL +select 'FDateYear' as 'Key' ,@FDateYear as 'VALUE' +UNION ALL +select 'FDateMonth' as 'Key' ,@FDateMonth as 'VALUE' +UNION ALL +select 'FDateDay' as 'Key' ,@FDateDay as 'VALUE' +UNION ALL +select 'FTaxAmountText' as 'Key' ,@FTaxAmountText as 'VALUE' +UNION ALL +select 'FTaxAmount' as 'Key' ,@FTaxAmount as 'VALUE' +UNION ALL +select 'FItem' as 'Key' ,@FItem as 'VALUE' +UNION ALL +select 'FAddressAndPhone' as '@FAddressAndPhone' ,@FCustName as 'VALUE' +UNION ALL +select 'FDeliveryDate' as 'Key' ,@FDeliveryDate as 'VALUE' +UNION ALL +select 'FlegalRepresentative' as 'Key' ,@FlegalRepresentative as 'VALUE' +UNION ALL +select 'FBank' as 'Key' ,@FBank as 'VALUE' +UNION ALL +select 'FBankAccount' as 'Key' ,@FBankAccount as 'VALUE' +UNION ALL +select 'FTax' as 'Key' ,@FTax as 'VALUE' +UNION ALL +select 'FPhone' as 'Key' ,@FPhone as 'VALUE' +UNION ALL +select 'FEmial' as 'Key' ,@FEMAIL as 'VALUE' +UNION ALL +select 'FEMAIL' as 'Key' ,@FEMAIL as 'VALUE' + + +SELECT fseq,B.fname,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A' + +SELECT rank()over(partition by a.fid ,a.F_Projecttype order by a.fseq desc) as 'fseq',B.fname,b.FSPECIFICATION,E.F_103,FLOOR(A.FQTY),C.FNAME, +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +,A.FNOTE,F_Projecttype as 'FType', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID ),2),'N2') AS 'FALLAMOUNT', +FORMAT(ROUND( SUM(D.FALLAMOUNT_LC)OVER(PARTITION BY A.FID,F_Projecttype) ,2), 'N2') AS 'FALLAMOUNT2' +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_MATERIAL E ON E.FMATERIALID = A.FMATERIALID +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A' +ORDER BY a.F_Projecttype ,a.fseq DESC + +Select ROW_NUMBER() OVER (ORDER BY B.FRETURNTYPE) AS ID,CASE WHEN B.FRETURNTYPE = 'SEND' THEN '换货' ELSE '退货' END as 'FRETURNTYPE' +,C.FSPECIFICATION,D.FNAME,FLOOR(B.FQTY),FORMAT(E.FTAXPRICE,'N2'),FORMAT(E.FALLAMOUNT_LC,'N2') From T_SAL_ORDER A JOIN T_SAL_ORDERENTRY B +on A.FID = B.FID INNER JOIN T_BD_MATERIAL_L C ON C.FMATERIALID = B.FMATERIALID AND C.FLOCALEID =2052 INNER JOIN T_BD_UNIT_L D ON D.FUNITID =B.FUNITID +AND D.FLOCALEID =2052 INNER JOIN T_SAL_ORDERENTRY_F E ON E.FENTRYID =B.FENTRYID Where --A.FID = @FID AND B.FMRPCLOSESTATUS = 'A' +(ISNULL(A.FCHANGEDATE,'') = '' AND A.FID = @FID) or (A.FID = @FID AND B.FMRPCLOSESTATUS = 'A') + +SELECT fseq,b.FSPECIFICATION,C.FNAME,FLOOR(A.FQTY), +FORMAT(ROUND( D.FTAXPRICE,2), 'N2'), FORMAT(D.FALLAMOUNT_LC, 'N2') +FROM T_SAL_ORDERENTRY A +INNER JOIN T_BD_MATERIAL_L B ON B.FMATERIALID = A.FMATERIALID AND B.FLOCALEID =2052 +INNER JOIN T_BD_UNIT_L C ON C.FUNITID =A.FUNITID AND C.FLOCALEID =2052 +INNER JOIN T_SAL_ORDERENTRY_F D ON D.FENTRYID =A.FENTRYID +WHERE A.FID =@FID AND A.FMRPCLOSESTATUS = 'A' + +--EXEC GetTempModelData @FID = 101521,@FType = 'HH' +--Select * From T_TempModelPath +--Update T_TempModelPath set FTempPath = 'D:\模板\SX系统模板.docx' Where FKeyId = 'SX' +--Update T_SAL_ORDER set FDocumentStatus = 'D' Where FBILLNO = 'PL-XSDD20250100011' +--Select * From V_BD_SALESMAN_L Where FNAME = '杜丽菊' \ No newline at end of file diff --git a/淇敼绱鏍搁攢閲戦.sql b/淇敼绱鏍搁攢閲戦.sql new file mode 100644 index 0000000..d88c781 --- /dev/null +++ b/淇敼绱鏍搁攢閲戦.sql @@ -0,0 +1,4 @@ +Update T_SAL_ORDER Set F_Amount = 0 +Update T_AR_RECEIVABLE Set F_Amount = 0 +Update T_AR_RECEIVEBILL Set F_Amount = 0 +Update T_SAL_ORDERPLAN Set F_MBBA_DECIMAL_UKY = 0 \ No newline at end of file diff --git a/寮绁ㄦ姤琛.sql b/寮绁ㄦ姤琛.sql new file mode 100644 index 0000000..3131498 --- /dev/null +++ b/寮绁ㄦ姤琛.sql @@ -0,0 +1,91 @@ +Select +A.FDate as '下单日期' +,A.F_PROJECTCODE as '工程项目编码' +,A.F_CONTRACTNUMBER as '合同号' +,G.FNAME as '项目名称' +,K.FNAME as '客户名称' +,BM.FNAME as '销售部门' +,X.FNAME as '销售员' +,Y.FNAME as '制单人' +,B.FBILLALLAMOUNT_LC as '订单金额' --订单金额 +,ISNULL(F.FBILLALLAMOUNT_LC,0) as '已发货金额' --已发货金额 +,ISNULL(T.FBILLALLAMOUNT_LC,0) as '退货金额' --退货金额 +,B.FBILLALLAMOUNT_LC-ISNULL(F.FBILLALLAMOUNT_LC,0) as '未发货金额' --未发货金额 +,ISNULL(C.FBILLALLAMOUNT_LC,0) as '销售出库成本' --销售出库成本 +,ISNULL(SS.FENDBALANCE,0) as '实施成本'--其他出库成本 +,ISNULL(P1.FAFTERTOTALTAX,0) as '专票金额'--已开票金额 +,ISNULL(P2.FAFTERTOTALTAX,0) as '普票金额'--普票金额 +,B.FBILLALLAMOUNT_LC - ISNULL(T.FBILLALLAMOUNT_LC,0) - ISNULL(P1.FAFTERTOTALTAX,0) - ISNULL(P2.FAFTERTOTALTAX,0) as '未开票金额' --未开票金额 +,ISNULL(A.F_AMOUNT,0)+ISNULL(S.FRECAMOUNT,0) as '回款金额' --回款金额 +From +T_SAL_ORDER A +JOIN +(Select FID,SUM(FBILLALLAMOUNT_LC)'FBILLALLAMOUNT_LC' +From T_SAL_ORDERFIN GROUP BY FID) B --财务信息 +on A.FID = B.FID +LEFT JOIN --工程项目 +(Select a1.FNUMBER,a2.FNAME +From T_BAS_PREBDONE a1 JOIN T_BAS_PREBDONE_L a2 +on a1.FID = a2.FID GROUP BY a1.FNUMBER,a2.FNAME) G +on A.F_PROJECTCODE = G.FNUMBER +LEFT JOIN +T_BD_CUSTOMER_L K --客户 +on A.FCUSTID = K.FCUSTID +LEFT JOIN +V_BD_SALESMAN_L X --销售员 +on X.fid = A.FSALERID +LEFT JOIN +T_SEC_USER Y --用户 +on Y.FUSERID = A.FCREATORID +LEFT JOIN +T_BD_DEPARTMENT_L BM --部门 +on A.FSALEDEPTID = BM.FDEPTID +LEFT JOIN +(Select a1.F_PAPERCONTRACT,SUM(a2.FBILLALLAMOUNT_LC)'FBILLALLAMOUNT_LC' +From T_SAL_DELIVERYNOTICE a1 JOIN T_SAL_DELIVERYNOTICEFIN +a2 on a1.FID = a2.FID Where a1.FDOCUMENTSTATUS = 'C' GROUP BY a1.F_PAPERCONTRACT) F +on F.F_PAPERCONTRACT = A.F_CONTRACTNUMBER +LEFT JOIN +(Select a1.F_PAPERCONTRACT,SUM(a2.FBILLALLAMOUNT_LC)'FBILLALLAMOUNT_LC' +From T_SAL_RETURNNOTICE a1 JOIN T_SAL_RETURNNOTICEFIN +a2 on a1.FID = a2.FID Where a1.FDOCUMENTSTATUS = 'C' GROUP BY a1.F_PAPERCONTRACT) T +on T.F_PAPERCONTRACT = A.F_CONTRACTNUMBER +LEFT JOIN +(Select a1.F_CONTRACTNUMBER,SUM(a3.FCOSTAMOUNT_LC)'FBILLALLAMOUNT_LC' +From T_SAL_OUTSTOCK a1 JOIN T_SAL_OUTSTOCKENTRY_F a3 on a1.FID = a3.FID + Where a1.FDOCUMENTSTATUS = 'C' GROUP BY a1.F_CONTRACTNUMBER) C +on C.F_CONTRACTNUMBER = A.F_CONTRACTNUMBER +LEFT JOIN +(SELECT F_PAPERNUMBER,SUM(FAFTERTOTALTAX)'FAFTERTOTALTAX' FROM T_IV_SALESIC +Where FDOCUMENTSTATUS = 'C' AND F_GeneralInvoice!='Y' GROUP BY F_PAPERNUMBER) P1 +on P1.F_PAPERNUMBER = A.F_CONTRACTNUMBER +LEFT JOIN +(SELECT F_PAPERNUMBER,SUM(FAFTERTOTALTAX)'FAFTERTOTALTAX' FROM T_IV_SALESIC +Where FDOCUMENTSTATUS = 'C' AND F_GeneralInvoice ='Y' GROUP BY F_PAPERNUMBER) P2 +on P2.F_PAPERNUMBER = A.F_CONTRACTNUMBER +LEFT JOIN +(Select a1.F_ZZHTH,SUM(a2.FAMOUNT)'FAMOUNT' From T_STK_MISDELIVERY a1 +JOIN T_STK_MISDELIVERYENTRY a2 on a1.FID = a2.FID +Where a1.FDOCUMENTSTATUS = 'C' GROUP BY a1.F_ZZHTH) QC +on QC.F_ZZHTH = A.F_CONTRACTNUMBER +LEFT JOIN +T_ORG_ORGANIZATIONS_L Z on Z.FORGID = A.FSALEORGID +LEFT JOIN +(Select F_CONTRACTNUMBER,SUM(FRECAMOUNT) as 'FRECAMOUNT' +From T_AR_RECEIVEBILL Where FDOCUMENTSTATUS = 'C' GROUP BY F_CONTRACTNUMBER) S --收款单 +on S.F_CONTRACTNUMBER = A.F_CONTRACTNUMBER +LEFT JOIN +(Select a2.FNUMBER,SUM(a1.FENDBALANCE) as 'FENDBALANCE' +From +VIEW_GL_BALANCE a1 +JOIn +(Select * From T_BAS_PREBDONE Where FDOCUMENTSTATUS = 'C') a2 +on a1.FF100005 = a2.FID GROUP BY a2.FNUMBER) SS +on SS.FNUMBER = LEFT(A.F_CONTRACTNUMBER, ISNULL(NULLIF(PATINDEX('%变更%', A.F_CONTRACTNUMBER), 0), LEN(A.F_CONTRACTNUMBER) + 1) - 1) +Where A.FDOCUMENTSTATUS = 'C' +AND ('#CurrentOrgUnitId#' = '' or Z.FNAME = '#CurrentOrgUnitId#') +AND ('#FKH#' = '' or K.FNAME like '%#FKH#%') +AND ('#FPaperContract#' = '' or A.F_CONTRACTNUMBER like '%#FPaperContract#%') +AND ('#FXM#' = '' or G.FNAME like '%#FXM#%') +AND ('#FStartDate#' = '' or A.FDATE >= '#FStartDate#') +AND ('#FEndDate#' = '' or A.FDATE <= '#FEndDate#') \ No newline at end of file diff --git a/鏇存柊鏍搁攢閲戦.sql b/鏇存柊鏍搁攢閲戦.sql new file mode 100644 index 0000000..88a51bf --- /dev/null +++ b/鏇存柊鏍搁攢閲戦.sql @@ -0,0 +1,65 @@ +--UpdateSalOrderAmount +--Select * From T_TempModelPath +--Insert into T_TempModelPath Values('SX-1','D:\模板\SX系统模板(含调试).docx'),('SX-2','D:\模板\SX系统模板(不含调试).docx') +--Update T_TempModelPath Set FTempPath = 'D:\模板\SX系统模板(不含调试).docx' Where FKeyId = 'SX-2'; +go +--sp_helptext UpdateSalOrderAmount +Alter proc UpdateSalOrderAmount +( + @fid nvarchar(1000) +) +as +begin +--修改销售订单累计核销金额 + UPDATE C SET F_Amount =isnull( d.核销金额,0) + FROM T_AutoWrireRecord A + INNER JOIN T_AutoWrireRecordEntry B ON A.FID = B.FID + INNER JOIN T_SAL_ORDER C ON C.FBILLNO = B.FBILLNO2 + LEFT JOIN + ( + SELECT FBILLNO2,SUM(CONVERT(decimal(18,2), FALLAMOUNT2)) AS '核销金额' FROM T_AutoWrireRecord A + INNER JOIN T_AutoWrireRecordEntry B ON A.FID = B.FID + WHERE A.FDOCUMENTSTATUS = 'C' + GROUP BY B.FBILLNO2 + ) d on d.FBILLNO2 =b.FBILLNO2 + WHERE a.FID =@FID ; +--修改应收单累计核销金额 + UPDATE C SET F_Amount =isnull( d.核销金额,0) + FROM T_AutoWrireRecord A + INNER JOIN T_AutoWrireRecordEntry B ON A.FID = B.FID + INNER JOIN T_AR_RECEIVABLE C ON C.FBILLNO = B.FBILLNO2 + LEFT JOIN + ( + SELECT FBILLNO2,SUM(CONVERT(decimal(18,2), FALLAMOUNT2)) AS '核销金额' FROM T_AutoWrireRecord A + INNER JOIN T_AutoWrireRecordEntry B ON A.FID = B.FID + WHERE A.FDOCUMENTSTATUS = 'C' + GROUP BY B.FBILLNO2 + ) d on d.FBILLNO2 =b.FBILLNO2 + WHERE a.FID =@FID ; + --修改收款单累计核销金额 + UPDATE C SET F_Amount =isnull( d.核销金额,0) + FROM T_AutoWrireRecord A + INNER JOIN T_AutoWrireRecordEntry2 B ON A.FID = B.FID + INNER JOIN T_AR_RECEIVEBILL C ON C.FBILLNO = B.FBILLNO3 + LEFT JOIN + ( + SELECT FBILLNO3,SUM(CONVERT(decimal(18,2), FALLAMOUNT3)) AS '核销金额' FROM T_AutoWrireRecord A + INNER JOIN T_AutoWrireRecordEntry2 B ON A.FID = B.FID + WHERE A.FDOCUMENTSTATUS = 'C' + GROUP BY B.FBILLNO3 + ) d on d.FBILLNO3 =b.FBILLNO3 + WHERE a.FID =@FID ; +end + + + +--SKD00000003 + SELECT FBILLNO3,SUM(CONVERT(decimal(18,2), FALLAMOUNT3)) AS '核销金额' FROM T_AutoWrireRecord A + INNER JOIN T_AutoWrireRecordEntry2 B ON A.FID = B.FID + WHERE A.FDOCUMENTSTATUS = 'C' + GROUP BY B.FBILLNO3 + + + go + Select * From T_SAL_ORDER Where FBILLNO = 'PL-XSDD20250200007' + Update T_SAL_ORDER Set FDOCUMENTSTATUS = 'D' Where FBILLNO = 'PL-XSDD20250200007' \ No newline at end of file diff --git a/閿鍞姤浠峰崟瀛樺偍杩囩▼.sql b/閿鍞姤浠峰崟瀛樺偍杩囩▼.sql new file mode 100644 index 0000000..fdb259b --- /dev/null +++ b/閿鍞姤浠峰崟瀛樺偍杩囩▼.sql @@ -0,0 +1,256 @@ +EXEC GetTempModelData2 '','' +go +Alter PROC [dbo].[GetTempModelData2] +( + @FID NVARCHAR(100), + @FType NVARCHAR(100) +) +AS +DECLARE @FitemName NVARCHAR(1000) --纸质合同号 +DECLARE @YFitemName NVARCHAR(1000) --原纸质合同号 +DECLARE @SJFP NVARCHAR(1000) --税金及发票 +DECLARE @GPhone NVARCHAR(1000) --固定电话 +DECLARE @THDate NVARCHAR(1000) --退货日期 +DECLARE @YFDate NVARCHAR(1000) --原日期 +DECLARE @YFDateYear NVARCHAR(1000) -- 原日期 年 +DECLARE @YFDateMonth NVARCHAR(1000) -- 原日期 月 +DECLARE @YFDateDay NVARCHAR(1000) -- 原日期 日 +DECLARE @SYFitemName NVARCHAR(1000) --S原纸质合同号 +DECLARE @SYFDate NVARCHAR(1000) --S原日期 +DECLARE @SYFDateYear NVARCHAR(1000) -- S原日期 年 +DECLARE @SYFDateMonth NVARCHAR(1000) -- S原日期 月 +DECLARE @SYFDateDay NVARCHAR(1000) -- S原日期 日 +DECLARE @FContractFPhone NVARCHAR(1000) --纸质合同号 +DECLARE @FContract NVARCHAR(1000) --纸质合同号 +DECLARE @FCustAddress NVARCHAR(1000) --纸质合同号 +DECLARE @FPaymentMethod NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle2 NVARCHAR(1000) --纸质合同号 +DECLARE @FProductionCycle NVARCHAR(1000) --纸质合同号 +DECLARE @FContractNo NVARCHAR(1000) --纸质合同号 +DECLARE @FCustName NVARCHAR(1000) --甲方名称 +DECLARE @FDate NVARCHAR(1000) -- 日期 +DECLARE @FDateYear NVARCHAR(1000) -- 日期 年 +DECLARE @FDateMonth NVARCHAR(1000) -- 日期 月 +DECLARE @FDateDay NVARCHAR(1000) -- 日期 日 +DECLARE @CreatedName NVARCHAR(1000) -- 创建人 +DECLARE @FTaxAmountText NVARCHAR(1000) +DECLARE @FTaxAmount NVARCHAR(1000) +DECLARE @FItem NVARCHAR(1000) +DECLARE @FAddressAndPhone NVARCHAR(1000) +DECLARE @FDeliveryDate NVARCHAR(1000) +DECLARE @FlegalRepresentative NVARCHAR(1000) +DECLARE @FBank NVARCHAR(1000) +DECLARE @FBankAccount NVARCHAR(1000) +DECLARE @FFax NVARCHAR(1000) +DECLARE @FPhone NVARCHAR(1000) +DECLARE @FEMAIL NVARCHAR(1000) +DECLARE @FTax NVARCHAR(1000) +DECLARE @FItemData NVARCHAR(1000) +DECLARE @FJHAddressFContractPhone NVARCHAR(1000) +DECLARE @FAProjectManager NVARCHAR(1000) +DECLARE @FAProjectPhone NVARCHAR(1000) +DECLARE @FBProjectManager NVARCHAR(1000) +DECLARE @FBProjectPhone NVARCHAR(1000) +DECLARE @FDeliveryTime NVARCHAR(1000) +DECLARE @FSHADDRESS NVARCHAR(1000) +DECLARE @FProjectDeadline NVARCHAR(1000) +DECLARE @FSettleMethod NVARCHAR(1000) +DECLARE @FProductionAddress NVARCHAR(1000) +DECLARE @FPeriod NVARCHAR(1000) +DECLARE @FJHAddress NVARCHAR(1000) +DECLARE @FWarrantyPeriod NVARCHAR(1000) +DECLARE @FAddress NVARCHAR(1000) +DECLARE @FINFORMATION NVARCHAR(1000) +DECLARE @FStartDate NVARCHAR(1000) +DECLARE @FEndDate NVARCHAR(1000) +DECLARE @FSaleId NVARCHAR(1000) +DECLARE @FMONTH NVARCHAR(1000) --质保月份 +DECLARE @FMONTHYear NVARCHAR(1000) --质保年份 +DECLARE @Projectarea NVARCHAR(1000) --项目所属领域 +DECLARE @Province NVARCHAR(1000) --项目所属省份 +DECLARE @VPAYMENTMETHOD NVARCHAR(1000)--结算方式 +DECLARE @CreatedPhone NVARCHAR(1000)--创建人电话 +DECLARE @FDELIVERYCONDITIONS NVARCHAR(1000)--发货条件 +DECLARE @HFPaymentMethod NVARCHAR(1000)--付款方式 F_PaymentMethod +DECLARE @FNOTE NVARCHAR(1000)--备注单据头 +DECLARE @FSALEORGID NVARCHAR(1000)--销售订单组织 + +Select top 1 +@FContractNo = A.F_CONTRACTNUMBER, +@FTaxAmountText = dbo.ConvertAmountToChineseWords(b.FBillAllAmount), +@FTaxAmount = FORMAT(b.FBillAllAmount, 'N2'), +@FDate = convert(nvarchar(10), A.FDATE ,23), +@FItem = isnull(D.FNAME,''), +@FCustName = C.FNAME, +@Province = O.F_Province, +@Projectarea = (CASE WHEN O.F_PROJECTFIELD = 1 THEN '建筑楼宇' +WHEN O.F_PROJECTFIELD = 2 THEN '医疗卫生' +WHEN O.F_PROJECTFIELD = 3 THEN '学校' +WHEN O.F_PROJECTFIELD = 4 THEN '文娱康乐' +WHEN O.F_PROJECTFIELD = 5 THEN '市政工程' +WHEN O.F_PROJECTFIELD = 6 THEN '能源' +WHEN O.F_PROJECTFIELD = 7 THEN '工业' +WHEN O.F_PROJECTFIELD = 8 THEN '交通运输' +END ), +@FJHAddress = F_Shippingaddress, +@CreatedName = P.FNAME, +@GPhone = P.F_GPhone, +@HFPaymentMethod = A.F_PaymentMethod+',' --付款方式参考# +,@FCustName = isnull(C.FNAME,'')--单位名称 +,@FCustAddress = e.FADDRESS --单位地址 +,@FlegalRepresentative = isnull(e.FLegalPerson,'')--法定代表人 +,@FPhone = e.FTEL --电话 +,@FFax = isnull(e.FFAX,'') --传真 +,@FBank = isnull(L.FINVOICEBANKNAME,'')--开户银行 +,@FBankAccount = isnull(L.FINVOICEBANKACCOUNT,'')--账号 +,@FTax = isnull(e.FTAXREGISTERCODE,'') --税号 +,@FContract = H.FNAME --联系人 +,@FContractFPhone = g.FTEL --联系电话 +From +T_SAL_QUOTATION A --报价单 +INNER JOIN T_SAL_QUOTATIONFIN B ON A.FID = B.FID --财务 +LEFT JOIN T_BD_CUSTOMER_L C ON C.FCUSTID =A.FCUSTID AND C.FLOCALEID =2052 --客户 +LEFT JOIN T_BD_CUSTOMER E ON E.FCUSTID =A.FCUSTID --客户 +LEFT JOIN T_BAS_PREBDONE_L D ON D.FID = A.F_PROJECTNAME AND D.FLocaleID =2052 --项目名称 +LEFT JOIN T_BAS_PREBDTHREE O on O.FID = A.F_BON --商机名称 +LEFT JOIN T_SEC_USER P on A.FCreatorId = P.FUSERID --用户 +LEFT JOIN T_BD_CUSTOMER_F L ON L.FCUSTID = E.FCUSTID --客户其他表 +LEFT JOIN T_BD_COMMONCONTACT g on g.FCOMPANY = e.FCUSTID and g.FISDEFAULTCONTACT =1 +LEFT JOIN T_BD_COMMONCONTACT_L H on H.FCONTACTID =G.FCONTACTID AND H.FLOCALEID =2052 +Where A.FID = @FID; + +select 'FSaleId' as 'Key' ,isnull(@FSaleId,'') as 'VALUE' +union all +select 'FSALEORGID' as 'Key' ,isnull(@FSALEORGID,'') as 'VALUE' +union all +select 'SJFP' as 'Key' ,isnull(@SJFP,'') as 'VALUE' +union all +select 'THDate' as 'Key' ,isnull(@THDate,'') as 'VALUE' +union all +select 'GPhone' as 'Key' ,isnull(@GPhone,'') as 'VALUE' +union all +select 'FNOTE' as 'Key' ,@FNOTE as 'VALUE' +union all +select 'YFContractNo' as 'Key' ,@YFitemName as 'VALUE' +union all +select 'YFDate' as 'Key' ,isnull(@YFDate,'') as 'VALUE' +union all +select 'YFDateYear' as 'Key' ,isnull(@YFDateYear,'') as 'VALUE' +union all +select 'YFDateMonth' as 'Key' ,isnull(@YFDateMonth,'') as 'VALUE' +union all +select 'YFDateDay' as 'Key' ,isnull(@YFDateDay,'') as 'VALUE' +union all +select 'SYFContractNo' as 'Key' ,@SYFitemName as 'VALUE' +union all +select 'SYFDate' as 'Key' ,isnull(@SYFDate,'') as 'VALUE' +union all +select 'SYFDateYear' as 'Key' ,isnull(@SYFDateYear,'') as 'VALUE' +union all +select 'SYFDateMonth' as 'Key' ,isnull(@SYFDateMonth,'') as 'VALUE' +union all +select 'SYFDateDay' as 'Key' ,isnull(@SYFDateDay,'') as 'VALUE' +union all +select 'Province' as 'Key' ,Isnull(@Province,'') as 'VALUE' +union all +select 'VPAYMENTMETHOD' as 'Key' ,Isnull(@VPAYMENTMETHOD,'') as 'VALUE' +union all +select 'Projectarea' as 'Key' ,Isnull(@Projectarea,'') as 'VALUE' +union all +select 'FMONTH' as 'Key' ,@FMONTH as 'VALUE' +union all +select 'FStartDate' as 'Key' ,isnull(@FStartDate,'') as 'VALUE' +union all +select 'FEndDate' as 'Key' ,isnull(@FEndDate,'') as 'VALUE' +union all +select 'FAddress' as 'Key' ,isnull(@FAddress,'') as 'VALUE' +union all +select 'FWarrantyPeriod' as 'Key' ,isnull(@FWarrantyPeriod,'') as 'VALUE' +union all +select 'HFPaymentMethod' as 'Key' ,@HFPaymentMethod as 'VALUE' +union all +select 'FDELIVERYCONDITIONS' as 'Key' ,@FDELIVERYCONDITIONS as 'VALUE' +union all +select 'CreatedName' as 'Key' ,@CreatedName as 'VALUE' +union all +select 'CreatedPhone' as 'Key',@CreatedPhone as 'VALUE' +union all +select 'FINFORMATION' as 'Key' ,Isnull(@FINFORMATION,'') as 'VALUE' +union all +select 'FMONTHYear' as 'Key' ,Isnull(@FMONTHYear,'') as 'VALUE' +union all +select 'FJHAddress' as 'Key' ,isnull(@FJHAddress,'') as 'VALUE' +union all +select 'FPeriod' as 'Key' ,isnull(@FPeriod,'') as 'VALUE' +union all +select 'FItemName' as 'Key' ,isnull(@FitemName,'') as 'VALUE' +UNION ALL +select 'FSettleMethod' as 'Key' ,isnull(@FSettleMethod,'') as 'VALUE' +UNION ALL +select 'FProjectDeadline' as 'Key' ,@FProjectDeadline as 'VALUE' +UNION ALL +select 'FDeliveryTime' as 'Key' ,@FDeliveryTime as 'VALUE' +UNION ALL +select 'FAProjectManager' as 'Key' ,@FAProjectManager as 'VALUE' +UNION ALL +select 'FAProjectPhone' as 'Key' ,@FAProjectPhone as 'VALUE' +UNION ALL +select 'FBProjectManager' as 'Key' ,@FBProjectManager as 'VALUE' +UNION ALL +select 'FBProjectPhone' as 'Key' ,@FBProjectPhone as 'VALUE' +UNION ALL +select 'FJHAddressFContractPhone' as 'Key' ,@FJHAddressFContractPhone as 'VALUE' +UNION ALL +select 'FItemData' as 'Key' ,@FItemData as 'VALUE' +UNION ALL +select 'FitemName' as 'Key' ,@FitemName as 'VALUE' +UNION ALL +select 'FFax' as 'Key' ,@FFax as 'VALUE' +UNION ALL +select 'FContractPhone' as 'Key' ,@FContractFPhone as 'VALUE' +UNION ALL +select 'FContract' as 'Key' ,@FContract as 'VALUE' +UNION ALL +select 'FCustAddress' as 'Key' ,@FCustAddress as 'VALUE' +UNION ALL +select 'FPaymentMethod' as 'Key' ,@FPaymentMethod as 'VALUE' +UNION ALL +select 'FProductionCycle2' as 'Key' ,@FProductionCycle2 as 'VALUE' +UNION ALL +select 'FProductionCycle' as 'Key' ,@FProductionCycle as 'VALUE' +UNION ALL +select 'FContractNo' as 'Key' ,@FContractNo as 'VALUE' +UNION ALL +select 'FCustName' as 'Key' ,@FCustName as 'VALUE' +UNION ALL +select 'FDate' as 'Key' ,@FDate as 'VALUE' +UNION ALL +select 'FDateYear' as 'Key' ,@FDateYear as 'VALUE' +UNION ALL +select 'FDateMonth' as 'Key' ,@FDateMonth as 'VALUE' +UNION ALL +select 'FDateDay' as 'Key' ,@FDateDay as 'VALUE' +UNION ALL +select 'FTaxAmountText' as 'Key' ,@FTaxAmountText as 'VALUE' +UNION ALL +select 'FTaxAmount' as 'Key' ,@FTaxAmount as 'VALUE' +UNION ALL +select 'FItem' as 'Key' ,@FItem as 'VALUE' +UNION ALL +select 'FAddressAndPhone' as '@FAddressAndPhone' ,@FCustName as 'VALUE' +UNION ALL +select 'FDeliveryDate' as 'Key' ,@FDeliveryDate as 'VALUE' +UNION ALL +select 'FlegalRepresentative' as 'Key' ,@FlegalRepresentative as 'VALUE' +UNION ALL +select 'FBank' as 'Key' ,@FBank as 'VALUE' +UNION ALL +select 'FBankAccount' as 'Key' ,@FBankAccount as 'VALUE' +UNION ALL +select 'FTax' as 'Key' ,@FTax as 'VALUE' +UNION ALL +select 'FPhone' as 'Key' ,@FPhone as 'VALUE' +UNION ALL +select 'FEmial' as 'Key' ,@FEMAIL as 'VALUE' +UNION ALL +select 'FEMAIL' as 'Key' ,@FEMAIL as 'VALUE' \ No newline at end of file