Created
December 14, 2017 19:21
-
-
Save monroy95/d555688f21a85218398d82316f04fead to your computer and use it in GitHub Desktop.
prueba
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
frappe.ui.form.on("Sales Invoice", "refresh", function(frm, cdt, cdn) { | |
// es-GT: Obtiene el numero de Identificacion tributaria ingresado en la hoja del cliente. | |
// en-US: Fetches the Taxpayer Identification Number entered in the Customer doctype. | |
cur_frm.add_fetch("customer", "nit_face_customer", "nit_face_customer"); | |
// Funcion para la obtencion del PDF, segun el documento generado. | |
function pdf_button() { | |
frappe.call({ | |
// Este metodo verifica, el modo de generacion de PDF para la factura electronica | |
// retornara 'Manul' o 'Automatico' | |
method: "factura_electronica.api.save_url_pdf", | |
callback: function(data) { | |
if (data.message === 'Manual') { | |
// Si en la configuracion se encuentra que la generacion de PDF debe ser manual | |
// Se realizara lo siguiente | |
//cur_frm.clear_custom_buttons(); | |
console.log(data.message); | |
frm.add_custom_button(__("Obtener PDF"), | |
function() { | |
var cae_fac = frm.doc.cae_factura_electronica; | |
var link_cae_pdf = "https://www.ingface.net/Ingfacereport/dtefactura.jsp?cae="; | |
//console.log(cae_fac) | |
window.open(link_cae_pdf + cae_fac); | |
}).addClass("btn-primary"); | |
} else { | |
// Si en la configuracion se encuentra que la generacion de PDF debe ser Automatico | |
// Se realizara lo siguiente | |
console.log(data.message); | |
var cae_fac = frm.doc.cae_factura_electronica; | |
var link_cae_pdf = "https://www.ingface.net/Ingfacereport/dtefactura.jsp?cae="; | |
frappe.call({ | |
method: "factura_electronica.api.save_pdf_server", | |
args: { | |
file_url: link_cae_pdf + cae_fac, | |
filename: frm.doc.name, | |
dt: 'Sales Invoice', | |
dn: frm.doc.name, | |
folder: 'Home/Facturas Electronicas', | |
is_private: 1 | |
} | |
}); | |
} | |
} | |
}); | |
} | |
// Codigo para Factura Electronica FACE, CFACE | |
// El codigo se ejecutara segun el estado del documento, puede ser: Pagado, No Pagado, Validado, Atrasado | |
if (frm.doc.status === "Paid" || frm.doc.status === "Unpaid" || frm.doc.status === "Submitted" || frm.doc.status === "Overdue") { | |
// SI en el campo de 'cae_factura_electronica' ya se encuentra el dato correspondiente, ocultara el boton | |
// para generar el documento, para luego mostrar el boton para obtener el PDF del documento ya generado. | |
if (frm.doc.cae_factura_electronica) { | |
cur_frm.clear_custom_buttons(); | |
pdf_button(); | |
} else { | |
var nombre = 'Factura Electronica'; | |
frm.add_custom_button(__(nombre), function() { | |
frappe.call({ | |
method: "factura_electronica.api.generar_factura_electronica", | |
args: { | |
serie_factura: frm.doc.name, | |
nombre_cliente: frm.doc.customer | |
}, | |
// El callback recibe como parametro el dato retornado por script python del lado del servidor | |
callback: function(data) { | |
// Asignacion del valor retornado por el script python del lado del servidor en el campo | |
// 'cae_factura_electronica' para ser mostrado del lado del cliente y luego guardado en la DB | |
cur_frm.set_value("cae_factura_electronica", data.message); | |
if (frm.doc.cae_factura_electronica) { | |
cur_frm.clear_custom_buttons(); | |
pdf_button(); | |
} | |
} | |
}); | |
}).addClass("btn-primary"); | |
} | |
} | |
// Codigo para Notas de Credito NCE | |
// El codigo se ejecutara segun el estado del documento, puede ser: Retornar | |
if (frm.doc.status === "Return") { | |
//var nombre = 'Nota Credito'; | |
// SI en el campo de 'cae_nota_de_credito' ya se encuentra el dato correspondiente, ocultara el boton | |
// para generar el documento, para luego mostrar el boton para obtener el PDF del documento ya generado. | |
if (frm.doc.cae_nota_de_credito) { | |
cur_frm.clear_custom_buttons(); | |
pdf_button(); | |
} else { | |
frm.add_custom_button(__('Nota Credito'), function() { | |
frappe.call({ | |
method: "factura_electronica.api.generar_factura_electronica", | |
args: { | |
serie_factura: frm.doc.name, | |
nombre_cliente: frm.doc.customer | |
}, | |
// El callback recibe como parametro el dato retornado por script python del lado del servidor | |
callback: function(data) { | |
// Asignacion del valor retornado por el script python del lado del servidor en el campo | |
// 'cae_nota_de_credito' para ser mostrado del lado del cliente y luego guardado en la DB | |
cur_frm.set_value("cae_nota_de_credito", data.message); | |
if (frm.doc.cae_nota_de_credito) { | |
cur_frm.clear_custom_buttons(); | |
pdf_button(); | |
} | |
} | |
}); | |
}).addClass("btn-primary"); | |
} | |
} | |
frappe.ui.form.on("Sales Invoice Item", { | |
item_code: function(frm, cdt, cdn) { // items_move: function(frm, cdt, cdn) { | |
frm.add_fetch("item_code", "tax_rate_per_uom", "tax_rate_per_uom"); | |
// A la variable d se cargan todos los datos disponibles en el formulario | |
// # Locals es un array, y los parametros [cdt][cdn] sirven para ubicar, los campos de este documento cargado en pantalla | |
// # Locals se refiere a los campos del documento actual en pantalla, o "local". | |
// # let es lo mismo que var | |
var d = locals[cdt][cdn]; | |
// var row = frappe.get_doc(cdt, cdn); | |
//var datos = frappe.get_meta(cdt).fields | |
//var prueba = frappe.get_meta(cdt) | |
// No funcion en JS | |
// var datos = frappe.get_all('Sales Invoice Item', filters = { 'item_code': d.item_code }, fields = ['qty', 'amount']) | |
var datos = frappe.get_list(cdt, filters = { 'item_code': d.item_code }, fields = ['qty', 'amount', 'stock_qty']); | |
//console.log(row); | |
//console.log(row.amount); | |
//console.log(datos); | |
console.log(datos); | |
console.log(datos[0]['amount']) | |
//let monto = d.amount; | |
//let cantidad = d.stock_qty; | |
//let prueba_impuesto = d.tax_rate_per_uom; | |
//frappe.msgprint(d); | |
// console.log(d); | |
// console.log("Usando trigger de Item code"); | |
// console.log("El valor de impuesto es:" + prueba_impuesto); | |
// console.log("Cantidad:" + row.amount); | |
// console.log("Monto:" + row.stock_qty); | |
// Agregar logica para realizar calculos | |
// frappe.model.set_value, establece un valor al campo que se desee | |
// recibe como parametros; frappe.model.set_value('doctype', 'docname', 'campo_a_asignar_valor', valor); | |
//frappe.model.set_value(cdt, cdn, 'importe_gravado', flt(monto) * flt(cantidad)); | |
//cur_frm.refresh_fields(); | |
}, | |
qty: function(frm, cdt, cdn) { | |
console.log('se ha ejecutado el trigger refresh'); | |
}, | |
refresh: function(frm, cdt, cdn) { | |
console.log('se ha ejecutado el trigger refresh'); | |
}, | |
onload: function(frm, cdt, cdn) { | |
console.log('Se ha ejecutado el trigger onload'); | |
}, | |
validate: function(frm, cdt, cdn) { | |
console.log('Se ha ejecutado el trigger validate'); | |
}, | |
onsubmit: function(frm, cdt, cdn) { | |
console.log('Se ha ejecutado el trigger onsubmit'); | |
}, | |
onload_post_render: function(frm, cdt, cdn) { | |
console.log('Se ha ejecutado el trigger onload post render'); | |
} | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment