public function doPayAction()
 {
     $model = D("PtContract");
     $conract_id = I("current_contract_id");
     $contract = $model->find($conract_id);
     $member_id = $contract['member_id'];
     $member = M("MemberBasic")->find($member_id);
     $recharge = 0;
     $price = $contract['should_pay'] - $contract['paid'];
     if (I('use_recharge') == 1) {
         $recharge = $member['recharge'];
         $recharge = $recharge > $price ? $price : $recharge;
     }
     $service = \Service\CService::factory("Financial");
     $project = $service->getBillProject("1", I("current_contract_id"));
     $ret = $service->pay($project['id'], 1, is_user_login(), get_brand_id(), I("description"), I("cash"), I("pos"), I("check"), I('check_num'), get_club_id(), $recharge, I("network"), I("netbank"));
     if (!$ret) {
         $this->error($service->getError());
     }
     if (I('use_recharge') == 1 && $recharge > 0) {
         M("MemberBasic")->where(array("id" => $member_id))->setField("recharge", $member['recharge'] - $recharge);
         $data = array("member_id" => $member_id, "value" => "-{$recharge}", "record_id" => is_user_login(), "description" => "PT收款消费¥{$recharge},余额¥" . ($member['recharge'] - $recharge));
         M("RechargeHistory")->data($data)->add();
     }
     $project = $service->getBillProject("1", I("current_contract_id"));
     $contract['paid'] = $project['paid'];
     $contract['update_time'] = getDbTime();
     $contract['description'] = I("description");
     $model->data($contract)->save();
     //cash history
     // $cashHistoryModel=M("CashHistory");
     // $data=array("record_id"=>is_user_login(),"price"=>$paid,"brand_id"=>get_brand_id(),"description"=>I("description"),"object_id"=>$contract_id,"update_time"=>getDbTime(),"club_id"=>get_club_id());
     // $cashHistoryModel->data($data)->add();
     $this->success("收款成功!", "/Cashier/Ptcontract/index");
 }
 public function assignAction($members, $mc_id)
 {
     if (empty($mc_id)) {
         $this->error("Please choose one mc!");
     }
     $model = M("MemberBasic");
     foreach ($members as $key => $value) {
         $model->where("id={$value}")->setField(array("mc_id" => $mc_id, "assign_time" => getDbTime()));
     }
     $this->success("指派成功!");
 }
Example #3
0
 public function consumeendAction($id)
 {
     $contract = M("PtContract")->find($id);
     if (empty($contract)) {
         $this->error("Contract is not exist...");
     }
     if ($contract['invalid'] != 1) {
         $this->error("合同非正常状态!");
     }
     if ($contract['status'] != 1) {
         $this->error("请先开始上课!");
     }
     M("PtContract")->where("id={$id}")->setField("status", 0);
     M("PtConsumeHistory")->where(array("contract_id" => $id))->order("id desc")->limit(1)->setField("end_time", getDbTime());
     $this->success("消课成功!");
 }
 public function consumeAction($code, $name, $phone)
 {
     $rules = array(array('code', 'require', '蜘蛛码必须!', 1), array('name', 'require', '姓名必须!', 1), array('phone', 'require', '电话必须!', 1));
     $model = D("SpiderCode");
     if (!$model->validate($rules)->create()) {
         $this->error($model->getError());
     }
     $c = M("SpiderCode")->where(array("code" => $code))->find();
     if (empty($c)) {
         $this->error("号码不存在");
     }
     if ($c['valid'] != 0) {
         $this->error("蜘蛛码被其他人消费!请重新提供!");
     }
     $model->where(array("code" => $code))->setField(array("use_time" => getDbTime(), "record_id" => is_user_login(), "valid" => 1, "name" => $name, "phone" => $phone));
     $this->ajaxReturn(array("status" => 1));
 }
 public function registAction($username, $password, $verifycode, $email, $confirm_password)
 {
     session('[start]');
     // if(!check_verify($verifycode)){
     //    $this->error('验证码输入错误!');
     // }
     $model = D("User");
     $rules = array(array('username', '1,30', "用户名至少1-30位!", 1, 'length'), array('username', '', "用户名已被注册!", 1, 'unique'), array('password', '6,30', "密码至少6-30位!", 1, 'length'), array('confirm_password', 'password', '确认密码不正确!', 1, 'confirm'));
     $arr = array("confirm_password" => $confirm_password, "email" => $email, "username" => $username, "password" => md5($password), "name_cn" => time(), "name_en" => time(), "last_login_time" => getDbTime(), "last_login_ip" => get_client_ip(0));
     if (!$model->data($arr)->validate($rules)->create()) {
         $this->error($model->getError());
     }
     $id = $model->data(array("username" => $username, "password" => $password, "last_login_time" => getDbTime(), "last_login_ip" => get_client_ip(0)))->add();
     D("UserExtension")->data(array("id" => $id, "name_cn" => time(), "name_en" => time()))->add();
     $user = $model->where("id={$id}")->find();
     userLoginSession($user);
     session('[destroy]');
     $this->success('登录成功!', U('Main/teacher'));
 }
 public function addAction()
 {
     $rules = array(array('username', '1,30', "用户名至少1-30位!", 1, 'length'), array('username', '', "用户名已被注册!", 1, 'unique'), array('password', '6,30', "密码至少6-30位!", 1, 'length'), array('confirm_password', 'password', '确认密码不正确!', 1, 'confirm'), array('name_cn', 'require', "请输入中文名!", 1), array('name_en', 'require', "请输入英文名!", 1), array('identity_card', '/^\\d{15}$|^\\d{17}(\\d|[Xx])$/', "身份证号码不对!", 2));
     $userModel = M("User");
     $extensionModel = M("UserExtension");
     if (!$userModel->validate($rules)->create()) {
         $this->error($userModel->getError());
     } else {
         $userModel->brand_id = get_brand_id();
         $userModel->club_id = get_club_id();
         $userModel->password = ucenter_md5(I("password"), C("MD5_SECRET_KEY"));
         $userModel->update_time = getDbTime();
         $id = $userModel->add();
         if (!$extensionModel->create()) {
             $userModel->delete($id);
             $this->error($extensionModel->getError());
         } else {
             $avatar = "default.jpg";
             if (!empty($_FILES["avatar"]["name"])) {
                 $config["savePath"] = "em_avatar";
                 $upload = new \Think\Upload();
                 // 实例化上传类
                 $upload->maxSize = 31457280;
                 // 设置附件上传大小
                 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
                 // 设置附件上传类型
                 $upload->rootPath = './Public/uploads/';
                 // 设置附件上传根目录
                 $upload->savePath = "em_avatar/";
                 $upload->autoSub = false;
                 $upload->replace = true;
                 $upload->saveName = "{$id}";
                 $info = $upload->upload();
                 if (!$info) {
                     $userModel->delete($id);
                     $this->error($upload->getError());
                 } else {
                     $avatar = $info["avatar"]['savename'];
                 }
             }
             $extensionModel->id = $id;
             $extensionModel->avatar = $avatar;
             $extensionModel->update_time = getDbTime();
             $extensionModel->add();
             //add roles
             $roles = I('roles');
             foreach ($roles as $key => $value) {
                 M("AuthGroupAccess")->data(array("uid" => $id, "group_id" => $value))->add();
             }
         }
     }
     $this->success('成功!', U('Shopkeeper/Employee/index'));
 }
 private function updateLogin($uid)
 {
     $data = array('id' => $uid, 'last_login_time' => getDbTime(), 'last_login_ip' => get_client_ip(0));
     M("User")->save($data);
 }
