InvoiceTicket.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\model;
  4. use think\Model;
  5. /**
  6. * @mixin \think\Model
  7. */
  8. class InvoiceTicket extends Model
  9. {
  10. public function getItemAttr($v){
  11. return json_decode($v,true);
  12. }
  13. public function setItemAttr($v){
  14. return json_encode($v,JSON_UNESCAPED_UNICODE);
  15. }
  16. public static function OnAfterUpdate(Model $model){
  17. if($model->status==1 && $model->type==0 && $model->is_del==0 && !empty($model->item)){
  18. (new InvoiceItem)->saveAll(array_map(function ($item)use($model) {
  19. return [
  20. 'invoice_code'=>$model->invNo,
  21. 'order_type'=>1,
  22. 'good_name'=>$item['XMMC'],
  23. 'unit'=>$item['DW'],
  24. 'num'=>$item['SPSL'],
  25. 'unit_price'=>$item['DJ'],
  26. 'amount'=>$item['JE'],
  27. "tax_amount"=>$item['SE'],
  28. "tax"=>$item['SL'],
  29. "cat_code"=>$item['SPBM'],
  30. "total_amount"=>bcadd($item['JE'],$item['SE'],2),
  31. "balance_amount"=>bcadd($item['JE'],$item['SE'],2),
  32. ];
  33. },$model->item));
  34. }
  35. }
  36. }