InvoiceTicket.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\model;
  4. use think\facade\Log;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. log::info("InvoiceTicket::OnAfterUpdate");
  18. Log::info('InvoiceTicket::OnAfterUpdate'.json_encode($model->toArray(),JSON_UNESCAPED_UNICODE));
  19. if($model->status==1 && $model['type']==0 && $model->is_del==0 && !empty($model->item)){
  20. (new InvoiceItem)->saveAll(array_map(function ($item)use($model) {
  21. return [
  22. 'invoiceCode'=>$model->invNo,
  23. 'order_type'=>1,
  24. 'good_name'=>$item['XMMC'],
  25. 'unit'=>$item['DW'],
  26. 'num'=>$item['SPSL'],
  27. 'unit_price'=>$item['DJ'],
  28. 'amount'=>$item['JE'],
  29. "tax_amount"=>$item['SE'],
  30. "tax"=>$item['SL'],
  31. "cat_code"=>$item['SPBM'],
  32. "total_amount"=>bcadd($item['JE'],$item['SE'],2),
  33. "balance_amount"=>bcadd($item['JE'],$item['SE'],2),
  34. ];
  35. },$model->item));
  36. log::info('InvoiceTicket::OnAfterUpdate'.(new InvoiceItem)->getLastSql());
  37. }
  38. }
  39. }