コード例 #1
0
ファイル: DbLoanILPayment.php プロジェクト: samlanh/lnms
public function cancelIlPayment($data){
	$db = $this->getAdapter();
	$db_loan = new Loan_Model_DbTable_DbLoanILPayment();
	$db_group = new Loan_Model_DbTable_DbGroupPayment();
	$db->beginTransaction();
	$is_set = 0;
	try{
		$id = $data["id"];
		$recipt_money = $db_loan->getReceiptMoneyById($id);
		$recipt_money_detail = $db_loan->getReceiptMoneyDetailByID($id);
			foreach ($recipt_money_detail as $row_recipt_detail){
				$fun_id = $row_recipt_detail["lfd_id"];
				if($is_set!=1){
					$loan_number = $row_recipt_detail["loan_number"];
					$rs_fun = $db_group->getFunDetailByLoanNumber($loan_number);
					$rs_group = "SELECT m.group_id FROM ln_loan_member AS m WHERE m.loan_number = '$loan_number' GROUP BY m.loan_number";
					$group_id = $db->fetchOne($rs_group);
					if(empty($rs_fun) or $rs_fun=="" or $rs_fun==null){
						$arr_member = array(
							'is_completed'	=>	0,
						);
						$this->_name = "ln_loan_member";
						$where = $db->quoteInto("loan_number=?", $loan_number);
						
						$db->getProfiler()->setEnabled(true);
						
						$this->update($arr_member, $where);
						
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
						$db->getProfiler()->setEnabled(false);
						
						$arr_group = array(
							'status'	=>	1,
						);
						$this->_name = "ln_loan_group";
						$where = $db->quoteInto("g_id=?", $group_id);
						
						$db->getProfiler()->setEnabled(true);
						
						$this->update($arr_group, $where);
						
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
						$db->getProfiler()->setEnabled(false);
					}
					$is_set=1;
				}
				if($recipt_money["payment_option"]==1){
					echo 1111;
					
					$is_completed = $db_loan->getFunDetailById($fun_id);
					if($is_completed==1){
						$arr_update = array(
							'is_completed' =>	0,
						);
						$this->_name = "ln_loanmember_funddetail";
						$where = $db->quoteInto("id=?", $fun_id);
						
						$db->getProfiler()->setEnabled(true);
						
						$this->update($arr_update, $where);
						
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
						$db->getProfiler()->setEnabled(false);
					}else{
						$arr_update = array(
							'principle_after'		=> 	$row_recipt_detail["principal_permonth"],
							'total_interest_after'	=>	$row_recipt_detail["total_interest"],
							'penelize'				=>	$row_recipt_detail["penelize_amount"],
							'service_charge'		=>	$row_recipt_detail["service_charge"],
							'total_payment_after'	=>	$row_recipt_detail["total_payment"],	
							'is_completed' 			=>	0,
						);
						$this->_name = "ln_loanmember_funddetail";
						$where = $db->quoteInto("id=?", $fun_id);
						
						$db->getProfiler()->setEnabled(true);
						
						$this->update($arr_update, $where);
						
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
						Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
						$db->getProfiler()->setEnabled(false);
					}
				}else{
					$arr_update = array(
							'is_completed' =>	0,
					);
					$this->_name = "ln_loanmember_funddetail";
					$where = $db->quoteInto("id=?", $fun_id);
					
					$db->getProfiler()->setEnabled(true);
					
					$this->update($arr_update, $where);
					
					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
					$db->getProfiler()->setEnabled(false);
				}
			}
			
			$sql = "DELETE FROM `ln_client_receipt_money` WHERE `id`=$id";
			
			$db->getProfiler()->setEnabled(true);
			
			$db->query($sql);
			
			Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
			Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
			$db->getProfiler()->setEnabled(false);
			
			$sql_cmd = "DELETE FROM `ln_client_receipt_money_detail` WHERE `crm_id` = $id";
			
			$db->getProfiler()->setEnabled(true);
			
			$db->query($sql_cmd);
			
			Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
			Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
			$db->getProfiler()->setEnabled(false);
		exit();
// 		$db->commit();
	}catch (Exception $e){
		$db->rollBack();
		echo $e->getMessage();
		
	}
}   
コード例 #2
0
ファイル: DbGroupPayment.php プロジェクト: samlanh/lnms
    function updateGroupPayment($data){
    	$db = $this->getAdapter();
    	$db_loan = new Loan_Model_DbTable_DbLoanILPayment();
    	$db_group= new Loan_Model_DbTable_DbGroupPayment();
    	$db->beginTransaction();
    	$session_user=new Zend_Session_Namespace('auth');
    	$user_id = $session_user->user_id;
    	$query = new Application_Model_DbTable_DbGlobal();
    	$id= $data["id"];
    	//$old_loannumber= $data["old_loan_number"];
    	$option_pay = $data["option_pay"];
    	$is_set=0;
    	try{
    		$arr_client_pay = array(
    				'co_id'							=>		$data['co_id'],
    				'group_id'						=>		$data["client_code"],
    				'receiver_id'					=>		$data['reciever'],
    				'branch_id'						=>		$data['branch_id'],
    				'date_input'					=>		$data["collect_date"],
    				'principal_amount'				=>		$data["priciple_amount"],
    				'total_principal_permonth'		=>		$data["os_amount"],
    				'total_payment'					=>		$data["total_payment"],
    				'total_interest'				=>		$data["total_interest"],
    				'recieve_amount'				=>		$data["amount_receive"],
    				'penalize_amount'				=>		$data['penalize_amount'],
    				'return_amount'					=>		$data["amount_return"],
    				'service_charge'				=>		$data["service_charge"],
    				'note'							=>		$data['note'],
    				'user_id'						=>		$user_id,
    				'is_group'						=>		1,
    				'payment_option'				=>		1,
    				'currency_type'					=>		$data["currency_type"],
    				'status'						=>		1,
    				'amount_payment'				=>		$data["amount_receive"]-$data["amount_return"],
    				'is_completed'					=>		1
    		);
    		$this->_name = "ln_client_receipt_money";
    		$where = $db->quoteInto("id=?", $id);
    		$db->getProfiler()->setEnabled(true);
    		
    		$client_pay = $this->update($arr_client_pay, $where);
    		Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    		Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    		$db->getProfiler()->setEnabled(false);
    		
    		$recipt_money = $db_loan->getReceiptMoneyById($id);
    		$recipt_money_detail = $db_loan->getReceiptMoneyDetailByID($id);
    		print_r($recipt_money_detail);
    		foreach ($recipt_money_detail as $row_recipt_detail){
    			$fun_id = $row_recipt_detail["lfd_id"];
    			if($is_set!=1){
    				$loan_number = $row_recipt_detail["loan_number"];
    				
    				$rs_fun = $db_group->getFunDetailByLoanNumber($loan_number);
    				$rs_group = "SELECT m.group_id FROM ln_loan_member AS m WHERE m.loan_number = '$loan_number' GROUP BY m.loan_number";
    				$group_id = $db->fetchOne($rs_group);
    				if(empty($rs_fun) or $rs_fun=="" or $rs_fun==null){
    					$arr_member = array(
    							'is_completed'	=>	0,
    					);
    					$this->_name = "ln_loan_member";
    					$where = $db->quoteInto("loan_number=?", $loan_number);
    					
    					$db->getProfiler()->setEnabled(true);
    					
    					$this->update($arr_member, $where);
    					
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    					$db->getProfiler()->setEnabled(false);
    		
    					$arr_group = array(
    							'status'	=>	1,
    					);
    					$this->_name = "ln_loan_group";
    					$where = $db->quoteInto("g_id=?", $group_id);
    					
    					$db->getProfiler()->setEnabled(true);
    					
    					$this->update($arr_group, $where);
    					
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    					$db->getProfiler()->setEnabled(false);
    				}
    				$is_set=1;
    			}
    			if($recipt_money["payment_option"]==1){
    				$is_completed = $db_loan->getFunDetailById($fun_id);
    				if($is_completed==1){
    					$arr_update = array(
    							'is_completed' =>	0,
    					);
    					$this->_name = "ln_loanmember_funddetail";
    					$where = $db->quoteInto("id=?", $fun_id);
    					
    					$db->getProfiler()->setEnabled(true);
    					
    					$this->update($arr_update, $where);
    					
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    					$db->getProfiler()->setEnabled(false);
    				}else{
    					$arr_update = array(
    							'principle_after'		=> 	$row_recipt_detail["principal_permonth"],
    							'total_interest_after'	=>	$row_recipt_detail["total_interest"],
    							'penelize'				=>	$row_recipt_detail["penelize_amount"],
    							'service_charge'		=>	$row_recipt_detail["service_charge"],
    							'total_payment_after'	=>	$row_recipt_detail["total_payment"],
    							'is_completed' 			=>	0,
    					);
    					$this->_name = "ln_loanmember_funddetail";
    					$where = $db->quoteInto("id=?", $fun_id);
    					
    					$db->getProfiler()->setEnabled(true);
    					
    					$this->update($arr_update, $where);
    					
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    					Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    					$db->getProfiler()->setEnabled(false);
    				}
    			}else{
    				$arr_update = array(
    						'is_completed' =>	0,
    				);
    				$this->_name = "ln_loanmember_funddetail";
    				$where = $db->quoteInto("id=?", $fun_id);
    				
    				$db->getProfiler()->setEnabled(true);
    				
    				$this->update($arr_update, $where);
    				
    				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    				$db->getProfiler()->setEnabled(false);
    			}
    		}
    			
    		$sql_cmd = "DELETE FROM `ln_client_receipt_money_detail` WHERE `crm_id` = $id";
    		$db->query($sql_cmd);
    	
    		$identify = explode(',',$data['identity']);
    	foreach($identify as $i){
    			$client_detail = $data["mfdid_".$i];
    			$sub_recieve_amount = $data["sub_recive_amount_".$i];
    			$sub_service_charge = $data["sub_service_charge_".$i];
    			$sub_peneline_amount = $data["sub_penelize_".$i];
    			$sub_interest_amount = $data["sub_interest_".$i];
    			$sub_principle= $data["sub_principal_permonth_".$i];
    			$sub_total_payment = $data["sub_payment_".$i];
    			$loan_number = $data["loan_number_".$i];
    			$date_payment = $data["date_payment_".$i];
    			if($client_detail!=""){
    				$arr_money_detail = array(
    						'crm_id'				=>		$id,
    						'loan_number'			=>		$data["loan_number_".$i],
    						'lfd_id'				=>		$data["mfdid_".$i],
    						'client_id'				=>		$data["client_id_".$i],
    						'date_payment'			=>		$data["date_payment_".$i],
    						'capital'				=>		$data["sub_total_priciple_".$i],
    						'remain_capital'		=>		$data["sub_total_priciple_".$i] - $data["sub_principal_permonth_".$i],
    						'principal_permonth'	=>		$data["sub_principal_permonth_".$i],
    						'total_interest'		=>		$data["sub_interest_".$i],
    						'total_payment'			=>		$data["sub_payment_".$i],
    						'total_recieve'			=>		$data["sub_recive_amount_".$i],
    						'currency_id'			=>		$data["currency_type"],
    						'pay_after'				=>		$data['multiplier_'.$i],
    						'penelize_amount'		=>		$data["old_sub_penelize_".$i],
    						'service_charge'		=>		$data["sub_service_charge_".$i],
    						'is_completed'			=>		0,
    						'is_verify'				=>		0,
    						'verify_by'				=>		0,
    						'is_closingentry'		=>		0,
    						'status'				=>		1
    				);
    				 
    				$db->getProfiler()->setEnabled(true);
    				 
    				$db->insert("ln_client_receipt_money_detail", $arr_money_detail);
    				 
    				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    				$db->getProfiler()->setEnabled(false);
    				if($option_pay==1){
	    				if($sub_recieve_amount>=$sub_total_payment){
		    				 
		    				$arr_update_fun_detail = array(
		    					'is_completed'		=> 	1,
		    				);
		    				$this->_name="ln_loanmember_funddetail";
		    				$where = $db->quoteInto("id=?", $data["mfdid_".$i]);
		    				
		    				$db->getProfiler()->setEnabled(true);
		    				
		    				$this->update($arr_update_fun_detail, $where);
		    				
		    				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
		    				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
		    				$db->getProfiler()->setEnabled(false);
	    				}else{
			   					$new_sub_interest_amount = $data["sub_interest_".$i];
			   					$new_sub_penelize = $data["sub_penelize_".$i]+$data["old_penelize_".$i];
			   					$new_sub_service_charge = $data["sub_service_charge_".$i];
			   					$new_sub_principle = $data["sub_principal_permonth_".$i];
				   				if($sub_recieve_amount>0){
				   					$new_amount_after_service = $sub_recieve_amount-$sub_service_charge;
				   					if($new_amount_after_service>=0){
				   						$new_sub_service_charge = 0;
				   						$new_amount_after_penelize = $new_amount_after_service - $sub_peneline_amount;
				   						if($new_amount_after_penelize>=0){
				   							$new_sub_penelize = 0;
				   							$new_amount_after_interest = $new_amount_after_penelize - $sub_interest_amount;
				   							if($new_amount_after_interest>=0){
				   								$new_sub_interest_amount = 0;
				   								$new_sub_principle = $sub_principle - $new_amount_after_interest;
				   							}else{
				   								$new_sub_interest_amount = abs($new_amount_after_interest);
				   							}
				   						}else{
				   							$new_sub_penelize = abs($new_amount_after_penelize);
				   						}
				   					}else{
				   						$new_sub_service_charge = abs($new_amount_after_service);
				   					}
				   				}
				   				
				   				
				   				$arr_update_fun_detail = array(
				   						'is_completed'			=> 	0,
				   						'total_interest_after'	=>  $new_sub_interest_amount,
				   						'total_payment_after'	=>	$new_sub_principle,
				   						'penelize'				=>	$new_sub_penelize,
				   						'principle_after'		=>	$new_sub_principle,
				   						'service_charge'		=>	$new_sub_service_charge,
				   						'payment_option'		=>	1
				   				);
				   				$this->_name="ln_loanmember_funddetail";
				   				$where = $db->quoteInto("id=?", $data["mfdid_".$i]);
				   				$db->getProfiler()->setEnabled(true);
				   				
				   				$this->update($arr_update_fun_detail, $where);
				   				
				   				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
				   				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
				   				$db->getProfiler()->setEnabled(false);
			   				}
    					}else{
    						
    						$sql_loan_fun = "SELECT 
											  lf.`id` ,
											  lf.`total_principal`,
											  lf.`principle_after`,
											  lf.`total_interest_after`,
											  lf.`service_charge`,
											  lf.`penelize`
											FROM
											  `ln_loanmember_funddetail` AS lf,
											  `ln_loan_member` AS lm 
											WHERE lf.`member_id` = lm.`member_id`      
  												AND lm.`loan_number` = '$loan_number' 
    											AND lf.`date_payment` = '$date_payment'";
    						$row_fun = $db->fetchAll($sql_loan_fun);
    						$is_set=0;
    						foreach ($row_fun as $rs_fun){
    							$arr_update_fun_detail = array(
    									'is_completed'			=> 	1,
    									'payment_option'		=>	$data["option_pay"]
    							);
    							$this->_name="ln_loanmember_funddetail";
    							$where = $db->quoteInto("id=?", $rs_fun['id']);
    							$db->getProfiler()->setEnabled(true);
    							 
    							$this->update($arr_update_fun_detail, $where);
    							 
    							Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
    							Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
    							$db->getProfiler()->setEnabled(false);
    						}
    					}
		   				
		   				$sql_payment ="SELECT
						   					l.*
						   				FROM
							   				`ln_loanmember_funddetail` AS l,
							   				`ln_loan_member` AS m
						   				WHERE l.`member_id` = m.`member_id`
							   				AND m.`loan_number` = '$loan_number'
							   				AND l.`is_completed` = 0 ";
		   				$rs_payment = $db->fetchRow($sql_payment);
		   				
		   				$group_id = $data["client_code"];
		   				if(empty($rs_payment)){
			   				$sql ="UPDATE
					   					`ln_loan_group` AS l
					   				SET l.`status` = 2
					   				WHERE l.`g_id`= (SELECT m.`group_id` FROM `ln_loan_member` AS m WHERE m.`loan_number`='$loan_number' LIMIT 1)
					   					AND l.`group_id`= $group_id AND l.`loan_type`=2";
			   				$db->getProfiler()->setEnabled(true);
			   				$db->query($sql);
			   				
			   				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
			   				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
			   				$db->getProfiler()->setEnabled(false);
			   				
			   				$sql_loan_memeber ="UPDATE `ln_loan_member` AS m SET m.`is_completed`=1 WHERE m.`loan_number`= '$loan_number'";
			   				
			   				$db->getProfiler()->setEnabled(true);
			   				$db->query($sql_loan_memeber);
			   				
			   				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery());
			   				Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams());
			   				$db->getProfiler()->setEnabled(false);
		   				}
    			}
    		}
//     		exit();
    		$db->commit();
    	}catch (Exception $e){
    		$db->rollBack();
    		echo $e->getMessage();
    		Application_Model_DbTable_DbUserLog::writeMessageError($e->getMessage());
    	}
    }