Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

michel kafury

[CAKEPHP]Salvar e atualizar duas tabelas

Recommended Posts

amigos, tenho duas tabelas a seguir:

 

tabela contasrecebers:

id
categcrecebers_id
date
dt_venc
valor
anotacoes
tipo_doc
nr_doc
conta_destino
pagaragora
valor_pgto
dt_pgto
tabela caixa:
id
anotacoes
conta_caixa
categoria
valor
valor_pago
dtlancamento
dtvencimento
dtpagamento
tipo_doc
nr_documento
situacao
preciso atualizar os dados pelo id na tabela contasrecebers e dar insert na tabela caixas, só que no meu controler ContasreceberController o insert não tá funcionando.
Veja a função pagar!!
ContasreceberController.php
<?php
class ContasreceberController extends AppController
{
	var $name = "Contasrecebers"; // Para mander compatibilidade com o PHP 4
	var $helpers = array('Html', 'Form');
	var $scaffold;

	public function index() {
 
		$this->set('contasrecebers', $this->Contasreceber->find('all',array('conditions'=>array('Contasreceber.pagaragora'=>NULL), 'order'=>array('Contasreceber.id DESC'))));

	}


	public function ver($id = null) {
 
		if(!$id){
			throw new NotFoundException(__('Conta inválida!'));
		}
		$conta = $this->Contasreceber->findById($id);
		if(!$conta){
			throw new NotFoundException(__('Conta inválida!'));
		}
		$this->set('conta', $conta);

	}


	public function criar(){

	$categcrecebers = $this->Contasreceber->Categcreceber->find('list');
	$categcrecebers = $this->Contasreceber->Categcreceber->find('list', array('fields' => array('Categcreceber.id', 'Categcreceber.nome'),));
	$this->set(compact('categcrecebers'));

		//Checar se a requisição é do tipo POST. Isto evita o usuário de inserir dados nulos.
		if ($this->request->is('post')){
//			$this->Contasreceber->create();
//			$date1 = explode("/",$this->data['Contasreceber']['dt_venc']); 
//			$this->data['Contasreceber']['dt_venc'] = gmmktime(23, 59, 0, $date1[1], $date1[0], $date1[2]);

			//Salvando novo usuário
			if ($this->Contasreceber->save($this->request->data)){

				//Enviando uma mensagem ao usuário
				$this->Session->setFlash('<font color="#FF0000">DADOS SALVOS CON SUCESSO!</font>');

				//Redirecionando para a lista de usuários
				$this->redirect(array('action' => 'index'));

			}else{

				//Se houver falha
				$this->Session->setFlash('<font color=#FF0000>Falha na gravação!</font>');

			}
		}
	}


	public function pagar($id) {
 
				    if (!$id) {
				        throw new NotFoundException(__('Conta inválida!'));
				    }
				
				    $post = $this->Contasreceber->findById($id);

				    if (!$post) {
				        throw new NotFoundException(__('Conta inválida!'));
				    }
				
				    if ($this->request->is('post') || $this->request->is('put')) {
				        $this->Contasreceber->id = $id;
//				        $this->Caixas->id = $id;
					//print_r($this->data);
				        if (!empty($this->data)) {
					    $this->Contasreceber->save($this->request->data);
//					    $this->Caixas->create();
					    $this->Caixas->save($this->request->data);
				            $this->Session->setFlash(__('Conta atualizada!'));
				            //return $this->redirect(array('action' => 'index'));
					    //print_r($this->data);
				        }
				        $this->Session->setFlash(__('FALHA!'));
				    }
				
				    if (!$this->request->data) {
				        $this->request->data = $post;
				    }


	}








