.

sábado, 13 de agosto de 2016

Botón de Propina (Servicios) en UNICENTA 4.1

uniCenta al ser instalado por primera vez, trae por defecto una categoría y dos productos.



El producto que se usa para aplicar la "Propina o Cobro por Servicios", será el que tiene cuatro asteriscos. Estos productos tienen un código especial en la base de datos, por lo tanto no te servirá de nada crear una categoría o producto idéntico por tu propia cuenta, ya que el código no será igual.



Tambien tendrás que usar el Tax o Impuesto que trae por defecto uniCenta opos, solo que en la tasa deberás poner el valor de 0%... por defecto tiene el 20%.



Por último deberás activar la opción de Cargo por Servicio ponerle un valor (le puse el 10%), guardar y reiniciar unicenta.

Para realizar pruebas deberás crear por lo menos dos productos adicionales y aplicarles como impuesto el Tax Exempt (Nota: al Tax Exempt le puedes poner el valor que tu quieras en este caso le puse el 15%).


Unicenta aplica la propina en base al total de todos los productos.

Puedes cambiarle el nombre al pruducto de propina, y en lugar que se llame "****", puedes ponerle "Propina" o "Cargo por Servicios".

Si el contenido le ha sido de utilidad, lo invitamos a hacer una donación en el siguiente botón.

La cantidad que sea de su voluntad entregar


En caso que no se visualice el contenido, hacer recargar (refresh) a la página que sea abierta.



(SOLUCIÓN) How To Fix Error WampServer and XampServer

ERRORES:
No se encuentra el punto de entrada del procedimiento ucrtbase.terminate en la biblioteca de vinculos dinámicos api-ms-win-crt-runtime-l1-1-0.dll


0xc000007b Windows


(Solucioó) api-ms-win-crt-runtime-l1-1-0.dll y MSVCP140.dll


Microsoft Visual C++ 2015 Redistributable Setup Failed error 0x80240017


SOLUCIÓN:
1- Instalar el "Microsoft Visual C++ 2010 Redistributable Package" más actual, de acuerdo al tipo de sistema operativo (x86) ó (x64)... (32 bits o 64 bits).
2- Descargar las librerías para 64bits y colocarlas en la carpeta "C:\Windows\System32". Asegurarse que no exista ninguna librería con ese nombre en la carpeta o directorio.
3- Instalar una versión anterior de WampServer (Ejemplo: WampServer 2.5) o XampServer.

https://wamp-server-wamp5.uptodown.com/windows

lunes, 1 de agosto de 2016

Permisos Unicenta 4.1.4

