log->error('FinancesConsumer:error:NoData:'.json_encode($data)); return Result::ACK; } $kitchen = $this->kitchenModel->where('id',$data['kitchen_id'])->first(); $cycle = $this->cycleModel->where('id',$data['cycle_id'])->first(); if (empty($kitchen) || empty($cycle)) { $this->log->error('FinancesConsumer:error:kitchenOrCycleError:'.json_encode([ 'kitchen_id' => $data['kitchen_id'], 'cycle_id' => $data['cycle_id'], 'cycle' => $cycle, 'kitchen' => $kitchen, 'data' => $data, ])); return Result::ACK; } $statement = $this->financesStatementModel->getStatementByCycleIdAndKitchenId($data['cycle_id'],$data['kitchen_id']); if (!empty($statement)) $statement->delete(); $statement = new FinancesStatement(); $statement->date = $cycle->dates; $statement->cycle_id = $cycle->id; $statement->kitchen_id = $kitchen->id; $statement->discounts = $this->orderModel->getDiscountsByCycleIdAndKitchenId($cycle->id, $kitchen->id); $statement->net_sales = $this->orderModel->getNetSalesByCycleIdAndKitchenId($cycle->id, $kitchen->id); $statement->gross_sales = $statement->net_sales + $statement->discounts; $statement->option_order_number = $this->orderModel->getOrderNumberByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_OPTIONAL); $statement->option_copies = $this->orderModel->getCopiesByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_OPTIONAL); $statement->meal_order_number = $this->orderModel->getOrderNumberByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_MEAL); $statement->meal_copies = $this->orderModel->getCopiesByCycleIdAndKitchenId($cycle->id, $kitchen->id, OrderCode::ORDER_TYPE_MEAL); if (!$statement->save()) { $this->log->error('FinancesConsumer:error:FinancesStatement:'.json_encode([ 'statement' => $statement, 'data' => $data, ])); } return Result::ACK; } }