public bool bajarStock(ModeloLineaPedido p_lineaPedido) { ModeloArticuloProveedores lcl_mod_articuloProveedores = new ModeloArticuloProveedores() { codigoOriginal = p_lineaPedido.articulo.codigoOriginal, codigoArticuloProveedor = p_lineaPedido.articulo.codigoArticuloProveedor }; lcl_mod_articuloProveedores = ControladorBusqueda.getOne(lcl_mod_articuloProveedores, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.One); //Si no se encuentra artículo tira excepción de índice lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual - p_lineaPedido.cantidadArticulos; //Excepcion si stock negativo y no esta permitido if (lcl_mod_articuloProveedores.stockActual < 0 && !p_lineaPedido.permitirStockNegativo) { errorActual = "La cantidad solicitada es mayor al stock actual para el artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " + lcl_mod_articuloProveedores.codigoArticuloProveedor; return(false); } //Si hay error al modificar la base de datos agregando linea o modificando stock if (!new ControladorModificacion().modificar(lcl_mod_articuloProveedores)) { errorActual = "Error al modificar stock en la base de datos de artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " + lcl_mod_articuloProveedores.codigoArticuloProveedor; return(false); } return(true); }
public bool devolverStock(ModeloPedido p_mod_pedido) { ModeloArticuloProveedores lcl_mod_articuloProveedores; ControladorModificacion lcl_con_modificacion = new ControladorModificacion(); if (p_mod_pedido.tipoComprobante != 0) { foreach (ModeloLineaPedido lp in p_mod_pedido.lineasPedido) { //se debe modificar stock lcl_mod_articuloProveedores = new ModeloArticuloProveedores(); lcl_mod_articuloProveedores.codigoOriginal = lp.articulo.codigoOriginal; lcl_mod_articuloProveedores.codigoArticuloProveedor = lp.articulo.codigoArticuloProveedor; lcl_mod_articuloProveedores = ControladorBusqueda.getOne(lcl_mod_articuloProveedores, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.One); //Si no se encuentra artículo tira excepción de índice if (p_mod_pedido.tipoComprobante != 8 && p_mod_pedido.tipoComprobante != 3)//Se agrega para que cuando sea devolucion no suba Stock. { if (p_mod_pedido.tipoComprobante != 2001) { lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual + lp.cantidadArticulos; //Excepcion si stock negativo y no esta permitido } else { lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual - lp.cantidadArticulos; if (lcl_mod_articuloProveedores.stockActual < 0 && !lp.permitirStockNegativo) { errorActual = "La cantidad solicitada es mayor al stock actual para el artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " + lcl_mod_articuloProveedores.codigoArticuloProveedor; return(false); } } //Si hay error al modificar la base de datos agregando linea o modificando stock if (!lcl_con_modificacion.modificar(lcl_mod_articuloProveedores)) { errorActual = "Error al modificar stock en la base de datos de artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " + lcl_mod_articuloProveedores.codigoArticuloProveedor; return(false); } } } } return(true); }
/// <summary> /// Retorna multiples pedidos (e inicializa propiedad pedidosProveedores) de acuerdo al proveedor de cada articulo en las lineas de pedido /// </summary> /// <param name="p_mod_pedido"></param> /// <returns></returns> public List <ModeloPedido> getPedidosProveedores(ModeloPedido p_mod_pedido) { List <ModeloPedido> lcl_lst_mod_pedidos = new List <ModeloPedido>(); bool lineaAgregada = false; foreach (ModeloLineaPedido lp in p_mod_pedido.lineasPedido) { lineaAgregada = false; foreach (ModeloPedido pedido in lcl_lst_mod_pedidos) { if (lp.articulo.codigoEntidad == pedido.entidad.codigo) { //Se agrega linea al pedido que tenga como entidad al proveedor del articulo proveedor y se marca la bandera pedido.lineasPedido.Add(lp); lineaAgregada = true; break; } } if (!lineaAgregada) { ModeloEntidad p_mod_entidadAuxiliar = new ModeloProveedor(); p_mod_entidadAuxiliar.codigo = lp.articulo.codigoEntidad; //Se crea pedido con proveedor como entidad del pedido ModeloPedido p_mod_pedidoAuxiliar = new ModeloPedido(ControladorBusqueda.getOne(p_mod_entidadAuxiliar, Constantes.ParametrosBusqueda.One)); p_mod_pedidoAuxiliar.lineasPedido.Add(lp); lcl_lst_mod_pedidos.Add(p_mod_pedidoAuxiliar); } } this.pedidosProveedores = lcl_lst_mod_pedidos; foreach (ModeloPedido p in this.pedidosProveedores) { p.actualizarMontos(); } this.pedidosProveedores.Insert(0, new ModeloPedido()); this.pedidosProveedores[0] = this.getPedidoGlobal(); return(lcl_lst_mod_pedidos); }
public bool subirStock(ModeloLineaPedido p_lineaPedido) { ModeloArticuloProveedores lcl_mod_articuloProveedores = new ModeloArticuloProveedores() { codigoOriginal = p_lineaPedido.articulo.codigoOriginal, codigoArticuloProveedor = p_lineaPedido.articulo.codigoArticuloProveedor }; lcl_mod_articuloProveedores = ControladorBusqueda.getOne(lcl_mod_articuloProveedores, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.One); //Si no se encuentra artículo tira excepción de índice lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual + p_lineaPedido.cantidadArticulos; //Si hay error al modificar la base de datos agregando linea o modificando stock if (!this.modificar(lcl_mod_articuloProveedores)) { errorActual = "Error al modificar stock en la base de datos de artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " + lcl_mod_articuloProveedores.codigoArticuloProveedor; return(false); } return(true); }