业务背景:同一个公司代码下存在大量的库存调拨,一件产品调拨到另一个厂,另一个厂生产之后,又会调回原厂,也存在吊到另一个厂生产之后直接销售出去的,不调回原厂。
需求:两个工厂需要单独出具利润考核,需要把调拨的这部分作为两个厂的收入和成本,需要按内部交易价提现两个工厂的利润以及存货相关数据,但在对外财报层面不能虚增销售,不能虚增利润,不能虚增库存!
系统为 sap 系统!
业务背景:同一个公司代码下存在大量的库存调拨,一件产品调拨到另一个厂,另一个厂生产之后,又会调回原厂,也存在吊到另一个厂生产之后直接销售出去的,不调回原厂。
需求:两个工厂需要单独出具利润考核,需要把调拨的这部分作为两个厂的收入和成本,需要按内部交易价提现两个工厂的利润以及存货相关数据,但在对外财报层面不能虚增销售,不能虚增利润,不能虚增库存!
系统为 sap 系统!
关注让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
若您愿意支持,欢迎直接打赏,将不胜感激!
.
您面临的是同一公司代码下两个工厂之间的库存调拨问题,需要满足:
在SAP等ERP系统中,可以通过以下配置实现:
-- 创建特殊库存类型
CREATE TABLE internal_transfer_stock (
material_id VARCHAR(20),
from_plant VARCHAR(10),
to_plant VARCHAR(10),
transfer_price DECIMAL(12,2),
transfer_date DATE,
quantity DECIMAL(10,3),
status VARCHAR(20)
);
-- 创建内部结算科目
CREATE TABLE internal_settlement_accounts (
plant VARCHAR(10),
revenue_account VARCHAR(20),
cost_account VARCHAR(20),
inventory_account VARCHAR(20)
);

public class InternalTransferService {
// 处理调拨业务
public TransferResult processTransfer(TransferRequest request) {
// 1. 减少调出工厂库存
inventoryService.decreaseStock(request.getFromPlant(), request.getMaterial(), request.getQuantity());
// 2. 增加调入工厂库存
inventoryService.increaseStock(request.getToPlant(), request.getMaterial(), request.getQuantity());
// 3. 生成内部结算凭证
accountingService.createInternalSettlement(
request.getFromPlant(),
request.getToPlant(),
request.getTransferPrice(),
request.getQuantity());
return new TransferResult(true, "调拨成功");
}
// 合并报表时抵消内部交易
public void eliminateInternalTransactions(FinancialReport report) {
// 抵消内部应收应付
report.eliminate("内部应收款", "内部应付款");
// 抵消内部收入成本
report.eliminate("内部销售收入", "内部销售成本");
}
}

通过以上方案,可以实现: