Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Erro ao usar foreach para ler dados de uma tabela e salvar public function onSave($param = null) { try { TTransaction::open(self::$database); // open a transaction $messageAction = null; $this->form->validate(); // validate form data $object = new Rascunho(); // create an empty object $data = $this->form->getData(); // get form data as array ...
AL
Erro ao usar foreach para ler dados de uma tabela e salvar  
public function onSave($param = null)
{
try
{
TTransaction::open(self::$database); // open a transaction

$messageAction = null;

$this->form->validate(); // validate form data

$object = new Rascunho(); // create an empty object

$data = $this->form->getData(); // get form data as array
$object->fromArray( (array) $data); // load the object with data

$object->empresa_user_id = TSession::getValue('empresa_user_id');

$object->store(); // save the object

if($object->todos == 1)
{
$assinaturas = Assinaturas::where('status_id', '=', 1)
->where('empresa_user_id', '=', TSession::getValue('empresa_user_id'))
->load();
$qtde = 0;
$valor_total = 0;
if(isset($assinaturas))
{
foreach ($assinaturas as $item)
{
$qtde++;
$faixas = ProdutoFaixasVariavel::allInTransaction('default') ;

$valor_total = (double) $item->valor_fixo_cobrado;

foreach ($faixas as $faixa)
{
if($assinatura->faturamento_cliente > 0 )
{
if($data->faturamento_cliente >= $faixa->valor_de && $data->faturamento_cliente <= $faixa->valor_ate)
{
$percentual = (double) ($faixa->percentual / 100);
$valor_variavel_cobrado = (double) ($item->faturamento_cliente * $percentual) ;
$valor_total += (double) $item->valor_fixo_cobrado + $valor_variavel_cobrado;
}
}
}

$mes = (string) $object->data_fechamento;
$mes = substr($mes, 5, 2);
$ano = TDateTime::convertToMask($object->data_fechamento, 'dd/mm/yyyy', 'yyyy');

$faturas = Fatura::where('cliente_id', '=', $item->cliente_id)
->where('mes', '=', $mes)
->where('mes', '=', $ano)
->where('empresa_user_id', '=', TSession::getValue('empresa_user_id'))
->first();

if(!isset($faturas)){
$faturas = new Fatura();
}
$faturas->fatura_status_id = 1;
$faturas->chave = TProcedures::Serial('aleatorio', 5, 4, '-');
$faturas->cliente_id = $item->cliente_id;
$faturas->dt_fatura = $object->data_fechamento;
$faturas->valor = $item->valor_fixo_cobrado;
$faturas->total = $valor_total;
$faturas->mes = $mes;
$faturas->ano = $ano;
$faturas->ativo = 1;
$faturas->dt_cobranca = $object->data_vencimento;
$faturas->ultima_atualizacao = date("Y-m-d");
$faturas->empresa_user_id = TSession::getValue('empresa_user_id');

$faturas->store();
}
}
}else{
$assinaturas = Assinaturas::where('cliente_id', '=', $object->cliente_id)
->where('empresa_user_id', '=', TSession::getValue('empresa_user_id'))
->first();

$qtde = 0;
$valor_total = 0;
if(isset($assinaturas))
{
foreach ($assinaturas as $item)
{
$qtde++;
$faixas = ProdutoFaixasVariavel::allInTransaction('default') ;
echo '
';
echo '<pre>'; print_r($item); echo '</pre>';
echo '
';
echo '
';
echo '<pre>'; print_r($assinaturas); echo '</pre>';
echo '
';

$valor_total = (double) $item->valor_fixo_cobrado;
foreach ($faixas as $faixa){
if($assinatura->faturamento_cliente > 0 ){
if($data->faturamento_cliente >= $faixa->valor_de && $data->faturamento_cliente <= $faixa->valor_ate){
$percentual = (double) ($faixa->percentual / 100);
$valor_variavel_cobrado = (double) ($item->faturamento_cliente * $percentual) ;
$valor_total += (double) $item->valor_fixo_cobrado + $valor_variavel_cobrado;
}
}
}

$mes = (string) $object->data_fechamento;
$mes = substr($mes, 5, 2);
$ano = TDateTime::convertToMask($object->data_fechamento, 'dd/mm/yyyy', 'yyyy');

$faturas = Fatura::where('cliente_id', '=', $item->cliente_id)
->where('mes', '=', $mes)
->where('mes', '=', $ano)
->where('empresa_user_id', '=', TSession::getValue('empresa_user_id'))
->first();

if(!isset($faturas)){
$faturas = new Fatura();
}
$faturas->fatura_status_id = 1;
$faturas->chave = TProcedures::Serial('aleatorio', 5, 4, '-');
$faturas->cliente_id = $item->cliente_id;
$faturas->dt_fatura = $object->data_fechamento;
$faturas->valor = $item->valor_fixo_cobrado;
$faturas->total = $valor_total;
$faturas->mes = $mes;
$faturas->ano = $ano;
$faturas->ativo = 1;
$faturas->dt_cobranca = $object->data_vencimento;
$faturas->ultima_atualizacao = date("Y-m-d");
$faturas->empresa_user_id = TSession::getValue('empresa_user_id');

$faturas->store();
}
}
}

$loadPageParam = [];

if(!empty($param['target_container']))
{
$loadPageParam['target_container'] = $param['target_container'];
}

// get the generated {PRIMARY_KEY}
$data->id = $object->id;

$this->form->setData($data); // fill form data
TTransaction::close(); // close the transaction

TToast::show('success', "Registro salvo", 'topRight', 'far:check-circle');
//TApplication::loadPage('Faturas', 'onShow', $loadPageParam);

//TScript::create("Template.closeRightPanel();");

}
catch (Exception $e) // in case of exception
{
//</catchAutoCode>

new TMessage('error', $e->getMessage()); // shows the exception error message
$this->form->setData( $this->form->getData() ); // keep form data
TTransaction::rollback(); // undo all pending operations
}
}


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (1)


B

Ari, qual mensagem de erro aparece para vc ??