From 462071ca05c30354057a6eb3839a4dc6ac6f659a Mon Sep 17 00:00:00 2001
From: dsmzx <dsmzx@123.com>
Date: 星期一, 24 六月 2024 11:33:16 +0800
Subject: [PATCH] 出库/入库 打印
---
service/inventory_report_forms.go | 93 ++++++++++++++++++++++++++++++++++++++--------
1 files changed, 77 insertions(+), 16 deletions(-)
diff --git a/service/inventory_report_forms.go b/service/inventory_report_forms.go
index e83af14..9d5f88d 100644
--- a/service/inventory_report_forms.go
+++ b/service/inventory_report_forms.go
@@ -109,6 +109,14 @@
}
}
data.AvailableNumber = data.Amount.Sub(available)
+
+ if *material.MoreUnit {
+ data.AmountMoreUnits = CreateMoreUnit(data.Amount, material.MoreUnitList)
+ data.AvailableNumberMoreUnits = CreateMoreUnit(data.AvailableNumber, material.MoreUnitList)
+ data.InMoreUnits = CreateMoreUnit(data.In, material.MoreUnitList)
+ data.OutMoreUnits = CreateMoreUnit(data.Out, material.MoreUnitList)
+ }
+
result = append(result, data)
}
return
@@ -142,7 +150,7 @@
//鏌ヨ浜у搧
search = models.NewMaterialSearch()
search.Orm = search.Orm.Model(&models.Material{}).
- Select(`material.id, material.name, material.cost, material.amount, material.unit, wms_product_category.name as category_name `).
+ Select(`material.id, material.name, material.cost, material.amount, material.unit, material.more_unit, material.more_unit_value, wms_product_category.name as category_name `).
Joins("left join wms_product_category on material.category_id = wms_product_category.id")
if len(params.CategoryIds) > 0 {
search.Orm.Where("material.category_id in (?)", params.CategoryIds)
@@ -196,25 +204,78 @@
f := excelize.NewFile()
// 鑷畾涔夎〃澶�
- headers := []string{"浜у搧", "浜у搧绫诲埆", "鍗曚綅鎴愭湰", "鎬讳环鍊�", "鍦ㄥ簱", "鍙敤搴撳瓨", "鍏ュ簱", "鍑哄簱", "鍗曚綅"}
-
+ headers := []string{"浜у搧", "浜у搧绫诲埆", "鍗曚綅鎴愭湰", "鎬讳环鍊�", "鍦ㄥ簱", "鍙敤搴撳瓨", "鍏ュ簱", "鍑哄簱"}
// 璁剧疆琛ㄥご
for i, header := range headers {
- cell := getColumnAlphabet(i+1) + "1"
+ cell := getColumnAlphabet(i) + "1"
f.SetCellValue("Sheet1", cell, header)
}
+ f.SetCellValue("Sheet1", getColumnAlphabet(0)+"1", "浜у搧")
+ f.SetCellValue("Sheet1", getColumnAlphabet(1)+"1", "浜у搧绫诲埆")
+ f.SetCellValue("Sheet1", getColumnAlphabet(2)+"1", "鍗曚綅鎴愭湰")
+ f.SetCellValue("Sheet1", getColumnAlphabet(3)+"1", "鎬讳环鍊�")
+ f.SetCellValue("Sheet1", getColumnAlphabet(4)+"1", "鍦ㄥ簱")
+ f.MergeCell("Sheet1", getColumnAlphabet(4)+"1", getColumnAlphabet(7)+"1") // 鍚堝苟鍗曞厓鏍�
+ f.SetCellValue("Sheet1", getColumnAlphabet(8)+"1", "鍙敤搴撳瓨")
+ f.MergeCell("Sheet1", getColumnAlphabet(8)+"1", getColumnAlphabet(11)+"1") // 鍚堝苟鍗曞厓鏍�
+ f.SetCellValue("Sheet1", getColumnAlphabet(12)+"1", "鍏ュ簱")
+ f.MergeCell("Sheet1", getColumnAlphabet(12)+"1", getColumnAlphabet(15)+"1") // 鍚堝苟鍗曞厓鏍�
+ f.SetCellValue("Sheet1", getColumnAlphabet(16)+"1", "鍑哄簱")
+ f.MergeCell("Sheet1", getColumnAlphabet(16)+"1", getColumnAlphabet(19)+"1") // 鍚堝苟鍗曞厓鏍�
+
+ unitData := []string{"浠�", "鍖�", "绫�", "閲嶉噺"}
+ for i, header := range unitData {
+ f.SetCellValue("Sheet1", getColumnAlphabet(i+4)+"2", header)
+ f.SetCellValue("Sheet1", getColumnAlphabet(i+8)+"2", header)
+ f.SetCellValue("Sheet1", getColumnAlphabet(i+12)+"2", header)
+ f.SetCellValue("Sheet1", getColumnAlphabet(i+16)+"2", header)
+ }
+
+ // 璁剧疆琛ㄥご鏍峰紡
+ style := &excelize.Style{
+ Border: nil,
+ Fill: excelize.Fill{
+ Type: "pattern",
+ Pattern: 1,
+ Shading: 0,
+ },
+ Font: &excelize.Font{
+ Bold: true,
+ },
+ Alignment: &excelize.Alignment{
+ Horizontal: "center",
+ },
+ }
+ titleStyle, err := f.NewStyle(style)
+ if err != nil {
+ return
+ }
+
+ lastColumn := getColumnAlphabet(19)
+ f.SetCellStyle("Sheet1", "A1", lastColumn+"2", titleStyle)
+ // 璁剧疆鍒楀
+ f.SetColWidth("Sheet1", "A", "D", 30)
+ f.SetColWidth("Sheet1", "E", lastColumn, 15)
+
for i, v := range dataList {
- column := strconv.Itoa(i + 2)
- f.SetCellValue("Sheet1", "A"+column, v.ProductName)
- f.SetCellValue("Sheet1", "B"+column, v.ProductType)
- f.SetCellValue("Sheet1", "C"+column, v.Cost)
- f.SetCellValue("Sheet1", "D"+column, v.Value)
- f.SetCellValue("Sheet1", "E"+column, v.Amount)
- f.SetCellValue("Sheet1", "F"+column, v.AvailableNumber)
- f.SetCellValue("Sheet1", "G"+column, v.In)
- f.SetCellValue("Sheet1", "H"+column, v.Out)
- f.SetCellValue("Sheet1", "I"+column, v.Unit)
+ column := strconv.Itoa(i + 3)
+ f.SetCellValue("Sheet1", getColumnAlphabet(0)+column, v.ProductName)
+ f.SetCellValue("Sheet1", getColumnAlphabet(1)+column, v.ProductType)
+ f.SetCellValue("Sheet1", getColumnAlphabet(2)+column, v.Cost)
+ f.SetCellValue("Sheet1", getColumnAlphabet(3)+column, v.Value)
+
+ f.SetCellValue("Sheet1", getColumnAlphabet(4)+column, v.Amount)
+ FillMoreUnitToExcel(v.Amount, v.AmountMoreUnits, 5, i+3, f)
+
+ f.SetCellValue("Sheet1", getColumnAlphabet(8)+column, v.AvailableNumber)
+ FillMoreUnitToExcel(v.AvailableNumber, v.AvailableNumberMoreUnits, 9, i+3, f)
+
+ f.SetCellValue("Sheet1", getColumnAlphabet(12)+column, v.In)
+ FillMoreUnitToExcel(v.In, v.AmountMoreUnits, 13, i+3, f)
+
+ f.SetCellValue("Sheet1", getColumnAlphabet(16)+column, v.Out)
+ FillMoreUnitToExcel(v.Out, v.AmountMoreUnits, 17, i+3, f)
}
fileName = fmt.Sprintf("搴撳瓨鎶ヨ〃%s.xlsx", time.Now().Format("2006-01-02-1504"))
@@ -229,7 +290,7 @@
func getColumnAlphabet(index int) string {
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if index <= 26 {
- return string(alphabet[index-1])
+ return string(alphabet[index])
}
- return getColumnAlphabet((index-1)/26) + getColumnAlphabet((index-1)%26+1)
+ return getColumnAlphabet((index)/26) + getColumnAlphabet((index)%26+1)
}
--
Gitblit v1.8.0