Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Preciso alterar a função saveComposite na classe TRecord Olá amigos, preciso da ajuda de vcs para alterar a função saveComposite na classe TRecord para verificar se um valor a ser gravado e do tipo "float" para substituir a "," virgula da casa decimal para "." ponto para gravação no banco de dados uma vez que estou usando a propriedade setNumericMask do TEntry. Tentei fazer desta forma mas não consegui. Se alguem puder me ajudar agradeceria ...
CA
Preciso alterar a função saveComposite na classe TRecord  
Olá amigos, preciso da ajuda de vcs para alterar a função saveComposite na classe TRecord para verificar se um valor a ser gravado e do tipo "float" para substituir a "," virgula da casa decimal para "." ponto para gravação no banco de dados uma vez que estou usando a propriedade setNumericMask do TEntry.

Tentei fazer desta forma mas não consegui.

Se alguem puder me ajudar agradeceria muito.

public function saveComposite($composite_class, $foreign_key, $id, $objects)
{
$this->deleteComposite($composite_class, $foreign_key, $id);

if ($objects)
{
foreach ($objects as $object)
{
$class_vars = get_class_vars(get_class($object));
foreach ($class_vars as $name => $value)
{
if (settype($object->$value, "float"))
{
$objtratado = str_replace('.', '', $object->$value);
$objtratado = str_replace('.', '', $objtratado);
$objtratado = str_replace('.', '', $objtratado);
$objtratado = str_replace(',', '.', $objtratado);
$objtratado = number_format($objtratado, 3, ".", "");
$object->$name = $objtratado;
}
}
$object->$foreign_key = $id;
$object->store();
}
}
}

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (1)


RM

Boa tarde.

Sou novato por aqui, mas, pelo que entendi, ao usar "setNumericMask(2, ',','.', TRUE)" ele faz isso automaticamente. Ou seja, mostra na tela algo como 1.150,00 mas ao gravar na base, o ultimo parametro da função (TRUE) instrui o Adianti a remover a virgula e salvar no padrão Americano (1150.00).

Espero ter ajudado.

Att,

Rubens