Commit 66eaa9a6 authored by wxl's avatar wxl

存储所有入库数据(其他入库,采购入库)

parent 4fc398dc
......@@ -30,6 +30,7 @@ use Purchase\Service\WarehouseOrderManager;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Mvc\I18n\Translator;
use Laminas\View\Model\JsonModel;
use Store\Service\AllWarehouseOrderGoodsManager;
class WarehouseOrderController extends AbstractActionController
{
......@@ -90,6 +91,7 @@ class WarehouseOrderController extends AbstractActionController
*/
public function addAction()
{
$allWarehouseOrderGoodsManager = new AllWarehouseOrderGoodsManager($this->entityManager);
//采购单id
$orderId = (int) $this->params()->fromRoute('id', -1);
$orderInfo = $this->entityManager->getRepository(Order::class)->findOneBy(['pOrderId' => $orderId, 'pOrderState' => 1]);
......@@ -117,6 +119,7 @@ class WarehouseOrderController extends AbstractActionController
if($data['warehouseOrderState'] == 3) {//当直接入库时,进行此处理
$this->warehouseOrderGoodsManager->addWarehouseOrderGoods($orderGoods, $warehouseOrder);
$this->purchaseGoodsPriceLogManager->addPurchaseGoodsPriceLog($orderGoods, $orderId, time());
$allWarehouseOrderGoodsManager->addAllPurchaseWarehouseOrderGoods($orderGoods, $warehouseOrder);
}
$this->orderManager->updateOrderState(['pOrderState' => $data['warehouseOrderState']], $orderInfo);
$this->purchaseCommon()->addPurchaseOperLog($data['warehouseOrderState'], $orderId);
......@@ -176,13 +179,14 @@ class WarehouseOrderController extends AbstractActionController
$this->flashMessenger()->addWarningMessage($this->translator->translate('该入库单状态不符或者入库单不存在!'));
return $this->adminCommon()->toReferer();
}
$allWarehouseOrderGoodsManager = new AllWarehouseOrderGoodsManager($this->entityManager);
$this->entityManager->beginTransaction();
try {
$orderGoods = $this->entityManager->getRepository(OrderGoods::class)->findBy(['pOrderId' => $warehouseOrderInfo->getPOrderId()]);
$warehouseOrder = $this->warehouseOrderManager->updateWarehouseOrderState(3, $warehouseOrderInfo);
$this->warehouseOrderGoodsManager->addWarehouseOrderGoods($orderGoods, $warehouseOrder);
$this->purchaseGoodsPriceLogManager->addPurchaseGoodsPriceLog($orderGoods, $warehouseOrderInfo->getPOrderId(), time());
$allWarehouseOrderGoodsManager->addAllPurchaseWarehouseOrderGoods($orderGoods, $warehouseOrder);
$orderInfo = $this->entityManager->getRepository(Order::class)->findOneBy(['pOrderId' => $warehouseOrderInfo->getPOrderId(), 'pOrderState' => 2]);
$this->orderManager->updateOrderState(['pOrderState' => 3], $orderInfo);
......
......@@ -24,6 +24,7 @@ use Stock\Form\OtherWarehouseOrderForm;
use Stock\Form\OtherWarehouseOrderGoodsForm;
use Stock\Service\OtherWarehouseOrderGoodsManager;
use Stock\Service\OtherWarehouseOrderManager;
use Store\Service\AllWarehouseOrderGoodsManager;
/**
* 其他入库
......@@ -81,6 +82,7 @@ class IndexController extends AbstractActionController
{
$goodsForm = new OtherWarehouseOrderGoodsForm($this->entityManager);
$form = new OtherWarehouseOrderForm($this->entityManager);
$allWarehouseOrderGoodsManager = new AllWarehouseOrderGoodsManager($this->entityManager);
$form->get('warehouseId')->setValueOptions($this->storeCommon()->warehouseListOptions());
......@@ -96,6 +98,7 @@ class IndexController extends AbstractActionController
try {
$otherWarehouseOrder = $this->otherWarehouseOrderManager->addOtherWarehouseOrder($data, $goodsData, $this->adminSession('admin_id'));
$this->otherWarehouseOrderGoodsManager->addOtherWarehouseOrderGoods($goodsData, $data['warehouseId'], $otherWarehouseOrder->getOtherWarehouseOrderId());
$allWarehouseOrderGoodsManager->addAllWarehouseOrderGoods($goodsData, $data['warehouseId'], $otherWarehouseOrder->getOtherWarehouseOrderId());
$this->getEventManager()->trigger('other-warehouse-order.insert.post', $this, $otherWarehouseOrder);
......
......@@ -34,7 +34,9 @@ use Store\Event\Factory\ListenerFactory;
use Store\Event\Listener;
use Store\Plugin\Factory\StoreCommonPluginFactory;
use Store\Plugin\StoreCommonPlugin;
use Store\Service\AllWarehouseOrderGoodsManager;
use Store\Service\BrandManager;
use Store\Service\Factory\AllWarehouseOrderGoodsManagerFactory;
use Store\Service\Factory\BrandManagerFactory;
use Store\Service\Factory\GoodsCategoryManagerFactory;
use Store\Service\Factory\GoodsCustomManagerFactory;
......@@ -176,7 +178,7 @@ return [
PositionManager::class => PositionManagerFactory::class,
UnitManager::class => UnitManagerFactory::class,
BrandManager::class => BrandManagerFactory::class,
AllWarehouseOrderGoodsManager::class => AllWarehouseOrderGoodsManagerFactory::class,
Listener::class => ListenerFactory::class
],
],
......
<?php
/**
* DBERP 进销存系统
*
* ==========================================================================
* @link http://www.dberp.net/
* @copyright 北京珑大钜商科技有限公司,并保留所有权利。
* @license http://www.dberp.net/license.html License
* ==========================================================================
*
* @author 静静的风 <baron@loongdom.cn>
*
*/
namespace Store\Entity;
use Admin\Entity\BaseEntity;
use Doctrine\ORM\Mapping as ORM;
/**
* 其他入库采购商品商品
* @ORM\Entity(repositoryClass="Store\Repository\AllWarehouseOrderGoodsRepository")
* @ORM\Table(name="dberp_all_warehouse_order_goods")
*/
class AllWarehouseOrderGoods extends BaseEntity
{
/**
* 入库商品id
* @ORM\Id()
* @ORM\Column(name="all_warehouse_order_goods_id", type="integer", length=11)
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $allWarehouseOrderGoodsId;
/**
* 其他入库对应表id
* @ORM\Column(name="other_warehouse_order_id", type="integer", length=11)
*/
private $otherWarehouseOrderId;
/**
* 采购入库对应表id
* @ORM\Column(name="purchase_warehouse_order_id", type="integer", length=11)
*/
private $purchaseWarehouseOrderId;
/**
* 仓库id
* @ORM\Column(name="warehouse_id", type="integer", length=11)
*/
private $warehouseId;
/**
* 购买数量
* @ORM\Column(name="warehouse_goods_buy_num", type="integer", length=11)
*/
private $warehouseGoodsBuyNum;
/**
* 商品价格
* @ORM\Column(name="warehouse_goods_price", type="decimal", scale=4)
*/
private $warehouseGoodsPrice;
/**
* 商品税金
* @ORM\Column(name="warehouse_goods_tax", type="decimal", scale=4)
*/
private $warehouseGoodsTax;
/**
* 商品总金额
* @ORM\Column(name="warehouse_goods_amount", type="decimal", scale=4)
*/
private $warehouseGoodsAmount;
/**
* 商品id
* @ORM\Column(name="goods_id", type="integer", length=11)
*/
private $goodsId;
/**
* 商品名称
* @ORM\Column(name="goods_name", type="string", length=100)
*/
private $goodsName;
/**
* 商品编号
* @ORM\Column(name="goods_number", type="string", length=30)
*/
private $goodsNumber;
/**
* 商品规格
* @ORM\Column(name="goods_spec", type="string", length=100)
*/
private $goodsSpec;
/**
* 商品单位
* @ORM\Column(name="goods_unit", type="string", length=20)
*/
private $goodsUnit;
/**
* 时间
* @ORM\Column(name="add_time", type="integer", length=11)
*/
private $addTime;
/**
* 这批货出库剩余数量
* @ORM\Column(name="out_num", type="integer", length=11)
*/
private $outNum;
/**
* @return mixed
*/
public function getAllWarehouseOrderGoodsId()
{
return $this->allWarehouseOrderGoodsId;
}
/**
* @param mixed $allWarehouseOrderGoodsId
*/
public function setAllWarehouseOrderGoodsId($allWarehouseOrderGoodsId): void
{
$this->allWarehouseOrderGoodsId = $allWarehouseOrderGoodsId;
}
/**
* @return mixed
*/
public function getOtherWarehouseOrderId()
{
return $this->otherWarehouseOrderId;
}
/**
* @param mixed $otherWarehouseOrderId
*/
public function setOtherWarehouseOrderId($otherWarehouseOrderId): void
{
$this->otherWarehouseOrderId = $otherWarehouseOrderId;
}
/**
* @return mixed
*/
public function getPurchaseWarehouseOrderId()
{
return $this->purchaseWarehouseOrderId;
}
/**
* @param mixed $purchaseWarehouseOrderId
*/
public function setPurchaseWarehouseOrderId($purchaseWarehouseOrderId): void
{
$this->purchaseWarehouseOrderId = $purchaseWarehouseOrderId;
}
/**
* @return mixed
*/
public function getWarehouseId()
{
return $this->warehouseId;
}
/**
* @param mixed $warehouseId
*/
public function setWarehouseId($warehouseId): void
{
$this->warehouseId = $warehouseId;
}
/**
* @return mixed
*/
public function getWarehouseGoodsBuyNum()
{
return $this->warehouseGoodsBuyNum;
}
/**
* @param mixed $warehouseGoodsBuyNum
*/
public function setWarehouseGoodsBuyNum($warehouseGoodsBuyNum): void
{
$this->warehouseGoodsBuyNum = $warehouseGoodsBuyNum;
}
/**
* @return mixed
*/
public function getWarehouseGoodsPrice()
{
return $this->warehouseGoodsPrice;
}
/**
* @param mixed $warehouseGoodsPrice
*/
public function setWarehouseGoodsPrice($warehouseGoodsPrice): void
{
$this->warehouseGoodsPrice = $warehouseGoodsPrice;
}
/**
* @return mixed
*/
public function getWarehouseGoodsTax()
{
return $this->warehouseGoodsTax;
}
/**
* @param mixed $warehouseGoodsTax
*/
public function setWarehouseGoodsTax($warehouseGoodsTax): void
{
$this->warehouseGoodsTax = $warehouseGoodsTax;
}
/**
* @return mixed
*/
public function getWarehouseGoodsAmount()
{
return $this->warehouseGoodsAmount;
}
/**
* @param mixed $warehouseGoodsAmount
*/
public function setWarehouseGoodsAmount($warehouseGoodsAmount): void
{
$this->warehouseGoodsAmount = $warehouseGoodsAmount;
}
/**
* @return mixed
*/
public function getGoodsId()
{
return $this->goodsId;
}
/**
* @param mixed $goodsId
*/
public function setGoodsId($goodsId): void
{
$this->goodsId = $goodsId;
}
/**
* @return mixed
*/
public function getGoodsName()
{
return $this->goodsName;
}
/**
* @param mixed $goodsName
*/
public function setGoodsName($goodsName): void
{
$this->goodsName = $goodsName;
}
/**
* @return mixed
*/
public function getGoodsNumber()
{
return $this->goodsNumber;
}
/**
* @param mixed $goodsNumber
*/
public function setGoodsNumber($goodsNumber): void
{
$this->goodsNumber = $goodsNumber;
}
/**
* @return mixed
*/
public function getGoodsSpec()
{
return $this->goodsSpec;
}
/**
* @param mixed $goodsSpec
*/
public function setGoodsSpec($goodsSpec): void
{
$this->goodsSpec = $goodsSpec;
}
/**
* @return mixed
*/
public function getGoodsUnit()
{
return $this->goodsUnit;
}
/**
* @param mixed $goodsUnit
*/
public function setGoodsUnit($goodsUnit): void
{
$this->goodsUnit = $goodsUnit;
}
/**
* @return mixed
*/
public function getAddTime()
{
return $this->addTime;
}
/**
* @param mixed $addTime
*/
public function setAddTime($addTime): void
{
$this->addTime = $addTime;
}
/**
* @return mixed
*/
public function getOutNum()
{
return $this->outNum;
}
/**
* @param mixed $outNum
*/
public function setOutNum($outNum): void
{
$this->outNum = $outNum;
}
}
\ No newline at end of file
<?php
/**
* DBERP 进销存系统
*
* ==========================================================================
* @link http://www.dberp.net/
* @copyright 北京珑大钜商科技有限公司,并保留所有权利。
* @license http://www.dberp.net/license.html License
* ==========================================================================
*
* @author 静静的风 <baron@loongdom.cn>
*
*/
namespace Store\Repository;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
use Store\Entity\AllWarehouseOrderGoods;
class AllWarehouseOrderGoodsRepository extends EntityRepository
{
/**
* 获取入库总数
* @param array $search
* @return \Doctrine\ORM\Query
*/
public function AllWarehouseOrderGoodsAmount($search = [])
{
$query = $this->getEntityManager()->createQueryBuilder()
->select('SUM(o.warehouseGoodsBuyNum)')
->from(AllWarehouseOrderGoods::class, 'o');
$this->querySearchData($search, $query);
$AllWarehouseAmount= $query->getQuery()->getSingleScalarResult();
return $AllWarehouseAmount ? $AllWarehouseAmount : 0;
}
private function querySearchData($search, QueryBuilder $queryBuilder)
{
if(isset($search['all_warehouse_order_goods_id']) && !empty($search['all_warehouse_order_goods_id'])) $queryBuilder->andWhere($queryBuilder->expr()->eq('o.all_warehouse_order_goods_id', $search['all_warehouse_order_goods_id']));
if(isset($search['other_warehouse_order_id']) && !empty($search['other_warehouse_order_id'])) $queryBuilder->andWhere($queryBuilder->expr()->eq('o.otherWarehouseOrderId', $search['other_warehouse_order_id']));
if(isset($search['goods_id']) && !empty($search['goods_id'])) $queryBuilder->andWhere($queryBuilder->expr()->eq('o.goodsId', $search['goods_id']));
if(isset($search['goods_name']) && !empty($search['goods_name'])) $queryBuilder->andWhere($queryBuilder->expr()->like('o.goodsName', "'%".$search['goods_name']."%'"));
if(isset($search['goods_number']) && !empty($search['goods_number'])) $queryBuilder->andWhere($queryBuilder->expr()->like('o.goodsNumber', "'%".$search['goods_number']."%'"));
if(isset($search['goods_spec']) && !empty($search['goods_spec'])) $queryBuilder->andWhere($queryBuilder->expr()->like('o.goodsSpec', "'%".$search['goods_spec']."%'"));
return $queryBuilder;
}
}
\ No newline at end of file
<?php
/**
* DBERP 进销存系统
*
* ==========================================================================
* @link http://www.dberp.net/
* @copyright 北京珑大钜商科技有限公司,并保留所有权利。
* @license http://www.dberp.net/license.html License
* ==========================================================================
*
* @author 静静的风 <baron@loongdom.cn>
*
*/
namespace Store\Service;
use Doctrine\ORM\EntityManager;
use Purchase\Entity\WarehouseOrder;
use Store\Entity\AllWarehouseOrderGoods;
use Store\Entity\Goods;
class AllWarehouseOrderGoodsManager
{
private $entityManager;
public function __construct(
EntityManager $entityManager
)
{
$this->entityManager = $entityManager;
}
/**
* 添加其他入库商品
* @param array $data
* @param $warehouseId
* @param $orderId
* @return void
* @throws \Doctrine\ORM\ORMException
* @throws \Doctrine\ORM\OptimisticLockException
* @throws \Doctrine\Persistence\Mapping\MappingException
*/
public function addAllWarehouseOrderGoods(array $data, $warehouseId, $otherWarehouseOrderId)
{
foreach ($data['goodsId'] as $key => $value) {
$goodsInfo = $this->entityManager->getRepository(Goods::class)->findOneBy(['goodsId' => $value]);
if($goodsInfo) {
$allWarehouseGoods = new AllWarehouseOrderGoods();
$allWarehouseGoods->setAllWarehouseOrderGoodsId(null);
$allWarehouseGoods->setOtherWarehouseOrderId($otherWarehouseOrderId);
$allWarehouseGoods->setWarehouseId($warehouseId);
$allWarehouseGoods->setWarehouseGoodsBuyNum($data['goodsBuyNum'][$key]);
$allWarehouseGoods->setWarehouseGoodsPrice($data['goodsPrice'][$key]);
$allWarehouseGoods->setWarehouseGoodsTax($data['goodsTax'][$key]);
$allWarehouseGoods->setWarehouseGoodsAmount($data['goodsAmount'][$key]);
$allWarehouseGoods->setGoodsId($value);
$allWarehouseGoods->setGoodsName($goodsInfo->getGoodsName());
$allWarehouseGoods->setGoodsNumber($goodsInfo->getGoodsNumber());
$allWarehouseGoods->setGoodsSpec($goodsInfo->getGoodsSpec());
$allWarehouseGoods->setGoodsUnit($goodsInfo->getOneUnit()->getUnitName());
$allWarehouseGoods->setAddTime(time());
$allWarehouseGoods->setOutNum($data['goodsBuyNum'][$key]);
$this->entityManager->persist($allWarehouseGoods);
$this->entityManager->flush();
$this->entityManager->clear(AllWarehouseOrderGoods::class);
}
}
}
/**
* 添加入库商品
* @param $orderGoods
* @param WarehouseOrder $warehouseOrder
* @return bool
*/
public function addAllPurchaseWarehouseOrderGoods($orderGoods, WarehouseOrder $warehouseOrder)
{
//$warehouseGoods = [];
foreach ($orderGoods as $goodsValue) {
$allWarehouseGoods = new AllWarehouseOrderGoods();
$allWarehouseGoods->setAllWarehouseOrderGoodsId(null);
$allWarehouseGoods->setPurchaseWarehouseOrderId($warehouseOrder->getWarehouseOrderId());
$allWarehouseGoods->setWarehouseId($warehouseOrder->getWarehouseId());
$allWarehouseGoods->setWarehouseGoodsBuyNum($goodsValue->getPGoodsBuyNum());
$allWarehouseGoods->setWarehouseGoodsPrice($goodsValue->getPGoodsPrice());
$allWarehouseGoods->setWarehouseGoodsTax($goodsValue->getPGoodsTax());
$allWarehouseGoods->setWarehouseGoodsAmount($goodsValue->getPGoodsAmount());
$allWarehouseGoods->setGoodsId($goodsValue->getGoodsId());
$allWarehouseGoods->setGoodsName($goodsValue->getGoodsName());
$allWarehouseGoods->setGoodsNumber($goodsValue->getGoodsNumber());
$allWarehouseGoods->setGoodsSpec($goodsValue->getGoodsSpec());
$allWarehouseGoods->setGoodsUnit($goodsValue->getGoodsUnit());
$allWarehouseGoods->setAddTime(time());
$allWarehouseGoods->setOutNum($goodsValue->getPGoodsBuyNum());
$this->entityManager->persist($allWarehouseGoods);
$this->entityManager->flush();
//$this->entityManager->clear(AllWarehouseOrderGoods::class);
}
}
}
\ No newline at end of file
<?php
/**
* DBERP 进销存系统
*
* ==========================================================================
* @link http://www.dberp.net/
* @copyright 北京珑大钜商科技有限公司,并保留所有权利。
* @license http://www.dberp.net/license.html License
* ==========================================================================
*
* @author 静静的风 <baron@loongdom.cn>
*
*/
namespace Store\Service\Factory;
use Interop\Container\ContainerInterface;
use Laminas\ServiceManager\Factory\FactoryInterface;
use Store\Service\AllWarehouseOrderGoodsManager;
class AllWarehouseOrderGoodsManagerFactory implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null): AllWarehouseOrderGoodsManager
{
$entityManager = $container->get('doctrine.entitymanager.orm_default');
return new AllWarehouseOrderGoodsManager($entityManager);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment