#36080
Javier Ader
Participante

Buenas. El codigo de compleción de Pedidos esta en la clase MOrder, metodo completeIt; pero la forma correcta de completar un Pedido pre-creado en estado Draft (Borrador; C_Oder.DocStatus = ‘DR’), es obteniendo una instancia de MOrder para ese pedido en particular y llamar al metodo de MOrder, processIt (“CO”) o algo muy similar (mira la clase PoSOnline, metodo completeOrder que en un punto hace esto; la diferencia ahi es que ademas se hacen muchas otras cosas, porque ademas crea el pedido desde cero; no te compliques por ese lado, mira solo como lo completa).

En general, si lo tenes pre-creaados (asumo que si por lo que decís), ya guardados y en estado Draft, lo que tenes que hacer es una función similar a

Code:
function String completeOrder(int C_Order_ID)
{

//lo lee desde la base de datos; se asume que existe uno con tal C_Order_ID
//y con el stado Draft
MOrder o = new MOrder(getCtx(),C_Order_ID,get_TrxName());

if (o.processIt(“CO)) //lo copleto
{
if (o.save()) //y lo salvo
return “”; //OK
}
//si se llega acá hubo un error
return “Error completando Pedido “+ C_Order_ID + ” ,Num.Doc =” + o.DocumentNo();
}

Solo tenes que hacer eso para completarlos (o algo similar) por cada pedido, obteniendo previamente el id del pedido (como hcer esto ya es otro tema(; no hay que leer las lineas ni nada.