You need to sign in to do that
Don't have an account?
Create a trigger to update Object Product field Quantity after an invoice line is inserted ?
How can i achieve that this are the fields in object Line
Cantidad__c Number(4, 0)
Factura__c Master-Detail(Factura)
Producto__c Lookup(Producto)
Monto_Colones__c Currency(16, 2)
I need to Update this fiel from Product__c
CantidadExistencia__c Number(4, 0)
Basically i want to set CantidadExistencia__c = CantidadExistencia__c - Line.Cantidad__c for each line i insert; this is the code that insert every line:
public void insertarLinea()
{
try
{
List<Linea__c> lines = new list<Linea__c>(); // crea una lista con las lineas de la factura
//Para cada producto C en carrito
for(Producto__c C : CARRITO) {
for(Integer i =0; i < CARRITO.size();i++){ // Creamos un loop para que recorra toda la lista CARRITO y los integre a una nueva lista de lineas
Linea__c Line = new Linea__c ();
Line.Cantidad__c = C.CantidadExistencia__c;
Line.Factura__c = current_factura.id;
Line.Monto_Colones__c = C.Precio__c;
Line.Producto__c = C.id;
lines.add(Line); // adding line to list
}
}
insert (lines); // Insertamos la lista lineas asi evitamos hacer un insert por cada registro que haya en CARRITO
}
catch(Exception a)
{
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Error al insertar la linea. '+a));
}
}
Cantidad__c Number(4, 0)
Factura__c Master-Detail(Factura)
Producto__c Lookup(Producto)
Monto_Colones__c Currency(16, 2)
I need to Update this fiel from Product__c
CantidadExistencia__c Number(4, 0)
Basically i want to set CantidadExistencia__c = CantidadExistencia__c - Line.Cantidad__c for each line i insert; this is the code that insert every line:
public void insertarLinea()
{
try
{
List<Linea__c> lines = new list<Linea__c>(); // crea una lista con las lineas de la factura
//Para cada producto C en carrito
for(Producto__c C : CARRITO) {
for(Integer i =0; i < CARRITO.size();i++){ // Creamos un loop para que recorra toda la lista CARRITO y los integre a una nueva lista de lineas
Linea__c Line = new Linea__c ();
Line.Cantidad__c = C.CantidadExistencia__c;
Line.Factura__c = current_factura.id;
Line.Monto_Colones__c = C.Precio__c;
Line.Producto__c = C.id;
lines.add(Line); // adding line to list
}
}
insert (lines); // Insertamos la lista lineas asi evitamos hacer un insert por cada registro que haya en CARRITO
}
catch(Exception a)
{
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Error al insertar la linea. '+a));
}
}
public void insertarLinea()
{
try
{
List<Linea__c> lines = new list<Linea__c>(); // crea una lista con las lineas de la factura
List<Product__c> ProductsToUpdate = new list<Product__c>(); //added line of code
//Para cada producto C en carrito
for(Producto__c C : CARRITO) {
integer num = C.CantidadExistencia__c; //added line of code
for(Integer i =0; i < CARRITO.size();i++){ // Creamos un loop para que recorra toda la lista CARRITO y los integre a una nueva lista de lineas
Linea__c Line = new Linea__c ();
Line.Cantidad__c = C.CantidadExistencia__c;
Line.Factura__c = current_factura.id;
Line.Monto_Colones__c = C.Precio__c;
num = num - Line.Cantidad__c; //added line of code
Line.Producto__c = C.id;
lines.add(Line); // adding line to list
}
C.CantidadExistencia__c = num; //added line of code
ProductsToUpdate.add(C); //added line of code
}
insert (lines); // Insertamos la lista lineas asi evitamos hacer un insert por cada registro que haya en CARRITO
update(C); //added line of code
}
catch(Exception a)
{
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Error al insertar la linea. '+a));
}
}
All Answers
public void insertarLinea()
{
try
{
List<Linea__c> lines = new list<Linea__c>(); // crea una lista con las lineas de la factura
List<Product__c> ProductsToUpdate = new list<Product__c>(); //added line of code
//Para cada producto C en carrito
for(Producto__c C : CARRITO) {
integer num = C.CantidadExistencia__c; //added line of code
for(Integer i =0; i < CARRITO.size();i++){ // Creamos un loop para que recorra toda la lista CARRITO y los integre a una nueva lista de lineas
Linea__c Line = new Linea__c ();
Line.Cantidad__c = C.CantidadExistencia__c;
Line.Factura__c = current_factura.id;
Line.Monto_Colones__c = C.Precio__c;
num = num - Line.Cantidad__c; //added line of code
Line.Producto__c = C.id;
lines.add(Line); // adding line to list
}
C.CantidadExistencia__c = num; //added line of code
ProductsToUpdate.add(C); //added line of code
}
insert (lines); // Insertamos la lista lineas asi evitamos hacer un insert por cada registro que haya en CARRITO
update(C); //added line of code
}
catch(Exception a)
{
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR,'Error al insertar la linea. '+a));
}
}