	public function atualizar() {
 
			//Pegando o código do usuário que vai ser atualizado e apontando na variável $id
			$id = $this->request->params['pass'][0];
 
			//Apontando o codigoUsuario do usuário para atualização
			$this->Contasreceber->id = $id;
 
			//Checando se o usuário existe
			if( $this->Contasreceber->exists() ){
 
				//Checando se a requisição feita é do tipo post ou put
				if( $this->request->is( 'post' ) || $this->request->is( 'put' ) ){
 
					//Salvando o usuário
					if( $this->Contasreceber->save( $this->request->data ) ){
 
						//Enviando uma mensagem para o usuário
						$this->Session->setFlash('<font color="#FF0000">DADOS ATUALIZADOS COM SUCESSO!</font>');
 
						//Redirecionando para a tela inicial
						$this->redirect(array('action' => 'index'));
 
						}else{
 
						//Caso ocorra um erro na atualização do usuário
						$this->Session->setFlash('<font color="#FF0000">Falha na atualização!</font>');
 
					}
 
				}else{
 
					//Se não foi uma requisição do tipo post ou put, coloca-se os dados do usuário no formulário da view automaticamente
					$this->request->data = $this->Contasreceber->read();
 
				}
 
			}else{
 
				//Se o usuário não existe enviar uma mensagem que o usuário é inexistente
				$this->Session->setFlash('<font color="#FF0000">A Conta que você está desejando atualizar não existe!</font>');
 
				//E redirecionar para a listagem de usuários
				$this->redirect(array('action' => 'index'));
			}   
	}


	public function excluir() {
 
			//Pegando o código do usuário que vai ser atualizado e apontando na variável $id
			$id = $this->request->params['pass'][0];
 
			//Checando se a requisição é do tipo GET. Neste caso precisamos que a requisição seja do tipo post, pois usamos o método postLink na view que deleta o usuário 
			if( $this->request->is('get') ){
 
				//Enviando uma mensagem para o usuário
				$this->Session->setFlash('<font color="#FF0000">Não é permitido excluir contas através do método GET!</font>');
 
			}else{
 
				//Checando se o id do usuário é válido
				if(!$id ) {
 
					//Enviando uma mensagem para o usuário
					$this->Session->setFlash('<font color="#FF0000">Código da conta inválido!</font>');
 
				}else{
 
					//Excluindo usuário
					if( $this->Contasreceber->delete( $id ) ){
 
						//Enviando uma mensagem para o usuário
						$this->Session->setFlash('<font color="#FF0000">Conta excluída com sucesso!</font>');
 
					}else{  
 
						//Se não for possível excluir o usuário, enviar mensagem
						$this->Session->setFlash('<font color="#FF0000">Falha durante exclusão!</font>');
 
					}
				}
			}
 
			//Redirecionando para a listagem de usuários
			$this->redirect(array('action' => 'index'));
	}//Fechando a classe UsuariosController





}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui resolver! ficou assim a função pagar:

 

	public function pagar($id) {
 
				    if (!$id) {
				        throw new NotFoundException(__('Conta inválida!'));
				    }
				
				    $post = $this->Contasreceber->findById($id);

				    if (!$post) {
				        throw new NotFoundException(__('Conta inválida!'));
				    }
				
				    if ($this->request->is('post') || $this->request->is('put')) {
				    $this->Contasreceber->id = $id;

					//print_r($this->data);
				        if (!empty($this->data)) {

					    $conta = $this->Contasreceber->save($this->request->data);

					    if(!empty($conta)){

					    	$caixa = $this->Contasreceber->Caixas->save(array('anotacoes'=>$post['Contasreceber']['anotacoes'], 'conta_caixa'=>'Caixa interno', 'categoria'=>'0', 'valor'=>$post['Contasreceber']['valor'], 'valor_pago'=>$conta['Contasreceber']['valor_pgto'], 'dtlancamento'=>$conta['Contasreceber']['dtlancamento'], 'dtvencimento'=>$post['Contasreceber']['dt_venc'], 'dtpagamento'=>$conta['Contasreceber']['dtpagamento'], 'tipo_doc'=>$conta['Contasreceber']['tipo_doc'],  'nr_documento'=>$conta['Contasreceber']['nr_documento'], 'situacao'=>'Pago', 'user_id'=>$this->Session->read('Auth.User.id')));
				            	$this->Session->setFlash(__('<center><font color="#FF0000"><h2>Conta executada com sucesso!</h2></font></center>'));
				            	return $this->redirect(array('action' => 'index'));

					    }


				        }
				        $this->Session->setFlash(__('<center><font color="#FF0000"><h2>FALHA!</h2></font></center>'));
				    }
				
				    if (!$this->request->data) {
				        $this->request->data = $post;
				    }


	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.