Si tienes alguna duda, por favor escribe un comentario. Espero que te sirva este documento, compártelo para que a alguien más le sirva. Si te sirvió regalanos un comentario en https://g.page/r/CcN3KOZbsQUREAg/review

COMANDOS BASICOS

Insert:

sc_exec_sql("INSERT INTO compras (id,fecha,hora) VALUES (null,CURDATE(),CURTIME())");

Select:

sc_lookup(pre,"SELECT precio FROM productos_servicios WHERE id = {productoservicio}");

Update:

sc_exec_sql("UPDATE productos_servicios SET precioimpuestos=$precioimpuestos WHERE id={productoservicio}");

MOSTRAR MENSAJE DE ERROR

$error_test        = {field1} == 'some_value';        // Error test

$error_message = 'Field1 must be different from some_value.'; // Error message

// Redirection

if ($error_test)

{

    sc_error_message($error_message);

}

CAMBIAR POSITIVO A NEGATIVO UNA CANTIDAD[a]

if({tipo_movimiento}==="INGRESO"){

    if({cantidad}<0){

            {cantidad}=-1*{cantidad}; //alternativa gmp_neg();

    }

}

elseif({tipo_movimiento}==="EGRESO"){

    if({cantidad}>0){

            {cantidad}=-1*{cantidad};

    }

}

ACTUALIZAR precio_impuestos DE LA TABLA 06articulos AL INSERTAR O ACTUALIZAR EL CAMPO valor DE LA TABLA 08articulo_impuesto[b]

//obtenemos el precio de la tabla 06articulos

