{"version":3,"sources":["pages/Home/Home.tsx","model/itIT.ts","core/ConfirmDialog.tsx","pages/usersApplications/UserApplicationList.tsx","hooks/useUtentiApplicazioni.ts","hooks/useMe.ts","hooks/useUtentiClienti.ts","hooks/useClienti.ts","pages/userCustomer/UserCustomerList.tsx","hooks/useUtentiGruppi.ts","core/UserContext.ts","hooks/useDuvri.ts","core/DuvriItem.tsx","pages/customers/components/CustomerDuvri.tsx","core/ConfirmTextDialog.tsx","pages/customers/components/CustomerDetails.tsx","hooks/useUtils.ts","core/DuvriLogsList.tsx","hooks/useChiaveValore.ts","hooks/useClienteMoc.ts","pages/customers/CustomerList.tsx","pages/duvriTemplates/DuvriTemplatesList.tsx","hooks/useDuvriTemplates.ts","gilbarco_top.gif","pages/customers/CustomerDuvriEdit.tsx","hooks/useCliente.ts","pages/duvri/DuvriConfig.tsx","hooks/useDuvriConfig.ts","hooks/useOds.ts","pages/ods/components/OdsDocEdit.tsx","pages/ods/components/OdsEdit.tsx","core/OdsStatiLogsList.tsx","pages/ods/OdsList.tsx","hooks/useOdsRichiesta.ts","pages/ods/OdsRequestEdit.tsx","pages/ods/components/OdsRequestView.tsx","pages/ods/OdsRequestList.tsx","pages/ods/components/OdsRow.tsx","pages/ods/OdsNew.tsx","hooks/useManutentori.ts","hooks/useOrdiniVendita.ts","hooks/usePuntiVendita.ts","hooks/useArticoli.ts","pages/mantainersCustomers/MantainersCustomersList.tsx","hooks/useManutentoreCliente.ts","core/react-azure-adb2c.js","core/auth-utils.js","pages/ods/OdsPdfEdit.tsx","hooks/useParametri.ts","ForbiddenPage.tsx","hooks/useChiamate.ts","pages/chiamate/components/ChiamataEdit.tsx","pages/chiamate/ChiamateList.tsx","pages/ods/OdsAccept.tsx","pages/os/components/OsEdit.tsx","pages/os/OsList.tsx","hooks/useOs.ts","App.tsx","serviceWorker.tsx","index.tsx"],"names":["Home","itIT","getGridLocalization","noRowsLabel","errorOverlayDefaultLabel","toolbarDensity","toolbarDensityLabel","toolbarDensityCompact","toolbarDensityStandard","toolbarDensityComfortable","toolbarColumns","toolbarColumnsLabel","toolbarFilters","toolbarFiltersLabel","toolbarFiltersTooltipHide","toolbarFiltersTooltipShow","toolbarFiltersTooltipActive","count","columnsPanelTextFieldLabel","columnsPanelTextFieldPlaceholder","columnsPanelDragIconLabel","columnsPanelShowAllButton","columnsPanelHideAllButton","filterPanelAddFilter","filterPanelDeleteIconLabel","filterPanelOperators","filterPanelOperatorAnd","filterPanelOperatorOr","filterPanelColumns","filterPanelInputLabel","filterPanelInputPlaceholder","filterOperatorContains","filterOperatorEquals","filterOperatorStartsWith","filterOperatorEndsWith","filterOperatorIs","filterOperatorNot","filterOperatorOnOrAfter","filterOperatorAfter","filterOperatorOnOrBefore","filterOperatorBefore","columnMenuLabel","columnMenuShowColumns","columnMenuFilter","columnMenuHideColumn","columnMenuUnsort","columnMenuSortAsc","columnMenuSortDesc","columnHeaderFiltersTooltipActive","columnHeaderFiltersLabel","columnHeaderSortIconLabel","footerRowSelected","toLocaleString","footerTotalRows","checkboxSelectionHeaderName","itITCore","ConfirmDialog","props","title","children","open","setOpen","onConfirm","Dialog","onClose","aria-labelledby","DialogTitle","id","DialogContent","DialogActions","Button","variant","onClick","color","UserApplicationList","useState","modalOpen","confirmState","setConfirmState","utenti","setUtenti","error","setError","loadData","axios","get","process","then","res","data","catch","e","useEffect","actions","postUtenteApplicazione","appPk","utenteFk","post","deleteUtenteApplicazione","delete","useUtentiApplicazioni","columns","field","headerName","width","sortable","filterable","renderCell","params","row","applicazionis","map","a","FormControlLabel","control","Switch","size","checked","onChange","modalMessage","upn","nome","applicazione","newUserFk","utentePk","label","theme","createMuiTheme","Typography","gutterBottom","style","ThemeProvider","rows","autoHeight","pageSize","getRowId","r","components","Toolbar","disableSelectionOnClick","useMe","permessi","setPermessi","utente","setUtente","permessiRic","setPermessiRic","user","setTimeout","length","_user","useUtentiClienti","appFk","getClienti","clientePk","downloadExcel","method","responseType","response","require","saveAs","console","log","getUtentiCliente","useClienti","clienti","setClienti","clientiContatti","setClientiContatti","clientiCompagnie","setClientiCompagnie","logs","setLogs","putClienteStatoDuvri","stato","put","getCliente","getClienteContatti","putCliente","cliente","getClienteCompagnie","postClienteCompagnia","compagniaPk","deleteClienteCompagnia","getClientiNonValidi","filter","o","codiceDuvri","getLogCliente","UserCustomerList","gruppi","setGruppi","putUtentiGruppi","getUtentiGruppi","useUtentiGruppi","actionsGruppi","dialogOpen","dialogState","setDialogState","groupDialogState","setGroupDialogState","selGroups","ragioneSociale","trim","align","ret","startIcon","float","Autocomplete","options","getOptionLabel","option","renderInput","TextField","margin","c","customer","className","disabled","addAssCustomer","maxWidth","fullWidth","autoPageSize","checkboxSelection","gruppoPk","selectionModel","onSelectionModelChange","s","groups","forEach","g","push","toString","putGroups","UserContext","React","createContext","UserProvider","Provider","useDuvri","duvri","setDuvri","duvriAllegati","setAllegatiDuvri","duvriReport","setDuvriReport","duvriActions","getDuvriCliente","getAllegatiDuvri","duvriDatiPk","getDuvriReport","deleteFile","duvriPk","allegatoPk","viewFilePdf","file","Blob","type","fileURL","URL","createObjectURL","window","downloadFile","filename","postFile","formData","putData","dataPubblicazione","moment","local","format","postAbRequest","postDeclineAbRequest","message","postAcceptAuthRequest","DuvriItem","confirm","useConfirm","setFile","uploadDialogOpen","setUploadDialogOpen","Date","publishDate","setPublishDate","expireDate","setExpireDate","ggValiditaDati","ggValidita","setGgValidita","calculateExpire","ggVal","date","valueOf","setDate","getDate","pd","duvriFk","reloadDuvriReport","snackbarService","showSnackbar","GgValidita","Grid","item","xs","FormControl","InputLabel","Select","value","labelId","target","JSON","parse","confCampi","values","i","MenuItem","DatePicker","utils","DateFnsUtils","autoOk","disableToolbar","d","v","KeyboardButtonProps","toLocaleDateString","Paper","padding","marginTop","minNumAll","tipo","container","direction","justify","alignItems","alignContent","TableContainer","component","Table","TableHead","TableRow","TableCell","display","TableBody","nomeFile","IconButton","aria-label","toLowerCase","indexOf","duvriDatiAllPk","description","DialogContentText","files","undefined","FormData","append","name","CustomerDuvri","valido","borderColor","numAllegati","scadenza","ConfirmTextDialog","messageLabel","setMessage","onCancel","confirmButtonLabel","multiline","CustomerDetails","tab","setTab","useContext","mocFile","setMocFile","declineMessagaState","setDeclineMessagaState","ldb","onSubmit","onSave","putMoc","enableCustomer","marginRight","dataRichAbilitazione","acceptAuthRequest","Tabs","indicatorColor","textColor","Tab","ldbFornitore","p","initialValues","slProvincia","slProvinciaSigla","certQualitaCheck","certQualita","certAmbCheck","certAmb","consorzioCheck","consorzio","validate","errors","render","handleSubmit","submitting","form","pristine","noValidate","spacing","clienteContatti","nominativo","contatto","clienteCompagnie","formControlProps","placeholder","mocNomefile","downloadMoc","viewPdfMoc","deleteMoc","postDeclineMessage","useUtils","convertedTime","formatter","Intl","NumberFormat","currency","stringStateChiamata","setsStringStateChiamata","utilsActions","formatDate","formatCurrency","num","serializeToQueryParams","obj","str","hasOwnProperty","encodeURIComponent","toISOString","join","statoChiamataConvertedToString","convertNumberTime","lenghtNum","stri","match","formatDateTime","_date","toLocaleTimeString","nvl","formatIsoDateTime","getFullYear","getMonth","slice","getHours","getMinutes","DuvriLogsList","headerAlign","dataOperazione","disableColumnMenu","pagination","logPk","useChiaveValore","statiDuvri","setStatiDuvri","setLdb","tipiAnagrafica","setTipiAnagrafica","statiOdsJde","setStatiOdsJde","statiOsJde","setStatiOsJde","statiOds","setStatiOds","autoriOds","setAutoriOds","approvatoriOds","setApprovatoriOds","compagnie","setCompagnie","attrezzature","setAttrezzature","componenti","setComponenti","difetti","setDifetti","cause","setCause","soluzioni","setSoluzioni","actionsCV","getStatiDuvri","getLdb","getTipiAnagrafica","getStatiOdsJde","getStatiOds","getApprovatoriOds","getCompagnie","getStatiOsJde","getDifetti","getCause","codiceL1","getSoluzioni","codiceL2","getAttrezzature","getComponenti","attrezzaturaPk","getAutoriOds","useClienteMoc","mocActions","postMoc","CustomerList","filterState","setFilterState","selClienteState","setSelClienteState","showDetails","setShowDetails","page","setPage","OpenCustomer","enable","sendApproveResponse","tipoAnagrafica","marginBottom","textAlign","Checkbox","defaultValue","chiave","valore","codice","slRegione","partitaIva","onPageChange","newPage","filtered","toUpperCase","GetFilteredCustomers","abilitazioneDuvri","cursor","ldbDescrizione","tipoAnagraficaDescrizione","OpenLogs","Toc","getColsDef","rowHeight","DuvriTemplatesList","templates","setTemplates","postTemplate","viewPdfTemplate","templatePk","downloadTemplate","deleteTemplate","useDuvriTemplates","note","setNote","ddi","duvriTemplPk","CustomerDuvriEdit","setCliente","actionsCliente","useCliente","Send","DuvriConfig","getDuvriList","patchDuvri","patch","useDuvriConfig","InputLabelProps","shrink","_duvri","index","findIndex","changeGgValidita","useOds","ods","setOds","allegati","setAllegati","odsActions","getOdsList","getSimpleOdsList","searchOds","getOds","documentoPk","patchPlanDate","dataIntervento","utc","patchState","ordini","getOdsFk","odjobs","postDoc","docData","getIncarico","guid","getOdsGuid","patchAccept","getAllegati","odsPk","postAllegato","deleteAllegato","viewAllegatoPdf","downloadAllegato","getStatusLog","odsFk","OdsDocEdit","from","cognome","to","orderNumber","numeroOrdineAcquisto","notes","MUIEditorState","createEmpty","setDocData","codiceManutentore","u","toHTML","getCurrentContent","openOds","required","editorState","OdsEdit","planDate","setPlanDate","statoFk","state","setState","showCreateDocDialog","setShowCreateDocDialog","utenteApprovazione","guidAllegato","nomeAllegato","utenteCreazioneAllegato","destinatarioAllegato","dataInvioAllegato","dataApprovazione","tipoRigaFatturaFornitore","tipoOrdine","statoOrdine","dataRichiesta","centroControllo","readOnly","status","utenteInserimento","odsAllegatoPk","codiceConsorzio","manutentore","numeroOrdineVendita","rigaOrdineAcquisto","codicePv","aliasPv","zonaPv","capPv","cittaPv","provinciaPv","numeroInterventi","codiceProdotto","descrizione","descrizione2","quantitaOrdine","pezziRichiesti","pezziRicevuti","importo","totale","OdsStatiLogsList","odsStatoLogPk","OdsList","dataRichiestaTo","selOdsState","setSelOdsState","search","useLocation","URLSearchParams","OpenOds","importoRichiesto","importoRicevuto","dataFatturaFornitore","close","utenteCreazione","location","reload","disableColumnFilter","useOdsRichiesta","odsRichieste","setOdsRichieste","odsRichiesta","setOdsRichiesta","odsRichiesteApprovatori","setOdsRichiesteApprovatori","odsRichiesteAllegati","setOdsRichiesteAllegati","odsRichiestaActions","postRichiesta","getListaRichieste","getApprovatori","richiestaPk","viewAttachmentPdf","downloadAttachment","patchDataApprovazione","patchOdsFk","getRichiesta","OdsRequestEdit","editorConfig","approvatori","cc","richiestaState","setRichiestaState","setFiles","fileList","setFileList","setEditorState","history","useHistory","oggetto","multiple","event","split","renderValue","selected","ListItemText","primary","config","_files","splice","f","scroll","Array","find","addFile","OdsRequestView","filterOptions","createFilterOptions","matchFrom","limit","openAssOdsDialog","onApprove","nomeApprovatore","dangerouslySetInnerHTML","__html","body","OdsRequestList","statoRichiesta","utenteRichiesta","selOdsRichiesta","setSelOdsRichiesta","pkRichiesta","dum","OpenRichiesta","utentiApprovatori","GetFilteredRows","OdsRow","tabIndex","deleteRow","rowIndex","fromOV","ordineValido","numDoc","onBlur","searchDoc","updateRow","numRiga","tipoDoc","articoli","articolo","descrizione1","quantita","codCliente","descrizioneCliente","puntiVendita","codPv","searchPv","descrizionePv","indirizzoPv1","indirizzoPv2","indirizzoPv3","manutentori","costo","OdsNew","setManutentori","manActions","getManutentori","useManutentori","codiceCommessa","setCodiceCommessa","ovActions","getOrdineVendita","docNum","getCodiceCommessa","useOrdiniVendita","setPuntiVendita","pvActions","getPuntoVendita","getPuntiVendita","usePuntiVendita","setArticoli","articoliActions","getArticoli","useArticoli","stausCodeFrom","stausCodeTo","completed","datiTesta","setDatiTesta","righeOrdine","setRigheOrdine","fkRichiesta","pathname","addRow","_rows","ordineVendita","isValid","sdlttr","sdnxtr","indirizzoPv4","nazionePv","tipoOds","concat","codManutentore","codConsorzio","save","overflow","verticalAlign","MantainersCustomersList","useManutentoriClienti","accept","msalApp","B2C_SCOPES","API_ACCESS","scopes","msalAppConfig","auth","clientId","authority","redirectUri","validateAuthority","postLogoutRedirectUri","cache","cacheLocation","storeAuthStateInCookie","ua","navigator","userAgent","msie","msie11","isIE","AUTHORIZATION_KEY","stopLoopingRedirect","launchApp","accessToken","msalObj","acquireToken","successCallback","getAccount","acquireTokenSilent","localStorage","setItem","sessionStorage","acquireTokenRedirect","loginRedirect","authentication","initialize","tenantSubdomain","tenant","instance","signInPolicy","initializeConfig","msal","run","handleRedirectCallback","errorMessage","WrappedComponent","renderLoading","signedIn","this","Component","signOut","logout","getAccessToken","OdsPdfEdit","parametriActions","getParametro","parPk","patchParametro","testata","setTestata","condizioni","setCondizioni","convertFromHTML","ContentState","createFromBlockArray","contentBlocks","entityMap","createWithContent","useStyles","makeStyles","createStyles","meassge","height","flexDirection","justifyContent","ForbiddenPage","classes","fontSize","useChiamate","chiamate","setChiamate","chiamateActions","getChiamateList","searchChiamate","getChiamata","chiamataPk","ChiamataEdit","checkedA","checkedB","checkedF","checkedG","chiamata","setChiamata","numeroChiamata","codiciProblema","componenteFk","attrezzaturaFk","numero","inChiusura","problemaRiscontratoFk","nomeTecnico","inizioIntervento","fineIntervento","nomeContatto","codiceCliente","nomeRichiedente","nrTelefonoRichiedente","nrChiamanteRichiedente","indirizzoPv","telefonoPv","codiceGilbarco","codiceDittaIncaricata","nomeDittaIncaricata","nomeConsorzio","codiceOperatoreGilbarco","nomeOperatoreGilbarco","codiceAttrezzaturaDichiarata","nomeAttrezzaturaDichiarata","codiceComponenteDichiarato","nomeComponenteDichiarato","borderBottom","difettoDichiarato","difettoRiscontrato","causaRiscontrata","codiceL3","noMatRimosso","dataRicezione","oraRicezione","dataChiusura","oraChiusura","dataAssegnazione","oraAssegnazione","fascia","dataChiuPrevista","oraChiuPrevista","ChiamateList","aDataRicezione","selChiaState","setSelChiaState","OpenChiamata","flex","marginLeft","OdsAccept","odsState","setOdsState","OsEdit","OsList","os","setOs","osActions","getOsList","searchOs","getOs","useOs","selOsState","setSelOsState","OpenOs","drawerWidth","root","drawer","breakpoints","up","flexShrink","appBar","backgroundColor","menuButton","toolbar","mixins","drawerPaper","content","flexGrow","ResponsiveDrawer","mobileOpen","setMobileOpen","ammDuvriOpen","setAmmDuvriOpen","ammOdsOpen","setAmmOdsOpen","ammChiamateOpen","setAmmChiamateOpen","gestDuvriOpen","setGestDuvriOpen","gestOdsOpen","setGestOdsOpen","gestChiamateOpen","setGestChiamateOpen","custGestDuvriOpen","setCustGestDuvriOpen","pjson","anchorEl","setAnchorEl","Boolean","handleDrawerToggle","src","alt","Divider","List","ListItem","activeClassName","button","NavLink","exact","ListItemIcon","HomeRounded","People","Collapse","in","unmountOnExit","paddingLeft","Description","document","defaultOptions","cancellationText","confirmationText","CssBaseline","AppBar","position","elevation","edge","fontWeight","buildDate","aria-controls","aria-haspopup","currentTarget","AccountCircle","Menu","MenuListProps","Avatar","b2cauth","Hidden","smUp","implementation","Drawer","paper","ModalProps","keepMounted","xsDown","path","hostname","origin","reqCount","checkTokenExpired","decoded","jwt_decode","now","exp","interceptors","request","use","getElementById","classList","add","headers","Authorization","Promise","reject","remove","ReactDOM","left","top","zIndex","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.71a47e56.chunk.js","sourcesContent":["export function Home() {\r\n \r\n return (\r\n
\r\n\r\n Home\r\n
\r\n );\r\n}\r\n","import { itIT as itITCore } from '@material-ui/core/locale';\r\nimport { getGridLocalization, GridLocaleText, Localization } from '@material-ui/data-grid';\r\n\r\nconst itITGrid: Partial = {\r\n // Root\r\n noRowsLabel: 'Nessun record',\r\n errorOverlayDefaultLabel: 'Si è verificato un errore.',\r\n\r\n // Density selector toolbar button text\r\n toolbarDensity: 'Densità',\r\n toolbarDensityLabel: 'Densità',\r\n toolbarDensityCompact: 'Compact',\r\n toolbarDensityStandard: 'Standard',\r\n toolbarDensityComfortable: 'Confortable',\r\n\r\n // Columns selector toolbar button text\r\n toolbarColumns: 'Colonne',\r\n toolbarColumnsLabel: 'Seleziona le colonne',\r\n\r\n // Filters toolbar button text\r\n toolbarFilters: 'Filtri',\r\n toolbarFiltersLabel: 'Mostra i filtri',\r\n toolbarFiltersTooltipHide: 'Nascondi i filtri',\r\n toolbarFiltersTooltipShow: 'Mostra i filtri',\r\n toolbarFiltersTooltipActive: (count) =>\r\n count > 1 ? `${count} filtri attivi` : `${count} filtro attivo`,\r\n\r\n // Columns panel text\r\n columnsPanelTextFieldLabel: 'Cerca colonna',\r\n columnsPanelTextFieldPlaceholder: 'Titolo della colonna',\r\n columnsPanelDragIconLabel: 'Riordina la colonna',\r\n columnsPanelShowAllButton: 'Mostra tutto',\r\n columnsPanelHideAllButton: 'Nascondi tutto',\r\n\r\n // Filter panel text\r\n filterPanelAddFilter: 'Aggiungi un filtro',\r\n filterPanelDeleteIconLabel: 'Rimuovi',\r\n filterPanelOperators: 'Operatori',\r\n filterPanelOperatorAnd: 'E (and)',\r\n filterPanelOperatorOr: 'O (or)',\r\n filterPanelColumns: 'Colonne',\r\n filterPanelInputLabel: 'Valore',\r\n filterPanelInputPlaceholder: 'Filtra il valore',\r\n\r\n // Filter operators text\r\n filterOperatorContains: 'contiene',\r\n filterOperatorEquals: 'uguale a',\r\n filterOperatorStartsWith: 'comincia per',\r\n filterOperatorEndsWith: 'termina per',\r\n filterOperatorIs: 'uguale a',\r\n filterOperatorNot: 'diversa da',\r\n filterOperatorOnOrAfter: 'a partire dal',\r\n filterOperatorAfter: 'dopo il',\r\n filterOperatorOnOrBefore: 'fino al',\r\n filterOperatorBefore: 'prima del',\r\n\r\n // Column menu text\r\n columnMenuLabel: 'Menu',\r\n columnMenuShowColumns: 'Mostra le colonne',\r\n columnMenuFilter: 'Filtra',\r\n columnMenuHideColumn: 'Nascondi',\r\n columnMenuUnsort: \"Annulla l'ordinamento\",\r\n columnMenuSortAsc: 'Ordinamento crescente',\r\n columnMenuSortDesc: 'Ordinamento decrescente',\r\n\r\n // Column header text\r\n columnHeaderFiltersTooltipActive: (count) =>\r\n count > 1 ? `${count} filtri attivi` : `${count} filtro attivo`,\r\n columnHeaderFiltersLabel: 'Mostra i filtri',\r\n columnHeaderSortIconLabel: 'Ordina',\r\n\r\n // Rows selected footer text\r\n footerRowSelected: (count) =>\r\n count > 1\r\n ? `${count.toLocaleString()} record selezionati`\r\n : `${count.toLocaleString()} record selezionato`,\r\n\r\n // Total rows footer text\r\n footerTotalRows: 'Record totali :',\r\n\r\n // Checkbox selection text\r\n checkboxSelectionHeaderName: 'Seleziona',\r\n};\r\n\r\nexport const itIT: Localization = getGridLocalization(itITGrid, itITCore);","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nexport const ConfirmDialog = (props) => {\r\n const { title, children, open, setOpen, onConfirm } = props;\r\n return (\r\n setOpen(false)}\r\n aria-labelledby=\"confirm-dialog\"\r\n >\r\n {title}\r\n {children}\r\n \r\n setOpen(false)}\r\n color=\"secondary\"\r\n >\r\n No\r\n \r\n {\r\n setOpen(false);\r\n onConfirm();\r\n }}\r\n color=\"default\"\r\n >\r\n Si\r\n \r\n \r\n \r\n );\r\n};","import { useState } from 'react';\r\nimport { Applicazioni } from '../../model/utente';\r\nimport {\r\n DataGrid,\r\n GridCellParams,\r\n GridColDef,\r\n GridFilterToolbarButton,\r\n GridToolbarContainer\r\n} from '@material-ui/data-grid';\r\nimport { createMuiTheme, FormControlLabel, Switch, Typography, ThemeProvider } from '@material-ui/core';\r\nimport { itIT } from '../../model/itIT';\r\nimport { ConfirmDialog } from '../../core/ConfirmDialog';\r\nimport { useUtentiApplicazioni } from '../../hooks/useUtentiApplicazioni';\r\n\r\nexport interface ConfirmState {\r\n modalOpen: boolean;\r\n modalMessage?: string;\r\n applicazione?: Applicazioni;\r\n newUserFk?: number;\r\n}\r\n\r\nexport function UserApplicationList() {\r\n const [confirmState, setConfirmState] = useState({ modalOpen: false });\r\n const { utenti, actions } = useUtentiApplicazioni();\r\n\r\n const columns: GridColDef[] = [\r\n { field: 'upn', headerName: 'Email', width: 300 },\r\n { field: 'nome', headerName: 'Nome', width: 150 },\r\n { field: 'cognome', headerName: 'Cognome', width: 150 },\r\n {\r\n field: 'applicazionis',\r\n sortable: false,\r\n headerName: 'Applicazioni',\r\n filterable: false,\r\n width: 500, renderCell: (params: GridCellParams) => {\r\n return
\r\n {\r\n params.row.applicazionis.map(a => {\r\n return (\r\n setConfirmState(\r\n {\r\n modalOpen: true,\r\n modalMessage: a.utenteFk ? `Rimuovere l'utente ${params.row.upn} dall'applicazione ${a.nome}?` : `Aggiungere l'utente ${params.row.upn} all'applicazione ${a.nome}?`,\r\n applicazione: a,\r\n newUserFk: a.utenteFk ? null : params.row.utentePk\r\n })}\r\n color=\"primary\"\r\n />\r\n }\r\n label={a.nome}\r\n />\r\n )\r\n })\r\n }\r\n
\r\n }\r\n }\r\n ];\r\n\r\n function updateUserApp() {\r\n if (confirmState.newUserFk) {\r\n actions.postUtenteApplicazione(confirmState.applicazione?.appPk!, confirmState.newUserFk);\r\n } else {\r\n actions.deleteUtenteApplicazione(confirmState.applicazione?.appPk!, confirmState.applicazione?.utenteFk!);\r\n }\r\n }\r\n\r\n function CustomToolbar() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const theme = createMuiTheme(\r\n {\r\n\r\n },\r\n itIT,\r\n );\r\n\r\n return (\r\n
\r\n \r\n Gestione accesso utenti/applicazioni\r\n \r\n {\r\n
\r\n \r\n r.utentePk}\r\n components={{\r\n Toolbar: CustomToolbar,\r\n }}\r\n disableSelectionOnClick\r\n />\r\n \r\n setConfirmState({ modalOpen: open })}\r\n onConfirm={updateUserApp}\r\n >\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Utente } from '../model/utente';\r\n\r\nexport function useUtentiApplicazioni() {\r\n const [utenti, setUtenti] = useState([]);\r\n const [error, setError] = useState(\"\");\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n function loadData() {\r\n axios.get(process.env.REACT_APP_API_URL + 'ApplicazioniUtenti')\r\n .then(res => setUtenti(res.data))\r\n .catch(e => setError(e));\r\n }\r\n\r\n function postUtenteApplicazioneHandler(appPk: number, utenteFk: number) {\r\n axios.post(process.env.REACT_APP_API_URL + 'ApplicazioniUtenti', {\r\n appPk: appPk,\r\n utenteFk: utenteFk\r\n })\r\n .then(() => loadData())\r\n .catch(e => setError(e));\r\n }\r\n\r\n function deleteUtenteApplicazioneHandler(appPk: number, utenteFk: number) {\r\n axios.delete(process.env.REACT_APP_API_URL + 'ApplicazioniUtenti', {\r\n data: {\r\n appPk: appPk,\r\n utenteFk: utenteFk\r\n }\r\n })\r\n .then(() => loadData())\r\n .catch(e => setError(e));\r\n }\r\n\r\n return {\r\n utenti,\r\n error,\r\n actions: {\r\n postUtenteApplicazione: postUtenteApplicazioneHandler,\r\n deleteUtenteApplicazione: deleteUtenteApplicazioneHandler\r\n }\r\n }\r\n}","import { useEffect, useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Permesso } from '../model/permesso';\r\nimport { Utente } from '../model/utente';\r\n\r\nexport function useMe() {\r\n const [permessi, setPermessi] = useState([]);\r\n const [utente, setUtente] = useState({});\r\n const [error, setError] = useState(\"\");\r\n const [permessiRic, setPermessiRic] = useState(false);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n async function loadData() {\r\n let permessi = await axios.get(process.env.REACT_APP_API_URL + 'Me/Permessi');\r\n let user = await axios.get(process.env.REACT_APP_API_URL + 'Me');\r\n\r\n setTimeout(function () {\r\n setPermessiRic(true);\r\n }, 1000);\r\n \r\n setPermessi(permessi.data);\r\n if(permessi.data.length > 0){\r\n let _user = user.data;\r\n _user.permessi = permessi.data;\r\n setUtente(_user);\r\n }\r\n }\r\n\r\n return {\r\n permessi,\r\n permessiRic,\r\n utente,\r\n error\r\n }\r\n}","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Utente } from '../model/utente';\r\n\r\nexport function useUtentiClienti(appFk: number) {\r\n const [utenti, setUtenti] = useState([]);\r\n const [error, setError] = useState(\"\");\r\n\r\n function getClienti() {\r\n axios.get(process.env.REACT_APP_API_URL + 'UtentiClienti/' + appFk)\r\n .then(res => setUtenti(res.data))\r\n .catch(e => setError(e));\r\n }\r\n\r\n function getUtentiCliente(clientePk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'UtentiClienti/Cliente/' + clientePk)\r\n .then(res => setUtenti(res.data))\r\n .catch(e => setError(e));\r\n }\r\n\r\n function postUtenteApplicazioneHandler(clientePk: number, utenteFk: number) {\r\n axios.post(process.env.REACT_APP_API_URL + 'UtentiClienti/' + appFk + '/' + utenteFk, {\r\n clientePk\r\n })\r\n .then(() => getClienti())\r\n .catch(e => setError(e));\r\n }\r\n\r\n function deleteUtenteApplicazioneHandler(utenteFk: number) {\r\n axios.delete(process.env.REACT_APP_API_URL + 'UtentiClienti/' + appFk + '/' + utenteFk)\r\n .then(() => getClienti())\r\n .catch(e => setError(e));\r\n }\r\n\r\n function downloadExcel() {\r\n axios(process.env.REACT_APP_API_URL + 'UtentiClienti/' + appFk + '/Excel', {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n var FileSaver = require('file-saver');\r\n FileSaver.saveAs(response.data, \"UtentiReport.xlsx\");\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n return {\r\n utenti,\r\n error,\r\n actions: {\r\n postUtenteApplicazione: postUtenteApplicazioneHandler,\r\n deleteUtenteApplicazione: deleteUtenteApplicazioneHandler,\r\n downloadExcel,\r\n getClienti,\r\n getUtentiCliente\r\n }\r\n }\r\n}","import { useEffect, useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Cliente, ClienteContatto } from '../model/cliente';\r\nimport { Log } from '../model/log';\r\n\r\nexport function useClienti() {\r\n const [clienti, setClienti] = useState([]);\r\n const [clientiContatti, setClientiContatti] = useState([]);\r\n const [clientiCompagnie, setClientiCompagnie] = useState([]);\r\n const [logs, setLogs] = useState([]);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n function loadData() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Clienti')\r\n .then(res => setClienti(res.data));\r\n }\r\n\r\n function getCliente(clientePk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk);\r\n }\r\n\r\n function getClienteContatti(clientePk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + '/Contatti');\r\n }\r\n\r\n function getClienteCompagnie(clientePk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + '/Compagnie');\r\n }\r\n\r\n function postClienteCompagnia(clientePk: number, compagniaPk: number) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + '/Compagnie', {\r\n clientePk: compagniaPk\r\n });\r\n }\r\n\r\n function deleteClienteCompagnia(clientePk: number, compagniaPk: number) {\r\n return axios.delete(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + '/Compagnie/' + compagniaPk\r\n );\r\n }\r\n\r\n function putClienteStatoDuvri(clientePk: number, stato: string) {\r\n return axios.put(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/stato/\", { stato })\r\n .then(r => loadData());\r\n }\r\n\r\n function putCliente(clientePk: number, cliente: Cliente) {\r\n return axios.put(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk, cliente);\r\n }\r\n\r\n function getClientiNonValidi() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Clienti/NonValidi')\r\n .then(res => setClienti(res.data.filter(o => o.codiceDuvri !== ' ')));\r\n }\r\n\r\n function getLogCliente(clientePk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + '/DUVRI/Logs');\r\n }\r\n\r\n return {\r\n clienti,\r\n clientiContatti,\r\n clientiCompagnie,\r\n logs,\r\n setClienti,\r\n setClientiContatti,\r\n setClientiCompagnie,\r\n setLogs,\r\n actions: {\r\n putClienteStatoDuvri,\r\n getCliente,\r\n getClienteContatti,\r\n putCliente,\r\n getClienteCompagnie,\r\n postClienteCompagnia,\r\n deleteClienteCompagnia,\r\n getClientiNonValidi,\r\n loadData,\r\n getLogCliente\r\n }\r\n }\r\n}","import { useEffect, useState } from 'react';\r\nimport {\r\n DataGrid,\r\n GridCellParams,\r\n GridColDef,\r\n GridFilterToolbarButton,\r\n GridRowId,\r\n GridToolbarContainer\r\n} from '@material-ui/data-grid';\r\nimport { createMuiTheme, Typography, ThemeProvider, Button, Dialog, DialogActions, DialogContent, DialogTitle } from '@material-ui/core';\r\nimport { itIT } from '../../model/itIT';\r\nimport { useUtentiClienti } from '../../hooks/useUtentiClienti';\r\nimport { useClienti } from '../../hooks/useClienti';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport { Cliente } from '../../model/cliente';\r\nimport { useUtentiGruppi } from '../../hooks/useUtentiGruppi';\r\nimport { Gruppo } from '../../model/gruppo';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nexport interface UserCustomerListProps {\r\n appFk: number;\r\n}\r\n\r\nexport interface AssCustomerState {\r\n dialogOpen: boolean,\r\n customer?: Cliente,\r\n utentePk?: number\r\n}\r\n\r\nexport interface AssGroupState {\r\n dialogOpen: boolean,\r\n utentePk?: number\r\n}\r\n\r\nexport const UserCustomerList: React.FC = (props) => {\r\n const { utenti, actions } = useUtentiClienti(props.appFk);\r\n const { setGruppi, gruppi, actions: actionsGruppi } = useUtentiGruppi();\r\n const { clienti } = useClienti();\r\n const [dialogState, setDialogState] = useState({ dialogOpen: false });\r\n const [groupDialogState, setGroupDialogState] = useState({ dialogOpen: false });\r\n let selGroups: GridRowId[] = [];\r\n const appPk = props.appFk;\r\n\r\n const columns: GridColDef[] = [\r\n { field: 'upn', headerName: 'Email', width: 300 },\r\n { field: 'nome', headerName: 'Nome', width: 150 },\r\n { field: 'cognome', headerName: 'Cognome', width: 150 },\r\n {\r\n field: 'cliente',\r\n headerName: 'Cliente',\r\n width: 300, renderCell: (params: GridCellParams) => {\r\n return
\r\n {params.row.cliente?.ragioneSociale?.trim()}\r\n\r\n
\r\n }\r\n },\r\n {\r\n field: 'button1',\r\n headerName: ' ',\r\n filterable: false,\r\n sortable: false,\r\n align: \"center\",\r\n width: 250, renderCell: (params: GridCellParams) => {\r\n return \r\n }\r\n },\r\n {\r\n field: 'button2',\r\n headerName: ' ',\r\n filterable: false,\r\n sortable: false,\r\n align: \"center\",\r\n width: 200, renderCell: (params: GridCellParams) => {\r\n return \r\n }\r\n }\r\n ];\r\n\r\n\r\n function openGroupDialog(utentePk: number) {\r\n actionsGruppi.getUtentiGruppi(utentePk, appPk).then(ret => {\r\n selGroups = [];\r\n setGruppi(ret.data);\r\n setGroupDialogState({ dialogOpen: true, utentePk: utentePk });\r\n });\r\n }\r\n\r\n function putGroups() {\r\n let groups: Pick[] = [];\r\n selGroups.forEach(g => {\r\n groups.push({ gruppoPk: +g.toString(), utenteFk: groupDialogState.utentePk! });\r\n })\r\n\r\n actionsGruppi.putUtentiGruppi(groupDialogState.utentePk!, groups, appPk);\r\n setGroupDialogState({ dialogOpen: false });\r\n }\r\n\r\n function addAssCustomer() {\r\n actions.postUtenteApplicazione(dialogState.customer?.clientePk!, dialogState.utentePk!);\r\n setDialogState({ dialogOpen: false });\r\n }\r\n\r\n function delAssCustomer() {\r\n actions.deleteUtenteApplicazione(dialogState.utentePk!);\r\n setDialogState({ dialogOpen: false });\r\n }\r\n\r\n function CustomToolbar() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n useEffect(() => {\r\n actions.getClienti();\r\n }, []);\r\n\r\n const theme = createMuiTheme(\r\n {\r\n\r\n },\r\n itIT,\r\n );\r\n\r\n return (\r\n
\r\n \r\n Gestione associazione utenti a anagrafica e permessi\r\n }\r\n onClick={() => actions.downloadExcel()}\r\n style={{ float: \"right\" }}\r\n >Scarica Excel\r\n \r\n\r\n {\r\n
\r\n \r\n r.utentePk}\r\n disableSelectionOnClick\r\n components={{\r\n Toolbar: CustomToolbar,\r\n }}\r\n />\r\n \r\n\r\n setDialogState({ dialogOpen: false })}\r\n >\r\n Associazione anagrafica ad utente\r\n \r\n option.clientePk + \" - \" + option.ragioneSociale}\r\n renderInput={(params) => }\r\n onChange={(e, c) => {\r\n if (c) {\r\n setDialogState({ ...dialogState, customer: c });\r\n }\r\n }}\r\n />\r\n \r\n \r\n setDialogState({ dialogOpen: false })}\r\n color=\"secondary\"\r\n >Annulla\r\n \r\n delAssCustomer()}\r\n >Rimuovi associazione\r\n \r\n addAssCustomer()}\r\n color=\"default\"\r\n >Conferma\r\n \r\n \r\n \r\n\r\n setGroupDialogState({ dialogOpen: false })}\r\n maxWidth=\"md\"\r\n fullWidth\r\n >\r\n Associazione utente ai gruppi\r\n \r\n \r\n r.gruppoPk}\r\n selectionModel={gruppi.filter(o => o.utenteFk > 0)?.map(a => a.gruppoPk)}\r\n onSelectionModelChange={(s) => selGroups = s.selectionModel}\r\n />\r\n \r\n \r\n \r\n setGroupDialogState({ dialogOpen: false })}\r\n color=\"secondary\"\r\n >Annulla\r\n \r\n putGroups()}\r\n color=\"default\"\r\n >Conferma\r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import axios from 'axios';\r\nimport { useState } from 'react';\r\nimport { Gruppo } from '../model/gruppo';\r\n\r\nexport function useUtentiGruppi() {\r\n const [gruppi, setGruppi] = useState([]);\r\n const [error, setError] = useState(\"\");\r\n\r\n\r\n function getUtentiGruppiHandler(utentePk: number, appPk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Applicazioni/' + appPk + \"/Utenti/\" + utentePk + \"/Gruppi\");\r\n }\r\n\r\n function putUtentiGruppiHandler(utentePk: number, gruppi: Pick[], appPk: number) {\r\n axios.put(process.env.REACT_APP_API_URL + 'Applicazioni/' + appPk + \"/Utenti/\" + utentePk + \"/Gruppi\", gruppi)\r\n .then()\r\n .catch(e => setError(e));\r\n }\r\n\r\n return {\r\n setGruppi,\r\n gruppi,\r\n error,\r\n actions: {\r\n putUtentiGruppi: putUtentiGruppiHandler,\r\n getUtentiGruppi: getUtentiGruppiHandler,\r\n\r\n }\r\n }\r\n}","import React from 'react';\r\nimport { Utente } from '../model/utente';\r\n\r\nconst UserContext = React.createContext({ });\r\n\r\nexport const UserProvider = UserContext.Provider\r\n\r\nexport default UserContext ;","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { DuvriDati, DuvriDatiAllegati } from '../model/duvri';\r\nimport * as moment from 'moment';\r\nimport { DuvriReport } from '../model/duvriReport';\r\n\r\nexport function useDuvri() {\r\n const [duvri, setDuvri] = useState([]);\r\n const [duvriAllegati, setAllegatiDuvri] = useState([]);\r\n const [duvriReport, setDuvriReport] = useState([]);\r\n\r\n function getDuvriCliente(clientePk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI\")\r\n .then(ret => setDuvri(ret.data));\r\n }\r\n\r\n function getAllegatiDuvri(clientePk: number, duvriDatiPk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/\" + duvriDatiPk + \"/Allegati\")\r\n .then(ret => setAllegatiDuvri(ret.data));\r\n }\r\n\r\n function getDuvriReport(clientePk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/Report\")\r\n .then(ret => setDuvriReport(ret.data));\r\n }\r\n\r\n function postFile(clientePk: number, duvriPk: number, formData: FormData) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/\" + duvriPk + \"/Allegati/\", formData);\r\n }\r\n\r\n function putData(clientePk: number, duvriPk: number, data: DuvriDati) {\r\n return axios.put(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/\" + duvriPk, { ...data, dataPubblicazione: moment.utc(data.dataPubblicazione).local().format('YYYY-MM-DD[T]HH:mm:ss') });\r\n }\r\n\r\n function deleteFile(clientePk: number, duvriPk: number, allegatoPk: number) {\r\n return axios.delete(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/\" + duvriPk + \"/Allegati/\" + allegatoPk);\r\n }\r\n\r\n function viewFilePdf(clientePk: number, duvriPk: number, allegatoPk: number) {\r\n axios(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/\" + duvriPk + \"/Allegati/\" + allegatoPk, {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n //Create a Blob from the PDF Stream\r\n const file = new Blob(\r\n [response.data],\r\n { type: 'application/pdf' });\r\n //Build a URL from the file\r\n const fileURL = URL.createObjectURL(file);\r\n //Open the URL on new Window\r\n window.open(fileURL);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function downloadFile(clientePk: number, duvriPk: number, allegatoPk: number, filename: string) {\r\n axios(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/\" + duvriPk + \"/Allegati/\" + allegatoPk, {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n var FileSaver = require('file-saver');\r\n FileSaver.saveAs(response.data, filename);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function postAbRequest(clientePk: number) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/RichiestaAbilitazione/\");\r\n }\r\n\r\n function postDeclineAbRequest(clientePk: number, message: string) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/RifiutoRichiestaAbilitazione/\", { message });\r\n }\r\n\r\n function postAcceptAuthRequest(clientePk: number) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/DUVRI/AccettazioneRichiestaAbilitazione/\");\r\n }\r\n\r\n return {\r\n duvri,\r\n setDuvri,\r\n duvriAllegati,\r\n duvriReport,\r\n duvriActions: {\r\n getDuvriCliente,\r\n getAllegatiDuvri,\r\n getDuvriReport,\r\n deleteFile,\r\n viewFilePdf,\r\n downloadFile,\r\n postFile,\r\n putData,\r\n postAbRequest,\r\n postDeclineAbRequest,\r\n postAcceptAuthRequest\r\n }\r\n }\r\n}","import { Paper, Grid, Typography, Button, IconButton, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, DialogActions, FormControl, InputLabel, Select, MenuItem } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Cliente } from \"../model/cliente\";\r\nimport { DuvriDati } from \"../model/duvri\";\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\nimport { useDuvri } from \"../hooks/useDuvri\";\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport { snackbarService } from \"uno-material-ui\";\r\n\r\nexport interface DuvriItemProps {\r\n cliente: Cliente;\r\n duvri: DuvriDati;\r\n reloadDuvriReport: () => void;\r\n}\r\n\r\n\r\nexport const DuvriItem: React.FC = (props) => {\r\n const { duvriActions, duvriAllegati } = useDuvri();\r\n const confirm = useConfirm();\r\n const [file, setFile] = React.useState();\r\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\r\n const [publishDate, setPublishDate] = React.useState(props.duvri?.dataPubblicazione ? new Date(props.duvri?.dataPubblicazione) : null);\r\n const [expireDate, setExpireDate] = React.useState(null);\r\n const [ggValidita, setGgValidita] = React.useState(props.duvri.duvriDatiPk > 0 ? props.duvri.ggValiditaDati : props.duvri.duvri.ggValidita);\r\n\r\n useEffect(() => {\r\n if (props.duvri.duvriDatiPk > 0) {\r\n duvriActions.getAllegatiDuvri(props.cliente.clientePk, props.duvri.duvriFk);\r\n calculateExpire(publishDate, ggValidita);\r\n }\r\n }, []);\r\n\r\n function calculateExpire(publishDate, ggVal: number) {\r\n if (publishDate) {\r\n let date = new Date(publishDate.valueOf());\r\n date.setDate(publishDate.getDate() + ggVal);\r\n setExpireDate(date);\r\n }\r\n }\r\n\r\n function putData(pd: Date, ggVal: number) {\r\n let data = { ...props.duvri };\r\n data.dataPubblicazione = pd;\r\n data.ggValiditaDati = ggVal;\r\n duvriActions.putData(props.cliente.clientePk, props.duvri.duvriFk, data).then(() => {\r\n calculateExpire(pd, ggVal);\r\n props.reloadDuvriReport();\r\n snackbarService.showSnackbar('Dati aggiornati', 'success');\r\n duvriActions.getAllegatiDuvri(props.cliente.clientePk, props.duvri.duvriFk);\r\n });\r\n }\r\n\r\n function deleteFile(clientePk: number, duvriDatiPk: number, allegatoPk: number) {\r\n confirm({ description: 'Eliminare il file?', title: 'Eliminazione file' })\r\n .then(() => {\r\n duvriActions.deleteFile(clientePk, duvriDatiPk, allegatoPk).then(ret => {\r\n props.reloadDuvriReport();\r\n snackbarService.showSnackbar('file eliminato', 'success');\r\n duvriActions.getAllegatiDuvri(props.cliente.clientePk, props.duvri.duvriFk);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore eliminazione file', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n function postFile() {\r\n if (file) {\r\n const formData = new FormData();\r\n\r\n formData.append(\"FormFile\", file);\r\n formData.append(\"FileName\", file.name);\r\n\r\n duvriActions.postFile(props.cliente.clientePk, props.duvri.duvriFk, formData).then(r => {\r\n setUploadDialogOpen(false);\r\n setFile(null);\r\n props.reloadDuvriReport();\r\n duvriActions.getAllegatiDuvri(props.cliente.clientePk, props.duvri.duvriFk);\r\n });\r\n }\r\n }\r\n\r\n function isValid() {\r\n return duvriAllegati.length >= props.duvri.duvri.minNumAll &&\r\n expireDate &&\r\n (expireDate > new Date() || props.duvri.ggValiditaDati === 0);\r\n }\r\n\r\n function GgValidita() {\r\n return (\r\n \r\n \r\n Validità\r\n {setGgValidita(e.target.value as number); putData(publishDate!, e.target.value as number);}}\r\n >\r\n {JSON.parse(props.duvri.duvri.confCampi).ggValidita.values.map(i => {\r\n return {i} giorni\r\n })}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n function DatePicker() {\r\n return (\r\n \r\n \r\n { setPublishDate(d!); putData(d!, ggValidita!); }}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n
\r\n Scadenza: {expireDate &&\r\n (props.duvri.ggValiditaDati !== 0 ? expireDate > new Date() ?\r\n expireDate.toLocaleDateString('it-IT') :\r\n {expireDate.toLocaleDateString('it-IT')}\r\n : \"Nessuna\")\r\n }\r\n
\r\n )\r\n }\r\n\r\n return (\r\n \r\n {props.duvri.duvri.tipo}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Allegati\r\n \r\n \r\n }\r\n onClick={() => setUploadDialogOpen(true)}\r\n >Aggiungi\r\n \r\n \r\n \r\n \r\n {duvriAllegati.map((a) => {\r\n return \r\n {a.nomeFile}\r\n \r\n duvriActions.viewFilePdf(props.cliente.clientePk, props.duvri.duvriFk, a.duvriDatiAllPk)}\r\n >\r\n \r\n \r\n duvriActions.downloadFile(props.cliente.clientePk, props.duvri.duvriFk, a.duvriDatiAllPk, a.nomeFile)}\r\n >\r\n \r\n \r\n deleteFile(props.cliente.clientePk, props.duvri.duvriFk, a.duvriDatiAllPk)}\r\n >\r\n \r\n \r\n \r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n {duvriAllegati.length > 0 ?\r\n <>\r\n {\r\n props.duvri.duvri.confCampi && JSON.parse(props.duvri.duvri.confCampi).ggValidita && ggValidita ?\r\n \r\n : \"\"\r\n }\r\n \r\n \r\n : \"\"}\r\n
\r\n\r\n\r\n setUploadDialogOpen(false)}>\r\n Upload allegato\r\n \r\n \r\n { e.target.files && setFile(e.target.files[0]) }} />\r\n \r\n \r\n \r\n {\r\n setUploadDialogOpen(false);\r\n setFile(undefined);\r\n }}\r\n color=\"secondary\">\r\n Annulla\r\n \r\n {\r\n postFile();\r\n }}\r\n color=\"default\">\r\n Upload\r\n \r\n \r\n \r\n
)\r\n}","import React, { useEffect } from 'react';\r\nimport { Cliente } from '../../../model/cliente';\r\nimport { useDuvri } from '../../../hooks/useDuvri';\r\nimport { DuvriItem } from '../../../core/DuvriItem';\r\nimport { DuvriReport } from '../../../model/duvriReport';\r\nimport { Paper, Typography, Grid, TableContainer, Table, TableBody, TableRow, TableCell } from '@material-ui/core';\r\n\r\nexport interface CustomerDuvriProps {\r\n cliente: Cliente;\r\n duvriReport: DuvriReport[];\r\n reloadDuvriReport: () => void;\r\n}\r\n\r\n\r\nexport const CustomerDuvri: React.FC = (props) => {\r\n const { duvri, duvriActions } = useDuvri();\r\n\r\n useEffect(() => {\r\n duvriActions.getDuvriCliente(props.cliente.clientePk);\r\n }, []);\r\n\r\n function reloadDuvriReport() {\r\n props.reloadDuvriReport();\r\n }\r\n\r\n function getProblem(item: DuvriReport) { \r\n if (!item.duvriDatiPk) {\r\n return \"Allegato non inserito\";\r\n }\r\n if (item.numAllegati < item.minNumAll) {\r\n return \"Numero allegati non sufficiente\";\r\n }\r\n if (item.scadenza === null) {\r\n return \"Data pubblicazione mancante\";\r\n }\r\n if (new Date(item.scadenza!) < new Date()) {\r\n return \"Allegato scaduto\";\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {props.duvriReport.filter(o => !o.valido).length ?\r\n \r\n Problemi riscontrati\r\n \r\n \r\n \r\n \r\n \r\n {props.duvriReport.filter(o => !o.valido).map((a) => {\r\n return \r\n {a.tipo}\r\n {getProblem(a)}\r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n : \"\"}\r\n\r\n {duvri.map((d) => {\r\n return \r\n }\r\n )}\r\n
\r\n );\r\n}\r\n\r\n\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { TextField } from '@material-ui/core';\r\n\r\nexport const ConfirmTextDialog = (props) => {\r\n const { title, messageLabel, open, setOpen, onConfirm, setMessage, onCancel, confirmButtonLabel } = props;\r\n return (\r\n setOpen(false)}\r\n aria-labelledby=\"confirm-dialog\"\r\n >\r\n {title}\r\n \r\n { setMessage(e.target.value) }} />\r\n \r\n \r\n onCancel()}\r\n color=\"secondary\"\r\n >\r\n Annulla\r\n \r\n {\r\n setOpen(false);\r\n onConfirm();\r\n }}\r\n color=\"default\"\r\n >\r\n {confirmButtonLabel}\r\n \r\n \r\n \r\n );\r\n};","import { Button, Grid, IconButton, Paper, Table, TableBody, TableCell, Dialog, DialogActions, DialogContent, DialogTitle, TableRow, Typography } from '@material-ui/core';\r\nimport React, { useContext, useEffect } from 'react';\r\nimport { Cliente, ClienteContatto } from '../../../model/cliente';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport { Form } from 'react-final-form';\r\nimport {\r\n Checkboxes,\r\n TextField\r\n} from 'mui-rff';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport UserContext from '../../../core/UserContext';\r\nimport { CustomerDuvri } from './CustomerDuvri';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport { useDuvri } from '../../../hooks/useDuvri';\r\nimport { ConfirmTextDialog } from '../../../core/ConfirmTextDialog';\r\n\r\nexport interface CustomerDetailsProps {\r\n cliente: Cliente;\r\n clienteContatti: ClienteContatto[];\r\n clienteCompagnie: Cliente[];\r\n clienti: Cliente[];\r\n onClose: () => void;\r\n onSave: (cliente: Cliente) => void;\r\n deleteMoc: (clientePk: number) => void;\r\n viewPdfMoc: (clientePk: number) => void;\r\n downloadMoc: (clientePk: number, filename: string) => void;\r\n putMoc: (clientePk: number, formData: FormData) => void;\r\n deleteClienteCompagnia: (clientePk: number, compagniaPk: number) => void;\r\n postClienteCompagnia: (clientePk: number, compagniaPk: number) => void;\r\n enableCustomer: (cliente: Cliente, enable: boolean) => void;\r\n postDeclineMessage: (clientePk: number, message: string) => void;\r\n acceptAuthRequest: (cliente: Cliente) => void;\r\n}\r\n\r\nexport interface AssCompanyState {\r\n dialogOpen: boolean,\r\n customer?: Cliente\r\n}\r\n\r\nexport interface DeclineMessagaState {\r\n dialogOpen: boolean,\r\n message: string\r\n}\r\n\r\nexport const CustomerDetails: React.FC = (props) => {\r\n const [tab, setTab] = React.useState(0);\r\n const utente = useContext(UserContext);\r\n const [mocFile, setMocFile] = React.useState();\r\n const [dialogState, setDialogState] = React.useState({ dialogOpen: false });\r\n const [declineMessagaState, setDeclineMessagaState] = React.useState({ dialogOpen: false, message: \"\" });\r\n const { duvriActions, duvriReport } = useDuvri();\r\n\r\n useEffect(() => {\r\n reloadDuvriReport();\r\n }, []);\r\n\r\n function reloadDuvriReport() {\r\n if (props.cliente.ldb.trim() === \"4\") {\r\n duvriActions.getDuvriReport(props.cliente.clientePk);\r\n }\r\n }\r\n\r\n const onSubmit = async values => {\r\n props.onSave(values);\r\n };\r\n\r\n const validate = values => {\r\n const errors: any = {};\r\n\r\n if (values.certQualitaCheck && !values.certQualita) {\r\n errors.certQualita = 'Obbligatorio';\r\n }\r\n\r\n if (values.certAmbCheck && !values.certAmb) {\r\n errors.certAmb = 'Obbligatorio';\r\n }\r\n\r\n if (values.consorzioCheck && !values.consorzio) {\r\n errors.consorzio = 'Obbligatorio';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n function putMoc() {\r\n if (mocFile) {\r\n const formData = new FormData();\r\n\r\n // Update the formData object \r\n formData.append(\"FormFile\", mocFile);\r\n formData.append(\"FileName\", mocFile.name);\r\n\r\n props.putMoc(props.cliente.clientePk!, formData);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n {props.cliente.clientePk} - {props.cliente.ragioneSociale}\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n {props.cliente.codiceDuvri.trim() === \"1\" || props.cliente.codiceDuvri.trim() === \"3\" || props.cliente.codiceDuvri.trim() === \"5\" ?\r\n }\r\n onClick={() => props.enableCustomer(props.cliente, true)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n disabled={duvriReport.filter(o => o.valido === false).length > 0}\r\n >Abilita\r\n :\r\n }\r\n onClick={() => props.enableCustomer(props.cliente, false)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Disabilita\r\n }\r\n {props.cliente.dataRichAbilitazione ?\r\n <>\r\n }\r\n onClick={() => setDeclineMessagaState({ dialogOpen: true, message: \"\" })}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Rifiuta richiesta\r\n }\r\n onClick={() => { props.acceptAuthRequest(props.cliente); }}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Accetta richiesta\r\n \r\n : \"\"\r\n }\r\n \r\n\r\n setTab(v)}\r\n aria-label=\"disabled tabs example\"\r\n >\r\n \r\n {props.cliente.ldbFornitore.trim() !== \"9\" && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"DUVRI_READ\").length > 0 ? : \"\"}\r\n \r\n\r\n {tab === 0 && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Sede\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Contatti\r\n \r\n \r\n \r\n \r\n Nominativo\r\n Tipo\r\n Contatto\r\n \r\n \r\n \r\n {props.clienteContatti.map((a) => {\r\n return \r\n {a.nominativo}\r\n {a.tipo.trim().length > 0 ? a.tipo : \"Telefono\"}\r\n {a.contatto}\r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Compagnie\r\n }\r\n style={{ float: \"right\" }}\r\n onClick={() => { setDialogState({ dialogOpen: true }) }}\r\n >Aggiungi\r\n \r\n \r\n \r\n \r\n {props.clienteCompagnie.map((a) => {\r\n return \r\n {a.ragioneSociale}\r\n \r\n props.deleteClienteCompagnia(props.cliente.clientePk, a.clientePk)}\r\n >\r\n \r\n \r\n \r\n \r\n })}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n Altro\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n values.consorzio = \"\"}\r\n checked={values.consorzioCheck}\r\n />\r\n {values.consorzioCheck && }\r\n \r\n \r\n values.certQualita = \"\"}\r\n checked={values.certQualitaCheck}\r\n />\r\n {values.certQualitaCheck && }\r\n \r\n \r\n values.certAmb = \"\"}\r\n checked={values.certAmbCheck}\r\n />\r\n {values.certAmbCheck && }\r\n \r\n \r\n\r\n \r\n {props.cliente.ldb.trim() === \"1\" || props.cliente.ldb.trim() === \"3\" ?\r\n\r\n \r\n MOC\r\n \r\n\r\n {props.cliente.mocNomefile ?\r\n \r\n \r\n \r\n {props.cliente.mocNomefile}\r\n \r\n \r\n props.downloadMoc(props.cliente.clientePk, props.cliente.mocNomefile!)}\r\n >Scarica\r\n \r\n {props.cliente.mocNomefile.toLowerCase().indexOf(\".pdf\") > -1 ?\r\n \r\n props.viewPdfMoc(props.cliente.clientePk)}\r\n >Visualizza\r\n \r\n : \"\"}\r\n \r\n props.deleteMoc(props.cliente.clientePk)}\r\n >Elimina\r\n \r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n { e.target.files && setMocFile(e.target.files[0]) }} />\r\n \r\n \r\n Upload\r\n \r\n \r\n \r\n \r\n \r\n : \"\"\r\n }\r\n\r\n \r\n \r\n \r\n Salva\r\n      \r\n props.onClose()}\r\n >Chiudi\r\n \r\n \r\n \r\n\r\n setDialogState({ dialogOpen: false })}\r\n >\r\n Associazione cliente a compagnia\r\n \r\n option.ragioneSociale}\r\n renderInput={(params) => }\r\n onChange={(e, c) => {\r\n if (c) {\r\n setDialogState({ ...dialogState, customer: c });\r\n }\r\n }}\r\n />\r\n \r\n \r\n setDialogState({ dialogOpen: false })}\r\n color=\"secondary\"\r\n >Annulla\r\n \r\n {\r\n props.postClienteCompagnia(props.cliente.clientePk, dialogState.customer?.clientePk!);\r\n setDialogState({ dialogOpen: false });\r\n }}\r\n color=\"default\"\r\n >Conferma\r\n \r\n \r\n \r\n\r\n setDeclineMessagaState({ dialogOpen: true, message: \"\" })}\r\n onConfirm={() => {\r\n props.postDeclineMessage(props.cliente.clientePk, declineMessagaState.message);\r\n setDeclineMessagaState({ dialogOpen: false, message: \"\" });\r\n }}\r\n onCancel={() => {\r\n setDeclineMessagaState({ dialogOpen: false, message: \"\" });\r\n }}\r\n confirmButtonLabel={\"Rifiuta\"}\r\n setMessage={(e) => setDeclineMessagaState({ dialogOpen: true, message: e })}\r\n >\r\n \r\n )}\r\n />\r\n }\r\n {tab === 1 && props.cliente.ldbFornitore.trim() !== \"9\" && }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useState } from \"react\";\r\n\r\nexport function useUtils() {\r\n var formatter = new Intl.NumberFormat('it-IT', {\r\n style: 'currency',\r\n currency: 'EUR',\r\n });\r\n\r\n const [stringStateChiamata, setsStringStateChiamata] = useState();\r\n\r\n\r\n function formatDate(date: string | undefined | Date) {\r\n if (date) {\r\n return new Date(date + \"Z\").toLocaleDateString();\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function formatIsoDateTime(date: string | undefined | Date) {\r\n if (date) {\r\n let d = new Date(date + \"Z\");\r\n return d.getFullYear() + \"-\" + ('0' + (d.getMonth() + 1)).slice(-2) + \"-\" + ('0' + d.getDate()).slice(-2) + \"T\" + ('0' + d.getHours()).slice(-2) + \":\" + ('0' + d.getMinutes()).slice(-2);\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function formatDateTime(date: string | undefined | Date) {\r\n if (date) {\r\n let _date = new Date(date + \"Z\");\r\n return _date.toLocaleDateString() + \" \" + _date.toLocaleTimeString();\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function formatCurrency(num: number | undefined) {\r\n if (num) {\r\n return formatter.format(num);\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n function serializeToQueryParams(obj) {\r\n var str: string[] = [];\r\n for (var p in obj) {\r\n if (obj.hasOwnProperty(p) && obj[p]) {\r\n if (obj[p] instanceof Date) {\r\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p].toISOString()));\r\n } else {\r\n str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\r\n }\r\n\r\n }\r\n }\r\n return str.join(\"&\");\r\n }\r\n\r\n\r\n function statoChiamataConvertedToString(stato) {\r\n const stati = [\r\n { id: 999, name: \"Chiusa\" },\r\n { id: 997, name: \"Annullata\" },\r\n { id: 666, name: \"Assegnata al manutentore/consorzio\" },\r\n { id: 200, name: \"Presa in carico internamente\" },\r\n ];\r\n\r\n\r\n stati.forEach(s => {\r\n if (stato == s.id) {\r\n setsStringStateChiamata(s.name);\r\n }\r\n })\r\n\r\n return stringStateChiamata;\r\n }\r\n\r\n\r\n //Splitting Time with \":\"\r\n function splitString(str) {\r\n var parts = str.match(/.{1,2}/g);\r\n var newValue = parts.join(\":\");\r\n return newValue;\r\n };\r\n\r\n var convertedTime;\r\n function convertNumberTime(num) {\r\n if (num > 0) {\r\n num = num.toString();\r\n var lenghtNum = num.length;\r\n\r\n if (lenghtNum == 5) {\r\n convertedTime = ('0' + num);\r\n }\r\n else if (lenghtNum == 6) {\r\n convertedTime = num;\r\n }\r\n\r\n var stri = convertedTime.toString();\r\n var convert = splitString(stri);\r\n\r\n return convert;\r\n }\r\n return \"\";\r\n }\r\n\r\n function nvl(value) {\r\n if (value) {\r\n return value;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n return {\r\n utilsActions: {\r\n formatDate,\r\n formatCurrency,\r\n serializeToQueryParams,\r\n statoChiamataConvertedToString,\r\n convertNumberTime,\r\n formatDateTime,\r\n nvl,\r\n formatIsoDateTime\r\n }\r\n }\r\n}","import { Button, createMuiTheme, Dialog, DialogContent, DialogTitle } from \"@material-ui/core\";\r\nimport { DataGrid, GridCellParams, GridColDef } from \"@material-ui/data-grid\";\r\nimport { ThemeProvider } from \"@material-ui/styles\";\r\nimport { itIT } from \"../model/itIT\";\r\nimport CancelIcon from \"@material-ui/icons/Cancel\";\r\nimport { Log } from '../model/log';\r\nimport { useUtils } from \"../hooks/useUtils\";\r\n\r\nexport interface DuvriLogsListProps {\r\n logs: Log[];\r\n onClose: () => void;\r\n open: boolean;\r\n}\r\n\r\nexport const DuvriLogsList: React.FC = (props) => {\r\n const { utilsActions } = useUtils();\r\n\r\n const columns: GridColDef[] = [\r\n {\r\n field: 'dataOperazione', headerName: 'data operazione', width: 200, headerAlign: \"center\", align: \"center\", sortable: true, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDateTime(params.row.dataOperazione)} \r\n }\r\n },\r\n {\r\n field: 'descrizione', headerName: 'descrizione', width: 600, sortable: false, headerAlign: \"center\", align: \"left\"\r\n },\r\n {\r\n field: 'sezione', headerName: 'sezione', width: 200, headerAlign: \"center\", align: \"left\"\r\n }\r\n ]\r\n\r\n const theme = createMuiTheme(\r\n {\r\n },\r\n itIT,\r\n );\r\n\r\n return (\r\n
\r\n {props.logs.length > 0 ?\r\n \r\n\r\n \r\n Logs del cliente: {props.logs[0].cliente}\r\n\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n \r\n\r\n \r\n \r\n r.logPk}\r\n disableSelectionOnClick\r\n />\r\n \r\n \r\n \r\n :\r\n \r\n\r\n \r\n Logs\r\n\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n \r\n\r\n \r\n

Nessun log presente per questo cliente

\r\n
\r\n \r\n }\r\n
\r\n )\r\n}\r\n","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { ChiaveValore } from '../model/chiaveValore';\r\n\r\nexport function useChiaveValore() {\r\n const [statiDuvri, setStatiDuvri] = useState([]);\r\n const [ldb, setLdb] = useState([]);\r\n const [tipiAnagrafica, setTipiAnagrafica] = useState([]);\r\n const [statiOdsJde, setStatiOdsJde] = useState([]);\r\n const [statiOsJde, setStatiOsJde] = useState([]);\r\n const [statiOds, setStatiOds] = useState([]);\r\n const [autoriOds, setAutoriOds] = useState([]);\r\n const [approvatoriOds, setApprovatoriOds] = useState([]);\r\n const [clienti, setClienti] = useState([]);\r\n const [compagnie, setCompagnie] = useState([]);\r\n const [attrezzature, setAttrezzature] = useState([]);\r\n const [componenti, setComponenti] = useState([]);\r\n const [difetti, setDifetti] = useState([]);\r\n const [cause, setCause] = useState([]);\r\n const [soluzioni, setSoluzioni] = useState([]);\r\n\r\n\r\n function getStatiDuvri() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/StatiDuvri').then(ret => {\r\n setStatiDuvri(ret.data);\r\n })\r\n }\r\n\r\n function getLdb() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/LDB').then(ret => {\r\n setLdb(ret.data);\r\n })\r\n }\r\n\r\n function getTipiAnagrafica() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/TipiAnagrafica').then(ret => {\r\n setTipiAnagrafica(ret.data);\r\n })\r\n }\r\n\r\n function getStatiOdsJde() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/StatiOdsJde').then(ret => {\r\n setStatiOdsJde(ret.data);\r\n })\r\n }\r\n\r\n function getStatiOds() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/StatiOds').then(ret => {\r\n setStatiOds(ret.data);\r\n })\r\n }\r\n\r\n function getAutoriOds() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/AutoriOds').then(ret => {\r\n setAutoriOds(ret.data);\r\n })\r\n }\r\n\r\n function getStatiOsJde() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/StatiOsJde').then(ret => {\r\n setStatiOsJde(ret.data);\r\n })\r\n }\r\n\r\n function getApprovatoriOds() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/ApprovatoriOds').then(ret => {\r\n setApprovatoriOds(ret.data);\r\n })\r\n }\r\n\r\n function getClienti() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/Clienti').then(ret => {\r\n setClienti(ret.data);\r\n })\r\n }\r\n\r\n function getCompagnie() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/Compagnie').then(ret => {\r\n setCompagnie(ret.data);\r\n })\r\n }\r\n\r\n function getAttrezzature() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/Attrezzature').then(ret => {\r\n setAttrezzature(ret.data);\r\n })\r\n }\r\n\r\n function getComponenti(attrezzaturaPk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/Componenti/' + attrezzaturaPk).then(ret => {\r\n setComponenti(ret.data);\r\n })\r\n }\r\n\r\n function getDifetti() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/Difetti').then(ret => {\r\n setDifetti(ret.data);\r\n })\r\n }\r\n\r\n function getCause(codiceL1: string) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/Cause/' + codiceL1).then(ret => {\r\n setCause(ret.data);\r\n })\r\n }\r\n\r\n function getSoluzioni(codiceL1: string, codiceL2: string) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Utils/Soluzioni/' + codiceL1 + '/' + codiceL2).then(ret => {\r\n setSoluzioni(ret.data);\r\n })\r\n }\r\n\r\n return {\r\n statiDuvri,\r\n ldb,\r\n tipiAnagrafica,\r\n statiOdsJde,\r\n statiOsJde,\r\n statiOds,\r\n approvatoriOds,\r\n clienti,\r\n compagnie,\r\n difetti,\r\n cause,\r\n soluzioni,\r\n attrezzature,\r\n componenti,\r\n autoriOds,\r\n actionsCV: {\r\n getStatiDuvri,\r\n getLdb,\r\n getTipiAnagrafica,\r\n getStatiOdsJde,\r\n getStatiOds,\r\n getApprovatoriOds,\r\n getClienti,\r\n getCompagnie,\r\n getStatiOsJde,\r\n getDifetti,\r\n getCause,\r\n getSoluzioni,\r\n getAttrezzature,\r\n getComponenti,\r\n getAutoriOds\r\n }\r\n }\r\n}","import axios from 'axios';\r\n\r\nexport function useClienteMoc() {\r\n\r\n function postMoc(clientePk: number, formData: FormData) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/MOC\", formData);\r\n }\r\n\r\n function deleteMoc(clientePk: number) {\r\n return axios.delete(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/MOC\");\r\n }\r\n\r\n function viewPdfMoc(clientePk: number) {\r\n axios(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/MOC\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n //Create a Blob from the PDF Stream\r\n const file = new Blob(\r\n [response.data],\r\n { type: 'application/pdf' });\r\n //Build a URL from the file\r\n const fileURL = URL.createObjectURL(file);\r\n //Open the URL on new Window\r\n window.open(fileURL);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function downloadMoc(clientePk: number, filename: string) {\r\n axios(process.env.REACT_APP_API_URL + 'Clienti/' + clientePk + \"/MOC\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n console.log(response);\r\n \r\n var FileSaver = require('file-saver');\r\n FileSaver.saveAs(response.data, filename);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n return {\r\n mocActions: {\r\n postMoc,\r\n viewPdfMoc,\r\n downloadMoc,\r\n deleteMoc\r\n }\r\n }\r\n}","import {\r\n DataGrid,\r\n GridCellParams,\r\n GridColDef,\r\n GridPageChangeParams,\r\n GridToolbarContainer\r\n} from '@material-ui/data-grid';\r\nimport { createMuiTheme, Typography, ThemeProvider, FormControl, InputLabel, MenuItem, Select, IconButton, Paper, Checkbox, FormControlLabel } from '@material-ui/core';\r\nimport { itIT } from '../../model/itIT';\r\nimport { useClienti } from '../../hooks/useClienti';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FiberManualRecordIcon from '@material-ui/icons/FiberManualRecord';\r\nimport { useContext, useState } from 'react';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport { Cliente } from '../../model/cliente';\r\nimport { CustomerDetails } from './components/CustomerDetails';\r\nimport { DuvriLogsList } from '../../core/DuvriLogsList';\r\nimport { useChiaveValore } from '../../hooks/useChiaveValore';\r\nimport { useEffect } from 'react';\r\nimport { useClienteMoc } from '../../hooks/useClienteMoc';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport UserContext from '../../core/UserContext';\r\nimport { useDuvri } from '../../hooks/useDuvri';\r\nimport { Toc } from '@material-ui/icons';\r\n\r\nexport interface FilterState {\r\n ldb?: string;\r\n codiceDuvri?: string;\r\n tipoAnagrafica?: string;\r\n ragioneSociale?: string;\r\n clientePk?: number;\r\n slRegione?: string;\r\n slProvincia?: string;\r\n slProvinciaSigla?: string;\r\n slIndirizzo?: string;\r\n partitaIva?: string;\r\n page?: GridPageChangeParams;\r\n valido?: boolean;\r\n codice?: string;\r\n}\r\n\r\nexport function CustomerList() {\r\n const { clienti, logs, setClientiContatti, setClientiCompagnie, setLogs, clientiCompagnie, clientiContatti, actions } = useClienti();\r\n const [filterState, setFilterState] = useState({});\r\n const [selClienteState, setSelClienteState] = useState();\r\n const { ldb, statiDuvri, tipiAnagrafica, actionsCV } = useChiaveValore();\r\n const { mocActions } = useClienteMoc();\r\n const { duvriActions } = useDuvri();\r\n const confirm = useConfirm();\r\n const utente = useContext(UserContext);\r\n const [showDetails, setShowDetails] = useState(false);\r\n const [page, setPage] = useState();\r\n \r\n useEffect(() => {\r\n actionsCV.getLdb();\r\n actionsCV.getStatiDuvri();\r\n actionsCV.getTipiAnagrafica();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (filterState.valido) {\r\n actions.getClientiNonValidi();\r\n } else {\r\n actions.loadData();\r\n }\r\n }, [filterState.valido]);\r\n\r\n function getColsDef(): GridColDef[] {\r\n let columns: GridColDef[] = [\r\n {\r\n field: 'stato',\r\n headerName: ' ',\r\n width: 50, renderCell: (params: GridCellParams) => {\r\n let codiceDuvri = params.row.codiceDuvri?.trim();\r\n let tipoAnagrafica = params.row.tipoAnagrafica?.trim();\r\n let ldb = params.row.ldb?.trim();\r\n let title = params.row.codiceDuvri?.trim() + \" - \" + params.row.abilitazioneDuvri?.trim();\r\n let color = \"gray\";\r\n if (((codiceDuvri === '1' || codiceDuvri === '2') && tipoAnagrafica !== '023' && tipoAnagrafica !== '029') ||\r\n ((codiceDuvri === '3' || codiceDuvri === '4') && (tipoAnagrafica === '023' || tipoAnagrafica === '029' || ldb !== '1')) ||\r\n ((codiceDuvri === '5' || codiceDuvri === '6') && (tipoAnagrafica === '023' || tipoAnagrafica === '029' || ldb === '1'))) { // casi anomali\r\n color = \"yellow\";\r\n } else {\r\n if (codiceDuvri === '1' || codiceDuvri === '3' || codiceDuvri === '5') {\r\n color = \"red\";\r\n } else if (codiceDuvri === '2' || codiceDuvri === '4' || codiceDuvri === '6') {\r\n color = \"green\";\r\n }\r\n }\r\n\r\n return
\r\n }\r\n },\r\n {\r\n field: 'ldb',\r\n headerName: 'LDB',\r\n sortable: true,\r\n align: \"center\",\r\n width: 90, renderCell: (params: GridCellParams) => {\r\n let title = params.row.ldbDescrizione?.trim();\r\n return
{params.row.ldb?.trim()}
\r\n }\r\n },\r\n {\r\n field: 'tipoAnagrafica',\r\n headerName: 'TA',\r\n sortable: true,\r\n align: \"center\",\r\n width: 80, renderCell: (params: GridCellParams) => {\r\n let title = params.row.tipoAnagraficaDescrizione?.trim();\r\n return
{params.row.tipoAnagrafica?.trim()}
\r\n }\r\n },\r\n { field: 'ragioneSociale', headerName: 'Ragione sociale', width: 250 },\r\n { field: 'clientePk', headerName: 'Codice', width: 120 }\r\n ];\r\n\r\n if (filterState.valido) {\r\n columns.push({ field: 'dataRichAbilitazione', headerName: 'Data richiesta abilitazione', width: 250 });\r\n columns.push({ field: 'dataAbilitazione', headerName: 'Data abilitazione', width: 200 });\r\n columns.push({ field: 'dataOperazione', headerName: 'Data ultima operazione', width: 200 });\r\n } else {\r\n columns.push({ field: 'slRegione', headerName: 'Regione', width: 140 });\r\n\r\n columns.push({\r\n field: 'provincia',\r\n headerName: 'Provincia',\r\n width: 150, renderCell: (params: GridCellParams) => {\r\n return
\r\n {params.row.slProvincia != null ? `${params.row.slProvincia} (${(params.row.slProvinciaSigla != null ? params.row.slProvinciaSigla : \"\")})` : ''}\r\n
\r\n }\r\n });\r\n\r\n columns.push({ field: 'slIndirizzo', headerName: 'Indirizzo', width: 200 });\r\n columns.push({ field: 'partitaIva', headerName: 'Partita IVA', width: 140 });\r\n }\r\n\r\n columns.push({\r\n field: 'detailsButton',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: ' ',\r\n filterable: false,\r\n width: 100, renderCell: (params: GridCellParams) => {\r\n return
\r\n OpenCustomer(params.row.clientePk)}>\r\n \r\n \r\n\r\n OpenLogs(params.row.clientePk)}>\r\n \r\n \r\n
\r\n }\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n function CustomToolbar() {\r\n return (\r\n \r\n\r\n \r\n );\r\n }\r\n\r\n async function OpenLogs(clientePk: number) {\r\n let logs = await actions.getLogCliente(clientePk);\r\n setLogs(logs.data);\r\n setShowDetails(!showDetails);\r\n }\r\n\r\n function CloseLogs() {\r\n setShowDetails(!showDetails)\r\n }\r\n\r\n async function OpenCustomer(clientePk: number) {\r\n let cliente = await actions.getCliente(clientePk);\r\n let clienteContatti = await actions.getClienteContatti(clientePk);\r\n let clienteCompagnie = await actions.getClienteCompagnie(clientePk);\r\n setClientiContatti(clienteContatti.data);\r\n setClientiCompagnie(clienteCompagnie.data);\r\n setSelClienteState(cliente.data);\r\n }\r\n\r\n function CloseCustomer() {\r\n setSelClienteState(undefined);\r\n }\r\n\r\n function SaveCustomer(cliente: Cliente) {\r\n actions.putCliente(selClienteState?.clientePk!, cliente).then(r => {\r\n snackbarService.showSnackbar(\"Dati cliente salvati\", 'success');\r\n setSelClienteState(cliente);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore salvataggio cliente', 'error');\r\n });\r\n }\r\n\r\n function deleteMoc(clientePk: number) {\r\n confirm({ description: 'Eliminare il MOC?', title: 'Eliminazione MOC' })\r\n .then(() => {\r\n mocActions.deleteMoc(clientePk).then(ret => {\r\n snackbarService.showSnackbar('MOC eliminato', 'success');\r\n OpenCustomer(clientePk);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore eliminazione MOC', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n };\r\n\r\n function enableCustomer(cliente: Cliente, enable: boolean, sendApproveResponse: boolean = false) {\r\n let stato = \"\";\r\n let tipoAnagrafica = cliente.tipoAnagrafica?.trim();\r\n let ldb = cliente.ldb?.trim();\r\n if (enable) {\r\n if (tipoAnagrafica === '023' || tipoAnagrafica === '029') {\r\n stato = '2';\r\n } else if (ldb === '1') {\r\n stato = '4';\r\n } else {\r\n stato = '6';\r\n }\r\n confirm({ description: sendApproveResponse ? 'Approvare la richiesta?' : 'Abilitare il cliente?', title: 'Abilitazione cliente' })\r\n .then(() => {\r\n actions.putClienteStatoDuvri(cliente.clientePk, stato).then(ret => {\r\n if (sendApproveResponse) {\r\n duvriActions.postAcceptAuthRequest(cliente.clientePk).then(ret => {\r\n snackbarService.showSnackbar('Richiesta approvata', 'success');\r\n actions.loadData();\r\n OpenCustomer(cliente.clientePk);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore invio risposta', 'error');\r\n });\r\n } else {\r\n snackbarService.showSnackbar('Cliente abilitato', 'success');\r\n actions.loadData();\r\n OpenCustomer(cliente.clientePk);\r\n }\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore abilitazione cliente', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n } else {\r\n if (tipoAnagrafica === '023' || tipoAnagrafica === '029') {\r\n stato = '1';\r\n } else if (ldb === '1') {\r\n stato = '3';\r\n } else {\r\n stato = '5';\r\n }\r\n confirm({ description: 'Disabilitare il cliente?', title: 'Disabilitazione cliente' })\r\n .then(() => {\r\n actions.putClienteStatoDuvri(cliente.clientePk, stato).then(ret => {\r\n snackbarService.showSnackbar('Cliente disabilitato', 'success');\r\n actions.loadData();\r\n OpenCustomer(cliente.clientePk);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore disabilitazione cliente', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n };\r\n\r\n function postClienteCompagnia(clientePk: number, compagniaPk: number) {\r\n actions.postClienteCompagnia(clientePk, compagniaPk).then(async ret => {\r\n let clienteCompagnie = await actions.getClienteCompagnie(clientePk);\r\n setClientiCompagnie(clienteCompagnie.data);\r\n snackbarService.showSnackbar('Compagnia associata', 'success');\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore associazione compagnia', 'error');\r\n });\r\n };\r\n\r\n function deleteClienteCompagnia(clientePk: number, compagniaPk: number) {\r\n confirm({ description: 'Eliminare l\\'associazione alla compagnia?', title: 'Eliminazione associazione compagnia' })\r\n .then(() => {\r\n actions.deleteClienteCompagnia(clientePk, compagniaPk).then(async ret => {\r\n let clienteCompagnie = await actions.getClienteCompagnie(clientePk);\r\n setClientiCompagnie(clienteCompagnie.data);\r\n snackbarService.showSnackbar('Associazione rimossa', 'success');\r\n OpenCustomer(clientePk);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore rimozione associazione', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n };\r\n\r\n function postDeclineAbRequest(clientePk: number, message: string) {\r\n duvriActions.postDeclineAbRequest(clientePk, message).then(ret => {\r\n snackbarService.showSnackbar('Risposta inviata', 'success');\r\n OpenCustomer(clientePk);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore invio risposta', 'error');\r\n });\r\n }\r\n\r\n function postAcceptAuthRequest(cliente: Cliente) {\r\n enableCustomer(cliente, true, true); \r\n }\r\n\r\n function viewPdfMoc(clientePk: number) {\r\n mocActions.viewPdfMoc(clientePk)\r\n };\r\n\r\n function downloadMoc(clientePk: number, filename: string) {\r\n mocActions.downloadMoc(clientePk, filename);\r\n };\r\n\r\n function putMoc(clientePk: number, formData: FormData) {\r\n mocActions.postMoc(clientePk, formData).then(ret => {\r\n snackbarService.showSnackbar('MOC inserito', 'success');\r\n OpenCustomer(clientePk);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore salvataggio MOC', 'error');\r\n });\r\n };\r\n\r\n function GetFilteredCustomers() {\r\n let filtered = [...clienti].filter(o => o.codiceDuvri !== ' ');\r\n\r\n if (filterState.ldb) {\r\n filtered = filtered.filter(o => o.ldb?.trim() === filterState.ldb);\r\n }\r\n\r\n if (filterState.tipoAnagrafica) {\r\n filtered = filtered.filter(o => o.tipoAnagrafica?.trim() === filterState.tipoAnagrafica);\r\n }\r\n\r\n if (filterState.codiceDuvri) {\r\n filtered = filtered.filter(o => o.codiceDuvri?.trim() === filterState.codiceDuvri);\r\n }\r\n\r\n if (filterState.ragioneSociale) {\r\n filtered = filtered.filter(o => o.ragioneSociale?.trim().toUpperCase().indexOf(filterState.ragioneSociale!.toUpperCase()) > -1);\r\n }\r\n\r\n if (filterState.slRegione) {\r\n filtered = filtered.filter(o => o.slRegione?.trim().toUpperCase().indexOf(filterState.slRegione!.toUpperCase()) > -1);\r\n }\r\n\r\n if (filterState.slProvincia) {\r\n filtered = filtered.filter(o => o.slProvincia?.trim().toUpperCase().indexOf(filterState.slProvincia!.toUpperCase()) > -1);\r\n }\r\n\r\n if (filterState.slProvinciaSigla) {\r\n filtered = filtered.filter(o => o.slProvinciaSigla?.trim().toUpperCase().indexOf(filterState.slProvinciaSigla!.toUpperCase()) > -1);\r\n }\r\n\r\n if (filterState.partitaIva) {\r\n filtered = filtered.filter(o => o.partitaIva?.trim().toUpperCase().indexOf(filterState.partitaIva!.toUpperCase()) > -1);\r\n }\r\n\r\n if (filterState.codice) {\r\n filtered = filtered.filter(o => o.clientePk?.toString().trim().toUpperCase().indexOf(filterState.codice!.toUpperCase()) > -1);\r\n }\r\n\r\n return filtered;\r\n }\r\n\r\n const theme = createMuiTheme(\r\n {\r\n },\r\n itIT,\r\n );\r\n\r\n const handleChangePage = (newPage) => {\r\n setPage(newPage.page);\r\n };\r\n return (\r\n
\r\n {selClienteState ?\r\n \r\n :\r\n <>\r\n \r\n Gestione anagrafiche\r\n \r\n\r\n \r\n \r\n \r\n Filtri\r\n \r\n {utente && utente.permessi && utente.permessi.filter(p => p.nome === \"DUVRI_DASHBOARD\").length > 0 ?\r\n \r\n setFilterState({ ...filterState, valido: e.target.checked })} name=\"checkedA\" />}\r\n label=\"Mostra solo non validi\"\r\n />\r\n \r\n : \"\"}\r\n \r\n \r\n \r\n \r\n Stato Duvri\r\n setFilterState({ ...filterState, codiceDuvri: e.target.value as string })}\r\n >\r\n Tutti\r\n {statiDuvri.map(i => {\r\n return {i.chiave} - {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n LDB\r\n setFilterState({ ...filterState, ldb: e.target.value as string })}\r\n defaultValue={filterState.ldb}\r\n labelId=\"ldb\"\r\n >\r\n Tutte\r\n {ldb.map(i => {\r\n return {i.chiave} - {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Tipo anagrafica\r\n setFilterState({ ...filterState, tipoAnagrafica: e.target.value as string })}\r\n >\r\n Tutti\r\n {tipiAnagrafica.map(i => {\r\n return {i.chiave} - {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n setFilterState({ ...filterState, codice: e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, ragioneSociale: e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, slRegione: e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, slProvincia: e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, partitaIva: e.target.value })} />\r\n \r\n \r\n \r\n\r\n \r\n r.clientePk}\r\n components={{\r\n Toolbar: CustomToolbar,\r\n }}\r\n disableSelectionOnClick\r\n />\r\n \r\n \r\n }\r\n {showDetails ?\r\n \r\n :\r\n <>\r\n\r\n \r\n }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import React, { useContext, useState } from 'react';\r\nimport { Applicazioni } from '../../model/utente';\r\nimport { Paper, Typography, Button, IconButton, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, DialogActions, TextField, Grid } from \"@material-ui/core\";\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport { useDuvriTemplates } from '../../hooks/useDuvriTemplates';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport UserContext from '../../core/UserContext';\r\n\r\nexport interface ConfirmState {\r\n modalOpen: boolean;\r\n modalMessage?: string;\r\n applicazione?: Applicazioni;\r\n newUserFk?: number;\r\n}\r\n\r\nexport function DuvriTemplatesList() {\r\n const { templates, actions } = useDuvriTemplates()\r\n const confirm = useConfirm();\r\n const [file, setFile] = React.useState();\r\n const [note, setNote] = React.useState(\"\");\r\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\r\n const utente = useContext(UserContext);\r\n\r\n\r\n function deleteFile(duvriTemplPk: number) {\r\n confirm({ description: 'Eliminare il file?', title: 'Eliminazione file' })\r\n .then(() => {\r\n actions.deleteTemplate(duvriTemplPk).then(ret => {\r\n snackbarService.showSnackbar('file eliminato', 'success');\r\n actions.loadData();\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore eliminazione file', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n function postFile() {\r\n if (file) {\r\n const formData = new FormData();\r\n\r\n formData.append(\"FormFile\", file);\r\n formData.append(\"FileName\", file.name);\r\n formData.append(\"Notes\", note);\r\n\r\n actions.postTemplate(formData).then(r => {\r\n setUploadDialogOpen(false);\r\n setFile(null);\r\n setNote(\"\");\r\n actions.loadData();\r\n });\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n Gestione templates DUVRI\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n \r\n \r\n Note\r\n \r\n \r\n Data upload\r\n \r\n \r\n {utente.permessi && utente.permessi.filter(p => p.nome === \"DUVRI_TEMPLATES_WRITE\").length > 0 ?\r\n }\r\n onClick={() => setUploadDialogOpen(true)}\r\n >Aggiungi\r\n : \"\"}\r\n \r\n \r\n \r\n \r\n {templates.map((a) => {\r\n return \r\n {a.nome}\r\n {a.note}\r\n {a.ddi}\r\n \r\n actions.viewPdfTemplate(a.duvriTemplPk)}\r\n >\r\n \r\n \r\n actions.downloadTemplate(a.duvriTemplPk, a.nome)}\r\n >\r\n \r\n \r\n {utente.permessi && utente.permessi.filter(p => p.nome === \"DUVRI_TEMPLATES_WRITE\").length > 0 ?\r\n deleteFile(a.duvriTemplPk)}\r\n >\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n })}\r\n \r\n
\r\n
\r\n\r\n setUploadDialogOpen(false)}>\r\n Upload allegato\r\n \r\n \r\n \r\n \r\n { e.target.files && setFile(e.target.files[0]) }} />\r\n \r\n \r\n setNote(v.target.value)}\r\n style={{ width: \"100%\" }}\r\n defaultValue={note}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setUploadDialogOpen(false);\r\n setFile(undefined);\r\n }}\r\n color=\"secondary\">\r\n Annulla\r\n \r\n {\r\n postFile();\r\n }}\r\n color=\"default\">\r\n Upload\r\n \r\n \r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n\r\n","import axios from 'axios';\r\nimport { useEffect, useState } from 'react';\r\nimport { DuvriTemplate } from '../model/duvriTemplate';\r\n\r\nexport function useDuvriTemplates() {\r\n const [templates, setTemplates] = useState([]);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n function loadData() {\r\n axios.get(process.env.REACT_APP_API_URL + 'DuvriTemplate')\r\n .then(res => setTemplates(res.data));\r\n }\r\n\r\n function postTemplate(formData: FormData) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'DuvriTemplate/', formData);\r\n }\r\n\r\n function deleteTemplate(templatePk: number) {\r\n return axios.delete(process.env.REACT_APP_API_URL + 'DuvriTemplate/' + templatePk);\r\n }\r\n\r\n function viewPdfTemplate(templatePk: number) {\r\n axios(process.env.REACT_APP_API_URL + 'DuvriTemplate/' + templatePk + \"/File\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n //Create a Blob from the PDF Stream\r\n const file = new Blob(\r\n [response.data],\r\n { type: 'application/pdf' });\r\n //Build a URL from the file\r\n const fileURL = URL.createObjectURL(file);\r\n //Open the URL on new Window\r\n window.open(fileURL);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function downloadTemplate(templatePk: number, filename: string) {\r\n axios(process.env.REACT_APP_API_URL + 'DuvriTemplate/' + templatePk + \"/File\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => { \r\n var FileSaver = require('file-saver');\r\n FileSaver.saveAs(response.data, filename);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n return {\r\n templates,\r\n actions: {\r\n loadData,\r\n postTemplate,\r\n viewPdfTemplate,\r\n downloadTemplate,\r\n deleteTemplate\r\n }\r\n }\r\n}","export default \"data:image/gif;base64,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\"","import { useState, useContext } from 'react';\r\nimport { Cliente } from '../../model/cliente';\r\nimport { useEffect } from 'react';\r\nimport { useDuvri } from '../../hooks/useDuvri';\r\nimport { CustomerDuvri } from './components/CustomerDuvri';\r\nimport { useCliente } from '../../hooks/useCliente';\r\nimport { Button, Grid, Paper, Typography, Table, TableBody, TableCell, TableHead, TableRow } from '@material-ui/core';\r\nimport { useClienteMoc } from '../../hooks/useClienteMoc';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport { Send } from '@material-ui/icons';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport React from 'react';\r\nimport UserContext from '../../core/UserContext';\r\nimport { Form } from 'react-final-form';\r\nimport {\r\n Checkboxes,\r\n TextField\r\n} from 'mui-rff';\r\nimport { ChiaveValore } from '../../model/chiaveValore';\r\n\r\nexport interface AssCompanyState {\r\n dialogOpen: boolean,\r\n compagnia?: ChiaveValore\r\n}\r\n\r\nexport function CustomerDuvriEdit() {\r\n const [cliente, setCliente] = useState();\r\n const { duvriActions, duvriReport } = useDuvri();\r\n const { actionsCliente, clientiCompagnie, clientiContatti, setClientiContatti, setClientiCompagnie } = useCliente();\r\n const { mocActions } = useClienteMoc();\r\n const confirm = useConfirm();\r\n const [mocFile, setMocFile] = useState();\r\n const [tab, setTab] = React.useState(0);\r\n const utente = useContext(UserContext);\r\n\r\n async function OpenCustomer() {\r\n let cliente = await actionsCliente.getCliente();\r\n let clienteContatti = await actionsCliente.getClienteContatti();\r\n let clienteCompagnie = await actionsCliente.getClienteCompagnie();\r\n duvriActions.getDuvriReport(cliente.data.clientePk);\r\n setCliente(cliente.data);\r\n setClientiCompagnie(clienteCompagnie.data);\r\n setClientiContatti(clienteContatti.data);\r\n }\r\n\r\n useEffect(() => {\r\n OpenCustomer();\r\n }, []);\r\n\r\n function reloadDuvriReport() {\r\n if (cliente && cliente.ldbFornitore.trim() !== \"9\") {\r\n duvriActions.getDuvriReport(cliente.clientePk);\r\n }\r\n }\r\n\r\n function deleteMoc(clientePk: number) {\r\n confirm({ description: 'Eliminare il MOC?', title: 'Eliminazione MOC' })\r\n .then(() => {\r\n mocActions.deleteMoc(clientePk).then(ret => {\r\n snackbarService.showSnackbar('MOC eliminato', 'success');\r\n OpenCustomer();\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore eliminazione MOC', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n };\r\n\r\n function viewPdfMoc(clientePk: number) {\r\n mocActions.viewPdfMoc(clientePk)\r\n };\r\n\r\n function downloadMoc(clientePk: number, filename: string) {\r\n mocActions.downloadMoc(clientePk, filename);\r\n };\r\n\r\n function putMoc(clientePk: number) {\r\n if (mocFile) {\r\n const formData = new FormData();\r\n\r\n // Update the formData object \r\n formData.append(\"FormFile\", mocFile);\r\n formData.append(\"FileName\", mocFile.name);\r\n\r\n mocActions.postMoc(clientePk, formData).then(ret => {\r\n snackbarService.showSnackbar('MOC inserito', 'success');\r\n OpenCustomer();\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore salvataggio MOC', 'error');\r\n });\r\n }\r\n };\r\n\r\n function sendAbRequest() {\r\n confirm({ description: 'Inviare la richiesta di abilitazione?', title: 'Richiesta abilitazione' })\r\n .then(() => {\r\n duvriActions.postAbRequest(cliente?.clientePk!).then(ret => {\r\n snackbarService.showSnackbar('Richiesta inviata', 'success');\r\n OpenCustomer();\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore invio richiesta', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n function SaveCustomer(cliente: Cliente) {\r\n actionsCliente.putCliente(cliente).then(r => {\r\n snackbarService.showSnackbar(\"Dati cliente salvati\", 'success');\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore salvataggio cliente', 'error');\r\n });\r\n }\r\n\r\n const validate = values => {\r\n const errors: any = {};\r\n\r\n if (values.certQualitaCheck && !values.certQualita) {\r\n errors.certQualita = 'Obbligatorio';\r\n }\r\n\r\n if (values.certAmbCheck && !values.certAmb) {\r\n errors.certAmb = 'Obbligatorio';\r\n }\r\n\r\n if (values.consorzioCheck && !values.consorzio) {\r\n errors.consorzio = 'Obbligatorio';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n return (\r\n
\r\n \r\n Gestione dati {cliente && cliente.ragioneSociale}\r\n {tab === 1 && cliente && cliente.ldbFornitore.trim() !== \"9\" && !cliente.dataRichAbilitazione ? }\r\n onClick={() => sendAbRequest()}\r\n style={{ float: \"right\" }}\r\n disabled={duvriReport.filter(o => o.valido === false).length > 0}\r\n title=\"La richiesta può essere inviata solo quando tutte le sezioni sono valide\"\r\n >Invia richiesta abilitazione\r\n : \"\"}\r\n \r\n\r\n setTab(v)}\r\n aria-label=\"disabled tabs example\"\r\n >\r\n \r\n {cliente && cliente.ldbFornitore.trim() !== \"9\" && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"DUVRI_READ\").length > 0 ? : \"\"}\r\n \r\n\r\n {tab === 0 && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Sede\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Contatti\r\n \r\n \r\n \r\n \r\n Nominativo\r\n Tipo\r\n Contatto\r\n \r\n \r\n \r\n {clientiContatti.map((a) => { \r\n return \r\n {a.nominativo}\r\n {a.tipo.trim().length > 0 ? a.tipo : \"Telefono\"}\r\n {a.contatto}\r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n Compagnie\r\n \r\n \r\n \r\n {clientiCompagnie.map((a) => {\r\n return \r\n {a.ragioneSociale}\r\n \r\n })}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n Altro\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n values.consorzio = \"\"}\r\n checked={values.consorzioCheck ? true : false}\r\n />\r\n {values.consorzioCheck && }\r\n \r\n \r\n values.certQualita = \"\"}\r\n checked={values.certQualitaCheck ? true : false}\r\n />\r\n {values.certQualitaCheck && }\r\n \r\n \r\n values.certAmb = \"\"}\r\n checked={values.certAmbCheck ? true : false}\r\n />\r\n {values.certAmbCheck && }\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n Salva\r\n \r\n \r\n \r\n
\r\n )}\r\n />\r\n }\r\n\r\n {cliente && (cliente.ldb.trim() === \"1\" || cliente.ldb.trim() === \"3\") ?\r\n\r\n \r\n MOC\r\n \r\n\r\n {cliente.mocNomefile ?\r\n \r\n \r\n \r\n {cliente.mocNomefile}\r\n \r\n \r\n downloadMoc(cliente.clientePk, cliente.mocNomefile!)}\r\n >Scarica\r\n \r\n {cliente.mocNomefile.toLowerCase().indexOf(\".pdf\") > -1 ?\r\n \r\n viewPdfMoc(cliente.clientePk)}\r\n >Visualizza\r\n \r\n : \"\"}\r\n \r\n deleteMoc(cliente.clientePk)}\r\n >Elimina\r\n \r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n { e.target.files && setMocFile(e.target.files[0]) }} />\r\n \r\n \r\n putMoc(cliente.clientePk)}\r\n >Upload\r\n \r\n \r\n \r\n \r\n \r\n : \"\"\r\n }\r\n {tab === 1 && cliente && cliente.ldbFornitore.trim() !== \"9\" ? : \"\"}\r\n
\r\n );\r\n}\r\n\r\n\r\n","import axios from 'axios';\r\nimport { useState } from 'react';\r\nimport { Cliente, ClienteContatto } from '../model/cliente';\r\n\r\nexport function useCliente() {\r\n const [clientiContatti, setClientiContatti] = useState([]);\r\n const [clientiCompagnie, setClientiCompagnie] = useState([]);\r\n\r\n function getCliente() {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Me/Cliente');\r\n }\r\n\r\n function getClienteContatti() {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Me/Cliente/Contatti');\r\n }\r\n\r\n function getClienteCompagnie() {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Me/Cliente/Compagnie');\r\n }\r\n\r\n function postClienteCompagnia(compagniaPk: number) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Me/Cliente/Compagnie', {\r\n clientePk: compagniaPk\r\n });\r\n }\r\n\r\n function deleteClienteCompagnia(compagniaPk: number) {\r\n return axios.delete(process.env.REACT_APP_API_URL + 'Me/Cliente/Compagnie' + compagniaPk\r\n );\r\n }\r\n\r\n function putCliente(cliente: Cliente) {\r\n return axios.put(process.env.REACT_APP_API_URL + 'Me/Cliente', cliente);\r\n }\r\n\r\n return {\r\n clientiContatti,\r\n clientiCompagnie,\r\n setClientiContatti,\r\n setClientiCompagnie,\r\n actionsCliente: {\r\n getCliente,\r\n getClienteCompagnie,\r\n postClienteCompagnia,\r\n deleteClienteCompagnia,\r\n getClienteContatti,\r\n putCliente\r\n }\r\n }\r\n}","import { useEffect } from 'react';\r\nimport { Applicazioni } from '../../model/utente';\r\nimport { Paper, Typography, Button, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TextField, Grid } from \"@material-ui/core\";\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport { useDuvriConfig } from '../../hooks/useDuvriConfig';\r\nimport { Duvri } from '../../model/duvri';\r\n\r\nexport interface ConfirmState {\r\n modalOpen: boolean;\r\n modalMessage?: string;\r\n applicazione?: Applicazioni;\r\n newUserFk?: number;\r\n}\r\n\r\nexport function DuvriConfig() {\r\n const { duvri, setDuvri, duvriActions } = useDuvriConfig()\r\n const confirm = useConfirm();\r\n\r\n const changeGgValidita = (row: Duvri, value: number) => {\r\n let _duvri = [...duvri];\r\n let index = _duvri.findIndex(o => o.duvriPk === row.duvriPk);\r\n _duvri[index].ggValidita = value;\r\n\r\n setDuvri(_duvri);\r\n }\r\n\r\n useEffect(() => {\r\n duvriActions.getDuvriList();\r\n }, []);\r\n\r\n function save() { \r\n confirm({ description: 'Salvare?', title: 'Configurazione scadenza' })\r\n .then(() => {\r\n duvriActions.patchDuvri(duvri).then(ret => {\r\n snackbarService.showSnackbar('Configurazione aggiornata', 'success');\r\n duvriActions.getDuvriList();\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore Salvataggio', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n };\r\n\r\n function cancel() {\r\n duvriActions.getDuvriList();\r\n };\r\n\r\n return (\r\n
\r\n \r\n Configurazione scadenze DUVRI\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nome\r\n \r\n \r\n Giorni validità (0 nessuna scadenza)\r\n \r\n \r\n \r\n \r\n {duvri.map((a) => {\r\n return \r\n {a.tipo}\r\n \r\n changeGgValidita(a, +e.target.value)}\r\n value={a.ggValidita}\r\n />\r\n \r\n \r\n })}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n save()}\r\n >Salva\r\n      \r\n cancel()}\r\n >Annulla\r\n \r\n \r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Duvri } from '../model/duvri';\r\n\r\nexport function useDuvriConfig() {\r\n const [duvri, setDuvri] = useState([]);\r\n\r\n function getDuvriList() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Duvri/')\r\n .then(ret => setDuvri(ret.data));\r\n }\r\n\r\n function patchDuvri(data: Duvri[]) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'Duvri/', data);\r\n }\r\n\r\n return {\r\n duvri,\r\n setDuvri,\r\n duvriActions: {\r\n getDuvriList,\r\n patchDuvri\r\n }\r\n }\r\n}","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Ods, OdsAllegato, OdsStatoLog } from '../model/ods';\r\nimport { useUtils } from './useUtils';\r\nimport moment from 'moment';\r\nimport { OrdineVendita } from '../model/ordineVendita';\r\nimport { odsDatiAllegato } from '../model/odsDocData';\r\n\r\n\r\nexport function useOds() {\r\n const [ods, setOds] = useState([]);\r\n const { utilsActions } = useUtils();\r\n const [allegati, setAllegati] = useState([]);\r\n const [logs, setLogs] = useState([]);\r\n\r\n function getOdsList() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Ods/')\r\n .then(ret => setOds(ret.data));\r\n }\r\n\r\n function getSimpleOdsList() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Ods/?responseType=SIMPLE')\r\n .then(ret => setOds(ret.data));\r\n }\r\n\r\n function getOds(documentoPk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Ods/' + documentoPk);\r\n }\r\n\r\n function getOdsGuid(documentoPk: number, guid: string) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Ods/' + documentoPk + '/GUID/' + guid);\r\n }\r\n\r\n function searchOds(filter: Ods) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Ods/?' + utilsActions.serializeToQueryParams(filter))\r\n .then(ret => setOds(ret.data));\r\n }\r\n\r\n function patchPlanDate(documentoPk: number, data: Ods) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'Ods/' + documentoPk + \"/DataIntervento\", { ...data, dataIntervento: moment.utc(data.dataIntervento).local().format('YYYY-MM-DD[T]HH:mm:ss') });\r\n }\r\n\r\n function patchState(documentoPk: number, data: Ods) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'Ods/' + documentoPk + \"/Stato\", data);\r\n }\r\n\r\n function patchAccept(documentoPk: number, guid: string) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'Ods/' + documentoPk + \"/StatoAccettazione/\" + guid);\r\n }\r\n\r\n function post(ordini: OrdineVendita[]) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Ods/', ordini);\r\n }\r\n\r\n function postDoc(docData: odsDatiAllegato, documentoPk: number) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Ods/' + documentoPk + '/Incarico', docData);\r\n }\r\n\r\n function getOdsFk(odjobs: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Ods/odjobs/' + odjobs);\r\n }\r\n\r\n function getIncarico(documentoPk: number, guid: string) {\r\n axios(process.env.REACT_APP_API_URL + 'Ods/' + documentoPk + \"/Incarico/\" + guid, {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n //Create a Blob from the PDF Stream\r\n const file = new Blob(\r\n [response.data],\r\n { type: 'application/pdf' });\r\n //Build a URL from the file\r\n const fileURL = URL.createObjectURL(file);\r\n //Open the URL on new Window\r\n window.open(fileURL);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function getAllegati(odsPk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Ods/' + odsPk + \"/Allegati\")\r\n .then(ret => setAllegati(ret.data));\r\n }\r\n\r\n function postAllegato(odsPk: number, formData: FormData) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'Ods/' + odsPk + \"/Allegati\", formData);\r\n }\r\n\r\n function deleteAllegato(odsPk: number, allegatoPk: number) {\r\n return axios.delete(process.env.REACT_APP_API_URL + 'Ods/' + odsPk + \"/Allegati/\" + allegatoPk);\r\n }\r\n\r\n function viewAllegatoPdf(odsPk: number, allegatoPk: number) {\r\n axios(process.env.REACT_APP_API_URL + 'Ods/' + odsPk + \"/Allegati/\" + allegatoPk + \"/File\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n //Create a Blob from the PDF Stream\r\n const file = new Blob(\r\n [response.data],\r\n { type: 'application/pdf' });\r\n //Build a URL from the file\r\n const fileURL = URL.createObjectURL(file);\r\n //Open the URL on new Window\r\n window.open(fileURL);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function downloadAllegato(odsPk: number, allegatoPk: number, filename: string) {\r\n axios(process.env.REACT_APP_API_URL + 'Ods/' + odsPk + \"/Allegati/\" + allegatoPk + \"/File\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n var FileSaver = require('file-saver');\r\n FileSaver.saveAs(response.data, filename);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function getStatusLog(odsFk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Ods/' + odsFk + '/StatiLog');\r\n }\r\n\r\n return {\r\n ods,\r\n setOds,\r\n allegati,\r\n logs,\r\n setLogs,\r\n odsActions: {\r\n getOdsList,\r\n getSimpleOdsList,\r\n searchOds,\r\n getOds,\r\n patchPlanDate,\r\n patchState,\r\n post,\r\n getOdsFk,\r\n postDoc,\r\n getIncarico,\r\n getOdsGuid,\r\n patchAccept,\r\n getAllegati,\r\n postAllegato,\r\n deleteAllegato,\r\n viewAllegatoPdf,\r\n downloadAllegato,\r\n getStatusLog\r\n }\r\n }\r\n}","import { Button, Dialog, DialogContent, DialogTitle, Grid, Paper, TextField, Typography } from \"@material-ui/core\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { useUtils } from \"../../../hooks/useUtils\";\r\nimport { Ods } from \"../../../model/ods\";\r\nimport MUIEditor, { MUIEditorState, toHTML } from 'react-mui-draft-wysiwyg'\r\nimport { odsDatiAllegato } from \"../../../model/odsDocData\";\r\nimport { useOds } from \"../../../hooks/useOds\";\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport UserContext from \"../../../core/UserContext\";\r\nimport { useUtentiClienti } from \"../../../hooks/useUtentiClienti\";\r\n\r\n\r\nexport interface OdsDocEditProps {\r\n ods: Ods;\r\n onClose: () => void;\r\n open: boolean;\r\n openOds: (documentoPk: number) => void;\r\n}\r\n\r\nexport const OdsDocEdit: React.FC = (props) => {\r\n const { utilsActions } = useUtils();\r\n const { odsActions } = useOds();\r\n const confirm = useConfirm();\r\n const utente = useContext(UserContext);\r\n const { utenti, actions } = useUtentiClienti(0);\r\n\r\n const [docData, setDocData] = useState({\r\n date: utilsActions.formatDate(new Date()),\r\n from: utente.nome + \" \" + utente.cognome,\r\n to: \"\",\r\n orderNumber: props.ods.numeroOrdineAcquisto + \"/\" + props.ods.odsPk,\r\n notes: MUIEditorState.createEmpty()\r\n });\r\n\r\n function save() {\r\n if (!docData.date || !docData.from || !docData.orderNumber || !docData.to) {\r\n snackbarService.showSnackbar('Tutti i campi sono obbligatori', 'error');\r\n return;\r\n }\r\n confirm({ description: 'Inviare l\\'incarico al manutentore?', title: 'Invio incarico' })\r\n .then(() => {\r\n odsActions.postDoc({ ...docData, notes: toHTML(docData.notes.getCurrentContent()) }, props.ods.documentoPk!).then(ret => {\r\n props.onClose();\r\n props.openOds(props.ods.documentoPk!);\r\n snackbarService.showSnackbar('Incarico inviato', 'success');\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore creazione incarico', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n useEffect(() => {\r\n actions.getUtentiCliente(props.ods.codiceManutentore!);\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n let to = \"\";\r\n utenti.map(u => {\r\n to = u.upn + \";\" + to;\r\n });\r\n setDocData({ ...docData, to: to });\r\n\r\n }, [utenti]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n Creazione incarico os/ods: {props.ods.numeroOrdineAcquisto}/{props.ods.odsPk}\r\n props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Annulla\r\n\r\n save()}\r\n style={{ float: \"right\", marginRight: \"10px\" }}\r\n disabled={!docData.to}\r\n >Crea\r\n \r\n\r\n \r\n {docData.to ?\r\n <>\r\n \r\n Dati intestazione\r\n \r\n \r\n { setDocData({ ...docData, to: e.target.value }) }} disabled />\r\n \r\n \r\n { setDocData({ ...docData, from: e.target.value }) }} />\r\n \r\n \r\n { setDocData({ ...docData, date: e.target.value }) }} />\r\n \r\n \r\n { setDocData({ ...docData, orderNumber: e.target.value }) }} />\r\n \r\n \r\n \r\n \r\n Note\r\n \r\n \r\n { setDocData({ ...docData, notes: s }) }} />\r\n \r\n \r\n \r\n \r\n :\r\n Nessun utente associato al manutentore\r\n }\r\n \r\n \r\n\r\n\r\n \r\n )\r\n}\r\n\r\n\r\n","import { Button, Grid, IconButton, Paper, TableCell, Dialog, DialogActions, DialogContent, DialogTitle, TableRow, Typography, TextField, FormControl, InputLabel, MenuItem, Select, DialogContentText, Table, TableBody, TableContainer, TableHead } from '@material-ui/core';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport UserContext from '../../../core/UserContext';\r\nimport { Ods } from '../../../model/ods';\r\nimport { useUtils } from '../../../hooks/useUtils';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport { useOds } from '../../../hooks/useOds';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport { useChiaveValore } from '../../../hooks/useChiaveValore';\r\nimport { OdsDocEdit } from './OdsDocEdit';\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nexport interface OdsEditProps {\r\n ods: Ods[];\r\n onClose: () => void;\r\n openOds: (documentoPk: number) => void;\r\n}\r\n\r\nexport const OdsEdit: React.FC = (props) => {\r\n const { odsActions, allegati } = useOds();\r\n const utente = useContext(UserContext);\r\n const { utilsActions } = useUtils();\r\n const [planDate, setPlanDate] = useState(props.ods[0].dataIntervento ? new Date(props.ods[0].dataIntervento) : null);\r\n const [state, setState] = useState(props.ods[0].statoFk ? props.ods[0].statoFk : null);\r\n const { statiOds, actionsCV } = useChiaveValore();\r\n const [showCreateDocDialog, setShowCreateDocDialog] = useState(false);\r\n const [file, setFile] = React.useState();\r\n const confirm = useConfirm();\r\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\r\n\r\n useEffect(() => {\r\n actionsCV.getStatiOds();\r\n odsActions.getAllegati(props.ods[0].documentoPk!);\r\n }, []);\r\n\r\n function patchPlanDate(pd: Date) {\r\n let data = { ...props.ods[0] };\r\n data.dataIntervento = pd;\r\n odsActions.patchPlanDate(data.documentoPk!, data).then(() => {\r\n snackbarService.showSnackbar('Data impostata', 'success');\r\n });\r\n\r\n }\r\n\r\n function patchState(stato: number) {\r\n let data = { ...props.ods[0] };\r\n data.statoFk = stato;\r\n odsActions.patchState(data.documentoPk!, data).then(() => {\r\n props.openOds(data.documentoPk!);\r\n snackbarService.showSnackbar('Stato impostato', 'success');\r\n });\r\n }\r\n\r\n function deleteFile(odsPk: number, allegatoPk: number) {\r\n confirm({ description: 'Eliminare il file?', title: 'Eliminazione file' })\r\n .then(() => {\r\n odsActions.deleteAllegato(odsPk, allegatoPk).then(ret => {\r\n snackbarService.showSnackbar('file eliminato', 'success');\r\n odsActions.getAllegati(props.ods[0].documentoPk!);\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore eliminazione file', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n function postFile() {\r\n if (file) {\r\n const formData = new FormData();\r\n\r\n formData.append(\"FormFile\", file);\r\n formData.append(\"FileName\", file.name);\r\n\r\n odsActions.postAllegato(props.ods[0].documentoPk!, formData).then(r => {\r\n setUploadDialogOpen(false);\r\n setFile(null);\r\n snackbarService.showSnackbar('file inserito', 'success');\r\n odsActions.getAllegati(props.ods[0].documentoPk!);\r\n });\r\n }\r\n }\r\n\r\n function accept(odsFk: number, guid: string) {\r\n confirm({ description: 'Accettare l\\'incarico?', title: 'Accettazione incarico' })\r\n .then(() => {\r\n odsActions.patchAccept(+odsFk!, guid!).then(ret => {\r\n props.openOds(+odsFk!);\r\n setState(50);\r\n snackbarService.showSnackbar('Incarico accettato', 'success');\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore accettazione incarico', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n function statusItemDisabled(status: string) {\r\n if (utente.cliente) {\r\n return (status == \"10\" || status == \"20\" || status == \"30\" || status == \"40\" || status == \"50\" || (status == \"70\" && allegati && allegati.length == 0) || status == \"80\" || status == \"90\" || status == \"100\" || status == \"110\" || status == \"999\");\r\n } else {\r\n return (status == \"10\" || status == \"20\" || status == \"30\" || status == \"40\" || status == \"100\" || status == \"110\");\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {!utente.cliente && !props.ods[0].utenteApprovazione ?\r\n setShowCreateDocDialog(false)}\r\n open={showCreateDocDialog}\r\n openOds={() => props.openOds(props.ods[0].documentoPk!)}\r\n />\r\n : \"\"}\r\n \r\n Dettagli OS/ODS {props.ods[0].numeroOrdineAcquisto}/{props.ods[0].documentoPk}\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n {!props.ods[0].utenteApprovazione && props.ods[0].statoFk! === 40 ?\r\n }\r\n onClick={() => accept(props.ods[0].odsPk!, props.ods[0].guidAllegato!)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Accetta incarico\r\n : \"\"}\r\n \r\n \r\n Incarico ODS\r\n {props.ods[0].nomeAllegato ?\r\n <>\r\n \r\n \r\n odsActions.getIncarico(props.ods[0].documentoPk!, props.ods[0].guidAllegato!)}\r\n >\r\n Visualizza\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n <>\r\n {!utente.cliente && !props.ods[0].tipoRigaFatturaFornitore ?\r\n \r\n setShowCreateDocDialog(true)}\r\n >Crea\r\n \r\n : \"\"\r\n }\r\n \r\n }\r\n\r\n \r\n\r\n \r\n ODS\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n p.nome === \"ODS_STATUS_CHANGE\").length > 0)}\r\n onChange={(d, v) => { setPlanDate(d!); patchPlanDate(d!); }}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n \r\n {utente.cliente && props.ods[0].statoFk! === 60 ?\r\n <>\r\n (Per impostare come Eseguito, allegare il rapporto di lavoro)\r\n \r\n : \"\"}\r\n \r\n Stato\r\n { setState(e.target.value as number); patchState(e.target.value as number) }}\r\n disabled={!(utente && utente.permessi && utente.permessi.filter(p => p.nome === \"ODS_STATUS_CHANGE\").length > 0)}\r\n >\r\n {statiOds.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n Allegati\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Allegato\r\n \r\n \r\n Data inserimento\r\n \r\n \r\n Utente\r\n \r\n \r\n }\r\n onClick={() => setUploadDialogOpen(true)}\r\n >Aggiungi\r\n \r\n \r\n \r\n \r\n {allegati.map((a) => {\r\n return \r\n {a.nome}\r\n {utilsActions.formatDateTime(a.ddi)}\r\n {a.utenteInserimento}\r\n \r\n odsActions.viewAllegatoPdf(a.odsFk, a.odsAllegatoPk)}\r\n >\r\n \r\n \r\n odsActions.downloadAllegato(a.odsFk, a.odsAllegatoPk, a.nome)}\r\n >\r\n \r\n \r\n deleteFile(a.odsFk, a.odsAllegatoPk)}\r\n >\r\n \r\n \r\n \r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n setUploadDialogOpen(false)}>\r\n Upload allegato\r\n \r\n \r\n { e.target.files && setFile(e.target.files[0]) }} />\r\n \r\n \r\n \r\n {\r\n setUploadDialogOpen(false);\r\n setFile(undefined);\r\n }}\r\n color=\"secondary\">\r\n Annulla\r\n \r\n {\r\n postFile();\r\n }}\r\n color=\"default\">\r\n Upload\r\n \r\n \r\n \r\n
\r\n \r\n Consorzio\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manutentore\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n OS\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {props.ods.map(ods => {\r\n return (
\r\n Riga {ods.rigaOrdineAcquisto} OS \r\n \r\n Punto vendita\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Intervevento\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Quantità\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Importi\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setUploadDialogOpen(false)}>\r\n Upload allegato\r\n \r\n \r\n { e.target.files && setFile(e.target.files[0]) }} />\r\n \r\n \r\n \r\n {\r\n setUploadDialogOpen(false);\r\n setFile(undefined);\r\n }}\r\n color=\"secondary\">\r\n Annulla\r\n \r\n {\r\n postFile();\r\n }}\r\n color=\"default\">\r\n Upload\r\n \r\n \r\n \r\n
)\r\n })}\r\n\r\n\r\n \r\n );\r\n}\r\n\r\n\r\n","import { Button, createMuiTheme, Dialog, DialogContent, DialogTitle, Paper } from \"@material-ui/core\";\r\nimport { DataGrid, GridCellParams, GridColDef } from \"@material-ui/data-grid\";\r\nimport { ThemeProvider } from \"@material-ui/styles\";\r\nimport { itIT } from \"../model/itIT\";\r\nimport CancelIcon from \"@material-ui/icons/Cancel\";\r\nimport { OdsStatoLog } from \"../model/ods\";\r\nimport { useUtils } from \"../hooks/useUtils\";\r\n\r\nexport interface OdsStatiLogsListProps {\r\n logs: OdsStatoLog[];\r\n onClose: () => void;\r\n open: boolean;\r\n}\r\n\r\nexport const OdsStatiLogsList: React.FC = (props) => {\r\n const { utilsActions } = useUtils();\r\n\r\n const columns: GridColDef[] = [\r\n {\r\n field: 'data', headerName: 'Data', width: 200, headerAlign: \"center\", align: \"center\", sortable: true, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDateTime(params.row.data)} \r\n }\r\n },\r\n {\r\n field: 'utente', headerName: 'Utente', width: 300, sortable: false, headerAlign: \"center\", align: \"left\"\r\n },\r\n {\r\n field: 'stato', headerName: 'Stato', width: 250, headerAlign: \"center\", align: \"left\"\r\n }\r\n ]\r\n\r\n const theme = createMuiTheme(\r\n {\r\n },\r\n itIT,\r\n );\r\n\r\n return (\r\n
\r\n {props.logs.length > 0 ?\r\n \r\n\r\n \r\n Logs ods: {props.logs[0].odsFk}\r\n\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n \r\n\r\n \r\n \r\n r.odsStatoLogPk}\r\n disableSelectionOnClick\r\n />\r\n \r\n \r\n \r\n :\r\n \r\n\r\n \r\n Logs\r\n\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n \r\n\r\n \r\n

