Bläddra i källkod

### 1.2.4 (2025-05-19)

- Rozšíření podpory přípravy balíčků k tisku o genenrování digitálního obsahu podle cílového emailu
- Přidán do konfigurace email a identifikace formátu digitálního obsahu
Dalibor Votruba 1 år sedan
förälder
incheckning
cfb02a7eba

+ 6 - 0
App.config

@@ -83,6 +83,12 @@
             <setting name="LabelAggegationDataExpression" serializeAs="String">
                 <value>prod_var_type_list={prod_var_type} : {qty}{cr}</value>
             </setting>
+            <setting name="MapColEmail" serializeAs="String">
+                <value>email</value>
+            </setting>
+            <setting name="FormatDigitalContains" serializeAs="String">
+                <value>Digitální data</value>
+            </setting>
         </qdr.app.studiou.orders2printpack.Properties.AppSettings>
     </userSettings>
 </configuration>

+ 11 - 1
FormBatch.cs

@@ -372,6 +372,9 @@ namespace qdr.app.studiou.orders2printpack
                     var sourcePath = row[_sourceColOrdinals[CS_COL_SOURCE_PATH]]?.ToString();
                     var sourceExt = _fs.Path.GetExtension(sourcePath);
                     var sourceFileName = _fs.Path.GetFileNameWithoutExtension(sourcePath);
+                    var sourceEmail = row[_sourceColOrdinals[AppSettings.Default.MapColEmail]]?.ToString();
+                    var sourceFormat = row[_sourceColOrdinals[AppSettings.Default.MapColProductFormat]]?.ToString();
+                    var isDigital = (string.IsNullOrEmpty(sourceFormat) ? false : sourceFormat.Contains(AppSettings.Default.FormatDigitalContains, StringComparison.CurrentCultureIgnoreCase)) && !string.IsNullOrEmpty(sourceEmail);
 
                     ApplyRowToParametrizedString(row, outputFileNameBuilder);
                     outputFileNameBuilder.AddOrSetParameter(CS_TAG_EXT, sourceExt!);
@@ -382,10 +385,17 @@ namespace qdr.app.studiou.orders2printpack
                         outputFileNameBuilder.AddOrSetParameter(CS_TAG_ORDINAL, i.ToString().PadLeft(3, '0'));
                         var outputFileName = _fs.Path.GetFileName(outputFileNameBuilder.ToString());
                         var outputFilePath = _fs.Path.GetDirectoryName(outputFileNameBuilder.ToString())!;
-
+                        
                         var outputFileNameSanitized = FileUtils.SanitizedFileName(_fs, outputFileName);
                         var outputPath = _fs.Path.Combine(_outputPath, _fs.Path.Combine(outputFilePath, outputFileNameSanitized));
+                        if (isDigital)
+                        {
+                            outputPath = _fs.Path.Combine(_outputPath,outputFilePath);
+                            outputPath = _fs.Path.Combine(outputPath, sourceEmail!);
+                            outputPath = _fs.Path.Combine(outputPath, outputFileNameSanitized);
+                        }
                         _fs.Directory.CreateDirectory(_fs.Path.GetDirectoryName(outputPath)!);
+                 
                         _fs.File.Copy(sourcePath!, outputPath, true);
                         Log($"Soubor '{outputPath}' vytvořen.");
                         row.SetField(_sourceColOrdinals[CS_COL_OUTPUT], outputPath);

+ 25 - 1
Properties/AppSettings.Designer.cs

@@ -12,7 +12,7 @@ namespace qdr.app.studiou.orders2printpack.Properties {
     
     
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.13.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")]
     internal sealed partial class AppSettings : global::System.Configuration.ApplicationSettingsBase {
         
         private static AppSettings defaultInstance = ((AppSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new AppSettings())));
@@ -324,5 +324,29 @@ namespace qdr.app.studiou.orders2printpack.Properties {
                 this["LabelAggegationDataExpression"] = value;
             }
         }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("email")]
+        public string MapColEmail {
+            get {
+                return ((string)(this["MapColEmail"]));
+            }
+            set {
+                this["MapColEmail"] = value;
+            }
+        }
+        
+        [global::System.Configuration.UserScopedSettingAttribute()]
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+        [global::System.Configuration.DefaultSettingValueAttribute("Digitální data")]
+        public string FormatDigitalContains {
+            get {
+                return ((string)(this["FormatDigitalContains"]));
+            }
+            set {
+                this["FormatDigitalContains"] = value;
+            }
+        }
     }
 }

