UI para administrar tickets

This commit is contained in:
Mauricio Baeza 2017-12-04 22:09:22 -06:00
parent 3a10c146d2
commit 19c0708d15
9 changed files with 134 additions and 13 deletions

View File

@ -110,8 +110,11 @@ def config_main():
except IndexError:
obj = None
punto_de_venta = util.get_bool(Configuracion.get_('chk_usar_punto_de_venta'))
data = {
'empresa': 'Empresa Libre',
'punto_de_venta': punto_de_venta
}
if not obj is None:
titulo = 'Empresa Libre - <b><font color="#610B0B">{}</font></b>'
@ -183,6 +186,7 @@ class Configuracion(BaseModel):
'chk_config_anticipo',
'chk_config_cuenta_predial',
'chk_config_ine',
'chk_usar_punto_de_venta',
)
data = (Configuracion
.select()

View File

@ -53,6 +53,7 @@ var controllers = {
$$('chk_config_anticipo').attachEvent('onItemClick', chk_config_item_click)
$$('chk_config_ine').attachEvent('onItemClick', chk_config_item_click)
$$('chk_config_cuenta_predial').attachEvent('onItemClick', chk_config_item_click)
$$('chk_usar_punto_de_venta').attachEvent('onItemClick', chk_config_item_click)
$$('cmd_subir_bdfl').attachEvent('onItemClick', cmd_subir_bdfl_click)
$$('up_bdfl').attachEvent('onUploadComplete', up_bdfl_upload_complete)

View File

@ -9,7 +9,18 @@ function configuracion_inicial(){
webix.ajax().get('/values/main', function(text, data){
var values = data.json()
$$('lbl_title_main').setValue(values.empresa)
//~ showvar()
if(values.punto_de_venta){
var node = {
id: 'app_tickets',
icon: 'money',
value: 'Punto de venta'}
$$('main_sidebar').add(node, 4)
}
})
}
@ -195,6 +206,11 @@ function multi_change(prevID, nextID){
return
}
if(nextID == 'app_tickets'){
return
}
if(nextID == 'app_invoices'){
active = $$('multi_invoices').getActiveId()
if(active == 'invoices_home'){

View File

@ -33,6 +33,18 @@ var months = [
]
function get_icon(tipo){
icons = {
xml: 'fa-file-code-o',
pdf: 'fa-file-pdf-o',
zip: 'fa-file-zip-o',
email: 'fa-envelope-o',
print: 'print',
}
return "<span class='webix_icon " + icons[tipo] + "'></span>"
}
function focus(name){
webix.UIManager.setFocus(name)
}

View File

@ -504,6 +504,13 @@ var options_admin_otros = [
labelRight: 'Mostrar el complemento INE al facturar'},
{}]},
{maxHeight: 20},
{template: 'Punto de venta', type: 'section'},
{cols: [{maxWidth: 15},
{view: 'checkbox', id: 'chk_usar_punto_de_venta', labelWidth: 0,
labelRight: 'Usar punto de venta'},
{}]},
{maxHeight: 20},
{}]

View File

@ -180,17 +180,6 @@ var toolbar_invoices_filter = [
]
function get_icon(tipo){
icons = {
xml: 'fa-file-code-o',
pdf: 'fa-file-pdf-o',
zip: 'fa-file-zip-o',
email: 'fa-envelope-o',
}
return "<span class='webix_icon " + icons[tipo] + "'></span>"
}
var grid_invoices_cols = [
{id: 'index', header: '#', adjust: 'data', css: 'right',
footer: {content: 'rowCount', colspan: 3, css: 'right'}},

View File

@ -5,12 +5,13 @@ var menu_data = [
{id: 'app_partners', icon: 'users', value: 'Clientes y Proveedores'},
{id: 'app_products', icon: 'server', value: 'Productos y Servicios'},
{id: 'app_bancos', icon: 'university', value: 'Bancos'},
{id: 'app_invoices', icon: 'cart-plus', value: 'Facturas'},
{id: 'app_invoices', icon: 'file-code-o', value: 'Facturas'},
]
var sidebar = {
view: 'sidebar',
id: 'main_sidebar',
data: menu_data,
ready: function(){
this.select('app_home');
@ -36,6 +37,7 @@ var multi_main = {
app_partners,
app_products,
app_bancos,
app_tickets,
app_invoices,
],
}
@ -60,7 +62,7 @@ var ui_main = {
{view: 'toolbar', padding: 3, elements: [
{view: 'button', type: 'icon', icon: 'bars',
width: 37, align: 'left', css: 'app_button', click: function(){
$$('$sidebar1').toggle()
$$('main_sidebar').toggle()
}
},
{view: 'label', id: 'lbl_title_main', label: '<b>Empresa Libre</b>'},

View File

@ -0,0 +1,89 @@
var toolbar_tickets = [
{view: 'button', id: 'cmd_nuevo_ticket', label: 'Nuevo', type: 'iconButton',
autowidth: true, icon: 'plus'},
{},
{view: 'button', id: 'cmd_cancelar_ticket', label: 'Cancelar',
type: 'iconButton', autowidth: true, icon: 'ban'},
]
var toolbar_tickets_filter = [
{view: 'richselect', id: 'filter_year_ticket', label: 'Año',
labelAlign: 'right', labelWidth: 50, width: 150, options: []},
{view: 'richselect', id: 'filter_month_ticket', label: 'Mes',
labelAlign: 'right', labelWidth: 50, width: 200, options: months},
{view: 'daterangepicker', id: 'filter_dates_ticket', label: 'Fechas',
labelAlign: 'right', width: 300},
]
var grid_tickets_cols = [
{id: 'index', header: '#', adjust: 'data', css: 'right',
footer: {content: 'rowCount', colspan: 3, css: 'right'}},
{id: "id", header:"ID", hidden:true},
{id: "serie", header: ["Serie", {content: "selectFilter"}], adjust: "data",
sort:"string"},
{id: 'folio', header: ['Folio', {content: 'numberFilter'}], adjust: 'data',
sort: 'int', css: 'right', footer: {text: 'Tickets', colspan: 3}},
{id: "fecha", header: ["Fecha y Hora"],
adjust: "data", sort: "date"},
{id: "estatus", header: ["Estatus", {content: "selectFilter"}],
adjust: "data", sort:"string"},
{id: 'total', header: ['Total', {content: 'numberFilter'}], width: 150,
sort: 'int', format: webix.i18n.priceFormat, css: 'right'},
{id: "cliente", header: ["Razón Social", {content: "selectFilter"}],
fillspace:true, sort:"string"},
{id: 'pdf', header: 'PDF', adjust: 'data', template: get_icon('pdf')},
{id: 'print', header: 'I', adjust: 'data', template: get_icon('print')},
{id: 'email', header: '', adjust: 'data', template: get_icon('email')}
]
var grid_tickets = {
view: 'datatable',
id: 'grid_tickets',
select: 'row',
adjust: true,
footer: true,
resizeColumn: true,
headermenu: true,
columns: grid_tickets_cols,
on:{
'data->onStoreUpdated':function(){
this.data.each(function(obj, i){
obj.index = i + 1
})
}
},
}
var rows_tickets_home = [
{view: 'toolbar', elements: toolbar_tickets},
{view: 'toolbar', elements: toolbar_tickets_filter},
grid_tickets,
]
var multi_tickets = {
id: 'multi_tickets',
view: 'multiview',
animate: true,
cells:[
{id: 'tickets_home', rows: rows_tickets_home},
{id: 'tickets_new', rows:[]}
],
}
var app_tickets = {
id: 'app_tickets',
rows:[
{view: 'template', id: 'th_ticckets', type: 'header', template: 'Punto de venta'},
multi_tickets
],
}

View File

@ -8,6 +8,7 @@
<script src="/static/js/ui/partners.js" type="text/javascript" ></script>
<script src="/static/js/ui/products.js" type="text/javascript" ></script>
<script src="/static/js/ui/bancos.js" type="text/javascript" ></script>
<script src="/static/js/ui/tickets.js" type="text/javascript" ></script>
<script src="/static/js/ui/invoices.js" type="text/javascript" ></script>
<script src="/static/js/ui/main.js" type="text/javascript" ></script>