MR
Adiciona somente 100 linhas
Boa tarde, Amigos...
Estou iniciando no mundo do Adianti FrameWork e me deparei com um problema. Tive que criar uma solução parecida com o Sale form II (Master/detail) que adiciona linhas contendo produto, preço, total etc... (a diferença é que estou inserindo sumários). Porém, meu código insere no banco apenas 100 linhas.
Tirei um print do da variável $param['id_summary'] no OnSave e o mesmo contou até 100 produtos de 110 que tentei inserir. Alterando direto no banco de dados é possível colocar mais de 100 valores
Se alguém já pegou esse GAP e puder dar uma ajuda? Desde já agradeço a ajuda dos amigos?
Márcio Reis
Ah... e segue o código onSave pra analise.
<?
public static function onSave($param)
{
try
{
TTransaction::open('cli-grupoarion-portal');
$id = (int) $param['id'];
$master = new TicketSummary;
$master->fromArray($param);
$master->store();
if(!empty($param['ticket_summary_id']) AND is_array($param['ticket_summary_id']))
{
$O_Lista = TicketSummaryDetails::readSummaryDetails($param['id']);
$A_ListaIdCadastrado = array();
$A_ListaIdEncontrado = array();
if ($O_Lista)
{
foreach($O_Lista as $Lista)
{
$A_ListaIdCadastrado[] = $Lista->id;
}
}
foreach( $param['ticket_summary_id'] as $row=>$summary_id)
{
if (!empty($summary_id))
{
if(in_array ($param['idsummarydetails'][$row], $A_ListaIdCadastrado))
{
$detail = TicketSummaryDetails::find($param['idsummarydetails'][$row]);
$detail->name = $param['name'][$row];
$detail->topic = $param['topic'][$row];
$detail->process = $param['process'][$row];
$detail->servicetype_id = $param['servicetype_id'][$row];
$detail->priority_id = $param['priority_id'][$row];
$detail->assigned_group_id = $param['assigned_group_id'][$row];
$detail->impact_id = $param['impact_id'][$row];
$detail->classification = $param['classification'][$row];
$detail->id = $param['idsummarydetails'][$row];
$detail->store();
$A_ListaIdEncontrado[] = $param['idsummarydetails'][$row];
}
else
{
$detail = new TicketSummaryDetails;
$detail->ticket_summary_id = $master->id;
$detail->name = $param['name'][$row];
$detail->topic = $param['topic'][$row];
$detail->process = $param['process'][$row];
$detail->servicetype_id = $param['servicetype_id'][$row];
$detail->priority_id = $param['priority_id'][$row];
$detail->assigned_group_id = $param['assigned_group_id'][$row];
$detail->impact_id = $param['impact_id'][$row];
$detail->classification = $param['classification'][$row];
$detail->id = $param['idsummarydetails'][$row];
$detail->store();
}
}
else
{
$detail = new TicketSummaryDetails;
$detail->ticket_summary_id = $master->id;
$detail->name = $param['name'][$row];
$detail->topic = $param['topic'][$row];
$detail->process = $param['process'][$row];
$detail->servicetype_id = $param['servicetype_id'][$row];
$detail->priority_id = $param['priority_id'][$row];
$detail->assigned_group_id = $param['assigned_group_id'][$row];
$detail->impact_id = $param['impact_id'][$row];
$detail->classification = $param['classification'][$row];
$detail->id = $param['idsummarydetails'][$row];
$detail->store();
}
}
$A_Compara = array_diff($A_ListaIdCadastrado, $A_ListaIdEncontrado);
foreach ($A_Compara as $Compara)
{
$detail = TicketSummaryDetails::find($Compara);
$detail->delete();
}
}
$data = new stdClass;
$data->id = $master->id;
TForm::sendData('form_TicketSummary', $data);
TTransaction::close();
new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
TTransaction::rollback();
}
}
?>
Estou iniciando no mundo do Adianti FrameWork e me deparei com um problema. Tive que criar uma solução parecida com o Sale form II (Master/detail) que adiciona linhas contendo produto, preço, total etc... (a diferença é que estou inserindo sumários). Porém, meu código insere no banco apenas 100 linhas.
Tirei um print do da variável $param['id_summary'] no OnSave e o mesmo contou até 100 produtos de 110 que tentei inserir. Alterando direto no banco de dados é possível colocar mais de 100 valores
Se alguém já pegou esse GAP e puder dar uma ajuda? Desde já agradeço a ajuda dos amigos?
Márcio Reis
Ah... e segue o código onSave pra analise.
<?
public static function onSave($param)
{
try
{
TTransaction::open('cli-grupoarion-portal');
$id = (int) $param['id'];
$master = new TicketSummary;
$master->fromArray($param);
$master->store();
if(!empty($param['ticket_summary_id']) AND is_array($param['ticket_summary_id']))
{
$O_Lista = TicketSummaryDetails::readSummaryDetails($param['id']);
$A_ListaIdCadastrado = array();
$A_ListaIdEncontrado = array();
if ($O_Lista)
{
foreach($O_Lista as $Lista)
{
$A_ListaIdCadastrado[] = $Lista->id;
}
}
foreach( $param['ticket_summary_id'] as $row=>$summary_id)
{
if (!empty($summary_id))
{
if(in_array ($param['idsummarydetails'][$row], $A_ListaIdCadastrado))
{
$detail = TicketSummaryDetails::find($param['idsummarydetails'][$row]);
$detail->name = $param['name'][$row];
$detail->topic = $param['topic'][$row];
$detail->process = $param['process'][$row];
$detail->servicetype_id = $param['servicetype_id'][$row];
$detail->priority_id = $param['priority_id'][$row];
$detail->assigned_group_id = $param['assigned_group_id'][$row];
$detail->impact_id = $param['impact_id'][$row];
$detail->classification = $param['classification'][$row];
$detail->id = $param['idsummarydetails'][$row];
$detail->store();
$A_ListaIdEncontrado[] = $param['idsummarydetails'][$row];
}
else
{
$detail = new TicketSummaryDetails;
$detail->ticket_summary_id = $master->id;
$detail->name = $param['name'][$row];
$detail->topic = $param['topic'][$row];
$detail->process = $param['process'][$row];
$detail->servicetype_id = $param['servicetype_id'][$row];
$detail->priority_id = $param['priority_id'][$row];
$detail->assigned_group_id = $param['assigned_group_id'][$row];
$detail->impact_id = $param['impact_id'][$row];
$detail->classification = $param['classification'][$row];
$detail->id = $param['idsummarydetails'][$row];
$detail->store();
}
}
else
{
$detail = new TicketSummaryDetails;
$detail->ticket_summary_id = $master->id;
$detail->name = $param['name'][$row];
$detail->topic = $param['topic'][$row];
$detail->process = $param['process'][$row];
$detail->servicetype_id = $param['servicetype_id'][$row];
$detail->priority_id = $param['priority_id'][$row];
$detail->assigned_group_id = $param['assigned_group_id'][$row];
$detail->impact_id = $param['impact_id'][$row];
$detail->classification = $param['classification'][$row];
$detail->id = $param['idsummarydetails'][$row];
$detail->store();
}
}
$A_Compara = array_diff($A_ListaIdCadastrado, $A_ListaIdEncontrado);
foreach ($A_Compara as $Compara)
{
$detail = TicketSummaryDetails::find($Compara);
$detail->delete();
}
}
$data = new stdClass;
$data->id = $master->id;
TForm::sendData('form_TicketSummary', $data);
TTransaction::close();
new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
TTransaction::rollback();
}
}
?>
Pode ser configuração do PHP. Chegou a verificar os logs?
Tente aumentar o parâmetro max_input_vars no php.ini
show, Natanael.
Funcionou após fazer a alteração no php.ini
muito obrigado pelo suporte