bills_lib_interfaces.js 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082
  1. /**
  2. * Created by vian on 2017/3/20.
  3. */
  4. let model = require("./bills_lib_model");
  5. let counter = require("../../../public/counter/counter");
  6. let StdBillsLib = model.stdBillsLibMod;
  7. let Bills = model.billsMod;
  8. let JobContent = model.jobContentMod;
  9. let ItemCharacter = model.itemCharacterMod;
  10. /*var fieldArr = ["code", "name", "unit", "ruleText", "Expression"];*/
  11. let billsLibDao = function(){};
  12. billsLibDao.prototype.getMaxNumber = function(gData, callback){
  13. let billsLibId = gData.billsLibId;
  14. let field = gData.field;
  15. if(field === 'jobs'){
  16. JobContent.find({billsLibId: billsLibId}).sort({code: -1}).limit(1).exec(function(err, result){
  17. if(err){
  18. callback(1, 'Error', null);
  19. }
  20. else {
  21. callback(0, '', result);
  22. }
  23. });
  24. }
  25. else if(field === 'items'){
  26. ItemCharacter.find({billsLibId: billsLibId}).sort({code: -1}).limit(1).exec(function(err, result){
  27. if(err){
  28. callback(1, 'Error', null);
  29. }
  30. else {
  31. callback(0, '', result);
  32. }
  33. });
  34. }
  35. };
  36. //----------StdBillsLib-------------------
  37. billsLibDao.prototype.getABillsLib = function(data, callback){
  38. let billsLibId = data.billsLibId;
  39. StdBillsLib.find({billsLibId: billsLibId, deleted: false}, function(err, data){
  40. if(err){
  41. callback(1, 'Error', null);
  42. }
  43. else {
  44. callback(0, '', data);
  45. }
  46. });
  47. };
  48. billsLibDao.prototype.getStdBillsLib = function(data, callback){
  49. let userId = data.userId;
  50. StdBillsLib.find({userId: userId, deleted: false}, "-_id", function(err, data){
  51. if(err){
  52. callback(1, "Error", null);
  53. }
  54. else{
  55. callback(0, "", data);
  56. }
  57. })
  58. };
  59. billsLibDao.prototype.createStdBillsLib = function(clibData, callback){
  60. counter.counterDAO.getIDAfterCount(counter.moduleName.billsLib, 1, function(err, result){
  61. let billsLibId = result.value.sequence_value;
  62. let userId = clibData.userId;
  63. let billsLibName = clibData.name;
  64. let createDate = Date.now();
  65. let newStdBillsLib = {
  66. userId: userId,
  67. billsLibId: billsLibId,
  68. billsLibName: billsLibName,
  69. createDate: createDate,
  70. deleted: false
  71. };
  72. StdBillsLib.create(newStdBillsLib, function(err){
  73. if(err){
  74. callback(1, "Error", null);
  75. }
  76. else {
  77. StdBillsLib.find({billsLibId: billsLibId}, function(err, data){
  78. if(err){
  79. callback(1, "Error", null)
  80. }
  81. else {
  82. callback(0, "", data);
  83. }
  84. });
  85. }
  86. });
  87. });
  88. };
  89. billsLibDao.prototype.deleteStdBillsLib = function(billsLibId, callback){
  90. StdBillsLib.update({billsLibId: billsLibId}, {$set: {deleted: true}}, function(err){
  91. if(err){
  92. callback(1, 'Error');
  93. }
  94. else{
  95. callback(0, '');
  96. }
  97. });
  98. };
  99. billsLibDao.prototype.renameStdBillsLib = function(renameData, callback){
  100. let billsLibId = renameData.id;
  101. let renameVal = renameData.value;
  102. StdBillsLib.update({billsLibId: billsLibId}, {$set:{billsLibName: renameVal}}, function(err){
  103. if(err){
  104. callback(1, "Error");
  105. }
  106. else{
  107. callback(0, "");
  108. }
  109. });
  110. };
  111. billsLibDao.prototype.getStdBillsLibName = function(billsLibId, callback){
  112. StdBillsLib.find({billsLibId: billsLibId, deleted: false}, "-_id", function(err, data){
  113. if(err){
  114. callback(1, "Error", null);
  115. }
  116. else {
  117. callback(0, "", data);
  118. }
  119. });
  120. };
  121. billsLibDao.prototype.getCurrentUniqId = function(callback){
  122. counter.counterDAO.getCurrentID(counter.moduleName.billsLib, function(result, err){
  123. let id = result.sequence_value;
  124. if(err){
  125. console.log(`enter1`);
  126. callback(1, 'Error', null);
  127. }
  128. else{
  129. console.log(`enter2: ${result}`);
  130. console.log(`enter2-id: ${id}`);
  131. callback(0, '', id);
  132. }
  133. });
  134. }
  135. //----------------------------Bills---------------------
  136. billsLibDao.prototype.getBills = function (billsLibId, callback) {
  137. Bills.find({billsLibId: billsLibId, deleted: false}, "-_id", function(err, billsData){
  138. if(err){
  139. callback(1, "Error", null);
  140. }
  141. else{
  142. callback(0, "", billsData);
  143. }
  144. });
  145. }
  146. billsLibDao.prototype.createBills = function(cbillsData, callback){
  147. let newId = cbillsData.newId;
  148. let pid = cbillsData.ParentID;
  149. let nid = cbillsData.NextSiblingID;
  150. let billsLibId = cbillsData.billsLibId;
  151. let newBills = {
  152. ID: newId,
  153. ParentID: pid,
  154. NextSiblingID: nid,
  155. billsLibId: billsLibId,
  156. code: '',
  157. name: '',
  158. unit: '',
  159. ruleText: '',
  160. Expression: '',
  161. recharge:'',
  162. deleted: false
  163. };
  164. Bills.create(newBills, function(err){
  165. if(err){
  166. callback(1, "Error");
  167. }
  168. else{
  169. callback(0, "");
  170. }
  171. });
  172. };
  173. billsLibDao.prototype.updatePNId= function(upData, callback){
  174. let billsLibId = upData.billsLibId;
  175. let updateDatas = upData.updateData;
  176. let success = true;
  177. if(updateDatas.length > 0){
  178. updateDatas.forEach(function(data){
  179. if(data.ID.length >1){
  180. data.ID.forEach(function(id){
  181. if(data.ParentID && data.NextSiblingID){
  182. Bills.update({billsLibId: billsLibId, ID: id}, {$set: {ParentID: data.ParentID, NextSiblingID: data.NextSiblingID}}, function(err){
  183. if(err){
  184. callback(1, "Error")
  185. success = false;
  186. }
  187. });
  188. }
  189. else if(data.ParentID && !data.NextSiblingID){
  190. Bills.update({billsLibId: billsLibId, ID: id}, {$set: {ParentID: data.ParentID}}, function(err){
  191. if(err){
  192. callback(1, 'Error');
  193. success = false;
  194. }
  195. });
  196. }
  197. else if(!data.ParentID && data.NextSiblingID){
  198. Bills.update({billsLibId: billsLibId, ID: id}, {$set: {NextSiblingID: data.NextSiblingID}}, function(err){
  199. if(err){
  200. callback(1, 'Error');
  201. success = false;
  202. }
  203. });
  204. }
  205. });
  206. }
  207. else {
  208. if(data.ParentID && data.NextSiblingID){
  209. Bills.update({billsLibId: billsLibId, ID: data.ID}, {$set: {ParentID: data.ParentID, NextSiblingID: data.NextSiblingID}}, function(err){
  210. if(err){
  211. callback(1, "Error")
  212. success = false;
  213. }
  214. });
  215. }
  216. else if(data.ParentID && !data.NextSiblingID){
  217. Bills.update({billsLibId: billsLibId, ID: data.ID}, {$set: {ParentID: data.ParentID}}, function(err){
  218. if(err){
  219. callback(1, 'Error');
  220. success = false;
  221. }
  222. });
  223. }
  224. else if(!data.ParentID && data.NextSiblingID){
  225. Bills.update({billsLibId: billsLibId, ID: data.ID}, {$set: {NextSiblingID: data.NextSiblingID}}, function(err){
  226. if(err){
  227. callback(1, 'Error');
  228. success = false;
  229. }
  230. });
  231. }
  232. }
  233. });
  234. }
  235. if(success){
  236. callback(0, '');
  237. }
  238. }
  239. billsLibDao.prototype.updateBills = function(ubillsData, callback){
  240. let billsLibId = ubillsData.billsLibId;
  241. let updateId = ubillsData.updateId;
  242. let updateField = ubillsData.field;
  243. let updateData = ubillsData.data;
  244. if(updateField === "code"){
  245. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {code: updateData}}, function(err){
  246. if(err){
  247. callback(1, "Error");
  248. }
  249. else {
  250. callback(0, "");
  251. }
  252. });
  253. }
  254. else if(updateField === "name"){
  255. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {name: updateData}}, function(err){
  256. if(err){
  257. callback(1, "Error");
  258. }
  259. else {
  260. callback(0, "");
  261. }
  262. });
  263. }
  264. else if(updateField === "unit"){
  265. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {unit: updateData}}, function(err){
  266. if(err){
  267. callback(1, "Error");
  268. }
  269. else {
  270. callback(0, "");
  271. }
  272. });
  273. }
  274. else if(updateField === "ruleText"){
  275. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {ruleText: updateData}}, function(err){
  276. if(err){
  277. callback(1, "Error");
  278. }
  279. else {
  280. callback(0, "");
  281. }
  282. });
  283. }
  284. else if(updateField === "jobs"){
  285. Bills.update({billsLibId: billsLibId, ID: updateId}, {$addToSet: {jobs: updateData}}, function(err){
  286. if(err){
  287. callback(1, "Error");
  288. }
  289. else {
  290. callback(0, "");
  291. }
  292. });
  293. }
  294. else if(updateField === "items"){
  295. Bills.update({billsLibId: billsLibId, ID: updateId}, {$addToSet: {items: updateData}}, function(err){
  296. if(err){
  297. callback(1, "Error");
  298. }
  299. else {
  300. callback(0, "");
  301. }
  302. });
  303. }
  304. }
  305. billsLibDao.prototype.updateBillsArr = function(updateData, callback){
  306. let billsLibId = updateData.billsLibId;
  307. let updateId = updateData.updateId;
  308. let orgId = updateData.orgId;
  309. let newId = updateData.newId;
  310. let classify = updateData.classify;
  311. let type = updateData.type;
  312. let success = true;
  313. if(classify === 'jobs'){
  314. if(orgId && newId && type === 'update'){
  315. Bills.update({billsLibId: billsLibId, ID: updateId, jobs: orgId}, {$set: {'jobs.$': newId}}, function(err){
  316. if(err){
  317. callback(1, 'Error');
  318. }
  319. else {
  320. callback(0, '');
  321. }
  322. });
  323. }
  324. if(orgId && !newId && type === 'delete'){
  325. orgId.forEach(function(oid){
  326. Bills.update({billsLibId: billsLibId, ID: updateId}, {$pull: {jobs: oid}}, function(err){
  327. if(err){
  328. callback(1, 'Error');
  329. }
  330. });
  331. });
  332. }
  333. //todo: test
  334. if(orgId && !newId && type === 'deleteAll'){
  335. updateId.forEach(function(uid){
  336. orgId.forEach(function(oid){
  337. Bills.update({billsLibId: billsLibId, ID: uid}, {$pull: {jobs: oid}}, function(err){
  338. if(err){
  339. callback(1, 'Error');
  340. }
  341. });
  342. });
  343. });
  344. }
  345. }
  346. else if(classify === 'items'){
  347. if(orgId && newId && type === 'update'){
  348. Bills.update({billsLibId: billsLibId, ID: updateId, items: orgId}, {$set: {'items.$': newId}}, function(err){
  349. if(err){
  350. callback(1, 'Error');
  351. }
  352. else {
  353. callback(0, '');
  354. }
  355. });
  356. }
  357. if(orgId && !newId && type === 'delete'){
  358. orgId.forEach(function(oid){
  359. Bills.update({billsLibId: billsLibId, ID: updateId}, {$pull: {items: oid}}, function(err){
  360. if(err){
  361. callback(1, 'Error');
  362. }
  363. });
  364. });
  365. }
  366. if(orgId && !newId && type === 'deleteAll'){
  367. updateId.forEach(function(uid){
  368. orgId.forEach(function(oid){
  369. Bills.update({billsLibId: billsLibId, ID: uid}, {$pull: {items: oid}}, function(err){
  370. if(err){
  371. callback(1, 'Error');
  372. }
  373. });
  374. });
  375. });
  376. }
  377. }
  378. };
  379. billsLibDao.prototype.pasteBills = function(pData, callback){
  380. let datas = pData.datas;
  381. datas.forEach(function(data){
  382. Bills.update({billsLibId: data.billsLibId, ID: data.ID}, {$set: {code: data.code, name: data.name, unit: data.unit, ruleText: data.ruleText}}, function(err){
  383. if(err){
  384. callback(1, 'Error');
  385. }
  386. });
  387. });
  388. }
  389. billsLibDao.prototype.updateRecharge = function(uData, callback){
  390. let billsLibId = uData.billsLibId;
  391. let updateIds = uData.updateIds;
  392. let data = uData.data;
  393. let success = true;
  394. updateIds.forEach(function(id){
  395. Bills.update({billsLibId: billsLibId, ID: id}, {$set: {recharge: data}}, function(err){
  396. if(err){
  397. callback(1, 'Error');
  398. success = false;
  399. }
  400. });
  401. });
  402. if(success){
  403. callback(0, '');
  404. }
  405. };
  406. billsLibDao.prototype.pasteRel = function (data, callback) {
  407. const UpdateExist = 'updateExist', UpdateNew = 'updateNew', CreateExist = 'createExist', CreateNew = 'createNew';
  408. let success = true;
  409. let ueDatas = [], unDatas = [], ceDatas = [], cnDatas = [];
  410. let frontDatas ;
  411. //let pasteDatas = data.pasteDatas;
  412. let field = data.field;
  413. let updateDatas = data.updateDatas;
  414. let createDatas = data.createDatas;
  415. const Jobs = 'jobs', Items = 'items';
  416. if(field === Jobs){
  417. if(updateDatas.length > 0){
  418. for(let i=0; i<updateDatas.length; i++){
  419. if(updateDatas[i].type === UpdateExist){
  420. let orgJobId = updateDatas[i].orgJobId, newJobId = updateDatas[i].newJobId,
  421. nodeId = updateDatas[i].nodeId, billsLibId = updateDatas[i].billsLibId, newData = updateDatas[i].newData;
  422. if(orgJobId && newJobId && nodeId && billsLibId){
  423. Bills.update({billsLibId: billsLibId, ID: nodeId, jobs: orgJobId}, {$set: {'jobs.$': newJobId}}, function(err){
  424. if(err){
  425. success = false;
  426. }
  427. else{
  428. }
  429. });
  430. }
  431. }
  432. if(updateDatas[i].type === UpdateNew){
  433. let billsLibId = updateDatas[i].billsLibId, nodeId = updateDatas[i].nodeId, newData = updateDatas[i].newData,
  434. orgJobId = updateDatas[i].orgJobId, code = updateDatas[i].code, id = updateDatas[i].newJobId;
  435. if(billsLibId && nodeId && newData && orgJobId && code && id){
  436. let newJobContent;
  437. newJobContent = {
  438. id: id,
  439. billsLibId: billsLibId,
  440. code: code,
  441. content: newData,
  442. deleted: false
  443. }
  444. JobContent.create(newJobContent, function(err){
  445. if(err){
  446. success = false;
  447. }
  448. else{
  449. Bills.update({billsLibId: billsLibId, ID: nodeId, jobs: orgJobId}, {$set: {'jobs.$': id}}, function(err){
  450. if(err){
  451. success = false;
  452. }
  453. else{
  454. }
  455. });
  456. }
  457. });
  458. }
  459. }
  460. }
  461. }
  462. if(createDatas.length > 0){
  463. for(let i=0; i<createDatas.length; i++){
  464. if(createDatas[i].type === CreateExist){
  465. let billsLibId = createDatas[i].billsLibId, newData = createDatas[i].newData,
  466. nodeId = createDatas[i].nodeId, jobId = createDatas[i].jobId;
  467. if(billsLibId && newData && nodeId && jobId){
  468. Bills.update({billsLibId: billsLibId, ID: nodeId}, {$addToSet: {jobs: jobId}}, function(err){
  469. if(err){
  470. success = false;
  471. }
  472. else {
  473. }
  474. });
  475. }
  476. }
  477. if(createDatas[i].type === CreateNew){
  478. let billsLibId = createDatas[i].billsLibId, newData = createDatas[i].newData,
  479. code = createDatas[i].code, nodeId = createDatas[i].nodeId, id = createDatas[i].id;
  480. if(billsLibId && newData && code && id){
  481. let newJobContent;
  482. newJobContent = {
  483. id: id,
  484. billsLibId: billsLibId,
  485. code: code,
  486. content: newData,
  487. deleted: false
  488. }
  489. JobContent.create(newJobContent, function(err){
  490. if(err){
  491. success = false;
  492. }
  493. else{
  494. Bills.update({billsLibId: billsLibId, ID: nodeId}, {$addToSet: {jobs: id}}, function(err){
  495. if(err){
  496. success = false;
  497. }
  498. else {
  499. }
  500. });
  501. }
  502. });
  503. }
  504. }
  505. }
  506. }
  507. }
  508. if(field === Items){
  509. if(updateDatas.length > 0){
  510. for(let i=0; i<updateDatas.length; i++){
  511. if(updateDatas[i].type === UpdateExist){
  512. let orgItemId = updateDatas[i].orgItemId, newItemId = updateDatas[i].newItemId,
  513. nodeId = updateDatas[i].nodeId, billsLibId = updateDatas[i].billsLibId, newData = updateDatas[i].newData;
  514. if(orgItemId && newItemId && nodeId && billsLibId){
  515. Bills.update({billsLibId: billsLibId, ID: nodeId, items: orgItemId}, {$set: {'items.$': newItemId}}, function(err){
  516. if(err){
  517. success = false;
  518. }
  519. else{
  520. }
  521. });
  522. }
  523. }
  524. if(updateDatas[i].type === UpdateNew){
  525. let billsLibId = updateDatas[i].billsLibId, nodeId = updateDatas[i].nodeId, newData = updateDatas[i].newData,
  526. orgItemId = updateDatas[i].orgItemId, code = updateDatas[i].code, id = updateDatas[i].newItemId;
  527. if(billsLibId && nodeId && newData && orgItemId && code && id){
  528. let newItemContent;
  529. newItemContent = {
  530. id: id,
  531. billsLibId: billsLibId,
  532. code: code,
  533. content: newData,
  534. deleted: false
  535. }
  536. ItemCharacter.create(newItemContent, function(err){
  537. if(err){
  538. success = false;
  539. }
  540. else{
  541. Bills.update({billsLibId: billsLibId, ID: nodeId, items: orgItemId}, {$set: {'items.$': id}}, function(err){
  542. if(err){
  543. success = false;
  544. }
  545. else{
  546. }
  547. });
  548. }
  549. });
  550. }
  551. }
  552. }
  553. }
  554. if(createDatas.length > 0){
  555. for(let i=0; i<createDatas.length; i++){
  556. if(createDatas[i].type === CreateExist){
  557. let billsLibId = createDatas[i].billsLibId, newData = createDatas[i].newData,
  558. nodeId = createDatas[i].nodeId, itemId = createDatas[i].itemId;
  559. if(billsLibId && newData && nodeId && itemId){
  560. Bills.update({billsLibId: billsLibId, ID: nodeId}, {$addToSet: {items: itemId}}, function(err){
  561. if(err){
  562. success = false;
  563. }
  564. else {
  565. }
  566. });
  567. }
  568. }
  569. if(createDatas[i].type === CreateNew){
  570. let billsLibId = createDatas[i].billsLibId, newData = createDatas[i].newData,
  571. code = createDatas[i].code, nodeId = createDatas[i].nodeId, id = createDatas[i].id;
  572. if(billsLibId && newData && code && id){
  573. let newItemContent;
  574. newItemContent = {
  575. id: id,
  576. billsLibId: billsLibId,
  577. code: code,
  578. content: newData,
  579. deleted: false
  580. }
  581. ItemCharacter.create(newItemContent, function(err){
  582. if(err){
  583. success = false;
  584. }
  585. else{
  586. Bills.update({billsLibId: billsLibId, ID: nodeId}, {$addToSet: {items: id}}, function(err){
  587. if(err){
  588. success = false;
  589. }
  590. else {
  591. }
  592. });
  593. }
  594. });
  595. }
  596. }
  597. }
  598. }
  599. }
  600. callback(0, '');
  601. };
  602. billsLibDao.prototype.deleteBills = function(delData, callback){
  603. let deleteIds = delData.deleteIds;
  604. let billsLibId = delData.billsLibId;
  605. let success = true;
  606. if(deleteIds){
  607. deleteIds.forEach(function(delId){
  608. Bills.update({billsLibId: billsLibId, ID: delId}, {$set: {deleted: true}}, function(err){
  609. if(err){
  610. success = false;
  611. callback(1, 'Error');
  612. }
  613. });
  614. });
  615. if(success){
  616. callback(0, '');
  617. }
  618. }
  619. }
  620. //--------------JobContent------------------
  621. billsLibDao.prototype.getJobContent = function(gJobData, callback){
  622. let billsLibId = gJobData.billsLibId;
  623. JobContent.find({billsLibId: billsLibId, deleted: false}, '-_id').sort({code: 1}).exec(function(err, result){
  624. if(err){
  625. callback(1, 'Error', null);
  626. }
  627. else {
  628. callback(0, '', result);
  629. }
  630. });
  631. }
  632. billsLibDao.prototype.createJobContent = function(cJobData, callback){
  633. let data = cJobData.data;
  634. let billsLibId = cJobData.billsLibId;
  635. let serialNo = cJobData.serialNo;
  636. let id = cJobData.id;
  637. let newJobContent;
  638. newJobContent = {
  639. id: id,
  640. billsLibId: billsLibId,
  641. code: serialNo,
  642. content: data,
  643. deleted: false
  644. }
  645. JobContent.create(newJobContent, function(err){
  646. if(err){
  647. callback(1, "Error", null);
  648. }
  649. else{
  650. callback(0, "", id);
  651. }
  652. });
  653. };
  654. billsLibDao.prototype.updateJobContent = function(uJobData, callback){
  655. let billsLibId = uJobData.billsLibId;
  656. let field = uJobData.field;
  657. let updateData = uJobData.data;
  658. let updateid = uJobData.updateId;
  659. if(field == "code"){
  660. JobContent.update({billsLibId: billsLibId, id: updateid}, {$set: {code: updateData}}, function(err){
  661. if(err){
  662. callback(1, "Error");
  663. }
  664. else{
  665. callback(0, "");
  666. }
  667. });
  668. }
  669. else if(field == "content"){
  670. JobContent.update({billsLibId: billsLibId, id: updateid}, {$set: {content: updateData}}, function(err){
  671. if(err){
  672. callback(1, "Error");
  673. }
  674. else{
  675. callback(0, "");
  676. }
  677. });
  678. }
  679. };
  680. billsLibDao.prototype.deleteJobContent = function(data, callback){
  681. let delIds = data.ids;
  682. let billsLibId = data.billsLibId;
  683. let success = true;
  684. delIds.forEach(function(id){
  685. JobContent.update({billsLibId: billsLibId, id: id}, {$set: {deleted: true}}, function(err,result){
  686. if(err){
  687. success = false;
  688. callback(1, 'Error');
  689. }
  690. else {
  691. }
  692. });
  693. });
  694. }
  695. billsLibDao.prototype.pasteJobs = function (data, callback) {
  696. let pasteDatas = data.pasteDatas;
  697. let updateDatas = pasteDatas.updateDatas,
  698. createDatas = pasteDatas.createDatas;
  699. if(updateDatas.length > 0){
  700. for(let i=0; i<updateDatas.length; i++){
  701. let updateId = updateDatas[i].orgId,
  702. field = updateDatas[i].field,
  703. updateData = updateDatas[i].data, billsLibId = updateDatas[i].billsLibId;
  704. if(field === 'code'){
  705. JobContent.update({billsLibId: billsLibId, id: updateId}, {$set: {code: updateData}}, function(err){
  706. if(err){
  707. }
  708. });
  709. }
  710. else{
  711. JobContent.update({billsLibId: billsLibId, id: updateId}, {$set: {content: updateData}}, function(err){
  712. if(err){
  713. }
  714. });
  715. }
  716. }
  717. }
  718. if(createDatas.length > 0){
  719. for(let i =0; i<createDatas.length; i++){
  720. let billsLibId = createDatas[i].billsLibId, id = createDatas[i].id,
  721. code , content;
  722. let jobObj;
  723. if(createDatas[i].type === 'CreateT'){
  724. jobObj = {
  725. billsLibId: billsLibId,
  726. id: id,
  727. code: createDatas[i].code,
  728. content: createDatas[i].content,
  729. deleted: false
  730. }
  731. }
  732. else{
  733. if(createDatas[i].field === 'code'){
  734. jobObj = {
  735. billsLibId: billsLibId,
  736. id: id,
  737. code: createDatas[i].data,
  738. content: '',
  739. deleted: false
  740. }
  741. }
  742. else {
  743. jobObj = {
  744. billsLibId: billsLibId,
  745. id: id,
  746. code: createDatas[i].code,
  747. content: createDatas[i].data,
  748. deleted: false
  749. }
  750. }
  751. }
  752. JobContent.create(jobObj, function(err){
  753. if(err){
  754. }
  755. });
  756. }
  757. }
  758. }
  759. //----------------------ItemCharacter---------------------
  760. billsLibDao.prototype.getItemCharacter = function(gdata, callback){
  761. let billsLibId = gdata.billsLibId;
  762. ItemCharacter.find({billsLibId: billsLibId, deleted: false}, '-_id').sort({code: 1}).exec(function(err, result){
  763. if(err){
  764. callback(1, 'Error', null);
  765. }
  766. else {
  767. callback(0, '', result);
  768. }
  769. });
  770. }
  771. billsLibDao.prototype.createItemCharacter = function(cItemData, callback){
  772. let data = cItemData.data;
  773. let billsLibId = cItemData.billsLibId;
  774. let serialNo = cItemData.serialNo;
  775. let newItemCharacter;
  776. let id = cItemData.id;
  777. newItemCharacter = {
  778. id: id,
  779. billsLibId: billsLibId,
  780. content: data,
  781. code: serialNo,
  782. deleted: false
  783. }
  784. ItemCharacter.create(newItemCharacter, function(err){
  785. if(err){
  786. callback(1, "Error", null);
  787. }
  788. else{
  789. callback(0, "", id);
  790. }
  791. });
  792. };
  793. billsLibDao.prototype.updateItemCharacter = function(uItemData, callback){
  794. let field = uItemData.field;
  795. let updateData = uItemData.data;
  796. let id = uItemData.updateId;
  797. let billsLibId = uItemData.billsLibId;
  798. if(field === "code"){
  799. ItemCharacter.update({billsLibId: billsLibId, id: id}, {$set: {code: updateData}}, function(err){
  800. if(err){
  801. callback(1, "Error");
  802. }
  803. else{
  804. callback(0, "");
  805. }
  806. });
  807. }
  808. else if(field === "content"){
  809. ItemCharacter.update({billsLibId: billsLibId, id: id}, {$set: {content: updateData}}, function(err){
  810. if(err){
  811. callback(1, "Error");
  812. }
  813. else{
  814. callback(0, "");
  815. }
  816. });
  817. }
  818. };
  819. billsLibDao.prototype.updateValue = function(uData, callback){
  820. let type = uData.type;
  821. let updateId = uData.updateId;
  822. let data = uData.data;
  823. let deleteCodes = uData.deleteCodes;
  824. let billsLibId = uData.billsLibId;
  825. if(type === 'create'){
  826. ItemCharacter.update({billsLibId: billsLibId, id: updateId}, {$addToSet: {itemValue: data}}, function(err){
  827. if(err){
  828. callback(1, 'Error');
  829. }
  830. else{
  831. callback(0, '');
  832. }
  833. });
  834. }
  835. else if(type === 'update'){
  836. if(data.field === 'code'){
  837. ItemCharacter.update({billsLibId: billsLibId, id: updateId, 'itemValue.code': data.code}, {$set: {'itemValue.$.code': data.newData}}, function(err){
  838. if(err){
  839. callback(1, 'Error');
  840. }
  841. else{
  842. callback(0, '');
  843. }
  844. });
  845. }
  846. else {
  847. ItemCharacter.update({billsLibId: billsLibId, id: updateId, 'itemValue.code': data.code}, {$set: {'itemValue.$.value': data.newData}}, function(err,result){
  848. if(err){
  849. callback(1, 'Error');
  850. }
  851. else{
  852. console.log(`suc`);
  853. console.log(result);
  854. callback(0, '');
  855. }
  856. });
  857. }
  858. }
  859. //delete
  860. else {
  861. if(deleteCodes.length > 0){
  862. deleteCodes.forEach(function(code){
  863. ItemCharacter.update({billsLibId: billsLibId, id: updateId}, {$pull: {itemValue: {code: code}}}, function(err){
  864. if(err){
  865. callback(1, 'Error');
  866. }
  867. });
  868. });
  869. }
  870. }
  871. };
  872. billsLibDao.prototype.deleteItemCharacter = function(data, callback){
  873. let delIds = data.ids;
  874. let success = true;
  875. let billsLibId = data.billsLibId;
  876. delIds.forEach(function(id){
  877. /*ItemCharacter.remove({id: id}, function(err){
  878. if(err){
  879. callback(1, "Error");
  880. }
  881. });*/
  882. ItemCharacter.update({billsLibId: billsLibId, id: id}, {$set: {deleted: true}}, function(err){
  883. if(err){
  884. success = false;
  885. callback(1, 'Error');
  886. }
  887. });
  888. });
  889. }
  890. billsLibDao.prototype.pasteItems = function (data, callback) {
  891. let pasteDatas = data.pasteDatas;
  892. let updateDatas = pasteDatas.updateDatas,
  893. createDatas = pasteDatas.createDatas;
  894. if(updateDatas.length > 0){
  895. for(let i=0; i<updateDatas.length; i++){
  896. let updateId = updateDatas[i].orgId,
  897. field = updateDatas[i].field,
  898. updateData = updateDatas[i].data, billsLibId = updateDatas[i].billsLibId;
  899. if(field === 'code'){
  900. ItemCharacter.update({billsLibId: billsLibId, id: updateId}, {$set: {code: updateData}}, function(err){
  901. if(err){
  902. }
  903. });
  904. }
  905. else{
  906. ItemCharacter.update({billsLibId: billsLibId, id: updateId}, {$set: {content: updateData}}, function(err){
  907. if(err){
  908. }
  909. });
  910. }
  911. }
  912. }
  913. if(createDatas.length > 0){
  914. for(let i =0; i<createDatas.length; i++){
  915. let billsLibId = createDatas[i].billsLibId, id = createDatas[i].id,
  916. code , content;
  917. let itemObj;
  918. if(createDatas[i].type === 'CreateT'){
  919. itemObj = {
  920. billsLibId: billsLibId,
  921. id: id,
  922. code: createDatas[i].code,
  923. content: createDatas[i].content,
  924. deleted: false
  925. }
  926. }
  927. else{
  928. if(createDatas[i].field === 'code'){
  929. itemObj = {
  930. billsLibId: billsLibId,
  931. id: id,
  932. code: createDatas[i].data,
  933. content: '',
  934. deleted: false
  935. }
  936. }
  937. else {
  938. itemObj = {
  939. billsLibId: billsLibId,
  940. id: id,
  941. code: createDatas[i].code,
  942. content: createDatas[i].data,
  943. deleted: false
  944. }
  945. }
  946. }
  947. ItemCharacter.create(itemObj, function(err){
  948. if(err){
  949. }
  950. });
  951. }
  952. }
  953. };
  954. billsLibDao.prototype.pasteValues = function(data, callback) {
  955. let pasteDatas = data.pasteDatas;
  956. let updateDatas = pasteDatas.updateDatas, createDatas = pasteDatas.createDatas;
  957. console.log(`test`);
  958. if (updateDatas.length > 0) {
  959. for (let i = 0; i < updateDatas.length; i++) {
  960. let billsLibId = updateDatas[i].billsLibId, itemId = updateDatas[i].itemId, orgCode = updateDatas[i].orgId;
  961. console.log(`i = ${i}`);
  962. if (updateDatas[i].type === 'UpdateT') {
  963. console.log(`UpdateT`);
  964. let valueObj = {code: updateDatas[i].code, value: updateDatas[i].content};
  965. ItemCharacter.update({billsLibId: billsLibId, id: itemId}, {$pull: {itemValue: {code: orgCode}}}, function (err) {
  966. if (err) {
  967. } else {
  968. ItemCharacter.update({billsLibId: billsLibId, id: itemId}, {$addToSet: {itemValue: valueObj}}, function (err) {
  969. if (err) {
  970. }
  971. });
  972. }
  973. });
  974. }
  975. else if (updateDatas[i].type === 'Update' && updateDatas[i].field === 'code') {
  976. console.log(`UpdateCode`);
  977. ItemCharacter.update({billsLibId: billsLibId, id: itemId, 'itemValue.code': orgCode},
  978. {$set: {'itemValue.$.code': updateDatas[i].data}}, function (err) {
  979. if(err){
  980. }
  981. });
  982. }
  983. else {
  984. console.log(`UpdateValue`);
  985. console.log(`billsLibId: ${updateDatas[i].billsLibId} itemId: ${updateDatas[i].itemId} updateCode: ${updateDatas[i].orgId} value: ${updateDatas[i].data}`);
  986. ItemCharacter.update({billsLIbId: billsLibId, id: itemId, 'itemValue.code': orgCode}, {$set: {'itemValue.$.value': updateDatas[i].data}}, function(err, result){
  987. if(err){
  988. console.log(`Error`);
  989. }
  990. else {
  991. console.log(`success`);
  992. console.log(result);
  993. }
  994. });
  995. }
  996. }
  997. }
  998. if(createDatas.length >0){
  999. for(let i=0; i< createDatas.length; i++){
  1000. let valueObj
  1001. if(createDatas[i].type === 'CreateT'){
  1002. console.log(`CreateT`);
  1003. valueObj = {code: createDatas[i].code, value: createDatas[i].content};
  1004. ItemCharacter.update({billsLibId: createDatas[i].billsLibId, id: createDatas[i].itemId}, {$addToSet: {itemValue: valueObj}}, function (err) {
  1005. if (err) {
  1006. }
  1007. });
  1008. }
  1009. else if(createDatas[i].type === 'Create' && createDatas[i].field === 'code'){
  1010. console.log(`Create code`);
  1011. valueObj = {code: createDatas[i].data, value: ''};
  1012. ItemCharacter.update({billsLibId: createDatas[i].billsLibId, id: createDatas[i].itemId}, {$addToSet: {itemValue: valueObj}}, function (err) {
  1013. if (err) {
  1014. }
  1015. });
  1016. }
  1017. else {
  1018. console.log(`Create value`);
  1019. valueObj = {code: createDatas[i].code, value: createDatas[i].data};
  1020. ItemCharacter.update({billsLibId: createDatas[i].billsLibId, id: createDatas[i].itemId}, {$addToSet: {itemValue: valueObj}}, function (err) {
  1021. if (err) {
  1022. }
  1023. });
  1024. }
  1025. }
  1026. }
  1027. callback(0, '');
  1028. };
  1029. //
  1030. module.exports = new billsLibDao();