diff --git a/source/app/models/main.py b/source/app/models/main.py
index 3a8eb96..839f44f 100644
--- a/source/app/models/main.py
+++ b/source/app/models/main.py
@@ -5700,10 +5700,10 @@ class Facturas(BaseModel):
data_global = {}
if is_global:
- now = utils.now()
- data_global['Periodicidad'] = invoice.periodicidad
- data_global['Meses'] = now.strftime('%m')
- data_global['Año'] = now.strftime('%Y')
+ values = invoice.periodicidad.split('|')
+ data_global['Periodicidad'] = values[0]
+ data_global['Meses'] = values[1]
+ data_global['Año'] = values[2]
frm_vu = FORMAT
if decimales_precios:
@@ -5793,15 +5793,6 @@ class Facturas(BaseModel):
if not row.producto is None:
object_tax = row.producto.objeto_impuesto
- # cfdi4
- # ~ if not is_global:
- # ~ concepto['ObjetoImp'] = row.producto.objeto_impuesto
- # ~ else:
- # ~ if taxes:
- # ~ concepto['ObjetoImp'] = '02'
- # ~ else:
- # ~ concepto['ObjetoImp'] = '01'
-
if is_global:
key_sat = row.clave_sat
key = row.clave
@@ -5846,20 +5837,24 @@ class Facturas(BaseModel):
if invoice.tipo_comprobante != 'T':
if is_global:
- ticket = (Tickets
- .get(fn.Concat(Tickets.serie, Tickets.folio)==row.clave)
- )
- product_taxes = (TicketsImpuestos
- .select()
- .where(TicketsImpuestos.ticket==ticket)
- )
+ ticket = None
+ try:
+ ticket = (Tickets
+ .get(fn.Concat(Tickets.serie, Tickets.folio)==row.clave)
+ )
+ product_taxes = (TicketsImpuestos
+ .select()
+ .where(TicketsImpuestos.ticket==ticket)
+ )
+ except Tickets.DoesNotExist:
+ product_taxes = row.producto.impuestos
else:
product_taxes = row.producto.impuestos
if object_tax == '02':
for impuesto in product_taxes:
base = float(row.importe - row.descuento)
- if is_global:
+ if is_global and not ticket is None:
base = float(impuesto.base)
impuesto = impuesto.impuesto
diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js
index 6567fa4..f93ee0d 100644
--- a/source/static/js/controller/invoices.js
+++ b/source/static/js/controller/invoices.js
@@ -23,6 +23,7 @@ var anticipo = false
var donativo = false
var cfg_invoice = new Object()
var values_comercioe = null
+var values_global = ''
function init_config_invoices(){
@@ -33,6 +34,7 @@ function init_config_invoices(){
g.showColumn('total')
g.showColumn('currency')
}
+ show('cmd_show_global_information', false)
}
@@ -96,6 +98,7 @@ var invoices_controllers = {
$$('cmd_carta_copy_from_invoice').attachEvent('onItemClick', cmd_carta_copy_from_invoice_click)
$$('cmd_carta_import_json').attachEvent('onItemClick', cmd_carta_import_json_click)
$$('cmd_import_json_comercioe').attachEvent('onItemClick', cmd_import_json_comercioe_click)
+ $$('cmd_show_global_information').attachEvent('onItemClick', cmd_show_global_information_click)
webix.extend($$('grid_invoices'), webix.ProgressBar)
@@ -256,6 +259,8 @@ function default_config(){
show('txt_total_cant', values.cfdi_show_total_cant)
show('date_invoice', values.cfdi_change_date_invoice)
})
+
+ values_global = ''
}
@@ -298,6 +303,7 @@ function cmd_new_invoice_click(){
lst.getList().clearAll()
$$('date_invoice').setValue(new Date())
+ show('cmd_show_global_information', false)
form.focus('search_client_name')
}
@@ -537,6 +543,14 @@ function validate_invoice(values){
}
}
+ if($$('cmd_show_global_information').isVisible()){
+ if(values_global==''){
+ msg = 'Captura los datos de la Factura Global'
+ msg_error(msg)
+ return false
+ }
+ }
+
return true
}
@@ -724,6 +738,8 @@ function guardar_y_timbrar(values){
data['folio_custom'] = $$('txt_folio_custom').getValue()
data['divisas'] = $$('opt_divisas').getValue()
data['leyendas_fiscales'] = $$('grid_leyendas_fiscales').getSelectedId(true, true)
+ data['periodicidad'] = values_global
+
$$('grid_leyendas_fiscales').unselectAll()
var usar_ine = $$('chk_cfdi_usar_ine').getValue()
@@ -817,6 +833,7 @@ function guardar_y_timbrar(values){
}
values_comercioe = null
+ values_global = ''
$$('chk_cfdi_usar_comercioe').setValue(false)
table_relaciones.clear()
@@ -825,6 +842,7 @@ function guardar_y_timbrar(values){
$$('chk_cfdi_anticipo').setValue(0)
$$('chk_cfdi_donativo').setValue(0)
$$('chk_cfdi_usar_ine').setValue(0)
+ show('cmd_show_global_information', false)
$$('form_invoice').setValues({id_partner: 0, lbl_partner: 'Ninguno', notas:''})
$$('multi_invoices').setValue('invoices_home')
@@ -893,6 +911,10 @@ function cmd_timbrar_click(id, e, node){
}
}
+ if($$('cmd_show_global_information').isVisible()){
+ msg += 'Es una Factura Global
'
+ }
+
msg += '¿Estás seguro de timbrar esta factura?
'
webix.confirm({
@@ -965,6 +987,12 @@ function set_client(row){
}
lst.setValue(lst.getPopup().getList().getFirstId())
+ if(row.nombre == PUBLICO && row.rfc == RFC_PUBLICO){
+ show('cmd_show_global_information', true)
+ }else{
+ show('cmd_show_global_information', false)
+ }
+
form.focus('search_product_id')
}
@@ -2923,3 +2951,20 @@ function up_invoice_json_comercioe_on_after_file_add(obj){
}
$$('win_import_json_comercioe').close()
}
+
+
+function cmd_show_global_information_click(){
+ win_global_information.init()
+ $$('win_global_information').show()
+}
+
+function cmd_save_global_information_click(){
+ values_global = $$('lst_global_periodicidad').getValue() + "|"
+ values_global += $$('lst_global_months').getValue() + "|"
+ values_global += $$('lst_global_year').getValue()
+ $$('win_global_information').close()
+}
+
+function cmd_win_global_close_click(){
+ $$('win_global_information').close()
+}
diff --git a/source/static/js/controller/util.js b/source/static/js/controller/util.js
index c0d7f66..fba23af 100644
--- a/source/static/js/controller/util.js
+++ b/source/static/js/controller/util.js
@@ -15,7 +15,7 @@
//~ along with this program. If not, see .
-var PUBLICO = "Público en general";
+var PUBLICO = "PUBLICO EN GENERAL";
var RFC_PUBLICO = "XAXX010101000";
var RFC_EXTRANJERO = "XEXX010101000";
var PAIS = "México";
@@ -627,3 +627,33 @@ function grid_parse(grid_name, values){
function activate_tab(parent, name){
$$(parent).getTabbar().setValue(name)
}
+
+
+var opt_global_periodicidad = [
+ {id: '01', value: '[01] Diario'},
+ {id: '02', value: '[02] Semanal'},
+ {id: '03', value: '[03] Quincenal'},
+ {id: '04', value: '[04] Mensual'},
+ {id: '05', value: '[05] Bimestral'},
+]
+
+var opt_global_months = [
+ {id: '01', value: '[01] Enero'},
+ {id: '02', value: '[02] Febrero'},
+ {id: '03', value: '[03] Marzo'},
+ {id: '04', value: '[04] Abril'},
+ {id: '05', value: '[05] Mayo'},
+ {id: '06', value: '[06] Junio'},
+ {id: '07', value: '[07] Julio'},
+ {id: '08', value: '[08] Agosto'},
+ {id: '09', value: '[09] Septiembre'},
+ {id: '10', value: '[10] Octubre'},
+ {id: '11', value: '[11] Noviembre'},
+ {id: '12', value: '[12] Diciembre'},
+ {id: '13', value: '[13] Enero-Febrero'},
+ {id: '14', value: '[14] Marzo-Abril'},
+ {id: '15', value: '[15] Mayo-Junio'},
+ {id: '16', value: '[16] Julio-Agosto'},
+ {id: '17', value: '[17] Septiembre-Octubre'},
+ {id: '18', value: '[18] Noviembre-Diciembre'},
+]
diff --git a/source/static/js/ui/invoices.js b/source/static/js/ui/invoices.js
index c622432..43e3ae3 100644
--- a/source/static/js/ui/invoices.js
+++ b/source/static/js/ui/invoices.js
@@ -224,6 +224,8 @@ var toolbar_invoices_generate = {view: 'toolbar', elements: [{},
labelWidth: 0, width: 100, hidden: true},
{view: 'checkbox', id: 'chk_cfdi_donativo', labelRight: 'Es Donativo',
labelWidth: 0, width: 100, hidden: true},
+ {view: 'button', id: 'cmd_show_global_information', label: 'Global',
+ type: 'iconButton', autowidth: true, hidden: false, icon: 'file-code-o'},
{}]}
@@ -1428,3 +1430,44 @@ var win_import_json_comercioe = {
$$('up_invoice_json').attachEvent('onAfterFileAdd', up_invoice_json_comercioe_on_after_file_add)
}
}
+
+
+var body_global_information = {rows: [{minHeight: 5},
+ {view: 'richselect', id: 'lst_global_periodicidad', label: 'Periodicidad:', options: opt_global_periodicidad, value: '01'},
+ {view: 'richselect', id: 'lst_global_months', label: 'Mes:', options: opt_global_months, value: '01'},
+ {view: 'richselect', id: 'lst_global_year', label: 'Año:', options: []},
+ {view: 'label', label: '¿Guardar estos datos?', width: 300, align: 'center'},
+ {cols: [{},
+ {view: 'button', id: 'cmd_save_global_information', width: 100, label: 'Si Guardar'},
+ {maxWidth: 25},
+ {view: 'button', id: 'cmd_win_global_close', width: 100, label: 'No, Cerrar'},
+ {}
+ ]},
+ {minHeight: 10},
+]}
+
+
+var win_global_information = {
+ init: function(){
+ webix.ui({
+ view: 'window',
+ id: 'win_global_information',
+ modal: true,
+ width: 400,
+ position: 'center',
+ head: 'Información Global',
+ body: body_global_information,
+ })
+
+ var current_date = new Date()
+ var current_month = (current_date.getMonth() + 1).toString().padStart(2, '0')
+ $$('lst_global_months').setValue(current_month)
+
+ var current_year = current_date.getFullYear()
+ $$('lst_global_year').getList().parse([{id: current_year, value: current_year}])
+ $$('lst_global_year').setValue(current_year)
+
+ $$('cmd_save_global_information').attachEvent('onItemClick', cmd_save_global_information_click)
+ $$('cmd_win_global_close').attachEvent('onItemClick', cmd_win_global_close_click)
+ }
+}