flexbiz-server
Version:
Flexible Server
9 lines (8 loc) • 3.4 kB
JavaScript
'use strict';const PostSocai=require("../../libs/post-socai"),dvcs=global.getModel("dvcs"),account=global.getModel("account"),customer=global.getModel("customer"),dmkho=global.getModel("dmkho"),model=global.getModel("ppb"),controller=require("../../controllers/controller"),valid_acc_cust=require("../../libs/validator-acc-cust"),async=require("async"),ma_ct="PPB",valid_detail=function($i_user$$,$obj$$,$fn$$){const $id_app$$=$obj$$.id_app;for($i_user$$=0;$i_user$$<$obj$$.details.length;$i_user$$++){const $detail$$=
$obj$$.details[$i_user$$];$detail$$.line=$i_user$$;"VND"==$obj$$.ma_nt&&($detail$$.tien=$detail$$.tien_nt)}async.mapSeries($obj$$.details,function($detail$$,$mapcallback$$){async.series([function($callback$$){valid_acc_cust.checkAccAndCust($id_app$$,$detail$$.tk_no,$detail$$.ma_kh_no,function($error$$){if($error$$)return $callback$$($error$$);$callback$$(null,!0)})},function($callback$$){valid_acc_cust.checkAccAndCust($id_app$$,$detail$$.tk_co,$detail$$.ma_kh_co,function($error$$){if($error$$)return $callback$$($error$$);
$callback$$(null,!0)})}],function($e$$){if($e$$)return $mapcallback$$($e$$);$mapcallback$$(null,!0)})},$error$$=>{if($error$$)return $fn$$($error$$);$fn$$()})};
module.exports=function($contr_router$$){$contr_router$$=new controller($contr_router$$,model,ma_ct.toLowerCase(),{isVoucher:!0,sort:{ngay_ct:-1,so_ct:-1}});$contr_router$$.route();$contr_router$$.post=function($obj$$,$fn$$){$fn$$||($fn$$=function(){});const $details_sc$$=[];$obj$$.details.forEach(function($d$$){$details_sc$$.push({...$d$$})});(new PostSocai($obj$$,$details_sc$$)).run(function($e$$,$rs$$){$fn$$($e$$,$rs$$)})};$contr_router$$.creating=function($user$$,$obj$$,$next$$){$obj$$.details||
($obj$$.details=[]);valid_detail($user$$,$obj$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$obj$$)})};$contr_router$$.updating=function($user$$,$data$$,$obj$$,$next$$){valid_detail($user$$,$data$$,function($error$$){if($error$$)return $next$$($error$$);$next$$(null,$data$$,$obj$$)})};$contr_router$$.view=function($user$$,$items$$,$fn$$){let $id_app$$=$user$$.current_id_app;async.series({dv:function($callback$$){$items$$.joinModel($id_app$$,dvcs,[{akey:"ma_dvcs",bkey:"_id",
fields:[{name:"ten_dvcs",value:"ten_dvcs"}]}],function(){$callback$$()})},t_tien:function($callback$$){$items$$.forEach(function($r$$){$r$$.details&&($r$$.t_tien=$r$$.details.csum("tien"),$r$$.t_tien_nt=$r$$.details.csum("tien_nt"))});$callback$$()},details_tk:function($callback$$){async.each($items$$,function($r$$,$callback1$$){($r$$.details||[]).joinModel($id_app$$,account,[{akey:"tk_no",bkey:"tk",fields:[{name:"ten_tk_no",value:"ten_tk"}]},{akey:"tk_co",bkey:"tk",fields:[{name:"ten_tk_co",value:"ten_tk"}]}],
function(){$callback1$$()})},function(){$callback$$()})},details_customer:function($callback$$){async.each($items$$,function($r$$,$callback1$$){($r$$.details||[]).joinModel($id_app$$,customer,[{akey:"ma_kh_no",bkey:"ma_kh",fields:[{name:"ten_kh_no",value:"ten_kh"}]},{akey:"ma_kh_co",bkey:"ma_kh",fields:[{name:"ten_kh_co",value:"ten_kh"}]}],function(){$callback1$$()})},function(){$callback$$()})},details_kho:function($callback$$){async.mapSeries($items$$,function($r$$,$callback1$$){($r$$.details||
[]).joinModel2($id_app$$,dmkho,[{where:"ma_kho",fields:["ten_kho"]}],function(){$callback1$$()})},function(){$callback$$()})}},function(){$fn$$(null,$items$$)})}};