|
- <?php
-
- /*
- * 添加供应商
- * author:张帅
- */
-
- class add_supply
- {
- //添加主要流程
- function execAddSupply($supplier_name, $area_id, $company_name, $purchase, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_info)
- {
- global $pdo;
- $sql = "SELECT
- supplier_name
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- AND supplier_name = '" . $supplier_name . "' AND supplier_type=187 ";
- writeLog("check base_supplier:" . $sql);
- $result = $pdo->query($sql);
- $check_name = $result->fetchAll(PDO::FETCH_ASSOC);
- if(count($check_name) > 0)
- {
- $json['code'] = '1';
- $json['info'] = '用户名已存在';
- echo json_encode($json);
- exit();
- }
- //1.获取采购信息详情数组
- $purchase_array = $this->getPurchaseInfo($purchase);
-
- //2.获取联系人详情数组
- $link_array = $this->getLinkInfo($link_info);
-
- //3.判断必填数据是否为空
- $judgeData = $this->judgeData($supplier_name, $area_id, $company_name, $sett_type, $sett_frequency);
- if ($judgeData['code'] == '1') {
- echo json_encode($judgeData);
- exit();
- }
-
- //4.向数据库中中添加数据
- $res = $this->addPdoSupply($supplier_name, $area_id, $company_name, $purchase_array, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_array);
- echo json_encode($res);
- exit();
- }
-
- //获取采购信息详情数组
- function getPurchaseInfo($purchase)
- {
- if ($purchase == '') {
- $purchase_array = array();
- return $purchase_array;
- }
-
- $purchase = substr($purchase, 1, strlen($purchase) - 2);
- $purchase = explode("}{", $purchase);
-
- $i = 0;
- foreach ($purchase as $item => $value) {
- $value = explode(",", $value);
- $status = 0;
- foreach ($value as $k => $v) {
- if (empty($v)) {
- $status = 1;
- break;
- }
- }
- if ($status == 0) {
- $purchase_array[$i]['product_type'] = $value[0];
- $purchase_array[$i]['purchaser_name'] = $value[1];
- $i++;
- }
- }
- return $purchase_array;
- }
-
- //获取联系人详情数组
- function getLinkInfo($link_info)
- {
- if ($link_info == '') {
- $link_array = array();
- return $link_array;
- }
- $link_info = explode(",", $link_info);
- $key = $_COOKIE['memcache'];
- $link_memcache = get_memcache('ZHANGS_LINK' . $key);
- $i = 0;
- foreach ($link_info as $item => $value) {
- $status = 0;
- if (empty($link_memcache[$value]['link_name']) || empty($link_memcache[$value]['contact_name'])) {
- $status = 1;
- }
- if ($status == 0) {
- $link_array[$i] = $link_memcache[$value];
- $i++;
- }
- }
- return $link_array;
- }
-
- //检查必填数据是否为空
- function judgeData($supplier_name, $area_id, $company_name, $sett_type, $sett_frequency)
- {
- if (empty($supplier_name)) {
- $json['code'] = '1';
- $json['info'] = '供应商名称不能为空';
- } elseif (empty($area_id)) {
- $json['code'] = '1';
- $json['info'] = '供应商区域不能为空';
- } elseif (empty($company_name)) {
- $json['code'] = '1';
- $json['info'] = '供应商公司不能为空';
- } elseif (empty($sett_type)) {
- $json['code'] = '1';
- $json['info'] = '结算方式不能为空';
- } elseif (empty($sett_frequency)) {
- $json['code'] = '1';
- $json['info'] = '结算周期名称不能为空';
- } else {
- $json['code'] = '0';
- $json['info'] = '成功';
- }
- return ($json);
- }
-
- //在数据库中添加供应商信息
- function addPdoSupply($supplier_name, $area_id, $company_name, $purchase_array, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_array)
- {
- global $pdo;
- $user_id = getUserId();//$_COOKIE['user_id'];
- //运营主体
- $main_corp_id_sql = "select main_corp_id from base_user where id = " . $user_id . ' and cancel_flag = 0 limit 1';
- $result = $pdo->query($main_corp_id_sql);
- $main_corp_id = $result->fetchAll(PDO::FETCH_ASSOC);
- $main_corp_id = $main_corp_id[0]['main_corp_id'];
-
- $time = date('Y-m-d H:i:s', time());
- try {
- $pdo->beginTransaction();
- //1.添加base_supplier表
- $supplier_sql = "INSERT INTO base_supplier (
- create_user_id,
- create_time,
- supplier_type,
- supplier_name,
- area_id,
- company_name,
- is_disabled,
- sett_type,
- sett_frequency,
- account_bank,
- account_num,
- account_name,
- main_corp_id
- )
- VALUES
- (" . $user_id . ",'" . $time . "',187,'" . $supplier_name . "'," . $area_id . ",'" . $company_name . "',0," . $sett_type . "," . $sett_frequency . ",'" . $account_bank . "','" . $account_num . "','" . $account_name . "'," . $main_corp_id . ")";
- writeLog("INSERT INTO base_supplier:" . $supplier_sql);
- $result = $pdo->exec($supplier_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- $supplier_id = $pdo->lastInsertId();
-
- //2.添加base_supplier_purchase表
- if(count($purchase_array) > 0)
- {
- $purchase_sql = "INSERT INTO base_supplier_purchase (
- create_user_id,
- create_time,
- supplier_id,
- product_type,
- purchaser_name
- )
- VALUES ";
- foreach ($purchase_array as $key => $v) {
- $purchase_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supplier_id . "," . $v['product_type'] . ",'" . $v['purchaser_name'] . "')";
- }
- $purchase_sql .= implode(",", $purchase_sql_array);
- writeLog("INSERT INTO base_supplier_purchase:" . $purchase_sql);
- $result = $pdo->exec($purchase_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
-
- //3.添加base_supplier_link表
- if(count($link_array) > 0)
- {
- $link_sql = "INSERT INTO base_supplier_link (
- create_user_id,
- create_time,
- supplier_id,
- link_name,
- contact_name,
- contact_mobile,
- contact_telphone,
- fax,
- email,
- remark
- )
- VALUES ";
-
- foreach ($link_array as $key => $v) {
- $link_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supplier_id . ",'" . $v['link_name'] . "','" . $v['contact_name'] . "','" . $v['contact_mobile'] . "','" . $v['contact_telphone'] . "','" . $v['fax'] . "','" . $v['email'] . "','" . $v['remark'] . "')";
- }
- $link_sql .= implode(",", $link_sql_array);
- writeLog("INSERT INTO base_supplier_link:" . $link_sql);
- $result = $pdo->exec($link_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
-
- $pdo->commit();
-
- //4.删除缓存
- $key = $_COOKIE['memcache'];
- delete_memcache('ZHANGS_LINK' . $key);
-
- $json['code'] = '0';
- $json['info'] = '添加数据成功';
- } catch (PDOException $ex) {
- $pdo->rollBack();
- $json['code'] = '1';
- $json['info'] = '添加失败';
- }
- return $json;
- }
- }
-
- $supplier_name = trim($_POST['supplier_name']);//供应商名称
- $area_id = trim($_POST['area_id']);//所属区域市id
- $company_name = trim($_POST['company_name']);//公司名称
- $purchase = trim($_POST['purchase']);//采购详情
- $sett_type = trim($_POST['sett_type']);//结算方式 (授信:275,预付:288,单结:292)
- $sett_frequency = trim($_POST['sett_frequency']);//结算周期(日结:293,周结:294,月结:295)
- $account_bank = trim($_POST['account_bank']);//开户银行
- $account_num = trim($_POST['account_num']);//银行账号
- $account_name = trim($_POST['account_name']);//账号名称
- $link_info = trim($_POST['link_info']);//联系人详情
-
- $add_supply = new add_supply();
- $add_supply->execAddSupply($supplier_name, $area_id, $company_name, $purchase, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_info);
- ?>
|