deputyOrder.xml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <PLSQL>
  3. <declare>
  4. v_customer customer%rowtype;
  5. v_employee employee%rowtype;
  6. v_sale sale%rowtype;
  7. v_sd_id number;
  8. v_pr_code varchar2(64);
  9. v_vecode varchar2(64);
  10. v_vendor vendor%rowtype;
  11. v_ve_count number;
  12. </declare>
  13. <body>
  14. <iterator loop="orders" var="order">
  15. <block>
  16. begin
  17. select * into v_customer from customer where cu_uu=${order.enuu};
  18. exception when no_data_found then
  19. RAISE_APPLICATION_ERROR(-20010, '客户['||${order.enuu}||']不存在');
  20. end;
  21. begin
  22. select * into v_employee from employee where em_code=v_customer.cu_sellercode;
  23. exception when no_data_found then null;
  24. end;
  25. begin
  26. v_vecode := '';
  27. select count(1) into v_ve_count from vendor where ve_name=${order.tervendor};
  28. if v_ve_count > 0 then
  29. select * into v_vendor from vendor where ve_name=${order.tervendor};
  30. v_vecode := v_vendor.ve_code;
  31. end if;
  32. end;
  33. begin
  34. select * into v_sale from sale where sa_code=${order.salecode};
  35. exception when no_data_found then v_sale.sa_id := '';
  36. end;
  37. if v_sale.sa_id is null or ${order.statuscode} = 222 then
  38. if v_sale.sa_id is null then
  39. v_sale.sa_id := sale_seq.nextval;
  40. v_sale.sa_backstatus := '';
  41. else
  42. delete from saledetail where sd_said=v_sale.sa_id;
  43. delete from sale where sa_id=v_sale.sa_id;
  44. v_sale.sa_backstatus := '已下载';
  45. end if;
  46. v_sale.sa_code := ${order.salecode};
  47. v_sale.sa_pocode := ${order.salepocode};
  48. v_sale.sa_date := ${order.entrydate};
  49. v_sale.sa_kind := '代采订单';
  50. v_sale.sa_custcode := v_customer.cu_code;
  51. v_sale.sa_custname := v_customer.cu_name;
  52. v_sale.sa_currency := ${order.currency};
  53. v_sale.sa_apcustcode := v_customer.cu_code;
  54. v_sale.sa_apcustname := v_customer.cu_name;
  55. v_sale.sa_shcustcode := v_customer.cu_code;
  56. v_sale.sa_shcustname := v_customer.cu_name;
  57. v_sale.sa_paymentscode := v_customer.cu_paymentscode;
  58. v_sale.sa_payments := v_customer.cu_payments;
  59. v_sale.sa_toplace := v_customer.cu_add1;
  60. v_sale.sa_fromcode := ${order.code};
  61. v_sale.sa_sellercode := v_customer.cu_sellercode;
  62. v_sale.sa_departmentcode := v_employee.em_departmentcode;
  63. v_sale.sa_departmentname := v_employee.em_depart;
  64. v_sale.sa_recorder := '系统';
  65. v_sale.sa_recorddate := sysdate;
  66. v_sale.sa_statuscode := 'ENTERING';
  67. v_sale.sa_status := '在录入';
  68. v_sale.sa_vendcode := v_vecode;
  69. v_sale.sa_vendname := ${order.tervendor};
  70. v_sale.sa_a20_user := ${order.madealdate};
  71. v_sale.sa_a19_user := ${order.madealcode};
  72. v_sale.sa_a18_user := ${order.vendtel};
  73. v_sale.sa_a17_user := ${order.venduser};
  74. v_sale.sa_a14_user := ${order.shipdate};
  75. v_sale.sa_a16_user := ${order.deliverymethod};
  76. v_sale.sa_a15_user := ${order.pickupmethod};
  77. v_sale.sa_a11_user := ${order.tervendaddress};
  78. v_sale.sa_a9_user := ${order.companyname};
  79. v_sale.sa_a10_user := ${order.requirepaydate};
  80. v_sale.sa_a8_user := ${order.bankname};
  81. v_sale.sa_a6_user := ${order.bankaccount};
  82. v_sale.sa_a7_user := ${order.bankaddress};
  83. v_sale.sa_a5_user := ${order.bankcode};
  84. v_sale.sa_a4_user := ${order.otherdata};
  85. v_sale.sa_a3_user := ${order.legalrepresent};
  86. v_sale.sa_a24_user := ${order.deliverydate};
  87. v_sale.sa_a22_user := ${order.paydate};
  88. v_sale.sa_payername := ${order.paycomname};
  89. v_sale.sa_payeraddress := ${order.paycomaddress};
  90. v_sale.sa_a13_user := ${order.riskmethod};
  91. v_sale.sa_a12_user := ${order.taxpaymentmethod};
  92. v_sale.sa_a2_user := ${order.enfax};
  93. v_sale.sa_a25_user := ${order.paycomaddress};
  94. v_sale.sa_a10_user_2 := ${order.actualpaydate};
  95. v_sale.sa_state_user := ${order.paymentmethod};
  96. v_sale.sa_ssa_user := ${order.paydeldate};
  97. insert into sale values v_sale;
  98. </block>
  99. <iterator loop="order.deputyOrderItems" var="item">
  100. v_sd_id := saledetail_seq.nextval;
  101. v_pr_code := 'PROD'||to_char(sysdate,'yymmdd')||v_sd_id;
  102. insert into product (pr_id, pr_detail, pr_spec, pr_speccs, pr_unit, pr_recordman, pr_docdate, pr_status, pr_statuscode, pr_remark,
  103. pr_code, pr_orispeccode, pr_brand) values (product_seq.nextval, ${item.prodname},
  104. ${item.prodcode}, ${item.prodspec}, 'PCS', '系统', sysdate, '已审核', 'AUDITED',
  105. v_sale.sa_code||'平台代采订单产生', v_pr_code, ${item.prodcode}, ${item.prodbrand});
  106. insert into saledetail (sd_id, sd_said, sd_detno, sd_code, sd_prodcode, sd_qty, sd_price, sd_total,sd_remark,
  107. sd_delivery, SD_COSTINGPRICE) values (v_sd_id, v_sale.sa_id, ${item.detno}, v_sale.sa_code, v_pr_code, ${item.amount},
  108. ${item.unitprice}, ${item.totalprice}, ${item.remark}, ${order.deliverydate}, ${item.purcprice});
  109. </iterator>
  110. <block>
  111. end if;
  112. </block>
  113. </iterator>
  114. </body>
  115. </PLSQL>