| Autor |
Mensaje |
mayerling.tecnico1
|
# Publicado: 30 Jun 2011 16:21
hola, estoy haciendo algunas modificaciones en modulos anteriores de abanq, y necesitaria calcular la suma de los pvp sin dto de cada linea de articulos ubicados en lineasfacturascli, sumarlos y guardarlos en facturascli.netosindto campo el cual eh agregado yo a la tabla. Estuve viendo los archivos facturascli.qs para buscar el momento en el cual se calcula el pvptotal para tener como ejemplo pero realmente no puedo encontrar como hacerlo, desde ya muchisimas gracias. Saludos
|
Anónimo
|
# Publicado: 30 Jun 2011 18:55
Creo recordar que el cálculo de todos los campos calculados se unificaba en la función commonCalculatedField, mediante un switch. Busca esta función te servirá como guía para ver como se hace. Un saludo.
|
mayerling.tecnico1
|
# Publicado: 1 Jul 2011 19:48
Ya agregue las declaraciones de las funciones y las definiciones al masterfacturascli.qs y lo propio con facturascli.qs, creo que el calculo lo esta haciendo pero la estoy pifiando en algun lado que no guarda el dato.
Esto es lo que agregue a ambos archivos:
MASTERFACTURASCLI.QS
DECLARACIONES
/** @class_declaration dtoEspecial */
////////////////////////////////////////////////// ///////////////
//// DTO ESPECIAL ///////////////////////////////////////////////
class dtoEspecial extends ctaVentaArt {
function dtoEspecial( context ) { ctaVentaArt ( context ); }
}
//// DTO ESPECIAL ///////////////////////////////////////////////
////////////////////////////////////////////////// ///////////////
DEFINICIONES
/** @class_definition dtoEspecial */
////////////////////////////////////////////////// ///////////////
//// DTO ESPECIAL ///////////////////////////////////////////////
function dtoEspecial_commonCalculateField(fN:String, cursor:FLSqlCursor):String
{
var util = new FLUtil();
var valor;
switch (fN) {
/** \C
El --netosindtoesp-- es la suma del pvp total de las líneas de factura
\end */
case "netosindtoesp":{
valor = this.iface.__commonCalculateField("neto", cursor);
break;
}
}
return valor;
}
function dtoEspecial_totalesFactura():Boolean
{
with(this.iface.curFactura) {
setValueBuffer("netosindtoesp", formfacturascli.iface.pub_commonCalculateField("ne tosindtoesp", this));
}
return true;
}
//// DTO ESPECIAL ///////////////////////////////////////////////
////////////////////////////////////////////////// ///////////////
FACTURASCLI.QS
/** @class_definition dtoEspecial */
////////////////////////////////////////////////// ////////////////
//// DTO ESPECIAL ////////////////////////////////////////////////
function dtoEspecial_bufferChanged(fN:String)
{
switch (fN) {
/** \C
El --neto-- es el producto del --netosindtoesp-- por el --pordtoesp--
\end */
case "netosindtoesp": {
if (!this.iface.bloqueoDto) {
this.iface.bloqueoDto = true;
this.child("fdbDtoEsp").setValue(this.iface.ca lculateField("dtoesp"));
this.iface.bloqueoDto = false;
}
break;
}
}
}
function dtoEspecial_calcularTotales()
{
var idFactura:Number = this.cursor().valueBuffer("idfactura");
this.child("fdbNetoSinDtoEsp").setValue(this.ifac e.calculateField("netosindtoesp"));
this.iface.__calcularTotales();
}
function dtoEspecial_init()
{
this.iface.__init();
this.iface.bloqueoDto = false;
}
//// DTO ESPECIAL ////////////////////////////////////////////////
////////////////////////////////////////////////// ///////////////
|
Anónimo
|
# Publicado: 2 Jul 2011 12:15
metele unos debug("loquesea"); por el codigo , asi podras controlar el contenido de las variables, cuando ejecutes el programa desde consola.
|