上海数诺网络科技有限公司与上海千户万物网络科技有限公司计算机软件开发合同纠纷二审民事判决书

时间: 2023-12-14

5

39

【摘要】 等信息最后更新时间为:2024-11-13。

上海市高级人民法院
民 事 判 决 书
(2022)沪民终663号
上诉人(原审被告):上海数诺网络科技有限公司,住所地上海市闵行区金都路4299号D幢373号。
法定代表人:俞洋,该公司经理。
委托诉讼代理人:付春明,北京炜衡(上海)律师事务所律师。
被上诉人(原审原告):上海千户万物网络科技有限公司,住所地上海市金山区亭林镇揽工路669号(众璞园区)。
法定代表人:朱雯婷,该公司执行董事。
委托诉讼代理人:庄小文,男,该公司股东及监事。
上诉人上海数诺网络科技有限公司(以下简称数诺公司)因与被上诉人上海千户万物网络科技有限公司(以下简称千户万物公司)计算机软件开发合同纠纷一案,不服上海知识产权法院(2021)沪73知民初959号民事判决,向本院提起上诉。本院于2022年10月25日受理后,依法组成合议庭,于同年12月8日公开开庭进行了审理。上诉人数诺公司的委托诉讼代理人付春明、被上诉人千户万物公司的法定代表人朱雯婷及委托诉讼代理人庄小文到庭参加诉讼。本案现已审理终结。
数诺公司上诉请求:撤销上海知识产权法院(2021)沪73知民初959号民事判决,将本案发回重审或改判驳回被上诉人千户万物公司的一审全部诉讼请求。事实与理由:1.一审法院对事实认定有误。双方已就2020年8月10日的《软件项目开发协议书》达成合意。同年12月1日,俞洋对同年11月30日的《项目开发合作协议》的合同内容、付款条件等提出异议,故双方未就《项目开发合作协议》达成合意。千户万物公司的法定代表人朱雯婷通过允诺费用及股权的方式贿赂俞洋,一审法院认为无证据证明朱雯婷贿赂俞洋系认定事实错误。2.一审判决适用法律有误。双方已就《软件项目开发协议书》达成合意,也履行了合同主要义务,故该合同成立。鉴于俞洋于12月1日对《项目开发合作协议》提出异议,故该合同不成立。本案的合同主体应是上海千算环境科技有限公司(以下简称千算公司)。3.一审法院组织对2020年11月30日的源代码进行演示,系以同年11月10日的“千户万物新(1)”文件为条件,但却以“12月更改需求列表”为基础进行判决,其程序不合法。上诉人不存在违约行为,由于被上诉人拒绝按合同约定支付款项,故上诉人行使不安抗辩权拒绝继续履行合同。
被上诉人千户万物公司辩称:一审判决认定事实清楚,适用法律正确,被上诉人坚持一审中的观点,并认同一审法院的裁判理由,请求二审法院维持原判。
千户万物公司向一审法院起诉,请求判令:1.解除涉案《项目开发合作协议》;2.被告返还原告已付软件开发费用人民币(以下币种相同)81,000元;3.被告支付原告违约金54,000元。事实和理由:2020年7月,原告的法定代表人朱雯婷与被告的法定代表人俞洋口头约定,由被告为原告开发《千户万物商圈平台系统》。由于原告当时尚未注册登记,故通过朱雯婷及母公司千算公司的银行账户先后四次向被告支付81,000元。其中,有21,000元系服务器托管机房费,但被告从未告知原告租赁了什么服务器,也未给过原告。被告收款后以各种理由延迟工作进度,2020年11月30日到原告处展示工作成果,因与原告的要求不符,原告通过微信催促被告修改直至2020年12月初,但被告拒绝修改。2021年1月26日,原告发函提出终止合作,要求返还已付款项,但被告至今未返还。被告的行为构成根本违约,应返还已付款项,并根据涉案《项目开发合作协议》第八条的约定支付违约金10万元,原告在本案中仅主张违约金54,000元。
数诺公司一审辩称:1.原、被告间并不存在合同关系。朱雯婷与俞洋于2020年7月1日开始洽谈软件开发事宜,但此时原告尚未成立。在洽谈及履约过程中,朱雯婷从未表示过是原告与被告进行合作,相关费用也是由朱雯婷或千算公司支付,从未告知是代原告支付。由于朱雯婷是千算公司的法定代表人,故被告一直以千算公司为合作对象。可见,被告从未与原告签订任何有效合同,原告也未向被告支付任何费用,不存在返还的基础。对于原告提交的一份以原、被告为主体的合同,系朱雯婷贿赂俞洋签字,被告因发现合同主体变更而并未盖章。且该合同内容显示原告处分了自己的股权,这是无权处分,主体有问题。2.涉案软件开发合同的相对方是千算公司与被告,对应的合同文本为俞洋于2020年8月10日发送给朱雯婷的《软件项目开发协议书》。虽然该协议未签字盖章,但被告在同年9月2日催促朱雯婷付款时,朱雯婷称“我今天给你三万,9.30之前给你剩下三万,11.2付余额”,可见双方对合同付款条件进行变更并达成合议。后朱雯婷和千算公司支付了合同款项,被告亦已实际履行开发义务。同年11月30日,朱雯婷通过许诺贿赂俞洋变更原合同,被告知道后未在新合同上盖章,并以不安抗辩拒绝继续履行合同。同年12月5日,朱雯婷再次提出要求变更合同主体及内容,被告明确拒绝后发生纠纷。3.被告已完成涉案项目的开发。合同履行中,朱雯婷多次变更需求,但被告均已完成,仅需再将已开发完成的源代码根据不同终端进行适配即可上线。朱雯婷2020年12月3日提出的需求是新需求。4.朱雯婷支付的云服务器托管费系用于涉案软件开发,不应返还。
一审法院查明事实:
案外人千算公司成立于2020年7月13日,股东包括朱雯婷、庄小文等人。原告成立于2020年9月15日,股东为千算公司和庄小文。两公司的法定代表人均为朱雯婷。被告的股东为俞洋等两人。
2020年7月1日,朱雯婷与俞洋添加微信好友后,开始就涉案软件开发事宜进行沟通,主要内容包括:(1)同年7月1日,俞洋称“大致了解下来,需要以下功能:……”,朱雯婷称“差不多就是这样”“不知道这样一个做起来大概需要多久?”,俞洋回答“确定需求的功能两个月左右”“这个是个渐进的过程,先把前端上线大概一个月”“后端可以逐步完善”。双方就开发内容进行若干沟通后,俞洋问“公司成立了么?”,朱雯婷回答“本来有公司,但是这个项目会重新成立,已经核名成功”。(2)同年7月29日,俞洋向朱雯婷发送三份名称分别为“1、千算项目合同”“2、千算项目报价”“3、千算项目软件计划进度”的文件,朱雯婷称“那辛苦你啦”“协议我是盖章之后扫描给你?”,俞洋发送语音“没事没事,你盖好章之后什么时候我过去我拿回来盖章也行的,这个不着急的”,朱雯婷称“还有其它需要配合的尽管跟我说”。在讨论微信公众号等的名字时,朱雯婷称名字为“千户万物”,并发送语音“我现在正式运营这个项目,我重新弄了一个千户万物的公司去做的,母公司是千算,但是千户万物的执照还没下来,我是不是公众号先用千算去做注册”。双方就服务器进行讨论,俞洋称“服务器的事明早我安排一下,明天你把2万1的托管费用打给我,让他们接着操作备案,并争取周末把demo环境搭好”。同年7月30日,朱雯婷称“托管费用麻烦做一个账单,然后把具体的机房方案注明,还有付款方式”,俞洋称晚上给朱雯婷云服务器协议。俞洋未发送云服务器协议,但于次日将app下载地址、后台管理系统地址及后台访问用户名、密码等发给朱雯婷。(3)同年8月4日,俞洋问“合作协议还没给我,是不是要抓紧开动了?”并称“这个是模板”“你填上你公司的内容”,朱雯婷发送一份扫描文件并称“合同好了,先给你。就是上次因为说的,这个协议是用来做账的,所以你看看你这边要不要再另外定补充协议”,俞洋称“补充协议可以。这个纸质到时我盖章吧……”。俞洋称“还有真实的合作协议,我昨天跟我同学吃饭简单聊了聊,有时间介绍谈谈看看他有没有兴趣投资”,朱雯婷称“好的,约个时间,我带上章一起盖”。(4)同年8月10日,俞洋问“我们的合作协议准备了吗?明天我们周总也过来,他负责项目管理”,朱雯婷问“合作协议是指49w那个?明天就我一个人”,俞洋回答“是真实合作协议,你一个人?我这边要安排具体项目计划”,朱雯婷称“好的,我也想谈这个”“合作协议你这里先起草一份尽量今天给我”。俞洋发送了一份名为“软件开发协议书”的文档并称“股权合作协议书我这边没有”。该合同系编号为“S-202008-001”的《软件项目开发协议书》(该合同共九条,甲方为千算公司,乙方为被告,主要内容包括:第二条约定,乙方根据双方约定的《软件方案书》编写软件,《软件方案书》在需求调研结束经双方确认后作为本协议附件;第三条约定,预计开发阶段3个月,整体项目周期见《软件方案书》,软件研发费用每月6万元,按月提前支付,每月支付日为15日;第六条,本协议自双方盖章签字之日起生效)。后双方并未在该合同上签字或盖章。(5)同年8月13日,朱雯婷称“俞总,什么情况啊?那天说的,时间我有疑问,你们说时间要根据框架定,我就说等你们框架定下来后,微信上确定文本内容,等你回来找个机会现场盖章”“周总这边没有明白吗?”“我服务器也买了,诚意在这里,框架制订很难吗?”俞洋未回答。(6)同年9月2日,俞洋要求付款,朱雯婷称“不是应该先工作再发工资嘛”,俞洋称“那还要压半个月工资呢,小魏那边开展的工作朱总是不是要补发工资?”,朱雯婷称“我今天给你三万,9.30之前给你剩下三万,11.2付余额”“你这里务必10.1长假前出可演示的版本”。次日朱雯婷称“另外,协议和保密条款一起你这里做一份吧”。(7)同年9月28日,朱雯婷称“我们每周一,三碰面沟通,你看如何?”“然后我们把服务协议签一下……”俞洋表示“现在项目范围已经没边界了,我也没法跟你谈预算和研发费用了”“不过还是好好做好一件事吧”。(8)同年9月29日,朱雯婷询问“吆喝这里是否先上一个功能感受一下?另外商铺的优惠信息可以先放一个打打样”,俞洋称“1.不同类别的信息以什么样的UI展示?这个咱们大家都想一下。2.我这边把其他需要对接的准备一下,节前争取都对接好,节后专注界面UI的设计,你现在讲的需求都是大概,完全要程序员自己发挥设计UI太困难,最起码要有这样的流程图”,发送了一个示例链接并称“……你的想法跟我们交流后形成具体明确的需求,然后设计UI”。(9)同年10月15日,朱雯婷称“我需要用上海千户万物网络科技有限公司做小程序”“是否先进行公众号注册”,俞洋称“没有域名小程序没法上线”,朱雯婷询问“千算那个可以转给千户万物吗?”,俞洋称可以。(10)同年10月26日,朱雯婷称“俞洋,系统11月底必须出,否则时间上来不及”,俞洋称“恩,我这边要需求确定即可”。(11)同年11月6日,朱雯婷发送“《项目合作补充协议》2020年8月5日,由甲方上海千算环境科技有限公司盖章、法人朱雯婷签字的、而落款为乙方上海数诺网络科技有限公司,但没有盖公章且无法人签字的《项目合作协议》是俞洋要求朱雯婷配合数诺公司方便引入政府科技支持而形成的文件,该文件内容由俞洋单方面提供,而不是与朱雯婷协商达成的合意。所以,朱雯婷(及上海千算公司、上海千户万物公司)与俞洋及上海数诺公司的项目合作内容及条件将另行协议。甲方:上海千算公司、朱雯婷。乙方:上海数诺公司、俞洋”。俞洋未回复。(12)同年11月19日,俞洋问“费用怎么样了?”,朱雯婷称“费用有的,看你们11月底结果”,俞洋称“行啊,我们按进度来吧,之前群里老周应该发了进度,等下我让他把今天讨论确定的需求及时间进度发上来”,朱雯婷表示老周没有发进度,俞洋称让老周晚上发。(13)同年11月29日,俞洋称“今天还有一个页面在做,明天调试,费用可以安排了”,朱雯婷称“你过来吧,我们当场验收”。(14)同年12月1日,朱雯婷称“哥,圈子和吆喝的完善这两天麻烦你了,验收和源代码我安排员工过来,今天麻烦协议盖好章先拍照给我”,俞洋称“好,验收是啥意思?”,朱雯婷称“也不是验收,就是看一下,看一下结果”,俞洋称“先把钱打过来”“我估计你都忘了昨天说的什么了,12月底我估计你也会忘了说单独给1万的,你老是会忘”,朱雯婷称“不会,一切妥当,1月中旬之前我个人给俞洋10000,不算在协议的18.1万**面”“需要通过验收确认并且给到源代码,但是我们不会无端挑毛病拖时间”,俞洋称“协议上30号付,今天12月1号”,朱雯婷称“需要通过验收并且给到源代码,今天能给的话今天就付”,俞洋称“行啊。1、需求文档重新整理出来,细节双方确认,重新评估工期及报价。2、确定验收标准、验收日期。3、源代码涉及我公司知识产权(基础架构),不能提供,定制开发的需求可以考虑提供,但需要收费。4、软件开发之外的技术服务可以免费提供。5、变化太多,协议重新再谈”“你这样搞得我很难做,我跟你谈交情,到头来还是一场交易”,朱雯婷称“俞总,我有我自己的难处,我肯定希望合作的,否则我不会跟你谈股份的事情的……”,双方进一步讨论后,朱雯婷称“这样吧,我今天先付三万,周四我派人过来看圈子和吆喝,然后你们将源代码给他们,我会付余款”,俞洋称“按原先说的5万付,你要看圈子功能,你可以安排人今晚过来看,我们是通宵的”“让他坐在开发旁边看代码”“但是现在不会给你,给你也没用,都还在修改”,朱雯婷问“需要拷到什么时候给?”,俞洋称“你什么时候不要我们开发,我会交接资料给你。不然给你也没用,其他就不用多说了,跟你说了你也不懂”。(15)同年12月3日,朱雯婷问“圈子和吆喝按要求改好了吗?”“如果已经改好了,我安排产品经理过来看一下”,俞洋称“具体你让他们跟老周联系”。(16)同年12月4日,朱雯婷问“官网放下载二维码吧,然后庄老师他们还有我这里员工都没有下载到,麻烦圈子和吆喝打包好了再发群里让他们下载一下”,俞洋于同年12月6日称“还在开发阶段,功能还没完成你们需要下载?”,朱雯婷称“前几天发给你的你应该看到,至少相关人员可以自由下载,尤其销售之后展业需要得人手一个”,俞洋称“那天晚上我以为也沟通好了,哪知第二天你又变卦了,我也不知道什么情况,功能没好你们确定要下载?回头我让人打包发群里吧”,朱雯婷称“……很多还没有调整好,我们要求过去看,老周不让去。怎么第二天变卦了?我第二天问的就是圈子和吆喝好了没。你说你让他们改了,老周说并未排期。我至少吆喝和圈子要和原型图一样,另外支付、发布任务什么的要能够用。其他的可以慢慢来,源代码也是需要的”,双方就此讨论后,朱雯婷称“如果你认为修改要在16万以外再付费的话,这又有悖合作的基础了。我一直在说的是11月底的款是要看结果的”,俞洋称“一切按需求来”。(17)同年12月8日-11日,朱雯婷问“俞总,后来有继续吗?”,俞洋在问过后称“排了工期做了一些微调其他没进展”,朱雯婷称“现在微调后的版本可以放链接吗?这几天在招商了,东西都没有很难开展,先让他们下载几个”,俞洋称“可以,你这个费用什么时候付过来?”,双方争论后,俞洋称“圈子功能当天就调整过了,那天会上讲的内容后续会接着改,但是你不能作为30号不付款的条件”,朱雯婷称“没有不付款,要东西呀,你东西没给呀,请读协议”,俞洋称“你那个协议当天才给我看,需求之前都不定,完成是什么概念?原本我们也在做事,开会当天晚上也在通宵赶,原本第二天付款啥事也没有,可是你却搞个验收源代码事情,还看情况付款,我们在不可能的时间内完成很多事情是为了尽快上线,你却搞个付款不确定,这个跟协议有什么关系?这个协议有效吗?”,朱雯婷称“你亲笔签过字的协议还能无效吗?”俞洋称“你亲口说过的话有效吗?为什么又变了呢?”“现在不要浪费时间讨论这种问题了,如果继续合作的话就把费用付掉,我们继续安排的进度加班加点赶期”。
由涉案项目参与人员组成的“千户万物项目”微信群主要有以下聊天记录:(1)2020年7月29日,俞洋要求被告员工“今天把微信公众号,小程序注册一下,名称:千户万物”,并开始就购买SSL证书、域名备案、系统环境安装等事宜进行沟通。同年8月11日,朱雯婷为微信认证提供的银行账号系千算公司的账号,订阅号的申请公函中申请主体为千算公司。(2)同年8月13日,被告员工问朱雯婷“协议打印盖章了吗?”,朱雯婷问“备案的吗?”,被告员工称“就是上次去公司说起的协议啊?”,朱雯婷问“你们不是要出框架方案定时间的吗?”,被告员工称“框架方案是在这个协议之后再具体确定的,相当于是这个协议的附件”,朱雯婷要求再发一次框架文件。同年8月16日,被告员工发送名为“千算万物系统模块划分及修改工期”的表格文件,并询问朱雯婷对该方案的意见。朱雯婷询问“市场营销这块是否可以后期进行添加?目前主要就看到吆喝功能”“大概的版块我看过了,可能关于具体的呈现方式还会需要你们这边做个注解”。(3)同年9月17日,朱雯婷表示“小程序要用千户万物网络科技来做”,并提供了千户万物执照副本,俞洋表示域名备案必须与小程序主体一致,并提供了更改主体的流程,朱雯婷称等公司手续齐全后修改,暂时还用千算公司,并明确“我千户万物的营业执照是要申请公众号和小程序的”。(4)同年9月23日,朱雯婷向俞洋表示“模块目前大方向就是我的,首页,商城,乐吆吆,乐吆吆做主推功能”。(5)同年9月30日,俞洋要求被告员工“把群里朱总提的需求整理成电子档,交老周安排做系统分析,列出时间进度,群里随便一发没文档记录,没分析,没计划,没法做”。(6)同年10月21日,被告员工要求朱雯婷“千户万物公司的基本资料麻烦发我一份”,朱雯婷发送了营业执照图片。后被告员工于同年10月27日询问朱雯婷是否开通了公账时,朱雯婷发送了原告的公账。(7)同年10月26日,朱雯婷和俞洋分别发送了双方团队人员及各自分工(以下朱雯婷发布的人员称委托方人员)。同年10月29日,委托方人员发送一份材料后告知俞洋“现在我们这边功能基本确认是这样,然后原型我们在做,您看看完成这些功能大概需要多久,小程序的明天给到,这是app的”。同年11月10日,被告员工发送一份名为“App模块排期表”的文件,委托方人员发送名为“千户万物新(1)”的文件,称是原型,俞洋表示“这里面内容很多,月底完成来不及的”,委托方人员称“慢慢来,后面可能会有改动什么的,因为我这边ui设计稿还没出呢”,后又于同年11月12日发送最新的原型文件,并称“吆喝个人发布那块我可能还得修改”。同年11月16日,委托方人员表示相关样式跟原型不符时,俞洋问“任务有原型吗?”,委托方人员表示“有的啊”。俞洋询问“现在画的原型是最终稿还是草图?确认了吗?我看这些原型有些拼凑参考的痕迹,很多数据结构都要重建,而且还有很多业务逻辑没确定,比如券和积分的使用规则,积分来源等”,委托方人员回答“原型是最终稿的,因为有些需求在变,小的功能还需要修改,大体框架是不会改的”,俞洋表示“这些我们都要一起讨论确定的”,委托方人员称“那(哪)天约个时间做(坐)一起聊一下”,俞洋表示“吆喝和圈子需要确定一下,现在是按我们原先的想法设计的,现在按你的说法可能要重写了”“首页功能现在本身就是重写”,俞洋分别列举了之前设计的结构与现在原型中存在的差别,称“说到底,就是这些功能排版归在什么板块中,这个要确定一下的”,并称“所以游戏规则你们要确定一下”,委托方人员表示“游戏规则在确定中,具体还没有做完”。(8)同年11月18日,委托方人员询问“俞总,app月底还能完成不”“不能完成的话月底之前就先开发个小程序出来”。被告员工回答“不是小程序与app的问题,主要是模块内容、业务逻辑与页面的细节,现在你们那里没定,我们也无法动手”,委托方人员称“我们在聊,首页那里基本不用动,就吆喝这里需要改动”,被告员工称“你们尽快定吧,这样我们才能说什么时候能完成”“毕竟,我们原来的架构是可以满足基本要求的”,双方约定次日上午见面。(9)同年11月19日,委托方人员发送文件“千户万物新.rp”,俞洋于次日发送名为“凑活app一期模块工期(1120)(1)”的文件,原告员工表示“首页的理发和电影1.0版本可以不用作(做)”。(10)同年11月29日,朱雯婷称“明天11月最后一天了”,被告员工回答“我们一直在加班,估计马上可以给你们看了,具体俞总会和你联系”,俞洋表示“暂定周一下午2点去朱总处对开发进度阶段性验收”,双方次日见面。(11)同年12月3日,委托方人员发送名为“12月更改需求列表”的文件,要求被告员工做排期后发回去。同年12月4日,委托方人员称“先完善吆喝和圈子两个功能,这个晚点我会给到你”“两个功能完善好,麻烦打包发个下载链接”,被告员工向朱雯婷表示“原定的功能都有了,没有缺项,现在只是在调整”,朱雯婷表示“吆喝和圈子没有根据我们要求的样子做”,被告员工称“如果这么说的话,这些都不符合你们提出的要求啦,本来这个项目就是我们一起探讨开发的过程,所以那天我们会有那么多的交流,否则,我们不需要说那么多了,对吗?其他二位也不需要反复来我告诉沟通了,纯粹的按你们的方案走就是,包括圈子的某些要素,也有我们的建议吧”,朱雯婷表示“麻烦你根据我们的要求更改,你们的建议目前不适合”。同年12月5日,朱雯婷询问“吆喝和圈子什么时候可以出来?”,被告员工回答“合同没成立,暂时没安排”,朱雯婷发送两页纸的合同图片后,被告员工回答“我们开发的是拿绩效的,不白干活”,朱雯婷要求俞洋尽快安排。同年12月6日,俞洋回答“上次开会不是已经安排了吗?圈子功能那天开会我亲口说了回头调一下就好了,晚上就改掉了,让朱总派人过来看也没过来,还有什么问题吗?”“老周,按计划做,严格按流程来”,并对朱雯婷称“群里只讨论工作细节问题,商务问题朱总我们可以单独谈”。
就涉案项目,朱雯婷于2020年7月30日向被告支付21,000元,备注为“托管机房”;同年9月3日,千算公司向被告支付30,000元,备注为“系统开发”;同年10月10日,朱雯婷向被告支付10,000元,备注为“系统开发”;同年10月21日,千算公司向被告支付20,000元,无备注。
2020年11月30日,千算公司(甲方)和被告(乙方)签订《备忘录》,内容为:根据乙方拟申请政府科技项目支持要求,甲乙双方于2020年8月5日签订了《项目合作协议》。此备忘录签署前,甲乙方签订的所有合同(协议),无论双方或单方是否签字、盖章,均为无效合同(协议),甲乙双方互不履行与追究责任。朱雯婷和俞洋分别在甲方和乙方代表处签字,未盖公司公章。
同日,原告(甲方)和被告(乙方)签订《项目开发合作协议》,约定乙方为甲方提供项目《千户万物商圈平台系统》整体开发服务,该协议的甲方处为原告公章和朱雯婷签字,乙方处为俞洋签字,无被告公章。该合同的主要内容包括:1.第一条约定,双方同意乙方根据甲方项目需求进行千户万物项目相关平台包括不限于千户万物相关(千户万物、凑活等)客户端、商家端、小程序等一系列产品开发编写及测试;所有源代码归甲方所有。2.第二条约定,甲方总共支付乙方181,000元作为项目费用,包括机房租赁年费(2020年9月1日至2021年8月31日)。支付方式分三期支付,第一期:11月1日前支付81,000元,作为前期开发费用;第二期:11月30日如完成app及小程序,甲方验收并支付50,000元;第三期:12月31日由乙方完成最终测试,甲方验收并支付余款。3.第三条约定,乙方对以下四次由甲方不同相关账户付款至数诺公司账号之款项确认无异议,具体为前述由朱雯婷和千算公司向被告支付的4笔款项。4.第四条约定,每期甲方都以乙方顺利提交源代码给甲方,并由甲方工作人员签字验收后,进行汇款。5.第五条约定,乙方需配合甲方进行软著及发明专利申请并明确该项目所有知识产权属甲方所有,无论有偿或无偿,乙方均不得对该项目的任意版本包括扩充版、升级版、变形版以及该项目的商业模式、交易流程等单独转让任何第三方,且对该项目的核心内容及相关技术负有保密的义务,违约将追究法律责任。核心内容包括但不仅限于:吆喝功能及其涵盖的商业模式、种草、内容等。6.第六条约定,以上内容交接完毕,甲方承诺给予乙方公司或法定代表人本项目的3%股权,乙方继续为甲方提供1年维保及升级服务,不另收费,交接日后一年,如乙方无违约行为,甲方承诺再给予乙方公司或法定代表人本项目的3%股权。交接日后第二年,如乙方继续为甲方提供维保及升级服务(不另收费)并无违约行为,甲方承诺当年结束后一个月内再给予乙方公司或法定代表人本项目的2%股权并进行工商变更。7.第七条约定,违约行为包括并不限于……(4)乙方未按期交付超一周以上……8.乙方如发生任何违约行为,经确认属实,乙方需对甲方进行相应赔偿,任何违约行为,赔偿违约金10万元;若还发生实际损失的,则全部赔偿,其中含乙方为甲方违约所付出的所有费用,同时,甲方承诺给乙方或其法定代表人的股权全部取消。
2021年1月26日,朱雯婷向俞洋发函,内容为:经朋友介绍,你我就《千户万物》App系统开发一事进行了多次沟通,并达成了共识。遗憾的是,贵司项目推进速度缓慢,IT团队成员漫不经心。我们累计已支付了你司81,000元系统开发费用,至今一无所获。由于贵司提出了不继续给钱,就终止合作的无理要求未被我方接受,而导致项目停工。鉴于长时间的等待及我方托朋友多次与你沟通无果,继续合作已无必要,烦请你在今年春节前如数退还我方已付款项。
2021年2月1日,被告向千算公司发送“关于朱雯婷函回复函”,内容为:贵司朱总发函,我方已收悉,但内容不属实。2020年7月1日贵司与我方洽谈确定开发软件系统事项[前端(APP/电子屏端)、后端(平台管理端)],并从7月1日开始,我方开始工作,首先帮助你方整理思路、整理需求、出方案、注册域名、备案、改LOGO等,你方认可后,双方于2020年7月29日正式确定项目总价为49万,后又协商付款方式为每月支付人民币6万元,项目完工为止。2020年7月我方完成系统安装部署并提供账号、加班完成DEMO用于协助你方路演,因贵司一直未支付费用,2020年8月10日我方向你方提交了开发费(6万/月)的协议,贵司认可,但一直未按约付款。经我方多次催款,贵司分别于2020年9月3日支付3万,10月10日支付1万,10月21日支付2万,一直存在违约情况。2020年11月中旬贵司又追加新需求,经过近2周的通宵加班基本完成,11月30日去贵司交付演示新需求,会上又提出整改要求和新的需求,期间都有工作计划和开发记录。我司一直按约完成双方约定的事宜,但贵司并未按约支付款项,累计欠款达24万。我方一直依约完成相关的工作,并主动为贵司出谋划策,为贵司提供建设性方案,但贵司一直在追加和变更导致相应工作时间延长,已存在违约行为。考虑是朋友介绍及希望双方的深入合作,我司也从未提出追加费用及要求贵司承担违约责任。我方按约要求贵司支付拖欠款项,属合理请求,诚望贵司能够重视此事,并采取积极合作态度,立即认真履行合同义务。我们也希望你能通过协商方式与我们解决此事。如果你不主动采取协商的态度或仍借故拖延,拒绝履行合同义务,届时,只有通过法律途径向你主张全部权利。
一审审理中,双方一致确认:俞洋、朱雯婷或相关关联主体间仅存在一个软件开发项目,即在案证据体现的开发项目,开发成果应包括微信小程序、APP(安卓及iOS)、PC端网页;朱雯婷在争议发生前提出的开发需求为委托方人员2020年11月10日在微信群中发送的“千户万物新(1)”所载内容,此后又曾提出少量新的修改需求;被告未交付开发成果,亦均未上线。朱雯婷称被告开发成果存在的问题为委托方人员同年12月3日在微信群发送的“12月更改需求列表”所载内容。
一审法院主持双方登陆被告的SVN账号,显示涉案软件前端源代码和服务器端源代码最早上传至SVN服务器的时间均为2020年9月20日,最晚上传时间分别为2022年3月10日和3月9日,2020年11月30日后有过数次修改记录。当庭下载上传时间为2020年11月30日的前端源代码,并切换至同年11月29日的服务器端源代码后进行功能演示。演示结果显示,“12月更改需求列表”所载内容中,除“吆喝”模块的“建立活动商品数据库”子模块和“首页”模块的“推荐美食”子模块已实现功能外,其余功能均未实现;未实现的功能中,“吆喝”及“圈子”模块中的功能,以及“首页”模块下“banner”子模块的展示宽度需求系“千户万物新(1)”所载内容,其余是该文档之后提出的新的修改要求。
一审法院认为,本案争议焦点在于:1.原告是否为涉案软件开发合同法律关系的当事人;2.若原告是合同主体,其要求判决解除合同、被告返还已付款项及支付违约金的诉请是否应得到支持。
关于原告是否为涉案软件开发合同法律关系的当事人。原告认为,朱雯婷在微信洽谈过程中已明确表示涉案项目系原告的项目,书面合同也是以原告名义签订,故原告是涉案软件开发合同法律关系的当事人。被告则认为,朱雯婷从未表示过是原告与被告进行合作,书面合同是俞洋2020年8月10日发送给朱雯婷的《软件项目开发协议书》,合同甲方为千算公司而非原告,虽未签字盖章,但已达成合意并实际履行,故原告并非涉案软件开发合同法律关系的当事人。一审法院认为,首先,朱雯婷在涉案项目沟通过程中多次表示系以原告名义运营该项目。朱雯婷与俞洋于2020年7月1日开始就涉案项目进行沟通,此时原告和数诺公司均未成立。相关微信聊天记录显示,同年7月29日,双方在就微信公众号名称等进行沟通时,朱雯婷明确表示以原告的名义运营该项目,但由于执照未办好,故先用千算公司的名义注册公众号;同年8月11日,朱雯婷为微信认证在微信工作群中提供了千算公司的账号;同年9月7日,朱雯婷在微信群中表示要用原告的名义做小程序,在俞洋提供更改主体流程后,朱雯婷称公司手续齐全后再修改,暂时还用千算公司的名义;同年10月15日,朱雯婷再次告知俞洋要用原告的名义做小程序,并询问是否可将千算公司的域名转给原告,俞洋称可以;同年10月21日和27日,被告员工在微信群中索要了原告的营业执照和公账。可见,虽然涉案项目中相关账号使用了千算公司的名义,但朱雯婷已多次明确表示系以原告名义运营该项目,被告的法定代表人及相关工作人员对此亦系明知。其次,原告与被告作为合同相对方签订了书面合同。在案证据显示,俞洋与朱雯婷在商谈涉案项目的协议签署时,朱雯婷要求俞洋起草协议,俞洋于2020年8月10日向朱雯婷发送了名为《软件项目开发协议书》的空白合同,该合同的主体为千算公司和被告,并约定自双方盖章签字之日起生效;同年8月13日,被告员工在微信工作群中要求朱雯婷盖章时,朱雯婷提出对时间有疑问、需要框架方案,并向俞洋表示要等框架定下来且确定文本内容后再盖章,可见双方并未对该空白合同文本的内容达成合意,也并未在该空白合同上盖章签字;同年9月2日、9月28日,朱雯婷多次提出让俞洋准备协议、签协议,可见直至此时尚未签订书面协议;同年11月30日,千算公司和被告签订《备忘录》,称双方在此之前双方的所有合同,无论是否签字、盖章,均为无效合同,原告与被告于同日签订《项目开发合作协议》;同年12月1日,朱雯婷让俞洋“麻烦协议盖好章先拍照给我”时,俞洋未提出异议。根据以上沟通过程,双方在合同履行开始及较长的时间内并未就合同具体内容达成合意并签订书面合同,直至2020年11月30日签订《项目开发合作协议》。虽然该合同上未加盖被告公章,但俞洋系被告的法定代表人,其代表被告签订该协议,该协议所涉项目由被告履行,对被告有约束力。被告现提出该合同系朱雯婷贿赂俞洋签字,但并无证据予以证明,本院对其该项意见不予采纳。最后,朱雯婷与俞洋在涉案项目发生争议时就付款时间、金额等的沟通亦均与《项目开发合作协议》的约定相同。综上,原告与被告是涉案软件开发合同法律关系的当事人,《项目开发合作协议》依法成立并生效,对当事人具有法律约束力。
关于原告的诉讼请求是否应得到支持。证据显示,双方系在涉案项目的沟通、履行中逐渐形成开发需求并签订书面合同。在双方发生争议前,原告的开发需求主要体现在原告方于2020年11月10日在微信群中发送的名为“千户万物新(1)”的文件中。原告在发送该文件时称“原型是最终稿的,因为有些需求在变,小的功能还需要修改,大体框架是不会改的”。被告于同年11月30日向原告展示软件功能后,原告于12月3日发送“12月更改需求列表”,被告对此拒绝继续开发,从而引发纠纷。经当庭演示,被告2020年11月30日前完成的开发成果确实未实现“12月更改需求列表”中列举的大部分功能,其中“吆喝”及“圈子”中的未实现功能均系在同年11月10日“千户万物新(1)”文件中所提出的功能。根据双方人员在合同履行过程中的沟通记录,“吆喝”及“圈子”是原告涉案软件的重要功能。根据涉案合同的约定,第二期款项的支付条件系被告在2020年11月30日完成app及小程序,原告验收后支付。在被告开发成果未经原告验收通过、且确实未实现相关需求的情况下,被告以原告未支付第二期款项为由拒绝继续履行其开发义务的行为构成违约。被告经原告多次催告仍拒绝履行,导致原告的合同目的无法实现,原告有权解除合同。原告于2022年7月26日当庭要求解除合同,于法有据,一审法院判决涉案合同于2022年7月26日解除。合同解除后,尚未履行的,终止履行;已经履行的,根据履行情况和合同性质,当事人可以要求恢复原状、采取其他补救措施,并有权要求赔偿损失。鉴于被告未按照原告需求履行其开发义务并拒绝履行,原告要求被告返还其已支付的费用的诉请于法有据,一审法院予以支持。根据涉案合同第八条的约定,被告如发生任何违约行为,经确认属实,需赔偿原告违约金10万元。现原告以被告违约为由要求被告支付违约金54,000元,系对自身权利的处分,一审法院对该项诉请亦予以支持。
综上,一审法院判决:一、涉案《项目开发合作协议》于2022年7月26日解除;二、被告数诺公司于判决生效之日起十日内返还原告千户万物公司已付费用81,000元;三、被告数诺公司于判决生效之日起十日内向原告千户万物公司支付违约金54,000元。一审案件受理费3,000元,由被告数诺公司负担。
二审期间,上诉人数诺公司和被上诉人千户万物公司均未提交新的证据材料。
本院经审理查明,一审判决书第8页第3-5行载明的2020年12月3日朱雯婷与俞洋的聊天记录有误,本院更正为:同年12月3日,朱雯婷问“圈子和吆喝按要求改好了吗?”俞洋发了一张同年12月1日的双方聊天截图,并在截图中用下划线强调了俞洋的话“按原先说的5万付,你要看圈子功能,你可以安排人今晚过来看,我们是通宵的”;12月4日,朱雯婷问“如果已经改好了,我安排产品经理过来看一下”,俞洋称“具体你让他们跟老周联系”。
一审法院查明的其余事实属实,本院予以确认。
本院认为,本案二审的争议焦点为:一、本案当事人之间的《项目开发合作协议》是否成立,涉案计算机软件开发合同的委托方是千户万物公司还是千算公司;二、上诉人是否存在根本违约。
关于第一个争议焦点,在案证据显示,2020年7月1日开始,朱雯婷与俞洋就计算机软件开发合同进行磋商,朱雯婷明确表示就该软件项目会重新成立新公司,并告知新公司的名字是“千户万物”,先以母公司千算公司的名义注册微信公众号;同年9月,千户万物公司成立后,朱雯婷向数诺公司提供了千户万物公司的营业执照并再次表明软件项目主体为千户万物公司;同年7月至10月期间,朱雯婷向数诺公司支付了2.1万元机房托管费和6万元系统开发费,双方就项目需求等进行沟通;同年11月30日,千算公司与数诺公司签订《备忘录》明确双方在之前签订的所有合同无论是否签字盖章均为无效,千户万物公司与数诺公司于同日签订《项目开发合作协议》。上述事实表明,数诺公司一直明确知晓涉案软件开发项目的主体是千户万物公司,双方于2020年11月30日正式签订了《项目开发合作协议》,且该协议中关于第一期款项的支付约定与该协议签订前的实际履行情况一致、关于第二期款项的支付约定与该协议签订前后双方微信协商内容也可以相互对应。数诺公司上诉称其与千算公司于2020年8月10日达成《软件项目开发协议书》,然该协议书既未签字盖章,也被双方之后签订的《备忘录》明确约定为无效,且该协议书内容与合同实际履行情况和双方微信协商内容均不能相互对应,故本院对其该上诉主张不予采信。此外,俞洋在《项目开发合作协议》签订后对合同条款提出异议亦不影响《项目开发合作协议》的成立和生效,数诺公司关于因俞洋提出异议故双方未就《项目开发合作协议》达成合意的上诉理由,本院亦不予支持。至于数诺公司主张的所谓贿赂事实,亦不影响《项目开发合作协议》的效力。综上,本案当事人之间的《项目开发合作协议》成立并生效,涉案计算机软件开发合同的委托方是千户万物公司。
关于第二个争议焦点,上诉人主张由于被上诉人拒绝按合同约定支付第二期款项5万元故其行使不安抗辩权拒绝继续履行合同不构成违约。本院对此认为,《项目开发合作协议》第二条约定的第二期付款条件为2020年11月30日前完成app及小程序并验收,而根据一审法院对2020年11月30日涉案软件源代码的功能演示结果,涉案软件未能完全实现双方在“千户万物新(1)”文件中所载的“首页”“吆喝”“圈子”等模块内容,且“吆喝”“圈子”是涉案软件的重要功能,故合同第二期款项的付款条件并未成就。据此,上诉人数诺公司无权行使不安抗辩权,其拒绝继续履行合同构成根本违约。上诉人还主张一审法院按照“12月更改需求列表”对源代码功能演示结果进行判决系程序不合法,本院对此认为,“12月更改需求列表”包含了属于“千户万物新(1)”中的“首页”“吆喝”“圈子”等内容,上诉人均未完成,故一审法院系根据“千户万物新(1)”文件认定涉案软件未实现双方约定的开发内容,该认定并无不当。
综上所述,数诺公司的上诉请求不能成立,应予驳回;一审判决认定事实清楚,适用法律正确,应予维持。依照《中华人民共和国民事诉讼法》第一百七十七条第一款第一项之规定,判决如下:
驳回上诉,维持原判。
二审案件受理费人民币3,000元,由上诉人上海数诺网络科技有限公司负担。
本判决为终审判决。

【版权声明】部分文章和信息来源于互联网、律师投稿,刊载此文是出于传递更多信息和学习之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明于本网联系,我们将予以及时更正或删除。 联系邮箱:help@wenfa.cn【在线反馈】

点赞

收藏

关注作者

关于作者
  • 博客:361 粉丝:1569

阅读

获赞

65

评论

18
张艳荣律师
尽职尽职,精益求精

wenfa.cn 在线问法

关注我们