Eu tenho uma tabela com 27 campos, onde 12 desses campos já são pré-carregados, os campos pré-carregados são read only ou seja não vão ser modificados e quinze desses campos vão ser coletados e atualizados. EX:
campos READ ONLY: ID = 1
OS = 123456
SETOR = 123
QUADRA = 456
LOTE = 7890
Campos Atualizados: endereço: xxxxxxxxxxxxxxxx
numero: 123456
foto da faixada: path_imagem
controle: 00 ----> aqui é o problema
status: 1 (0 = Carregado, 1 = Gerado, 2 = Descarregado).
Qual a Ideia:
Os Tabletes vão para campo coletar as informações das fachadas das casas, só que eles já vão com uma ordem de serviço pré carregadas, esses lotes já vão na sequencia que os coletores vão usar, ou seja a cada atualização do registro eu seto o status do registro para 1 e dou Refresh no form, como o status do registro foi atualizado para 1 ele não mostra mais esse registro e passa pro próximo registro para ser feito a coleta, Ok tudo funcionando perfeitamente ele faz isso corretamente, acontece que surgiu uma nova funcionalidade (como sempre tem uma nova funcionalidade, só pra complicar...rsrsrs).
Acontece que os coletores descobriram que há Lotes que foram Sub-Divididos, ou seja o lote antes era de 20x30 ou seja cada lote uma casa... Mais ai o Cara vendeu metade desse lote pra outro cara e esse construiu uma casa, o que aconteceu? o lote que antes era 20x30 agora são dois lotes de 10x30.
Bem agora eu preciso criar um novo registro, com os dados do lote que está sendo atualizado, abrir o form como novo registro mais pre carregados com as informações do lote que foi atualizado anteriormente ou seja:
campos READ ONLY: ID = 1
OS = 123456
SETOR = 123
QUADRA = 456
LOTE = 7890
Campos Atualizados: endereço: xxxxxxxxxxxxxxxx
numero: 123456
foto da faixada: path_imagem
controle: 01 ----> informando que houve uma sub divisão do lote.
status: 1 (0 = Carregado, 1 = Gerado, 2 = Descarregado).
Salvar esse registro e passar para o próximo registro (continuar a sequencia da ordem de serviço).
Alguém tem alguma luz?????
Gente Obrigado pela Luz!!! rsrsrsrs…
Postando aqui caso alguém tenha o mesmo problema.
SOLUÇÃO:
- Eu Criei outro formulário com os mesmos campos do primeiro formulario.
- No primeiro formulário no evento onvalidade eu coloquei o seguinte código:
if (sc_btn_update)
{
// SQL statement parameters
$update_table = 'tab_fotofachada'; // Table name
$update_where = "ID = '{ID}'"; // Where clause
$update_fields = array( // Field list, add as many as needed
"ENDERECO = '{ENDERECO}'",
"NUMERO = '{NUMERO}'",
"ST_REGISTRO = '1'", ===> seto o registro pra 1, para que no refresh ele não me apareça mais no registro
"FOTO_FACHADA = '{FOTO_FACHADA}'",
"SITUACAO = '{SITUACAO}'",
"FORMATO = '{FORMATO}'",
"LIMITE = '{LIMITE}'",
"TOPOGRAFIA = '{TOPOGRAFIA}'",
"SUPERFICIE = '{SUPERFICIE}'",
"UTILIZACAO = '{UTILIZACAO}'",
"PATRIMONIO = '{PATRIMONIO}'",
"UTILIZA_EDIFICACAO = '{UTILIZA_EDIFICACAO}'",
"TIPO_CONSTRUCAO = '{TIPO_CONSTRUCAO}'",
"PADRAO = '{PADRAO}'",
"CONSERVACAO = '{CONSERVACAO}'",
"ESTRUTURA = '{ESTRUTURA}'",
"ACAB_EXTERNO = '{ACAB_EXTERNO}'",
"COBERTURA = '{COBERTURA}'",
"CARACTERISTICA = '{CARACTERISTICA}'",
"PAVIMENTOS = '{PAVIMENTOS}'",
"DATA_REGISTRO = '{DATA_REGISTRO}'",
"HORA_REGISTRO = '{HORA_REGISTRO}'",
"USERNAME = '{USERNAME}'",);
// Update record
$update_sql = 'UPDATE ' . $update_table
. ' SET ' . implode(', ', $update_fields)
. ' WHERE ' . $update_where;
sc_exec_sql($update_sql);
//sc_ajax_message("Registro Salvo Com Sucesso!", "Update");
if ({DividirLote} == '1') { ==> testo se o coletador pressionou que há uma sub-divisão no lote, se sim movo os registro para os parametros.
[DISTRITO] = {DISTRITO};
[SETOR] = {SETOR};
[QUADRA] = {QUADRA};
[LOTE] = {LOTE};
[ENDERECO] = {ENDERECO};
[NUMERO] = {NUMERO};
[NUM_OS] = {NUM_OS};}
else{ ==> se não eu redireciono pro mesmo formulário para mostrar somente os registro que estão na sequencia, lembra eu setei o Registro (ST_REGISTRO = 1), Como o SQL só pega se ele estiver '0' esse não me registro não me aparece mais no form.
sc_redir("form_tabFachada.php","_self");}
}
- Ainda no primeiro formulario no evento onAfterUpdate eu coquei o seguinte código:
if ({DividirLote} == 1) testo se o Coletador pressionou uma Sub-Divisão se sim, movo os campos que eu vou aproveitar no segundo Formulário, ou seja esses dados são os mesmos que vão está no novo registro
{
[DISTRITO] = {DISTRITO};
[SETOR] = {SETOR};
[QUADRA] = {QUADRA};
[LOTE] = {LOTE};
[ENDERECO] = {ENDERECO};
[NUMERO] = {NUMERO};
[NUM_OS] = {NUM_OS};
//sc_ajax_message("Novo Registro", "Insert");
sc_apl_conf("form_tabFachadaNovo.php", "start", "new"); ==> digo que o segundo formulário vai carregar como um Novo Registro.
sc_redir("form_tabFachadaNovo.php","_self"); e Redireciono para o novo formulário.
}
- No Segundo Formulário no evento onLoad, eu carrego as variáveis para os campos que não vão ser alterado, lembrando que todas elas vão está setada como readonly:
{DISTRITO} = [DISTRITO];
{SETOR} = [SETOR];
{QUADRA} = [QUADRA];
{LOTE} = [LOTE];
{ENDERECO} = [ENDERECO];
{NUMERO} = [NUMERO];
{NUM_OS} = [NUM_OS];
{INSC_IMOBILIARIA} = [DISTRITO].[SETOR].[QUADRA].[LOTE];
{UNIDADE} = ‘0001’;
{USERNAME} = [usr_login];
$data = date(“Ymd”);
{DATA_REGISTRO} = $data;
$hora = date(“H:i:s”);
{HORA_REGISTRO} = $hora;
{ST_REGISTRO} = 1;
- Ainda no Segundo Formulário, no evento onValidadeSucess eu coloquei o seguinte código:
sc_ajax_message("Registro Salvo com Sucesso!", "Redirecionando"); == informo ao coletador que o registro foi inserido com sucesso.
sc_redir("form_tabFotoFachada.php","_self"); é Redireciono para o primeiro Formulário.
Bom é Isso, se alguém tiver uma solução mais prática, é sou me enviar por esse post, se não fica ai a Dica.
Valeu Pessoal…