diff --git a/modules/axelor-open-suite/axelor-maintenance/build.gradle b/modules/axelor-open-suite/axelor-maintenance/build.gradle new file mode 100644 index 00000000..9821263f --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/build.gradle @@ -0,0 +1,16 @@ +apply plugin: "com.axelor.app-module" + +apply from: "../version.gradle" + +apply { + version = openSuiteVersion +} + +axelor { + title "Axelor Maintenance" + description "Computerized Maintenance Management System" +} + +dependencies { + compile project(":modules:axelor-production") +} diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/img/app-maintenance.png b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/img/app-maintenance.png new file mode 100644 index 00000000..ba88d1da Binary files /dev/null and b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/img/app-maintenance.png differ diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/en/base_sequence.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/en/base_sequence.csv new file mode 100644 index 00000000..ec90758d --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/en/base_sequence.csv @@ -0,0 +1,2 @@ +"importId";"codeSelect";"name";"nextNum";"padding";"prefixe";"suffixe";"toBeAdded";"yearlyResetOk" +1000;"maintenance";"Maintenance";1;5;"CM";;1;0 diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/fr/base_sequence.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/fr/base_sequence.csv new file mode 100644 index 00000000..ec90758d --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/fr/base_sequence.csv @@ -0,0 +1,2 @@ +"importId";"codeSelect";"name";"nextNum";"padding";"prefixe";"suffixe";"toBeAdded";"yearlyResetOk" +1000;"maintenance";"Maintenance";1;5;"CM";;1;0 diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/maintenance-config.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/maintenance-config.xml new file mode 100644 index 00000000..68bd8cda --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/init-data/maintenance-config.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/maintenance.yml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/maintenance.yml new file mode 100644 index 00000000..6c64bc52 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/apps/maintenance.yml @@ -0,0 +1,13 @@ +--- +name: Maintenance +code: maintenance +typeSelect: standard +installOrder: 2350 +description: | + Computerized Maintenance Management System +image: app-maintenance.png +modules: + axelor-maintenance +dependsOn: + - production +sequence: 52 diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input-config.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input-config.xml new file mode 100644 index 00000000..1c2c6fd5 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input-config.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/auth_permission.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/auth_permission.csv new file mode 100644 index 00000000..d3212d66 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/auth_permission.csv @@ -0,0 +1,2 @@ +"name";"object";"canRead";"canWrite";"canCreate";"canRemove";"canExport";"readCondition";"readParams";"writeCondition";"writeParams";"createCondition";"createParams";"removeCondition";"removeParams" +"perm.maintenance.all";"com.axelor.apps.maintenance.db.*";"true";"true";"true";"true";"true";;;;;;;; diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/auth_role.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/auth_role.csv new file mode 100644 index 00000000..840cfe31 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/auth_role.csv @@ -0,0 +1,2 @@ +"name";"description";"permissions" +"role.admin";"Access to all objects for all modules";"perm.maintenance.all" diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/meta_helpEN.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/meta_helpEN.csv new file mode 100644 index 00000000..85250f8b --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/meta_helpEN.csv @@ -0,0 +1,5 @@ +"module";"object";"view";"field";"help" +"axelor-maintenance";"Machine";"maintenance-machine-form";"startingDuration";"The time the machine starts before it can be used." +"axelor-maintenance";"Machine";"maintenance-machine-form";"setupDuration";"Time between two cycles. This is the time to wait until the end of a cycle to start a new cycle." +"axelor-maintenance";"Machine";"maintenance-machine-form";"endingDuration";"Ending duration of the machine." +"axelor-maintenance";"Machine";"maintenance-machine-form";"weeklyPlanning";"Enables to select a general planning of machine availability (full-time or part-time). " diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/meta_helpFR.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/meta_helpFR.csv new file mode 100644 index 00000000..8ef3d072 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/data-init/input/meta_helpFR.csv @@ -0,0 +1,5 @@ +"module";"object";"view";"field";"help" +"axelor-maintenance";"Machine";"maintenance-machine-form";"startingDuration";"Temps que met la machine à démarrer avant de pouvoir être utilisée." +"axelor-maintenance";"Machine";"maintenance-machine-form";"setupDuration";"Temps inter-opérations. Il s'agit du temps qu'il faut attendre après la fin d'une opération afin de pouvoir en commencer une nouvelle." +"axelor-maintenance";"Machine";"maintenance-machine-form";"endingDuration";"Temps de clôture de la machine." +"axelor-maintenance";"Machine";"maintenance-machine-form";"weeklyPlanning";"Permet de sélectionner un planning général de disponibilité de la machine (mi-temps ou pleins-temps) ." diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/BillOfMaterial.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/BillOfMaterial.xml new file mode 100644 index 00000000..16906697 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/BillOfMaterial.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/EquipementMaintenance.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/EquipementMaintenance.xml new file mode 100644 index 00000000..5c4fea96 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/EquipementMaintenance.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/MaintenanceCategory.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/MaintenanceCategory.xml new file mode 100644 index 00000000..9bcfac1f --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/MaintenanceCategory.xml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/MaintenanceRequest.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/MaintenanceRequest.xml new file mode 100644 index 00000000..5de7d803 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/MaintenanceRequest.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/ManufOrder.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/ManufOrder.xml new file mode 100644 index 00000000..17f9afd8 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/ManufOrder.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/ProdProcess.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/ProdProcess.xml new file mode 100644 index 00000000..dceca47a --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/domains/ProdProcess.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages.csv new file mode 100644 index 00000000..721f4313 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages.csv @@ -0,0 +1,113 @@ +"key","message","comment","context" +"Action",,, +"Actions",,, +"All reached",,, +"Allocate all",,, +"Alternative Bill of materials",,, +"App",,, +"App maintenance",,, +"Assigned to",,, +"BOM.machine",,, +"Bill of materials",,, +"Bills of material",,, +"Bills of materials",,, +"Cancel",,, +"Cancel Reason",,, +"Cancel reservation",,, +"Canceled",,, +"Complete",,, +"Completed",,, +"Compute cost price",,, +"Configuration",,, +"Consumed products",,, +"Corrective",,, +"Cost",,, +"Create maintenance request",,, +"Current requests",,, +"Cycles",,, +"Dates",,, +"Days",,, +"Deallocate all",,, +"Default Bill of materials",,, +"Done on",,, +"Duration (Hours)",,, +"End date",,, +"Equipement maintenance",,, +"Equipement maintenances",,, +"Event end date",,, +"Event start date",,, +"Expected date",,, +"Finish",,, +"First reached",,, +"General BoM",,, +"Generate new version",,, +"Generate request each",,, +"Hours of production",,, +"In progress",,, +"MO's comment from sale order",,, +"MO's comment from sale order line",,, +"Machine",,, +"Machine type",,, +"Machines",,, +"Machines unavailable",,, +"Maintenance",,, +"Maintenance Category",,, +"Maintenance File",,, +"Maintenance Procedure",,, +"Maintenance Request",,, +"Maintenance Requests",,, +"Maintenance comments",,, +"Maintenance order",,, +"Maintenance orders",,, +"Maintenance periods",,, +"Maintenance task",,, +"ManufOrder.machine",,, +"ManufOrder.machineType",,, +"Manufacturing Order",,, +"Merged MO",,, +"Missing equipement maintenance sequence.",,, +"My Maintenance requests",,, +"Name",,, +"Next maintenance date",,, +"Note",,, +"Number of phases",,, +"Options",,, +"Outsourced",,, +"Partial Finish",,, +"Pause",,, +"Permanent",,, +"Phases",,, +"Plan",,, +"Planned dates",,, +"Pre-fill operations",,, +"Preventive",,, +"Print",,, +"Print Production Process",,, +"ProdProcess.machine",,, +"Product",,, +"Production process",,, +"Production processes",,, +"Real dates",,, +"Replan",,, +"Reports",,, +"Request By",,, +"Request date",,, +"Request history",,, +"Reserve all",,, +"Residual products",,, +"Resume",,, +"Sequence",,, +"Start",,, +"Start date",,, +"State",,, +"Total Planned Duration",,, +"Total Real Duration",,, +"Type",,, +"Update planned quantities (Components and FP)",,, +"Update product cost price",,, +"Update real quantities (Components and FP)",,, +"Version management",,, +"equipement.maintenance.code",,, +"equipement.maintenance.image",,, +"equipement.maintenance.name",,, +"maintenance.request.planned",,, diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages_en.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages_en.csv new file mode 100644 index 00000000..aaab4a72 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages_en.csv @@ -0,0 +1,113 @@ +"key","message","comment","context" +"Action",,, +"Actions",,, +"All reached",,, +"Allocate all",,, +"Alternative Bill of materials",,, +"App",,, +"App maintenance",,, +"Assigned to",,, +"BOM.machine",,, +"Bill of materials",,, +"Bills of material",,, +"Bills of materials",,, +"Cancel",,, +"Cancel Reason",,, +"Cancel reservation",,, +"Canceled",,, +"Complete",,, +"Completed",,, +"Compute cost price",,, +"Configuration",,, +"Consumed products",,, +"Corrective",,, +"Cost",,, +"Create maintenance request",,, +"Current requests",,, +"Cycles",,, +"Dates",,, +"Days",,, +"Deallocate all",,, +"Default Bill of materials",,, +"Done on",,, +"Duration (Hours)",,, +"End date",,, +"Equipement maintenance",,, +"Equipement maintenances",,, +"Event end date",,, +"Event start date",,, +"Expected date",,, +"Finish",,, +"First reached",,, +"General BoM",,, +"Generate new version",,, +"Generate request each",,, +"Hours of production",,, +"In progress",,, +"MO's comment from sale order",,, +"MO's comment from sale order line",,, +"Machine",,, +"Machine type",,, +"Machines",,, +"Machines unavailable",,, +"Maintenance",,, +"Maintenance Category",,, +"Maintenance File",,, +"Maintenance Procedure",,, +"Maintenance Request",,, +"Maintenance Requests",,, +"Maintenance comments",,, +"Maintenance order",,, +"Maintenance orders",,, +"Maintenance periods",,, +"Maintenance task",,, +"ManufOrder.machine","Machine",, +"ManufOrder.machineType","Machine Type",, +"Manufacturing Order",,, +"Merged MO",,, +"Missing equipement maintenance sequence.",,, +"My Maintenance requests",,, +"Name",,, +"Next maintenance date",,, +"Note",,, +"Number of phases",,, +"Options",,, +"Outsourced",,, +"Partial Finish",,, +"Pause",,, +"Permanent",,, +"Phases",,, +"Plan",,, +"Planned dates",,, +"Pre-fill operations",,, +"Preventive",,, +"Print",,, +"Print Production Process",,, +"ProdProcess.machine",,, +"Product",,, +"Production process",,, +"Production processes",,, +"Real dates",,, +"Replan",,, +"Reports",,, +"Request By",,, +"Request date",,, +"Request history",,, +"Reserve all",,, +"Residual products",,, +"Resume",,, +"Sequence",,, +"Start",,, +"Start date",,, +"State",,, +"Total Planned Duration",,, +"Total Real Duration",,, +"Type",,, +"Update planned quantities (Components and FP)",,, +"Update product cost price",,, +"Update real quantities (Components and FP)",,, +"Version management",,, +"equipement.maintenance.code","Code",, +"equipement.maintenance.image","Image",, +"equipement.maintenance.name","Name",, +"maintenance.request.planned","Planned",, diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages_fr.csv b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages_fr.csv new file mode 100644 index 00000000..a8579e61 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/i18n/messages_fr.csv @@ -0,0 +1,113 @@ +"key","message","comment","context" +"Action",,, +"Actions",,, +"All reached","Si toutes les conditions sont atteintes",, +"Allocate all",,, +"Alternative Bill of materials",,, +"App",,, +"App maintenance",,, +"Assigned to","Assigné à",, +"BOM.machine",,, +"Bill of materials",,, +"Bills of material",,, +"Bills of materials","Nomenclatures",, +"Cancel",,, +"Cancel Reason",,, +"Cancel reservation",,, +"Canceled",,, +"Complete",,, +"Completed","Terminée",, +"Compute cost price",,, +"Configuration",,, +"Consumed products",,, +"Corrective",,, +"Cost",,, +"Create maintenance request","Créer demande de maintenance",, +"Current requests","Demandes à réaliser",, +"Cycles","Cycles",, +"Dates",,, +"Days","Jours",, +"Deallocate all",,, +"Default Bill of materials",,, +"Done on","Réalisé le ",, +"Duration (Hours)","Durée (Heures)",, +"End date",,, +"Equipement maintenance","Maintenance equipement",, +"Equipement maintenances","Maintenances équipement",, +"Event end date",,, +"Event start date",,, +"Expected date","Echéance",, +"Finish",,, +"First reached","Si la première condition atteinte",, +"General BoM",,, +"Generate new version",,, +"Generate request each","Générer demande chaque",, +"Hours of production","Heures de production",, +"In progress","En cours",, +"MO's comment from sale order",,, +"MO's comment from sale order line",,, +"Machine",,, +"Machine type","Type de machine",, +"Machines",,, +"Machines unavailable","Indisponibilité des machines",, +"Maintenance","Maintenance",, +"Maintenance Category","Catégorie de maintenance",, +"Maintenance File","Fichier maintenance",, +"Maintenance Procedure","Procedure de maintenance",, +"Maintenance Request","Demande de maintenance",, +"Maintenance Requests","Demande de maintenance",, +"Maintenance comments","Commentaires maintenance",, +"Maintenance order","Ordre de maintenance",, +"Maintenance orders","Ordres de maintenance",, +"Maintenance periods","Périodes de maintenance",, +"Maintenance task","Maintenance à réaliser",, +"ManufOrder.machine","Machine",, +"ManufOrder.machineType","Machine Type",, +"Manufacturing Order","Ordre de Fabrication",, +"Merged MO",,, +"Missing equipement maintenance sequence.","Une séquence pour la maintenance de l'équipement est manquante.",, +"My Maintenance requests","Mes demandes de maintenance",, +"Name",,, +"Next maintenance date","Prochaine date de maintenance",, +"Note",,, +"Number of phases",,, +"Options",,, +"Outsourced",,, +"Partial Finish",,, +"Pause",,, +"Permanent",,, +"Phases",,, +"Plan",,, +"Planned dates",,, +"Pre-fill operations",,, +"Preventive","Préventive",, +"Print",,, +"Print Production Process",,, +"ProdProcess.machine",,, +"Product",,, +"Production process",,, +"Production processes","Gammes",, +"Real dates",,, +"Replan","Replanifier",, +"Reports",,, +"Request By","Demandé par",, +"Request date","Date de la demande",, +"Request history","Historique des actions",, +"Reserve all",,, +"Residual products",,, +"Resume",,, +"Sequence",,, +"Start","Débuter",, +"Start date",,, +"State",,, +"Total Planned Duration",,, +"Total Real Duration",,, +"Type",,, +"Update planned quantities (Components and FP)",,, +"Update product cost price",,, +"Update real quantities (Components and FP)",,, +"Version management",,, +"equipement.maintenance.code","Référence",, +"equipement.maintenance.image","Image",, +"equipement.maintenance.name","Description",, +"maintenance.request.planned","Prévue",, diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceBillOfMaterial.rptdesign b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceBillOfMaterial.rptdesign new file mode 100644 index 00000000..d069d4cf --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceBillOfMaterial.rptdesign @@ -0,0 +1,1007 @@ + + + Eclipse BIRT Designer Version 4.7.0.v201706222054 + + + odaURL + 209 + params["DBName"].value + + + odaUser + 209 + params["UserName"].value + + + odaPassword + 209 + params["Password"].value + + + odaDriverClass + 209 + params["DefaultDriver"].value + + + cm + auto layout + ltr + 96 + + + true + static + true + decimal + true + + simple + false + text-box + + Unformatted + + + + true + static + false + string + true + + fr + + + simple + false + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + false + string + true + + + + + simple + text-box + + Unformatted + + + + true + static + true + string + true + + org.postgresql.Driver + + + simple + text-box + + Unformatted + + + + + + + + disabledMetadataBidiFormatStr + + + disabledContentBidiFormatStr + + + contentBidiFormatStr + ILYNN + + + metadataBidiFormatStr + ILYNN + + + org.postgresql.Driver + jdbc:postgresql://localhost:5432/ + + + + + + + key + dimension + key + key + + + translation + dimension + translation + translation + + + + + param_1 + + string + 12 + 1 + false + true + + + param_2 + Locale + + string + 12 + 2 + true + false + + + + + + 1 + key + string + + + 2 + translation + string + + + + Data Source + + + 1 + key + key + string + 12 + + + 2 + translation + translation + string + 12 + + + + + + 2.0 + + + + In + + + + 1 + + 12 + 0 + 0 + Unknown + + + + + + In + + + + 2 + + 12 + 0 + 0 + Unknown + + + + +]]> + + + nulls lowest + + + id + measure + id + id + + + logo_path + dimension + logo_path + logo_path + + + company_name + dimension + company_name + company_name + + + bom_name + dimension + bom_name + bom_name + + + version_number + measure + version_number + version_number + + + product_name + dimension + product_name + product_name + + + qty + measure + qty + qty + + + unit_name + dimension + unit_name + unit_name + + + prod_process + dimension + prod_process + prod_process + + + machine_type_name + dimension + machine_type_name + machine_type_name + + + + + param_1 + BillOfMaterialId + + decimal + -5 + 1 + true + false + + + + + + 1 + id + decimal + + + 2 + logo_path + string + + + 3 + company_name + string + + + 4 + bom_name + string + + + 5 + version_number + integer + + + 6 + product_name + string + + + 7 + qty + decimal + + + 8 + unit_name + string + + + 9 + prod_process + string + + + 10 + machine_type_name + string + + + + Data Source + + + 1 + id + id + decimal + -5 + + + 2 + logo_path + logo_path + string + 12 + + + 3 + company_name + company_name + string + 12 + + + 4 + bom_name + bom_name + string + 12 + + + 5 + version_number + version_number + integer + 4 + + + 6 + product_name + product_name + string + 12 + + + 7 + qty + qty + decimal + 2 + + + 8 + unit_name + unit_name + string + 12 + + + 9 + prod_process + prod_process + string + 12 + + + 10 + machine_type_name + machine_type_name + string + 12 + + + + + + 2.0 + + + + + + + id + 1 + + -5 + 19 + 0 + NotNullable + + id + + + + id + + 20 + + + + + + + status_select + 3 + + 4 + 10 + 0 + Nullable + + status_select + + + + status_select + + 11 + + + + + + + title_select + 4 + + 12 + 255 + 0 + Nullable + + title_select + + + + title_select + + 255 + + + + + + + name + 5 + + 12 + 255 + 0 + Nullable + + name + + + + name + + 255 + + + + + + + first_name + 6 + + 12 + 255 + 0 + Nullable + + first_name + + + + first_name + + 255 + + + + + + + +]]> + + + + + + + + + + a4 + 0.47625cm + 0.4in + 0.396875cm + 0in + 0.2in + + + + + BillOfMaterialDS + + + id + id + dataSetRow["id"] + decimal + + + logo_path + logo_path + dataSetRow["logo_path"] + string + + + company_name + company_name + dataSetRow["company_name"] + string + + + bom_name + bom_name + dataSetRow["bom_name"] + string + + + version_number + version_number + dataSetRow["version_number"] + integer + + + product_name + product_name + dataSetRow["product_name"] + string + + + qty + qty + dataSetRow["qty"] + decimal + + + unit_name + unit_name + dataSetRow["unit_name"] + string + + + prod_process + prod_process + dataSetRow["prod_process"] + string + + + machine_type_name + dataSetRow["machine_type_name"] + string + + + +
+ + + + + 9.551458333333333cm + + + 9.974791666666667cm + + + 3.5189583333333334cm + + + 91px + 350px + + + all + row["logo_path"] == null + + + file + true + params["AttachmentPath"].value+row["logo_path"] + + + + + 18pt + bold + left + TranslateDS + + + param_1 + + 'BOM.title' + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + 18pt + bold + left + TranslateDS + + + param_1 + + 'ManufOrder.num' + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]" " row._outer["bom_name"]]]> + + + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "BOM.company" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["company_name"]]]> + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "BOM.versionNumber" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["version_number"]]]> + + + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.machineType" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["machine_type_name"]]]> + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.productionProcess" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["prod_process"]]]> + + + + + 1.5610416666666669cm + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "BOM.qty" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["qty"]]]> + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "BOM.unit" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["unit_name"]]]> + + + + + + +
+ + + + + +
+ + + +
+
+ +
diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceManufOrder.rptdesign b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceManufOrder.rptdesign new file mode 100644 index 00000000..580aad6f --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceManufOrder.rptdesign @@ -0,0 +1,2483 @@ + + + Eclipse BIRT Designer Version 4.7.0.v201706222054 + + + queryText + 3692 + + + queryTimeOut + 3692 + + + rowFetchSize + 3692 + + + odaURL + 209 + params["DBName"].value + + + odaUser + 209 + params["UserName"].value + + + odaPassword + 209 + params["Password"].value + + + odaDriverClass + 209 + params["DefaultDriver"].value + + + odaAutoCommit + 209 + + + odaIsolationMode + 209 + + + odaJndiName + 209 + + + OdaConnProfileName + 209 + + + OdaConnProfileStorePath + 209 + + + cm + auto layout + ltr + 96 + + + true + static + true + string + true + + simple + false + text-box + + Unformatted + + + + true + static + false + string + true + + fr + + + simple + false + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + false + string + true + + + + + simple + text-box + + Unformatted + + + + true + static + true + string + true + + org.postgresql.Driver + + + simple + text-box + + Unformatted + + + + static + boolean + true + + False + + + simple + check-box + + + + + + + + disabledMetadataBidiFormatStr + + + disabledContentBidiFormatStr + + + contentBidiFormatStr + ILYNN + + + metadataBidiFormatStr + ILYNN + + + org.postgresql.Driver + jdbc:postgresql://localhost:5432/ + + + + + nulls lowest + + + id + measure + id + id + + + note + dimension + note + note + + + logo_path + dimension + logo_path + logo_path + + + manuf_order_seq + dimension + manuf_order_seq + manuf_order_seq + + + bom_name + dimension + bom_name + bom_name + + + product_name + dimension + product_name + product_name + + + product_code + dimension + product_code + product_code + + + qty + measure + qty + qty + + + unit_code + dimension + unit_code + unit_code + + + prod_process + dimension + prod_process + prod_process + + + planned_start_datet + dimension + planned_start_datet + planned_start_datet + + + bar_code + measure + bar_code + bar_code + + + barcode_picture + dimension + barcode_picture + barcode_picture + + + status_select + measure + status_select + status_select + + + is_cons_pro_on_operation + measure + is_cons_pro_on_operation + is_cons_pro_on_operation + + + machine_name + dimension + machine_name + machine_name + + + + + in + row["id"] + + params["ManufOrderId"].value.split(",") + + true + + + + + + + 1 + id + decimal + + + 2 + note + string + + + 3 + logo_path + string + + + 4 + manuf_order_seq + string + + + 5 + bom_name + string + + + 6 + product_name + string + + + 7 + product_code + string + + + 8 + qty + decimal + + + 9 + unit_code + string + + + 10 + prod_process + string + + + 11 + planned_start_datet + date-time + + + 12 + bar_code + decimal + + + 13 + barcode_picture + string + + + 14 + status_select + integer + + + 15 + is_cons_pro_on_operation + integer + + + 16 + machine_name + string + + + + + Data Source + + + 1 + id + id + decimal + -5 + + + 2 + note + note + string + 12 + + + 3 + logo_path + logo_path + string + 12 + + + 4 + manuf_order_seq + manuf_order_seq + string + 12 + + + 5 + bom_name + bom_name + string + 12 + + + 6 + product_name + product_name + string + 12 + + + 7 + product_code + product_code + string + 12 + + + 8 + qty + qty + decimal + 2 + + + 9 + unit_code + unit_code + string + 12 + + + 10 + prod_process + prod_process + string + 12 + + + 11 + planned_start_datet + planned_start_datet + date-time + 93 + + + 12 + bar_code + bar_code + decimal + -5 + + + 13 + barcode_picture + barcode_picture + string + 12 + + + 14 + status_select + status_select + integer + 4 + + + 15 + is_cons_pro_on_operation + is_cons_pro_on_operation + integer + -7 + + + 16 + machine_name + machine_name + string + 12 + + + + + + 2.0 + + + + + + + id + 1 + + -5 + 19 + 0 + NotNullable + + id + + + + id + + 20 + + + + + + + status_select + 3 + + 4 + 10 + 0 + Nullable + + status_select + + + + status_select + + 11 + + + + + + + title_select + 4 + + 12 + 255 + 0 + Nullable + + title_select + + + + title_select + + 255 + + + + + + + name + 5 + + 12 + 255 + 0 + Nullable + + name + + + + name + + 255 + + + + + + + first_name + 6 + + 12 + 255 + 0 + Nullable + + first_name + + + + first_name + + 255 + + + + + + + +]]> + + + + + key + dimension + key + key + + + translation + dimension + translation + translation + + + + + param_1 + + string + 12 + 1 + false + true + + + param_2 + Locale + + string + 12 + 2 + true + false + + + + + + 1 + key + string + + + 2 + translation + string + + + + Data Source + + + 1 + key + key + string + 12 + + + 2 + translation + translation + string + 12 + + + + + + 2.0 + + + + In + + + + 1 + + 12 + 0 + 0 + Unknown + + + + + + In + + + + 2 + + 12 + 0 + 0 + Unknown + + + + +]]> + + + nulls lowest + + + + param_1 + Locale + + string + 0 + 1 + false + true + false + + + + + Data Source + + + + + nulls lowest + + + manuf_order_id + measure + manuf_order_id + manuf_order_id + + + id + measure + id + id + + + priority + measure + priority + priority + + + prod_process_line + measure + prod_process_line + prod_process_line + + + planned_start_datet + dimension + planned_start_datet + planned_start_datet + + + planned_end_datet + dimension + planned_end_datet + planned_end_datet + + + real_start_datet + dimension + real_start_datet + real_start_datet + + + real_end_datet + dimension + real_end_datet + real_end_datet + + + machine_serial + dimension + machine_serial + machine_serial + + + description_id + measure + description_id + description_id + + + description_prio + measure + description_prio + description_prio + + + file_path + dimension + file_path + file_path + + + description + dimension + description + description + + + is_cons_pro_on_operation + measure + is_cons_pro_on_operation + is_cons_pro_on_operation + + + bar_code_path + dimension + bar_code_path + bar_code_path + + + operation_name + dimension + operation_name + operation_name + + + bar_code + measure + bar_code + bar_code + + + + + + + + 1 + manuf_order_id + decimal + + + 2 + id + decimal + + + 3 + priority + integer + + + 4 + prod_process_line + decimal + + + 5 + planned_start_datet + date-time + + + 6 + planned_end_datet + date-time + + + 7 + real_start_datet + date-time + + + 8 + real_end_datet + date-time + + + 9 + machine_serial + string + + + 10 + description_id + decimal + + + 11 + description_prio + integer + + + 12 + file_path + string + + + 13 + description + string + + + 14 + is_cons_pro_on_operation + integer + + + 15 + bar_code_path + string + + + 16 + operation_name + string + + + 17 + bar_code + decimal + + + + + Data Source + + + + + + + + + + + + a4 + landscape + 0.47625cm + 0.4in + 0.396875cm + 0in + 0.2in + + + 27.887083333333333cm + + 1.6in + + + 15.531041666666667cm + + + middle + 4.101041666666666cm + + + middle + 6% + + + middle + 3% + + + middle + 6% + + + 9pt + + middle + + 44px + 107px + ManufOrderDS + + + all + row["logo_path"] == null + + + + + logo_path + dataSetRow["logo_path"] + string + true + + + file + true + params["AttachmentPath"].value+row["logo_path"] + + + + center + middle + + ManufOrderDS + + + manuf_order_seq + manuf_order_seq + dataSetRow["manuf_order_seq"] + string + true + + + html + row["manuf_order_seq"]]]> + + + + middle + + html + BirtDateTime.now()]]> + + + + middle + + right + page-number + + + + middle + + center + plain + + + + + middle + + left + total-page + + + + + + + + + + 28.1cm + ManufOrderDS + + + id + id + dataSetRow["id"] + decimal + + + logo_path + logo_path + dataSetRow["logo_path"] + string + + + manuf_order_seq + manuf_order_seq + dataSetRow["manuf_order_seq"] + string + + + bom_name + bom_name + dataSetRow["bom_name"] + string + + + product_name + product_name + dataSetRow["product_name"] + string + + + qty + qty + dataSetRow["qty"] + decimal + + + unit_code + unit_code + dataSetRow["unit_code"] + string + + + prod_process + prod_process + dataSetRow["prod_process"] + string + + + planned_start_datet + planned_start_datet + dataSetRow["planned_start_datet"] + date-time + + + bar_code + bar_code + dataSetRow["bar_code"] + decimal + true + + + barcode_picture + barcode_picture + dataSetRow["barcode_picture"] + string + true + + + status_select + status_select + dataSetRow["status_select"] + integer + true + + + is_cons_pro_on_operation + is_cons_pro_on_operation + dataSetRow["is_cons_pro_on_operation"] + boolean + true + + + Column Binding + manuf_order_note + dataSetRow['note'] != null ? dataSetRow['note'] : "" + string + true + + + product_code + product_code + dataSetRow["product_code"] + string + true + + + note + dataSetRow["note"] + string + + + is_cons_pro_on_operation_1 + dataSetRow["is_cons_pro_on_operation"] + integer + + + machine_name + dataSetRow["machine_name"] + string + + + + 11.135416666666666in + + + + always + 15.345833333333335cm + + + 2pt + 2.0729166666666665in + 11.072916666666666in + + 1.6770833333333333in + + + 1.0520833333333333in + + + 1.03125in + + + 0.20833333333333334in + + + 7.752291666666667cm + + + 4.052083333333333in + + + 0.6in + + 6 + 1 + + + right + + + justify + + + + + 18pt + bold + TranslateDS + + + param_1 + + 'ManufOrder.title' + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + + 18pt + bold + TranslateDS + + + param_1 + + 'ManufOrder.num' + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]" " row._outer["manuf_order_seq"]]]> + + + + + + + + 0.2708333333333333in + + 6 + 1 + + + 33% + + + 33% + + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.plannedStartDate" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["planned_start_datet"]]]> + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.quantity" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["qty"]  row._outer["unit_code"]]]> + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.billOfMaterial" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["bom_name"]]]> + + + + + + + 1pt + 2pt + left + inline + TranslateDS + + + param_1 + + "ManufOrder.machine" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] :]]> + + + 3pt + inline + TranslateDS + + + all + row._outer["product_code"] != null + + + + + param_1 + + 'value:'+row["machine_name"] + + + + + + message_key + message_key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + if(row["translation"] != null){row["translation"]}else{row._outer["machine_name"]}]]> + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.origin" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] :]]> + + + + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.productionProcess" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["prod_process"]]]> + + + + + + + + 0.2708333333333333in + + 6 + 1 + + auto + Column Binding + + + + + 0.2708333333333333in + + 6 + 1 + + 12pt + bold + black + underline + none + none + none + none + -2pt + center + TranslateDS + + + param_1 + + 'ManufOrder.operations' + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + +
+ 28.1cm + ManufOrderLineDS + + + manuf_order_id + manuf_order_id + dataSetRow["manuf_order_id"] + decimal + + + id + id + dataSetRow["id"] + decimal + + + priority + priority + dataSetRow["priority"] + integer + + + prod_process_line + prod_process_line + dataSetRow["prod_process_line"] + string + + + planned_start_datet + planned_start_datet + dataSetRow["planned_start_datet"] + date-time + + + planned_end_datet + planned_end_datet + dataSetRow["planned_end_datet"] + date-time + + + real_start_datet + real_start_datet + dataSetRow["real_start_datet"] + date-time + + + real_end_datet + real_end_datet + dataSetRow["real_end_datet"] + date-time + + + status_select + status_select + dataSetRow["status_select"] + string + true + + + machine_name + machine_name + dataSetRow["machine_name"] + string + + + print_planned_date_on_manuf_order + print_planned_date_on_manuf_order + dataSetRow["print_planned_date_on_manuf_order"] + boolean + true + + + + + row["priority"] + asc + -1 + + + + 5% + + + 15% + + + 30% + + + + + all + !row["print_planned_date_on_manuf_order"] + + + 10% + + + + + all + !row["print_planned_date_on_manuf_order"] + + + 10% + + + + + all + row._outer["status_select"] < 4 + + + 10% + + + + + all + row._outer["status_select"] < 4 + + + 10% + + + 10% + +
+ + + + + + 2 + 1 + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.forecast" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + 2 + 1 + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.effective" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.num" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.machine" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.operation" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.startDate" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.endDate" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.startDate" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.endDate" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ManufOrder.status" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + +
+ + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + bold + center + html + row["priority"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + normal + left + html + row["machine_name"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + normal + left + html + row["prod_process_line"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + normal + center + html + row["planned_start_datet"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + normal + center + + html + row["planned_end_datet"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + normal + center + html + row["real_start_datet"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + normal + center + html + row["real_end_datet"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 8.5pt + center + html + row["status_select"]]]> + + + + + +
+ + + + + +
diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceProdProcess.rptdesign b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceProdProcess.rptdesign new file mode 100644 index 00000000..311cc351 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/reports/MaintenanceProdProcess.rptdesign @@ -0,0 +1,2365 @@ + + + Eclipse BIRT Designer Version 4.7.0.v201706222054 + + + odaURL + 209 + params["DBName"].value + + + odaUser + 209 + params["UserName"].value + + + odaPassword + 209 + params["Password"].value + + + odaDriverClass + 209 + params["DefaultDriver"].value + + + cm + auto layout + ltr + 96 + + + true + static + false + string + true + + fr + + + simple + false + text-box + + Unformatted + + + + true + static + string + true + + jdbc:postgresql://localhost:5432/ + + + simple + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + string + true + + simple + text-box + + Unformatted + + + + true + static + false + string + true + + + + + simple + text-box + + Unformatted + + + + true + static + true + string + true + + org.postgresql.Driver + + + simple + text-box + + Unformatted + + + + static + string + true + + 4 + + + simple + text-box + + Unformatted + + + + + + + + disabledMetadataBidiFormatStr + + + disabledContentBidiFormatStr + + + contentBidiFormatStr + ILYNN + + + metadataBidiFormatStr + ILYNN + + + org.postgresql.Driver + jdbc:postgresql://localhost:5432/ + + + + + + + key + dimension + key + key + + + translation + dimension + translation + translation + + + + + param_1 + + string + 12 + 1 + false + true + + + param_2 + Locale + + string + 12 + 2 + true + false + + + + + + 1 + key + string + + + 2 + translation + string + + + + Data Source + + + 1 + key + key + string + 12 + + + 2 + translation + translation + string + 12 + + + + + + 2.0 + + + + In + + + + 1 + + 12 + 0 + 0 + Unknown + + + + + + In + + + + 2 + + 12 + 0 + 0 + Unknown + + + + +]]> + + + + + logo_path + dimension + logo_path + false + logo_path + + + name + dimension + name + false + name + + + code + dimension + code + false + code + + + isconsproonoperation + measure + isconsproonoperation + false + isconsproonoperation + + + outsourcing + measure + outsourcing + false + outsourcing + + + company + dimension + company + false + company + + + location + dimension + location + false + location + + + producedproductlocation + dimension + producedproductlocation + producedproductlocation + + + product + dimension + product + false + product + + + machine_type_name + dimension + machine_type_name + machine_type_name + + + + + param_1 + ProdProcessId + + decimal + -5 + 1 + false + true + false + + + + + + 1 + logo_path + string + + + 2 + name + string + + + 3 + code + string + + + 4 + isconsproonoperation + integer + + + 5 + outsourcing + integer + + + 6 + company + string + + + 7 + location + string + + + 8 + producedproductlocation + string + + + 9 + product + string + + + 10 + machine_type_name + string + + + + Data Source + + + 1 + logo_path + logo_path + string + 12 + + + 2 + name + name + string + 12 + + + 3 + code + code + string + 12 + + + 4 + isconsproonoperation + isconsproonoperation + integer + -7 + + + 5 + outsourcing + outsourcing + integer + -7 + + + 6 + company + company + string + 12 + + + 7 + location + location + string + 12 + + + 8 + producedproductlocation + producedproductlocation + string + 12 + + + 9 + product + product + string + 12 + + + 10 + machine_type_name + machine_type_name + string + 12 + + + + + + + + priority + measure + priority + priority + + + label + dimension + label + label + + + id + measure + id + id + + + workcenter + dimension + workcenter + workcenter + + + outsourcing + measure + outsourcing + outsourcing + + + description + dimension + description + description + + + totaldescription + measure + totaldescription + totaldescription + + + totalproduct + measure + totalproduct + totalproduct + + + + + param_1 + ProdProcessId + + decimal + -5 + 1 + true + false + + + + + + 1 + priority + integer + + + 2 + label + string + + + 3 + id + decimal + + + 4 + workcenter + string + + + 5 + outsourcing + integer + + + 6 + description + string + + + 7 + totaldescription + decimal + + + 8 + totalproduct + decimal + + + + Data Source + + + 1 + priority + priority + integer + 4 + + + 2 + label + label + string + 12 + + + 3 + id + id + decimal + -5 + + + 4 + workcenter + workcenter + string + 12 + + + 5 + outsourcing + outsourcing + integer + -7 + + + 6 + description + description + string + 12 + + + 7 + totaldescription + totaldescription + decimal + -5 + + + 8 + totalproduct + totalproduct + decimal + -5 + + + + + + 2.0 + + + + + + + priority + 1 + + 4 + 10 + 0 + Nullable + + priority + + + + priority + + 11 + + + + + + + label + 2 + + 12 + 255 + 0 + Nullable + + label + + + + label + + 255 + + + + + + + workcenter + 3 + + 12 + 255 + 0 + NotNullable + + workcenter + + + + workcenter + + 255 + + + + + + + outsourcing + 4 + + -7 + 1 + 0 + Nullable + + outsourcing + + + + outsourcing + + 1 + + + + + + + description + 5 + + 12 + 2147483647 + 0 + Nullable + + description + + + + description + + 2147483647 + + + + + + + +]]> + + + + + image + dimension + image + image + + + description + dimension + description + description + + + + + param_1 + + decimal + -5 + 1 + 4 + true + false + + + + + + 1 + image + string + + + 2 + description + string + + + + Data Source + + + 1 + image + image + string + 12 + + + 2 + description + description + string + 12 + + + + + + + + isoperation + measure + isoperation + isoperation + + + product + dimension + product + product + + + qty + measure + qty + qty + + + unit + measure + unit + unit + + + + + param_1 + + decimal + -5 + 1 + 4 + false + true + false + + + + + + 1 + isoperation + integer + + + 2 + product + string + + + 3 + qty + decimal + + + 4 + unit + decimal + + + + Data Source + + + 1 + isoperation + isoperation + integer + -7 + + + 2 + product + product + string + 12 + + + 3 + qty + qty + decimal + 2 + + + 4 + unit + unit + decimal + -5 + + + + + + + + + + + + + + + + + + + + + + a4 + 0.47625cm + 0.4in + 0.396875cm + 0in + 0.2in + + + + + 7.7in + ProdProcess + + + logo_path + logo_path + dataSetRow["logo_path"] + string + + + name + name + dataSetRow["name"] + string + + + code + code + dataSetRow["code"] + string + + + isconsproonoperation + isconsproonoperation + dataSetRow["isconsproonoperation"] + integer + + + outsourcing + outsourcing + dataSetRow["outsourcing"] + integer + + + company + company + dataSetRow["company"] + string + + + location + location + dataSetRow["location"] + string + + + producedproductlocation + producedproductlocation + dataSetRow["producedproductlocation"] + string + + + product + product + dataSetRow["product"] + string + + + machine_type_name + dataSetRow["machine_type_name"] + string + + + + 19.076cm + + + + always + 22.38375cm + + + 2pt + 2.0729166666666665in + 19.076458333333335cm + + 1.6770833333333333in + + + 1.0520833333333333in + + + 1.03125in + + + 0.20833333333333334in + + + 7.752291666666667cm + + + 1.3758333333333332cm + + + 1.4166666666666667in + + 3 + 1 + + 91px + 350px + + + all + row["logo_path"] == null + + + + + file + true + params["AttachmentPath"].value+row["logo_path"] + + + + 3 + 1 + top + + 16pt + bold + 35pt + 0pt + left + inline + TranslateDS + + + param_1 + + 'ManufOrder.productionProcess' + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + 16pt + bold + 1pt + 2pt + left + inline + TranslateDS + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + : row._outer["code"]]]> + + + 13pt + bold + 1pt + 2pt + left + TranslateDS + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row._outer["name"]]]> + + + + + 0.2708333333333333in + + 4 + 1 + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ProdProcess.company" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["company"]]]> + + + + 2 + 1 + + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ManufOrder.machineType" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"] : row._outer["machine_type_name"]]]> + + + + + 0.2708333333333333in + + 2 + 1 + + + 1 + 1 + + + + + + +
+ ProdProcessLine + + + priority + priority + dataSetRow["priority"] + integer + + + label + label + dataSetRow["label"] + string + + + workcenter + workcenter + dataSetRow["workcenter"] + string + + + outsourcing + outsourcing + dataSetRow["outsourcing"] + integer + + + description + description + dataSetRow["description"] + string + + + + NewStyle + + + NewStyle2 + + + NewStyle3 + + + NewStyle4 + + + NewStyle5 + +
+ + + 5 + 1 + #606062 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 12pt + bold + #FFFFFF + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + -1pt + center + TranslateDS + + + param_1 + + 'ProdProcess.phases' + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + + + + + + + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.priority" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.label" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.workcenter" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.outsourcing" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.description" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + +
+ + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + normal + center + html + row["priority"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 9pt + normal + left + html + row["label"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 9pt + normal + left + html + row["workcenter"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 9pt + normal + center + html + if(row["outsourcing"] != 0) 'x';]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 9pt + normal + left + html + row["description"]]]> + + + + + +
+ + 10pt + ProdProcessLine + + + priority + priority + dataSetRow["priority"] + integer + + + label + label + dataSetRow["label"] + string + + + workcenter + workcenter + dataSetRow["workcenter"] + string + + + outsourcing + outsourcing + dataSetRow["outsourcing"] + integer + + + description + description + dataSetRow["description"] + string + + + id + id + dataSetRow["id"] + decimal + + + totaldescription + totaldescription + dataSetRow["totaldescription"] + decimal + + + totalproduct + totalproduct + dataSetRow["totalproduct"] + decimal + + + + NewStyle + 2.0104166666666665in + + + NewStyle2 + 5.614583333333333in + + + + #FFFFFF + #EEEEEE + 0.79375cm + + + all + row["totaldescription"] == 0 && row["totalproduct"] == 0 + + + + + + + + + all + row["totaldescription"] == 0 && row["totalproduct"] == 0 + + + + 2 + 1 + #E5E5E5 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + 11pt + bold + 1pt + 2pt + center + inline + TranslateDS + + + param_1 + + "ProdProcess.phases" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + 11pt + bold + 2pt + right + inline + html + row["priority"]]]> + + + 11pt + bold + left + inline + html + row["label"]]]> + + + + + + + all + row["totaldescription"] == 0 && row["totalproduct"] == 0 + + + + 2 + 1 + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin +
+ ProdProcessLineDescription + + + param_1 + + row["id"] + + + + + + image + image + dataSetRow["image"] + string + + + description + description + dataSetRow["description"] + string + + + + + + all + ! row["image"] + + + 5.000625cm + + + 14.181666666666667cm + + + + #EEEEEE + + + 91px + 166px + + + all + row["image"] == null + + + file + true + params["AttachmentPath"].value+row["image"] + + + + + normal + left + + html + if(row["description"] != null) row["description"].replace(/\/gi,"")]]> + + + + + #FFFFFF + 0.5cm + + + + +
+ 15pt + ProdProcessLineProduct + + + all + row.__rownum == -1 || row["isoperation"] == false + + + + + param_1 + + row._outer["id"] + + + + + + product + product + dataSetRow["product"] + string + + + qty + qty + dataSetRow["qty"] + decimal + + + unit + unit + dataSetRow["unit"] + decimal + + + isoperation + isoperation + dataSetRow["isoperation"] + integer + + + + + NewStyle6 + + + NewStyle7 + + + NewStyle8 + +
+ + #FFFFFF + + 3 + 1 + + #FFFFFF + 10pt + bold + 1pt + 2pt + left + TranslateDS + + + param_1 + + "ProdProcess.consumeProduct" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.product" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.qty" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + bold + 1pt + 2pt + center + TranslateDS + + + param_1 + + "ProdProcess.unit" + + + + + + key + key + dataSetRow["message_key"] + string + + + translation + translation + dataSetRow["translation"] + string + + + html + row["translation"]]]> + + + +
+ + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + normal + left + html + row["product"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + normal + center + html + row["qty"]]]> + + + + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + #606062 + solid + thin + + normal + center + html + row["unit"]]]> + + + + +
+ + + + + + + + + + + + + +
diff --git a/modules/axelor-open-suite/axelor-maintenance/src/main/resources/views/BillOfMaterial.xml b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/views/BillOfMaterial.xml new file mode 100644 index 00000000..a6f27034 --- /dev/null +++ b/modules/axelor-open-suite/axelor-maintenance/src/main/resources/views/BillOfMaterial.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + Default Bill of materials + Alternative Bill of materials + + ]]> + + + + {{record.fullName}} + + + ]]> + + + + + + + + + + + + + +