Está en la página 1de 2

/*

Autor: MGFR / ECV / EEGC


Fecha: 27/10/2023
Descripcion: Valida que no grabe cotizacion si precio de lista es manor al costo
del producto
*/

var vCostoMayorPrecio = false;


var vPartNum = "";
var vListCode = "";
var vTienePrecioLista = false;

Double vDays= 0;

DateTime vNow = DateTime.Now;

//Inicialización de variables globales


vPrecioLista = (Decimal) 0.00;

//
var ttQuoteDtl_iterator = ( from ttQuoteDtl_Row in ds.QuoteDtl //Se obtiene
la ultima linea de la tabla temporal (registro modificado actual)
select ttQuoteDtl_Row ).LastOrDefault(); //

if ( ttQuoteDtl_iterator!=null && ttQuoteDtl_iterator.RowMod ==


Ice.IceRow.ROWSTATE_UPDATED ) { // validamos que se trajo una linea y que el modo
es modificacion (U), [A = nuevo]
vPartNum = ttQuoteDtl_iterator.PartNum.ToString();
vPrecioCapturado = ttQuoteDtl_iterator.DspExpUnitPrice;

//<-- Obtener el precio de lista


foreach( var Plp_iterator in ( from Plp_Row in Db.PriceLstParts
where Plp_Row.Company == Session.CompanyID
&& Plp_Row.PartNum == vPartNum //buscamos la
parte en la tabla de Partes
select Plp_Row ) ) {
vListCode = Plp_iterator.ListCode.ToString();
foreach( var Pl_iterator in ( from Pl_Row in Db.PriceLst
where Pl_Row.Company == Session.CompanyID
&& Pl_Row.ListCode == vListCode
&& Pl_Row.StartDate <= vNow
&& Pl_Row.EndDate >= vNow
select Pl_Row ) ) {
TimeSpan ts = (TimeSpan) (Pl_iterator.EndDate - Pl_iterator.StartDate);
if(vDays < ts.TotalDays){
vDays = ts.TotalDays;
vPrecioLista = Plp_iterator.BasePrice;
vTienePrecioLista = true;
}
}
}
//-->

if(vTienePrecioLista == false){
vMensaje = "No hay PRECIO DE LISTA definido para el dia de hoy";
vCostoMayorPrecio = true;
}else{
if(vPrecioCapturado < vPrecioLista - (Decimal) 0.20){
vCostoMayorPrecio = true;
vMensaje = "El PRECIO CAPTURADO ("+vPrecioCapturado+") es menor al PRECIO DE
LISTA menos $0.20 ("+vPrecioLista+")";
}
}
}

return vCostoMayorPrecio;

También podría gustarte