From 60a17ce6d9ce863134feeb07e209a20ab23171ec Mon Sep 17 00:00:00 2001 From: "Andrey Cunh@" Date: Wed, 18 Mar 2026 10:17:16 -0300 Subject: [PATCH] att transf --- .../events/validateForm.js | 6 +- .../fluigFormAttachment.js | 433 +++ .../fluigFormAttachment.min.js | 1 + .../script.js | 81 +- .../totvsflow_solicitacao_transferencia.html | 125 +- .../Solicitação de transferência.ecm30.xml | 408 ++- .../Solicitação de transferência.png | Bin 40397 -> 48431 bytes ...licitação de transferência.processimage.svg | 2 +- .../Solicitação de transferência.process | 2582 ++++++++++------- ...licitação de transferência.servicetask99.js | 48 + 10 files changed, 2586 insertions(+), 1100 deletions(-) create mode 100644 Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.js create mode 100644 Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.min.js create mode 100644 Transferência Ginseng/workflow/scripts/Solicitação de transferência.servicetask99.js diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js index 9c04ff5..b5ae4a2 100644 --- a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js @@ -52,6 +52,10 @@ function validateForm(form) { message += getMessage("Data da coleta", 1, form); hasErros = true; } + if (form.getValue("fdAnexo_Coleta") == "") { + message += getMessage("Anexo da Coleta", 3, form); + hasErros = true; + } var tipoMotoristaEntregaColeta = String(form.getValue("tipoMotoristaEntrega") || ""); if (tipoMotoristaEntregaColeta == "") { message += getMessage("Quem vai fazer a entrega", 2, form); @@ -90,6 +94,7 @@ function validateForm(form) { message += getMessage("Validação do recebimento", 2, form); hasErros = true; } + if ( (validacaoItens == "divergencia" || validacaoItens == "naoEntregue" || validacaoItens == "incorreto") && form.getValue("justificativaDecisaoItens") == "" @@ -130,4 +135,3 @@ function getMessage(texto, tipo, form) { return 'A quantidade existente de campos "' + texto + '" deve ser maior do que 0.' } } - diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.js b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.js new file mode 100644 index 0000000..4a53f4e --- /dev/null +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.js @@ -0,0 +1,433 @@ +/** + * Plugin JQuery para trabalhar com anexos nos formulários dentro do processo + * + * @author Bruno Gasparetto + * @see https://github.com/brunogasparetto/fluig-form-attachment + */ + + +/** + * Configurações + * + * @typedef AttachmentSettings + * @property {boolean} showActionButton Exibe o botão de upload/delete. True por padrão. + * @property {boolean} filename Nome que será salvo como descrição do Anexo. + * @property {boolean|string} prefixName Adiciona prefixo ao anexo. False por padrão, True para prefixo aleatório, String para prefixo fixo. + * @property {string} accept Tipos de arquivos aceitos. Segue a regra do accept do input tipo file. + */ + +;(function ($) { + "use strict"; + + const pluginName = "fluigFormAttachment"; + + const deleteFileClassName = "BtnDeleteFile"; + const uploadFileClassname = "BtnUploadFile"; + const viewerFileClassname = "BtnViewerFile"; + const compressedExtensions = [ + '.7z', '.zip', '.rar', '.gz', '.tar', '.tbz2', '.tgz', '.bz2', '.lz', '.lz4','.txz', + '.xz', '.z', '.zst', '.zstd', '.war', '.ear', '.jar','.apk', '.arj', '.ace', '.cab', + ]; + + const isString = item => typeof item === "string"; + + /** + * Procura o índice do anexo de acordo com sua descrição + * + * @param {string} filename + * @returns {number} -1 se não encontrar + */ + const attachmentFindIndex = (filename) => parent.ECM.attachmentTable.getData().findIndex(attachment => attachment.description === filename); + + /** + * Configuração padrão + * + * @type {AttachmentSettings} + */ + const defaults = { + showActionButton: true, + filename: "Anexo", + prefixName: false, + accept: "*", + }; + + class Plugin { + /** + * @type {AttachmentSettings} + */ + #settings; + + /** + * Elemento do arquivo. Pode ser um input ou span (no modo leitura). + * + * @type {JQuery} + */ + #input; + + /** + * @type {JQuery} + */ + #container; + + /** + * @type {string} + */ + #attachmentFilename; + + /** + * @param {HTMLElement} element + * @param {AttachmentSettings} options + */ + constructor(element, options) { + + // Garantir um ID para o Input + if (!element.id && element.nodeName.toLowerCase() === "input") { + element.id = FLUIGC.utilities.randomUUID(); + } + + this.#settings = $.extend({}, defaults, options); + this.#input = $(element); + this.#attachmentFilename = this.#input.val() || this.#input.text().trim(); + + this.#input + .prop("readonly", true) + .on("change", () => { + this.#attachmentFilename = this.#input.val(); + this.#changeButtonsState(); + }) + .wrap(`
`) + .after(`
${this.#getButtonsTemplate()}
`); + + this.#container = this.#input.closest(`.${pluginName}Component`); + + this.#container + .on("click", `.${pluginName}${deleteFileClassName}`, () => this.#confirmDeleteAttachment()) + .on("click", `.${pluginName}${uploadFileClassname}`, () => this.#uploadAttachment()) + .on("click", `.${pluginName}${viewerFileClassname}`, () => this.#viewAttachment()) + ; + } + + /** + * Indica que o campo está válido + * + * Caso o campo possua algum valor é obrigatório que o anexo + * esteja na tabela de anexos. + * + * @returns {boolean} + */ + isValid() { + return this.#attachmentFilename.length + ? this.hasAttachment() + : true + ; + } + + /** + * Indica se o anexo está na tabela de anexos + * + * @returns {boolean} + */ + hasAttachment() { + const filename = this.#attachmentFilename || this.#input.val() || this.#input.text().trim(); + + return filename.length > 0 && attachmentFindIndex(filename) !== -1; + } + + /** + * Remove o anexo + * + * Método útil para excluir anexos em tabela Pai x Filho. + */ + deleteAttachment() { + const attachmentIndex = parent.ECM.attachmentTable.getData().findIndex( + attachment => attachment.description === this.#attachmentFilename + ); + + setTimeout(() => this.#input.val("").trigger("change"), 500); + + if (attachmentIndex === -1) { + return; + } + + parent.WKFViewAttachment.removeAttach([attachmentIndex]); + } + + showActionButton() { + this.#settings.showActionButton = true; + this.#input.trigger("change"); + } + + hideActionButton() { + this.#settings.showActionButton = false; + this.#input.trigger("change"); + } + + filename(fileName, prefixName) { + if (fileName === undefined) { + return this.#input.data("filename") || this.#settings.filename; + } + + this.#settings.filename = fileName; + this.#input.data("filename", fileName); + + if (prefixName !== undefined) { + this.prefixName(prefixName); + } + } + + prefixName(prefixName) { + if (prefixName === undefined) { + return this.#settings.prefixName; + } + + this.#settings.prefixName = prefixName; + } + + #getButtonsTemplate() { + const hasFileSelected = this.#attachmentFilename.length !== 0; + const canShowActionButton = this.#canDisplayActionButton(); + + return `` + + `` + + `` + ; + } + + #canDisplayActionButton() { + const element = this.#input.get(0); + const workflowView = (parent.ECM && parent.ECM.workflowView) ? parent.ECM.workflowView : {}; + const userPermissions = String(workflowView.userPermissions || ""); + const hasEditPermission = userPermissions.indexOf("P") >= 0; + const isTokenView = location.href.includes('token'); + const hasMobileCameraBridge = ( + (window.JSInterface && typeof window.JSInterface.showCamera === "function") + || (parent && parent.JSInterface && typeof parent.JSInterface.showCamera === "function") + ); + const isMobileUA = /android|iphone|ipad|ipod|mobile/i.test(navigator.userAgent || ""); + const allowByContext = !isTokenView || hasMobileCameraBridge || isMobileUA; + const allowByPermission = hasEditPermission || hasMobileCameraBridge || isMobileUA; + + return this.#settings.showActionButton + && allowByPermission + && allowByContext + && element.nodeName.toLowerCase() === "input" + && !element.disabled + ; + } + + #changeButtonsState() { + const hasFileSelected = this.#attachmentFilename.length !== 0; + + if (this.#canDisplayActionButton()) { + if (hasFileSelected) { + this.#container.find(`.${pluginName}${uploadFileClassname}`).addClass("hide"); + this.#container.find(`.${pluginName}${deleteFileClassName}`).removeClass("hide"); + } else { + this.#container.find(`.${pluginName}${deleteFileClassName}`).addClass("hide"); + this.#container.find(`.${pluginName}${uploadFileClassname}`).removeClass("hide"); + } + } else { + this.#container.find(`.${pluginName}BtnAction`).addClass("hide"); + } + + if (hasFileSelected) { + this.#container.find(`.${pluginName}${viewerFileClassname}`).removeClass("hide"); + } else { + this.#container.find(`.${pluginName}${viewerFileClassname}`).addClass("hide"); + } + } + + #confirmDeleteAttachment() { + if (!this.#canDisplayActionButton()) { + return; + } + + FLUIGC.message.confirm({ + message: `Deseja remover o anexo ${this.#attachmentFilename}?`, + title: 'Confirmação', + labelYes: 'Sim, quero remover', + labelNo: 'Não, quero cancelar', + }, result => { + if (!result) { + return; + } + + this.deleteAttachment(); + }); + } + + #uploadAttachment() { + if (!this.#canDisplayActionButton()) { + return; + } + + let filename = this.#input.data("filename") || this.#settings.filename; + + if (this.#settings.prefixName === true) { + filename = FLUIGC.utilities.randomUUID().substring(0, 9) + filename; + } else if (this.#settings.prefixName !== false && isString(this.#settings.prefixName)) { + filename = `${this.#settings.prefixName}-${filename}`; + } + + // Evitar conflito de descrição do anexo + if (attachmentFindIndex(filename) !== -1) { + FLUIGC.toast({ + title: "Atenção", + message: "Já existe um anexo com essa descrição", + type: "warning", + }) + return; + } + + parent.$("#ecm-navigation-inputFile-clone") + .attr({ + "data-on-camera": "true", + "data-file-name-camera": filename, + "data-inputid": this.#input.attr("id"), + "data-filename": filename, + "multiple": false, + "accept": this.#input.data("accept") || this.#settings.accept, + }) + .trigger("click") + ; + } + + #viewAttachment() { + const attachmentIndex = parent.ECM.attachmentTable.getData().findIndex( + attachment => attachment.description === this.#attachmentFilename + ); + + if (attachmentIndex === -1) { + FLUIGC.toast({ + title: "Atenção", + message: "Anexo não encontrado", + type: "warning" + }); + + return; + } + + const attachment = parent.ECM.attachmentTable.getRow(attachmentIndex); + const physicalFileName = String( + attachment.physicalFileName || attachment.fileName || attachment.name || "" + ).toLowerCase(); + const isCompressedFile = compressedExtensions.some(extension => physicalFileName.endsWith(extension)); + + if (attachment.documentId && !isCompressedFile) { + parent.WKFViewAttachment.openAttachmentView(parent.WCMAPI.userCode, attachment.documentId, attachment.version); + } else { + parent.WKFViewAttachment.downloadAttach([attachmentIndex]); + } + } + } + + /** + * Instancia o Plugin ou executa algum método do plugin + * + * @param {AttachmentSettings|string} options + * @returns {undefined|boolean|void} + */ + $.fn[pluginName] = function (options) { + if (!parent.WKFViewAttachment || !parent.ECM || !parent.ECM.attachmentTable) { + console.error(`Plugin ${pluginName} executado fora de um processo.`) + return this; + } + + // Executa o Método + if (isString(options)) { + const methodName = options; + const methodArgs = Array.prototype.slice.call(arguments, 1); + + let returnedValue = undefined; + + this.each(function () { + let pluginData = $.data(this, pluginName); + + if (!pluginData) { + pluginData = new Plugin(this, {}); + $.data(this, pluginName, pluginData); + } + + if (!pluginData[methodName]) { + return; + } + + returnedValue = pluginData[methodName](...methodArgs); + + if (returnedValue !== undefined) { + return false; + } + }); + + return returnedValue !== undefined + ? returnedValue + : this + ; + } + + return this.each(function () { + if (!$.data(this, pluginName)) { + $.data(this, pluginName, new Plugin(this, options)); + } + }); + }; + + if (!parent.WKFViewAttachment || !parent.ECM || !parent.ECM.attachmentTable) { + return; + } + + const loading = FLUIGC.loading(window, { + title: "Aguarde", + textMessage: "Enviando arquivo", + }) + + $(() => { + // Oculta aba anexos + $("#tab-attachments", parent.document).hide(); + + parent.$("#ecm_navigation_fileupload") + .on(`fileuploadadd.${pluginName}`, function(e, data) { + // Impede abrir o Loading caso tenha erro no arquivo + + const file = data.files[0]; + + if (parent.ECM.maxUploadSize > 0 && file.size >= (parent.ECM.maxUploadSize * 1024 * 1024)) { + return; + } + + if (parent.ECM.newAttachmentsDocs.length + && parent.ECM.newAttachmentsDocs.findIndex(attachment => attachment.name === file.name) !== -1 + ) { + return; + } + + loading.show(); + }) + .on(`fileuploadfail.${pluginName}`, () => loading.hide()) + .on(`fileuploaddone.${pluginName}`, function() { + // Atualiza o campo do arquivo caso o upload tenha ocorrido + + loading.hide(); + + const btnUpload = parent.document.getElementById("ecm-navigation-inputFile-clone"); + const filename = btnUpload.getAttribute("data-filename"); + + if (attachmentFindIndex(filename) === -1) { + return; + } + + $(`#${btnUpload.getAttribute("data-inputid")}`).val(filename).trigger("change"); + }); + + parent.$(document).on(`fileuploadstop.${pluginName}`, () => loading.hide()); + }); + + +$("head").append(``); + +}(jQuery)); diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.min.js b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.min.js new file mode 100644 index 0000000..23dd23a --- /dev/null +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/fluigFormAttachment.min.js @@ -0,0 +1 @@ +!function(t){"use strict";const e="fluigFormAttachment",n="BtnDeleteFile",i="BtnUploadFile",a="BtnViewerFile",s=[".7z",".zip",".rar",".gz",".tar",".tbz2",".tgz",".bz2",".lz",".lz4",".txz",".xz",".z",".zst",".zstd",".war",".ear",".jar",".apk",".arj",".ace",".cab"],o=t=>"string"==typeof t,r=t=>parent.ECM.attachmentTable.getData().findIndex(e=>e.description===t),c={showActionButton:!0,filename:"Anexo",prefixName:!1,accept:"*"};class h{#t;#e;#n;#i;constructor(s,o){s.id||"input"!==s.nodeName.toLowerCase()||(s.id=FLUIGC.utilities.randomUUID()),this.#t=t.extend({},c,o),this.#e=t(s),this.#i=this.#e.val()||this.#e.text().trim(),this.#e.prop("readonly",!0).on("change",()=>{this.#i=this.#e.val(),this.#a()}).wrap(`
`).after(`
${this.#s()}
`),this.#n=this.#e.closest(`.${e}Component`),this.#n.on("click",`.${e}${n}`,()=>this.#o()).on("click",`.${e}${i}`,()=>this.#r()).on("click",`.${e}${a}`,()=>this.#c())}isValid(){return!this.#i.length||this.hasAttachment()}hasAttachment(){const t=this.#i||this.#e.val()||this.#e.text().trim();return t.length>0&&-1!==r(t)}deleteAttachment(){const t=parent.ECM.attachmentTable.getData().findIndex(t=>t.description===this.#i);setTimeout(()=>this.#e.val("").trigger("change"),500),-1!==t&&parent.WKFViewAttachment.removeAttach([t])}showActionButton(){this.#t.showActionButton=!0,this.#e.trigger("change")}hideActionButton(){this.#t.showActionButton=!1,this.#e.trigger("change")}filename(t,e){if(void 0===t)return this.#e.data("filename")||this.#t.filename;this.#t.filename=t,this.#e.data("filename",t),void 0!==e&&this.prefixName(e)}prefixName(t){if(void 0===t)return this.#t.prefixName;this.#t.prefixName=t}#s(){const t=0!==this.#i.length,s=this.#h();return``}#h(){const t=this.#e.get(0);return this.#t.showActionButton&&parent.ECM.workflowView.userPermissions.indexOf("P")>=0&&location.href.includes("ManagerMode")&&!location.href.includes("token")&&"input"===t.nodeName.toLowerCase()&&!t.disabled}#a(){const t=0!==this.#i.length;this.#h()?t?(this.#n.find(`.${e}${i}`).addClass("hide"),this.#n.find(`.${e}${n}`).removeClass("hide")):(this.#n.find(`.${e}${n}`).addClass("hide"),this.#n.find(`.${e}${i}`).removeClass("hide")):this.#n.find(`.${e}BtnAction`).addClass("hide"),t?this.#n.find(`.${e}${a}`).removeClass("hide"):this.#n.find(`.${e}${a}`).addClass("hide")}#o(){this.#h()&&FLUIGC.message.confirm({message:`Deseja remover o anexo ${this.#i}?`,title:"Confirmação",labelYes:"Sim, quero remover",labelNo:"Não, quero cancelar"},t=>{t&&this.deleteAttachment()})}#r(){if(!this.#h())return;let t=this.#e.data("filename")||this.#t.filename;!0===this.#t.prefixName?t=FLUIGC.utilities.randomUUID().substring(0,9)+t:!1!==this.#t.prefixName&&o(this.#t.prefixName)&&(t=`${this.#t.prefixName}-${t}`),-1===r(t)?parent.$("#ecm-navigation-inputFile-clone").attr({"data-on-camera":"true","data-file-name-camera":t,"data-inputid":this.#e.attr("id"),"data-filename":t,multiple:!1,accept:this.#e.data("accept")||this.#t.accept}).trigger("click"):FLUIGC.toast({title:"Atenção",message:"Já existe um anexo com essa descrição",type:"warning"})}#c(){const t=parent.ECM.attachmentTable.getData().findIndex(t=>t.description===this.#i);if(-1===t)return void FLUIGC.toast({title:"Atenção",message:"Anexo não encontrado",type:"warning"});const e=parent.ECM.attachmentTable.getRow(t),n=String(e.physicalFileName||e.fileName||e.name||"").toLowerCase(),i=s.some(t=>n.endsWith(t));e.documentId&&!i?parent.WKFViewAttachment.openAttachmentView(parent.WCMAPI.userCode,e.documentId,e.version):parent.WKFViewAttachment.downloadAttach([t])}}if(t.fn[e]=function(n){if(!parent.WKFViewAttachment||!parent.ECM||!parent.ECM.attachmentTable)return console.error(`Plugin ${e} executado fora de um processo.`),this;if(o(n)){const i=n,a=Array.prototype.slice.call(arguments,1);let s;return this.each(function(){let n=t.data(this,e);if(n||(n=new h(this,{}),t.data(this,e,n)),n[i])return s=n[i](...a),void 0===s&&void 0}),void 0!==s?s:this}return this.each(function(){t.data(this,e)||t.data(this,e,new h(this,n))})},!parent.WKFViewAttachment||!parent.ECM||!parent.ECM.attachmentTable)return;const l=FLUIGC.loading(window,{title:"Aguarde",textMessage:"Enviando arquivo"});t(()=>{t("#tab-attachments",parent.document).hide(),parent.$("#ecm_navigation_fileupload").on(`fileuploadadd.${e}`,function(t,e){const n=e.files[0];parent.ECM.maxUploadSize>0&&n.size>=1024*parent.ECM.maxUploadSize*1024||parent.ECM.newAttachmentsDocs.length&&-1!==parent.ECM.newAttachmentsDocs.findIndex(t=>t.name===n.name)||l.show()}).on(`fileuploadfail.${e}`,()=>l.hide()).on(`fileuploaddone.${e}`,function(){l.hide();const e=parent.document.getElementById("ecm-navigation-inputFile-clone"),n=e.getAttribute("data-filename");-1!==r(n)&&t(`#${e.getAttribute("data-inputid")}`).val(n).trigger("change")}),parent.$(document).on(`fileuploadstop.${e}`,()=>l.hide())}),t("head").append(``)}(jQuery); diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js index 519e775..0b0c650 100644 --- a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js @@ -52,6 +52,7 @@ $(document).ready(function () { if ($("#formMode").val() == "VIEW") { showAndBlock(["all"]); $("#btnConsultarChaveNfe").prop("disabled", true).hide(); + updateConferenciaNfeVisibility($("#activity").val()); } else { //show the right fields var activity = $("#activity").val(); @@ -140,10 +141,11 @@ $(document).ready(function () { } updt_line(); } else if (activity == 18) { - if ($("justificativaValidaProblema") != "") { - showAndBlock([0, 4, 6, 24, 57, 31]); + var campoJustificativaProblema = $("#justificativaValidaProblema"); + if (campoJustificativaProblema.length && campoJustificativaProblema.val() != "") { + showAndBlock([0, 4, 6, 24, 31, 57]); } else { - showAndBlock([0, 4, 6, 31]); + showAndBlock([0, 4, 6, 31, 57]); } $("#userValidacaoItens").val($("#currentUserName").val()); $("#dataValidacaoItens").val(requestDate[0] + " - " + requestDate[1]); @@ -186,6 +188,8 @@ $(document).ready(function () { } updt_line(); } + + updateConferenciaNfeVisibility(activity); } formatarMoedasTabela("preco___"); @@ -197,6 +201,7 @@ $(document).ready(function () { invisibleBtnUpload("fdAnexo_Coleta"); invisibleBtnUpload("fdAnexo_Entrega"); invisibleBtnUpload("fdAnexo_recebimento"); + initAttachmentPlugins(); processarConferenciaNfe(); // gerarTabelaCotacaoIndica("tabelaCotacaoIndica", "tabelaItens"); @@ -494,6 +499,70 @@ function applySelectedMotoristaEntregaOption() { $("#tipoMotoristaEntregaOutro").prop("checked", true); } +function updateConferenciaNfeVisibility(activity) { + var activityValue = String(activity || $("#activity").val() || ""); + var exibirConferencia = (activityValue === "6" || activityValue === "18"); + $("#blocoConferenciaNfe").toggle(exibirConferencia); +} + +var ATTACHMENT_PLUGIN_CONFIG = { + fnAnexo_Nfe: { + filename: "Nota Fiscal", + accept: ".pdf,.xml,image/*" + }, + fdAnexo_Coleta: { + filename: "Comprovante de Coleta", + accept: ".pdf,image/*" + }, + fdAnexo_Entrega: { + filename: "Comprovante de Entrega", + accept: ".pdf,image/*" + }, + fdAnexo_recebimento: { + filename: "Comprovante de Recebimento", + accept: ".pdf,image/*" + } +}; + +function initAttachmentPlugins() { + var mode = getFormMode(); + var allowedInputs = getAllowedAttachmentInputs(); + var hasPlugin = typeof $.fn.fluigFormAttachment === "function"; + + if (!hasPlugin) { + console.warn("fluigFormAttachment.js nao carregado; campos de anexo sem botoes de upload."); + return; + } + + Object.keys(ATTACHMENT_PLUGIN_CONFIG).forEach(function (inputId) { + var cfg = ATTACHMENT_PLUGIN_CONFIG[inputId]; + var input = $("#" + inputId); + if (!input.length) return; + + var canUploadHere = (mode !== "VIEW" && allowedInputs.indexOf(inputId) >= 0); + + try { + if (!input.data("fluigFormAttachment")) { + input.fluigFormAttachment({ + filename: cfg.filename, + accept: cfg.accept, + showActionButton: canUploadHere + }); + } else { + input.fluigFormAttachment("filename", cfg.filename); + } + + if (canUploadHere) { + input.fluigFormAttachment("showActionButton"); + } else { + input.fluigFormAttachment("hideActionButton"); + } + } catch (e) { + console.error("Falha ao inicializar anexo '" + inputId + "':", e); + } + }); +} + function normalizeNfeKey(value) { return String(value == null ? "" : value).replace(/\D/g, "").substring(0, 44); } @@ -952,6 +1021,12 @@ var beforeSendValidate = function (numState, nextState) { if ($("#dataColeta").val() == "") { throw "'Data da coleta' é obrigatória."; } + if ($("#fdAnexo_Coleta").val() == "") { + throw "'Anexo da Coleta' é obrigatório."; + } + if (invalidFile("fdAnexo_Coleta")) { + throw "O arquivo informado em 'Anexo da Coleta' não foi encontrado na aba de anexos."; + } var tipoMotoristaEntrega31 = $("input[name='tipoMotoristaEntrega']:checked").val(); if (!tipoMotoristaEntrega31) { throw "Informe quem vai fazer a entrega (mesmo motorista da coleta ou outro)."; diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html index d1d5740..d0ca130 100644 --- a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html @@ -355,6 +355,12 @@ +
+
+ + +
+
@@ -417,58 +423,7 @@
-
-
-

Conferência da NFe x Solicitação

-
- Consulte a chave da NFe para gerar o confronto dos itens. -
-
- - - - - - - - - - - - - - -
Chave de comparaçãoQtd. solicitadaQtd. NFeStatus
Sem conferência.
-
-
-
- -
-

Validação do Recebimento

-
-
- -
- - -
-
-
- -
-

Rastreabilidade de Motorista - Coleta

@@ -481,6 +436,12 @@
+
+
+ + +
+
@@ -518,8 +479,69 @@
+
+
+ + +
+
+
+

Validação do Recebimento

+
+
+

Conferência da NFe x Solicitação

+
+ Consulte a chave da NFe para gerar o confronto dos itens. +
+
+ + + + + + + + + + + + + + +
Chave de comparaçãoQtd. solicitadaQtd. NFeStatus
Sem conferência.
+
+
+
+
+
+ +
+ + +
+
+
+
+
+ + +
+
+ +
@@ -546,6 +568,7 @@ + diff --git a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml index 1be2345..2e0950e 100644 --- a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml +++ b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml @@ -408,6 +408,155 @@ false 0 + + + 1 + Transferência Ginseng + 1 + 99 + + Consultar Entrada + Consultar Entrada + + 0 + + false + 0 + + 1 + false + false + false + 0 + 0 + 0 + 0 + false + + 0 + true + false + false + 1600 + 260 + 0 + 0 + false + false + 0 + 0 + false + + 0 + 82 + 0 + false + 0 + 0 + 0 + 0 + + false + 1 + + + + 1 + Transferência Ginseng + 1 + 104 + + Verificar problema de lançamento + Verificar problema de lançamento + + 0 + + false + 0 + + 1 + false + true + false + 3600 + 3600 + 0 + 0 + false + + 0 + true + false + false + 1600 + 60 + 0 + 0 + false + false + 0 + 0 + false + + 0 + 80 + 0 + false + 0 + 0 + 0 + 0 + + false + 0 + + + + 1 + Transferência Ginseng + 1 + 103 + + Intermediário + Intermediário + Evento intermediário do processo + 0 + false + 0 + + + 0 + false + true + false + 1 + 1 + 0 + 0 + false + + 0 + true + false + false + 1660 + 260 + 0 + 0 + false + false + 0 + false + + 0 + 43 + 0 + false + 0 + + false + 99 + 1 @@ -505,53 +654,6 @@ false - - - 1 - Transferência Ginseng - 1 - 52 - - Fim - Fim - Atividade final do processo - 0 - false - 0 - - - 0 - false - true - false - 0 - 1 - 0 - 0 - false - - 0 - false - false - false - 1610 - 284 - 0 - 0 - false - false - 0 - 0 - false - - 6 - 60 - 0 - false - 0 - - false - 1 @@ -646,6 +748,53 @@ false + + + 1 + Transferência Ginseng + 1 + 101 + + Fim + Fim + Atividade final do processo + 0 + false + 0 + + + 0 + false + true + false + 0 + 1 + 0 + 0 + false + + 0 + false + false + false + 1780 + 280 + 0 + 0 + false + false + 0 + 0 + false + + 6 + 60 + 0 + false + 0 + + false + @@ -684,8 +833,8 @@ 46 46 - hAPI.getCardValue("validacaoItens") == "entregue" - 52 + hAPI.getCardValue("validacaoItens") == "entregue" && hAPI.getCardValue("dataEntradaNfeConsulta") != "" + 99 0 @@ -858,23 +1007,6 @@ false 0 - - - 1 - Transferência Ginseng - 1 - 82 - - - false - 46 - 52 - - - false - false - 0 - 1 @@ -882,7 +1014,7 @@ 1 85 - + Produtos entregue false 57 18 @@ -943,9 +1075,135 @@ false 0 + + + 1 + Transferência Ginseng + 1 + 100 + + + false + 46 + 99 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 102 + + + false + 99 + 101 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 105 + + + false + 103 + 104 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 106 + + + false + 104 + 99 + + + false + false + 0 + - + + + + 1 + servicetask99 + Transferência Ginseng + 1 + + function servicetask99(attempt, message) { + try { + var validacaoItens = safeTrim(hAPI.getCardValue("validacaoItens")); + + // Só precisa consultar entrada da NFe quando o recebimento foi validado como entregue. + if (validacaoItens !== "entregue") return; + + var dataEntrada = safeTrim(hAPI.getCardValue("dataEntradaNfeConsulta")); + if (dataEntrada !== "") return; + + var chaveNfe = onlyDigits(hAPI.getCardValue("chaveNfe")); + if (chaveNfe === "") { + log.warn("[servicetask99] Chave NFe vazia. Nao foi possivel consultar entrada."); + return; + } + + var cKey = DatasetFactory.createConstraint("key", chaveNfe, chaveNfe, ConstraintType.MUST); + var dsNfe = DatasetFactory.getDataset("ds_fiscal_invoice_by_keys", null, [cKey], null); + + if (!dsNfe || dsNfe.rowsCount < 1) { + log.warn("[servicetask99] Dataset sem retorno para chave: " + chaveNfe); + return; + } + + var dsSuccess = safeTrim(dsNfe.getValue(0, "success")).toLowerCase() === "true"; + var dsUpdatedAt = safeTrim(dsNfe.getValue(0, "updatedAt")); + + if (dsSuccess && dsUpdatedAt !== "") { + hAPI.setCardValue("dataEntradaNfeConsulta", dsUpdatedAt); + log.info("[servicetask99] Data de entrada atualizada automaticamente: " + dsUpdatedAt); + return; + } + + var dsMessage = safeTrim(dsNfe.getValue(0, "message")); + log.warn("[servicetask99] Consulta executada sem data de entrada. message=" + dsMessage); + } catch (e) { + log.error("[servicetask99] Erro na consulta automatica da NFe: " + e); + throw e; + } +} + +function safeTrim(value) { + return String(value == null ? "" : value).trim(); +} + +function onlyDigits(value) { + return String(value == null ? "" : value).replace(/\D/g, ""); +} + + + @@ -1168,7 +1426,19 @@ 6 - + + + 1 + Transferência Ginseng + 1 + 99 + 10 + Lançamento efetuado com sucesso no RGB + + 1 + 2 + + diff --git a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.png b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.png index b1b8e7b2ae993aa9a01ad6f8bbc16d1a76c8d05b..c1a700f1ccde929aab4533378052147636cfb868 100644 GIT binary patch literal 48431 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 Al>h($ literal 40397 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[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 -MotoristaAnalista de suprimentosLogisticaGerente de lojaSolicitação de TransferênciaValidarLojaAprovarTransferênciaEmitir NFEde TransfReceberProdutosVerificarproblemaColetarProdutoValidarprodutoEntregarProdutoGestor IdentificadoLoja sem GestorAprovarReprovarReprovarCancelarValidar produtosrecebidosEnviar para coletaFinalizar +MotoristaAnalista de suprimentosLogisticaGerente de lojaSolicitação de TransferênciaValidarLojaAprovarTransferênciaEmitir NFEde TransfReceberProdutosVerificarproblemaColetarProdutoValidarprodutoEntregarProdutoConsultarEntradaVerificarproblema delançamentoGestor IdentificadoLoja sem GestorAprovarReprovarReprovarCancelarValidar produtosrecebidosEnviar para coletaFinalizar diff --git a/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process b/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process index 9b00760..48aab1e 100644 --- a/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process +++ b/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process @@ -1,79 +1,80 @@ - - - - - + + + + + + - - + + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - - + + - - + + - + - + - - - + + + - - - + + + - - - + + + @@ -82,100 +83,100 @@ - + - - + + - - + + - + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - - + + - - - + + + - + - + - - - + + + - - - + + + - + @@ -191,9 +192,9 @@ - - - + + + @@ -202,54 +203,44 @@ - + - - + + - - + + - + - - - - - - - - - - - - + + - - - + + + - + - + - - - + + + - - - + + + - + @@ -265,16 +256,77 @@ - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -282,146 +334,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -441,26 +493,26 @@ - + - + - + - + - + - + @@ -473,10 +525,10 @@ - + - + @@ -490,146 +542,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -643,146 +695,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -796,146 +848,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -949,146 +1001,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1102,146 +1154,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1255,26 +1307,26 @@ - + - + - + - + - + - + @@ -1287,10 +1339,10 @@ - + - + @@ -1304,26 +1356,26 @@ - + - + - + - + - + - + @@ -1336,26 +1388,26 @@ - + - + - + - + - + - + @@ -1368,146 +1420,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1516,7 +1568,7 @@ - + @@ -1535,26 +1587,26 @@ - + - + - + - + - + - + @@ -1568,26 +1620,26 @@ - + - + - + - + - + - + @@ -1601,10 +1653,10 @@ - + - + @@ -1620,146 +1672,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1768,8 +1820,8 @@ - - + + @@ -1783,146 +1835,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1937,26 +1989,26 @@ - + - + - + - + - + - + @@ -1971,146 +2023,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2127,146 +2179,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2281,26 +2333,26 @@ - + - + - + - + - + - + @@ -2314,146 +2366,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2469,26 +2521,26 @@ - + - + - + - + - + - + @@ -2501,146 +2553,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2657,146 +2709,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2811,26 +2863,26 @@ - + - + - + - + - + - + @@ -2843,146 +2895,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3002,146 +3054,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3162,146 +3214,146 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3323,10 +3375,10 @@ - + - + @@ -3340,26 +3392,26 @@ - + - + - + - + - + - + @@ -3374,10 +3426,10 @@ - + - + @@ -3394,10 +3446,10 @@ - + - + @@ -3413,26 +3465,26 @@ - + - + - + - + - + - + @@ -3447,26 +3499,26 @@ - + - + - + - + - + - + @@ -3475,272 +3527,852 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - - - - - - - - - - - - - - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Transferência Ginseng/workflow/scripts/Solicitação de transferência.servicetask99.js b/Transferência Ginseng/workflow/scripts/Solicitação de transferência.servicetask99.js new file mode 100644 index 0000000..688d8b4 --- /dev/null +++ b/Transferência Ginseng/workflow/scripts/Solicitação de transferência.servicetask99.js @@ -0,0 +1,48 @@ +function servicetask99(attempt, message) { + try { + var validacaoItens = safeTrim(hAPI.getCardValue("validacaoItens")); + + // Só precisa consultar entrada da NFe quando o recebimento foi validado como entregue. + if (validacaoItens !== "entregue") return; + + var dataEntrada = safeTrim(hAPI.getCardValue("dataEntradaNfeConsulta")); + if (dataEntrada !== "") return; + + var chaveNfe = onlyDigits(hAPI.getCardValue("chaveNfe")); + if (chaveNfe === "") { + log.warn("[servicetask99] Chave NFe vazia. Nao foi possivel consultar entrada."); + return; + } + + var cKey = DatasetFactory.createConstraint("key", chaveNfe, chaveNfe, ConstraintType.MUST); + var dsNfe = DatasetFactory.getDataset("ds_fiscal_invoice_by_keys", null, [cKey], null); + + if (!dsNfe || dsNfe.rowsCount < 1) { + log.warn("[servicetask99] Dataset sem retorno para chave: " + chaveNfe); + return; + } + + var dsSuccess = safeTrim(dsNfe.getValue(0, "success")).toLowerCase() === "true"; + var dsUpdatedAt = safeTrim(dsNfe.getValue(0, "updatedAt")); + + if (dsSuccess && dsUpdatedAt !== "") { + hAPI.setCardValue("dataEntradaNfeConsulta", dsUpdatedAt); + log.info("[servicetask99] Data de entrada atualizada automaticamente: " + dsUpdatedAt); + return; + } + + var dsMessage = safeTrim(dsNfe.getValue(0, "message")); + log.warn("[servicetask99] Consulta executada sem data de entrada. message=" + dsMessage); + } catch (e) { + log.error("[servicetask99] Erro na consulta automatica da NFe: " + e); + throw e; + } +} + +function safeTrim(value) { + return String(value == null ? "" : value).trim(); +} + +function onlyDigits(value) { + return String(value == null ? "" : value).replace(/\D/g, ""); +}