sc_lookup(rs,"select SUM(equivalencia) FROM 08articulo_impuesto

WHERE id_articulo = {id_articulo}");

if (isset({rs[0][0]}))         // Row found

{

        $precio = {rs[0][0]};

}

            else         // No row found

{

                    $precio = 0;

}

//calculamos la equivalencia del impuesto con base al precio

{equivalencia}=($precio*{valor})/100;

//buscamos si ya hay otros impuestos al mismo articulo

sc_lookup(dataset,"select SUM(equivalencia) FROM 08articulo_impuesto

WHERE id_articulo = {id_articulo}");

if(!empty({dataset[0][0]}))

{

$suma_equivalencia = {dataset[0][0]};

}

else {

$suma_equivalencia=0;

}

//calculamos el nuevo precio_impuestos

$precio_impuestos=$precio+{equivalencia}+$suma_equivalencia;

// preparamos la consulta

$update_table  = '06articulos';          // Table name

$update_where  = "id = {id_articulo}"; // Where clause

$update_fields = array(   // Field list, add as many as needed

         "precio_impuestos = $precio_impuestos"

 );

// actualizamos el registro

$update_sql = 'UPDATE ' . $update_table

        . ' SET '   . implode(', ', $update_fields)

        . ' WHERE ' . $update_where;

sc_exec_sql($update_sql);

FORMULARIO movimientos_efectivo->PROGRAMACION->METODOS PHP:[c]

  • cambiar_cantidad:

if({tipo_movimiento}==="INGRESO"){

    if({cantidad}<0){

            {cantidad}=-1*{cantidad};

    }

}

elseif({tipo_movimiento}==="EGRESO"){

    if({cantidad}>0){

            {cantidad}=-1*{cantidad};

    }

}

FORMULARIO movimientos_efectivo->FORMULARIO->EVENTOS AJAX:[d]

  • cantidad_onBlur:

cambiar_cantidad();

  • tipo_movimiento_onChange:

cambiar_cantidad();

CAMBIAR COLOR DE FONDO DEL CAMPO EXISTENCI EN EL GRID DE ARTICULOS[e]

EVENTOS-onRecord

if({existencia}<=0){

    sc_field_style({existencia},"#CC3333");

}

else{

    sc_field_style({existencia},"#009966");

}

o tambien:

sc_field_style({my_field}, '', '', $color, '', '');

CAMBIAR COLOR DE FUENTE DEL CAMPO EXISTENCIA EN EL GRID DE ARTICULOS[f]

if({existencia}<=0){

    sc_field_color({existencia},"#CC3333");

}

else{

    sc_field_color({existencia},"#009966");

}

OBTENER EL NOMBRE DE UN PRODUCTO[g]

sc_lookup(ds,"SELECT nombre FROM productos WHERE id={par_producto_id}");

if(!empty({ds})){

{producto}={ds[0][0]};

}

SUMAR UN CAMPO DE LA DB[h]

sc_commit_trans();

sc_lookup(ds,"SELECT sum(cantidad) as cantidad FROM inventario WHERE producto_id={prodcuto_id} and almacen_id={almacen_id}");

if(!empty({ds})){

        {stock_almacen}={ds[0][0]};

}

else{

        {stock_almacen}="0";

}

$prod_id={producto_id};

$sql="UPDATE productos SET stock=(SELECT SUM(cantidad) FROM inventario WHERE producto_id=$prod_id) WHERE id=$prod_id";

sc_exec_sql($sql);

INSERTAR FECHA Y HORA ACTUAL EN LA BD, Y LLAMAR EL REGISTRO INSERTADO EN UN FORMULARIO[i]

sc_commit_trans();

sc_exec_sql("INSERT INTO compras (id,fecha,hora) VALUES (null,CURDATE(),CURTIME())");

sc_lookup(ds,"SELECT id FROM compras ORDER BY id DESC LIMIT 1");

sc_redir(form_compras, id={ds[0][0]});

OBTENER EL ULTIMO ID[j]

sc_lookup(ds, "SELECT LAS_INSERT_ID()");

$las_id={ds[0][0]};

sc_lookup(ds,"SELECT numero FROM facturas_ventas ORDER BY numero DESC LIMIT 1");

$ultima={ds[0][0]};

ACTUALIZAR VARIOS REGISTROS DE UNA DB[k]

sc_commit_trans();

$saldo={saldo};

$cadena='';

$id={id};

$sql="SELECT id,cantidad, saldo FROM sei_10movimientos_flujo_efectivo WHERE id>'".$id."'";

sc_lookup(Dataset, $sql);

for($i=0;$i<count({Dataset});$i++){

    $cantP={Dataset[$i][1]};

    $saldoP={Dataset[$i][2]};

    if($i>0){

            $saldo=$nuevoS;

    }

    $nuevoS=$saldo+$cantP;

    $cadena=$cadena."UPDATE sei_10movimientos_flujo_efectivo SET saldo='".$nuevoS."' WHERE id='".{Dataset[$i][0]}."'; ";

    sc_exec_sql($cadena);

}

Actualizar formato precio en master[l]

sc_format_num($precioimpuestos, ',', '.', 2, 'S', 1, '$');

$master_field='precioimpuestos';

sc_master_value($master_field, $precioimpuestos);

Seleccionar registros de la tabla TIPOS_IMPUESTO que no aparecen en la tabla IMPUESTO_PRODUCTO_SERVICIO

SELECT id, nombre FROM tipos_impuesto

WHERE tipos_impuesto.id NOT IN

(SELECT impuesto FROM impuesto_producto_servicio

WHERE productoservicio=[idproductoservicio])

ORDER BY nombre

select id, nombre from tipos_impuesto where NOT EXISTS (select * from impuesto_producto_servicio where impuesto=tipos_impuesto.id and impuesto_producto_servicio.productoservicio=[idproductoservicio])

ORDER BY tipos_impuesto.nombre

ACTUALIZAR MASTER[m]

sc_commit_trans();

sc_lookup(dataset, "SELECT sum(importe) FROM detallecompras WHERE compraid={compraid}");

if(!empty({dataset[0][0]})){

        $total={dataset[0][0]};

}

else{

        $total=0.0;

}86

sc_exec_sql("UPDATE compras SET total=$total WHERE id={compraid}");

$master_field = 'total';

$master_value = $total;

sc_master_value($master_field, $master_value);

RECARGAR FORMULARIO[n]

sc_redir(form_sei_13ventas, id={id});

INICIAR EN NUEVO UN ELEMENTO DEL MENU (onExecute)[o]

if({sc_menu_item}=="item_14"){

    sc_apl_conf("form_sei_11compras","start","new");

}

BUSCAR POR FECHA EN UN GRID[p]

  • Sentencia SQL de 1 fecha

WHERE

        fecha=[fecha1]

ORDER BY

        id

  • Sentencia SQL de rango de fechas

WHERE

        fecha BETWEEN [fecha1] AND [fecha2]

ORDER BY

        id

CONFIGURACION APLICACION CONTROL PARA BUSCAR POR FECHAS EN UNA GRID

OBTENER SOLO LOS 5 ULTIMOS[q]

FROM sei_10movimientos_flujo_efectivo

ORDER BY id

DESC LIMIT         5

INSERTAR EN UN EVENTO AJAX[r]

vamos al menu de la derecha del formulario y damos click en el boton de JAVASCRIPT, seleccionamos el objeto a usar y el evento a ejecutar, luego dentro de la ventana que se muestra metemos el siguiente codigo:

-para insertar

nm_atualiza ('incluir');; return false;

findPos(this); nm_atualiza_line('incluir', 2); return false;

-para actualizar

nm_atualiza('alterar');; return false;

-hacer un if-else if en un evento javascript[s]

cli_js = sc_getfield('id');

if(cli_js=="")

{

alert("insertar");

nm_atualiza ('incluir');; return false;

}

else if(cli_js!="")

{

alert("actualizar");

nm_atualiza('alterar');; return false;

}

SUMAR TODAS LAS ENTRADAS Y SALIDAS DE INSUMOS[t]

SELECT

insumos.concepto AS insumo,

SUM(ifnull(entradasinsumo.cantidad,0)) AS entradas,

SUM(ifnull(salidasinsumo.cantidad,0)) AS salidas

FROM

insumos

LEFT JOIN

entradasinsumo ON insumos.id=entradasinsumo.insumo

LEFT JOIN

salidasinsumo on insumos.id=salidasinsumo.insumo

GROUP BY insumos.concepto

HAVING SUM(ifnull(entradasinsumo.cantidad,0))<>0 OR SUM(ifnull(salidasinsumo.cantidad,0))<>0

SUMAR DOS CAMPOS EN UNA MISMA TABLA

SELECT sum(importe), sum(importeimpuestos) FROM ventasdetalle

VISTAS Y CONSULTAS EN VISTAS[u]

paso 1 crear la vista general

create view totales as

select fecha, insumo, "compra" as tipo, cantidad

from entradasinsumo

union all

select fecha, insumo, "venta" as tipo, cantidad

from salidasinsumo

paso 2-MOVIMIENTOS INSUMO POR FECHA

select fecha, insumo, sum(if(tipo="compras",cantidad,0)) as entradas, sum(if(tipo="ventas",cantidad,0)) as salidas

from movimientos_fecha

where fecha between "2016/06/01" and "2016/10/16"

group by fecha, insumo

paso 3-MOVIMIENTOS POR INSUMO

select insumo, sum(if(tipo='compras',cantidad,0)) as entradas, sum(if(tipo='ventas',cantidad,0)) as salidas

from movimientos_fecha

group by insumo

PARA DESCARGAR UN PDF REPORT CON UN NOMBRE DETERMINADO:[v]

$pdf->Output("fact ".{id}.' '.{cliente_id}.'.pdf', 'I');

PARA LA IMPRESION DE TICKET:[w] gracias a +Jose gerardo Renteria Valdespino por compartir la impresión del ticket

1-Instalar el completento JS Print Setup para FIREFOX: https://addons.mozilla.org/es/firefox/addon/js-print-setup/

y establecer la impresora de tickets como predeterminada.

2-crear una aplicación blank de nombre: imprimir_ticket y poner el siguiente código:

/*MAESTRO*/

$sql_ticket="SELECT

   ventas.id,

   ventas.fecha,

   ventas.hora,

   pacientes.nombre,

   medicos.nombre,

   vendedores.nombre,

   ventas.importe,

   ventas.descuento,

   ventas.descuento2,

   ventas.subtotal,

   ventas.impuestos,

   ventas.total,

   ventas.efectivo,

   ventas.cheque,

   ventas.transferencia,

   ventas.tarjeta,

   ventas.otros,

   ventas.cambio,

   ventas.observaciones

FROM

   ventas LEFT OUTER JOIN pacientes ON ventas.paciente = pacientes.id

   INNER JOIN medicos ON ventas.medico = medicos.id

   INNER JOIN vendedores ON ventas.vendedor=vendedores.id

WHERE

   (ventas.id = '".[folio]."')";

sc_lookup(dts_ticket, $sql_ticket);

/*DETALLE

<td colspan="2"; style="color:#456789;font-size:80%;">

*/

$sql_detalle="SELECT

   detalleventas.cantidad,

   productos_servicios.concepto,

   detalleventas.precioimpuestos,

   detalleventas.importeimpuestos

FROM

   detalleventas INNER JOIN productos_servicios ON detalleventas.servicioid = productos_servicios.id

WHERE

   (detalleventas.ventaid = '".[folio]."')";

sc_lookup(dts_detalle, $sql_detalle);

$fila_detalle='';

$pesos1='';

$pesos2='';

for($i=0; $i<count({dts_detalle}); $i++){

if({dts_detalle[$i][2]} > 0){

$pesos1='$ '.number_format({dts_detalle[$i][2]},2);

$pesos2='$ '.number_format({dts_detalle[$i][3]},2);

}else{

$pesos1='0.00';

$pesos2='0.00';

}

$concepto=substr({dts_detalle[$i][1]}, 0, 30);

/*$fila_detalle=$fila_detalle.'<tr style="font-size:60%";><td >'.{dts_detalle[$i][0]}.'</td><td colspan="2">'.{dts_detalle[$i][1]}.'</td><td>'.$pesos1.'</td><td>'.$pesos2.'</td></tr>';*/

$fila_detalle=$fila_detalle.'<tr style="font-size:80%";><td colspan="1">'.{dts_detalle[$i][0]}.'-NA-</td><td colspan="3">'.$concepto.'</td><td colspan="1">-'.$pesos1.'-</td><td colspan="1">'.$pesos2.'</td></tr>';

}

/*IMPUESTOS*/

$sql_impuestos="SELECT

   tipos_impuesto.nombre,

   impuestosventa.valor,

   impuestosventa.cantidad

FROM

   impuestosventa INNER JOIN tipos_impuesto ON impuestosventa.impuestoid = tipos_impuesto.id

WHERE

   (impuestosventa.ventaid = '".[folio]."')";

sc_lookup(dts_impuestos, $sql_impuestos);

$fila_impuestos='';

$pesos='';

for($i=0; $i<count({dts_impuestos}); $i++){

if({dts_impuestos[$i][1]} > 0){

$pesos='$ '.number_format({dts_impuestos[$i][1]},2);

}else{

$pesos='NA';

}

$fila_impuestos=$fila_impuestos.{dts_impuestos[$i][0]}.'-'.{dts_impuestos[$i][1]}.'%: '.$pesos.' pesos</br>';

}

/********************NUMEROS A LETRAS*******************/[x]

function num2letras($num, $fem = false, $dec = true) {

   $matuni[2]  = "dos";

   $matuni[3]  = "tres";

   $matuni[4]  = "cuatro";

   $matuni[5]  = "cinco";

   $matuni[6]  = "seis";

   $matuni[7]  = "siete";

   $matuni[8]  = "ocho";

   $matuni[9]  = "nueve";

   $matuni[10] = "diez";

   $matuni[11] = "once";

   $matuni[12] = "doce";

   $matuni[13] = "trece";

   $matuni[14] = "catorce";

   $matuni[15] = "quince";

   $matuni[16] = "dieciseis";

   $matuni[17] = "diecisiete";

   $matuni[18] = "dieciocho";

   $matuni[19] = "diecinueve";

   $matuni[20] = "veinte";

   $matunisub[2] = "dos";

   $matunisub[3] = "tres";

   $matunisub[4] = "cuatro";

   $matunisub[5] = "quin";

   $matunisub[6] = "seis";

   $matunisub[7] = "sete";

   $matunisub[8] = "ocho";

   $matunisub[9] = "nove";

   $matdec[2] = "veint";

   $matdec[3] = "treinta";

   $matdec[4] = "cuarenta";

   $matdec[5] = "cincuenta";

   $matdec[6] = "sesenta";

   $matdec[7] = "setenta";

   $matdec[8] = "ochenta";

   $matdec[9] = "noventa";

   $matsub[3]  = 'mill';

   $matsub[5]  = 'bill';

   $matsub[7]  = 'mill';

   $matsub[9]  = 'trill';

   $matsub[11] = 'mill';

   $matsub[13] = 'bill';

   $matsub[15] = 'mill';

   $matmil[4]  = 'millones';

   $matmil[6]  = 'billones';

   $matmil[7]  = 'de billones';

   $matmil[8]  = 'millones de billones';

   $matmil[10] = 'trillones';

   $matmil[11] = 'de trillones';

   $matmil[12] = 'millones de trillones';

   $matmil[13] = 'de trillones';

   $matmil[14] = 'billones de trillones';

   $matmil[15] = 'de billones de trillones';

   $matmil[16] = 'millones de billones de trillones';

   

   //Zi hack

   $float=explode('.',$num);

   $num=$float[0];

   $num = trim((string)@$num);

   if ($num[0] == '-') {

          $neg = 'menos ';

          $num = substr($num, 1);

   }else

          $neg = '';

   while ($num[0] == '0') $num = substr($num, 1);

   if ($num[0] < '1' or $num[0] > 9) $num = '0' . $num;

   $zeros = true;

   $punt = false;

   $ent = '';

   $fra = '';

   for ($c = 0; $c < strlen($num); $c++) {

          $n = $num[$c];

          if (! (strpos(".,'''", $n) === false)) {

             if ($punt) break;

             else{

                $punt = true;

                continue;

             }

          }elseif (! (strpos('0123456789', $n) === false)) {

             if ($punt) {

                if ($n != '0') $zeros = false;

                $fra .= $n;

             }else

                $ent .= $n;

          }else

             break;

   }

   $ent = '         ' . $ent;

   if ($dec and $fra and ! $zeros) {

          $fin = ' coma';

          for ($n = 0; $n < strlen($fra); $n++) {

             if (($s = $fra[$n]) == '0')

                $fin .= ' cero';

             elseif ($s == '1')

                $fin .= $fem ? ' una' : ' un';

             else

                $fin .= ' ' . $matuni[$s];

          }

   }else

          $fin = '';

   if ((int)$ent === 0) return 'Cero ' . $fin;

   $tex = '';

   $sub = 0;

   $mils = 0;

   $neutro = false;

   while ( ($num = substr($ent, -3)) != '   ') {

          $ent = substr($ent, 0, -3);

          if (++$sub < 3 and $fem) {

             $matuni[1] = 'una';

             $subcent = 'as';

          }else{

             $matuni[1] = $neutro ? 'un' : 'uno';

             $subcent = 'os';

          }

          $t = '';

          $n2 = substr($num, 1);

          if ($n2 == '00') {

          }elseif ($n2 < 21)

             $t = ' ' . $matuni[(int)$n2];

          elseif ($n2 < 30) {

             $n3 = $num[2];

             if ($n3 != 0) $t = 'i' . $matuni[$n3];

             $n2 = $num[1];

             $t = ' ' . $matdec[$n2] . $t;

          }else{

             $n3 = $num[2];

             if ($n3 != 0) $t = ' y ' . $matuni[$n3];

             $n2 = $num[1];

             $t = ' ' . $matdec[$n2] . $t;

          }

          $n = $num[0];

          if ($n == 1) {

             $t = ' ciento' . $t;

          }elseif ($n == 5){

             $t = ' ' . $matunisub[$n] . 'ient' . $subcent . $t;

          }elseif ($n != 0){

             $t = ' ' . $matunisub[$n] . 'cient' . $subcent . $t;

          }

          if ($sub == 1) {

          }elseif (! isset($matsub[$sub])) {

             if ($num == 1) {

                $t = ' mil';

             }elseif ($num > 1){

                $t .= ' mil';

             }

          }elseif ($num == 1) {

             $t .= ' ' . $matsub[$sub] . 'on';

          }elseif ($num > 1){

             $t .= ' ' . $matsub[$sub] . 'ones';

          }   

          if ($num == '000') $mils ++;

          elseif ($mils != 0) {

             if (isset($matmil[$sub])) $t .= ' ' . $matmil[$sub];

             $mils = 0;

          }

          $neutro = true;

          $tex = $t . $tex;

   }

   $tex = $neg . substr($tex, 1) . $fin;

   //Zi hack --> return ucfirst($tex);

   $end_num=ucfirst($tex).' pesos '.$float[1].'/100 M.N.';

   return $end_num;

}

/*****************FIN NUMEROS A LETRAS*********************/

$totalletras=num2letras({dts_ticket[0][11]});

?>

<!DOCTYPE html>

<html>

        <head>

            <!--<meta http-equiv="Refresh" content="2;">-->

   <style>

body {

font-size: 45%;[y]

}

</style>

</head>

<body>

<table align="left" width="270">[z]

    <tr>

            <td align="center" colspan="6"><img src="">LOGO</td>

    </tr>

    <tr>

            <td colspan="6" align="center"><b>TITULO</td>

    </tr>

    <tr>

            <td colspan="6" align="center">MAS INFO</td>

    </tr>

    <tr>

            <td colspan="6" align="center">......................................................................</td>

    </tr>

    <tr>

            <td colspan="6" align="center"><b>NOTA DE VENTA</b></td>

    </tr>

    <tr>

            <td colspan="6" align="center">EXPEDIDO EN:</td>

    </tr>

    <tr>

            <td colspan="2">Folio:&nbsp&nbsp&nbsp<?php echo {dts_ticket[0][0]}; ?></td>

            <td colspan="2">Fecha:&nbsp&nbsp&nbsp<?php echo {dts_ticket[0][1]} ?></td>

            <td colspan="2">Hora:&nbsp&nbsp&nbsp<?php echo {dts_ticket[0][2]} ?></td>

    </tr>

    <tr>

            <td colspan="6">Paciente: <?php echo {dts_ticket[0][3]} ?></td>

    </tr>

    <tr><td colspan="6" align="center">----------------------------------------------------------------------</td></tr>

    <tr style="font-size:80%">

            <td colspan="1"; style="font-size:80%"; align="center">CANT-UNIDAD</td>

            <td colspan="3"; style="font-size:80%"; align="center">CONCEPTO</td>

            <td colspan="1"; style="font-size:80%"; align="center">P/U</td>

            <td colspan="1"; style="font-size:80%"; align="center">IMPORTE</td>

    </tr>

    <?php echo $fila_detalle; ?>

    <tr><td colspan="6" align="center">------------------------------------------------------------</td></tr>

    <tr>

            <td colspan="3">Importe: $<?php echo number_format({dts_ticket[0][6]},2) ?></br>Desc %:'.<?php echo number_format({dts_ticket[0][7]},2) ?></br>Desc $: <?php echo number_format({dts_ticket[0][8]},2) ?></br>Subtotal: $ <?php echo number_format({dts_ticket[0][9]},2) ?></br>Impuestos: $ <?php echo number_format({dts_ticket[0][10]},2) ?> </br> <b>TOTAL: $ <?php echo number_format({dts_ticket[0][11]},2) ?></b></td>

            <td colspan="3"><?php echo $fila_impuestos; ?></td>

    </tr>

    <tr>

            <td colspan="6"><?php echo $totalletras; ?></td>

    </tr>

    <tr>

            <td colspan="6" align="center">................................................................................................................</td>

    </tr>

    <tr>

            <td colspan="6" align="center">PAGO EN UNA SOLA EXHIBICION</br>La reproduccion apocrifa de este comprobante constituye</br>un delito en los terminos de las disposiciones fiscales.</td>

    </tr>

    <tr>

            <td colspan="6" align="center">COMPROBANTE SIMPLIFICADO</br>QUE SE SUMA A LA FACTURA GLOBAL</td>

    </tr>

    <tr>

            <td colspan="6" align="center"><h2>   ---Gracias por su compra---</h2></br></td>

    </tr>

   

</table>

<script language=javascript>

   // set portrait orientation

   jsPrintSetup.setOption('orientation', jsPrintSetup.kPortraitOrientation);

   // set top margins in millimeters

   jsPrintSetup.setOption('marginTop', -12);

   jsPrintSetup.setOption('marginBottom', 10);

   jsPrintSetup.setOption('marginLeft', -6);

   jsPrintSetup.setOption('marginRight', 0);[aa]

   // set page header

   jsPrintSetup.setOption('headerStrLeft', '');

   //jsPrintSetup.setOption('headerStrCenter', '');

   //jsPrintSetup.setOption('headerStrRight', '&PT');

   // set empty page footer

   jsPrintSetup.setOption('footerStrLeft', '');

   jsPrintSetup.setOption('footerStrCenter', '');

   jsPrintSetup.setOption('footerStrRight', '');

   // clears user preferences always silent print value

   // to enable using 'printSilent' option

   jsPrintSetup.clearSilentPrint();

   // Suppress print dialog (for this context only)

   jsPrintSetup.setOption('printSilent', 1);

    //jsPrintSetup.setOption('numCopies', 2);

   // Do Print

   // When print is submitted it is executed asynchronous and

   // script flow continues after print independently of completetion of print process!

   jsPrintSetup.print();

    window.close();

   // next commands

</script>

</body>

</html>

<?php

//se configura el formulario para que empiece en nuevo y se redirecciona después de imprimir

sc_apl_conf("form_ventas","start","new");

sc_redir(form_ventas.php);

En el formulario, crear el enlace y pasar el parametro [folio] a la aplicación blank, el enlace debe abrirse en otra ventana

Se recomienda usar bordes en la tabla al momento de estar diseñando los espacios.

SI APARECE USUARIO NO AUTORIZADO

checar en la aplicacion login y quitar la seguridad solo de esa aplicación

Truco para implementar glyphicons en menú de ScriptCase[ab]

1.- Llamar la hoja de stilos de glyphicons, yo lo hago en el evento onApplicationInit con la macro sc_url_library

2.- En la sección de Navegación del menú de Configuración, se pone en no la opción "Usar iconos predeterminados en la pestaña"

3.- En porpiedades del Item del Menú en el campo colocamos una etiqueta HTML para llamar el icono deseado. <span class="glyphicons glyphicons-map">Estados</span>

4.- En propiedades del Item del Menú en el campo Indicio colocamos el nombre del menú sin la etiqueta span, ya que de no hacerlo al desplegar la aplicación el icono se repite.

Opcional se puede crear una hoja de estilos para darle formato al icono como tamaño y color.

Importar archivos de excel desde una aplicación de scriptcase.[ac]

Para algunos que tenga este inconveniente, lo he resulto cargado las librerías oleread.php y Spreadsheet_Excel_Reader.php y con un formulario subo el archivo y con el siguiente código hago la lectura:

// ExcelFile($filename, $encoding);

$data = new Spreadsheet_Excel_Reader();

// Set output Encoding.

$data->setOutputEncoding('CP1251');

$archi = {archivo};

$data->read($archi);

error_reporting(E_ALL ^ E_NOTICE);

echo "<table>";

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {

echo "<tr>";

for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {

echo "<td>". $data->sheets[0]['cells'][$i][$j] ."</td>";

}

echo "</tr>";

}

echo "</table>";

echo "<br/><br/>";

Lo demás ya es carpintería para grabar los registros en una tabla.

MOSTRAR EL DIA DE LA SEMANA EN UNA APLICACION FORM EN UN CAMPO TIPO TEXTO[ad]

Creamos una aplicación blank, y ahí ponemos este código:

$dias =array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");

$dia=$dias[date("w")];

sc_redir(form_clientes, dia=$dia);

Luego en nuestro formulario, en nuestro campo “DIA”,  ponemos en “VALOR INICIAL (VALOR DEFINIDO)” lo siguiente: [dia]

donde:

form_clientes = a nuestro formulario donde pasaremos la variable dia.

dia=variable que recibirá como parámetro el form_clientes.

IMPORTAR DATOS DE UN ARCHIVO CSV

http://www.scriptcase.net/forum/forum/applications/forms/3223-upload-csv-and-import-to-database

Recuperar proyectos de una instalación de SC a otra (sin haber exportado los mismo previamente):

Como bien me aconsejaron acá seguí los siguientes pasos copiando los archivos y pegandolos en la misma ruta pero en mi instalación nueva deSC

1) en la carpeta antigua \scriptcase\devel\conf\scriptcase\ busque el archivo nm_scriptcase.db que es la base SQLite donde se guardan la info de los proyectos

2) En la carpeta \scriptcase\devel\conf\grp copie las carpetas con los nombres de los proyectos

3) Lo mismo en la carpeta \scriptcase\file

4) De la carpeta scriptcase/app copie todo también

5) Una vez hecho esto genere en mi servidor las bases correspondientes y exporte un backup de las mismas (de esto si tenia backup jaja)

6) Por último edite las conexiones a la db de lo proyectos, correspondientes a la nueva ip de instalación.

Medio engorroso pero en fin si a alguien le pasa lo mismo que a mi y nunca exportó los proyectos esta es una solución, media engorrosa pero funcional.

Ah! y muy importante dar los permisos de escritura correspondientes a todo lo que copiamos en la nueva instalación de SC y asegurarse que el propietario:grupo tambien sean los mismos que los de la instalacion nueva.

Bueno espero les sirva.

Saludos a todos y gracias por la ayuda de siempre.

Matías Alarcón.

[a]CAMBIAR POSITIVO A NEGATIVO UNA CANTIDAD

[b]ACTUALIZAR precio_impuestos DE LA TABLA 06articulos AL INSERTAR O ACTUALIZAR EL CAMPO valor DE LA TABLA 08articulo_impuesto

[c]FORMULARIO movimientos_efectivo->PROGRAMACION->METODOS PHP:

[d]FORMULARIO movimientos_efectivo->FORMULARIO->EVENTOS AJAX:

[e]cambiar color fondo de celda grid

[f]CAMBIAR COLOR DE FUENTE DEL CAMPO EXISTENCIA EN EL GRID DE ARTICULOS

[g]OBTENER EL NOMBRE DE UN PRODUCTO

[h]SUMAR UN CAMPO DE LA DB

[i]INSERTAR FECHA Y HORA ACTUAL EN LA BD, Y LLAMAR EL REGISTRO INSERTADO EN UN FORMULARIO

[j]OBTENER EL ULTMIO ID

[k]ACTUALIZAR VARIOS REGISTROS DE UNA DB

[l]Aplicar formato moneda en campo master

[m]ACTUALIZAR MASTER

[n]RECARGAR FORMULARIO

[o]INICIAR EN NUEVO UN ELEMENTO DEL MENU (onExecute)

[p]BUSCAR POR FECHA EN UN GRID

[q]OBTENER LOS ULTIMOS 5

[r]AUTOGUARDAR EN UN EVENTO

[s]hacer un if-else if en un evento javascript

[t]SUMAR TODAS LAS ENTRADAS Y SALIDAS DE INSUMOS

[u]VISTAS Y CONSULTAS EN VISTAS

[v]PARA DESCARGAR UN PDF REPORT CON UN NOMBRE DETERMINADO

[w]PARA LA IMPRESION DE TICKET

[x]numeros a letras

[y]tamaño del texto

[z]ancho de la tabla

[aa]margenes del ticket, aqui depende de la impresora

[ab]glyphicons en menu

[ac]Importar archivos de excel desde una aplicación de scriptcase.

[ad]MOSTRAR EL DIA DE LA SEMANA EN UNA APLICACION FORM EN UN CAMPO TIPO TEXTO