Announcement

Collapse
No announcement yet.

Como puedo hacerlo (GRID)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Como puedo hacerlo (GRID)

    Buenos días tengo una tabla donde muestro los articulos según sea la categoria.
    SELECT
    articulo, descripcion, precio, codfamilia

    FROM
    articulo

    Si el cliente sea ha logado lo llevo a otra tabla:

    SELECT
    codcli, codfamilia, articulo,descuento, precio
    FROM
    tarifas
    WHERE
    (codcli = '[v_codcli]') AND (codart = '{codart}')

    Luego le pongo las condiciones

    Si el campo codfamilia es campo NULL y el articulo es igual al codart me hace un descuento sobre el precio.

    if ({dataset[0][1]} = "NULL" and {dataset[0][2]} = "160000000013"){


    $importedto = {dataset[0][4]}*{dataset[0][3]}/100; // Si el campo codfam está NULL hace el preven- tpcdes
    {precio} = {dataset[0][4]} - $importedto;

    Hasta aquí mas o menos me lo hace el problema que me surge es:

    ¿Quiero hacer que si el codfamilia de la tabla articulo es igual al codfamilia de la tabla tarifas a todos los artículos de la tabla articulo me haga un descuento, respetando aquellos que ha encontrado el articulo en la tabla tarifas?
    idcliente codfamilia articulo descuento precio
    1 NULL 160000000013 25.00 55.000 (este sería de la primera condicion)
    1 16000 NULL 15.00 NULL (aquí tendria que aplicar el 15% de descuento a toda la familia "16000" de la tabla de articulos excluyendo el articulo "160000000013"

    Muchas gracias, espero haberme explicado.

  • #2
    Yo creo que te estás liando queriendo hacerlo todo en una consulta. Lo normal es que hagas la consulta y recuperes descuento del artícujlo para ese cliente, por otro lado, consultas en las familias si ese producto tiene algún descuento, etc...

    Todos esos valores los vas guardando en variables locales y finalmente con todos los datos haces tu fórmula.
    /Giuseppe

    Professional Scriptcase Services
    Some Customers opinions

    Comment


    • #3
      Muchas gracias. Lo intentaré

      Comment


      • #4
        He seguido tu sugerencia y casi lo tengo, lo he realizado de la siguiente forma

        $sql_art = "SELECT codcli, codfam, codart, tpcdes, preven FROM tarifas
        WHERE
        (codcli = '[v_codcli]') AND codfam IS NULL AND (codart = '{codart}' )"; // Primer caso consulto si el articulo lo tengo en la tabla tarifas
        sc_lookup(rs_art, $sql_art);

        $sql_codfam = "SELECT codcli, codfam, codart, tpcdes, preven FROM tarifas
        WHERE
        (codcli = '[v_codcli]') AND (codfam = '[v_categoria]') AND codart IS NULL"; // Consulto si la categoria la tengo en la tabla tarifas
        sc_lookup(rs_fam, $sql_codfam);


        if (false == {rs_art} ){ // Error accediendo a la BD

        }

        elseif ({rs_art[0][2]} = {codart} ){ // consulto datos y si hay coincidencia cambio el valor

        {prevena} = "e16003" ;
        }




        }

        El problema me surge cuando quiero poner la otra condicion no soy capaz de que la lea y cambie si es necesario

        elseif ({rs_fam[0][1]} = [v_categoria] ){ // consulto datos y si la categoria es la misma cambio el valor

        {prevena} = "cambiovalor" ;
        }
        No soy capaz el resultado no lo hace correctamente, y no encuentro la solución.
        Alguien puede echarme una mano.
        Gracias

        Comment

        Working...
        X