Ajuda com logica

(Paulo (ClickInformatica)) #1

Olá pessoal, estou precisando da ajuda de vocês novamente.
E o seguinte:
tenho uma tabela
estoque ( id_estoque, est_produto, est_empresa, estoque )
empresa ( id_empresa, desc_empresa)

Na movimentação ( lancamento de itens)
Preciso que faça o seguinte:
1 - Checar na tabela estoque se o produto já existe .
2 - Caso nao exista inserir o estoque que estou lancando no momento
3 - Caso exista atualizar o estoque

Tentei assim:

sc_lookup(pesqcodigo, “SELECT est_produto FROM estoque WHERE (est_produto = ‘{ite_produto}’)”);
$codigo = {pesqcodigo}[0][0];
echo $codigo;
if($codigo == 0)
{
sc_exec_sql("INSERT INTO estoque
(est_empresa, est_estoque, est_produto)
VALUES
([var_id_empresa], 99, {ite_produto})

“);}
else
{
sc_lookup(estoque, "
SELECT est_estoque FROM estoque WHERE (est_produto = ‘{ite_produto}’)”);
$aux={estoque[0][0]}+{ite_qtde};
sc_exec_sql("UPDATE estoque SET est_estoque = ($aux) WHERE est_produto = {ite_produto} ");
}

Esta funcionando em parte, ou seja, quando é para UPDATE, esta fazendo certo, agora quando é para inserir
ele dá o seguinte: Undefined offset: 0
Depois que confirmo essa mensagem ai ele vai e grava normalmente.

Agradeço a atenção

Paulo
Click Informática
Garanhuns - PE

(system) #2

tbm gostaria de uma solução dessa, meu problema é parecido =(

(Rodrigo Lins) #3

Boa Tarde,

Geralmente quando dá este erro, é devido a um acesso de variável que não existe ou que não tem valor…
Provavelmente deve ser o sc_lookup do pesqcodigo que não está vindo com o valor e você está tentando acessar ele… Teste o código comentando algumas partes e funcionalidades…
certo?
Rodrigo Lins.

(Alexandre Lenger) #4

Bom dia,

Ele mostra erro porque vc está tentando gravar um valor nulo na variável. Tem duas formas diferentes de fazer…

  1. Antes de jogar o valor do sql na variável, ver se a consulta é nula:

if(empty({pesqcodigo}))
{
$codigo = 0;

}else
{
$codigo = {pesqcodigo[0][0]};

}

  1. Outra forma é fazer a tratativa no SQL
    Qual banco de dados vc utiliza?
    No meu caso eu trabalho com Postgres, o meu código ficaria assim

sc_lookup(pesqcodigo, “SELECT COALESCE(est_produto,0) FROM estoque WHERE (est_produto = ‘{ite_produto}’)”);

$codigo = {pesqcodigo[0][0]};

Abraço

Alexandre Lenger

(Eduardo Alves) #5

Vou pegar o bonde andando pelo topico (ajuda com logica). Tenho alguns campos com onchange onde estou tentando formular valores com ele.

os campos do valor_origin foram capturados. até ai blz…queria ver um jeito (e ja bati cabeça pra caramba) de formular essas diversas situações abaixo (if elseif… e ai vai)

a) se o cara escolher no campo % o 100% ele pega o valor origin e passa para o valor_capt (ate ai eu consegui blz)

b) se for escolhido 50%, ele pega o valor origin e passa 1/2 para o valor_capt (até ai blz tb… consegui)

c) se for escolhido 30%, ele pega 30% do campo que estiver 100% ou seja, valor_origin MAIOR…ou seja do 33,00 que seria 9,90

d) se for escolhido 15% ele pega 15% do campo que estiver 100% ou seja, valor_origin MAIOR…ou seja do 33,00 que seria 4,95

Esses dois ultimos casos não consegui “explicar” para o evento onchange saindo do campo %. alguem poderia me dar uma luz ??? agradeço mais uma vez a colaboração e agradeço desde já a força …

