all(), [ 'order_ids' => 'required', ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $orderIds = $request->input('order_ids'); list($data, $code) = NewStatementsService::pddStatus($orderIds); return self::returnValue($data, $code); } /* * 预加载结算单详情数据 */ public function preData(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'order_ids' => 'required', 'type' => 'required|int', 'is_discount' => 'required|in:0,1' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $orderIds = $request->input('order_ids'); $type = $request->input('type'); $isDiscount = $request->input('is_discount', 0); $firstInvoicingRatio = $request->input('first_invoicing_ratio'); list($data, $code) = NewStatementsService::getPreData($orderIds, $type, $isDiscount, $firstInvoicingRatio); return self::returnValue($data, $code); } /* * 结算单列表 */ public function index(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'type' => 'required|int', 'is_my' => 'nullable|numeric', 'status' => 'nullable|integer', 'month' => 'nullable|date_format:Y-m', 'apply_start_date' => 'nullable|date_format:Y-m-d', 'apply_end_date' => 'nullable|date_format:Y-m-d', 'approved_start_date' => 'nullable|date_format:Y-m-d', 'approved_end_date' => 'nullable|date_format:Y-m-d', 'page' => 'nullable|numeric|min:1', 'page_size' => 'nullable|numeric' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $params['is_my'] = $request->input('is_my', 0); $params['status'] = $request->input('status', 0); $params['month'] = $request->input('month'); $params['applicant'] = $request->input('applicant'); $params['apply_start_date'] = $request->input('apply_start_date'); $params['apply_end_date'] = $request->input('apply_end_date'); $params['approved_start_date'] = $request->input('approved_start_date'); $params['approved_end_date'] = $request->input('approved_end_date'); $params['type'] = $request->input('type', 2); $params['customer_name'] = $request->input('customer_name'); $params['company'] = $request->input('company'); $params['id'] = $request->input('id'); $params['pre_audit_status'] = $request->input('pre_audit_status'); $page = $request->input('page', 1); $pageSize = $request->input('page_size', 20); list($list, $count) = NewStatementsService::index($page, $pageSize, $params); return self::returnPageValue($list, $count, $pageSize, $page); } /* * 添加结算单 */ public function add(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'order_data' => 'required', 'type' => 'required|int', 'party_a_ein' => 'required', 'party_a_account' => 'required', 'party_a_contact' => 'required', 'party_a_phone' => 'required', 'party_b_contact' => 'required', 'party_b_phone' => 'required', 'add_date' => 'required', 'customer_name' => 'required', 'party_a_address' => 'required', 'status' => 'required|in:0,1,2', 'company' => 'required', 'bank' => 'required', 'account' => 'required' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $type = $request->input('type'); $orderData = $request->input('order_data'); if (!is_array($orderData)) { $orderData = json_decode($orderData, 1); } $status = $request->input('status'); $statementsData['party_a_ein'] = $request->input('party_a_ein'); $statementsData['party_a_account'] = $request->input('party_a_account'); $statementsData['party_a_contact'] = $request->input('party_a_contact'); $statementsData['party_a_phone'] = $request->input('party_a_phone'); $statementsData['party_a_add_date'] = $request->input('party_a_add_date'); $statementsData['party_b_contact'] = $request->input('party_b_contact'); $statementsData['party_b_phone'] = $request->input('party_b_phone'); $statementsData['add_date'] = $request->input('add_date'); $statementsData['customer_name'] = $request->input('customer_name'); $statementsData['party_a_address'] = $request->input('party_a_address'); $statementsData['is_discount'] = $request->input('is_discount'); $statementsData['company'] = $request->input('company'); $statementsData['bank'] = $request->input('bank'); $statementsData['account'] = $request->input('account'); $statementsData['voided_statements_id'] = $request->input('voided_id'); $statementsData['handler_remark'] = $request->input('handler_remark'); $files = $request->input('files'); if(!empty($files)){ $files = array_map(function($val){ return str_replace('http://order-consumption-system.oss-cn-beijing.aliyuncs.com', '', $val); },$files); } $statementsData['url_json'] = json_encode($files); list($res, $code) = NewStatementsService::addStatements($orderData, $statementsData, $type, $status); return self::returnValue($res, $code); } /* * 结算单详情 */ public function detail(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'id' => 'required|integer' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $id = $request->input('id'); list($res, $code) = NewStatementsService::detail($id); return self::returnValue($res, $code); } /* * 导出结算单对应的订单明细 */ public function export(Request $request) { $validator = \Validator::make($request->all(), [ 'id' => 'required|integer' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $id = $request->input('id'); # 查询结算单信息 $statementInfo = Statements::query()->where('id', $id)->select(['id', 'customer_name', 'type', 'verify_status'])->first(); if(empty($statementInfo) || !in_array($statementInfo->type, [4, 5, 6])) { # 仅导出收入端 $errno = 1233; return self::returnValue('', $errno); } if(!in_array($statementInfo->verify_status, [0, 3, 5])) { # 仅导出已保存或驳回状态的 $errno = 1208; return self::returnValue('', $errno); } $path = NewStatementsService::export($id, $statementInfo); return self::returnValue($path); } /* * 结算单编辑 */ public function update(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'order_data' => 'required', 'type' => 'required|int', 'party_a_ein' => 'required', 'party_a_account' => 'required', 'party_a_contact' => 'required', 'party_a_phone' => 'required', 'party_b_contact' => 'required', 'party_b_phone' => 'required', 'add_date' => 'required', 'id' => 'required', 'status' => 'required', 'company' => 'required', 'bank' => 'required', 'account' => 'required' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $id = $request->input('id'); $type = $request->input('type'); $orderData = $request->input('order_data'); if (!is_array($orderData)) { $orderData = json_decode($orderData, 1); } $statementsData['party_a_ein'] = $request->input('party_a_ein'); $statementsData['party_a_address'] = $request->input('party_a_address'); $statementsData['party_a_account'] = $request->input('party_a_account'); $statementsData['party_a_contact'] = $request->input('party_a_contact'); $statementsData['party_a_phone'] = $request->input('party_a_phone'); $statementsData['party_a_add_date'] = $request->input('party_a_add_date'); $statementsData['party_b_contact'] = $request->input('party_b_contact'); $statementsData['party_b_phone'] = $request->input('party_b_phone'); $statementsData['add_date'] = $request->input('add_date'); $statementsData['verify_status'] = $request->input('status'); $statementsData['company'] = $request->input('company'); $statementsData['bank'] = $request->input('bank'); $statementsData['account'] = $request->input('account'); $statementsData['handler_remark'] = $request->input('handler_remark'); $files = $request->input('files'); if(!empty($files)){ $files = array_map(function($val){ return str_replace('http://order-consumption-system.oss-cn-beijing.aliyuncs.com', '', $val); },$files); } $statementsData['url_json'] = json_encode($files); list($res, $code) = NewStatementsService::update($id, $orderData, $statementsData, $type); return self::returnValue($res, $code); } /* * 结算单审核 */ public function verify(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'id' => 'required|integer', 'status' => 'required', 'opinion' => 'nullable|string' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $id = $request->input('id'); $status = $request->input('status'); $verifyOpinion = $request->input('opinion'); list($res, $code) = NewStatementsService::verify($id, $status, $verifyOpinion); return self::returnValue($res, $code); } /* * 结算单审核撤销 */ public function delVerify(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'id' => 'required|integer' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $id = $request->input('id'); list($res, $code) = NewStatementsService::delVerify($id); return self::returnValue($res, $code); } /* * 结算单提交审核 */ public function setVerify(Request $request) { // 处理验证失败信息,不要直接抛异常 $validator = \Validator::make($request->all(), [ 'id' => 'required|integer' ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $id = $request->input('id'); list($res, $code) = NewStatementsService::setVerify($id); return self::returnValue($res, $code); } /* * 作废之后重新申请 */ public function reApply(Request $request) { $validator = \Validator::make($request->all(), [ 'id' => 'required|int', ]); if ($validator->fails()) { return self::returnValue(['error' => $validator->errors()], 1102); } $id = $request->input('id'); list($res, $code) = NewStatementsService::reApply($id); return self::returnValue($res, $code); } }