Un panel puede contener un conjunto de objetos (botones, etiquetas, menús desplegables.
 <class name="com.openbravo.pos.panels.JPanelCloseMoneyReprint"/>  

Los menús ocultos al lado izquierdo de la pantalla del sistema, son los siguientes:
<class name="com.openbravo.pos.sales.JPanelTicketSales"/> //Menú de Ventas
<class name="com.openbravo.pos.sales.JPanelTicketEdits"/> //Menú de Editar Ventas, ademas permite editar el precio del producto con y sin impuesto, la cantidad, y el nombre del producto
<class name="com.openbravo.pos.customers.CustomersPayment"/> //Menú de Clientes
<class name="com.openbravo.pos.panels.JPanelPayments"/> //Menú de Movimientos de Caja
<class name="com.openbravo.pos.panels.JPanelCloseMoney"/> //Menú de Cerrar Caja
<class name="com.openbravo.pos.forms.MenuCustomers"/> //Menú de Clientes
<class name="com.openbravo.pos.forms.MenuSuppliers"/> //Menú de Transporte de Productos
<class name="com.openbravo.pos.forms.MenuStockManagement"/> //Menú de Inventario
<class name="com.openbravo.pos.forms.MenuSalesManagement"/> //Menú de Ventas
<class name="com.openbravo.pos.forms.MenuMaintenance"/> //Menú de Mantenimiento
<class name="com.openbravo.pos.forms.MenuEmployees" /> //Menú de Control de Presencia
<class name="com.openbravo.pos.imports.JPanelCSV"/> //Menú de Herramientas
<class name="Menu.ChangePassword"/> //Menú para Cambiar Clave o contraseña
<class name="com.openbravo.pos.config.JPanelConfiguration"/>//Menú de Configuración
<class name="com.openbravo.pos.panels.JPanelPrinter"/>//Menú de Impresora
<class name="com.openbravo.pos.epm.JPanelEmployeePresence" /> //Menú de Entradas/Salidas



    <class name="sales.Override"/> //Permite sobreescribir en una cuenta de otro usuario
    <class name="sales.ViewSharedTicket"/> //Permite ver los productos liberados o compartidos
    <class name="sales.DeleteLines"/>
    <class name="sales.EditLines"/> //Permite borrar un producto o un conjunto de productos
    <class name="sales.EditTicket"/>
    <class name="sales.RefundTicket"/>
    <class name="sales.PrintTicket"/> //Imprimir Ticket de Factura
    <class name="sales.Total"/> //Realizar cobro
    <class name="sales.ChangeTaxOptions"/>
    <class name="payment.bank"/>
    <class name="payment.cash"/>
    <class name="payment.cheque"/>
    <class name="payment.voucher"/>
    <class name="payment.magcard"/>
    <class name="payment.slip"/>  
    <class name="payment.free"/>
    <class name="payment.debt"/>
    <class name="refund.cash"/>
    <class name="refund.cheque"/>
    <class name="refund.voucher"/>
    <class name="refund.magcard"/>



Botones

<!-- Standard button scripts -->
    <class name="button.totaldiscount"/> //descuento de todos los productos
    <class name="button.print"/> //Impresora de precuenta
    <class name="button.opendrawer"/> //Libera cuenta, esto permite que otros usuarios puedan entrar en esa cuenta o orden, e imprime
   
<!-- Additional button scripts -->
    <class name="button.linediscount"/> //descuento por producto
    <class name="button.sendorder"/> //
    <class name="button.refundit"/>
    <class name="button.scharge"/>


La presentación del contenido de los menus y paneles es el siguiente: (arriba el menú y abajo los sub-menús/reportes):
-----------------------------------------------------------------------------------------------------------------------
<class name="com.openbravo.pos.forms.MenuCustomers"/>
    <class name="com.openbravo.pos.customers.CustomersPanel"/>
            <class name="/com/openbravo/reports/customers.bs"/>
            <class name="/com/openbravo/reports/customers_sales.bs"/>
            <class name="/com/openbravo/reports/customers_debtors.bs"/>          
            <class name="/com/openbravo/reports/customers_diary.bs"/>
            <class name="/com/openbravo/reports/customers_cards.bs"/>
            <class name="/com/openbravo/reports/customers_list.bs"/>
            <class name="/com/openbravo/reports/customers_export.bs"/>          

           
<class name="com.openbravo.pos.forms.MenuSuppliers"/>
    <class name="com.openbravo.pos.suppliers.SuppliersPanel"/>
            <class name="/com/openbravo/reports/suppliers.bs"/>
            <class name="/com/openbravo/reports/suppliers_b.bs"/>
            <class name="/com/openbravo/reports/suppliers_creditors.bs"/>
            <class name="/com/openbravo/reports/suppliers_diary.bs"/>
            <class name="/com/openbravo/reports/suppliers_list.bs"/>
            <class name="/com/openbravo/reports/suppliers_sales.bs"/>
            <class name="/com/openbravo/reports/suppliers_export.bs"/>
            <class name="/com/openbravo/reports/suppliers_products.bs"/>    

<class name="com.openbravo.pos.forms.MenuStockManagement"/>
    <class name="com.openbravo.pos.inventory.AttributesPanel"/>
    <class name="com.openbravo.pos.inventory.AttributeValuesPanel"/>
    <class name="com.openbravo.pos.inventory.AttributeSetsPanel"/>
    <class name="com.openbravo.pos.inventory.AttributeUsePanel"/>
    <class name="com.openbravo.pos.inventory.AuxiliarPanel"/>
    <class name="com.openbravo.pos.inventory.CategoriesPanel"/>
    <class name="com.openbravo.pos.inventory.ProductsPanel"/>
    <class name="com.openbravo.pos.inventory.ProductsWarehousePanel"/>
    <class name="com.openbravo.pos.inventory.StockDiaryPanel"/>
    <class name="com.openbravo.pos.inventory.StockManagement"/>
    <class name="com.openbravo.pos.inventory.TaxCategoriesPanel"/>
    <class name="com.openbravo.pos.inventory.TaxCustCategoriesPanel"/>
    <class name="com.openbravo.pos.inventory.TaxPanel"/>
    <class name="com.openbravo.pos.inventory.UomPanel"/>    

            <class name="/com/openbravo/reports/barcode_sheet.bs"/>
//            <class name="/com/openbravo/reports/barcode_sheet_jm.bs"/>          
            <class name="/com/openbravo/reports/barcode_shelfedgelabels.bs"/>
            <class name="/com/openbravo/reports/inventory.bs"/>
            <class name="/com/openbravo/reports/inventoryb.bs"/>
            <class name="/com/openbravo/reports/inventory_diary.bs"/>          
            <class name="/com/openbravo/reports/inventorybroken.bs"/>
            <class name="/com/openbravo/reports/inventorydiff.bs"/>
            <class name="/com/openbravo/reports/inventorydiffdetail.bs"/>
            <class name="/com/openbravo/reports/inventorylistdetail.bs"/>
            <class name="/com/openbravo/reports/productscatalog.bs"/>
            <class name="/com/openbravo/reports/products.bs"/>
            <class name="/com/openbravo/reports/productlabels.bs"/>
            <class name="/com/openbravo/reports/salecatalog.bs"/>

<class name="com.openbravo.pos.forms.MenuSalesManagement"/>
            <class name="/com/openbravo/reports/newreport.bs"/>
            <class name="/com/openbravo/reports/sales_cashflow.bs"/>          
            <class name="/com/openbravo/reports/sales_cashregisterlog.bs"/>
            <class name="/com/openbravo/reports/sales_categorysales.bs"/>          
            <class name="/com/openbravo/reports/sales_closedpos.bs"/>
            <class name="/com/openbravo/reports/sales_closedpos_1.bs"/>
            <class name="/com/openbravo/reports/sales_closedproducts.bs"/>
            <class name="/com/openbravo/reports/sales_closedproducts_1.bs"/>
            <class name="/com/openbravo/reports/sales_extendedcashregisterlog.bs"/>
            <class name="/com/openbravo/reports/sales_extproducts.bs"/>
            <class name="/com/openbravo/reports/sales_paymentreport.bs"/>
            <class name="/com/openbravo/reports/sales_productsalesprofit.bs"/>
            <class name="/com/openbravo/reports/sales_saletaxes.bs"/>
            <class name="/com/openbravo/reports/sales_taxcatsales.bs"/>
            <class name="/com/openbravo/reports/sales_taxes.bs"/>
                       
            <class name="/com/openbravo/reports/sales_chart_chartsales.bs"/>
            <class name="/com/openbravo/reports/sales_chart_piesalescat.bs"/>
            <class name="/com/openbravo/reports/sales_chart_productsales.bs"/>                      
            <class name="/com/openbravo/reports/sales_chart_timeseriesproduct.bs"/>
            <class name="/com/openbravo/reports/sales_chart_top10sales.bs"/>

<class name="com.openbravo.pos.forms.MenuMaintenance"/>
    <class name="com.openbravo.pos.admin.PeoplePanel"/>
    <class name="com.openbravo.pos.admin.RolesPanel"/>
    <class name="com.openbravo.pos.admin.ResourcesPanel"/>
    <class name="com.openbravo.pos.inventory.LocationsPanel"/>
    <class name="com.openbravo.pos.mant.JPanelFloors"/>
    <class name="com.openbravo.pos.mant.JPanelPlaces"/>
    <class name="com.openbravo.pos.voucher.VoucherPanel"/>  
            <class name="/com/openbravo/reports/people.bs"/>
            <class name="/com/openbravo/reports/usersales.bs"/>
            <class name="/com/openbravo/reports/usernosales.bs"/>                

<class name="com.openbravo.pos.imports.JPanelCSV"/>
    <class name="com.openbravo.pos.imports.JPanelCSVImport"/>
    <class name="com.openbravo.pos.imports.JPanelCSVCleardb"/>
            <class name="/com/openbravo/reports/badprice.bs"/>
            <class name="/com/openbravo/reports/invalidcategory.bs"/>
            <class name="/com/openbravo/reports/invaliddata.bs"/>
            <class name="/com/openbravo/reports/missingdata.bs"/>
            <class name="/com/openbravo/reports/newproducts.bs"/>
            <class name="/com/openbravo/reports/updatedprices.bs"/>

<!-- EPM -->
<class name="com.openbravo.pos.forms.MenuEmployees" />
    <class name="com.openbravo.pos.epm.BreaksPanel" />
    <class name="com.openbravo.pos.epm.LeavesPanel" />

<class name="com.openbravo.pos.epm.JPanelEmployeePresence" />
        <class name="/com/openbravo/reports/dailypresencereport.bs" />
        <class name="/com/openbravo/reports/dailyschedulereport.bs" />
        <class name="/com/openbravo/reports/performancereport.bs" />
   
<!--    <class name="com.openbravo.possync.ProductsSyncCreate"/> -->
<!--    <class name="com.openbravo.possync.OrdersSyncCreate"/> -->

    <class name="Menu.ChangePassword"/>

    <class name="com.openbravo.pos.panels.JPanelPrinter"/>

    <class name="com.openbravo.pos.config.JPanelConfiguration"/>

domingo, 31 de julio de 2016

Panel de Tickets de Ventas, Unicenta 4.1.4

<class name="com.openbravo.pos.sales.JPanelTicketSales"/> //Menú de Ventas

Éste panel tiene por defecto los siguientes botones:
Buscar o Crear cliente
Buscar Producto
Editar línea de ticket
Elegir atributo
Revisar Inventario
Reimprimir ultimo ticket (factura o pre-cuenta)
Mover mesas
Imprimir ticket a impresora remota //Impresora a Cocina     <class name="sales.PrintKitchen"/>

jueves, 28 de enero de 2016

Actualizar Select (menú desplegable) a partir de otro Select en PHP

Cargar un select o lista desplegable desde otro select PHP

El siguiente código támbien les puede ser util para mostrar valor segun lista desplegable. Muchos aplausos para el autor, ha sido un gran aporte.


Para cargar o llenar un select con datos de la base de datos a partir de otro select utilizamos AJAX y el evento onchange de JavaScript. El siguiente ejemplo consta de una base de datos compuesta por dos tablas una llamada continente y otro pais. Cuando se selecciona un continente aparece unos cuantos paises perteneciente a ese continente, para ello las tablas tienen que estar obligatoriamente relacionadas.

El ejemplo está dividio en cuatro archivos:
El archivo conexion para conectarnos a la base de datos.
conexion.php
1
2
3
4
5
6
7
8
9
10
11

<?php
function conexion(){
$con = mysql_connect("localhost","root","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("database", $con);
return($con);
}
?>
Este archivo es la vista al usuario. Contiene el primer select donde cargamos en él los continentes almacenados en la base de datos. Tiene como atributo el evento onchange de JavaScript el cual ejecuta la funcion ajax load() cada vez que se hace clic sobre una opcion (continente).
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25


<?php
include 'conexion.php';
?>
<!DOCTYPE html>
<html>
<head>
<script src="ajax.js"></script>
</head>
<body>
<h2>HTML - PHP - AJAX - MySQL</h2>
<?php
$con=conexion();
$res=mysql_query("select * from continente",$con);
?>
<select id="cont" onchange="load(this.value)">
<option value="">Seleccione</option>
<?php
while($fila=mysql_fetch_array($res)){
?>
<option value="<?php echo $fila[codigo]; ?>"><?php echo $fila[nombre]; ?></option>
<?php } ?>
</select>
<div id="myDiv"></div>
</body>
</html>
El archivo ajax.js es un archivo javascript el cual contiene la funcion load(), esta cáptura el código del continente seleccionado y se lo envía al archivo proc.php a través de la variable q y con el método post para que lo procese.
ajax.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function load(str)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","proc.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("q="+str);
}
Finalmente este archivo captura el código del continente para hacer una consulta a la base de datos y mostrar en otro select los paises del continente seleccionado. El resultado se visualiza en el div con id igual a myDiv ubicado en el archivo index.php
proc.php
1
2
3
4
5
6
7
8
9
10
11

<?php
include 'conexion.php';
$q=$_POST['q'];
$con=conexion();
$res=mysql_query("select * from pais where cod_cont=".$q."",$con);
?>
<select>
<?php while($fila=mysql_fetch_array($res)){ ?>
<option><?php echo $fila[nombre]; ?></option>
<?php } ?>
</select>
Les dejo el enlace de donde lo saqué: https://coudlain.wordpress.com/2013/05/20/cargar-un-select-o-lista-desplegable-desde-otro-select-php-ajax-mysql-by-codigojerry-blogspot-com/

Cálculo EC7 de Louis Leithold

  Calculo EC7 de Louis Leithold  Autor:  Louis Leithold Clic aquí para DESCARGAR