(Diogo Toscano) #6

swich({campo_percentual})
{
case ‘100%’:
{valor_capt} = {valor_origin};
break;
case ‘50%’:
{valor_capt} = {valor_origin}/2;
break;
case ‘30%’:
sc_lookup(rs, “SELECT valor_origin FROM TABELA WHERE campo_percentual = ‘100%’”);
{valor_capt} = {rs[0][0]}*30/100;
break;
case ‘15%’:
sc_lookup(rs, “SELECT valor_origin FROM TABELA WHERE campo_percentual = ‘100%’”);
{valor_capt} = {rs[0][0]}*15/100;
break;
}

+ou- isso ai … agora ve a logica e adapta pra voce.

(Eduardo Alves) #7

opa brother… vou testar e ja retorno… vlw mano, tava precisando muito dessa força !!!

(Eduardo Alves) #8

Cara…fechou (TESTADO)… ficou perfeito… obrigado mais uma vez Diogo… um grande abraço…!!!

(Diogo Toscano) #9

Tranquilo … ainda escrevi swich errado … switch hehee

(Eduardo Alves) #10

eu tinha visto…risos… mais deu certissimo…obrigado mesmo cara…um abraço !!!

(Eduardo Alves) #11

Estou com um problema pra resolver que ja tentei varias formas. Teria jeito de eu fazer um select no meu mysql desta forma (reparem que estou com duas tabelas diferentes)

SELECT (SELECT COUNT(*) FROM adm_clientes WHERE Tpcli = ‘P’) AS Entrada,

     (SELECT COUNT(*) FROM adm_clientes WHERE Tpcli <> 'P')  AS Saida, 
     
     (SELECT COUNT(*) FROM adm_clientes) AS total FROM adm_clientes
              
     (SELECT COUNT(*) FROM adm_os) AS ost FROM adm_os;    

tentei tb:

SELECT
COUNT(os.id) AS total,
COUNT(clie.Tpcli) AS certo
FROM
adm_os os,
adm_clientes clie

tb tentei assim:

SELECT COUNT(ClienteId) AS t FROM adm_clientes

UNION

SELECT COUNT(ID) AS g FROM adm_os

UNION

SELECT COUNT(ClienteId) AS i FROM adm_clientes WHERE Tpcli = ‘P’

mais não deu certo, so aparece a primeira coluna

Obs: se eu usar somente a tabela adm_clientes ele fica 100%, mais como trabalhar com 2 tabelas diferentes como no modo apresentado acima ??

um abraço a todos e agradeço antecipadamente a ajuda

(rayfcrols) #12

Alguem pode me ajudar com esta rotina:

[code]<?php
function converte($file1,$file2,$file3=0)
{
if ($file3 != 0){
$result1 = exec(“python.exe DocumentConverter.py $file1 $file2”);
$result1 = exec(“convert.exe -resize 120x120 $file2 $file3”);

{ 
else
{
$result1 = exec("python.exe DocumentConverter.py $file1 $file2");
}

} // Fim da Função de Conversão

?>[/code]

Quando eu chamo a função;

converte($file1,$file4,$file3);

Dá o sequinte erro:
Fatal error: Call to undefined function converte() in minha_apl.php

(Haroldo) #13

onde você define a função converte?

è um metodo php? uma biblioteca? se for biblioteca, está associada a apllicação?
em qual evento esta chamando a função?

(rayfcrols) #14

Grande Harold, seguinte, meu problema foi erro de digitação este que já foi resolvido.

Para melhor entendimento esta é uma biblioteca para conversão de diversos formatos de arquivos utilizando as bibliotecas do OpenOffice. Neste caso utilizei o Python mais tem uma lib java tambem.

Para mais esclarecimentos veja o link abaixo
http://www.artofsolving.com/opensource

(Haroldo) #15

legal, esta funcionando direitinho?