Prestashop-将库存转移到其他仓库时创建发货单

Prestashop-将库存转移到其他仓库时创建发货单,prestashop,stock,prestashop-1.5,Prestashop,Stock,Prestashop 1.5,我需要创建某种类型的转移单(就像交货单),在将库存从一个仓库转移到另一个仓库(库存>库存管理-->操作>转移库存)时,具有转移编号(例如,转移#TR000008) 我想在股票变动列中显示转让编号(例如#TR000008) 如果可能,我想将标签从“转移到另一个仓库”更改为“转移到[此处仓库名称]” 我有没有办法让PrestaShop做以上的事 非常感谢你的帮助 更新: 如果no.1太难,也许可以告诉我一种方法,在股票转让表中添加额外的输入字段,这样我就可以手动输入转让编号了 注: 我真的需要得到完

我需要创建某种类型的转移单(就像交货单),在将库存从一个仓库转移到另一个仓库(库存>库存管理-->操作>转移库存)时,具有转移编号(例如,转移#TR000008)

  • 我想股票变动列中显示转让编号(例如#TR000008)

  • 如果可能,我想将标签从“转移到另一个仓库”更改为“转移到[此处仓库名称]

  • 我有没有办法让PrestaShop做以上的事

    非常感谢你的帮助

    更新: 如果no.1太难,也许可以告诉我一种方法,在股票转让表中添加额外的输入字段,这样我就可以手动输入转让编号了

    注: 我真的需要得到完整工作代码方面的帮助可能基于 方向@soulsekah提供


    PS:我正在使用Prestashop 1.5.2.0

    虽然Prestashop在灵活性和扩展其功能方面相当严格,但您所要求的几乎可以通过在这里或那里洒点JavaScript魔法(阅读:hacks)实现

    注意:我正在为此使用Prestashop 1.5.6.1,因此可能会有一些细微的差异

    假设 我假设您知道如何编写basic、使用Prestashop挂钩、安装模块安装和卸载操作,以及如何使用jQuery处理数据库

    准备好了吗

    股票转让 Prestashop没有严格的股票转让概念。但是您确实得到了股票运动的完整历史记录,它存储在
    stock\u mvt
    表中,并由类支持

    这是非常幸运的,您无需创建和管理传输表。然而,它可能不太可靠

    列动作 由渲染的“库存移动”屏幕没有任何用于更改列的挂钩。因此,这需要一些JavaScript操作

    注入JavaScript的标准方法是挂接到。一旦你钩住这个动作,注入一个JavaScript文件

    public function hookDisplayBackOfficeHeader() {
        return '<script type="text/javascript" src="'.$this->_path.'transfers.js'.'"></script>';
    }
    
    公共函数hookDisplayBackOfficeHeader(){
    返回“”;
    }
    
    附加列 以上内容将包括随模块一起提供的脚本。此脚本可以使用jQuery来更改列的外观和内容

    jQuery( '.table.stock_mvt thead tr:nth(0)' ).append( '<th>Transfer</th>' );
    jQuery( '.table.stock_mvt thead tr:nth(1)' ).append( '<td></td>' );
    
    jQuery('.table.stock_mvt thead tr:nth(0)')。追加('Transfer');
    jQuery('.table.stock_mvt thead tr:nth(1)')。追加('';
    
    按新列排序、搜索和筛选的额外点数

    标签 更改名称“转移到/从另一个仓库转移”很简单,不需要任何数据库调用。只需查看每一行,如果列包含“from”,请查看前一行并从Warehouse列获取名称。如果它包含“to”,请查看下一行

    这显然不适用于排序和过滤器。在这种情况下,您可以调用数据库以获取每个移动的仓库名称-请参阅下一节

    UI非常简单。但如何将转账单数据输入其中?困难的部分来了

    转移滑移数据 正如我所说,运动数据是可用的,并且可以很容易地检索到,方法与它几乎相同

    该表需要来自数据库的一些数据。您需要获取仓库之间移动的ID,这将是您的单号ID和涉及的两个仓库的名称

    基本上,您需要通过查看
    stock\u mvt\u reason\u lang
    表并找到连续的“to”和“from”原因对来计算出传输对,这些原因对具有您感兴趣的
    id\u stock\u mvt\u reason
    。查看内部
    stock\u mvt
    ,按
    stock\u mvt\u id
    排序,并在PHP或MySQL中将它们配对

    id\u stock
    将指向一个仓库,您可以在那里获取名称。基本上你需要什么就得到什么,把连续的“to”->“from”动作作为一个转移配对

    纸条ID可能是“to”移动或“from”移动的
    ID\u stock\u mvt
    (选择一个并粘住它)。通过这种方式,您将能够生成带有一个特定ID的纸条,并找到传输中涉及的两个移动

    把它们放在一起 因此,您需要做的是在您的模块上抛出一个AJAX调用,并返回所需的数据传输单ID、从名称到名称的传输等。一旦调用完成,您只需根据需要将数据注入表中。转账是生成您的单据的链接(见下一节)

    由于该表没有ID数据,您必须确保以正确的顺序返回结果,因此不要忘记考虑排序、限制和分页,以输出正确排序的有效负载注入表中。您应该能够只发送传输数据对

    或者,您可以创建一个名为“Stock Transfer”的新管理选项卡,在该选项卡中,您可以仅使用Transfer以干净的方式输出表

    PDF文档 PDF生成可以从中派生。您必须包含传输的必要数据。至此,您已经找到了获取输出所需数据的正确方法。构建PDF非常简单

    一旦你的发电机得到了滑动ID,你就可以在移动表中查找它,得到它的对和所有数据。正如你所能想象的,一代人的眼睛在飞,而纸条永远不会被储存在史前停车场。您的新转账单也不需要存储

    概述 快速概述您的模块需要包含的内容:

    • 基本模块代码(安装、卸载、钩子注册)
    • 已注册的
      hookDisplayBackOfficeHeader