+ 6 - 0
Properties/AppSettings.settings

@@ -78,5 +78,11 @@
     <Setting Name="LabelAggegationDataExpression" Type="System.String" Scope="User">
       <Value Profile="(Default)">prod_var_type_list={prod_var_type} : {qty}{cr}</Value>
     </Setting>
+    <Setting Name="MapColEmail" Type="System.String" Scope="User">
+      <Value Profile="(Default)">email</Value>
+    </Setting>
+    <Setting Name="FormatDigitalContains" Type="System.String" Scope="User">
+      <Value Profile="(Default)">Digitální data</Value>
+    </Setting>
   </Settings>
 </SettingsFile>

+ 4 - 0
README.md

@@ -3,6 +3,10 @@
 Proprietální řešení zpracování WooCommerce objednávek pro online tiskovou službu (WinForm)
 
 ## Changelog
+### 1.2.4 (2025-05-19)
+- Rozšíření podpory přípravy balíčků k tisku o genenrování digitálního obsahu podle cílového emailu
+- Přidán do konfigurace email a identifikace formátu digitálního obsahu
+
 ### 1.2.3 (2025-04-28)
 - Editace hodnot Minimum/Maximum na Produktu a Variantě
 - Editace RAW hodnot pro Kategorie produktu ,variant a mapování Batch CSV sloupců + delimiter

+ 4 - 4
Setup/Setup.vdproj

@@ -198,15 +198,15 @@
         {
         "Name" = "8:Microsoft Visual Studio"
         "ProductName" = "8:Order2PrintPack"
-        "ProductCode" = "8:{EA3A6D9B-7565-4383-81DF-7EDF873550A3}"
-        "PackageCode" = "8:{538CF674-9DA2-4BCB-92F3-ADD3A4DA1CA4}"
+        "ProductCode" = "8:{018EA4A9-A387-4A8F-92D1-56ECDD3193FB}"
+        "PackageCode" = "8:{7D3C67DE-A909-492F-B232-D8C940908B11}"
         "UpgradeCode" = "8:{38F8DC1E-8290-49ED-A3D2-32BC6DD74325}"
         "AspNetVersion" = "8:2.0.50727.0"
         "RestartWWWService" = "11:FALSE"
         "RemovePreviousVersions" = "11:TRUE"
         "DetectNewerInstalledVersion" = "11:TRUE"
         "InstallAllUsers" = "11:FALSE"
-        "ProductVersion" = "8:1.2.3"
+        "ProductVersion" = "8:1.2.4"
         "Manufacturer" = "8:Quadarax"
         "ARPHELPTELEPHONE" = "8:"
         "ARPHELPLINK" = "8:"
@@ -734,7 +734,7 @@
         {
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_401EDA760B6F46889C1BF580F3C37DBF"
             {
-            "SourcePath" = "8:..\\obj\\x64\\Release\\net9.0-windows7.0\\apphost.exe"
+            "SourcePath" = "8:..\\obj\\x64\\Debug\\net9.0-windows7.0\\apphost.exe"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_96DC0B7F01834A1BA713E7E8A0904D3E"

+ 61 - 5
dlgEditCfg.Designer.cs

@@ -49,11 +49,16 @@
             label9 = new Label();
             tbCSVDelimiter = new TextBox();
             label10 = new Label();
+            tbEmail = new TextBox();
+            label11 = new Label();
+            label12 = new Label();
+            tbFormatDigital = new TextBox();
+            label13 = new Label();
             SuspendLayout();
             // 
             // butCancel
             // 
-            butCancel.Location = new Point(392, 329);
+            butCancel.Location = new Point(392, 394);
             butCancel.Margin = new Padding(3, 2, 3, 2);
             butCancel.Name = "butCancel";
             butCancel.Size = new Size(82, 22);
@@ -64,7 +69,7 @@
             // 
             // butOk
             // 
-            butOk.Location = new Point(12, 329);
+            butOk.Location = new Point(12, 394);
             butOk.Margin = new Padding(3, 2, 3, 2);
             butOk.Name = "butOk";
             butOk.Size = new Size(82, 22);
@@ -214,7 +219,7 @@
             // 
             // tbCSVDelimiter
             // 
-            tbCSVDelimiter.Location = new Point(232, 282);
+            tbCSVDelimiter.Location = new Point(337, 282);
             tbCSVDelimiter.Name = "tbCSVDelimiter";
             tbCSVDelimiter.Size = new Size(100, 23);
             tbCSVDelimiter.TabIndex = 22;
@@ -222,18 +227,64 @@
             // label10
             // 
             label10.AutoSize = true;
-            label10.Location = new Point(231, 264);
+            label10.Location = new Point(336, 264);
             label10.Name = "label10";
             label10.Size = new Size(79, 15);
             label10.TabIndex = 21;
             label10.Text = "CSV Delimiter";
             // 
+            // tbEmail
+            // 
+            tbEmail.Location = new Point(232, 282);
+            tbEmail.Name = "tbEmail";
+            tbEmail.Size = new Size(100, 23);
+            tbEmail.TabIndex = 24;
+            // 
+            // label11
+            // 
+            label11.AutoSize = true;
+            label11.Location = new Point(231, 264);
+            label11.Name = "label11";
+            label11.Size = new Size(36, 15);
+            label11.TabIndex = 23;
+            label11.Text = "Email";
+            // 
+            // label12
+            // 
+            label12.AutoSize = true;
+            label12.Location = new Point(19, 320);
+            label12.Name = "label12";
+            label12.Size = new Size(45, 15);
+            label12.TabIndex = 25;
+            label12.Text = "Ostatní";
+            // 
+            // tbFormatDigital
+            // 
+            tbFormatDigital.Location = new Point(20, 355);
+            tbFormatDigital.Name = "tbFormatDigital";
+            tbFormatDigital.Size = new Size(100, 23);
+            tbFormatDigital.TabIndex = 27;
+            // 
+            // label13
+            // 
+            label13.AutoSize = true;
+            label13.Location = new Point(19, 337);
+            label13.Name = "label13";
+            label13.Size = new Size(95, 15);
+            label13.TabIndex = 26;
+            label13.Text = "Formát: Digitální";
+            // 
             // dlgEditCfg
             // 
             AutoScaleDimensions = new SizeF(7F, 15F);
             AutoScaleMode = AutoScaleMode.Font;
-            ClientSize = new Size(498, 407);
+            ClientSize = new Size(503, 488);
             ControlBox = false;
+            Controls.Add(tbFormatDigital);
+            Controls.Add(label13);
+            Controls.Add(label12);
+            Controls.Add(tbEmail);
+            Controls.Add(label11);
             Controls.Add(tbCSVDelimiter);
             Controls.Add(label10);
             Controls.Add(tbProductName);
@@ -287,5 +338,10 @@
         private Label label9;
         private TextBox tbCSVDelimiter;
         private Label label10;
+        private TextBox tbEmail;
+        private Label label11;
+        private Label label12;
+        private TextBox tbFormatDigital;
+        private Label label13;
     }
 }

+ 4 - 0
dlgEditCfg.cs

@@ -34,6 +34,8 @@ namespace qdr.app.studiou.orders2printpack
             AppSettings.Default.MapColProductFormat = tbProductFormat.Text;
             AppSettings.Default.MapColProductName = tbProductName.Text;
             AppSettings.Default.CSVDelimiter = tbCSVDelimiter.Text;
+            AppSettings.Default.MapColEmail = tbEmail.Text;
+            AppSettings.Default.FormatDigitalContains = tbFormatDigital.Text;
             AppSettings.Default.Save();
             Close();
         }
@@ -55,6 +57,8 @@ namespace qdr.app.studiou.orders2printpack
             tbProductFormat.Text = AppSettings.Default.MapColProductFormat;
             tbProductName.Text = AppSettings.Default.MapColProductName;
             tbCSVDelimiter.Text = AppSettings.Default.CSVDelimiter;
+            tbEmail.Text = AppSettings.Default.MapColEmail;
+            tbFormatDigital.Text = AppSettings.Default.FormatDigitalContains;
         }
         #endregion
 

+ 1 - 1
qdr.app.studiou.orders2printpack.csproj

@@ -18,7 +18,7 @@
     <Platforms>AnyCPU;x86;x64</Platforms>
     <AssemblyVersion>1.2.0.0</AssemblyVersion>
     <FileVersion>1.2.0.0</FileVersion>
-    <Version>1.2.3</Version>
+    <Version>1.2.4</Version>
 	<ApplicationHighDpiMode>SystemAware</ApplicationHighDpiMode>
     <ForceDesignerDpiUnaware>true</ForceDesignerDpiUnaware>
   </PropertyGroup>