Nessun log presente per questo ODS

\r\n
\r\n \r\n }\r\n
\r\n )\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport {\r\n DataGrid,\r\n GridCellParams,\r\n GridColDef,\r\n GridFilterToolbarButton,\r\n GridToolbarContainer\r\n} from '@material-ui/data-grid';\r\nimport { createMuiTheme, Typography, ThemeProvider, Grid, Button, Paper, FormControl, InputLabel, MenuItem, Select, TextField, IconButton } from '@material-ui/core';\r\nimport { itIT } from '../../model/itIT';\r\nimport { useOds } from '../../hooks/useOds';\r\nimport { useUtils } from '../../hooks/useUtils';\r\nimport { Ods } from '../../model/ods';\r\nimport { useChiaveValore } from '../../hooks/useChiaveValore';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport { OdsEdit } from './components/OdsEdit';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { snackbarService } from 'uno-material-ui';\r\nimport { Toc } from '@material-ui/icons';\r\nimport { OdsStatiLogsList } from '../../core/OdsStatiLogsList';\r\n\r\n\r\nexport function OdsList() {\r\n const { ods, odsActions, logs, setLogs } = useOds();\r\n const { utilsActions } = useUtils();\r\n const [filterState, setFilterState] = useState({ dataRichiesta: null, dataRichiestaTo: null });\r\n const { statiOdsJde, statiOds, autoriOds, actionsCV } = useChiaveValore();\r\n const [selOdsState, setSelOdsState] = useState();\r\n const search = useLocation().search;\r\n const odsFk = new URLSearchParams(search).get('ODS');\r\n const odjobs = new URLSearchParams(search).get('ODJOB');\r\n const [showDetails, setShowDetails] = useState(false);\r\n\r\n const columns: GridColDef[] = [\r\n {\r\n field: 'detailsButtonStart',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: ' ',\r\n filterable: false,\r\n width: 100, renderCell: (params: GridCellParams) => {\r\n return
\r\n OpenOds(params.row.documentoPk)}>\r\n \r\n \r\n\r\n OpenLogs(params.row.documentoPk)}>\r\n \r\n \r\n
\r\n\r\n }\r\n },\r\n { field: 'documentoPk', headerName: 'N. ODS', align: \"center\", width: 120 },\r\n { field: 'tipoOrdine', headerName: 'Tipo', align: \"center\" },\r\n { field: 'statoOrdine', headerName: 'Stato JDE', align: \"center\" },\r\n {\r\n field: 'statoFk', headerName: 'stato', width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {params.row.statoFk !== 0 && statiOds.filter(o => +o.chiave === params.row.statoFk)[0].valore} \r\n }\r\n },\r\n {\r\n field: 'dataRichiesta', headerName: 'D. Richiesta', align: \"center\", width: 130, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDate(params.row.dataRichiesta)} \r\n }\r\n },\r\n { field: 'nomeUtenteCreazione', headerName: 'Autore', width: 200 },\r\n { field: 'centroControllo', headerName: 'C. Controllo', align: \"right\", width: 120, sortable: false },\r\n { field: 'codiceProdotto', headerName: 'Prodotto', width: 180, sortable: false },\r\n {\r\n field: 'descrizione', headerName: 'Descrizione', sortable: false, width: 250, renderCell: (params: GridCellParams) => {\r\n return {params.row.descrizione} - {params.row.descrizione2}\r\n }\r\n },\r\n {\r\n field: 'manutentore', headerName: 'Manutentore', width: 300, renderCell: (params: GridCellParams) => {\r\n return {params.row.codiceManutentore} - {params.row.manutentore}\r\n }\r\n },\r\n { field: 'numeroOrdineAcquisto', headerName: 'N. OS', align: \"right\", width: 150 },\r\n { field: 'rigaOrdineAcquisto', headerName: 'Riga OS', align: \"right\", width: 150 },\r\n { field: 'numeroOrdineVendita', headerName: 'N. Ord. vendita', align: \"right\", width: 150 },\r\n { field: 'quantitaOrdine', headerName: 'Qta richiesta', sortable: false, align: \"right\", width: 150 },\r\n { field: 'pezziRichiesti', headerName: 'Qta aperta', sortable: false, align: \"right\", width: 120 },\r\n { field: 'pezziRicevuti', headerName: 'Qta ricevuta', sortable: false, align: \"right\", width: 120 },\r\n {\r\n field: 'importoRichiesto', headerName: 'Importo aperto', sortable: false, align: \"right\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatCurrency(params.row.importoRichiesto)} \r\n }\r\n },\r\n {\r\n field: 'importoRicevuto', headerName: 'Importo ricevuto', sortable: false, align: \"right\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatCurrency(params.row.importoRicevuto)} \r\n }\r\n },\r\n {\r\n field: 'dataIntervento', headerName: 'Pianificazione', align: \"center\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDate(params.row.dataIntervento)} \r\n }\r\n },\r\n {\r\n field: 'tipoRigaFatturaFornitore', headerName: 'Progresso', align: \"center\", width: 150, renderCell: (params: GridCellParams) => {\r\n if (params.row.tipoRigaFatturaFornitore === '1') {\r\n return <>Effettuato il {utilsActions.formatDate(params.row.dataFatturaFornitore)} \r\n } else if (params.row.tipoRigaFatturaFornitore === '2') {\r\n return <>Fatturato il {utilsActions.formatDate(params.row.dataFatturaFornitore)} \r\n }\r\n return <>\r\n }\r\n },\r\n {\r\n field: 'detailsButtonEnd',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: ' ',\r\n filterable: false,\r\n width: 100, renderCell: (params: GridCellParams) => {\r\n return
\r\n OpenOds(params.row.documentoPk)}>\r\n \r\n \r\n\r\n OpenLogs(params.row.documentoPk)}>\r\n \r\n \r\n
\r\n\r\n }\r\n }\r\n\r\n ];\r\n\r\n async function OpenOds(documentoPk: number) {\r\n let ods = await odsActions.getOds(documentoPk);\r\n setSelOdsState(ods.data);\r\n }\r\n\r\n function CloseOds() {\r\n setSelOdsState(undefined);\r\n }\r\n\r\n async function OpenLogs(odsFk: number) {\r\n let logs = await odsActions.getStatusLog(odsFk);\r\n setLogs(logs.data);\r\n setShowDetails(!showDetails);\r\n }\r\n\r\n function CloseLogs() {\r\n setShowDetails(!showDetails)\r\n }\r\n\r\n useEffect(() => {\r\n actionsCV.getStatiOdsJde();\r\n actionsCV.getStatiOds();\r\n actionsCV.getAutoriOds();\r\n if (odsFk) {\r\n OpenOds(+odsFk);\r\n }\r\n if (odjobs) {\r\n odsActions.getOdsFk(+odjobs).then(r => {\r\n if (r.data && r.data.odsFk) {\r\n OpenOds(+r.data.odsFk);\r\n } else {\r\n snackbarService.showSnackbar('ODS non trovato.', 'error');\r\n window.close();\r\n }\r\n })\r\n }\r\n }, []);\r\n\r\n function CustomToolbar() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const theme = createMuiTheme(\r\n {\r\n\r\n },\r\n itIT,\r\n );\r\n\r\n return (\r\n
\r\n {selOdsState ?\r\n CloseOds()} openOds={() => OpenOds(selOdsState[0].odsPk!)}>\r\n :\r\n <>\r\n \r\n Elenco ODS\r\n \r\n \r\n \r\n \r\n Filtri\r\n \r\n\r\n \r\n \r\n \r\n setFilterState({ ...filterState, documentoPk: +e.target.value })} />\r\n \r\n \r\n \r\n Stato Jde\r\n setFilterState({ ...filterState, statoOrdine: e.target.value as string })}\r\n >\r\n Tutti\r\n {statiOdsJde.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Stato\r\n setFilterState({ ...filterState, statoFk: e.target.value as number })}\r\n >\r\n Tutti\r\n {statiOds.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Autore ODS\r\n setFilterState({ ...filterState, utenteCreazione: e.target.value as string })}\r\n >\r\n Tutti\r\n {autoriOds.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n { setFilterState({ ...filterState, dataRichiesta: d! }); }}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n setFilterState({ ...filterState, dataRichiestaTo: d! })}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n setFilterState({ ...filterState, codiceProdotto: e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, manutentore: e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, numeroOrdineAcquisto: +e.target.value })} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n r.documentoPk + \"-\" + r.rigaOrdineAcquisto}\r\n pagination\r\n autoHeight={true}\r\n pageSize={15}\r\n components={{\r\n Toolbar: CustomToolbar,\r\n }}\r\n disableSelectionOnClick\r\n disableColumnMenu\r\n />\r\n \r\n\r\n
\r\n Max. 1000 risultati restituiti\r\n \r\n }\r\n\r\n {showDetails ?\r\n \r\n :\r\n <>\r\n\r\n \r\n }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { OdsRichiesta, OdsRichiesteAllegato, OdsRichiesteApprovatore } from '../model/odsRichiesta';\r\nimport { Ods } from '../model/ods';\r\n\r\n\r\nexport function useOdsRichiesta() {\r\n const [odsRichieste, setOdsRichieste] = useState([]);\r\n const [odsRichiesta, setOdsRichiesta] = useState();\r\n const [odsRichiesteApprovatori, setOdsRichiesteApprovatori] = useState([]);\r\n const [odsRichiesteAllegati, setOdsRichiesteAllegati] = useState([]);\r\n\r\n function getListaRichieste() {\r\n axios.get(process.env.REACT_APP_API_URL + 'OdsRichiesta').then(ret => {\r\n setOdsRichieste(ret.data);\r\n })\r\n }\r\n\r\n function getRichiesta(richiestaPk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'OdsRichiesta/' + richiestaPk).then(ret => {\r\n setOdsRichiesta(ret.data);\r\n })\r\n }\r\n\r\n function getApprovatori(richiestaPk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'OdsRichiesta/' + richiestaPk + \"/Approvatori\").then(ret => {\r\n setOdsRichiesteApprovatori(ret.data);\r\n })\r\n }\r\n\r\n function getAllegati(richiestaPk: number) {\r\n axios.get(process.env.REACT_APP_API_URL + 'OdsRichiesta/' + richiestaPk + \"/Allegati\").then(ret => {\r\n setOdsRichiesteAllegati(ret.data);\r\n })\r\n }\r\n\r\n function postRichiesta(formData: FormData) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'OdsRichiesta', formData);\r\n }\r\n\r\n function patchDataApprovazione(richiestaPk: number) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'OdsRichiesta/' + richiestaPk + '/DataApprovazione');\r\n }\r\n\r\n function patchOdsFk(richiestaPk: number, ods: Ods) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'OdsRichiesta/' + richiestaPk + '/Ods', ods);\r\n }\r\n\r\n function viewAttachmentPdf(richiestaPk: number, allegatoPk: number) {\r\n axios(process.env.REACT_APP_API_URL + 'OdsRichiesta/' + richiestaPk + \"/\" + allegatoPk + \"/File\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n //Create a Blob from the PDF Stream\r\n const file = new Blob(\r\n [response.data],\r\n { type: 'application/pdf' });\r\n //Build a URL from the file\r\n const fileURL = URL.createObjectURL(file);\r\n //Open the URL on new Window\r\n window.open(fileURL);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n function downloadAttachment(richiestaPk: number, allegatoPk: number, filename: string) {\r\n axios(process.env.REACT_APP_API_URL + 'OdsRichiesta/' + richiestaPk + \"/\" + allegatoPk + \"/File\", {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n var FileSaver = require('file-saver');\r\n FileSaver.saveAs(response.data, filename);\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n return {\r\n odsRichieste,\r\n odsRichiesteApprovatori,\r\n odsRichiesteAllegati,\r\n odsRichiesta,\r\n odsRichiestaActions: {\r\n postRichiesta,\r\n getListaRichieste,\r\n getApprovatori,\r\n getAllegati,\r\n viewAttachmentPdf,\r\n downloadAttachment,\r\n patchDataApprovazione,\r\n patchOdsFk,\r\n getRichiesta\r\n }\r\n }\r\n}","import { Button, Grid, IconButton, Paper, Table, TableBody, TableCell, Dialog, DialogActions, DialogContent, DialogTitle, TableRow, Typography, TextField, FormControl, InputLabel, MenuItem, Select, TableContainer, Checkbox, ListItemText } from '@material-ui/core';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport { useChiaveValore } from '../../hooks/useChiaveValore';\r\nimport { OdsRichiesta } from '../../model/odsRichiesta';\r\nimport MUIEditor, { MUIEditorState, toHTML } from \"react-mui-draft-wysiwyg\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport { useOdsRichiesta } from '../../hooks/useOdsRichiesta';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport const OdsRequestEdit: React.FC = (props) => {\r\n const editorConfig = {}\r\n const confirm = useConfirm();\r\n const [richiestaState, setRichiestaState] = useState({ approvatori: [], cc: \"\" });\r\n const [files, setFiles] = useState([]);\r\n const [fileList, setFileList] = useState();\r\n const [uploadDialogOpen, setUploadDialogOpen] = useState(false);\r\n const { odsRichiestaActions } = useOdsRichiesta();\r\n const [editorState, setEditorState] = React.useState(\r\n MUIEditorState.createEmpty(editorConfig),\r\n )\r\n const { approvatoriOds, actionsCV } = useChiaveValore();\r\n let history = useHistory();\r\n\r\n useEffect(() => {\r\n actionsCV.getApprovatoriOds();\r\n }, []);\r\n\r\n function addFile() {\r\n if (fileList) {\r\n let _files = [...files];\r\n\r\n Array.from(fileList!).forEach(file => {\r\n if (!_files.find(o => o.name === file.name)) {\r\n _files.push(file!);\r\n }\r\n });\r\n\r\n setFiles(_files);\r\n setUploadDialogOpen(false);\r\n }\r\n }\r\n\r\n function deleteFile(file: File) {\r\n let _files = [...files];\r\n let index = _files.findIndex(o => o.name === file.name);\r\n _files.splice(index, 1);\r\n setFiles(_files);\r\n }\r\n\r\n function sendData() {\r\n if (richiestaState.oggetto && richiestaState.approvatori.length > 0) {\r\n confirm({ description: 'Inserire la richiesta?', title: 'Inserimento richiesta' })\r\n .then(() => {\r\n const formData = new FormData();\r\n\r\n formData.append(\"oggetto\", richiestaState.oggetto!);\r\n formData.append(\"cc\", richiestaState.cc!);\r\n formData.append(\"body\", toHTML(editorState.getCurrentContent()));\r\n files.forEach(f => {\r\n formData.append(\"allegati\", f);\r\n });\r\n\r\n richiestaState.approvatori.forEach(a => {\r\n formData.append(\"approvatori\", a);\r\n });\r\n\r\n window.scroll(0, 0);\r\n odsRichiestaActions.postRichiesta(formData).then(r => {\r\n snackbarService.showSnackbar('Richiesta inserita con successo', 'success');\r\n history.push(\"/odsRequestList\");\r\n });\r\n })\r\n } else {\r\n snackbarService.showSnackbar('Inserire i campi obbligatori', 'warning');\r\n }\r\n }\r\n\r\n return (\r\n
\r\n Inserimento richiesta ODS\r\n \r\n \r\n \r\n { setRichiestaState({ ...richiestaState, oggetto: e.target.value }) }} />\r\n \r\n \r\n \r\n \r\n Destinatari\r\n \r\n Approvatori (*)\r\n {\r\n const {\r\n target: { value },\r\n } = event;\r\n setRichiestaState({ ...richiestaState, approvatori: (typeof value === 'string' ? value.split(',') : value as string[]) })\r\n\r\n }}\r\n renderValue={(selected) => richiestaState.approvatori.join('; ')}\r\n >\r\n {approvatoriOds.map((o) => (\r\n \r\n -1} />\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n { setRichiestaState({ ...richiestaState, cc: e.target.value }) }} />\r\n \r\n \r\n \r\n \r\n Richiesta\r\n \r\n \r\n { setEditorState(s) }} />\r\n \r\n \r\n \r\n \r\n Allegati\r\n }\r\n onClick={() => setUploadDialogOpen(true)}\r\n >Aggiungi\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {files.map((a) => {\r\n return \r\n {a.name}\r\n \r\n deleteFile(a)}\r\n >\r\n \r\n \r\n \r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n sendData()}\r\n >Salva\r\n      \r\n history.push(\"/odsRequestList\")}\r\n >Annulla\r\n \r\n \r\n \r\n\r\n setUploadDialogOpen(false)}>\r\n Aggiungi allegato\r\n \r\n \r\n { e.target.files && setFileList(e.target.files) }} />\r\n \r\n \r\n \r\n {\r\n addFile();\r\n setFileList(undefined);\r\n }}\r\n color=\"default\">\r\n Aggiungi\r\n \r\n {\r\n setUploadDialogOpen(false);\r\n setFileList(undefined);\r\n }}\r\n color=\"secondary\">\r\n Annulla\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n","import { Button, Grid, IconButton, Paper, Table, TableBody, TableCell, TableRow, Typography, TextField, TableContainer, TableHead, Dialog, DialogActions, DialogContent, DialogTitle } from '@material-ui/core';\r\nimport React, { useContext, useEffect, useState } from 'react';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport MergeIcon from '@material-ui/icons/MergeType';\r\nimport LaunchIcon from '@material-ui/icons/Launch';\r\nimport { useUtils } from '../../../hooks/useUtils';\r\nimport { OdsRichiesta } from '../../../model/odsRichiesta';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport { useOdsRichiesta } from '../../../hooks/useOdsRichiesta';\r\nimport UserContext from '../../../core/UserContext';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useOds } from '../../../hooks/useOds';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport { Ods } from '../../../model/ods';\r\nimport { snackbarService } from 'uno-material-ui';\r\nimport { useConfirm } from 'material-ui-confirm';\r\n\r\nexport interface OdsRequestViewProps {\r\n ods: OdsRichiesta;\r\n onClose: () => void;\r\n onApprove: () => void;\r\n}\r\n\r\nexport interface AssCustomerState {\r\n dialogOpen: boolean,\r\n ods?: Ods\r\n}\r\n\r\nexport const OdsRequestView: React.FC = (props) => {\r\n const history = useHistory();\r\n const { utilsActions } = useUtils();\r\n const { odsRichiesta, odsRichiesteAllegati, odsRichiesteApprovatori, odsRichiestaActions } = useOdsRichiesta();\r\n const utente = useContext(UserContext);\r\n const { ods, odsActions } = useOds();\r\n const [dialogState, setDialogState] = useState({ dialogOpen: false });\r\n const confirm = useConfirm();\r\n const filterOptions = createFilterOptions({\r\n matchFrom: 'any',\r\n limit: 20,\r\n });\r\n\r\n useEffect(() => {\r\n odsRichiestaActions.getAllegati(props.ods.richiestaPk!);\r\n odsRichiestaActions.getApprovatori(props.ods.richiestaPk!);\r\n odsRichiestaActions.getRichiesta(props.ods.richiestaPk!);\r\n }, []);\r\n\r\n const openAssOdsDialog = async () => {\r\n await odsActions.getSimpleOdsList();\r\n setDialogState({ dialogOpen: true, ods: undefined })\r\n }\r\n\r\n const assOds = () => {\r\n confirm({ description: 'Confermare l’associazione?', title: 'Associazione' })\r\n .then(() => {\r\n odsRichiestaActions.patchOdsFk(odsRichiesta?.richiestaPk!, dialogState.ods!).then(r => {\r\n snackbarService.showSnackbar('Ods associato alla richiesta', 'success');\r\n props.onClose();\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore associazione Ods', 'error');\r\n });\r\n setDialogState({ dialogOpen: false, ods: undefined });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n return (\r\n
\r\n Richiesta ODS n. {props.ods.richiestaPk}\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n {!props.ods.dataApprovazione && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"ODS_APPROVE\").length > 0 && odsRichiesteApprovatori.filter(o => o.utenteFk === utente.utentePk).length > 0 ?\r\n }\r\n onClick={() => props.onApprove()}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Approva\r\n : \"\"}\r\n {odsRichiesta && props.ods.dataApprovazione && !odsRichiesta?.odjobs && !odsRichiesta?.odsFk && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"ODS_WRITE\").length > 0 ?\r\n }\r\n onClick={() => history.push(\"/odsNewOV?RI=\" + props.ods.richiestaPk)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Inserisci ODS da OV\r\n : \"\"}\r\n {odsRichiesta && props.ods.dataApprovazione && !odsRichiesta?.odjobs && !odsRichiesta?.odsFk && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"ODS_WRITE\").length > 0 ?\r\n }\r\n onClick={() => history.push(\"/odsNew?RI=\" + props.ods.richiestaPk)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Inserisci ODS senza OV\r\n : \"\"}\r\n {odsRichiesta && props.ods.dataApprovazione && !odsRichiesta?.odjobs && !odsRichiesta?.odsFk && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"ODS_WRITE\").length > 0 ?\r\n }\r\n onClick={() => openAssOdsDialog()}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Associa ODS\r\n : \"\"}\r\n {odsRichiesta && props.ods.dataApprovazione && odsRichiesta?.odjobs && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"ODS_READ\").length > 0 ?\r\n }\r\n onClick={() => window.open(\"odsList?ODJOB=\" + odsRichiesta?.odjobs)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Apri ODS\r\n : \"\"}\r\n {odsRichiesta && props.ods.dataApprovazione && odsRichiesta!.odsFk && utente && utente.permessi && utente.permessi.filter(p => p.nome === \"ODS_READ\").length > 0 ?\r\n }\r\n onClick={() => window.open(\"odsList?ODS=\" + odsRichiesta?.odsFk)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Apri ODS\r\n : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Destinatari\r\n \r\n \r\n \r\n \r\n \r\n \r\n Approvatore\r\n Data approvazione\r\n \r\n \r\n \r\n {odsRichiesteApprovatori.map((a) => {\r\n return \r\n {a.nomeApprovatore}\r\n {utilsActions.formatDate(a.dataApprovazione)}\r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Richiesta\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Allegati\r\n \r\n \r\n \r\n {odsRichiesteAllegati.map((a) => {\r\n return \r\n {a.nome}\r\n \r\n odsRichiestaActions.viewAttachmentPdf(props.ods.richiestaPk!, a.allegatoPk)}\r\n >\r\n \r\n \r\n odsRichiestaActions.downloadAttachment(props.ods.richiestaPk!, a.allegatoPk, a.nome)}\r\n >\r\n \r\n \r\n \r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n setDialogState({ dialogOpen: false })}\r\n fullWidth\r\n >\r\n Associazione ODS a richiesta\r\n \r\n `${option.documentoPk} - ${option.tipoOrdine} - ${option.statoOrdine} - ${(new Date(option.dataRichiesta).toLocaleDateString())} - ${option.descrizione}`}\r\n renderInput={(params) => }\r\n onChange={(e, c: any) => {\r\n if (c) {\r\n setDialogState({ ...dialogState, ods: c });\r\n }\r\n }}\r\n filterOptions={filterOptions}\r\n />\r\n \r\n \r\n setDialogState({ dialogOpen: false })}\r\n color=\"secondary\"\r\n >Annulla\r\n \r\n assOds()}\r\n color=\"default\"\r\n >Conferma\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useContext, useEffect, useState } from 'react';\r\nimport {\r\n DataGrid,\r\n GridCellParams,\r\n GridColDef,\r\n GridFilterToolbarButton,\r\n GridToolbarContainer\r\n} from '@material-ui/data-grid';\r\nimport { createMuiTheme, Typography, ThemeProvider, Grid, Paper, FormControl, InputLabel, MenuItem, Select, IconButton } from '@material-ui/core';\r\nimport { itIT } from '../../model/itIT';\r\nimport { useUtils } from '../../hooks/useUtils';\r\nimport { useChiaveValore } from '../../hooks/useChiaveValore';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport { useOdsRichiesta } from '../../hooks/useOdsRichiesta';\r\nimport { OdsRichiesta } from '../../model/odsRichiesta';\r\nimport { OdsRequestView } from './components/OdsRequestView';\r\nimport UserContext from '../../core/UserContext';\r\nimport LaunchIcon from '@material-ui/icons/Launch';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport { snackbarService } from 'uno-material-ui';\r\n\r\nexport interface FilterState {\r\n statoRichiesta: string;\r\n utenteRichiesta: string;\r\n}\r\n\r\nexport function OdsRequestList() {\r\n const { odsRichieste, odsRichiesta, odsRichiestaActions } = useOdsRichiesta()\r\n const { utilsActions } = useUtils();\r\n const [filterState, setFilterState] = useState({ statoRichiesta: \"0\", utenteRichiesta: \"0\" });\r\n const [selOdsRichiesta, setSelOdsRichiesta] = useState();\r\n const utente = useContext(UserContext);\r\n const confirm = useConfirm();\r\n const search = useLocation().search;\r\n const pkRichiesta = new URLSearchParams(search).get('RI');\r\n const { statiOds, actionsCV } = useChiaveValore();\r\n\r\n const columns: GridColDef[] = [\r\n { field: 'richiestaPk', headerName: 'ID', width: 120 },\r\n {\r\n field: 'oggetto', headerName: 'Oggetto', sortable: false, width: 300, renderCell: (params: GridCellParams) => {\r\n return {params.row.oggetto}\r\n }\r\n },\r\n {\r\n field: 'ddi', headerName: 'D. Richiesta', align: \"center\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDate(params.row.ddi)} \r\n }\r\n },\r\n {\r\n field: 'statoFk', headerName: 'Stato', width: 200, renderCell: (params: GridCellParams) => {\r\n return <> {params.row.statoFk !== 0 && statiOds && statiOds.filter(o => +o.chiave === params.row.statoFk)[0].valore} \r\n }\r\n },\r\n {\r\n field: 'dum', headerName: 'Ultima Mod.', align: \"center\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDateTime(params.row.dum)} \r\n }\r\n },\r\n {\r\n field: 'detailsButtonEnd',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: ' ',\r\n filterable: false,\r\n width: 50, renderCell: (params: GridCellParams) => {\r\n return OpenRichiesta(params.row as OdsRichiesta)}>\r\n \r\n \r\n\r\n }\r\n },\r\n {\r\n field: 'detailsButtonEnd1',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: 'ODS',\r\n filterable: false,\r\n width: 70, renderCell: (params: GridCellParams) => {\r\n if (params.row.odsFk) {\r\n return window.open(\"odsList?ODS=\" + params.row.odsFk)}>\r\n \r\n \r\n } else if (params.row.odjobs) {\r\n return window.open(\"odsList?ODJOB=\" + params.row.odjobs)}>\r\n \r\n \r\n } else {\r\n return <>;\r\n }\r\n\r\n }\r\n }\r\n\r\n ];\r\n\r\n async function OpenRichiesta(ods: OdsRichiesta) {\r\n setSelOdsRichiesta(ods);\r\n }\r\n\r\n function CloseOds() {\r\n setSelOdsRichiesta(undefined);\r\n }\r\n\r\n function ApproveOds(richiestaPk: number) {\r\n confirm({ description: \"Approvare la richiesta?\", title: \"Avviso\" })\r\n .then(() => {\r\n odsRichiestaActions.patchDataApprovazione(richiestaPk).then(r => {\r\n odsRichiestaActions.getListaRichieste();\r\n snackbarService.showSnackbar('Richiesta approvata', 'success');\r\n setSelOdsRichiesta(undefined);\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n function GetFilteredRows() {\r\n let filtered = [...odsRichieste];\r\n\r\n\r\n if (filterState.statoRichiesta !== \"0\") {\r\n filtered = filtered.filter(o => o.statoFk === +filterState.statoRichiesta);\r\n }\r\n\r\n if (filterState.utenteRichiesta !== \"0\") {\r\n if (filterState.utenteRichiesta === \"1\") {\r\n filtered = filtered.filter(o => o.utenteFk === utente.utentePk);\r\n } else if (filterState.utenteRichiesta === \"2\") {\r\n filtered = filtered.filter(o => o.utentiApprovatori!.filter(u => u.utentePk === utente.utentePk).length > 0);\r\n }\r\n }\r\n\r\n\r\n return filtered;\r\n }\r\n\r\n\r\n\r\n useEffect(() => {\r\n actionsCV.getStatiOds();\r\n odsRichiestaActions.getListaRichieste();\r\n\r\n if (pkRichiesta) {\r\n odsRichiestaActions.getRichiesta(+pkRichiesta);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSelOdsRichiesta(odsRichiesta);\r\n }, [odsRichiesta]);\r\n\r\n function CustomToolbar() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const theme = createMuiTheme(\r\n {\r\n\r\n },\r\n itIT,\r\n );\r\n\r\n return (\r\n
\r\n {selOdsRichiesta ?\r\n CloseOds()} onApprove={() => ApproveOds(selOdsRichiesta.richiestaPk!)}>\r\n :\r\n <>\r\n \r\n Elenco richieste ODS\r\n \r\n \r\n \r\n \r\n Filtri\r\n \r\n\r\n \r\n \r\n \r\n \r\n Stato\r\n setFilterState({ ...filterState, statoRichiesta: e.target.value as string })}\r\n >\r\n Tutti\r\n {statiOds.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Tipo\r\n setFilterState({ ...filterState, utenteRichiesta: e.target.value as string })}\r\n >\r\n Tutti\r\n Inserite da me\r\n Che posso approvare\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n r.richiestaPk}\r\n pagination\r\n autoHeight={true}\r\n pageSize={15}\r\n components={{\r\n Toolbar: CustomToolbar,\r\n }}\r\n disableSelectionOnClick\r\n disableColumnMenu\r\n />\r\n \r\n\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { IconButton, TableCell, TextField } from '@material-ui/core';\r\nimport React, { useEffect } from 'react';\r\nimport { Cliente } from '../../../model/cliente';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport { OrdineVendita } from '../../../model/ordineVendita';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport { PuntoVendita } from '../../../model/puntoVendita';\r\nimport { Articolo } from '../../../model/articolo';\r\nimport { ChiaveValore } from '../../../model/chiaveValore';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\n\r\nexport interface OdsRowProps {\r\n row: OrdineVendita;\r\n rowIndex: number;\r\n manutentori: Cliente[];\r\n puntiVendita: PuntoVendita[];\r\n fromOV: boolean;\r\n articoli: Articolo[];\r\n clienti: ChiaveValore[];\r\n updateRow: (e, index) => void;\r\n searchDoc: (row: OrdineVendita, rowIndex: number) => void;\r\n searchPv: (row: OrdineVendita, rowIndex: number) => void;\r\n deleteRow: (rowIndex: number) => void;\r\n}\r\n\r\nexport const OdsRow: React.FC = (props) => {\r\n useEffect(() => {\r\n }, []);\r\n\r\n const filterOptions = createFilterOptions({\r\n matchFrom: 'any',\r\n limit: 20,\r\n });\r\n\r\n\r\n return (\r\n <>\r\n \r\n props.deleteRow(props.rowIndex)}>\r\n \r\n \r\n \r\n {props.fromOV ?\r\n <>\r\n \r\n { props.searchDoc(props.row, props.rowIndex) }} name='numDoc'\r\n onChange={(e) => props.updateRow(e, props.rowIndex)} />\r\n \r\n \r\n { props.searchDoc(props.row, props.rowIndex) }}\r\n name='numRiga' onChange={(e) => props.updateRow(e, props.rowIndex)} />\r\n \r\n \r\n \r\n \r\n \r\n : \"\"}\r\n \r\n option.articolo + \" - \" + option.descrizione1}\r\n renderInput={(params) => }\r\n onChange={(e, c: any) => {\r\n if (c) {\r\n let e = {\r\n target: {\r\n name: 'articolo',\r\n value: c.articolo\r\n }\r\n };\r\n props.updateRow(e, props.rowIndex);\r\n e = {\r\n target: {\r\n name: 'descrizione1',\r\n value: c.descrizione1\r\n }\r\n };\r\n props.updateRow(e, props.rowIndex);\r\n e = {\r\n target: {\r\n name: 'descrizione2',\r\n value: c.descrizione2\r\n }\r\n };\r\n props.updateRow(e, props.rowIndex);\r\n }\r\n }}\r\n filterOptions={filterOptions}\r\n value={props.row}\r\n />\r\n\r\n props.updateRow(e, props.rowIndex)} />\r\n props.updateRow(e, props.rowIndex)} />\r\n props.updateRow(e, props.rowIndex)} />\r\n \r\n \r\n option.chiave + \" - \" + option.valore}\r\n renderInput={(params) => }\r\n onChange={(e, c: any) => {\r\n if (c) {\r\n let e = {\r\n target: {\r\n name: 'codCliente',\r\n value: c.chiave\r\n }\r\n };\r\n props.updateRow(e, props.rowIndex);\r\n e = {\r\n target: {\r\n name: 'descrizioneCliente',\r\n value: c.valore\r\n }\r\n };\r\n props.updateRow(e, props.rowIndex);\r\n }\r\n }}\r\n filterOptions={filterOptions}\r\n value={{ chiave: props.row.codCliente, valore: props.row.descrizioneCliente }}\r\n />\r\n \r\n \r\n \r\n option.codPv + \" - \" + option.codicePv}\r\n renderInput={(params) => }\r\n onChange={(e, c: any) => {\r\n if (c) {\r\n let e = {\r\n target: {\r\n name: 'codPv',\r\n value: c.codPv\r\n }\r\n }\r\n props.updateRow(e, props.rowIndex);\r\n props.searchPv(props.row, props.rowIndex)\r\n }\r\n }}\r\n filterOptions={filterOptions}\r\n value={props.row}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n option.clientePk + \" - \" + option.ragioneSociale}\r\n renderInput={(params) => }\r\n onChange={(e, c) => {\r\n if (c) {\r\n let e = {\r\n target: {\r\n name: 'codManutentore',\r\n value: c.clientePk\r\n }\r\n }\r\n props.updateRow(e, props.rowIndex);\r\n }\r\n }}\r\n />\r\n option.clientePk + \" - \" + option.ragioneSociale}\r\n renderInput={(params) => }\r\n onChange={(e, c) => {\r\n if (c) {\r\n let e = {\r\n target: {\r\n name: 'codConsorzio',\r\n value: c.clientePk\r\n }\r\n }\r\n props.updateRow(e, props.rowIndex);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n props.updateRow({ target: { name: \"dataRichiesta\", value: d } }, props.rowIndex)}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n \r\n props.updateRow(e, props.rowIndex)} />\r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport { Typography, Grid, Button, Paper, FormControl, InputLabel, MenuItem, Select, TextField, Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@material-ui/core';\r\nimport { useOrdiniVendita } from '../../hooks/useOrdiniVendita';\r\nimport { OdsRow } from './components/OdsRow';\r\nimport { OrdineVendita } from '../../model/ordineVendita';\r\nimport { usePuntiVendita } from '../../hooks/usePuntiVendita';\r\nimport { useManutentori } from '../../hooks/useManutentori';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport { useOds } from '../../hooks/useOds';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { useArticoli } from '../../hooks/useArticoli';\r\nimport { useChiaveValore } from '../../hooks/useChiaveValore';\r\nimport { snackbarService } from 'uno-material-ui';\r\nimport { useConfirm } from 'material-ui-confirm';\r\n\r\nexport interface DatiTesta {\r\n stausCodeFrom: string;\r\n stausCodeTo: string;\r\n tipoOds?: string;\r\n completed: boolean;\r\n}\r\n\r\n\r\nexport function OdsNew() {\r\n const { manutentori, manActions } = useManutentori();\r\n const { odsActions } = useOds();\r\n const { codiceCommessa, ovActions } = useOrdiniVendita();\r\n const { puntiVendita, pvActions } = usePuntiVendita();\r\n const { articoli, articoliActions } = useArticoli();\r\n const { clienti, actionsCV } = useChiaveValore();\r\n const [datiTesta, setDatiTesta] = useState({ stausCodeFrom: \"530\", stausCodeTo: \"534\", completed: false });\r\n const [righeOrdine, setRigheOrdine] = useState([]);\r\n const confirm = useConfirm();\r\n const search = useLocation().search;\r\n const fkRichiesta = new URLSearchParams(search).get('RI');\r\n const fromOV: boolean = useLocation().pathname === \"/odsNewOV\";\r\n\r\n function addRow() {\r\n let _rows = [...righeOrdine];\r\n _rows.push(\r\n {\r\n ordineValido: false\r\n });\r\n setRigheOrdine(_rows);\r\n }\r\n\r\n useEffect(() => {\r\n ovActions.getCodiceCommessa();\r\n manActions.getManutentori();\r\n pvActions.getPuntiVendita();\r\n if (!fromOV) {\r\n articoliActions.getArticoli();\r\n actionsCV.getClienti();\r\n }\r\n addRow();\r\n }, []);\r\n\r\n function updateRow(e, index) {\r\n const { name, value } = e.target;\r\n const _rows = [...righeOrdine];\r\n _rows[index][name] = value;\r\n setRigheOrdine(_rows);\r\n }\r\n\r\n\r\n function deleteRow(rowIndex: number) {\r\n let _rows = [...righeOrdine];\r\n _rows.splice(rowIndex, 1);\r\n setRigheOrdine(_rows);\r\n }\r\n\r\n async function searchDoc(row: OrdineVendita, rowIndex: number) {\r\n if (row.numDoc && row.numRiga) {\r\n let ordineVendita = (await ovActions.getOrdineVendita(row.numDoc, row.numRiga)).data;\r\n if (ordineVendita) {\r\n // validazione ordine\r\n let isValid: boolean = true;\r\n if (ordineVendita.sdlttr === \"980\" || ordineVendita.sdnxtr === \"999\") {\r\n isValid = false;\r\n snackbarService.showSnackbar('Riga ordine annullata', 'success');\r\n \r\n } else if (ordineVendita.sdnxtr! > datiTesta.stausCodeTo || ordineVendita.sdnxtr! < datiTesta.stausCodeFrom) {\r\n isValid = false;\r\n snackbarService.showSnackbar(`Stato ordine ${ordineVendita.sdnxtr} non valido`, 'error');\r\n }\r\n if (isValid) {\r\n let _rows = [...righeOrdine];\r\n ordineVendita.ordineValido = true;\r\n _rows[rowIndex] = ordineVendita;\r\n setRigheOrdine(_rows);\r\n } else {\r\n let _rows = [...righeOrdine];\r\n _rows[rowIndex].numDoc = undefined;\r\n _rows[rowIndex].numRiga = undefined;\r\n setRigheOrdine(_rows);\r\n\r\n }\r\n } else {\r\n snackbarService.showSnackbar('Ordine non trovato', 'error');\r\n }\r\n }\r\n\r\n }\r\n\r\n function searchPv(row: OrdineVendita, rowIndex: number) {\r\n if (row.codPv) {\r\n pvActions.getPuntoVendita(row.codPv).then(r => {\r\n if (r) {\r\n let _rows = [...righeOrdine];\r\n _rows[rowIndex].codicePv = r.codicePv;\r\n _rows[rowIndex].descrizionePv = r.descrizionePv;\r\n _rows[rowIndex].indirizzoPv1 = r.indirizzoPv1;\r\n _rows[rowIndex].indirizzoPv2 = r.indirizzoPv2;\r\n _rows[rowIndex].indirizzoPv3 = r.indirizzoPv3;\r\n _rows[rowIndex].indirizzoPv4 = r.indirizzoPv4;\r\n _rows[rowIndex].capPv = r.capPv;\r\n _rows[rowIndex].cittaPv = r.cittaPv;\r\n _rows[rowIndex].nazionePv = r.nazionePv;\r\n _rows[rowIndex].provinciaPv = r.provinciaPv;\r\n setRigheOrdine(_rows);\r\n } else {\r\n snackbarService.showSnackbar('Codice pv non trovato', 'error');\r\n }\r\n });\r\n }\r\n }\r\n\r\n function save() {\r\n let isValid: Boolean = true;\r\n let errors = \"\";\r\n if (!datiTesta.tipoOds) {\r\n errors = errors.concat(\" - Manca il tipo ordine nei dati di testa\\n\");\r\n isValid = false;\r\n }\r\n\r\n if (righeOrdine.length === 0) {\r\n errors = errors.concat(\" - Nessuna riga ordine scelta\\n\");\r\n isValid = false;\r\n }\r\n\r\n let i = 0;\r\n righeOrdine.forEach(r => {\r\n i++;\r\n if (fromOV && !r.numDoc) {\r\n errors = errors.concat(` - Documento non indicato alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.articolo) {\r\n errors = errors.concat(` - Articolo non indicato alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.quantita) {\r\n errors = errors.concat(` - Quantità articolo non indicata alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.codCliente) {\r\n errors = errors.concat(` - Cliente non indicato alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.codPv || r.codPv === 0) {\r\n errors = errors.concat(` - Punto vendita non indicato alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.codManutentore) {\r\n errors = errors.concat(` - Manutentore non indicato alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.codConsorzio) {\r\n errors = errors.concat(` - Consorzio non indicato alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.costo) {\r\n errors = errors.concat(` - Costo unitario non indicato alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n if (!r.dataRichiesta) {\r\n errors = errors.concat(` - Data richiesta non indicata alla riga ${i}\\n`);\r\n isValid = false;\r\n }\r\n\r\n r.codiceCommessa = codiceCommessa;\r\n r.tipoOds = datiTesta.tipoOds;\r\n r.fkRichiesta = fkRichiesta ? +fkRichiesta : undefined;\r\n })\r\n\r\n if (isValid) {\r\n confirm({ description: \"Generare l’ordine?\", title: \"Generazione ordine\" })\r\n .then(() => {\r\n\r\n odsActions.post(righeOrdine).then(r => {\r\n snackbarService.showSnackbar('Generazione avvenuta con successo', 'success');\r\n setRigheOrdine([]);\r\n setDatiTesta({ stausCodeFrom: \"\", stausCodeTo: \"\", completed: true });\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore inserimento ordine', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n\r\n } else {\r\n snackbarService.showSnackbar('Impossibile procedere, errore validazione dati:\\n' + errors, 'error');\r\n }\r\n }\r\n\r\n function createNew() {\r\n setDatiTesta({ stausCodeFrom: \"530\", stausCodeTo: \"534\", completed: false });\r\n ovActions.getCodiceCommessa();\r\n addRow();\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n Generazione ODS\r\n \r\n \r\n {datiTesta.completed ?\r\n }\r\n onClick={() => createNew()}\r\n >Crea nuovo ODS\r\n :\r\n }\r\n onClick={() => save()}\r\n >Inserisci ODS\r\n }\r\n \r\n\r\n \r\n \r\n {!datiTesta.completed ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tipo ordine\r\n setDatiTesta({ ...datiTesta, tipoOds: e.target.value as string })}\r\n >\r\n \r\n SP\r\n SV\r\n \r\n \r\n \r\n {fromOV ?\r\n <>\r\n \r\n setDatiTesta({ ...datiTesta, stausCodeFrom: e.target.value })} />\r\n \r\n \r\n setDatiTesta({ ...datiTesta, stausCodeTo: e.target.value })} />\r\n \r\n \r\n : \"\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {fromOV ?\r\n <>\r\n \r\n Num. Doc.\r\n \r\n \r\n Num. Riga\r\n \r\n \r\n Tipo. Doc.\r\n \r\n \r\n : \"\"}\r\n \r\n Articolo\r\n \r\n \r\n Cliente\r\n \r\n \r\n Punto vendita\r\n \r\n \r\n Indirizzi punto vendita\r\n \r\n \r\n Manutentore (solo abilitati)\r\n \r\n \r\n Data richiesta ODS\r\n \r\n \r\n Costo unitario\r\n \r\n \r\n \r\n \r\n \r\n \r\n {righeOrdine.map((r, i) => {\r\n return \r\n \r\n \r\n \r\n })}\r\n \r\n
\r\n
\r\n
\r\n \r\n : \"\"}\r\n\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Cliente } from '../model/cliente';\r\n\r\nexport function useManutentori() {\r\n const [manutentori, setManutentori] = useState([]);\r\n \r\n function getManutentori() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Clienti')\r\n .then(res => setManutentori(res.data.filter(o => o.codiceDuvri === '2 ')));\r\n }\r\n return {\r\n manutentori, \r\n manActions: {\r\n getManutentori\r\n }\r\n }\r\n}","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { OrdineVendita } from '../model/ordineVendita';\r\n\r\n\r\nexport function useOrdiniVendita() {\r\n const [codiceCommessa, setCodiceCommessa] = useState(0);\r\n\r\n function getOrdineVendita(docNum: number, numRiga: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + `OrdiniVendita?docNum=${docNum}&numRiga=${numRiga}`);\r\n } \r\n\r\n function getCodiceCommessa() {\r\n axios.get(process.env.REACT_APP_API_URL + 'OrdiniVendita/CodiceCommessa').then(ret => setCodiceCommessa(ret.data));;\r\n } \r\n \r\n return { \r\n codiceCommessa,\r\n ovActions: {\r\n getOrdineVendita,\r\n getCodiceCommessa\r\n }\r\n }\r\n}","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { PuntoVendita } from '../model/puntoVendita';\r\n\r\n\r\nexport function usePuntiVendita() {\r\n const [puntiVendita, setPuntiVendita] = useState([]);\r\n\r\n function getPuntoVendita(codPv: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + `PuntiVendita/${codPv}`).then(r => r.data);\r\n }\r\n \r\n function getPuntiVendita() {\r\n axios.get(process.env.REACT_APP_API_URL + `PuntiVendita`).then(r => setPuntiVendita(r.data));\r\n }\r\n \r\n return { \r\n puntiVendita,\r\n pvActions: {\r\n getPuntoVendita,\r\n getPuntiVendita\r\n }\r\n }\r\n}","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Articolo } from '../model/articolo';\r\n\r\n\r\nexport function useArticoli() {\r\n const [articoli, setArticoli] = useState([]);\r\n \r\n function getArticoli() {\r\n axios.get(process.env.REACT_APP_API_URL + `Articoli`).then(r => setArticoli(r.data));\r\n }\r\n \r\n return { \r\n articoli,\r\n articoliActions: {\r\n getArticoli\r\n }\r\n }\r\n}","import React, { useContext } from 'react';\r\nimport { Paper, Typography, Button, DialogActions, Grid } from \"@material-ui/core\";\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport UserContext from '../../core/UserContext';\r\nimport { useManutentoriClienti } from '../../hooks/useManutentoreCliente';\r\n\r\n\r\nexport function MantainersCustomersList() {\r\n const { actions } = useManutentoriClienti();\r\n const confirm = useConfirm();\r\n const [file, setFile] = React.useState();\r\n const [note, setNote] = React.useState(\"\");\r\n const [uploadDialogOpen, setUploadDialogOpen] = React.useState(false);\r\n const utente = useContext(UserContext);\r\n\r\n function postFile() {\r\n if (file) {\r\n confirm({ description: 'Attenzione, i dati verranno sovrascritti, procedere?', title: 'Avviso' })\r\n .then(() => {\r\n const formData = new FormData();\r\n formData.append(\"FormFile\", file);\r\n formData.append(\"FileName\", file.name);\r\n actions.postFile(formData).then(r => {\r\n setUploadDialogOpen(false);\r\n setFile(null);\r\n actions.loadData();\r\n snackbarService.showSnackbar('Operazione completata con successo', 'success');\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore nella fase di import:' + e, 'error');\r\n \r\n });\r\n })\r\n .catch(() => { });\r\n\r\n }\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n Gestione dati associazione Manutentori Clienti\r\n \r\n \r\n \r\n \r\n Scarica associazione su Excel\r\n \r\n\r\n \r\n \r\n \r\n }\r\n onClick={() => actions.downloadExcel()}\r\n >Scarica\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Importa dati da Excel\r\n \r\n\r\n \r\n \r\n \r\n }\r\n onClick={() => setUploadDialogOpen(true)}\r\n >Seleziona file\r\n \r\n \r\n \r\n\r\n setUploadDialogOpen(false)}>\r\n Upload file\r\n \r\n \r\n \r\n \r\n { e.target.files && setFile(e.target.files[0]) }}\r\n accept=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setUploadDialogOpen(false);\r\n setFile(undefined);\r\n }}\r\n color=\"secondary\">\r\n Annulla\r\n \r\n {\r\n postFile();\r\n }}\r\n color=\"default\">\r\n Upload\r\n \r\n \r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n\r\n","import axios from 'axios';\r\nimport { useEffect, useState } from 'react';\r\nimport { DuvriTemplate } from '../model/duvriTemplate';\r\n\r\nexport function useManutentoriClienti() {\r\n const [templates, setTemplates] = useState([]);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n function loadData() {\r\n axios.get(process.env.REACT_APP_API_URL + 'DuvriTemplate')\r\n .then(res => setTemplates(res.data));\r\n }\r\n\r\n function postFile(formData: FormData) {\r\n return axios.post(process.env.REACT_APP_API_URL + 'ManutentoriClienti/', formData);\r\n }\r\n\r\n \r\n\r\n function downloadExcel() {\r\n axios(process.env.REACT_APP_API_URL + 'ManutentoriClienti/Excel', {\r\n method: 'GET',\r\n responseType: 'blob'\r\n })\r\n .then(response => { \r\n var FileSaver = require('file-saver');\r\n FileSaver.saveAs(response.data, \"ManutentoriClientiReport.xlsx\");\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n return {\r\n templates,\r\n actions: {\r\n loadData,\r\n postFile,\r\n downloadExcel,\r\n }\r\n }\r\n}","// note on window.msal usage. There is little point holding the object constructed by new Msal.UserAgentApplication\r\n// as the constructor for this class will make callbacks to the acquireToken function and these occur before\r\n// any local assignment can take place. Not nice but its how it works.\r\nimport * as msal from 'msal'\r\nimport React from 'react'\r\nimport { initializeConfig, msalAppConfig, B2C_SCOPES } from \"./auth-utils\"\r\n\r\nconst LOCAL_STORAGE = 'localStorage'\r\nconst SESSION_STORAGE = 'sessionStorage'\r\nconst AUTHORIZATION_KEY = 'Authorization'\r\n\r\nconst state = {\r\n stopLoopingRedirect: false,\r\n config: {\r\n scopes: [],\r\n cacheLocation: null,\r\n },\r\n launchApp: null,\r\n accessToken: null,\r\n msalObj: null,\r\n}\r\n\r\nlet msalApp;\r\n\r\nfunction acquireToken (successCallback) {\r\n const account = msalApp.getAccount()\r\n\r\n if (!account) {\r\n msalApp.loginRedirect(B2C_SCOPES.API_ACCESS)\r\n } else {\r\n msalApp.acquireTokenSilent(B2C_SCOPES.API_ACCESS).then(accessToken => {\r\n if (msalAppConfig.cache.cacheLocation === LOCAL_STORAGE) {\r\n window.localStorage.setItem(AUTHORIZATION_KEY, 'Bearer ' + accessToken)\r\n } else {\r\n window.sessionStorage.setItem(AUTHORIZATION_KEY, 'Bearer ' + accessToken)\r\n }\r\n \r\n state.accessToken = accessToken\r\n if (state.launchApp) {\r\n state.launchApp()\r\n }\r\n if (successCallback) {\r\n successCallback()\r\n }\r\n }, error => {\r\n if (error) {\r\n msalApp.acquireTokenRedirect(B2C_SCOPES.API_ACCESS)\r\n }\r\n })\r\n }\r\n}\r\n\r\nconst authentication = {\r\n initialize: (config) => {\r\n initializeConfig(config)\r\n msalApp = new msal.UserAgentApplication(msalAppConfig)\r\n },\r\n run: (launchApp) => {\r\n state.launchApp = launchApp\r\n msalApp.handleRedirectCallback(error => {\r\n if (error) {\r\n const errorMessage = error.errorMessage ? error.errorMessage : \"Unable to acquire access token.\"\r\n console.log(errorMessage)\r\n }\r\n })\r\n acquireToken()\r\n },\r\n required: (WrappedComponent, renderLoading) => {\r\n return class extends React.Component {\r\n constructor (props) {\r\n super(props)\r\n this.state = {\r\n signedIn: false,\r\n error: null\r\n }\r\n }\r\n\r\n render () {\r\n if (this.state.signedIn) {\r\n return ()\r\n }\r\n return typeof renderLoading === 'function' ? renderLoading() : null\r\n }\r\n }\r\n },\r\n signOut: () => msalApp.logout(),\r\n getAccessToken: () => state.accessToken.accessToken,\r\n acquireToken: () => acquireToken()\r\n}\r\n\r\nexport default authentication\r\n","export const requiresInteraction = errorMessage => {\r\n if (!errorMessage || !errorMessage.length) {\r\n return false;\r\n }\r\n\r\n return (\r\n errorMessage.indexOf(\"consent_required\") > -1 ||\r\n errorMessage.indexOf(\"interaction_required\") > -1 ||\r\n errorMessage.indexOf(\"login_required\") > -1\r\n );\r\n};\r\n\r\nexport const isIE = () => {\r\n const ua = window.navigator.userAgent;\r\n const msie = ua.indexOf(\"MSIE \") > -1;\r\n const msie11 = ua.indexOf(\"Trident/\") > -1;\r\n\r\n // If you as a developer are testing using Edge InPrivate mode, please add \"isEdge\" to the if check\r\n // const isEdge = ua.indexOf(\"Edge/\") > -1;\r\n\r\n return msie || msie11;\r\n};\r\n\r\nexport const initializeConfig = (config) => {\r\n const tenantSubdomain = config.tenant.split('.')[0]\r\n const instance = `https://${tenantSubdomain}.b2clogin.com/`\r\n const authority = `${instance}${config.tenant}/${config.signInPolicy}`\r\n\r\n msalAppConfig.auth.clientId = config.clientId\r\n msalAppConfig.auth.authority = authority\r\n msalAppConfig.auth.redirectUri = config.redirectUri\r\n msalAppConfig.auth.postLogoutRedirectUri = config.postLogoutRedirectUri\r\n msalAppConfig.cache.cacheLocation = config.cacheLocation\r\n\r\n B2C_SCOPES.API_ACCESS.scopes = config.scopes\r\n};\r\n\r\nexport const B2C_SCOPES = {\r\n API_ACCESS: {\r\n scopes: []\r\n }\r\n};\r\n\r\nexport const msalAppConfig = {\r\n auth: {\r\n clientId: \"\",\r\n authority: \"\",\r\n redirectUri: \"\",\r\n validateAuthority: false,\r\n postLogoutRedirectUri: \"\"\r\n },\r\n cache: {\r\n cacheLocation: \"\",\r\n storeAuthStateInCookie: isIE()\r\n }\r\n};","import { useEffect, useState } from 'react';\r\nimport { Typography, Grid, Button, Paper } from '@material-ui/core';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport { useParametri } from '../../hooks/useParametri';\r\nimport MUIEditor, { MUIEditorState, toHTML } from 'react-mui-draft-wysiwyg'\r\nimport { convertFromHTML, ContentState } from 'draft-js';\r\nimport { snackbarService } from \"uno-material-ui\";\r\n\r\nexport function OdsPdfEdit() {\r\n const { parametriActions } = useParametri();\r\n const [testata, setTestata] = useState(MUIEditorState.createEmpty());\r\n const [condizioni, setCondizioni] = useState(MUIEditorState.createEmpty());\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n function loadData() {\r\n parametriActions.getParametro(1).then(r => {\r\n let c = convertFromHTML(r.data);\r\n const state = ContentState.createFromBlockArray(\r\n c.contentBlocks,\r\n c.entityMap,\r\n );\r\n setTestata(MUIEditorState.createWithContent(\r\n {},\r\n state\r\n ))\r\n });\r\n\r\n\r\n parametriActions.getParametro(2).then(r => {\r\n let c = convertFromHTML(r.data);\r\n const state = ContentState.createFromBlockArray(\r\n c.contentBlocks,\r\n c.entityMap,\r\n );\r\n setCondizioni(MUIEditorState.createWithContent(\r\n {},\r\n state\r\n ))\r\n });\r\n }\r\n\r\n async function save() {\r\n try {\r\n await parametriActions.patchParametro(1, toHTML(testata.getCurrentContent()));\r\n await parametriActions.patchParametro(2, toHTML(condizioni.getCurrentContent()));\r\n loadData();\r\n snackbarService.showSnackbar(\"Salvataggio avvenuto con successo\", 'success');\r\n } catch (e) {\r\n snackbarService.showSnackbar(\"Errore salvataggio\", 'error');\r\n console.log(\"Error\", e);\r\n \r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n Gestione PDF ODS\r\n }\r\n onClick={() => save()}\r\n style={{ float: \"right\" }}\r\n >Salva\r\n \r\n\r\n\r\n \r\n \r\n \r\n Testata\r\n setTestata(s)} />\r\n \r\n \r\n Condizioni\r\n setCondizioni(s)} />\r\n \r\n \r\n \r\n\r\n
\r\n );\r\n}\r\n\r\n\r\n","import axios from 'axios';\r\n\r\n\r\nexport function useParametri() {\r\n\r\n function getParametro(parPk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + `Parametri/${parPk}`);\r\n }\r\n\r\n function patchParametro(parPk: number, valore: string) {\r\n return axios.patch(process.env.REACT_APP_API_URL + `Parametri/${parPk}`, {\"valore\": valore});\r\n }\r\n\r\n return {\r\n parametriActions: {\r\n getParametro,\r\n patchParametro\r\n }\r\n }\r\n}","import {makeStyles, Theme, createStyles } from '@material-ui/core';\r\nimport LockIcon from '@material-ui/icons/Lock';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\n// Styles\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n meassge : {\r\n height: `100vh`,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n }),\r\n);\r\n\r\n\r\nexport function ForbiddenPage() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n Sembra che il tuo utente non sia attivo\r\n \r\n \r\n Per favore contatta un amministratore per segnalare il problema\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Chiamata } from '../model/chiamata';\r\nimport { useUtils } from './useUtils';\r\n\r\nexport function useChiamate() {\r\n const [chiamate, setChiamate] = useState([]);\r\n const { utilsActions } = useUtils();\r\n\r\n function getChiamateList() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Chiamate/')\r\n .then(ret => setChiamate(ret.data));\r\n }\r\n\r\n function searchChiamate(filter: Chiamata) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Chiamate/?' + utilsActions.serializeToQueryParams(filter))\r\n .then(ret => setChiamate(ret.data));\r\n }\r\n\r\n function getChiamata(chiamataPk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Chiamate/' + chiamataPk);\r\n }\r\n\r\n function patch(chiamataPk: number, data: Chiamata) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'Chiamate/' + chiamataPk, data);\r\n }\r\n\r\n function close(chiamataPk: number, data: Chiamata) {\r\n return axios.patch(process.env.REACT_APP_API_URL + 'Chiamate/' + chiamataPk + \"/Status/999\", data);\r\n }\r\n\r\n return {\r\n chiamate,\r\n setChiamate,\r\n chiamateActions: {\r\n getChiamateList,\r\n searchChiamate,\r\n getChiamata,\r\n patch,\r\n close\r\n }\r\n }\r\n}","import { Button, Grid, Paper, Typography, TextField, FormControl, InputLabel, MenuItem, Select, FormControlLabel, Checkbox, RadioGroup, Radio, FormLabel } from '@material-ui/core';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport { Chiamata } from '../../../model/chiamata';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport { useEffect, useState } from 'react';\r\nimport { useUtils } from '../../../hooks/useUtils';\r\nimport { useChiaveValore } from '../../../hooks/useChiaveValore';\r\nimport { useChiamate } from '../../../hooks/useChiamate';\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport { snackbarService } from \"uno-material-ui\";\r\n\r\nexport interface ChiamataEditProps {\r\n numeroChiamata: number;\r\n onClose: () => void;\r\n}\r\n\r\nexport const ChiamataEdit: React.FC = (props) => {\r\n const { utilsActions } = useUtils();\r\n const [checkboxes, setCheckBoxs] = useState({\r\n checkedA: false,\r\n checkedB: false,\r\n checkedF: true,\r\n checkedG: true,\r\n });\r\n\r\n const { difetti, cause, soluzioni, attrezzature, componenti, actionsCV } = useChiaveValore();\r\n const [chiamata, setChiamata] = useState({});\r\n const { chiamateActions } = useChiamate();\r\n const confirm = useConfirm();\r\n\r\n const handleChangeCheckBoxs = (event) => {\r\n setCheckBoxs({ ...checkboxes, [event.target.name]: event.target.checked });\r\n };\r\n\r\n\r\n\r\n useEffect(() => {\r\n chiamateActions.getChiamata(props.numeroChiamata).then(c => {\r\n setChiamata(c.data);\r\n if (c.data.codiciProblema) {\r\n actionsCV.getCause(c.data.codiciProblema.codiceL1!);\r\n actionsCV.getSoluzioni(c.data.codiciProblema.codiceL1!, c.data.codiciProblema.codiceL2!);\r\n }\r\n if (c.data.componenteFk) {\r\n actionsCV.getComponenti(c.data.attrezzaturaFk!);\r\n }\r\n console.log(c.data);\r\n \r\n });\r\n actionsCV.getDifetti();\r\n actionsCV.getAttrezzature();\r\n }, []);\r\n\r\n function patch() {\r\n confirm({ description: 'Aggiornare i dati della chiamata?', title: 'Aggiornamento chiamata' })\r\n .then(() => {\r\n chiamateActions.patch(chiamata.numero!, chiamata).then(ret => {\r\n snackbarService.showSnackbar('Dati aggiornati', 'success');\r\n }).catch(e => {\r\n console.error(e);\r\n snackbarService.showSnackbar('Errore aggiornamento dati', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n function close() {\r\n if (chiamata.attrezzaturaFk &&\r\n chiamata.componenteFk &&\r\n chiamata.codiciProblema && chiamata.codiciProblema.codiceL1 &&\r\n chiamata.codiciProblema && chiamata.codiciProblema.codiceL2 &&\r\n chiamata.problemaRiscontratoFk &&\r\n chiamata.nomeTecnico &&\r\n chiamata.inizioIntervento &&\r\n chiamata.fineIntervento\r\n ) {\r\n\r\n confirm({ description: 'Chiudere la chiamata?', title: 'Chiusura chiamata' })\r\n .then(() => {\r\n chiamateActions.close(chiamata.numero!, chiamata).then(ret => {\r\n snackbarService.showSnackbar('Chiamata chiusa', 'success');\r\n setChiamata({ ...chiamata, inChiusura: true })\r\n }).catch(e => {\r\n console.error(e);\r\n snackbarService.showSnackbar('Errore chiusura chiamata', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n } else {\r\n snackbarService.showSnackbar('Inserire i campi obbligatori', 'warning');\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n Dettagli Chiamata {chiamata.numero}\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi \r\n {chiamata.stato === \"666\" && !chiamata.inChiusura ?\r\n <>\r\n }\r\n onClick={() => close()}\r\n style={{ float: \"right\", marginRight: \"10px\" }}\r\n >Chiudi chiamata\r\n\r\n }\r\n onClick={() => patch()}\r\n style={{ float: \"right\", marginRight: \"10px\" }}\r\n >Salva\r\n \r\n : \"\"}\r\n \r\n\r\n \r\n Anagrafica\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Richidente\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Punto Vendita\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Assegnata A\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Attrezzatura\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Attrezzatura riscontrata\r\n { actionsCV.getComponenti(e.target.value as number); setChiamata({ ...chiamata, attrezzaturaFk: e.target.value as number, componenteFk: undefined }) }}\r\n >\r\n {attrezzature && attrezzature.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Componente riscontrato\r\n { setChiamata({ ...chiamata, componenteFk: e.target.value as number }) }}\r\n disabled={componenti.length == 0}\r\n >\r\n {componenti && componenti.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Guasti e Soluzioni\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Difetto riscontrato\r\n { actionsCV.getCause(e.target.value as string); setChiamata({ ...chiamata, codiciProblema: { codiceL1: e.target.value as string, codiceL2: \"\", codiceL3: \"\" }, problemaRiscontratoFk: undefined }) }}\r\n >\r\n {difetti && difetti.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Causa riscontrata\r\n { actionsCV.getSoluzioni(chiamata.codiciProblema?.codiceL1!, e.target.value as string); setChiamata({ ...chiamata, codiciProblema: { codiceL1: chiamata.codiciProblema?.codiceL1!, codiceL2: e.target.value as string, codiceL3: \"\" }, problemaRiscontratoFk: undefined }) }}\r\n disabled={!chiamata.codiciProblema?.codiceL1}\r\n >\r\n {cause && cause.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n Soluzione intrapresa\r\n { setChiamata({ ...chiamata, problemaRiscontratoFk: e.target.value as number }) }}\r\n disabled={!chiamata.codiciProblema?.codiceL2}\r\n >\r\n {soluzioni && soluzioni.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Dati di Chiusura\r\n \r\n \r\n { setChiamata({ ...chiamata, noMatRimosso: c }) }}\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Nessun materiale rimosso\"\r\n />\r\n \r\n \r\n { setChiamata({ ...chiamata, nomeTecnico: e.target.value }) }}\r\n />\r\n \r\n \r\n { setChiamata({ ...chiamata, note: e.target.value }) }}\r\n variant=\"outlined\" />\r\n \r\n \r\n \r\n \r\n Tempi intervento\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n { setChiamata({ ...chiamata, inizioIntervento: new Date(e.target.value) }) }}\r\n value={utilsActions.formatIsoDateTime(chiamata.inizioIntervento)}\r\n />\r\n \r\n \r\n { setChiamata({ ...chiamata, fineIntervento: new Date(e.target.value) }) }}\r\n value={utilsActions.formatIsoDateTime(chiamata.fineIntervento)}\r\n />\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport {\r\n DataGrid,\r\n GridCellParams,\r\n GridColDef,\r\n GridFilterToolbarButton,\r\n GridToolbarContainer\r\n} from '@material-ui/data-grid';\r\nimport { createMuiTheme, Typography, ThemeProvider, Grid, Button, Paper, FormControl, InputLabel, MenuItem, Select, TextField, IconButton, Box } from '@material-ui/core';\r\nimport { itIT } from '../../model/itIT';\r\nimport { useUtils } from '../../hooks/useUtils';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport { useChiamate } from '../../hooks/useChiamate';\r\nimport { Chiamata } from '../../model/chiamata';\r\nimport { ChiamataEdit } from './components/ChiamataEdit';\r\n\r\n\r\nexport function ChiamateList() {\r\n const { chiamate, chiamateActions } = useChiamate();\r\n const { utilsActions } = useUtils();\r\n const [filterState, setFilterState] = useState({ dataRicezione: null, aDataRicezione: null, stato: \"666\" });\r\n const [selChiaState, setSelChiaState] = useState();\r\n\r\n\r\n const columns: GridColDef[] = [\r\n {\r\n field: 'detailsButtonStart',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: ' ',\r\n filterable: false,\r\n width: 50, renderCell: (params: GridCellParams) => {\r\n return OpenChiamata(params.row.numero)}>\r\n \r\n \r\n\r\n }\r\n },\r\n {\r\n field: 'stato', headerName: 'Stato', flex: 1, width: 120, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.statoChiamataConvertedToString(params.row.stato)} \r\n }\r\n },\r\n { field: 'numero', headerName: 'N. Chiamata', align: \"left\", width: 120 },\r\n { field: 'codicePv', headerName: 'Codice Pv', align: \"left\", width: 120 },\r\n {\r\n field: 'indirizzoPv', headerName: 'Indirizzo Pv', align: \"left\", flex: 1, width: 180, renderCell: (params: GridCellParams) => {\r\n return {params.row.indirizzoPv + ',' + params.row.capPv + ' ' + params.row.cittaPv + ' ' + params.row.provinciaPv}\r\n }\r\n },\r\n {\r\n field: 'dataRicezione', headerName: 'Ricezione da', align: \"left\", flex: 1, width: 150, renderCell: (params: GridCellParams) => {\r\n return {utilsActions.formatDate(params.row.dataRicezione)} - {utilsActions.convertNumberTime(params.row.oraRicezione)}\r\n }\r\n },\r\n {\r\n field: 'dataAssegnazione', headerName: 'Data Assegnazione', align: \"left\", flex: 1, width: 120, renderCell: (params: GridCellParams) => {\r\n return {utilsActions.formatDate(params.row.dataAssegnazione)} - {utilsActions.convertNumberTime(params.row.oraAssegnazione)}\r\n }\r\n },\r\n { field: 'fascia', headerName: 'Fascia', align: \"left\", width: 76 },\r\n {\r\n field: 'dataChiuPrevista', headerName: 'Data Chiusura Prevista', align: \"left\", flex: 1, width: 120, renderCell: (params: GridCellParams) => {\r\n return {utilsActions.formatDate(params.row.dataChiuPrevista)} - {utilsActions.convertNumberTime(params.row.oraChiuPrevista)}\r\n }\r\n },\r\n\r\n\r\n\r\n ];\r\n const stati = [\r\n { id: 999, name: \"Chiusa\" },\r\n { id: 997, name: \"Annullata\" },\r\n { id: 666, name: \"Assegnata al manutentore/consorzio\" },\r\n { id: 200, name: \"Presa in carico internamente\" },\r\n ];\r\n const theme = createMuiTheme({}, itIT,);\r\n\r\n useEffect(() => {\r\n chiamateActions.searchChiamate(filterState);\r\n }, []);\r\n\r\n async function OpenChiamata(numeroChiamata: number) { \r\n setSelChiaState(numeroChiamata);\r\n }\r\n\r\n function CustomToolbar() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n function CloseChiamata() {\r\n setSelChiaState(undefined);\r\n }\r\n\r\n return (\r\n
\r\n {selChiaState ?\r\n CloseChiamata()}>\r\n :\r\n <>\r\n \r\n Elenco Chiamate\r\n \r\n\r\n {/* Filtro */}\r\n \r\n \r\n \r\n Filtri\r\n \r\n \r\n \r\n \r\n \r\n Stato\r\n\r\n setFilterState({ ...filterState, stato: e.target.value as string })}\r\n >\r\n {stati.map(i => {\r\n return {i.name}\r\n })}\r\n \r\n \r\n \r\n \r\n setFilterState({ ...filterState, numero: +e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, codicePv: e.target.value })} />\r\n \r\n\r\n \r\n \r\n { setFilterState({ ...filterState, dataRicezione: d! }); }}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n { setFilterState({ ...filterState, aDataRicezione: d! }); }}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Tabella */}\r\n
\r\n \r\n r.numero + \"-\" + r.codicePv}\r\n pagination\r\n autoHeight={true}\r\n pageSize={15}\r\n components={{\r\n Toolbar: CustomToolbar,\r\n }}\r\n disableSelectionOnClick\r\n disableColumnMenu\r\n />\r\n \r\n
\r\n Max. 1000 risultati restituiti\r\n \r\n }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { Button, Grid, Paper, Typography, TextField } from '@material-ui/core';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useOds } from '../../hooks/useOds';\r\nimport { useUtils } from '../../hooks/useUtils';\r\nimport { Ods } from '../../model/ods';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport { useConfirm } from 'material-ui-confirm';\r\nimport { snackbarService } from \"uno-material-ui\";\r\nimport LaunchIcon from '@material-ui/icons/Launch';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nexport const OdsAccept: React.FC = (props) => {\r\n const [odsState, setOdsState] = useState();\r\n const { odsActions } = useOds();\r\n const { utilsActions } = useUtils();\r\n const confirm = useConfirm();\r\n const search = useLocation().search;\r\n const odsFk = new URLSearchParams(search).get('ODS');\r\n const guid = new URLSearchParams(search).get('GUID');\r\n let history = useHistory();\r\n\r\n useEffect(() => {\r\n if (odsFk && guid) {\r\n odsActions.getOdsGuid(+odsFk, guid).then(r => {\r\n setOdsState(r.data);\r\n });\r\n }\r\n }, []);\r\n\r\n\r\n function accept() {\r\n confirm({ description: 'Accettare l\\'incarico?', title: 'Accettazione incarico' })\r\n .then(() => {\r\n odsActions.patchAccept(+odsFk!, guid!).then(ret => {\r\n history.push(\"/odsList?ODS=\" + +odsFk!)\r\n snackbarService.showSnackbar('Incarico accettato', 'success');\r\n }).catch(e => {\r\n snackbarService.showSnackbar('Errore accettazione incarico', 'error');\r\n });\r\n })\r\n .catch(() => { });\r\n }\r\n\r\n return (\r\n <>\r\n {odsState ?\r\n <>\r\n {odsState.length > 0 ?\r\n <>\r\n \r\n Accettazione incarico OS/ODS {odsState[0].numeroOrdineAcquisto}/{odsState[0].documentoPk}\r\n {!odsState[0].utenteApprovazione ?\r\n }\r\n onClick={() => accept()}\r\n style={{ float: \"right\" }}\r\n >Accetta\r\n : \"\"}\r\n }\r\n onClick={() => history.push(\"/odsList?ODS=\" + odsState[0].documentoPk!)}\r\n style={{ float: \"right\", marginRight: \"15px\" }}\r\n >Vai a ODS\r\n \r\n \r\n Incarico ODS\r\n \r\n \r\n odsActions.getIncarico(odsState[0].documentoPk!, odsState[0].guidAllegato!)}\r\n >\r\n Visualizza\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Consorzio\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manutentore\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n {odsState.map(ods => {\r\n return (
\r\n Riga {ods.rigaOrdineAcquisto} OS \r\n \r\n Punto vendita\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Intervevento\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Importi\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
)\r\n })}\r\n\r\n \r\n :\r\n <>\r\n \r\n Accettazione incarico OS/ODS\r\n \r\n \r\n Incarico ODS non trovato\r\n \r\n }\r\n \r\n : \"\"}\r\n \r\n );\r\n}\r\n\r\n\r\n","import { Button, Grid, Paper, Typography, TextField } from '@material-ui/core';\r\nimport React, { } from 'react';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport { Ods } from '../../../model/ods';\r\nimport { useUtils } from '../../../hooks/useUtils';\r\n\r\nexport interface OdsEditProps {\r\n ods: Ods[];\r\n onClose: () => void;\r\n openOds: (documentoPk: number) => void;\r\n}\r\n\r\nexport const OsEdit: React.FC = (props) => {\r\n const { utilsActions } = useUtils();\r\n \r\n\r\n return (\r\n <>\r\n\r\n \r\n Dettagli OS {props.ods[0].documentoPk}\r\n }\r\n onClick={() => props.onClose()}\r\n style={{ float: \"right\" }}\r\n >Chiudi\r\n \r\n \r\n ODS\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Consorzio\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manutentore\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.ods.map(ods => {\r\n return (
\r\n Riga {ods.rigaOrdineAcquisto} OS \r\n \r\n Punto vendita\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Intervevento\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Quantità\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Importi\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
)\r\n })}\r\n\r\n\r\n \r\n );\r\n}\r\n\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport {\r\n DataGrid,\r\n GridCellParams,\r\n GridColDef,\r\n GridFilterToolbarButton,\r\n GridToolbarContainer\r\n} from '@material-ui/data-grid';\r\nimport { createMuiTheme, Typography, ThemeProvider, Grid, Button, Paper, FormControl, InputLabel, MenuItem, Select, TextField, IconButton } from '@material-ui/core';\r\nimport { itIT } from '../../model/itIT';\r\nimport { useOs } from '../../hooks/useOs';\r\nimport { useUtils } from '../../hooks/useUtils';\r\nimport { Ods } from '../../model/ods';\r\nimport { useChiaveValore } from '../../hooks/useChiaveValore';\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport { OsEdit } from './components/OsEdit';\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\n\r\nexport function OsList() {\r\n const { os, osActions } = useOs();\r\n const { utilsActions } = useUtils();\r\n const [filterState, setFilterState] = useState({ dataRichiesta: null, dataRichiestaTo: null });\r\n const { statiOsJde, actionsCV } = useChiaveValore();\r\n const [selOsState, setSelOsState] = useState();\r\n const search = useLocation().search;\r\n const odsFk = new URLSearchParams(search).get('OS');\r\n\r\n const columns: GridColDef[] = [\r\n {\r\n field: 'detailsButtonStart',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: ' ',\r\n filterable: false,\r\n width: 50, renderCell: (params: GridCellParams) => {\r\n return OpenOs(params.row.documentoPk)}>\r\n \r\n \r\n\r\n }\r\n },\r\n { field: 'documentoPk', headerName: 'N. OS', align: \"center\", width: 120 },\r\n { field: 'tipoOrdine', headerName: 'Tipo', align: \"center\" },\r\n { field: 'statoOrdine', headerName: 'Stato', align: \"center\" },\r\n {\r\n field: 'dataRichiesta', headerName: 'D. Richiesta', align: \"center\", width: 130, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDate(params.row.dataRichiesta)} \r\n }\r\n },\r\n { field: 'centroControllo', headerName: 'C. Controllo', align: \"right\", width: 120, sortable: false },\r\n { field: 'codiceProdotto', headerName: 'Prodotto', width: 180, sortable: false },\r\n {\r\n field: 'descrizione', headerName: 'Descrizione', sortable: false, width: 250, renderCell: (params: GridCellParams) => {\r\n return {params.row.descrizione} - {params.row.descrizione2}\r\n }\r\n },\r\n {\r\n field: 'manutentore', headerName: 'Manutentore', width: 300, renderCell: (params: GridCellParams) => {\r\n return {params.row.codiceManutentore} - {params.row.manutentore}\r\n }\r\n },\r\n { field: 'numeroOrdineVendita', headerName: 'N. Ord. vendita', align: \"right\", width: 150 },\r\n { field: 'quantitaOrdine', headerName: 'Qta richiesta', sortable: false, align: \"right\", width: 150 },\r\n { field: 'pezziRichiesti', headerName: 'Qta aperta', sortable: false, align: \"right\", width: 120 },\r\n { field: 'pezziRicevuti', headerName: 'Qta ricevuta', sortable: false, align: \"right\", width: 120 },\r\n {\r\n field: 'importoRichiesto', headerName: 'Importo aperto', sortable: false, align: \"right\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatCurrency(params.row.importoRichiesto)} \r\n }\r\n },\r\n {\r\n field: 'importoRicevuto', headerName: 'Importo ricevuto', sortable: false, align: \"right\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatCurrency(params.row.importoRicevuto)} \r\n }\r\n },\r\n {\r\n field: 'dataIntervento', headerName: 'Pianificazione', align: \"center\", width: 150, renderCell: (params: GridCellParams) => {\r\n return <> {utilsActions.formatDate(params.row.dataIntervento)} \r\n }\r\n },\r\n {\r\n field: 'tipoRigaFatturaFornitore', headerName: 'Progresso', align: \"center\", width: 150, renderCell: (params: GridCellParams) => {\r\n if (params.row.tipoRigaFatturaFornitore === '1') {\r\n return <>Effettuato il {utilsActions.formatDate(params.row.dataFatturaFornitore)} \r\n } else if (params.row.tipoRigaFatturaFornitore === '2') {\r\n return <>Fatturato il {utilsActions.formatDate(params.row.dataFatturaFornitore)} \r\n }\r\n return <>\r\n }\r\n },\r\n {\r\n field: 'detailsButtonEnd',\r\n sortable: false,\r\n align: \"center\",\r\n headerName: ' ',\r\n filterable: false,\r\n width: 50, renderCell: (params: GridCellParams) => {\r\n return OpenOs(params.row.documentoPk)}>\r\n \r\n \r\n\r\n }\r\n }\r\n\r\n ];\r\n\r\n async function OpenOs(documentoPk: number) {\r\n let ods = await osActions.getOs(documentoPk);\r\n setSelOsState(ods.data);\r\n }\r\n\r\n function CloseOs() {\r\n setSelOsState(undefined);\r\n }\r\n\r\n\r\n useEffect(() => {\r\n actionsCV.getStatiOsJde();\r\n actionsCV.getStatiOds();\r\n if (odsFk) {\r\n OpenOs(+odsFk);\r\n } \r\n }, []);\r\n\r\n function CustomToolbar() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const theme = createMuiTheme(\r\n {\r\n\r\n },\r\n itIT,\r\n );\r\n\r\n return (\r\n
\r\n {selOsState ?\r\n CloseOs()} openOds={() => OpenOs(selOsState[0].odsPk!)}>\r\n :\r\n <>\r\n \r\n Elenco OS\r\n \r\n \r\n \r\n \r\n Filtri\r\n \r\n\r\n \r\n \r\n \r\n setFilterState({ ...filterState, documentoPk: +e.target.value })} />\r\n \r\n \r\n \r\n Stato Jde\r\n setFilterState({ ...filterState, statoOrdine: e.target.value as string })}\r\n >\r\n Tutti\r\n {statiOsJde.map(i => {\r\n return {i.valore}\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n { setFilterState({ ...filterState, dataRichiesta: d! }); }}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n setFilterState({ ...filterState, dataRichiestaTo: d! })}\r\n KeyboardButtonProps={{\r\n 'aria-label': 'change date',\r\n }}\r\n />\r\n \r\n \r\n \r\n setFilterState({ ...filterState, codiceProdotto: e.target.value })} />\r\n \r\n \r\n setFilterState({ ...filterState, consorzio: e.target.value })} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n r.documentoPk + \"-\" + r.rigaOrdineAcquisto}\r\n pagination\r\n autoHeight={true}\r\n pageSize={15}\r\n components={{\r\n Toolbar: CustomToolbar,\r\n }}\r\n disableSelectionOnClick\r\n disableColumnMenu\r\n />\r\n \r\n\r\n
\r\n Max. 1000 risultati restituiti\r\n \r\n }\r\n
\r\n );\r\n}\r\n\r\n\r\n","import { useState } from 'react';\r\nimport axios from 'axios';\r\nimport { Ods } from '../model/ods';\r\nimport { useUtils } from './useUtils';\r\n\r\nexport function useOs() {\r\n const [os, setOs] = useState([]);\r\n const { utilsActions } = useUtils();\r\n\r\n function getOsList() {\r\n axios.get(process.env.REACT_APP_API_URL + 'Os/')\r\n .then(ret => setOs(ret.data));\r\n }\r\n\r\n function getOs(documentoPk: number) {\r\n return axios.get(process.env.REACT_APP_API_URL + 'Os/' + documentoPk);\r\n }\r\n\r\n function searchOs(filter: Ods) {\r\n axios.get(process.env.REACT_APP_API_URL + 'Os/?' + utilsActions.serializeToQueryParams(filter))\r\n .then(ret => setOs(ret.data));\r\n }\r\n\r\n return {\r\n os,\r\n setOs,\r\n osActions: {\r\n getOsList,\r\n searchOs,\r\n getOs\r\n }\r\n }\r\n}","import React from 'react';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\r\nimport { BrowserRouter, NavLink, Route } from 'react-router-dom';\r\nimport { Home } from './pages/Home/Home';\r\nimport { UserApplicationList } from './pages/usersApplications/UserApplicationList';\r\nimport { AccountCircle, HomeRounded, People, Description } from '@material-ui/icons';\r\nimport { useMe } from './hooks/useMe';\r\nimport { UserCustomerList } from './pages/userCustomer/UserCustomerList';\r\nimport { CustomerList } from './pages/customers/CustomerList';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport { Collapse, Grid, Menu, MenuItem, Paper } from '@material-ui/core';\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport AddCircleIcon from '@material-ui/icons/AddCircle';\r\nimport InsertDriveFile from '@material-ui/icons/InsertDriveFile';\r\nimport NotificationsIcon from '@material-ui/icons/Notifications';\r\nimport { UserProvider } from './core/UserContext';\r\nimport { SnackbarContainer } from 'uno-material-ui';\r\nimport { ConfirmProvider } from 'material-ui-confirm';\r\nimport { DuvriTemplatesList } from './pages/duvriTemplates/DuvriTemplatesList';\r\nimport logo from './gilbarco_top.gif';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport { CustomerDuvriEdit } from './pages/customers/CustomerDuvriEdit';\r\nimport { DuvriConfig } from './pages/duvri/DuvriConfig';\r\nimport { OdsList } from './pages/ods/OdsList';\r\nimport { OdsRequestEdit } from './pages/ods/OdsRequestEdit';\r\nimport { OdsRequestList } from './pages/ods/OdsRequestList';\r\nimport { OdsNew } from './pages/ods/OdsNew';\r\nimport { MantainersCustomersList } from './pages/mantainersCustomers/MantainersCustomersList';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport AccountCircleIcon from '@material-ui/icons/AccountCircle';\r\nimport b2cauth from './core/react-azure-adb2c';\r\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\r\nimport { OdsPdfEdit } from './pages/ods/OdsPdfEdit';\r\nimport { ForbiddenPage } from './ForbiddenPage';\r\nimport { ChiamateList } from './pages/chiamate/ChiamateList';\r\nimport { OdsAccept } from './pages/ods/OdsAccept';\r\nimport { OsList } from './pages/os/OsList';\r\n\r\nconst drawerWidth = 240;\r\n\r\nconst useStyles = makeStyles((theme: Theme) =>\r\n createStyles({\r\n root: {\r\n display: 'flex',\r\n },\r\n drawer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n appBar: {\r\n backgroundColor: \"#FFFFFF\",\r\n color: \"var(--secondary)\",\r\n borderBottom: \"1px solid rgba(0, 0, 0, 0.12)\",\r\n [theme.breakpoints.up('sm')]: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n marginLeft: drawerWidth,\r\n },\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.up('sm')]: {\r\n display: 'none',\r\n },\r\n },\r\n // necessary for content to be below app bar\r\n toolbar: theme.mixins.toolbar,\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n },\r\n }),\r\n);\r\n\r\ninterface Props {\r\n /**\r\n * Injected by the documentation to work in an iframe.\r\n * You won't need it on your project.\r\n */\r\n window?: () => Window;\r\n}\r\n\r\nexport default function ResponsiveDrawer(props: Props) {\r\n const { window } = props;\r\n const classes = useStyles();\r\n const [mobileOpen, setMobileOpen] = React.useState(false);\r\n const [ammDuvriOpen, setAmmDuvriOpen] = React.useState(false);\r\n const [ammOdsOpen, setAmmOdsOpen] = React.useState(false);\r\n const [ammChiamateOpen, setAmmChiamateOpen] = React.useState(false);\r\n const [gestDuvriOpen, setGestDuvriOpen] = React.useState(false);\r\n const [gestOdsOpen, setGestOdsOpen] = React.useState(false);\r\n const [gestChiamateOpen, setGestChiamateOpen] = React.useState(false);\r\n const [custGestDuvriOpen, setCustGestDuvriOpen] = React.useState(false);\r\n const { permessi, utente, permessiRic } = useMe();\r\n const pjson = require('../package.json');\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n\r\n const handleDrawerToggle = () => {\r\n setMobileOpen(!mobileOpen);\r\n };\r\n\r\n const drawer = (\r\n
\r\n
\r\n \"Logo\"\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n !utente.cliente && permessi.filter(p => p.nome === \"ASS_UTENTI_APP_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n\r\n {\r\n !utente.cliente && permessi.filter(p => (p.nome === \"ASS_UTENTI_CLIENTI_READ\" && p.appFk === 2) || p.nome === \"DUVRI_TEMPLATES\" || p.nome === \"DUVRI_ALERTS\").length > 0 ?\r\n <>\r\n setAmmDuvriOpen(!ammDuvriOpen)}>\r\n \r\n \r\n \r\n \r\n {ammDuvriOpen ? : }\r\n \r\n \r\n {\r\n permessi.filter(p => p.nome === \"ASS_UTENTI_CLIENTI_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"ASS_MANUT_CLIENTI\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"DUVRI_TEMPLATES_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"DUVRI_CONFIG\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"DUVRI_ALERTS\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n {\r\n !utente.cliente && permessi.filter(p => (p.nome === \"ASS_UTENTI_CLIENTI_READ\" && p.appFk === 1)).length > 0 ?\r\n <>\r\n setAmmOdsOpen(!ammOdsOpen)}>\r\n \r\n \r\n \r\n \r\n {ammOdsOpen ? : }\r\n \r\n \r\n {\r\n permessi.filter(p => p.nome === \"ASS_UTENTI_CLIENTI_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"ODS_PDF_EDIT\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n {\r\n !utente.cliente && permessi.filter(p => (p.nome === \"ASS_UTENTI_CLIENTI_READ\" && p.appFk === 3)).length > 0 ?\r\n <>\r\n setAmmChiamateOpen(!ammChiamateOpen)}>\r\n \r\n \r\n \r\n \r\n {ammChiamateOpen ? : }\r\n \r\n \r\n {\r\n permessi.filter(p => p.nome === \"ASS_UTENTI_CLIENTI_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n\r\n\r\n {\r\n !utente.cliente && permessi.filter(p => p.nome === \"CLIENTI_READ\" || p.nome === \"DUVRI_READ\" || p.nome === \"DUVRI_DASHBOARD\").length > 0 ?\r\n <>\r\n setGestDuvriOpen(!gestDuvriOpen)}>\r\n \r\n \r\n \r\n \r\n {gestDuvriOpen ? : }\r\n \r\n \r\n {\r\n permessi.filter(p => p.nome === \"CLIENTI_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n\r\n {\r\n permessi.filter(p => p.nome === \"ODS_READ\").length > 0 ?\r\n <>\r\n setGestOdsOpen(!gestOdsOpen)}>\r\n \r\n \r\n \r\n \r\n {gestOdsOpen ? : }\r\n \r\n \r\n {\r\n permessi.filter(p => p.nome === \"ODS_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"OS_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"ODS_WRITE\").length > 0 ?\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n\r\n {\r\n utente.cliente && permessi.filter(p => p.nome === \"DUVRI_READ\" || p.nome === \"DUVRI_TEMPLATES_READ\").length > 0 ?\r\n <>\r\n setCustGestDuvriOpen(!custGestDuvriOpen)}>\r\n \r\n \r\n \r\n \r\n {custGestDuvriOpen ? : }\r\n \r\n \r\n {\r\n permessi.filter(p => p.nome === \"DUVRI_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n {\r\n permessi.filter(p => p.nome === \"DUVRI_TEMPLATES_READ\").length > 0 ?\r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n {\r\n permessi.filter(p => p.nome === \"CHIAMATE_READ\").length > 0 ?\r\n <>\r\n setGestChiamateOpen(!gestChiamateOpen)}>\r\n \r\n \r\n \r\n \r\n {gestChiamateOpen ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n null\r\n }\r\n\r\n \r\n \r\n
\r\n );\r\n\r\n const container = window !== undefined ? () => window().document.body : undefined;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {permessi.length == 0 && permessiRic?\r\n (<>\r\n \r\n )\r\n : null\r\n }\r\n {permessi.length != 0?\r\n (<>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Applicazioni Manutentori (v. 1.1.{pjson.buildDate})\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {utente.nome} {utente.cognome}\r\n
\r\n {utente.upn}\r\n
\r\n
\r\n
\r\n { b2cauth.signOut(); }}>Logout\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n ): null\r\n }\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\n\r\n\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service '\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all '\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: {\r\n 'Service-Worker': 'script'\r\n },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport axios from 'axios';\r\nimport b2cauth from './core/react-azure-adb2c';\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nb2cauth.initialize({\r\n instance: 'https://login.microsoftonline.com/tfp/',\r\n tenant: 'gilbarcoitb2c.onmicrosoft.com',\r\n signInPolicy: 'B2C_1_signupsignin',\r\n clientId: 'ae43650e-f190-4802-bf2b-61826ed1cc8d',\r\n cacheLocation: 'sessionStorage',\r\n scopes: ['https://gilbarcoitb2c.onmicrosoft.com/ae43650e-f190-4802-bf2b-61826ed1cc8d/user_impersonation'],\r\n redirectUri: process.env.REACT_APP_REDIRECT_URI,\r\n postLogoutRedirectUri: window.location.origin\r\n});\r\n\r\nrequire('dotenv').config();\r\n\r\nvar reqCount = 0;\r\n\r\nfunction checkTokenExpired() {\r\n setTimeout(function () {\r\n let decoded = jwt_decode(b2cauth?.getAccessToken());\r\n if (Date.now() >= (decoded as any).exp * 1000) {\r\n console.log(\"NEW TOKEN\");\r\n\r\n b2cauth.acquireToken();\r\n }\r\n checkTokenExpired();\r\n }, 5000);\r\n}\r\n\r\ncheckTokenExpired();\r\n\r\naxios.interceptors.request.use(function (config) {\r\n //console.log(\"config:\", config);\r\n document.getElementById(\"loader\")?.classList.add('loader');\r\n document.getElementById(\"block-ui\")?.classList.add('block-ui');\r\n reqCount++;\r\n config.headers.Authorization = \"Bearer \" + b2cauth?.getAccessToken();\r\n\r\n return config;\r\n}, function (error) {\r\n reqCount--;\r\n return Promise.reject(error);\r\n});\r\n\r\naxios.interceptors.response.use(function (response) {\r\n reqCount--;\r\n if (reqCount === 0) {\r\n document.getElementById(\"loader\")?.classList.remove('loader');\r\n document.getElementById(\"block-ui\")?.classList.remove('block-ui');\r\n }\r\n\r\n return response;\r\n}, function (error) {\r\n reqCount--;\r\n if (reqCount === 0) {\r\n document.getElementById(\"loader\")?.classList.remove('loader');\r\n document.getElementById(\"block-ui\")?.classList.remove('block-ui');\r\n }\r\n return Promise.reject(error);\r\n});\r\n\r\nb2cauth.run(() => {\r\n ReactDOM.render(\r\n <>\r\n
\r\n
\r\n \r\n ,\r\n document.getElementById('root')\r\n );\r\n serviceWorker.unregister();\r\n});\r\n\r\n"],"sourceRoot":""}