中华人民共和国最高人民法院
民 事 判 决 书
(2020)最高法知民终1804号
上诉人(原审原告、反诉被告):北京雅昌艺术印刷有限公司。住所地:北京市顺义区高丽营镇金马园达盛路3号。
法定代表人:万捷,该公司董事长。
委托诉讼代理人:柳华军,广东诚公律师事务所律师。
委托诉讼代理人:甘勇明,广东诚公律师事务所律师。
被上诉人(原审被告、反诉原告):广州赛意信息科技股份有限公司。住所地:广东省广州市天河区珠江东路12号16号楼1603-1605单元(仅限办公用途)。
法定代表人:张成康,该公司董事长。
委托诉讼代理人:李杨,上海市锦天城(北京)律师事务所律师。
委托诉讼代理人:刘毅,男,该公司员工。
上诉人北京雅昌艺术印刷有限公司(以下简称雅昌公司)因与被上诉人广州赛意信息科技股份有限公司(以下简称赛意公司)计算机软件开发合同纠纷一案,不服北京知识产权法院于2020年7月20日作出的(2017)京73民初1592号民事判决,向本院提起上诉。本院于2020年11月16日立案后,依法组成合议庭进行了审理。本案现已审理终结。
雅昌公司上诉请求:1.撤销原审判决;2.改判支持雅昌公司原审全部诉讼请求;3.改判驳回赛意公司原审全部反诉请求;4.一审、二审案件受理费均由赛意公司负担。事实与理由:(一)原审判决认定事实不清。1.赛意公司存在违约行为,既符合雅昌公司与赛意公司所签订《雅昌文化OracleSalesCloud项目开发实施合同书》(以下简称涉案合同)第八条第二项约定的解约情形,也符合《中华人民共和国合同法》(以下简称合同法)第九十四条第二项、第三项、第四项规定的解约情形,故雅昌公司有权依据约定或者根据法律规定解除合同。具体而言,项目一期、二期和整体验收时间分别约定为2016年7月15日、同年9月5日、同年9月12日,但赛意公司实际提交一期、二期验收的时间分别为2016年8月5日和同年10月27日,且项目整体验收始终未能完成。赛意公司迟延履行合同义务的行为已达90日以上,雅昌公司可以基于约定解除涉案合同。同时,针对雅昌公司提出的系统问题,赛意公司多次回复“无法解决”或“不需要解决”,表明其不再履行合同主要债务;雅昌公司也曾多次催告赛意公司完成项目验收,但赛意公司经催告后仍未在合理期限内完成;赛意公司始终未能交付项目成果,致使雅昌公司将项目软件应用于企业经营管理的合同目的不能实现。此外,赛意公司于2016年12月12日收到雅昌公司发出的解约函后,并未在三个月内起诉要求确认涉案合同效力,故涉案合同应于赛意公司收到解约函的2016年12月12日解除。2.涉案合同项下第二期、第三期、第四期项目费用的付款条件均未成就。涉案合同约定,上述三期项目费用的付款条件均为相应阶段的上线确认报告经双方签字或项目整体验收通过,雅昌公司在此后的10个工作日内支付。赛意公司未能如期将系统提交上线,所提交的上线报告也未得到雅昌公司的签字确认,项目整体更未通过验收。因此,相应阶段项目费用的付款条件均未成就。(二)原审判决适用法律不当。1.原审判决既未确认合同解除,也未判决继续履行,遗漏了雅昌公司关于确认合同解除的诉讼请求。2.赛意公司开发的软件存在22个需要整改的技术问题,已导致软件不能使用,开发成果也未能通过雅昌公司验收,原审判决未据此认定赛意公司构成根本违约是错误的。3.根据合同第八条第三项的约定,雅昌公司按比例向赛意公司支付服务费的条件是雅昌公司单方面违约。原审判决在认定两公司均有违约行为的情况下,判令雅昌公司按比例向赛意公司支付服务费,与合同约定不符,且无法律依据。4.原审判决在认定赛意公司逾期提交验收报告的行为构成违约的情况下,未按照合同约定要求赛意公司支付合同价款30%的违约金,仅要求其承担14天的违约金,缺乏法律依据。5.原审判决未支持雅昌公司关于人工费的诉讼请求,却要求雅昌公司承担赛意公司的开发人员费用,法律适用自相矛盾。
赛意公司答辩称:一审判决认定事实清楚,适用法律正确,请求驳回雅昌公司的上诉请求。1.原审判决不存在漏判。赛意公司原审反诉要求继续履行合同就是要求雅昌公司支付剩余项目费用,原审判决已就此主张作出了认定和判决。2.双方已确认赛意公司完成了第一期和第二期项目的开发和上线,项目整体验收也是由于雅昌公司原因而未能完成。3.雅昌公司虽然主张其在2016年12月就要求解除合同,但直至2017年10月仍在实际使用赛意公司开发的系统。4.雅昌公司同时主张的违约金和损失赔偿总额超过了涉案合同约定的索赔金额不得超过合同总价款30%的上限。
雅昌公司向原审法院提起本案诉讼,原审法院于2017年8月30日立案。雅昌公司主张:2016年4月8日,双方签订涉案合同,约定由赛意公司提供CRM(客户关系管理)解决方案。合同签订后,雅昌公司按照约定支付了相应款项。赛意公司并未按照合同约定完成服务、交付软件,给雅昌公司造成巨大损失,构成根本违约。雅昌公司根据合同约定及合同法第九十四条的规定,于2016年12月9日发出告知函,通知赛意公司解除涉案合同,并退还已支付的项目费用。赛意公司于2016年12月12日收到上述解约通知,涉案合同于当日解除。据此,请求原审法院判令:1.确认涉案合同于2016年12月12日解除。2.赛意公司退还雅昌公司已支付的项目费用237900元,并支付违约金475800元;3.赛意公司赔偿雅昌公司经济损失1056000元。
针对雅昌公司的起诉,赛意公司原审辩称:1.赛意公司已依约完成涉案合同义务。项目实施过程中,雅昌公司不断提出修改意见,包括超出合同约定范围的变更要求。2.根据雅昌公司要求上线的时间,涉案系统一期、二期工程全部完成,并正式上线,该系统已经被雅昌公司投入使用,未出现任何影响使用的问题。赛意公司分别于2016年8月5日、同年10月27日向雅昌公司提交了一期、二期验收报告,雅昌公司未提出任何疑义。此后,双方就整体验收产生争议。针对雅昌公司认为的项目存在的问题,赛意公司已经提供了解决方案,且部分问题并不属于合同涉及范围,雅昌公司以种种借口不签署整体验收报告,属于恶意拖延。3.雅昌公司单方违约,无约定解除或法定解除涉案合同的权利,返还费用及支付违约金的要求无事实和法律依据。4.雅昌公司要求赛意公司赔偿经济损失的主张既无证据支持又违反涉案合同约定的30%赔偿上限。
原审诉讼过程中,赛意公司提起反诉,请求判令:1.雅昌公司继续履行涉案合同项下的付款义务,即支付剩余项目费用1348100元、项目变更费432000元。
雅昌公司原审反诉辩称:1.涉案合同已依法解除,赛意公司关于继续履行合同的请求没有事实和法律依据,应予驳回。2.赛意公司违约,应承担违约责任。3.雅昌公司履行了合同义务,不存在违约行为。雅昌公司已经支付了涉案合同约定的第一期款项,后续款项因付款条件未成就而无需支付。
原审法院认定事实:
(一)涉案合同及其附件的约定情况
雅昌公司与赛意公司签订的涉案合同虽载明签约日期为2016年4月8日,但赛意公司在涉案合同落款处签章的日期为2016年4月22日。同时,涉案合同第1.1条约定《工作内容说明书》(以下简称SOW)作为合同附件一,“服务范围、规格内容”以SOW为准。SOW亦未载明其签订日期,但赛意公司在SOW落款处签章日期为2016年4月22日。
涉案合同约定:服务内容方面。赛意公司应雅昌公司之需求提供“OracleSalesCloud导入服务”,标准模块导入服务包含两部分,即系统模块“客户主数据管理”“活动管理”“销售线索”“商机管理”“销售预测”“移动终端运用”“销售分析”“社交关系应用”,以及SOW载明的客制化内容。
项目费用及支付条件方面。项目费用含税总价为1586000元,按实施顾问3000元/人天、技术顾问2500元/人天的“人天单价标准”估得。项目费用分五期支付:第一期为涉案合同生效后10个工作日内支付15%,即237900元;第二期为第一阶段上线确认报告通过双方签字后10个工作日内支付30%,即475800元;第三期为第二阶段上线确认报告通过双方签字后10个工作日内支付30%,即475800元;第四期为项目整体验收通过双方签字后10个工作日内支付15%,即237900元;第五期为2016年12月31日前支付10%,即158600元。每期上线验收条件与内容均载于SOW中,以雅昌公司审核并签署客户确认文档为验收标准。赛意公司完成各阶段任务并经雅昌公司书面验收通过后,可依约向雅昌公司请款;雅昌公司应于收到赛意公司合法发票或认可的请款凭证后,于10日内支付。
服务期限方面。工程阶段及每阶段的实施内容,以SOW为准。
服务验收的标志方面。赛意公司完成SOW所约定每特定阶段的工程后,应填写阶段性验收报告,以雅昌公司项目经理或授权代表签核并加盖雅昌公司印鉴作为通过验收的标志。收到赛意公司提交的阶段性验收报告10个工作日内,雅昌公司项目经理或授权代表应进行验收签核。若阶段项目的实施不符合SOW所规定的规格、内容、标准,雅昌公司应在验收期内提出书面异议,逾期提出的视为本阶段项目验收合格,赛意公司仍可依此验收报告请款。
合同效力及违约责任方面。因可完全归责于赛意公司之事由,赛意公司不能按时交付工作成果的,在收到雅昌公司书面催告通知后30日内仍未纠正,则雅昌公司可以终止涉案合同。若赛意公司交付的成果未通过验收,其应在15日内进行整改并重新提交给雅昌公司验收;经过整改仍未通过雅昌公司验收的,雅昌公司可单方解除合同,赛意公司除退还已收取的费用外,还应向雅昌公司支付违约金,违约金不足弥补雅昌公司损失时,赛意公司还需另行承担赔偿责任;但无论基于何种事由,双方于涉案合同之赔偿责任以涉案合同含税金额的30%为上限。
SOW确定的项目需求主要体现在客户主数据管理和销售过程管理两方面。SOW还确定了开发完成的系统应具备的主要功能模块和报表统计、分析的具体内容。在上述功能模块的具体解决方案和实施规划方面,SOW进一步规定第一阶段的工作任务涉及十个方面,即客户/联系人管理、商机管理、销售活动、销售目标和预测、产品/客户/联系人/产品/用户的数据导入、接口开发、组织架构/用户权限的基础数据管理、移动终端运用和报表开发(5个分析领域各实现1张报表);第二阶段的工作任务涉及十三个方面,即客户/联系人管理(互联网)、商机管理(互联网)、销售活动(互联网)、销售目标和预测(互联网)、产品和价格(互联网)、产品/客户/联系人/产品/用户的数据导入、商机转介绍、OSN企业社交、互联网合同管理、互联网开票管理、互联网汇款管理、接口开发和报表开发(5个分析领域各实现10张报表)。SOW还确定,项目一期于2016年6月10日上线,项目二期于同年8月12日上线,整体项目验收为同年9月12日。
(二)涉案合同履行情况
2016年5月17日,雅昌公司向赛意公司支付涉案合同第一期项目费用237900元。
2016年6月8日,雅昌公司樊海燕向赛意公司王永志、李晓红等发送主题为“雅昌CRM项目一期延迟上线通知”的邮件,称:“今天,雅昌CRM项目组就目前系统仍存在的问题和风险点向彭总和单总做了汇报,经项目组慎重考虑,我们认为目前状态不符合一期上线基准,决定推迟一期上线时间,彩印上线时间会在12日召开项目会议讨论决定,我们认为系统目前主要存在以下问题:数据权限控制不满足雅昌需求……无法在移动端提交报价申请,销售商机的进阶在移动端没有控制,与PC端商机的进阶要求不符……”对此,赛意公司王永志回复雅昌公司樊海燕,称:“对于雅昌延迟项目上线的决定,我们不希望发生,也只能接受;海燕邮件中提出的这些问题,项目组会积极跟进,我们会尽力协调资源、尽早解决,但也希望照顾到实施方的实际情况,如刚才和昊靖电话中的沟通,第二阶段(8月份)的上线时间节点不能变、如果6月12日的会议确定印刷业务的上线时间节点延迟到7月份或者更晚,雅昌将在6月份付第一期的上线款。”
2016年7月7日,项目一期上线。同年7月26日至7月28日,雅昌公司李昊靖就“雅昌CRM项目验收一期”事宜向赛意公司王永志、李晓红多次发送邮件,称:“附件中的一期系统验收计划已经提交雅昌高层,目前需要项目组务必依照此计划完成一期的项目验收工作。如下几项下周需要完成的工作,请在明天中午前完成一版验收方案发给我和海燕确认,任何问题随时沟通”“如下的验收文档何时能提供?”“三个表分开分别做成验收文档的形式,另,遗留问题只有这几项吗?系统bug有没有待解决的?”2016年7月28日,赛意公司李晓红向雅昌公司李昊靖回复称:“能否有一个模板可参考一下,我按照你的模板来做会不会比较好一点。”2016年8月5日,赛意公司王永志向雅昌公司李昊靖发送一期项目验收报告。
2016年8月10日,雅昌公司李昊靖向赛意公司樊莉、王乐发送主题为“互联网CRM系统上线培训通知-FromAug12toAug23”的邮件,称:“互联网CRM系统将于8月12日起陆续上线使用,并于8月23日正式全面上线,为使所有互联网业务人员了解并掌握新CRM系统功能及使用方法,项目组分别组织了六场上线培训......”同日,雅昌公司李昊靖回复赛意公司王永志等人,称:“如下是二期上线的培训安排,已发通知,深圳安排如附件,请做好现场支持工作......”同年8月12日,雅昌公司李昊靖再次回复赛意公司王永志等人,称:“雅昌系统上线时间做如下调整,请知悉......后附表格显示了七个场次的培训日期、培训时间及地区等信息”。2016年9月22日,项目二期上线。同年10月27日,雅昌公司收到赛意公司发送的二期验收报告。
此外,2016年10月19日,赛意公司李晓红向雅昌公司李昊靖、樊海燕等发送主题为“雅昌CRM系统变更工期-增加报价及费用报销”的邮件,称:“雅昌CRM系统变更工期-增加报价及费用报销,如下列表及附件,请查阅。处理此项变更项目组需向公司申请资源,请商务上协助跟进及确认需求变更”;该邮件附有“雅昌CRM系统需求变更人天”的表格。同日,雅昌公司李昊靖就上述邮件回复称:“目前可以确认的新增变更项为:费用、历史合同导入、线索(但人天需要再沟通一下),其它的变更我们需要详细沟通;关于费用的开发希望尽快沟通工作范围、人天成本后开始相关工作,你们这边组织一下吧。”
2016年10月27日、28日,雅昌公司与赛意公司曾签订《雅昌OracleSalesCloud项目备忘录》;同年11月1日,双方又签订《雅昌OracleSalesCloud项目验收备忘录》(以下简称验收备忘录)。验收备忘录记载:雅昌OracleSalesCloud项目自2016年3月22日启动以来,由赛意、雅昌和甲骨文联合项目组已经初步完成项目一期和二期的交付内容,并分别于7月7日和9月22日完成了上线和培训工作。随着系统使用推广,根据之前项目遗留问题和业务部门使用体验反馈总结了影响较大的22项改进意见。各方就项目验收前亟需解决的重点问题进行了沟通和梳理,分别于10月27日和28日就22项改进意见的实现方案和产品优化进行讨论和沟通,为了优化业务用户的使用体验而进行一系列的改造。此份备忘录主要就后续项目的验收工作和交接工作提出详细计划,双方约定以此备忘录中的项目计划为最新的项目工作指导标准,项目组将根据此份备忘中约定的工作计划进行问题处理跟踪和反馈。双方将按照此计划共同完成雅昌CRM项目及项目验收工作,验收标准为雅昌业务部门及项目负责人签字确认所有问题得到有效解决或已提供合理且满足雅昌使用要求的可行方案后方可验收项目并支付相应项目款项。后续项目的整体验收工作也将根据此份计划进行开展和落实。就后续的问题跟踪和项目验收工作各方约定如下:1.以下验收前亟需解决的系统问题,赛意公司、甲骨文将在约定时间处理完成,在通过用户测试和验证后,将结果及时反馈给雅昌相关问题接口人,雅昌项目组提供必要支持和配合。2.雅昌项目组在确认问题解决完毕后,将按照验收工作计划完成项目的整体验收工作,项目完成以在项目验收报告上签字为准。赛意公司依据签字后的验收报告开具相对应的项目进度款发票,雅昌公司在收到发票的10个工作日内通过汇款方式支付赛意项目第二期到第四期实施费用。3.赛意将提供必要的支持,协助雅昌项目运维人员进行项目文档和系统运维工作交接。
2016年12月2日,赛意公司李晓红向雅昌公司李昊靖等发送主题为“雅昌验收问题清单_1202”的邮件,该邮件以“雅昌验收问题清单_1202.xlsx”为附件。附件列明有“类别”“问题描述”“项目阶段”“业务影响”“状态”“负责人”“计划开始时间”“计划完成时间”“计划执行资源”“实际完成时间”等栏目,逐一标注了雅昌公司所提出22个问题的进展情况,其中第2、3、12、17、18、19项的状态为“已完成”,第1、4、20项的状态为“验证中”,第5、6、7、8、9、10、11、13、14、15、16、22项状态为“进行中”,第21项的状态未有标注。
2016年12月9日,雅昌公司向赛意公司发函要求解除涉案合同,载明:现因软件在开发过程中存在较多问题(包括但限制于系统运行速度慢、无待办提醒、无客户批量处理功能、报表逻辑复杂、数据不准确等),致使涉案合同约定于2016年6月10日第一阶段上线时间(详见附件“项目一期延迟上线通知”)直到2016年7月7日才试运行上线。但第一阶段开发成果试运行后,最终因软件问题未得到赛意公司有效解决,也没有按照雅昌的要求提供必要的验收文档,导致软件第一阶段及此后软件任何阶段均未能通过雅昌公司验收并且软件至今仍未上线,严重影响了雅昌公司工作进度。自本函发出之日起,解除与赛意公司涉案合同。赛意公司于2016年12月20日回函称:双方于2016年4月签订涉案合同后,赛意公司积极履行合同,在合同约定的实施交付范围内已经完成合同约定的一期(58项功能)、二期(57项功能)工作内容,并分别于2016年7月7日和9月23日正式上线,目前,系统已经在业务部门投入使用。2016年12月14日,系统管理后台报表已反映系统在正常使用中,激活用户人数289人,近一个月持续有业务和交易数据的创建和更新。该项目验收过程中,雅昌公司对于系统提出了22项待解决问题,经过赛意公司和甲骨文团队评估后,其中8项问题已与雅昌公司确认解决完毕,3项尚待雅昌公司确认赛意公司提出的解决方案。至于其中的1项问题需要购买产品高级版本功能才能解决,另外10项问题,则是因为雅昌公司购买的软件产品不支持相关功能。由于11项问题不属于上述合同约定的服务范围,不属于赛意公司交付成果不能通过验收,构成违约情形,因此,雅昌公司无权单方解除涉案合同。赛意公司及甲骨文团队在2016年11月22日就要求雅昌公司安排验收事宜,对业务影响度作进一步沟通和梳理工作,并对相关问题进行协商,但未得到雅昌公司的响应和安排……综上所述,赛意公司严格履行上述合同,并未有违约行为。雅昌公司单方解除涉案合同将构成违约。希望雅昌公司慎重考虑,尽快确认赛意公司的解决方案,并根据合同约定,于2016年12月31日前完成对项目验收和付款工作,支付剩余实施款1348100元,项目变更款432000元及2016年度软件租金余额222300元。雅昌公司于2017年1月10日回复赛意公司称:对于赛意公司所称的费用及款项均不予认可,并邀请赛意公司领导、法务等人员尽快与雅昌公司就解除涉案合同及善后事宜进行协商。
原审法院认为:雅昌公司、赛意公司均认可涉案合同的真实性,认可双方曾签订涉案合同。虽然涉案合同明确载明签约日期为2016年4月8日,但赛意公司在合同落款处签署的日期为2016年4月22日,且涉案合同第十一条约定合同自签订日起生效,故可认定涉案合同于2016年4月22日签订并生效。SOW作为涉案合同的附件,亦未明确其签订日期,落款处仅赛意公司签署有日期2016年4月22日,故附件一的签订及生效日期亦为2016年4月22日。
关于赛意公司就项目一期上线是否存在延迟的问题。根据查明的事实可知,雅昌公司于2016年6月8日向赛意公司发送电子邮件,要求延迟上线,赛意公司表示“只能接受”。系统一期上线测试后,还有一个问题处理过程,即使系统存在问题,双方完全可以在问题处理过程中协商解决,雅昌公司无需要求赛意公司延迟上线。故一期上线延迟系雅昌公司指示赛意公司所为。
2016年7月26日前,雅昌公司已收到一期系统验收计划,赛意公司后又于2016年8月5日向雅昌公司发送了一期验收报告。根据涉案合同第五条第1款、第2款的约定,即使一期上线系统存在问题,雅昌公司也应在10个工作日内,即2016年8月16日前向赛意公司提出书面异议。雅昌公司并未举证证明其在2016年8月16日前曾向赛意公司提出书面异议。雅昌公司就项目一期所存在问题向赛意公司发出电子邮件的时间为2016年7月15日,早于其2016年8月5日收到一期验收报告的时间,因此该电子邮件不能证明雅昌公司收到一期验收报告后提出过异议;雅昌公司2016年8月10日、8月15日所发出电子邮件的内容也无法体现出对一期验收报告的异议。因此,现有证据显示在赛意公司提交一期验收报告后,雅昌公司并未进行验收。从常理来看,如果赛意公司开发的一期系统确实不符合涉案合同的约定,雅昌公司组织验收只能更加彰显一期系统的缺陷,有利于雅昌公司。在这种情况下雅昌公司不组织验收,与常理不符。鉴于雅昌公司未按约定进行验收,根据涉案合同关于“逾期提出的视为本阶段项目验收合格”的约定,应视为一期项目验收合格。此外,在案证据显示项目二期于2016年9月22日完成了上线和培训工作。据此亦可推定一期通过验收,否则二期不可能在一期基础上完成上线和培训工作。雅昌公司解释“项目一期没有完成还进行项目二期”的原因系“为了双方合作能够继续进行下去”显然不合常理,难以令人信服。综上,雅昌公司应向赛意公司支付第二期项目费用,即第一阶段(项目一期)上线款项475800元。
关于赛意公司就项目二期上线是否存在延迟的问题。根据已查明事实可知,雅昌公司分别于2016年8月10日、同年8月12日向赛意公司发送的电子邮件均涉及二期上线和培训问题,具体内容涉及培训场次的增加,但并未提出推迟上线时间的要求。故赛意公司关于二期延迟上线系应雅昌公司要求的主张缺乏事实依据,不应予以支持。此外,赛意公司虽然在电子邮件中向雅昌公司提交了变更项目确认表格,但并无证据显示系统需求变更已完成,雅昌公司的回复邮件也表明双方就需求变更尚处于沟通中,尚未达成一致,雅昌公司还明确要求必须在达成一致后再开始相关工作。结合涉案合同第二条第3.4款、第十一条第2款、SOW第五条第5.5款关于变更约定的特定流程来看,赛意公司并未提交证据证明双方经协商一致签订有新的补充协议或完成了变更流程,在此情况下,任何变更皆不发生效力。故对赛意公司关于雅昌公司提出新需求导致二期延期上线的主张亦不予支持。如前所述,一期延迟上线系雅昌公司要求所致,故二期上线时限理应顺延。2016年6月10日至7月7日延期了27天;相应地,二期上线时限亦应延期至2016年9月8日。二期实际上线为2016年9月22日,较应当上线的2016年9月8日延迟14天,故赛意公司存在违约行为,应当承担相应法律责任。
赛意公司于2016年10月27日向雅昌公司发送了二期验收报告。如二期上线的系统存在问题,雅昌公司依约应在10个工作日内,即2016年11月11日前向赛意公司提出书面异议。实际情况是:雅昌公司与赛意公司于2016年11月1日形成了验收备忘录,对项目相关问题进行研讨,针对系统存在问题提出了22项意见,其中第5项涉及项目二期。该验收备忘录中的内容可视为雅昌公司针对二期验收报告提出了异议,但涉及项目二期的问题仅有一项,故应视为赛意公司完成了二期项目的绝大部分工作内容。因此,雅昌公司应向赛意公司支付第三期项目费用的绝大部分金额,因在项目二期验收过程中确实发现存在问题,故应当酌情予以扣减。
关于第四期项目费用是否应当支付的问题。涉案合同还约定,项目整体验收通过双方签字后10个工作日内雅昌公司向赛意公司支付合同总金额的15%,即237900元。涉案合同未约定项目整体验收的内容,SOW中的时程表显示在“项目一期”“项目二期”阶段后还包含“运维优化”阶段,“一期上线”“二期上线”后还有“项目验收”过程。从软件开发的一般过程来看,系统上线后存在一些瑕疵是正常的,一般都会留有一段时间来针对软件实际使用过程中存在的问题进行修改和完善。SOW时程表中设置了“运维优化”阶段及最终的“项目验收”过程亦与上述软件开发过程的通常做法相符合。因此,涉案合同中的“项目整体验收”应理解为在项目一期、二期均已上线后,针对软件在实际使用过程中存在的问题进一步完善和解决后的验收。雅昌公司与赛意公司于2016年11月1日形成的验收备忘录载明:“由赛意、雅昌和甲骨文联合项目组已经初步完成项目一期和二期的交付内容,并分别于7月7日和9月22日完成了上线和培训工作。随着系统使用推广,根据之前项目遗留问题和业务部门使用体验反馈总结了影响较大的22项改进意见”,说明该备忘录主要针对项目最终验收的情况。针对上述22项改进意见,赛意公司于2016年12月2日进行了回应,显示第2、3、12、17、18、19项状态为“已完成”,雅昌公司未提供相反证据,且明确表示并没有去核实是否完成,故应推定上述第2、3、12、17、18、19项问题已改进完成。第1、4、20项显示状态为“验证中”,第5、6、7、8、9、10、11、13、14、15、16、22项状态为“进行中”,第21项的状态未有标注,赛意公司亦未提供证据证明上述问题最终完成,故应推定上述第1、4、5、6、7、8、9、10、11、13、14、15、16、20、21、22项问题未最终完成。综上,整体验收过程中发现的部分问题赛意公司尚未解决,但雅昌公司在原审庭审中明确表示后续并没有再去核实赛意公司是否完成了问题改进,并未针对双方确定的验收备忘录积极推进项目验收,故双方在整体验收阶段均存在过错。雅昌公司应向赛意公司支付第四期项目费用的部分金额,因仍有部分问题未最终解决,故应当酌情予以扣减。
鉴于整体验收过程中发现的部分问题尚未得到解决,赛意公司要求雅昌公司支付第五期项目费用的主张,不应予以支持。
综上所述,赛意公司已经履行了涉案合同约定的大部分义务。虽然赛意公司交付二期上线的时间晚于涉案合同约定的日期,但此情况仅说明赛意公司存在未能按合同约定的时间完成二期上线的开发工作,赛意公司应按合同约定支付违约金,第三期项目费用亦可据此予以扣减;虽然整体验收过程中发现部分问题尚未解决,但此情况仅说明软件系统最终仍有一些使用中的问题未能解决,第四期项目费用可据此予以扣减,第五期项目费用无需支付。但是,上述情况并不导致合同目的无法实现。从雅昌公司主张其进行催告的证据来看,部分证据系赛意公司发送给雅昌公司的邮件,不能体现雅昌公司的行为。其余证据仅显示双方在软件开发过程中的沟通情况,没有催告的意思表示,不能证明雅昌公司进行过催告。此外,在案证据亦未显示赛意公司明确表示或者以自己的行为表明不履行主要债务。故雅昌公司主张的涉案合同约定或法定解除条件均不成就,对雅昌公司关于解除涉案合同、要求赛意公司退还已支付项目费用237900元的诉讼请求,不予支持。雅昌公司要求赛意公司支付的违约金数额酌情予以调整。赛意公司要求雅昌公司支付剩余项目费用的主张,予以部分支持。至于雅昌公司要求赛意公司赔偿的项目组人员工资损失1056000元,因雅昌公司作为委托方、安排人员参与配合开发工作,属于雅昌公司员工的工作范围,故雅昌公司要求赛意公司支付相关人员工资的主张缺乏事实及法律依据,不应予以支持。此外,赛意公司要求雅昌公司支付的变更项目费432000元,因赛意公司关于雅昌公司增加新要求的主张缺乏相应证据支持,故不应予以支持。
原审法院判决:一、雅昌公司向赛意公司支付第二期合同款475800元、第三期合同款428220元、第四期合同款71370元,共计975390元;二、赛意公司向雅昌公司支付违约金222040元;三、驳回雅昌公司的其他诉讼请求;四、驳回赛意公司的其他反诉请求。本诉案件受理费10364元,由雅昌公司负担7364元,由赛意公司负担3000元。反诉案件受理费10411元,由赛意公司负担6411元,由雅昌公司负担4000元。
二审期间,雅昌公司、赛意公司均未提交新的证据材料。原审查明的事实基本属实,本院予以确认。
本院另查明:二审过程中,雅昌公司及赛意公司就双方签约的背景情况陈述为:雅昌公司有意搭建一个系统来管理客户及合同(以下简称CRM系统),以实现对客户销售线索、客户数据的管理和订单的下达。为此,雅昌公司就该客户管理系统选定使用美国“甲骨文公司”的“Oracle销售云软件”。赛意公司系“甲骨文公司”的“Oracle销售云软件”在中国大陆地区的代理商,经“甲骨文公司”推荐,由赛意公司负责执行使用“Oracle销售云软件”为雅昌公司搭建CRM系统的项目,即赛意公司在“Oracle销售云软件”的基础上根据雅昌公司具体需求进行定制开发。
赛意公司在“Oracle销售云软件”基础上为雅昌公司定制开发CRM系统的目标体现在四个方面:一是客户信息管理方面,应做到“完善客户档案收集和资料完整性,关注客户生命周期管理,建立企业客户主数据管理平台;销售人员在CRM可以得知客户与所有项目状况,不需要再问相关部门的人员,或上其他系统去了解”。二是销售机会管理方面,应做到建立“全国统一销售平台,使总部与主管知悉各个项目状况,关注销售机会关键信息,记录销售合作方和联系方式,并可以及时提供指导与建议”、建立“销售区域和客户类型规范销售报备制度,解决销售撞单问题”“跟进销售目标制定和销售预测,提高销售预测的精准度,以便供应部门准确备料及跟进生产部门的订单执行”。三是销售过程管理,应做到“分阶段管控销售过程,派发工作任务和资源需求给相关人员跟进,支持外勤使用移动端”“管理销售过程,不用担心人员异动造成销售数据流失,让后续销售更容易接手”。四是销售分析和报表,应做到“通过报表和分析工具支持销售团队和销售过程管理,提供基于客户、产品、销售和销售区域的销售额的统计分析”。
雅昌公司委托赛意公司开发CRM系统的需求体现为客户主数据管理和销售过程管理两个方面。其中,销售过程管理又具体包括商机管理、报价管理、销售预测、销售活动、合同管理、开票管理、回款管理。
赛意公司为雅昌公司开发的CRM系统应具备以下主要功能:产品管理方面,能够通过数据批量导入的方式对CRM产品数据进行更新;用户和权限管理方面,建立销售人员基本信息,基于销售角色设定系统和数据访问权限,创建系统用户和访问口令;销售移动端方面,支持多种客户端在线和离线访问系统,不需要购买任何后台硬件设备;社交平台方面,可以定义共有或私有话题,能实现基本消息层面的交流与分享、上传/下载文档,在线打开文档并进行浏览、注释等。
以上事实有SOW在案佐证。
针对赛意公司开发完成并已交付的项目一期、二期系统,雅昌公司经测试后提出的问题最终体现为22个,其中21个问题针对项目一期、1个问题针对项目二期。赛意公司于2016年12月2日发函给雅昌公司,就上述22个问题的表现形式、形成原因、解决方案、解决进展作出了答复。其中,(1)雅昌公司提出的第3个问题“报表信息显示不完整”以及第19个问题“就客户、联系人和商机进行模糊查询”,均已解决;(2)雅昌公司提出的第20个问题“个人客户也可以关联到联系人”以及第21个问题“单个客户也能进行共享管理,包括对不同的共享团队设置不同权限以及限定共享信息的范围”,属于SOW“客户信息管理”项下的子功能需求,但截至2016年12月2日仍未得以实现;(3)雅昌公司提出的第4个问题“对不同用户的不同功能界面进行批量配置”、第6个问题“对商机、线索等信息的调整、更新可以批量进行”、第7个问题“通过多个关键字组合的方式查找信息”、第15个问题“手机端仅能在商机阶段录入产品信息,无法在线索阶段进行录入”,虽然SOW约定有相关功能,但并未提出“批量处理”“关键字组合查找”以及“线索阶段进行手机端产品信息录入”等具体要求;(4)雅昌公司提出的第1个问题“对待办事项和审批流程节点进行提醒”、第2个问题“将客户保存的信息同步到生产执行系统(MES)中”,均属于SOW中约定的功能,且赛意公司开发的系统已经实现,只不过雅昌公司不满意于“通过电子邮件提醒”和“Trigger或写入中间服务器、再从中间服务器获取”等具体实现方式,认为用户体验度不高;(5)雅昌公司提出的第5个问题“报表结果不准确”和第13个问题“错误提示为非中文显示”,在SOW中确有相关功能约定;(6)雅昌公司提出的其他问题,即“只能通过手工操作合并客户数据”“分页显示的列表方式不能自定义设定”“手机端不能就审批流程进行提醒”“客户查找数据时不能在手机端自定义查找条件”“从报表导出数据缺乏操作记录”“分页展示的列表不能显示数量、每次数据处理操作后均需刷新和重新加载”“电脑端的社区论坛不能显示未读信息数量”“只能在电脑端搜索联系人信息,手机端无法查询”“保存操作完成后,系统未作出相应提示”,均为SOW中未有相关约定的功能要求。以上事实有赛意公司于2016年12月2日通过电子邮件发送给雅昌公司的“雅昌验收问题清单_1202”在案佐证。
本院认为,雅昌公司与赛意公司签订的涉案合同于《中华人民共和国民法典》(以下简称民法典)施行前订立,双方之间的合同争议也发生在民法典施行前。根据《最高人民法院关于适用时间效力的若干规定》第二十条之规定,本案应适用合同法及相关司法解释的规定;在合同法及相关司法解释无规定而民法典有规定的情况下,可适用民法典的规定。
根据雅昌公司的上诉主张和事实理由,本案二审争议的焦点问题是:(一)赛意公司是否存在迟延交付项目一期、项目二期系统的违约行为;(二)涉案合同是否应当解除;(三)雅昌公司是否应支付第二阶段、第三阶段、第四阶段项目费用;(四)赛意公司已收取的项目费用237900元是否应当退还;(五)赛意公司是否应赔偿雅昌公司经济损失1056000元并支付违约金475800元。
(一)关于赛意公司是否存在迟延交付项目一期、项目二期系统违约行为的问题
根据涉案合同及其附件SOW的约定,项目一期系统、二期系统的交付时间应以其各自的上线时间为准,不以验收报告的提交时间或签字时间为准。涉案合同仅将验收报告的签收约定为雅昌公司向赛意公司支付对应开发阶段项目费用的依据,而非赛意公司履行系统交付义务的标志。
从赛意公司及雅昌公司员工之间往来电子邮件的内容可以看出,系统开发过程为:赛意公司根据雅昌公司的需求完成软件开发后提交给雅昌公司上线——雅昌公司测试后提出问题——赛意公司针对问题进行整改——雅昌公司使用已收到的CRM系统组织上线培训、在上线培训中继续发现问题或通过使用发现体验度提升的新需求——赛意公司继续针对新问题、新需求进行整改或完善。结合CRM系统的上述开发过程,以及赛意公司及雅昌公司在验收备忘录中关于“赛意、雅昌和甲骨文联合项目组已经初步完成项目一期和二期的交付内容”“分别于7月7日和9月22日完成了上线和培训工作”的共同确认,足以认定赛意公司已完成了项目一期、二期的开发工作,具体完成时间以双方共同确认的2016年7月7日和2016年9月22日为准,确实晚于涉案合同附件SOW所约定的2016年6月10日和同年8月12日。
然而,SOW约定的项目一期上线期限届满前,雅昌公司于2016年6月8日向赛意公司发函指示项目一期延期上线。虽然雅昌公司就其上述延期指示解释为已交付系统在“数据权限控制、电脑端的商机进阶要求”方面未达到雅昌公司需求,“报价申请、销售商机的进阶”无法在移动端实现控制,但雅昌公司就项目一期系统所指出的上述问题并不影响系统的基本运行和整体上线使用。赛意公司也立即回函表达了继续跟进解决问题、完善功能,但坚持如期上线的意愿。项目一期系统最终因雅昌公司的指示而推迟至2016年7月7日上线,该推迟上线情况不能归因于赛意公司,不构成赛意公司迟延履行合同义务的违约行为。
就项目二期上线时间而言。从SOW就项目一期、二期分别约定的开发内容来看,项目二期是在一期基础上的进一步细化和升级,雅昌公司也认为“一期是开发CRM系统,二期是将CRM系统与MES系统集成,没有一期,二期也无从集成”。赛意公司在电子邮件中曾提及的“项目二期上线节点不变”,仅系其出于如期收取相应开发阶段项目费用的考虑而提出的请求,未有证据证明赛意公司的这一请求已取得雅昌公司的同意。因此,在项目一期实际上线时间较约定时间顺延27天的情况下,原审法院根据CRM整体系统不同开发阶段之间的内在逻辑和客观情况,认定项目二期的上线时间也相应地从原定2016年8月12日顺延27天至2016年9月8日,并无不妥。赛意公司实际提交项目二期上线的时间为2016年9月22日,较顺延后的2016年9月8日又迟延了14天,故原审判决关于赛意公司迟延履行交付项目二期系统的行为构成违约,且具体迟延天数为14天的认定具有事实依据。雅昌公司关于赛意公司迟延交付项目一期、二期系统共达90天以上的上诉主张与事实不符,不能成立。
(二)关于涉案合同是否应当解除的问题
需要明确的是,赛意公司所提交的涉案合同及其附件SOW的签章处未标注任何落款时间,雅昌公司提交的涉案合同及SOW却在赛意公司落款位置标注了“2016年4月22日”字样。即使实际签章时间有别于合同载明的签订日期,也仅为签章手续流程所致,在签约双方当事人均无异议的情况下,签约时间应以合同载明的日期为准,即2016年4月8日。原审判决认定涉案合同及SOW签订于2016年4月22日,与雅昌公司及赛意公司的约定不符,本院予以纠正。
雅昌公司认为其解除合同的要求具备涉案合同约定的解约权行使条件,也符合合同法第九十四条第二项、第三项、第四项规定的解约情形。
雅昌公司主张的约定解约事由方面。如前所述,赛意公司交付一期系统的行为不构成迟延履行,交付二期系统的行为虽然存在迟延履行情况,但较约定期限仅迟延14天。虽然雅昌公司对赛意公司交付的一期、二期系统共提出了22个问题,要求修改完善,但不能因为软件存在待修改问题就认为赛意公司尚未履行交付义务。同时,针对雅昌公司提出的上述22个问题,赛意公司已于2016年12月2日发函逐一说明了各个问题的产生原因和解决办法。除此以外,因报表结果的正确性依赖于雅昌公司提供数据的准确性、数据计算公式或逻辑关系,以及赛意公司软件开发能力等多种因素,故“报表结果不准确”问题的解决需要双方配合查找原因和共同研究确定合理的计算逻辑;虽然SOW约定“系统支持多语言,简体中文为默认语言”,但并未限定系统运行中出现的所有内容均必须显示为中文,且赛意公司开发完成的CRM系统未以中文显示“错误提示”系因“Oracle销售云软件”自带内容所致,赛意公司也已积极联系该软件的开发方探讨更改显示文字问题,目前的结果是部分提示文字可改为中文,仍有部分提示无法完成语言文字的转换。由此可见,雅昌公司提出的“错误提示为非中文显示”问题系因域外软件汉化得不够全面、充分所致,需要在使用过程中逐步完善。然而,雅昌公司未就赛意公司提出的问题解决方案作出答复,径直于同年12月9日向赛意公司发函要求解除涉案合同。雅昌公司的上述解约行为与涉案合同约定“经书面催告30日内未得纠正,雅昌公司可以终止合同”的情形不符。因此,雅昌公司关于其依据涉案合同约定解除合同的主张缺乏事实依据。
雅昌公司主张的法定解约事由方面。通过分析雅昌公司就项目一期、二期共提出的22个问题可知,其中仅2个问题属于未能符合“SOW约定规格、内容、标准”的情况;另外有2个问题已经解决;还有8个问题属于SOW仅约定了大致功能、未提出具体要求的情况,雅昌公司经实际使用发现与其惯常使用习惯不符,或认为用户体验度还有提升空间。对于这类问题,赛意公司提出了解决方案,但雅昌公司怠于发表是否接受该解决方案的意见,导致其迟迟未签署验收确认报告。至于雅昌公司提出的其他10个问题,皆属于SOW中并无相关功能约定的情况。基于以上事实,本院认为:其一,虽然针对雅昌公司提出的问题,赛意公司作出的解释中确有提到有些瑕疵系“Oracle销售云软件”自带、目前无法解决;但赛意公司的合同义务是在雅昌公司选定的“Oracle销售云软件”基础上进行定制开发,因“Oracle销售云软件”的设计思路与雅昌公司使用习惯或具体需求之间的差异而造成的软件功能瑕疵不属于赛意公司开发工作中的过错;且赛意公司也已积极联系“Oracle销售云软件”的开发者询问解决方案,或提出了替代措施;确实无法解决的问题也未对系统整体运行和基本功能的实现产生影响。因此,赛意公司在解释问题解决办法时所作的“无法亦无义务解决”的陈述,不应视为其不履行主要债务。其二,自系统交付之日起,雅昌公司就在针对系统提出问题,要求修改,赛意公司也始终在根据要求进行完善。涉案合同的最终履行情况截止于赛意公司提出了修改完善意见后,雅昌公司未予答复的阶段。因此,赛意公司履约过程中不存在经催告不履行合同义务的情形。其三,结合雅昌公司与赛意公司签约背景情况、雅昌公司委托赛意公司进行项目软件开发的目标、项目软件所应具有的功能模块来看,雅昌公司委托赛意公司开发CRM系统的目的在于对印刷行业的客户关系进行管理。对照SOW所确定的系统需求和目标,赛意公司交付的系统均已实现,只是在软件实际运行时还存在可以不断完善的细节。上述有待完善细节的数量、在整体系统功能中的占比数,以及对系统基本功能实现方面的影响力,均未达到致使系统无法正常运行的程度。雅昌公司就已交付系统所提出的22个问题,一部分属于需要根据软件实际使用过程来准确定义需求内容、再根据需求予以后续完善的情况;另一部分属于现阶段基于技术原因暂时无法解决的问题,可通过替代方案或调整使用习惯的方式解决。综上,涉案合同的签约目的并不因个别细节尚有待完善而未能实现。雅昌公司主张的三点法定解约事由缺乏事实依据,不能成立。
二审诉讼过程中,雅昌公司坚持要求解除涉案合同;赛意公司出于双方纠纷始终未得解决、相互缺乏继续履行合同义务信任的考虑,同意解除涉案合同。因此,本案符合合同法第九十三条规定的“当事人协商一致,可以解除合同”的情形,本院确认涉案合同因雅昌公司与赛意公司的一致意愿而解除。
(三)关于雅昌公司是否应向赛意公司支付第二期、第三期、第四期项目费用的问题
涉案合同约定第二期、第三期项目费用的支付条件为对应阶段系统的上线报告通过双方签字,而赛意公司提交的两个阶段上线报告始终未得到雅昌公司的签字确认。然而,涉案合同同时约定,雅昌公司有权对赛意公司交付的系统提出问题、要求解决或完善,但对于赛意公司的解决方案也应予以及时答复。双方于2016年11月1日签订的验收备忘录确定了雅昌公司最终就已交付的一期系统、二期系统提出了22个问题,赛意公司于2016年12月2日就上述问题说明解决进展情况请求雅昌公司确认,或说明问题产生原因及解决对策、替代措施请求雅昌公司共同商讨确定;雅昌公司却对此未予答复。同时,赛意公司交付的一期系统、二期系统经雅昌公司测试后,仅提出了与系统运行或基本功能无关的22个待完善问题,且雅昌公司已结合一期系统、二期系统多次安排公司员工接受培训。原审判决综合上述事实,认定赛意公司已完成一期系统、二期系统的交付,上线确认报告至今未得到雅昌公司的签字确认属于雅昌公司的过错所致,进而认定第二阶段、第三阶段项目费用应当依约支付是正确的。同时,原审判决还根据系统尚未实现功能的实际情况对赛意公司可以收取的项目费用予以了扣减,符合客观实际,公平合理。需要说明的是,在具体支付方式上,赛意公司仍应根据涉案合同的约定,先向雅昌公司提供合法发票或雅昌公司认可的请款凭证。
就第四期项目费用而言。涉案合同约定付款条件为项目通过整体验收。验收备忘录内容显示,雅昌公司、赛意公司均确认项目的整体验收应在一期系统、二期系统的问题解决后进行。事实上,截至双方发生本案纠纷时,涉案合同履行的进展阶段为赛意公司就雅昌公司对项目一期、二期提出的问题作出了答复,待雅昌公司确认。不论CRM系统的开发工作未得以继续推进的原因和责任,客观情况是项目一期系统、二期系统中的问题尚未得到全面解决,故项目整体验收并未开展,更谈不上通过验收。因此,涉案合同就第四阶段项目费用约定的付款条件尚未成就,原审判决要求雅昌公司支付第四期项目费用中的部分金额,缺乏事实依据,本院予以纠正。
(四)关于赛意公司已收取的项目费用237900元是否应当退还的问题
鉴于赛意公司已完成了一期系统、二期系统的大部分开发任务,其违约行为仅在于二期系统的交付存在迟延,尚未达到合同需要解除的程度,故雅昌公司要求赛意公司退还已收取的项目费用237900元缺乏事实依据和法律依据,不应予以支持。
(五)关于赛意公司是否应赔偿雅昌公司经济损失并支付违约金的问题
雅昌公司主张涉案合同履行期间,该公司参与CRM系统开发的员工工资属于其经济损失,应由赛意公司赔偿。但雅昌公司单方提交的项目组人员名单不足以证明其为涉案合同的履行所支出人力成本的金额,更无法证明该部分人力成本专为CRM系统的开发而花费;且在赛意公司就CRM系统的开发不具备明显过错的情况下,雅昌公司要求赛意公司负担其所谓人力成本的主张缺乏事实依据和法律依据,不能成立。
赛意公司在履行涉案合同义务过程中存在违约行为,且合同中确有关于违约金的约定。在赛意公司对违约金数额提出异议的情况下,原审法院根据赛意公司违约行为的具体情形和过错程度酌情调整其应支付的违约金数额并无不妥。
综上所述,雅昌公司关于其不应支付第四期项目费用237900元的上诉主张成立,本院予以支持;雅昌公司的其他上诉理由不能成立,本院不予支持。原审判决认定事实和适用法律均有错误,本院予以纠正。依照《中华人民共和国合同法》第九十三条第一款、第一百零七条、第一百零九条,《中华人民共和国民事诉讼法》第一百七十条第一款第二项之规定,判决如下:
一、维持北京知识产权法院(2017)京73民初1592号民事判决第二项、第三项、第四项;
二、变更北京知识产权法院(2017)京73民初1592号民事判决第一项为“本判决生效之日起十日内,北京雅昌艺术印刷有限公司向广州赛意信息科技股份有限公司支付第二期项目费用475800元、第三期项目费用428220元”;
三、解除北京雅昌艺术印刷有限公司与广州赛意信息科技股份有限公司于2016年4月8日签订的《雅昌文化OracleSalesCloud项目开发实施合同书》;
一审本诉案件受理费10364元,由北京雅昌艺术印刷有限公司负担6000元,由广州赛意信息科技股份有限公司负担4364元;一审反诉案件受理费10411元,由广州赛意信息科技股份有限公司负担6411元,由北京雅昌艺术印刷有限公司负担4000元。二审案件受理费20727.3元,由北京雅昌艺术印刷有限公司负担15727.3元,由广州赛意信息科技股份有限公司负担5000元。
本判决为终审判决。
审 判 长 岑宏宇
审 判 员 陈瑞子
审 判 员 佘朝阳
二〇二一年十一月八日
法官助理 刘白宇
书 记 员 兴 源
裁判要点
⼀⼂