PageSourceSearch

https://app.sigeflex.com/assets/SugestaoCompras-9cpm_g0W.js

js sigeflex.com collected 2026-10-02 00:59:50 UTC 10,064 bytes, 1 lines download raw bytes

1import"./store-CCAZlIyi.js";import"./store-BS8x5qv_.js";import{u as p}from"./messageDialog.store-WTP0VYOV.js";import A from"./Categoria-BOilC3-0.js";import{D as B}from"./dataset-DSY1Ij4o.js";import{_ as q}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{o as k,aS as c,Y as C,Z as w,a5 as d,u as U,W as S,X as _,a4 as D,ai as G,r as I,p as $,b2 as u}from"./@vue-DmAB7yje.js";import"./pinia-CAngz53m.js";import"./errorMessages-BX_GrsJH.js";import"./Tributacao-Di-KwLcH.js";import"./TributacaoService-CVjE5yMe.js";import"./tributacao-YL27HZvS.js";import"./metadata-BT8H-kKA.js";import"./@protobuf-ts-D9nIBb28.js";import"./Cfop-gztnLSap.js";import"./CfopImportaTabela-FnIzIBby.js";import"./gridBadgeHelper-hYWjGFdT.js";import"./lodash-DYhSs6Mk.js";import"./@fortawesome-CHr9kUcr.js";import"./axios-Dlr9j6MA.js";import"./string-_buJapO2.js";import"./moment-Cl4UOzQZ.js";import"./compressorjs-D0oVaUf3.js";import"./apiHost-DqDNI4uj.js";import"./string-DrdasdIl.js";import"./Ncm-s26VX5G4.js";import"./NcmService-CrxSSEZK.js";import"./NcmImportaTabela-CqOZsvct.js";import"./NcmImportaTabelaIBPT-D1d47Cyy.js";import"./NcmImportaTabelaCest-Bv6CL-gW.js";import"./SingleImageUploader-D0ToYjlc.js";import"./FileManagerService--Cg-3QFR.js";import"./filemanager-BcuN6Qnn.js";import"./integrations-1RZ5dQPH.js";import"./FileManager-lO1IMKZP.js";import"./FileUploader-Cucuym7F.js";import"./devextreme-Cm-RDc2K.js";import"./@babel-Di3zDOWq.js";import"./jszip-FWobEVPZ.js";import"./inferno-DlLchRqb.js";import"./@devextreme-CA69xFKW.js";import"./inferno-create-element-t9Z-UGAf.js";import"./rrule-AGnbG-8B.js";/* empty css                                                                     */import"./Button-WHl5ybR6.js";import"./LoadIndicator-BgyZK2JN.js";import"./ExternalMediaPickerDialog-BamjqhbH.js";import"./TagInput-Bf8PRXYF.js";import"./TagBox-cHGb6qcw.js";import"./base-DaZyAnT4.js";import"./Popover-CLl4DhyH.js";/* empty css                                                               */import"./TagService-DZsZMx93.js";import"./CategoriaService-CvuRf6Mt.js";const L=[{text:"Mínimo / Máximo",value:"SUGGESTION_METHOD_MIN_MAX"},{text:"Ponto de Pedido",value:"SUGGESTION_METHOD_REORDER_POINT"},{text:"Previsão de Demanda",value:"SUGGESTION_METHOD_DEMAND_FORECAST"}],W={ABC_CLASS_A:"A",ABC_CLASS_B:"B",ABC_CLASS_C:"C"};class R extends B{async analisa(s){const n={method:s.method,categoryIds:s.categoryIds||[],productIds:s.productIds||[],leadTimeDays:s.leadTimeDays||0,coverageDays:s.coverageDays||0,analysisWindowDays:s.analysisWindowDays||0,onlyToBuy:!!s.onlyToBuy,explodeComposition:!!s.explodeComposition};return(await this.POST("/sugestao-compras/analisa",n)).data.items||[]}async geraPedidos(s,n=!0){const r={items:s.map(o=>({productId:o.productId,productCode:o.productCode,productName:o.productName,unit:o.unit,quantity:o.suggestedQuantity||o.quantity||0,unitPrice:o.lastPurchasePrice||o.unitPrice||0,vendorId:o.vendorId||"",vendorName:o.vendorName||""})),groupByVendor:n},m=await this.POST("/sugestao-compras/gera-pedidos",r);return{purchaseOrderIds:m.data.purchaseOrderIds||[],totalOrders:m.data.totalOrders||0}}async geraCotacao(s,n=""){const r={title:n,items:s.map(o=>({productId:o.productId,productCode:o.productCode,productName:o.productName,unit:o.unit,quantity:o.suggestedQuantity||o.quantity||0,unitPrice:o.lastPurchasePrice||o.unitPrice||0,vendorId:o.vendorId||"",vendorName:o.vendorName||""}))},m=await this.POST("/sugestao-compras/gera-cotacao",r);return{quotationId:m.data.quotationId||"",quotationNumber:m.data.quotationNumber||0}}}const Q={class:"sugestao-compras"},H={class:"sugestao-toolbar"},z={key:0,class:"sugestao-empty"},F={key:1,class:"sugestao-grid"},X={__name:"SugestaoCompras",setup(v){const{proxy:s,appContext:n}=G(),r=new R;k(()=>{const a=n.app;a.component("Categoria")||a.component("Categoria",A)});const m=L,o=I([]),g=I(null),t=$({method:"SUGGESTION_METHOD_REORDER_POINT",categoryId:null,leadTimeDays:7,coverageDays:30,analysisWindowDays:90,onlyToBuy:!0,explodeComposition:!1}),T=[{field:"productCode",title:"Código",width:"100px",editable:!1},{field:"productName",title:"Produto",editable:!1},{field:"vendorName",title:"Fornecedor",width:"180px",editable:!1},{field:"unit",title:"Un",width:"60px",editable:!1},{field:"currentStock",title:"Estoque Atual",width:"120px",type:"number",editable:!1},{field:"minimumStock",title:"Mínimo",width:"100px",type:"number",editable:!1},{field:"maximumStock",title:"Máximo",width:"100px",type:"number",editable:!1},{field:"averageDailyConsumption",title:"Consumo Médio/Dia",width:"150px",type:"number",editable:!1}
1,{field:"reorderPoint",title:"Ponto de Pedido",width:"130px",type:"number",editable:!1},{field:"abcClass",title:"Classe ABC",width:"110px",editable:!1},{field:"suggestedQuantity",title:"Qtd Sugerida",width:"130px",type:"number",editable:!0},{field:"lastPurchasePrice",title:"Preço Unit.",width:"120px",type:"currency",editable:!1},{field:"estimatedCost",title:"Custo Estimado",width:"140px",type:"currency",editable:!1},{field:"incluir",title:"Incluir",width:"80px",type:"boolean",editable:!0}],P=a=>{t.categoryId=(a==null?void 0:a.id)||null,g.value=(a==null?void 0:a.nome)||(a==null?void 0:a.name)||null},h=()=>o.value.filter(a=>a.incluir&&(a.suggestedQuantity||0)>0),N=async()=>{try{r.loadingMessage="Analisando estoque...";const a=await r.analisa({method:t.method,categoryIds:t.categoryId?[t.categoryId]:[],leadTimeDays:t.leadTimeDays,coverageDays:t.coverageDays,analysisWindowDays:t.analysisWindowDays,onlyToBuy:t.onlyToBuy,explodeComposition:t.explodeComposition});o.value=a.map((e,l)=>({...e,id:e.productId?`${e.productId}:${e.sourceProductId||""}:${l}`:`row-${l}`,incluir:!0})),o.value.length===0&&p().show({title:"Sugestão de Compras",type:"info",message:"Nenhum item encontrado para os parâmetros informados."})}catch(a){p().show({title:"Erro",type:"error",message:`Erro ao analisar estoque: ${a.message||a}`})}finally{r.loadingMessage=""}},E=async()=>{const a=h();if(a.length===0){p().show({title:"Atenção",type:"warning",message:"Selecione ao menos um item com quantidade sugerida maior que zero."});return}try{r.loadingMessage="Gerando pedidos de compra...";const e=await r.geraPedidos(a,!0);s.$showMessage({title:"Sugestão de Compras",type:"success",message:`${e.totalOrders} pedido(s) de compra gerado(s)!`}),o.value=[]}catch(e){p().show({title:"Erro",type:"error",message:`Erro ao gerar pedidos: ${e.message||e}`})}finally{r.loadingMessage=""}},M=async()=>{const a=h();if(a.length===0){p().show({title:"Atenção",type:"warning",message:"Selecione ao menos um item com quantidade sugerida maior que zero."});return}try{r.loadingMessage="Gerando cotação...";const e=await r.geraCotacao(a);s.$showMessage({title:"Sugestão de Compras",type:"success",message:`Cotação ${e.quotationNumber||""} gerada com sucesso!`}),o.value=[]}catch(e){p().show({title:"Erro",type:"error",message:`Erro ao gerar cotação: ${e.message||e}`})}finally{r.loadingMessage=""}},O=(a,e)=>{if(a==="abcClass"){const l=W[e.abcClass]||"";return l?`<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${{A:"bg-green-100 text-green-800",B:"bg-blue-100 text-blue-800",C:"bg-gray-100 text-gray-800"}[l]||"bg-gray-100 text-gray-800"}">${l}</span>`:{}}return{}};return(a,e)=>{const l=u("SelectBox"),x=u("Lookup"),y=u("NumberBox"),b=u("Checkbox"),f=u("f-button"),V=u("f-grid");return c(),C("div",Q,[w("div",H,[d(l,{modelValue:t.method,"onUpdate:modelValue":e[0]||(e[0]=i=>
1t.method=i),caption:"Método",options:U(m),"field-style":{width:"220px"},"help-message":"Define como a quantidade sugerida é calculada: mínimo/máximo do cadastro, ponto de pedido (consumo × lead time) ou previsão de demanda (consumo × lead time + cobertura)."},null,8,["modelValue","options"]),d(x,{modelValue:g.value,"onUpdate:modelValue":e[1]||(e[1]=i=>g.value=i),caption:"Categoria",component:"Categoria","page-title":"Selecionar Categoria",width:"240px","value-id":t.categoryId,"help-message":"Filtra a análise pelos produtos da categoria selecionada. Deixe em branco para analisar todos.",onValue:P},null,8,["modelValue","value-id"]),d(y,{modelValue:t.leadTimeDays,"onUpdate:modelValue":e[2]||(e[2]=i=>t.leadTimeDays=i),caption:"Lead Time (dias)",min:0,"field-style":{width:"150px"},"help-message":"Prazo médio de entrega do fornecedor, em dias. Usado no ponto de pedido e na previsão de demanda."},null,8,["modelValue"]),d(y,{modelValue:t.coverageDays,"onUpdate:modelValue":e[3]||(e[3]=i=>t.coverageDays=i),caption:"Cobertura (dias)",min:0,"field-style":{width:"150px"},"help-message":"Quantos dias de estoque você deseja manter após a chegada da compra. Soma-se ao lead time na previsão de demanda."},null,8,["modelValue"]),d(y,{modelValue:t.analysisWindowDays,"onUpdate:modelValue":e[4]||(e[4]=i=>t.analysisWindowDays=i),caption:"Janela de Análise (dias)",min:0,"field-style":{width:"180px"},"help-message":"Período histórico usado para calcular o consumo médio diário (padrão 90 dias)."},null,8,["modelValue"]),d(b,{modelValue:t.onlyToBuy,"onUpdate:modelValue":e[5]||(e[5]=i=>t.onlyToBuy=i),caption:"Apenas itens a comprar"},null,8,["modelValue"]),d(b,{modelValue:t.explodeComposition,"onUpdate:modelValue":e[6]||(e[6]=i=>t.explodeComposition=i),caption:"Expandir composição","help-text":"Produtos compostos são convertidos nos componentes para compra."},null,8,["modelValue"]),d(f,{caption:"Analisar",type:"primary",icon:"search",onClick:N}),o.value.length>0?(c(),S(f,{key:0,caption:"Gerar Pedido(s)",type:"success",icon:"check",onClick:E})):_("",!0),o.value.length>0?(c(),S(f,{key:1,caption:"Gerar Cotação",type:"default",icon:"file",onClick:M})):_("",!0)]),o.value.length===0?(c(),C("div",z,[...e[7]||(e[7]=[D(" Defina os parâmetros e clique em ",-1),w("strong",null,"Analisar",-1),D(" para gerar as sugestões de compra. ",-1)])])):(c(),C("div",F,[d(V,{data:o.value,columns:T,"allow-edit":!0,"style-cell":O,"style-cell-fields":["abcClass"],height:"100%"},null,8,["data"])]))])}}},je=q(X,[["__scopeId","data-v-444d7899"]]);export{je as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.