• Este debate está vacío.
Viendo 5 entradas - de la 1 a la 5 (de un total de 5)
  • Autor
    Entradas
  • #32876

    Estoy usando el modulo de producción el problema es que cuando realizo la producción y la materia prima esta en diferentes almacenes no me quita la existencia de estos almacenes, sino solo del almacén principal y por lógica me crea los productos en existencia negativa y el producto que se encuentra en los otros almacenes no lo descarga. Existirá alguna forma de que me quite la existencia de su respectivos almacenes donde se encuentran dichos productos o habrá que modificar el código.

    Gracias

    #38881
    AMEBIS
    Participante

    El tema es que Libertya no tiene un modulo de produccion, lo que estas utilizando es un muy simple proceso de ensamblado, no se le puede pedir que haga mas cosas. Te recomiendo trabajar sobre un desarrollo para llevar un buen control de la produccion o, como hacemos nosotros, trabajar con la materia prima y producto final en un mismo y unico almacen.

    Saludos

    #38882

    Comprendo Amebis y precisamente ese es el modulo que estoy usando el de ensamblaje, lamentablemente los productos se encuentran fisicamente en distintos sitios y algunos de esos sitios son depositos o silos, por lo que es muy importante que llevemos el control de ese inventario en cada lugar.

    Alguna otra sugerencia por favor.

    Gracias

    #38883
    AMEBIS
    Participante

    Entonces si los productos se encuentran fisicamente en otro almacen, no estas haciendo el paso de trasladar la materia prima al almacen donde das de alta la produccion.

    Te recomiendo dos cosas que podes hacer, muy simples:
    1.- Antes de declarar produccion en el almacen X, te recomiendo que hagas movimento de materia prima de los almacenes Y, Z, etc. hasta X y luego dar de alta la produccion.

    2.- Dar de la alta la produccion normalmente y luego acomodar los stocks al final de la semana o del dia, teniendo en cuenta los stocks negativos que genera el almancen donde das de alta la produccion.

    Saludos

    #38884

    Aparentemente en el codigo fuente el archivo MProductionOrder si realiza algo con respecto a la localización de la materia prima para producir el articulo final pero pareciera que no lo tomara en cuenta. O estoy equivocado.

    //Hay que comprobar si hay stock de cada uno de los articulos
    StringBuffer sql3 = new StringBuffer(“SELECT name, bomQtyOnHand(“+rs2.getInt(1)+”,”+Env.getContext(Env.getCtx(), “#M_Warehouse_ID”)+”,0)” +
    ” from m_product where m_product_id=”+rs2.getInt(1));
    PreparedStatement pstmt3 = null;
    try{
    pstmt3 = DB.prepareStatement( sql3.toString(),get_TrxName());
    ResultSet rs3 = pstmt3.executeQuery();
    if(rs3.next()){
    if(rs3.getBigDecimal(2).subtract(rs2.getBigDecimal(2).multiply(rs.getBigDecimal(2))).compareTo(BigDecimal.ZERO)<=0){
    // si no hay articulos en stock de ese almac�n
    JOptionPane.showMessageDialog( null,”El producto “+rs3.getString(1)+” no tiene stock disponible “,”No hay Stock”, JOptionPane.INFORMATION_MESSAGE );
    return DocAction.ACTION_Invalidate;
    }
    int M_Locator_ID=0; // si hay articulo, busco la localizaci�n dentro del almac�n
    M_Locator_ID = MStorage.getM_Locator_ID( Integer.valueOf(Env.getContext(Env.getCtx(), “#M_Warehouse_ID”)).intValue(),rs2.getInt(1),0,rs2.getBigDecimal(2).multiply(rs.getBigDecimal(2)),get_TrxName());
    // Get default Location
    if( M_Locator_ID == 0 ) {
    MWarehouse wh = MWarehouse.get( getCtx(),Integer.valueOf(Env.getContext(Env.getCtx(), “#M_Warehouse_ID”)).intValue());

    M_Locator_ID = wh.getDefaultLocator().getM_Locator_ID();
    }
    MStorage.add( getCtx(),Integer.valueOf(Env.getContext(Env.getCtx(), “#M_Warehouse_ID”)).intValue(),M_Locator_ID,rs2.getInt(1),0,0,rs2.getBigDecimal(2).multiply(rs.getBigDecimal(2)).negate(),null,null,get_TrxName());

    // }

Viendo 5 entradas - de la 1 a la 5 (de un total de 5)
  • Debes estar registrado para responder a este debate.