public function getnewAction($id) { $model = D("Card"); $card = M("Card")->find($id); if (empty($card)) { $this->error("card does not exist!"); } if ($card['status'] != 0 && $card['status'] != 2) { $this->error("非正常状态不能补卡!"); } if ($card['buka'] < 1) { $this->error("请先购买补卡费!"); } unset($card['id']); $card_number = I('card_number'); if (!empty($card_number) && $model->isExist($card_number, get_brand_id())) { $this->error("卡号已存在!"); } if (empty($card_number)) { $card_number = getautocardnumber(); } if (!empty($card_number)) { M("Card")->where(array("id" => $id))->setField("card_number", $card_number); } $club_id = get_club_id(); //记录此人今天有补卡,每天脚本检查哪些人没收钱的,没收钱的也要入进系统! M("BukaTemp")->data(array("member_id" => $card['member_id'], "ext" => "补卡,卡号从" . $card['card_number'] . "修改为" . $card_number))->add(); $buka = M()->query("select a.* from yoga_goods a,yoga_goods_club b where b.club_id={$club_id} and b.goods_id=a.id and a.is_system=1 and a.sys_type=0"); M("Card")->where("id={$id}")->setDec('buka', 1); // D("CardOpHistory")->updateStatus($id,2,0,$new_id); $this->ajaxReturn(array("new_card_number" => $card_number, "status" => 1, "info" => "补卡成功!新的卡号为 {$card_number}!")); }
public function doTransformAction($owner_id, $contract_id, $new_id, $new_card_number) { $memberModel = M("MemberBasic"); $memberModel->startTrans(); $cardModel = M("Card"); $contractModel = M("Contract"); $originalcontract = $contract = $contractModel->find($contract_id); $is_active = 1; $new_member = $memberModel->find($new_id); if (empty($new_member)) { $memberModel->rollback(); $this->error("Can't find this member in your brand's database!"); } if ($contract['member_id'] != $owner_id) { $memberModel->rollback(); $this->error("This contract not belongs to the owner!"); } if ($contract['invalid'] != 1) { $memberModel->rollback(); $this->error("合同无效,不能转让!"); } 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) { $memberModel->rollback(); $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_id = $originalcontract['card_id']; if (M("Contract")->where(array("card_id" => $card_id, "invalid" => 1))->count() == 1) { $new_card_id = $card_id; M("Card")->where("id={$card_id}")->setField("member_id", $new_id); M("Contract")->where(array("card_id" => $card_id, "invalid" => 1))->setField("card_id", 0); } else { $card = array("sale_club" => get_club_id(), "is_auto_create" => 1, "is_active" => $is_active, "brand_id" => get_brand_id(), "card_number" => getautocardnumber(), "member_id" => $new_id, "update_time" => getDbTime()); $new_card_id = $cardModel->data($card)->add(); } } $contractModel->where("id={$contract_id}")->setField(array("status" => 6, "invalid" => 0)); //create new contract $member = M("MemberBasic")->find($owner_id); $service = \Service\CService::factory("Financial"); $fee = D("Goods")->getZhuanrangFee(); $free_trans = $contract['free_trans']; $price = I("should_pay"); $cn = I("contract_number"); if (!empty($cn)) { $contract['contract_number'] = $cn; } else { $contract['contract_number'] = date("YmdHis") . rand(0, 10000); } $contract['price'] = $price; $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']); $contract['status'] = 4; $contract['card_id'] = $new_card_id; $contract['create_time'] = getDbTime(); $contract['update_time'] = getDbTime(); $contract['description'] = "从 " . $member['name'] . " 转入" . I("description"); $contract_id = M("Contract")->data($contract)->add(); if ($free_trans == 0) { $bill_id = $service->addBillProject(3, 0, $contract_id, $contract['member_id'], I("should_pay"), 0, get_brand_id(), is_user_login(), get_club_id(), $contract['mc_id'], I("description")); if (!$bill_id) { $memberModel->rollback(); $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(), 0, I("network"), I("netbank")); if (!$ret) { $memberModel->rollback(); $this->error($service->getError()); } } else { $bill_id = $service->addBillProject(3, 0, $contract_id, $contract['member_id'], 0, 0, get_brand_id(), is_user_login(), get_club_id(), $contract['mc_id'], I("description")); if (!$bill_id) { $memberModel->rollback(); $this->error($service->getError()); } } 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())); $memberModel->commit(); $this->success("转卡成功!", U("Cashier/Contract/index")); }