CAKEPHP Salvar em duas tabelas

30/08/2013

0

PHP

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





}

?>
Michel Pael

Michel Pael

Responder

Posts

07/09/2013

Marcio Araujo

alguem poderia tirar essa duvida.
Responder

11/09/2013

Karlos Schett

alguem ??
Responder

11/09/2013

Michel Pael

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;
				    }


	}
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar