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]
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]
cambiar_cantidad();
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]
WHERE
fecha=[fecha1]
ORDER BY
id
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:   <?php echo {dts_ticket[0][0]}; ?></td>
<td colspan="2">Fecha:   <?php echo {dts_ticket[0][1]} ?></td>
<td colspan="2">Hora:   <?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.
[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