Example #8
0
 protected function updateLogin($uid)
 {
     $data = array('id' => $uid, 'last_login_time' => getDbTime(), 'last_login_ip' => get_client_ip(0));
     $this->sysUserModel->save($data);
 }
 public function doTransformAction1($owner_id, $contract_id, $new_id, $new_card_number)
 {
     $memberModel = M("MemberBasic");
     $cardModel = M("Card");
     $contractModel = M("Contract");
     $originalcontract = $contract = $contractModel->find($contract_id);
     $is_active = 1;
     if ($contract['active_type'] == 2 && $contract['start_time'] == '0000-00-00') {
         $is_active = 0;
     }
     $new_member = $memberModel->find($new_id);
     if (empty($new_member)) {
         $this->error("Can't find this member in your brand's database!");
     }
     if ($contract['member_id'] != $owner_id) {
         $this->error("This contract  not belongs to the owner!");
     }
     if ($contract['invalid'] != 1) {
         $this->error("合同无效,不能转让!");
     }
     $member = M("MemberBasic")->find($owner_id);
     $service = \Service\CService::factory("Financial");
     // $model =M("BrandConfig");
     // $config = $model->where(array("brand_id"=>get_brand_id()))->find();
     $fee = D("Goods")->getZhuanrangFee();
     $bill_project = $service->getBillProject("0,3,4,5", $contract_id);
     $bill_project['member_id'] = $new_id;
     $bill_project['type'] = 3;
     unset($bill_project['id']);
     M("BillProject")->data($bill_project)->add();
     $contract['member_id'] = $new_id;
     $contract_number = date("YmdHis") . rand(0, 10000);
     $contract['contract_number'] = $contract_number;
     $contract['free_trans'] = $contract['free_trans'] > 1 ? $contract['free_trans'] - 1 : 0;
     unset($contract['id']);
     M("Contract")->data($contract)->add();
     if ($contract['free_trans'] == 0) {
         $config = $model->where(array("brand_id" => get_brand_id()))->find();
         $extra_bill_id = $service->addBillProject(13, 0, $contract_id, $current_contract['member_id'], $config['member_upgrade_price'], 0, get_brand_id(), is_user_login(), get_club_id(), $mc_id, I("description"));
         if (!$extra_bill_id) {
             $model->delete($contract_id);
             M("BillProject")->delete($bill_id);
             M("PayHistory")->delete($ret);
             $this->error($service->getError());
         }
     }
     M("BillProject")->data($bill_project)->save();
     if (!empty($new_card_number)) {
         $newCard = $cardModel->where(array("card_number" => $new_card_number, "brand_id" => get_brand_id()))->find();
         if (!empty($newCard)) {
             if ($newCard['member_id'] != $new_id) {
                 $this->error("此卡号已存在,请重新输入");
             } else {
                 $new_card_id = $newCard['id'];
             }
         } else {
             //create a card with card_number
             $card = array("sale_club" => get_club_id(), "is_active" => $is_active, "brand_id" => get_brand_id(), "card_number" => $new_card_number, "member_id" => $new_id, "update_time" => getDbTime());
             $new_card_id = $cardModel->data($card)->add();
         }
     } else {
         $card = array("is_active" => $is_active, "brand_id" => get_brand_id(), "card_number" => '', "member_id" => $new_id, "update_time" => getDbTime());
         $new_card_id = $cardModel->data($card)->add();
         $cardModel->where(array("id" => $new_card_id))->setField("card_number", $new_card_id);
     }
     //change the contract
     $contract['member_id'] = $new_id;
     $contract['card_id'] = $new_card_id;
     $contract['status'] = 4;
     $contractModel->data($contract)->save();
     M("ContractHistory")->data(array("contract_id" => $contract_id, "extension" => json_encode(I("post."))))->add();
     $reason = "合同转让";
     if (!empty($reason)) {
         $data = array("original_extension" => json_encode($originalcontract), "extension" => json_encode($contract), "reason" => $reason, "record_id" => is_user_login(), "club_id" => get_club_id(), "brand_id" => get_brand_id(), "type" => 0, "status" => 0);
         M("Review")->data($data)->add();
     }
     M("MemberBasic")->where("id={$new_id}")->setField(array("is_member" => 1, "join_time" => getDbTime()));
     $this->success("转卡成功!", U("Cashier/Contract/index"));
 }
 public function docheckAction($id)
 {
     M("McFollowUp")->where("id={$id}")->setField(array("is_come" => 1, "come_time" => getDbTime()));
     $this->success("到场记录成功!");
 }
 public function importMemberAction()
 {
     setlocale(LC_ALL, 'en_US.UTF-8');
     set_time_limit(0);
     $club_id = get_club_id();
     $this->clean($club_id);
     $brand_id = get_brand_id();
     $upload = new \Think\Upload();
     // 实例化上传类
     // $upload->maxSize   =     3145728 ;// 设置附件上传大小
     $upload->exts = array('csv');
     // 设置附件上传类型
     $upload->rootPath = './Public/uploads/';
     // 设置附件上传根目录
     $upload->savePath = "import/";
     $upload->autoSub = false;
     $upload->replace = false;
     $upload->saveName = $brand_id . "_" . time();
     $info = $upload->uploadOne($_FILES['users']);
     if (!$info) {
         $this->error($upload->getError());
     } else {
         $file = './Public/uploads/' . $info['savepath'] . $info['savename'];
         // $this->checkFile($file);
         $handle = fopen($file, 'r');
         if ($handle) {
             $count = 0;
             $arr = array();
             $users = fgetcsv($handle);
             while ($users = fgetcsv($handle)) {
                 try {
                     $count++;
                     $data = array();
                     $data['name'] = $users[0];
                     $data['phone'] = $users[1];
                     if (empty($data['phone'])) {
                         $data['phone'] = time();
                     }
                     $mc_id = trim($users[14]);
                     if (empty($mc_id)) {
                         $mc_id = 0;
                         $users[14] = 0;
                     } else {
                         if (!is_numeric($mc_id)) {
                             $mcs = M("UserExtension")->where(array("name_cn" => $mc_id))->select();
                             $mc = null;
                             foreach ($mcs as $key => $value) {
                                 $m = M("User")->find($value['id']);
                                 if ($m['club_id'] == get_club_id()) {
                                     $mc = $m;
                                 }
                             }
                             if (empty($mc)) {
                                 $mc_id = M("User")->data(array("username" => "xj" . $users[14], "password" => md5('111111'), "club_id" => get_club_id(), "brand_id" => get_brand_id()))->add();
                                 M("UserExtension")->data(array("work_status" => 0, "id" => $mc_id, "name_cn" => $users[14], "name_en" => $users[14]))->add();
                                 M("AuthGroupAccess")->data(array("uid" => $mc_id, "group_id" => 6))->add();
                                 $users[14] = $mc_id;
                             } else {
                                 $users[14] = $mc['id'];
                             }
                         }
                     }
                     $m = M("MemberBasic")->where(array("club_id" => get_club_id(), "name" => trim($users[0]), "phone" => trim($users[1])))->find();
                     if (!empty($m)) {
                         $uid = $m['id'];
                     } else {
                         $model = D("MemberBasic");
                         $data['sex'] = $users[2];
                         $data['type'] = 1;
                         $data['email'] = $users[3];
                         $data['birthday'] = $users[4];
                         $data['home_phone'] = $users[5];
                         $data['home_addr'] = $users[6];
                         $data['country'] = $users[7];
                         $data['nation'] = $users[8];
                         $data['job'] = $users[9];
                         $data['desc'] = $users[10];
                         $data['brand_id'] = get_brand_id();
                         $data['club_id'] = get_club_id();
                         $data['in_pool'] = 0;
                         $data['is_member'] = 1;
                         $data['join_time'] = trim($users[24]);
                         if (empty($data['join_time'])) {
                             $data['join_time'] = $users[15];
                         }
                         $data['mc_id'] = trim($users[14]);
                         $data['certificate_number'] = trim($users[23]);
                         if (!$model->create($data)) {
                             $this->clean($club_id);
                             $this->error("{$count}行数据有误--" . $model->getError());
                         }
                         $uid = $model->data($data)->add();
                     }
                     $card_type = "湘江世纪城——" . trim($users[11]);
                     $pattern = array('/一/', '/二/', '/三/', '/四/', '/五/', '/六/', '/七/', '/八/', '/九/', '/十/');
                     $replace = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
                     $card_type = preg_replace($pattern, $replace, $card_type);
                     $cardTypeModel = M("CardType");
                     $cardType = $cardTypeModel->where(array("name" => $card_type))->find();
                     //添加卡种
                     if ($users[12] == 0) {
                         $valid_number = 0;
                         if (preg_match('/[1|一]年卡/u', $card_type)) {
                             $valid_time = 12;
                         } else {
                             if (preg_match('/[2|二|两]年卡/u', $card_type)) {
                                 $valid_time = 24;
                             } else {
                                 if (preg_match('/[3|三]年卡/u', $card_type)) {
                                     $valid_time = 36;
                                 } else {
                                     if (preg_match('/半年(.*)卡/u', $card_type)) {
                                         $valid_time = 6;
                                     } else {
                                         if (preg_match('/季(度)?卡/u', $card_type)) {
                                             $valid_time = 3;
                                         } else {
                                             if (preg_match('/(\\d+)(个)?月卡/i', $card_type, $matches)) {
                                                 $valid_time = $matches[1];
                                             } else {
                                                 $valid_time = 12;
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     } else {
                         if (preg_match('/\\d+/i', $card_type, $matches)) {
                             $valid_number = $matches[0];
                         } else {
                             $this->clean($club_id);
                             $this->error("{$count}行次不明!");
                         }
                         $valid_time = 12;
                     }
                     if (empty($cardType)) {
                         $data = array("name" => $card_type, "category" => 1, "type" => 1 + $users[12], "valid_time" => $valid_time, "brand_id" => get_brand_id(), "start_time" => "2015-01-01", "end_time" => "2019-01-01", "price" => $users[18], "valid_number" => $valid_number, "sold_num" => 999999, "min_price" => $users[18] - 500);
                         $cardtypeid = M("CardType")->data($data)->add();
                         M("CardSaleclub")->data(array("card_type_id" => $cardtypeid, "club_id" => get_club_id()))->add();
                         M("CardUseclub")->data(array("card_type_id" => $cardtypeid, "club_id" => get_club_id()))->add();
                     } else {
                         $cardtypeid = $cardType['id'];
                     }
                     $card_type_id = $cardtypeid;
                     $mc_id = trim($users[12]);
                     $start_time = trim($users[15]);
                     $end_time = trim($users[16]);
                     $card_number = trim($users[17]);
                     $cardModel = D("Card");
                     $cardTypeModel = M("CardType");
                     $cardType = $cardTypeModel->find($card_type_id);
                     if (empty($cardType)) {
                         $this->clean($club_id);
                         $this->error("{$count}行卡种不存在!");
                     }
                     if (empty($card_number)) {
                         $card_number = date("YmdHis") . rand(0, 10000);
                         $card = array("free_rest" => 0, "sale_club" => get_club_id(), "is_active" => 0, "brand_id" => get_brand_id(), "card_number" => $card_number, "member_id" => $uid);
                         $card['update_time'] = getDbTime();
                         $card_id = $cardModel->data($card)->add();
                         $max_card = M("Card")->where(array("sale_club" => get_club_id(), "is_auto_create" => 1))->order("card_number desc")->find();
                         if (empty($max_card)) {
                             $card_number = get_club_id() . "00001";
                         } else {
                             $card_number = $max_card['card_number'] + 1;
                         }
                         $card_number = preg_replace("/4/", "5", $card_number);
                         while (true) {
                             if ($cardModel->isExist($card_number, get_brand_id())) {
                                 $card_number += 1;
                                 $card_number = preg_replace("/4/", "5", $card_number);
                             } else {
                                 break;
                             }
                         }
                         $cardModel->where("id={$card_id}")->setField(array("card_number" => $card_number, "is_auto_create" => "1"));
                     } else {
                         $card = array("free_rest" => 0, "sale_club" => get_club_id(), "is_active" => 0, "brand_id" => get_brand_id(), "card_number" => $card_number, "member_id" => $uid);
                         $card_id = $cardModel->data($card)->add();
                     }
                     if (!$card_id) {
                         $this->error("{$count}行开卡失败,请稍后再试!");
                         $this->clean($club_id);
                     }
                     $model = D("Contract");
                     $payed = trim($users[19]);
                     $contract_number = date("YmdHis") . rand(0, 10000);
                     $data = array("total_num" => $valid_number, "member_id" => $uid, "start_time" => $start_time, "end_time" => $end_time, "brand_id" => get_brand_id(), "card_type_id" => $card_type_id, "type" => 0, "description" => $users[22], "price" => $payed, "sale_club_id" => get_club_id(), "card_id" => $card_id, "payed" => $payed, "contract_number" => $contract_number, "mc_id" => trim($users[14]), "card_type_extension" => json_encode($cardType), "active_type" => 2);
                     $contract_id = $model->data($data)->add();
                     $service = \Service\CService::factory("Financial");
                     $bill_id = $service->addBillProject(0, 0, $contract_id, $uid, $payed, 0, get_brand_id(), is_user_login(), get_club_id(), trim($users[14]), $users[22]);
                     if (!$bill_id) {
                         $this->clean($club_id);
                         $this->error("{$count}行数据有误--" . $service->getError());
                     }
                     $ret = $service->pay($bill_id, 0, is_user_login(), get_brand_id(), $users[22], $payed, 0, 0, 0, get_club_id(), 0, 0, 0);
                     if (!$ret) {
                         $this->clean($club_id);
                         $this->error("{$count}行数据有误--" . $service->getError());
                     }
                 } catch (Exception $e) {
                     $this->clean($club_id);
                     $this->error($e->getMessage());
                 }
             }
         } else {
             $this->clean($club_id);
             $this->error("error!");
         }
     }
     $this->success("Success!");
 }
Example #12
0
 public function buyAction()
 {
     $member_id = I("member_id");
     $member = M("MemberBasic")->find(I("member_id"));
     if (empty($member)) {
         $this->error("member does not exist");
     }
     $class_id = I("class_id");
     $class = M("PtClass")->find($class_id);
     if (empty($class)) {
         $this->error("class is not exist!");
     }
     $use_recharge = I("use_recharge");
     $model = D("PtContract");
     if (!$model->create()) {
         $this->error($model->getError());
     }
     $rules = array(array('pos', 'number', '请输入正确的pos金额!', 1), array('cash', 'number', '请输入正确的现金金额!', 1), array('check', 'number', '请输入正确的支票金额!', 1), array('network', 'number', '请输入正确的网络支付金额!', 1), array('netbank', 'number', '请输入正确的网银分期金额!', 1));
     // $cashHistoryModel=M("CashHistory");
     // if (!$cashHistoryModel->validate($rules)->create()){
     //     $this->error($cashHistoryModel->getError());
     // }
     $paid = I("cash") + I("pos") + I("check") + I("network") + I("netbank");
     $book_price = 0;
     $price = I("should_pay");
     if ($member['pt_book_price'] != 0) {
         $book_price = $price - $paid > $member['pt_book_price'] ? $member['pt_book_price'] : $price - $paid;
         $paid += $book_price;
     }
     $recharge = 0;
     $should_pay = $price - $paid;
     if ($use_recharge == 1) {
         $recharge = $member['recharge'] > $should_pay ? $should_pay : $member['recharge'];
     }
     $paid += $recharge;
     $model->paid = $paid;
     $contract_number = date("YmdHis") . rand(0, 10000);
     $model->contract_number = $contract_number;
     $model->pt_id = $member['pt_id'];
     $pt_id = I("pt_id");
     if (!empty($pt_id)) {
         $model->pt_id = $pt_id;
     }
     $start_time = I("start_time");
     $end_time = I("end_time");
     if (empty($start_time)) {
         $start_time = date('Y-m-d');
     }
     if (empty($end_time)) {
         $end_time = date('Y-m-d', strtotime("+2 years"));
     }
     $model->start_time = $start_time;
     $model->end_time = $end_time;
     $contract_id = $model->add();
     if (empty($contract_id)) {
         $this->error("Error!请检查参数的正确性");
     }
     if ($use_recharge == 1 && $recharge != 0) {
         M("MemberBasic")->where(array("id" => $member_id))->setField("recharge", $member['recharge'] - $recharge);
         $data = array("member_id" => $member_id, "value" => "-{$recharge}", "record_id" => is_user_login(), "description" => "购PT消费¥{$recharge},余额¥" . ($member['recharge'] - $recharge));
         $recharge_id = M("RechargeHistory")->data($data)->add();
     }
     $service = \Service\CService::factory("Financial");
     $bill_id = $service->addBillProject(1, 0, $contract_id, $member_id, I("should_pay"), 0, get_brand_id(), is_user_login(), get_club_id(), $member['pt_id'], I("description"));
     if (!$bill_id) {
         $model->delete($contract_id);
         M("MemberBasic")->where(array("id" => $member_id))->setField("recharge", $member['recharge'] + $recharge);
         if (isset($recharge_id)) {
             M("RechargeHistory")->delete($recharge_id);
         }
         $this->error($service->getError());
     }
     $ret = $service->pay($bill_id, 0, is_user_login(), get_brand_id(), I('description'), I("cash"), I("pos"), I("check"), I("check_num"), get_club_id(), $recharge, I("network"), I("netbank"));
     if (!$ret) {
         $model->delete($contract_id);
         M("MemberBasic")->where(array("id" => $member_id))->setField("recharge", $member['recharge'] + $recharge);
         if (isset($recharge_id)) {
             M("RechargeHistory")->delete($recharge_id);
         }
         M("BillProject")->delete($bill_id);
         $this->error($service->getError());
     }
     if ($book_price != 0) {
         M("MemberBasic")->where(array("id" => $member_id))->setDec("pt_book_price", $book_price);
         $bill_project = M("BillProject")->where(array("member_id" => $member_id, "type" => 8, "object_id" => 0))->select();
         $i = $book_price;
         foreach ($bill_project as $key => $value) {
             $i -= $value['paid'];
             M("BillProject")->where("id=" . $value['id'])->setField(array("object_id" => $contract_id));
             if ($i <= 0) {
                 break;
             }
         }
         M("BillProject")->where("id={$bill_id}")->setInc("paid", $book_price);
     }
     // $cashHistoryModel->data(array("type"=>1,"sub_type"=>0,"recharge"=>$recharge,"cash"=>I("cash"),"check"=>I("check"),"pos"=> I("pos"),"object_id"=>$contract_id,"price"=>I("should_pay"),"record_id"=>is_user_login(),"brand_id"=>get_brand_id()))->add();
     $reason = "新增PT合同";
     if ($class['price'] * I("total_num") > I("should_pay")) {
         $reason .= ";收银过低";
     }
     if (!empty($reason)) {
         $contract = M("PtContract")->find($contract_id);
         $data = array("extension" => json_encode($contract), "reason" => $reason, "record_id" => is_user_login(), "club_id" => get_club_id(), "brand_id" => get_brand_id(), "type" => 1, "status" => 0);
         M("Review")->data($data)->add();
     }
     $cards = D("Card")->getAllCards($member_id, get_brand_id());
     if (empty($cards)) {
         $cardModel = D("Card");
         $card_number = date("YmdHis") . rand(0, 10000);
         $card = array("free_rest" => I("free_rest"), "sale_club" => get_club_id(), "is_active" => 1, "brand_id" => get_brand_id(), "card_number" => $card_number, "member_id" => $member_id);
         $card['update_time'] = getDbTime();
         $card_id = $cardModel->data($card)->add();
         $card_number = get_club_id() . $card_id;
         while (true) {
             if ($cardModel->isExist($card_number, get_brand_id())) {
                 $card_number .= rand(0, 100);
             } else {
                 break;
             }
         }
         $cardModel->where("id={$card_id}")->setField("card_number", $card_number);
         $this->success("购买成功!相关卡号为:{$card_number} 请前台烧卡!", U("Cashier/Ptcontract/index"));
     }
     $this->success("购买成功!您的任意会员卡均可进行私教消费!", U("Cashier/Ptcontract/index"));
 }
 public function weixinblacklistAction()
 {
     //检查当日没来的,进入黑名单
     $model = M("AppointHistory");
     $yesterday = date('Y-m-d H:i:s', strtotime("-2 hour"));
     $values = $model->field("a.*,b.start as starttime")->table(array("yoga_appoint_history" => "a", "yoga_club_schedule" => "b"))->where("a.is_check=0 and a.come=0 and a.schedule_id=b.id and b.start<='{$yesterday}'")->select();
     $month = date('Y-m');
     foreach ($values as $key => $value) {
         $model->where("id=" . $value['id'])->setField("is_check", 1);
         $starttime = $value['starttime'];
         $starttime = substr($starttime, 0, 10);
         $ct = M("CheckHistory")->where(array("member_id" => $value['member_id'], "create_time" => array("like", $starttime . "%")))->count();
         if ($ct > 0) {
             M("AppointHistory")->where("id=" . $value['id'])->setField("come", 1);
             continue;
         }
         //本月爽约历史记录次数次数
         //$history=M("AppointBlackList")->where(array("member_id"=>$value['member_id'],"create_time"=>array("gt",$month)))->count();
         $count = $model->where(array("create_time" => array("gt", $month), "come" => 0, "member_id" => $value['member_id']))->count();
         if ($count == 0) {
             continue;
         }
         //爽约原因
         $schedule_id = $value['schedule_id'];
         $schedule = D("ClubSchedule")->find($schedule_id);
         if (!empty($schedule)) {
             $class = M("PtClassPublic")->find($schedule['class_id']);
             $reason = "缺席" . $schedule['start'] . "的" . $class['name'];
         } else {
             $reason = "缺席";
         }
         if ($count == 1) {
             $end_time = date('Y-m-d H:i:s', strtotime("+4 day"));
             //4天
             M("AppointBlackList")->data(array("reason" => $reason, "member_id" => $value['member_id'], "history_id" => $value['id'], "create_time" => getDbTime(), "start_time" => getDbTime(), "end_time" => $end_time))->add();
         } else {
             if ($count == 2) {
                 //2周
                 $end_time = date('Y-m-d H:i:s', strtotime("+2 week"));
                 //4天
                 M("AppointBlackList")->data(array("reason" => $reason, "member_id" => $value['member_id'], "history_id" => $value['id'], "create_time" => getDbTime(), "start_time" => getDbTime(), "end_time" => $end_time))->add();
             } else {
                 //本月
                 $end_time = date('Y-m-d H:i:s', strtotime(date('Y-m-01') . ' +1 month -1 day'));
                 //4天
                 M("AppointBlackList")->data(array("reason" => $reason, "member_id" => $value['member_id'], "history_id" => $value['id'], "create_time" => getDbTime(), "start_time" => getDbTime(), "end_time" => $end_time))->add();
             }
         }
     }
 }
Example #14
0
 public function getGiftAction($uid, $level)
 {
     $model = M("YaaGift");
     for ($i = 1; $i <= $level; $i++) {
         $data = array("member_id" => $uid, "level" => $i, 'create_time' => getDbTime());
         $exist = $model->where($data)->select();
         if (empty($exist)) {
             M("YaaGift")->data($data)->add();
         }
     }
     M("YaaMember")->where("member_id={$uid}")->setField(array("gift_status" => 1));
     $this->ajaxReturn(array("status" => 1, "info" => "您的申请已经提交,请等待!"));
 }
 public function dopayback($contract_id, $price, $desc, $user_id)
 {
     $paybackmodel = M("PayBack");
     $ret = $paybackmodel->where(array("contract_id" => $contract_id))->find();
     if (empty($ret)) {
         $data = array("update_time" => getDbTime(), "contract_id" => $contract_id, "brand_id" => get_brand_id(), "club_id" => get_club_id(), "review_id" => $user_id, "ret" => 1, "pay_back_price" => $price, "description" => $desc, "apply_id" => $user_id);
         $paybackmodel->data($data)->add();
     } else {
         $ret['ret'] = 1;
         $ret['pay_back_price'] = $price;
         $ret['description'] = $desc;
         $ret['review_id'] = $user_id;
         $ret['update_time'] = getDbTime();
         $paybackmodel->data($ret)->save();
     }
     M("Contract")->where(array("id" => $contract_id))->setField(array("invalid" => 0, "status" => 7));
     $contract = M("Contract")->find($contract_id);
     $card_id = $contract['card_id'];
     if (M("Contract")->where(array("card_id" => $card_id, "invalid" => 1))->count() == 0) {
         $card = M("Card")->find($card_id);
         $card['status'] = 4;
         M("CardDel")->data($card)->add();
         M("Card")->delete($card_id);
     }
     return true;
 }
 public function editAction($id, $card_number, $btype, $card_type_id, $present_day, $present_num, $price, $start_time, $end_time, $active_type, $desc, $free_rest, $free_trans, $mc_name)
 {
     $rules = array(array('id', 'require', '合同ID必须!', 1), array('card_number', 'require', '卡号必须!', 1), array('btype', array(0, 1), '类型不对!', 1, 'in'), array('card_type_id', 'number', '卡类型不对!', 1), array('present_day', 'number', '赠送天数需要为整数!', 1), array('present_num', 'number', '赠送次数需要为整数!', 1), array('price', 'number', '请输入正确的应付价格!', 1), array('active_type', array(0, 1, 2), '请选择开卡方式!', 1, 'in'));
     $bill = M("BillProject")->find($id);
     $model = D("Contract");
     if (!$model->validate($rules)->create()) {
         $this->error($model->getError());
     }
     if ($active_type != 2) {
         $rules = array(array('start_time', '/^\\d{4}-\\d{2}-\\d{2}$/', '请选择合同开始日期!', 1), array('end_time', '/^\\d{4}-\\d{2}-\\d{2}$/', '请选择合同结束日期!', 1));
         if (!$model->validate($rules)->create()) {
             $this->error($model->getError());
         }
     }
     $cardTypeModel = M("CardType");
     $cardType = $cardTypeModel->find($card_type_id);
     if (empty($cardType)) {
         $this->error("卡种不存在!");
     }
     $model = D("Contract");
     $original_contract = $model->find($bill['object_id']);
     $member_id = $original_contract['member_id'];
     $card_id = $original_contract['card_id'];
     $original_extension = json_encode($original_contract);
     if (empty($original_contract)) {
         $this->error("Error");
     }
     if ($original_contract['is_review'] == 1 && !is_user_brand()) {
         $this->error("此合同已审核,如需修改,请联系管理员! ");
     }
     if ($original_contract['is_review'] == 2) {
         $this->error("此合同已升级作废,如需修改请联系管理员!  ");
     }
     $cardModel = D("Card");
     if ($card_number != $original_contract['card_number']) {
         $c = $cardModel->getCard($card_number, get_brand_id());
         if (empty($c)) {
             //delete this card is no relate contract
             $count = $model->where("card_id=" . $original_contract['card_id'])->count();
             if ($count == 1) {
                 $card = $cardModel->find($original_contract['card_id']);
                 if (empty($card)) {
                     $card = array("card_number" => $card_number, "member_id" => $member_id, "brand_id" => get_brand_id());
                     $card_id = $cardModel->data($card)->add();
                 } else {
                     M("Card")->where("id=" . $original_contract['card_id'])->setField(array("card_number" => $card_number, "is_auto_create" => 0));
                 }
             } else {
                 $card = $cardModel->find($card_id);
                 unset($card['id']);
                 $card['create_time'] = getDbTime();
                 $card['update_time'] = getDbTime();
                 $card['card_number'] = $card_number;
                 $card_id = $cardModel->data($card)->add();
             }
         } else {
             if ($c['member_id'] != $member_id) {
                 $this->error("此卡已被占用!请输入其他卡号!");
             }
             $card_id = $c['id'];
         }
     }
     if (!$card_id) {
         $this->error("开卡失败,请稍后再试!");
     }
     if (I('active_type') == 2) {
         unset($model->start_time);
         unset($model->end_time);
     }
     $new_contract = $original_contract;
     $new_contract['card_id'] = $card_id;
     $new_contract['type'] = $btype;
     if ($original_contract['card_type_id'] != $card_type_id) {
         $new_contract['card_type_extension'] = json_encode($cardType);
     }
     $new_contract['card_type_id'] = $card_type_id;
     $new_contract['present_day'] = $present_day;
     $new_contract['present_num'] = $present_num;
     $new_contract['price'] = $price;
     $new_contract['start_time'] = $start_time;
     $new_contract['end_time'] = $end_time;
     $new_contract['active_type'] = $active_type;
     $new_contract['free_rest'] = $free_rest;
     $new_contract['free_trans'] = $free_trans;
     if ($original_contract['mc_id'] != $mc_name) {
         M("MemberBasic")->where("id={$member_id}")->setField(array("mc_id" => $mc_name));
         M("BillProject")->where("id={$id}")->setField(array("mc_id" => $mc_name));
     }
     $new_contract['mc_id'] = $mc_name;
     if (!empty($desc)) {
         $new_contract['description'] = $desc . ";" . $original_contract['description'];
     }
     $new_contract['total_num'] = $present_num + $cardType['valid_number'];
     $model->data($new_contract)->save();
     M("BillProject")->where("id={$id}")->setField(array("price" => $price));
     //review
     $reason = "合同修改";
     if (!empty($reason)) {
         $contract = M("Contract")->find($new_contract["id"]);
         $data = array("original_extension" => $original_extension, "extension" => json_encode($contract), "reason" => $reason, "record_id" => is_user_login(), "club_id" => get_club_id(), "brand_id" => get_brand_id(), "type" => 0, "status" => 0);
         M("Review")->data($data)->add();
     }
     $this->success("修改成功");
 }
Example #17
0
<?php

include_once "../common.php";
include_once ROOT_PATH . "/mod/functs.php";
refresh_bot_info();
$date = getDbTime();
if (!$date) {
    die("<font class='error'>ERROR</font> : cannot get time");
}
$YEAR = gmdate('Y', $date);
$MONTH = gmdate('m', $date);
$DAY = gmdate('d', $date);
$TIME = gmdate('H:i:s', $date);
echo "<b>{$YEAR}<br>{$MONTH}/{$DAY}<br>{$TIME}</b>";
$sql = 'SELECT COUNT(id_bot) FROM bots_t WHERE status_bot <> \'offline\'';
$res = $db->query($sql);
$cnt = -1;
if (@$res && $db->affected_rows > 0) {
    list($cnt) = $res->fetch_array();
}
$sql = 'SELECT COUNT(id_bot) FROM bots_t';
$res = $db->query($sql);
$cnt2 = -1;
if (@$res && $db->affected_rows > 0) {
    list($cnt2) = $res->fetch_array();
}
echo "<script>\$('#bot_info').html('<b>{$cnt}<br>{$cnt2}</b>');</script>";
//
Example #18
0
 private function ptappoint($member_id, $contract_id, $pt_id)
 {
     $date = date('Y-m-d');
     $appoint = M("PtAppoint")->where(array("member_id" => $member_id, "pt_id" => $pt_id, "appoint_date" => $date))->find();
     if (empty($appoint)) {
         $appoint_id = M("PtAppoint")->date(array("member_id" => $member_id, "pt_id" => $pt_id, "appoint_date" => $date, "create_time" => getDbTime(), "is_appoint" => 0))->add();
     } else {
         $appoint_id = $appoint['id'];
     }
     // M("PtAppoint")->where("id=$appoint_id")->setField("is_come"=>1);
 }
Example #19
0
 public function editAction()
 {
     $channel = I("channel_id");
     $model = D("MemberBasic");
     $id = I("id");
     $member = $model->find($id);
     if (empty($member)) {
         $this->error("此访客不存在,不能修改!");
     }
     if (!is_user_brand()) {
         $is_reception = D("User")->isReception(is_user_login());
         if (!$is_reception && $member["mc_id"] != is_user_login() && $member['record_id'] != is_user_login()) {
             $this->error("无权查看此用户信息");
         }
     } else {
         if ($member['brand_id'] != get_brand_id()) {
             $this->error("无权查看此用户信息");
         }
     }
     if (!$model->create()) {
         $this->error($model->getError());
     } else {
         $brand_id = get_brand_id();
         $club_id = get_club_id();
         $condition = array();
         $condition['club_id'] = $club_id;
         $condition['id'] = array("neq", $id);
         $where['phone'] = I("phone");
         $certificate_number = I("certificate_number");
         if (!empty($certificate_number)) {
             $where['certificate_number'] = I("certificate_number");
         } else {
             $where['1'] = '0';
         }
         $where['_logic'] = 'or';
         $condition['_complex'] = $where;
         $member = $model->where($condition)->find();
         if (!empty($member)) {
             $this->error("此访客信息已存在,不能再添加!");
         }
         if ($member['type'] != I('type') || $member['pre_sale'] != I('pre_sale')) {
             $model->level_update_time = getDbTime();
         }
         $model->save();
         if (!empty($_FILES["avatar"]["name"])) {
             $upload = new \Think\Upload();
             // 实例化上传类
             $upload->maxSize = 31457280;
             // 设置附件上传大小
             $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
             // 设置附件上传类型
             $upload->rootPath = './Public/uploads/';
             // 设置附件上传根目录
             $upload->savePath = "mmb_avatar/";
             $upload->autoSub = false;
             $upload->replace = true;
             $upload->saveName = "{$id}";
             $info = $upload->upload();
             if (!$info) {
                 $this->error($upload->getError());
             } else {
                 $avatar = $info["avatar"]['savename'];
                 $model->where("id={$id}")->setField("avatar", $avatar);
             }
         }
     }
     $this->success('成功!', Cookie('__forward__'));
     // $this->success('成功!', $this->getAddRedirectUrl($member['is_member']),1);
 }
Example #20
0
 public function freeLocks()
 {
     $ids = I("ids");
     $club_id = I("club_id");
     $model = M("Lock");
     $model->where(array("club_id" => $club_id, "id" => array("in", $ids)))->setField(array("is_use" => 0));
     foreach ($ids as $key => $value) {
         M("LockUseHistory")->data(array("card_id" => "0", "lock_id" => $value, "status" => 0, "via" => 1, "create_time" => getDbTime()))->add;
         \Think\Log::write("free lock by manual " . $value, 'DEBUG');
     }
     $this->ajaxReturn(array("state" => 1, "data" => "释放锁!"));
 }