CAKEPHP Salvar em duas tabelas
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
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
}
?>
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
Curtidas 0
Respostas
Marcio Araujo
30/08/2013
alguem poderia tirar essa duvida.
GOSTEI 0
Karlos Schett
30/08/2013
alguem ??
GOSTEI 0
Michel Pael
30/08/2013
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; } }
GOSTEI 0