mode_custfinaAction.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?php
  2. /**
  3. * 客户.收款单
  4. */
  5. class mode_custfinaClassAction extends inputAction{
  6. protected function savebefore($table, $arr, $id, $addbo){
  7. $narr = array();
  8. $htid = (int)$arr['htid'];
  9. $money = floatval($arr['money']);
  10. if($money<=0)return '金额必须大于0';
  11. //编辑时判断
  12. if($this->rs && 1==2){
  13. $xgid = arrvalue($this->rs,'xgid');
  14. $xgnum = arrvalue($this->rs,'xgnum');
  15. if($xgnum && $xgid){
  16. $sflow = m('flow:'.$xgnum.'')->initbase($xgnum);
  17. $onrs = $sflow->getone($xgid);
  18. if($onrs){
  19. $jiner = floatval($onrs['money']);
  20. if($money != $jiner)return '此单据关联“'.$sflow->modename.','.$onrs['num'].'”的金额'.$onrs['money'].'不一样';
  21. $narr['custid'] = $onrs['custid'];
  22. $narr['custname'] = $onrs['custname'];
  23. $narr['htnum'] = $onrs['num'];
  24. }
  25. }
  26. }
  27. //从合同读取
  28. if($htid>0){
  29. $htrs = m('custract')->getone($htid);
  30. $narr['htnum'] = $htrs['num'];
  31. $narr['custid'] = $htrs['custid'];
  32. $narr['type'] = $htrs['type'];
  33. $narr['custname'] = $htrs['custname'];
  34. $zmoney = floatval($htrs['money']);
  35. $omoney = m('crm')->getmoneys($htid, $id);
  36. $chaojg = $omoney + $money - $zmoney;
  37. if($chaojg>0)return '金额已超过合同上金额'.$zmoney.'';
  38. }
  39. //从销售单读取
  40. if($htid<0){
  41. $htrs = m('goodm')->getone('`id`='.(0-$htid).'');
  42. $narr['htnum'] = $htrs['num'];
  43. $narr['custid'] = $htrs['custid'];
  44. $narr['type'] = '0';
  45. $narr['custname'] = $htrs['custname'];
  46. $zmoney = floatval($htrs['money']);
  47. $omoney = m('crm')->getmoneys($htid, $id);
  48. $chaojg = $omoney + $money - $zmoney;
  49. if($chaojg>0)return '金额已超过销售单上金额'.$zmoney.'';
  50. }
  51. $narr['htid'] = $htid;
  52. if(!isset($narr['type']))$narr['type'] = 0;
  53. return array('rows'=> $narr);
  54. }
  55. protected function saveafter($table, $arr, $id, $addbo){
  56. $htid = (int)$arr['htid'];
  57. if($htid>0)m('crm')->ractmoney($htid);
  58. if($htid<0){
  59. $htrs = m('goodm')->getone('`id`='.(0-$htid).'');
  60. m('crm')->xiaozhuantai($htrs,1);
  61. }
  62. }
  63. public function selectcust()
  64. {
  65. $rows = m('crm')->getmycust($this->adminid, $this->rock->arrvalue($this->rs, 'custid'));
  66. return $rows;
  67. }
  68. public function hetongdata()
  69. {
  70. $htid = 0;
  71. $mid = (int)$this->get('mid','0');
  72. if($mid>0){
  73. $htid = (int)$this->flow->getmou('htid', $mid); //当前记录也要显示合同ID
  74. }
  75. $rows = m('crm')->getmyract($this->adminid, $htid, 0);
  76. $arr = array();
  77. $arr[] = array(
  78. 'value' => '0',
  79. 'name' => '不选择',
  80. );
  81. foreach($rows as $k=>$rs){
  82. $arr[] = array(
  83. 'value' => $rs['id'],
  84. 'optgroup'=>'合同',
  85. 'name' => '['.$rs['num'].']'.$rs['custname'],
  86. );
  87. }
  88. //读取我的销售单
  89. $rows = m('goodm')->getall('`uid`='.$this->adminid.' and `type`=2 and `status`=1 and `custractid`=0 and (`ispay`=0 or `id`='.(0-$htid).')');
  90. foreach($rows as $k=>$rs){
  91. $arr[] = array(
  92. 'value' => '-'.$rs['id'],
  93. 'optgroup'=>'销售单',
  94. 'name' => '['.$rs['num'].']'.$rs['custname'],
  95. );
  96. }
  97. return $arr;
  98. }
  99. public function ractchangeAjax()
  100. {
  101. $htid = (int)$this->get('ractid');
  102. $cars['type'] = '0';
  103. //销售单
  104. if($htid<0){
  105. $xrs = m('goodm')->getone('`id`='.(0-$htid).'');
  106. $cars['custid'] = $xrs['custid'];
  107. $cars['custname'] = $xrs['custname'];
  108. $cars['num'] = $xrs['num'];
  109. $cars['signdt'] = $xrs['applydt'];
  110. $cars['money'] = m('crm')->xiaozhuantai($xrs,1);
  111. }else{
  112. $cars = m('custract')->getone($htid, 'id,custid,custname,money,type,num,signdt');
  113. $omoney = m('crm')->getmoneys($htid);
  114. $cars['money'] = $cars['money']-$omoney;
  115. }
  116. $this->returnjson($cars);
  117. }
  118. public function paytypedata()
  119. {
  120. $data = array();
  121. $rows = $this->option->getmnum('paytype');
  122. foreach($rows as $k=>$rs){
  123. $data[] = array(
  124. 'name' => $rs['name'],
  125. 'value' => $rs['name'],
  126. );
  127. }
  128. return $data;
  129. }
  130. protected function storeafter($table, $rows)
  131. {
  132. $money = 0;
  133. $hjfields = arrvalue($this->flow->moders, 'hjfields');
  134. if($rows && isempt($hjfields)){
  135. foreach($rows as $k1=>$rs1){
  136. $money+=floatval($rs1['money']);
  137. }
  138. $carr['money'] = $this->rock->number($money);
  139. $carr['htnum'] = '合计';
  140. $carr['id'] = 0;
  141. $rows[] = $carr;
  142. }
  143. $zhangarr = false;
  144. if($this->loadci==1 && $this->get('pnum')=='finall'){
  145. $zhangarr = m('fina')->getzhangtao();
  146. $zhangarrs= array();
  147. foreach($zhangarr as $k=>$rs){
  148. $zhangarrs[] = array('optgroup'=>'start','name'=>$rs['name']);
  149. $arows = m('fina')->getaccount($rs['value']);
  150. if($arows)foreach($arows as $k1=>$rs1){
  151. $zhangarrs[] = $rs1;
  152. }
  153. $zhangarrs[] = array('optgroup'=>'end','name'=>$rs['name']);
  154. }
  155. $zhangarr = $zhangarrs;
  156. }
  157. return array(
  158. 'rows' => $rows,
  159. 'zhangarr'=> $zhangarr
  160. );
  161. }
  162. public function createjizhangAjax()
  163. {
  164. $accountid = (int)$this->post('accountid','0');
  165. $id = (int)$this->post('id','0');
  166. $sm = $this->post('sm');
  167. $acrs = m('finount')->getone($accountid);
  168. $rs = m('custfina')->getone($id);
  169. $urs = m('admin')->getone($rs['uid']);
  170. $money = floatval($rs['money']);
  171. $jtype = '销售收入';
  172. if($rs['type']=='1'){
  173. $jtype = '购买材料';
  174. $money = 0-$money;
  175. }
  176. $paydt = $rs['paydt'];
  177. if(isempt($paydt))$paydt = $rs['dt'];
  178. $uarr['comid'] = $rs['comid'];
  179. $uarr['type'] = $rs['type'];
  180. $uarr['money'] = $money;
  181. $uarr['custid'] = $rs['custid'];
  182. $uarr['custname'] = $rs['custname'];
  183. $uarr['applydt'] = $paydt;
  184. $uarr['optid'] = $this->adminid;
  185. $uarr['optname'] = $this->adminname;
  186. $uarr['optdt'] = $this->rock->now;
  187. $uarr['uid'] = $this->adminid;
  188. $uarr['xguid'] = $rs['uid'];
  189. $uarr['xgname'] = arrvalue($urs,'name');
  190. $uarr['xgdeptid'] = arrvalue($urs,'deptid');
  191. $uarr['xgdeptname'] = arrvalue($urs,'deptname');
  192. $uarr['xgdeptname'] = arrvalue($urs,'deptname');
  193. $uarr['explain'] = $rs['explain'].$sm;
  194. $uarr['accountid'] = $accountid;
  195. $uarr['zhangid'] = $acrs['zhangid'];
  196. $uarr['jtype'] = $jtype;
  197. $newid = m('finjibook')->insert($uarr);
  198. m('custfina')->update('jzid='.$newid.'', $id);
  199. return returnsuccess();
  200. }
  201. }
粤ICP备19079148号