|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442 |
- <?php
- class update_supply
- {
- public function execUpdateSupply($supply_id,$supplier_name, $area_id, $company_name,$purchase, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_info)
- {
- //1.获取采购详情数组
- $purchase_array = $this->getPurchase($purchase);
-
- //2.从数据库获取采购详情
- $db_purchase_array = $this->getDbPurchase($supply_id);
-
- //3.获取联系人详情数组
- $link_array = $this->getLink($link_info);
-
- //4.从数据库获取联系人详情
- $db_link_array = $this->getDbLink($supply_id);
-
- //5.比较采购详情
- $purchase = $this->compare($purchase_array, $db_purchase_array);
-
- //6,比较联系详情
- $link = $this->compare($link_array, $db_link_array);
-
- //7,从数据库获取供应商详情
- $db_supply = $this->getDbSupply($supply_id);
-
- //8.操作数据库
- $supply_array = array('supplier_name' => $supplier_name,'area_id' => $area_id,'company_name' => $company_name,'sett_type' => $sett_type,'sett_frequency' => $sett_frequency,'account_bank' => $account_bank,'account_num' => $account_num,'account_name' => $account_name);
- $res = $this -> updatePdoChannel($supply_id,$supply_array,$db_supply,$purchase,$link);
- echo json_encode($res);
- exit();
- }
-
- //获取采购详情数组
- function getPurchase($purchase)
- {
- if ($purchase == '') {
- $purchase_array = array();
- return $purchase_array;
- }
-
- $purchase = substr($purchase, 1, strlen($purchase) - 2);
- $purchase = explode("}{", $purchase);
- $i = -1;
- foreach ($purchase as $item => $value) {
- $value = explode(",", $value);
- $status = 0;
- foreach ($value as $k => $v) {
- if (empty($v)) {
- $status = 1;
- break;
- }
- }
- if ($status == 0) {
- if($value[0] >= 0)
- {
- $purchase_array[$value[0]]['purchase_id'] = $value[0];
- $purchase_array[$value[0]]['product_type'] = $value[1];
- $purchase_array[$value[0]]['purchaser_name'] = $value[2];
- }
- else
- {
- $purchase_array[$i]['purchase_id'] = $i;
- $purchase_array[$i]['product_type'] = $value[1];
- $purchase_array[$i]['purchaser_name'] = $value[2];
- $i--;
- }
- }
- }
- return $purchase_array;
- }
-
- //获取联系人详情数组
- function getLink($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);
- 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[$value] = $link_memcache[$value];
- }
- }
- return $link_array;
- }
-
- //从数据库获取采购详情数组
- function getDbPurchase($supply_id)
- {
- global $pdo;
- $sql = "SELECT
- id AS purchase_id,
- product_type,
- purchaser_name
- FROM
- base_supplier_purchase
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $supply_id;
- writeLog("getDbPurchase base_supplier_purchase:" . $sql);
- $result = $pdo->query($sql);
- $res = $result->fetchAll(PDO::FETCH_ASSOC);
- if(count($res) > 0)
- {
- foreach($res as $k => $v)
- {
- $result1[$v['purchase_id']] = $v;
- }
- }
- else
- {
- $result1= array();
- }
- return $result1;
- }
-
- //从数据库获取联系人详情
- function getDbLink($channel_id)
- {
- global $pdo;
- $sql = "SELECT
- id as link_id,
- link_name,
- contact_name,
- contact_mobile,
- contact_telphone,
- fax,
- email,
- remark
- FROM
- base_supplier_link
- WHERE
- cancel_flag = 0
- AND supplier_id = " . $channel_id;
- writeLog("getDbLink base_supplier_link:" . $sql);
- $result = $pdo->query($sql);
- $res = $result->fetchAll(PDO::FETCH_ASSOC);
- if(count($res) > 0)
- {
- foreach($res as $k => $v)
- {
- $result1[$v['link_id']] = $v;
- }
- }
- else
- {
- $result1= array();
- }
- return $result1;
- }
-
- //从数据库获取供应商详情
- function getDbSupply($supply_id)
- {
- global $pdo;
- $sql = "SELECT
- supplier_name,
- area_id,
- company_name,
- sett_type,
- sett_frequency,
- account_bank,
- account_num,
- account_name
- FROM
- base_supplier
- WHERE
- cancel_flag = 0
- AND id = " . $supply_id;
- writeLog("getDbChannel base_supplier:" . $sql);
- $result = $pdo->query($sql);
- $res = $result->fetchAll(PDO::FETCH_ASSOC);
- $res = $res[0];
- return $res;
- }
-
- //比较数组(前台数组,数据库数组)
- function compare($arr, $db_arr)
- {
- $result = array();
- if(count($db_arr) == 0 && count($arr) == 0)
- {
- return $result;
- }
- elseif (count($db_arr) == 0)
- {
- $result['insert'] = $arr;
- return $result;
- }
- elseif (count($arr) == 0)
- {
- $result['delete'] = $db_arr;
- return $result;
- }
- else
- {
- //print_r($arr);print_r($db_arr);die;
- foreach ($arr as $key => $value) {
- if(isset($db_arr[$key]))
- {
- if($arr != $db_arr)
- {
- $result['update'][$key] = $value;
- }
-
- }
- else
- {
- $result['insert'][$key] = $value;
- }
- }
- foreach($db_arr as $key => $value)
- {
- if(!isset($arr[$key]))
- {
- $result['delete'][$key] = $value;
- }
- }
- return $result;
-
- }
- }
-
- //获取update操作中的set数据
- function getUpdateSet($arr)
- {
- $set_array = array();
- foreach($arr as $k => $v)
- {
- if(!empty($v))
- {
- $set_array[] = $k . " = '" . $v . "'";
- }
- else
- {
- if($k == 'account_bank' || $k == 'account_num' || $k == 'account_name' || $k == 'link_name' || $k == 'contact_name' || $k == 'contact_mobile' || $k == 'contact_telphone' || $k == 'fax' || $k == 'email' || $k == 'remark' || $k == 'id_card')
- {
- $set_array[] = $k . " = ''";
- }
- else
- {
- $set_array[] = $k . " = '0'";
- }
- }
- }
- $set_str = implode(",",$set_array);
- return $set_str;
- }
-
- //操作数据库
- function updatePdoChannel($supply_id,$supply_array,$db_supply,$purchase,$link)
- {
- global $pdo;
- $user_id = getUserId();
- $time = date('Y-m-d H:i:s',time());
- try {
- $pdo->beginTransaction();
- //1.操作base_supplier表
- if($supply_array != $db_supply)//修改
- {
- $set_str = $this->getUpdateSet($supply_array);
- $update_supplier_sql = "UPDATE base_supplier
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $supply_id;
- writeLog("UPDATE base_supplier:" . $update_supplier_sql);
- $result = $pdo->exec($update_supplier_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- //2.操作base_supplier_sale表
-
- if(count($purchase) > 0)
- {
- if(count($purchase['update']) > 0)//修改
- {
- $update_purchase_array = array();
- foreach($purchase['update'] as $key => $value)
- {
- unset($value['purchase_id']);
- $set_str = $this->getUpdateSet($value);
- $update_purchase_array[] = "UPDATE base_supplier_purchase
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $key;
- }
- $update_purchase_sql = implode(";",$update_purchase_array);
- writeLog("./" . $update_purchase_sql);
- $result = $pdo->exec($update_purchase_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- if(count($purchase['insert']) > 0)//增加
- {
- $insert_purchase_sql = "INSERT INTO base_supplier_purchase (
- create_user_id,
- create_time,
- supplier_id,
- product_type,
- purchaser_name
- )
- VALUES ";
- foreach($purchase['insert'] as $key => $value)
- {
- $purchase_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supply_id . "," . $value['product_type'] . ",'" . $value['purchaser_name'] . "')";
- }
- $insert_purchase_sql .= implode(",", $purchase_sql_array);
- writeLog("INSERT base_supplier_purchase:" . $insert_purchase_sql);
- $result = $pdo->exec($insert_purchase_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- if(count($purchase['delete']) > 0)//删除
- {
- $delete_purchase_array = array();
- foreach($purchase['delete'] as $key => $value)
- {
- $delete_purchase_array[] = "UPDATE base_supplier_purchase
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "',cancel_flag = 1
- WHERE
- id = " . $key;
- }
- $delete_purchase_sql = implode(";",$delete_purchase_array);
- writeLog("delete base_supplier_sale:" . $delete_purchase_sql);
- $result = $pdo->exec($delete_purchase_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- }
-
- //3.操作base_supplier_link表
- if(count($link) > 0)
- {
- if(count($link['update']) > 0)//修改
- {
- $update_link_array = array();
- foreach($link['update'] as $key => $value)
- {
- unset($value['link_id']);
- $set_str = $this->getUpdateSet($value);
- $update_link_array[] = "UPDATE base_supplier_link
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "'," . $set_str . "
- WHERE
- id = " . $key;
- }
- $update_link_sql = implode(";",$update_link_array);
- writeLog("UPDATE base_supplier_link:" . $update_link_sql);
- $result = $pdo->exec($update_link_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
-
- if(count($link['insert']) > 0)//增加
- {
- $insert_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['insert'] as $key => $value)
- {
- $link_sql_array[] = "(" . $user_id . ",'" . $time . "'," . $supply_id . ",'" . $value['link_name'] . "','" . $value['contact_name'] . "','" . $value['contact_mobile'] . "','" . $value['contact_telphone'] . "','" . $value['fax'] . "','" . $value['email'] . "','" . $value['remark'] . "')";
- }
- $insert_link_sql .= implode(",", $link_sql_array);
- writeLog("INSERT base_supplier_purchase:" . $insert_link_sql);
- $result = $pdo->exec($insert_link_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- if(count($link['delete']) > 0)//删除
- {
- $delete_link_array = array();
- foreach($link['delete'] as $key => $value)
- {
- $delete_link_array[] = "UPDATE base_supplier_link
- SET update_user_id = " . $user_id . ",update_time = '" . $time . "',cancel_flag = 1
- WHERE
- id = " . $key;
- }
- $delete_link_sql = implode(";",$delete_link_array);
- writeLog("delete base_supplier_sale:" . $delete_link_sql);
- $result = $pdo->exec($delete_link_sql);
- if (!$result) {
- throw new Exception("db die");
- }
- }
- }
-
- $pdo->commit();
-
- //4.删除缓存
- $key = $_COOKIE['memcache'];
- delete_memcache('ZHANGS_LINK' . $key);
- delete_memcache('ZHANGS_SALE' . $key);
-
- $json['code'] = '0';
- $json['info'] = '修改数据成功';
- } catch (PDOException $ex) {
- $pdo->rollBack();
- $json['code'] = '1';
- $json['info'] = '修改失败';
- }
- return $json;
- }
- }
- $supply_id = trim($_POST['supply_id']);//供应商id
- $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']);//联系人详情
-
- $update_supply = new update_supply();
- $update_supply -> execUpdateSupply($supply_id,$supplier_name, $area_id, $company_name,$purchase, $sett_type, $sett_frequency, $account_bank, $account_num, $account_name, $link_info)
- ?>
|