From 5fce380f0f70b56d3bf70c2f6d140b63f9790f13 Mon Sep 17 00:00:00 2001 From: gabrhr <73925454+gabrhr@users.noreply.github.com> Date: Fri, 22 Apr 2022 00:14:01 -0500 Subject: Update .gitignore --- .gitignore | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2489cb0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# Jupyter +.ipynb_checkpoints + +# Java +*.class +*.log +*.ctxt +.mtj.tmp/ +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar +hs_err_pid* +replay_pid* + +# JS +node_modules \ No newline at end of file -- cgit v1.2.3 From 7060ad33b3104080688a6a383746932b7e4e2957 Mon Sep 17 00:00:00 2001 From: gabrhr <73925454+gabrhr@users.noreply.github.com> Date: Sat, 14 May 2022 12:48:56 -0500 Subject: Add odiparback carpetas falta model se borro :( --- .../main/java/pe/edu/pucp/odiparback/demo/controllers/eliminame.java | 5 +++++ .../main/java/pe/edu/pucp/odiparback/demo/dao/impl/eliminame.java | 5 +++++ .../src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java | 1 + 3 files changed, 11 insertions(+) create mode 100644 back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/controllers/eliminame.java create mode 100644 back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/dao/impl/eliminame.java create mode 100644 back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/controllers/eliminame.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/controllers/eliminame.java new file mode 100644 index 0000000..946b9ef --- /dev/null +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/controllers/eliminame.java @@ -0,0 +1,5 @@ +package pe.edu.pucp.odiparback.demo.controllers; + +public class eliminame { + +} diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/dao/impl/eliminame.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/dao/impl/eliminame.java new file mode 100644 index 0000000..11a66ab --- /dev/null +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/dao/impl/eliminame.java @@ -0,0 +1,5 @@ +package pe.edu.pucp.odiparback.demo.dao.impl; + +public class eliminame { + +} diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java new file mode 100644 index 0000000..7898192 --- /dev/null +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java @@ -0,0 +1 @@ +a -- cgit v1.2.3 From 55c0f57d42d82f1f1f5809e9c7d6845b6e0b68af Mon Sep 17 00:00:00 2001 From: gabrhr <73925454+gabrhr@users.noreply.github.com> Date: Wed, 25 May 2022 15:36:35 -0500 Subject: Add PedidoPage - cambio de esqueleto segun figma - componente de etiquetas - tabla y form de Pedido #TODO - estetica de etiquetas - redux y crear end points --- front/odiparpack/app/api/brand.js | 10 +- front/odiparpack/app/api/dummyContents.js | 2 +- front/odiparpack/app/api/menu.js | 475 ++------------------- .../app/components/Forms/ReduxFormMUI.js | 21 + front/odiparpack/app/components/Header/Header.js | 6 +- .../app/components/Odipar/EtiquetaData.js | 73 ++++ front/odiparpack/app/components/Odipar/common.js | 38 ++ .../app/components/Panel/FloatingPanel.js | 2 +- .../app/components/Sidebar/MainMenuSimple.js | 98 +++++ front/odiparpack/app/components/Sidebar/Sidebar.js | 14 +- .../app/components/Sidebar/sidebar-jss.js | 18 +- .../components/Tables/tableParts/MainTableForm.js | 2 +- .../components/Tables/tableParts/RowReadOnly.js | 26 +- front/odiparpack/app/components/index.js | 2 + front/odiparpack/app/containers/App/Application.js | 5 +- .../app/containers/Odipar/Pedidos/Pedidos.js | 39 ++ .../containers/Odipar/Pedidos/table/CrudPedido.js | 132 ++++++ .../containers/Odipar/Pedidos/table/FormPedido.js | 164 +++++++ .../app/containers/Odipar/Pedidos/table/index.js | 1 + .../containers/Odipar/Pedidos/table/sampleData.js | 88 ++++ .../app/containers/Templates/Dashboard.js | 2 +- .../app/containers/Templates/appStyles-jss.js | 2 + front/odiparpack/app/containers/pageListAsync.js | 6 + front/odiparpack/app/redux/reducers.js | 1 + front/odiparpack/package-lock.json | 75 ++-- front/odiparpack/package.json | 1 + front/odiparpack/public/images/logo.png | Bin 15378 -> 25888 bytes front/odiparpack/target/npmlist.json | 1 + 28 files changed, 782 insertions(+), 522 deletions(-) create mode 100644 front/odiparpack/app/components/Odipar/EtiquetaData.js create mode 100644 front/odiparpack/app/components/Odipar/common.js create mode 100644 front/odiparpack/app/components/Sidebar/MainMenuSimple.js create mode 100644 front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js create mode 100644 front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js create mode 100644 front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js create mode 100644 front/odiparpack/app/containers/Odipar/Pedidos/table/index.js create mode 100644 front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js create mode 100644 front/odiparpack/target/npmlist.json diff --git a/front/odiparpack/app/api/brand.js b/front/odiparpack/app/api/brand.js index 883eed5..216e180 100644 --- a/front/odiparpack/app/api/brand.js +++ b/front/odiparpack/app/api/brand.js @@ -1,8 +1,8 @@ module.exports = { - name: 'Boss Ultimate', - desc: 'Boss Ultimate - Material Admin Dashboard', - prefix: 'boss', - footerText: 'Boss Ultimate All Rights Reserved 2018', - logoText: 'Boss Ultimate', + name: 'OdiparPack', + desc: 'OdiparPack - Planeamiento de rutas', + prefix: 'odipk', + footerText: 'OdiparPack All Rights Reserved 2022', + logoText: 'OdiparPack', needLogin: false }; diff --git a/front/odiparpack/app/api/dummyContents.js b/front/odiparpack/app/api/dummyContents.js index 104cdfd..2f839fb 100644 --- a/front/odiparpack/app/api/dummyContents.js +++ b/front/odiparpack/app/api/dummyContents.js @@ -1,7 +1,7 @@ import avatarApi from './avatars'; const dummyContent = { user: { - name: 'John Doe', + name: 'Mitsuo Tokumori', title: 'Administrator', avatar: avatarApi[6] }, diff --git a/front/odiparpack/app/api/menu.js b/front/odiparpack/app/api/menu.js index dce8f58..637424a 100644 --- a/front/odiparpack/app/api/menu.js +++ b/front/odiparpack/app/api/menu.js @@ -1,454 +1,51 @@ module.exports = [ { - key: 'dashboard', - name: 'Dashboard', - icon: 'dashboard', - child: [ - { - key: 'dashboard_v1', - name: 'Dashboard V1', - link: '/app' - }, - { - key: 'dashboard_v2', - name: 'Dashboard V2', - link: '/app/dashboard-v2' - }, - ] + key: 'seguimiento', + name: 'Seguimiento', + icon: 'near_me', + link: '/app/dashboard-v2', + child: [ ] }, { - key: 'layouts', - name: 'Layouts', - icon: 'view_column', - child: [ - { - key: 'grid', - name: 'Grid', - link: '/app/layouts/grid' - }, - { - key: 'application_layout', - name: 'App Layout', - link: '/app/layouts/app-layout' - }, - { - key: 'responsive', - name: 'Responsive', - link: '/app/layouts/responsive' - } - ] + key: 'pedidos', + name: 'Pedidos', + icon: 'inventory_2', + link: '/app/pedidos', + child: [ ] }, { - key: 'tables', - name: 'Tables', - icon: 'grid_on', - child: [ - { - key: 'basic_table', - name: 'Basic Table', - link: '/app/tables/basic-table' - }, - { - key: 'data_table', - name: 'Data Table', - link: '/app/tables/data-table' - }, - { - key: 'tree_table', - name: 'Tree Table', - link: '/app/tables/tree-table' - }, - { - key: 'crud_table', - name: 'CRUD Table', - link: '/app/tables/crud-table' - }, - { - key: 'table_playground', - name: 'Table Playgound', - link: '/app/tables/table-playground' - }, - ] + key: 'camiones', + name: 'Camiones', + icon: 'local_shipping', + link: '/app/layouts/grid', + child: [ ] }, { - key: 'forms', - name: 'Form Button', - icon: 'border_color', - child: [ - { - key: 'reduxform', - name: 'Redux Form', - link: '/app/forms/reduxform' - }, - { - key: 'datetimepicker', - name: 'Date Time Picker', - link: '/app/forms/date-time-picker' - }, - { - key: 'checkbox_radio', - name: 'Checkbox & Radio', - link: '/app/forms/checkbox-radio' - }, - { - key: 'switches', - name: 'Switches', - link: '/app/forms/switches' - }, - { - key: 'selectbox', - name: 'Select', - link: '/app/forms/selectbox' - }, - { - key: 'buttons', - name: 'Buttons', - link: '/app/forms/buttons' - }, - { - key: 'textfields', - name: 'Textfields', - link: '/app/forms/textfields' - }, - { - key: 'autocomplete', - name: 'Autocomplete & Tag', - link: '/app/forms/autocomplete' - }, - { - key: 'slider', - name: 'Slider Range', - link: '/app/forms/slider-range' - }, - { - key: 'upload', - name: 'Upload', - link: '/app/forms/upload' - }, - { - key: 'ratting', - name: 'Ratting', - link: '/app/forms/ratting' - }, - { - key: 'texteditor', - name: 'WYSIWYG Editor', - link: '/app/forms/wysiwyg-editor' - }, - ] + key: 'almacenes', + name: 'Almacenes', + icon: 'warehouse', + link: '/app/tables/crud-table', + child: [ ] }, { - key: 'ui', - name: 'UI Elements', - icon: 'flag', - child: [ - { - key: 'icons', - name: 'Icons', - link: '/app/ui/icons' - }, - { - key: 'avatars', - name: 'Avatars', - link: '/app/ui/avatars' - }, - { - key: 'badges', - name: 'Badges', - link: '/app/ui/badges' - }, - { - key: 'card_papper', - name: 'Card & Papper', - link: '/app/ui/card-papper' - }, - { - key: 'dialog_modal', - name: 'Dialog & Modal', - link: '/app/ui/dialog-modal' - }, - { - key: 'drawer_menu', - name: 'Drawer & Menu', - link: '/app/ui/drawer-menu' - }, - { - key: 'tab', - name: 'Tabs Navigation', - link: '/app/ui/tabs' - }, - { - key: 'accordion', - name: 'Accordion', - link: '/app/ui/accordion' - }, - { - key: 'image_gird', - name: 'Image Grid Gallery', - link: '/app/ui/image-grid' - }, - { - key: 'list_divider', - name: 'List & Divider', - link: '/app/ui/list' - }, - { - key: 'popover_tooltip', - name: 'Popover & Tooltip', - link: '/app/ui/popover-tooltip' - }, - { - key: 'progress', - name: 'Progress & Spinners', - link: '/app/ui/progress' - }, - { - key: 'tags', - name: 'Tags', - link: '/app/ui/tags' - }, - { - key: 'steppers', - name: 'Steppers', - link: '/app/ui/steppers' - }, - { - key: 'notification', - name: 'Notification', - link: '/app/ui/notification' - }, - { - key: 'breadcrumbs', - name: 'Breadcrumbs', - link: '/app/ui/breadcrumbs' - }, - { - key: 'dividers', - name: 'Dividers', - link: '/app/ui/dividers' - }, - { - key: 'typography', - name: 'Typography', - link: '/app/ui/typography' - }, - { - key: 'slider_carousel', - name: 'Slider & Carousel', - link: '/app/ui/slider-carousel' - }, - { - key: 'paginations', - name: 'Paginations', - link: '/app/ui/paginations' - }, - ] + key: 'red_tramos', + name: 'Red de Tramos', + icon: 'location_on', + link: '/app/forms/reduxform', + child: [ ] }, { - key: 'charts', - name: 'Charts', - icon: 'insert_chart', - child: [ - { - key: 'line_charts', - name: 'Line Charts', - link: '/app/charts/line-charts' - }, - { - key: 'bar_charts', - name: 'Bar Charts', - link: '/app/charts/bar-charts' - }, - { - key: 'area_charts', - name: 'Area Charts', - link: '/app/charts/area-charts' - }, - { - key: 'pie_charts', - name: 'Pie & Donuts Charts', - link: '/app/charts/pie-charts' - }, - { - key: 'radar_charts', - name: 'Radar Charts', - link: '/app/charts/radar-charts' - }, - { - key: 'scatter_charts', - name: 'Scatter Charts', - link: '/app/charts/scatter-charts' - }, - { - key: 'compossed_charts', - name: 'Compossed Charts', - link: '/app/charts/compossed-chart' - }, - { - key: 'responsive_charts', - name: 'Responsive Charts', - link: '/app/charts/responsive-chart' - }, - ] + key: 'otros', + name: 'Otros parámetros', + icon: 'settings', + link: '/app/ui/icons', + child: [ ] }, { - key: 'apps', - name: 'Apps', - icon: 'bubble_chart', - child: [ - { - key: 'social_media', - name: 'Social Media', - link: '/app/pages/social-media' - }, - { - key: 'ecommerce', - name: 'Ecommerce', - link: '/app/pages/ecommerce' - }, - { - key: 'contact', - name: 'Contact', - link: '/app/pages/contact' - }, - { - key: 'calendar', - name: 'Calendar', - link: '/app/pages/calendar' - }, - { - key: 'email', - name: 'Email', - link: '/app/pages/email' - }, - { - key: 'chat', - name: 'Chat', - link: '/app/pages/chat' - }, - ] - }, - { - key: 'pages', - name: 'Pages', - icon: 'library_books', - child: [ - { - key: 'user_profile', - name: 'User Profile', - link: '/app/pages/user-profile' - }, - { - key: 'gallery', - name: 'Photo Gallery', - link: '/app/pages/photo-gallery' - }, - { - key: 'not_found_page', - name: 'Not Found Page', - link: '/app/pages/not-found' - }, - { - key: 'error_page', - name: 'Error Page', - link: '/app/pages/error' - }, - { - key: 'maintenance', - name: 'Maintenance', - link: '/maintenance' - }, - { - key: 'login', - name: 'Login', - link: '/login' - }, - { - key: 'register', - name: 'Register', - link: '/register' - }, - { - key: 'reset', - name: 'Reset Password', - link: '/reset-password' - }, - { - key: 'lock', - name: 'Lock Screen', - link: '/lock-screen' - }, - { - key: 'blank', - name: 'Blank Page', - link: '/app/pages/blank-page' - }, - { - key: 'help_support', - name: 'Help & Support', - link: '/app/pages/help-support' - }, - ] - }, - { - key: 'maps', - name: 'Maps', - icon: 'maps', - child: [ - { - key: 'map_marker', - name: 'Map Marker', - link: '/app/maps/map-marker' - }, - { - key: 'map_direction', - name: 'Map Direction', - link: '/app/maps/map-direction' - }, - { - key: 'map_searchbox', - name: 'Map with Searchbox', - link: '/app/maps/map-searchbox' - }, - { - key: 'map_traffic', - name: 'Traffic Indicator', - link: '/app/maps/map-traffic' - }, - { - key: 'street_view', - name: 'Street View', - link: '/app/maps/street-view' - }, - ] - }, - { - key: 'menu_levels', - name: 'Menu Levels', - icon: 'sort', - child: [ - { - key: 'level_1', - name: 'Level 1', - link: '/#' - }, - { - key: 'level_2', - keyParent: 'menu_levels', - name: 'Level 2', - child: [ - { - key: 'sub_menu_1', - name: 'Sub Menu 1', - link: '/#' - }, - { - key: 'sub_menu_2', - name: 'Sub Menu 2', - link: '/#' - }, - ] - }, - ] + key: 'simulacion', + name: 'Simulación', + icon: 'fast_forward', + link: '/app/pages/calendar', + child: [ ] } -]; +]; \ No newline at end of file diff --git a/front/odiparpack/app/components/Forms/ReduxFormMUI.js b/front/odiparpack/app/components/Forms/ReduxFormMUI.js index 383a717..e3f5c33 100644 --- a/front/odiparpack/app/components/Forms/ReduxFormMUI.js +++ b/front/odiparpack/app/components/Forms/ReduxFormMUI.js @@ -4,6 +4,12 @@ import TextField from '@material-ui/core/TextField'; import Select from '@material-ui/core/Select'; import Checkbox from '@material-ui/core/Checkbox'; import Switch from '@material-ui/core/Switch'; +import { DateTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'; + +import MomentUtils from '@date-io/moment'; +import moment from 'moment' +import 'moment/locale/es' +moment.locale('es'); /* Textfield */ export const TextFieldRedux = ({ meta: { touched, error }, input, ...rest }) => ( @@ -67,3 +73,18 @@ SwitchRedux.propTypes = { input: PropTypes.object.isRequired, }; /* End */ + +export const DatePickerRedux = ({ input, label, readonly}) => ( + + + input.onChange(moment(date).format("DD/MM/YYYY hh:mm A"))} + value={input.value ? moment(input.value,"DD/MM/YYYY hh:mm A"): null} + label={label} + readOnly = {readonly} + disabled = {readonly} + /> + +); diff --git a/front/odiparpack/app/components/Header/Header.js b/front/odiparpack/app/components/Header/Header.js index e1d0bf5..2b86b41 100644 --- a/front/odiparpack/app/components/Header/Header.js +++ b/front/odiparpack/app/components/Header/Header.js @@ -36,7 +36,7 @@ function Header(props) { > -
+ {/*
@@ -46,8 +46,8 @@ function Header(props) {
- - + + */} ); diff --git a/front/odiparpack/app/components/Odipar/EtiquetaData.js b/front/odiparpack/app/components/Odipar/EtiquetaData.js new file mode 100644 index 0000000..4a2a37c --- /dev/null +++ b/front/odiparpack/app/components/Odipar/EtiquetaData.js @@ -0,0 +1,73 @@ +//Pedido +export const pedido = { + entregado: { + text: "Entregado", + color: "#81C784", + icon: false + }, + pendiente:{ + text: "Pendiente", + color: "#FFB74D", + icon: false + }, + enCamino: { + text: "En Camino", + color: "#64B5F6", + icon: false + }, + cancelado: { + text: "Cancelado", + color: "#E57373", + icon: false + } + } + + //Camion + export const camion = { + entregado: { + text: "Entregado", + color: "#81C784", + icon: false + }, + pendiente:{ + text: "Pendiente", + color: "#FFB74D", + icon: false + }, + enCamino: { + text: "En Camino", + color: "#64B5F6", + icon: false + }, + cancelado: { + text: "Cancelado", + color: "#E57373", + icon: false + } + } + + export const bloqueo = { + desbloqueado: { + text: "Entregado", + color: "#81C784", + icon: false + }, + bloqueado:{ + text: "Pendiente", + color: "#FFB74D", + icon: false + } + } + + export const almacen = { + noPrincipal: { + text: "Pequeño", + color: "#81C784", + icon: false + }, + principal:{ + text: "Principal", + color: "#FFB74D", + icon: false + } + } \ No newline at end of file diff --git a/front/odiparpack/app/components/Odipar/common.js b/front/odiparpack/app/components/Odipar/common.js new file mode 100644 index 0000000..c66b792 --- /dev/null +++ b/front/odiparpack/app/components/Odipar/common.js @@ -0,0 +1,38 @@ +import React from "react" +import { Chip } from "@material-ui/core"; +import {pedido, camion, bloqueo, almacen} from './EtiquetaData' + +const etiquetaStyle = color => ({ + fontWeight: 'bold', + color: '#FFF', + backgroundColor: color +}); + + +//Etiquetas +export function etiqueta(tipo , estado) { // eslint-disable-line + let {color, text} = "" + switch(tipo){ + case 'etiq_pedido': + text = pedido[Object.keys(pedido)[estado]].text + color = pedido[Object.keys(pedido)[estado]].color + break; + case 'etiq_camion': + text = camion[Object.keys(camion)[estado]].text + color = camion[Object.keys(camion)[estado]].color + break; + case 'etiq_bloqueo': + text = bloqueo[Object.keys(bloqueo)[estado]].text + color = bloqueo[Object.keys(bloqueo)[estado]].color + break; + case 'etiq_alma': + console.log("entre?") + text = almacen[Object.keys(almacen)[estado]].text + color = almacen[Object.keys(almacen)[estado]].color + break; + } + + return ( + + ) +} \ No newline at end of file diff --git a/front/odiparpack/app/components/Panel/FloatingPanel.js b/front/odiparpack/app/components/Panel/FloatingPanel.js index 675166a..f0a0e6b 100644 --- a/front/odiparpack/app/components/Panel/FloatingPanel.js +++ b/front/odiparpack/app/components/Panel/FloatingPanel.js @@ -82,7 +82,7 @@ FloatingPanel.propTypes = { }; FloatingPanel.defaultProps = { - title: 'Add New Item', + title: 'Añadir nuevo', extraSize: false, }; diff --git a/front/odiparpack/app/components/Sidebar/MainMenuSimple.js b/front/odiparpack/app/components/Sidebar/MainMenuSimple.js new file mode 100644 index 0000000..f7634ca --- /dev/null +++ b/front/odiparpack/app/components/Sidebar/MainMenuSimple.js @@ -0,0 +1,98 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { withStyles } from '@material-ui/core/styles'; +import classNames from 'classnames'; +import { bindActionCreators } from 'redux'; +import { connect } from 'react-redux'; +import { NavLink } from 'react-router-dom'; +import ExpandLess from '@material-ui/icons/ExpandLess'; +import ExpandMore from '@material-ui/icons/ExpandMore'; +// Menu Object +import MenuContent from 'ba-api/menu'; +import { List, ListItem, ListItemIcon, ListItemText, Collapse, Icon } from '@material-ui/core'; +import styles from './sidebar-jss'; + +function sortByKey(array, key) { + return array.sort((a, b) => { + const x = a[key]; const y = b[key]; + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); + }); +} + +const LinkBtn = React.forwardRef(function LinkBtn(props, ref) { // eslint-disable-line + return ; // eslint-disable-line +}); + +function MainMenuSimple(props) { + const { + classes, + toggleDrawerOpen, + loadTransition, + openSubMenu, + open, + } = props; + + const handleClick = () => { + //toggleDrawerOpen(); + loadTransition(false); + }; + + const getMenus = menuArray => menuArray.map((item, index) => { + return ( +
+ -1 ? classes.opened : '')} + activeClassName={classes.active} + component={LinkBtn} + to={item.link} + onClick={handleClick} + timeout="auto" + unmountOnExit + > + {item.icon + && ( + + {item.icon} + + ) + } + + +
+ ); + }); + return ( +
+ {getMenus(MenuContent)} +
+ ); +} + +MainMenuSimple.propTypes = { + classes: PropTypes.object.isRequired, + open: PropTypes.object.isRequired, + openSubMenu: PropTypes.func.isRequired, + toggleDrawerOpen: PropTypes.func.isRequired, + loadTransition: PropTypes.func.isRequired, +}; + +const openAction = (key, keyParent) => ({ type: 'OPEN_SUBMENU', key, keyParent }); +const reducer = 'ui'; + +const mapStateToProps = state => ({ + force: state, // force active class for sidebar menu + open: state.getIn([reducer, 'subMenuOpen']) +}); + +const mapDispatchToProps = dispatch => ({ + openSubMenu: bindActionCreators(openAction, dispatch) +}); + +const MainMenuMapped = connect( + mapStateToProps, + mapDispatchToProps +)(MainMenuSimple); + +export default withStyles(styles)(MainMenuMapped); diff --git a/front/odiparpack/app/components/Sidebar/Sidebar.js b/front/odiparpack/app/components/Sidebar/Sidebar.js index 01de4ec..b4f5626 100644 --- a/front/odiparpack/app/components/Sidebar/Sidebar.js +++ b/front/odiparpack/app/components/Sidebar/Sidebar.js @@ -4,10 +4,10 @@ import { withStyles } from '@material-ui/core/styles'; import classNames from 'classnames'; import brand from 'ba-api/brand'; import dummy from 'ba-api/dummyContents'; -import logo from 'ba-images/logo.svg'; -import { Hidden, Drawer, SwipeableDrawer, List, Divider, Avatar } from '@material-ui/core'; -import MainMenu from './MainMenu'; -import OtherMenu from './OtherMenu'; +import logo from 'ba-images/logo.png'; +import { Hidden, Drawer, SwipeableDrawer, Avatar } from '@material-ui/core'; +import MainMenuSimple from './MainMenuSimple'; +//import OtherMenu from './OtherMenu'; import styles from './sidebar-jss'; const MenuContent = props => { @@ -38,11 +38,11 @@ const MenuContent = props => {
- - + + {/* - + */}
); diff --git a/front/odiparpack/app/components/Sidebar/sidebar-jss.js b/front/odiparpack/app/components/Sidebar/sidebar-jss.js index e9bf4f6..95fb2b2 100644 --- a/front/odiparpack/app/components/Sidebar/sidebar-jss.js +++ b/front/odiparpack/app/components/Sidebar/sidebar-jss.js @@ -76,11 +76,14 @@ const styles = theme => ({ } }, avatar: { - margin: 10, + marginBottom: 10, + marginTop: 10, + marginLeft: 6, + marginRight: 10 }, bigAvatar: { - width: 80, - height: 80, + width: 55, + height: 55, }, brandBar: { transition: theme.transitions.create(['width', 'margin', 'background'], { @@ -168,16 +171,19 @@ const styles = theme => ({ fontSize: 14, padding: 10, alignItems: 'center', + justifyContent: 'flex-start', '& h4': { - fontSize: 18, + fontSize: 19, marginBottom: 0, textOverflow: 'ellipsis', + display: 'flex', overflow: 'hidden', whiteSpace: 'nowrap', - width: 110 + wordBreak:'break-all', + width: 180, }, '& span': { - fontSize: 12, + fontSize: 14, textOverflow: 'ellipsis', whiteSpace: 'nowrap', width: 110, diff --git a/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js b/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js index ccf0e4a..8869212 100644 --- a/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js +++ b/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js @@ -61,7 +61,7 @@ class MainTableForm extends React.Component { diff --git a/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js b/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js index 7da655f..2f4a519 100644 --- a/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js +++ b/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js @@ -5,8 +5,9 @@ import classNames from 'classnames'; import css from 'ba-styles/Table.scss'; import DeleteIcon from '@material-ui/icons/Delete'; import EditIcon from '@material-ui/icons/BorderColor'; +import { etiqueta } from 'ba-components/Odipar/common'; -import { TableCell, IconButton } from '@material-ui/core'; +import { TableCell, IconButton, LinearProgress } from '@material-ui/core'; const styles = theme => ({ button: { @@ -32,11 +33,24 @@ class RowReadOnly extends React.Component { }; const renderCell = dataArray => dataArray.map((itemCell, index) => { if (itemCell.name !== 'action' && !itemCell.hidden) { - return ( - - {item.get(itemCell.name) !== undefined ? item.get(itemCell.name).toString() : ''} - - ); + const inputType = anchor[index].type; + switch (inputType) { + case 'etiq_pedido': + case 'etiq_camion': + case 'etiq_bloqueo': + case 'etiq_alma': + return ( + + {etiqueta(inputType, item.get(itemCell.name))} + + ); + case 'texto': + return ( + + {item.get(itemCell.name) !== undefined ? item.get(itemCell.name).toString() : ''} + + ); + } } return false; }); diff --git a/front/odiparpack/app/components/index.js b/front/odiparpack/app/components/index.js index 9d7bdb3..123b48c 100644 --- a/front/odiparpack/app/components/index.js +++ b/front/odiparpack/app/components/index.js @@ -3,6 +3,8 @@ export Sidebar from './Sidebar/Sidebar'; export BreadCrumb from './BreadCrumb/BreadCrumb'; export SourceReader from './SourceReader/SourceReader'; export PapperBlock from './PapperBlock/PapperBlock'; +//Odipar + // Dashboard and Widget export CounterWidget from './Counter/CounterWidget'; export SliderWidget from './Widget/SliderWidget'; diff --git a/front/odiparpack/app/containers/App/Application.js b/front/odiparpack/app/containers/App/Application.js index 0a3ffc2..21c7a76 100644 --- a/front/odiparpack/app/containers/App/Application.js +++ b/front/odiparpack/app/containers/App/Application.js @@ -25,7 +25,8 @@ import { Profile, BlankPage, Photos, Error, Settings, HelpSupport, MapMarker, MapDirection, SearchMap, - TrafficIndicator, StreetViewMap, NotFound + TrafficIndicator, StreetViewMap, NotFound, + Pedidos } from '../pageListAsync'; function Application(props) { @@ -36,6 +37,8 @@ function Application(props) { + {/* Pedidos */} + { /* Layout */ } diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js new file mode 100644 index 0000000..c1539e0 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js @@ -0,0 +1,39 @@ +import React, { Component } from 'react'; +import { withStyles } from '@material-ui/core/styles'; +import PropTypes from 'prop-types'; +import { CrudPedido } from './table' +import { Paper, Typography } from '@material-ui/core'; +import { etiqueta } from 'ba-components/Odipar/common'; +const styles = ({ + root: { + flexGrow: 1, + marginTop: 30, + } + }); + +class Pedidos extends Component { + render() { + const { classes } = this.props; + return ( +
+ + {`Pedidos`} + +
+ {etiqueta("etiq_pedido", 1)} +
+
+ + + +
+
+ ); + } +} + +Pedidos.propTypes = { + classes: PropTypes.object.isRequired, +}; + +export default withStyles(styles)(Pedidos); \ No newline at end of file diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js new file mode 100644 index 0000000..b11881f --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js @@ -0,0 +1,132 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { withStyles } from '@material-ui/core/styles'; +import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; +import { + fetchAction, + addAction, + closeAction, + submitAction, + removeAction, + editAction, + closeNotifAction +} from 'ba-actions/CrudTbFrmActions'; +import { CrudTableForm, Notification } from 'ba-components'; +import { + Paper, + RadioGroup, +} from '@material-ui/core'; +import { anchorTable, dataApi } from './sampleData'; +import FormPedido from './FormPedido'; + + +const branch = 'crudPedido'; + +const renderRadioGroup = ({ input, ...rest }) => ( + input.onChange(value)} + /> +); + + +const styles = ({ + root: { + flexGrow: 1, + } +}); + +class CrudPedido extends Component { + render() { + const { + classes, + fetchData, + addNew, + closeForm, + submit, + removeRow, + editRow, + dataTable, + openForm, + initValues, + closeNotif, + messageNotif, + title, + } = this.props; + return ( +
+ closeNotif(branch)} message={messageNotif} /> + + + {/* Create Your own form, then arrange or custom it as You like */} + + {/* No need create button or submit, because that already made in this component */} + + +
+ ); + } +} + +renderRadioGroup.propTypes = { + input: PropTypes.object.isRequired, +}; + +CrudPedido.propTypes = { + dataTable: PropTypes.object.isRequired, + openForm: PropTypes.bool.isRequired, + classes: PropTypes.object.isRequired, + fetchData: PropTypes.func.isRequired, + addNew: PropTypes.func.isRequired, + closeForm: PropTypes.func.isRequired, + submit: PropTypes.func.isRequired, + removeRow: PropTypes.func.isRequired, + editRow: PropTypes.func.isRequired, + initValues: PropTypes.object.isRequired, + closeNotif: PropTypes.func.isRequired, + messageNotif: PropTypes.string.isRequired, + title: PropTypes.string.isRequired, +}; + + +const mapStateToProps = state => ({ + force: state, // force state from reducer + initValues: state.getIn([branch, 'formValues']), + dataTable: state.getIn([branch, 'dataTable']), + openForm: state.getIn([branch, 'showFrm']), + messageNotif: state.getIn([branch, 'notifMsg']), +}); + +const mapDispatchToProps = dispatch => ({ + fetchData: bindActionCreators(fetchAction, dispatch), + addNew: bindActionCreators(addAction, dispatch), + closeForm: bindActionCreators(closeAction, dispatch), + submit: bindActionCreators(submitAction, dispatch), + removeRow: bindActionCreators(removeAction, dispatch), + editRow: bindActionCreators(editAction, dispatch), + closeNotif: bindActionCreators(closeNotifAction, dispatch), +}); + +const CrudPedidoMapped = connect( + mapStateToProps, + mapDispatchToProps +)(CrudPedido); + +export default withStyles(styles)(CrudPedidoMapped); diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js new file mode 100644 index 0000000..40bc801 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js @@ -0,0 +1,164 @@ +import React, { Component } from 'react'; +import { withStyles } from '@material-ui/core/styles'; +import PropTypes from 'prop-types'; +import { Field } from 'redux-form/immutable'; +import {required, integer} from 'ba-api/validation' +import { + SelectRedux, + TextFieldRedux, + DatePickerRedux +} from 'ba-components/Forms/ReduxFormMUI'; +import { + MenuItem, + InputLabel, + FormControl, + } from '@material-ui/core'; + +const styles = ({ + root: { + flexGrow: 1, + }, + field: { + width: '100%', + marginBottom: 20 + }, + fieldBasic: { + width: '100%', + marginBottom: 20, + marginTop: 10 + }, + inlineWrap: { + display: 'flex', + flexDirection: 'row' + } + }); + + +class FormPedido extends Component { + saveRef = ref => { + this.ref = ref; + return this.ref; + }; + + state = { + selectedDate: new Date(), + } + + handleDateChange = (date) => { + this.setState({ selectedDate: date }); + } + render() { + const { classes } = this.props; + const { selectedDate } = this.state; + const trueBool = true; + return ( + <> +
+ +
+
+ + + +
+
+ + Lugar de Origen + + Lima + Arequipa + Cuzco + + +
+
+ + Destino + + Lima + Arequipa + Cuzco + + +
+
+ +
+
+ +
+
+ +
+
+ +
+ + ); + } +} + +FormPedido.propTypes = { + classes: PropTypes.object.isRequired, + }; + +export default withStyles(styles)(FormPedido); \ No newline at end of file diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/index.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/index.js new file mode 100644 index 0000000..48f7c9e --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/index.js @@ -0,0 +1 @@ +export CrudPedido from "./CrudPedido"; \ No newline at end of file diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js new file mode 100644 index 0000000..2e2b003 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js @@ -0,0 +1,88 @@ +export const anchorTable = [ + { + name: 'id', + label: 'Id', + initialValue: '', + hidden: true, + type: 'texto' + }, { + name: 'cantidad', + label: 'Cantidad', + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'fecha', + label: 'Fecha de pedido', + initialValue: new Date(), + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'origen', + label: 'Origen', + initialValue: 'option1', + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'destino', + label: 'Destino', + initialValue: 'option1', + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'plazo_entrega', + label: 'Plazo de entrega', + initialValue: true, + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'nombre', + label: 'Cliente', + initialValue: true, + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'estado', + label: 'Estado', + initialValue: 0, + width: 'auto', + hidden: false, + type: 'etiq_pedido' + }, { + name: 'action', + label: 'Action', + initialValue: '', + hidden: false + }, +]; + +export const dataApi = [ + { + id: '1', + cantidad: 30, + fecha: '24/05/2022 11:28 AM', + origen: 'Arequipa', + destino: 'Cuzco', + plazo_entrega: '24 horas', + nombre: 'Juan', + estado: 0, + correo: 'mail@boss.com', + dni: '123456' + }, { + id: '2', + cantidad: 30, + fecha: '24/05/2022 10:28 AM', + origen: 'Lima', + destino: 'Cuzco', + plazo_entrega: '24 horas', + nombre: 'Juan', + estado: 1, + correo: 'mail@boss.com', + dni: '123456' + } +]; diff --git a/front/odiparpack/app/containers/Templates/Dashboard.js b/front/odiparpack/app/containers/Templates/Dashboard.js index 5f24777..f82d16d 100644 --- a/front/odiparpack/app/containers/Templates/Dashboard.js +++ b/front/odiparpack/app/containers/Templates/Dashboard.js @@ -66,7 +66,7 @@ function Dashboard(props) {
- + ({ }, mainWrap: { position: 'relative', + backgroundColor: '#F1EEEE', + padding: 20, marginTop: theme.spacing(6), marginLeft: theme.spacing(1.5), height: '100%', diff --git a/front/odiparpack/app/containers/pageListAsync.js b/front/odiparpack/app/containers/pageListAsync.js index feff750..102bb97 100644 --- a/front/odiparpack/app/containers/pageListAsync.js +++ b/front/odiparpack/app/containers/pageListAsync.js @@ -1,6 +1,12 @@ import Loadable from 'react-loadable'; import Loading from 'ba-components/Loading'; +// 2.Pedidos +export const Pedidos = Loadable({ + loader: () => import('./Odipar/Pedidos/Pedidos'), + loading: Loading, +}); + // Dashboard export const DashboardV1 = Loadable({ loader: () => import('./Dashboard/Dashboard'), diff --git a/front/odiparpack/app/redux/reducers.js b/front/odiparpack/app/redux/reducers.js index 902ab2b..7327c48 100644 --- a/front/odiparpack/app/redux/reducers.js +++ b/front/odiparpack/app/redux/reducers.js @@ -55,6 +55,7 @@ export default function createReducer(injectedReducers) { crudTableDemo: branchReducer(crudTable, 'crudTableDemo'), crudTableForm, crudTbFrmDemo: branchReducer(crudTableForm, 'crudTbFrmDemo'), + crudPedido: branchReducer(crudTableForm, 'crudPedido'), language: languageProviderReducer, router: connectRouter(history), ...injectedReducers, diff --git a/front/odiparpack/package-lock.json b/front/odiparpack/package-lock.json index d99cae5..bf01861 100644 --- a/front/odiparpack/package-lock.json +++ b/front/odiparpack/package-lock.json @@ -2013,6 +2013,30 @@ "@babel/runtime": "^7.4.4" } }, + "@material-ui/lab": { + "version": "4.0.0-alpha.61", + "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz", + "integrity": "sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.3", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + }, + "dependencies": { + "@material-ui/utils": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", + "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", + "requires": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + } + } + } + }, "@material-ui/pickers": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/@material-ui/pickers/-/pickers-3.2.8.tgz", @@ -2854,11 +2878,6 @@ "p-each-series": "^1.0.0" } }, - "add-px-to-style": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-px-to-style/-/add-px-to-style-1.0.0.tgz", - "integrity": "sha1-0ME1RB+oAUqBN5BFMQlvZ/KPJjo=" - }, "airbnb-prop-types": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz", @@ -6315,16 +6334,6 @@ "utila": "~0.4" } }, - "dom-css": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-css/-/dom-css-2.1.0.tgz", - "integrity": "sha1-/bwtWgFdCj4YcuEUcrvQ57nmogI=", - "requires": { - "add-px-to-style": "1.0.0", - "prefix-style": "2.0.1", - "to-camel-case": "1.0.0" - } - }, "dom-helpers": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.3.tgz", @@ -13734,11 +13743,6 @@ } } }, - "prefix-style": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/prefix-style/-/prefix-style-2.0.1.tgz", - "integrity": "sha1-ZrupqHDP2jCKXcIOhekSCTLJWgY=" - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -14213,16 +14217,6 @@ "countup.js": "^1.9.3" } }, - "react-custom-scrollbars": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-custom-scrollbars/-/react-custom-scrollbars-4.2.1.tgz", - "integrity": "sha1-gw/ZUCkn6X6KeMIIaBOJmyqLZts=", - "requires": { - "dom-css": "^2.0.0", - "prop-types": "^15.5.10", - "raf": "^3.1.0" - } - }, "react-display-name": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.5.tgz", @@ -18113,25 +18107,12 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "to-camel-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-camel-case/-/to-camel-case-1.0.0.tgz", - "integrity": "sha1-GlYFSy+daWKYzmamCJcyK29CPkY=", - "requires": { - "to-space-case": "^1.0.0" - } - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-no-case": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz", - "integrity": "sha1-xyKQcWTvaxeBMsjmmTAhLRtKoWo=" - }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -18180,14 +18161,6 @@ "repeat-string": "^1.6.1" } }, - "to-space-case": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz", - "integrity": "sha1-sFLar7Gysp3HcM6gFj5ewOvJ/Bc=", - "requires": { - "to-no-case": "^1.0.0" - } - }, "toposort": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", diff --git a/front/odiparpack/package.json b/front/odiparpack/package.json index efd37f0..7e9a59a 100644 --- a/front/odiparpack/package.json +++ b/front/odiparpack/package.json @@ -94,6 +94,7 @@ "@date-io/moment": "1.3.8", "@material-ui/core": "^4.7.0", "@material-ui/icons": "^4.5.1", + "@material-ui/lab": "^4.0.0-alpha.61", "@material-ui/pickers": "^3.2.8", "@types/googlemaps": "^3.38.1", "@types/markerclustererplus": "^2.1.33", diff --git a/front/odiparpack/public/images/logo.png b/front/odiparpack/public/images/logo.png index 386670b..05f0da2 100644 Binary files a/front/odiparpack/public/images/logo.png and b/front/odiparpack/public/images/logo.png differ diff --git a/front/odiparpack/target/npmlist.json b/front/odiparpack/target/npmlist.json new file mode 100644 index 0000000..2819b6d --- /dev/null +++ b/front/odiparpack/target/npmlist.json @@ -0,0 +1 @@ +{"name":"Boss-Ultimate","version":"1.7.0","dependencies":{"@babel/plugin-proposal-export-default-from":{"version":"7.7.4","dependencies":{"@babel/helper-plugin-utils":{"version":"7.0.0"},"@babel/plugin-syntax-export-default-from":{"version":"7.7.4","dependencies":{"@babel/helper-plugin-utils":{"version":"7.0.0"}}}}},"@babel/plugin-proposal-object-rest-spread":{"version":"7.7.7","dependencies":{"@babel/helper-plugin-utils":{"version":"7.0.0"},"@babel/plugin-syntax-object-rest-spread":{"version":"7.7.4","dependencies":{"@babel/helper-plugin-utils":{"version":"7.0.0"}}}}},"@babel/polyfill":{"version":"7.4.3","dependencies":{"core-js":{"version":"2.6.10"},"regenerator-runtime":{"version":"0.13.3"}}},"@date-io/date-fns":{"version":"1.3.13","dependencies":{"@date-io/core":{"version":"1.3.13"}}},"@date-io/moment":{"version":"1.3.8","dependencies":{"@date-io/core":{"version":"1.3.13"}}},"@material-ui/core":{"required":{"_requested":{"name":"@material-ui/core"},"author":{"name":"Material-UI Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"author":{"name":"Sebastian McKenzie"},"dependencies":{"regenerator-runtime":{"_requested":{"name":"regenerator-runtime"},"author":{"name":"Ben Newman"},"name":"regenerator-runtime","version":"0.13.3"}},"name":"@babel/runtime","version":"7.7.4"},"hoist-non-react-statics":{"_requested":{"name":"hoist-non-react-statics"},"author":{"name":"Michael Ridgway"},"dependencies":{"react-is":{"_requested":{"name":"react-is"},"name":"react-is","version":"16.12.0"}},"name":"hoist-non-react-statics","version":"3.3.2"},"@material-ui/styles":{"_requested":{"name":"@material-ui/styles"},"author":{"name":"Material-UI Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"@emotion/hash":{"_requested":{"name":"@emotion/hash"},"name":"@emotion/hash","version":"0.7.3"},"hoist-non-react-statics":{"_requested":{"name":"hoist-non-react-statics"},"author":{"name":"Michael Ridgway"},"dependencies":{"react-is":{"_requested":{"name":"react-is"},"name":"react-is","version":"16.12.0"}},"name":"hoist-non-react-statics","version":"3.3.2"},"@material-ui/types":{"_requested":{"name":"@material-ui/types"},"author":{"name":"Material-UI Team"},"name":"@material-ui/types","version":"4.1.1"},"@material-ui/utils":{"_requested":{"name":"@material-ui/utils"},"author":{"name":"Material-UI Team"},"name":"@material-ui/utils","version":"4.7.1"},"clsx":{"_requested":{"name":"clsx"},"author":{"name":"Luke Edwards"},"name":"clsx","version":"1.0.4"},"csstype":{"_requested":{"name":"csstype"},"author":{"name":"Fredrik Nicol"},"name":"csstype","version":"2.6.7"},"jss":{"_requested":{"name":"jss"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"csstype":{"_requested":{"name":"csstype"},"name":"csstype","version":"2.6.7"},"is-in-browser":{"_requested":{"name":"is-in-browser"},"author":{"name":"Jared Anderson"},"name":"is-in-browser","version":"1.1.3"},"tiny-warning":{"_requested":{"name":"tiny-warning"},"author":{"name":"Alex Reardon"},"name":"tiny-warning","version":"1.0.3"}},"name":"jss","version":"10.0.0"},"jss-plugin-camel-case":{"_requested":{"name":"jss-plugin-camel-case"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"hyphenate-style-name":{"_requested":{"name":"hyphenate-style-name"},"author":{"name":"Espen Hovlandsdal"},"name":"hyphenate-style-name","version":"1.0.3"},"jss":{"_requested":{"name":"jss"},"name":"jss","version":"10.0.0"}},"name":"jss-plugin-camel-case","version":"10.0.0"},"jss-plugin-default-unit":{"_requested":{"name":"jss-plugin-default-unit"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"jss":{"_requested":{"name":"jss"},"name":"jss","version":"10.0.0"}},"name":"jss-plugin-default-unit","version":"10.0.0"},"jss-plugin-global":{"_requested":{"name":"jss-plugin-global"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"jss":{"_requested":{"name":"jss"},"name":"jss","version":"10.0.0"}},"name":"jss-plugin-global","version":"10.0.0"},"jss-plugin-nested":{"_requested":{"name":"jss-plugin-nested"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"jss":{"_requested":{"name":"jss"},"name":"jss","version":"10.0.0"},"tiny-warning":{"_requested":{"name":"tiny-warning"},"name":"tiny-warning","version":"1.0.3"}},"name":"jss-plugin-nested","version":"10.0.0"},"jss-plugin-props-sort":{"_requested":{"name":"jss-plugin-props-sort"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"jss":{"_requested":{"name":"jss"},"name":"jss","version":"10.0.0"}},"name":"jss-plugin-props-sort","version":"10.0.0"},"jss-plugin-rule-value-function":{"_requested":{"name":"jss-plugin-rule-value-function"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"jss":{"_requested":{"name":"jss"},"name":"jss","version":"10.0.0"}},"name":"jss-plugin-rule-value-function","version":"10.0.0"},"jss-plugin-vendor-prefixer":{"_requested":{"name":"jss-plugin-vendor-prefixer"},"author":{"name":"JSS Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"css-vendor":{"_requested":{"name":"css-vendor"},"author":{"name":"Oleg Slobodskoi"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"is-in-browser":{"_requested":{"name":"is-in-browser"},"name":"is-in-browser","version":"1.1.3"}},"name":"css-vendor","version":"2.0.7"},"jss":{"_requested":{"name":"jss"},"name":"jss","version":"10.0.0"}},"name":"jss-plugin-vendor-prefixer","version":"10.0.0"},"prop-types":{"_requested":{"name":"prop-types"},"name":"prop-types","version":"15.7.2"}},"name":"@material-ui/styles","version":"4.7.1"},"@material-ui/system":{"_requested":{"name":"@material-ui/system"},"author":{"name":"Material-UI Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"@material-ui/utils":{"_requested":{"name":"@material-ui/utils"},"name":"@material-ui/utils","version":"4.7.1"},"prop-types":{"_requested":{"name":"prop-types"},"name":"prop-types","version":"15.7.2"}},"name":"@material-ui/system","version":"4.7.1"},"@material-ui/types":{"_requested":{"name":"@material-ui/types"},"dependencies":{"@types/react":{"_requested":{"name":"@types/react"},"dependencies":{"@types/prop-types":{"_requested":{"name":"@types/prop-types"},"name":"@types/prop-types","version":"15.7.3"},"csstype":{"_requested":{"name":"csstype"},"name":"csstype","version":"2.6.7"}},"name":"@types/react","version":"16.9.15"}},"name":"@material-ui/types","version":"4.1.1"},"@material-ui/utils":{"_requested":{"name":"@material-ui/utils"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"prop-types":{"_requested":{"name":"prop-types"},"name":"prop-types","version":"15.7.2"},"react-is":{"_requested":{"name":"react-is"},"name":"react-is","version":"16.12.0"}},"name":"@material-ui/utils","version":"4.7.1"},"@types/react-transition-group":{"_requested":{"name":"@types/react-transition-group"},"dependencies":{"@types/react":{"_requested":{"name":"@types/react"},"name":"@types/react","version":"16.9.15"}},"name":"@types/react-transition-group","version":"4.2.3"},"clsx":{"_requested":{"name":"clsx"},"name":"clsx","version":"1.0.4"},"convert-css-length":{"_requested":{"name":"convert-css-length"},"author":{"name":"Kyle Mathews"},"name":"convert-css-length","version":"2.0.1"},"normalize-scroll-left":{"_requested":{"name":"normalize-scroll-left"},"author":{"name":"Ali Taheri Moghaddar"},"name":"normalize-scroll-left","version":"0.2.0"},"popper.js":{"_requested":{"name":"popper.js"},"author":{"name":"Federico Zivolo"},"name":"popper.js","version":"1.16.0"},"prop-types":{"_requested":{"name":"prop-types"},"name":"prop-types","version":"15.7.2"},"react-is":{"_requested":{"name":"react-is"},"name":"react-is","version":"16.12.0"},"react-transition-group":{"_requested":{"name":"react-transition-group"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"dom-helpers":{"_requested":{"name":"dom-helpers"},"author":{"name":"Jason Quense"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"csstype":{"_requested":{"name":"csstype"},"name":"csstype","version":"2.6.7"}},"name":"dom-helpers","version":"5.1.3"},"loose-envify":{"_requested":{"name":"loose-envify"},"author":{"name":"Andres Suarez"},"name":"loose-envify","version":"1.4.0"},"prop-types":{"_requested":{"name":"prop-types"},"name":"prop-types","version":"15.7.2"}},"name":"react-transition-group","version":"4.3.0"}},"name":"@material-ui/core","version":"4.7.1"}},"@material-ui/icons":{"required":{"_requested":{"name":"@material-ui/icons"},"author":{"name":"Material-UI Team"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"}},"name":"@material-ui/icons","version":"4.5.1"}},"@material-ui/pickers":{"version":"3.2.8","dependencies":{"@babel/runtime":{"version":"7.7.4"},"@types/styled-jsx":{"version":"2.2.8","dependencies":{"@types/react":{"version":"16.9.15"}}},"clsx":{"version":"1.0.4"},"react-transition-group":{"version":"4.3.0"},"rifm":{"version":"0.7.0","dependencies":{"@babel/runtime":{"version":"7.7.4"}}}}},"@types/googlemaps":{"version":"3.38.1"},"@types/markerclustererplus":{"version":"2.1.33","dependencies":{"@types/google-maps":{"version":"3.2.1","dependencies":{"@types/googlemaps":{"version":"3.38.1"}}}}},"acorn":{"version":"6.4.0"},"autoprefixer":{"version":"9.7.4","dependencies":{"caniuse-lite":{"version":"1.0.30001025"},"postcss":{"version":"7.0.26","dependencies":{"source-map":{"version":"0.6.1"},"supports-color":{"version":"6.1.0","dependencies":{"has-flag":{"version":"3.0.0"}}},"chalk":{"version":"2.4.2"}}},"postcss-value-parser":{"version":"4.0.2"},"browserslist":{"version":"4.8.6","dependencies":{"caniuse-lite":{"version":"1.0.30001025"},"electron-to-chromium":{"version":"1.3.345"},"node-releases":{"version":"1.1.48","dependencies":{"semver":{"version":"6.3.0"}}}}},"chalk":{"version":"2.4.2"},"normalize-range":{"version":"0.1.2"},"num2fraction":{"version":"1.2.2"}}},"autosuggest-highlight":{"version":"3.1.1","dependencies":{"diacritic":{"version":"0.0.2"}}},"axios":{"version":"0.19.0","dependencies":{"follow-redirects":{"version":"1.5.10","dependencies":{"debug":{"version":"3.1.0","dependencies":{"ms":{"version":"2.0.0"}}}}},"is-buffer":{"version":"2.0.4"}}},"bourbon":{"version":"5.1.0"},"bourbon-neat":{"version":"3.0.1"},"chalk":{"version":"2.4.2","dependencies":{"ansi-styles":{"version":"3.2.1","dependencies":{"color-convert":{"version":"1.9.3","dependencies":{"color-name":{"version":"1.1.3"}}}}},"escape-string-regexp":{"version":"1.0.5"},"supports-color":{"version":"5.5.0","dependencies":{"has-flag":{"version":"3.0.0"}}}}},"chart.js":{"version":"2.9.3","dependencies":{"chartjs-color":{"version":"2.4.1","dependencies":{"chartjs-color-string":{"version":"0.6.0","dependencies":{"color-name":{"version":"1.1.3"}}},"color-convert":{"version":"1.9.3"}}},"moment":{"version":"2.24.0"}}},"classnames":{"version":"2.2.6"},"compression":{"version":"1.7.4","dependencies":{"accepts":{"version":"1.3.7","dependencies":{"mime-types":{"version":"2.1.25","dependencies":{"mime-db":{"version":"1.42.0"}}},"negotiator":{"version":"0.6.2"}}},"bytes":{"version":"3.0.0"},"compressible":{"version":"2.0.17","dependencies":{"mime-db":{"version":"1.42.0"}}},"debug":{"version":"2.6.9","dependencies":{"ms":{"version":"2.0.0"}}},"safe-buffer":{"version":"5.1.2"},"on-headers":{"version":"1.0.2"},"vary":{"version":"1.1.2"}}},"connected-react-router":{"version":"6.6.1","dependencies":{"immutable":{"version":"3.8.2"},"prop-types":{"version":"15.7.2"},"seamless-immutable":{"version":"7.1.4"}}},"cross-env":{"version":"5.2.0","dependencies":{"cross-spawn":{"version":"6.0.5","dependencies":{"nice-try":{"version":"1.0.5"},"path-key":{"version":"2.0.1"},"semver":{"version":"5.7.1"},"shebang-command":{"version":"1.2.0","dependencies":{"shebang-regex":{"version":"1.0.0"}}},"which":{"version":"1.3.1","dependencies":{"isexe":{"version":"2.0.0"}}}}},"is-windows":{"version":"1.0.2"}}},"date-fns":{"version":"2.1.0"},"detect-browser":{"version":"4.8.0"},"dotenv":{"version":"6.2.0"},"downshift":{"version":"1.31.16"},"draft-js":{"version":"0.10.5","dependencies":{"immutable":{"version":"3.7.6"},"fbjs":{"version":"0.8.17","dependencies":{"core-js":{"version":"1.2.7"},"isomorphic-fetch":{"version":"2.2.1","dependencies":{"node-fetch":{"version":"1.7.3","dependencies":{"encoding":{"version":"0.1.12","dependencies":{"iconv-lite":{"version":"0.4.24","dependencies":{"safer-buffer":{"version":"2.1.2"}}}}},"is-stream":{"version":"1.1.0"}}},"whatwg-fetch":{"version":"2.0.4"}}},"loose-envify":{"version":"1.4.0"},"object-assign":{"version":"4.1.1"},"promise":{"version":"7.3.1","dependencies":{"asap":{"version":"2.0.6"}}},"setimmediate":{"version":"1.0.5"},"ua-parser-js":{"version":"0.7.20"}}},"object-assign":{"version":"4.1.1"}}},"draft-js-inline-toolbar-plugin":{"version":"3.0.1","dependencies":{"draft-js-buttons":{"version":"2.0.2","dependencies":{"clsx":{"version":"1.0.4"}}}}},"draft-js-plugins-editor":{"version":"2.1.1","dependencies":{"decorate-component-with-props":{"version":"1.1.0"},"immutable":{"version":"3.7.6"},"find-with-regex":{"version":"1.1.3"},"prop-types":{"version":"15.7.2"},"union-class-names":{"version":"1.0.0"}}},"draftjs-to-html":{"version":"0.8.4"},"draftjs-to-markdown":{"version":"0.5.1"},"emoji-js":{"version":"3.5.0","dependencies":{"emoji-datasource":{"version":"4.1.0"}}},"emoji-picker-react":{"version":"3.1.3"},"express":{"version":"4.16.4","dependencies":{"accepts":{"version":"1.3.7"},"array-flatten":{"version":"1.1.1"},"body-parser":{"version":"1.18.3","dependencies":{"debug":{"version":"2.6.9","dependencies":{"ms":{"version":"2.0.0"}}},"iconv-lite":{"version":"0.4.23","dependencies":{"safer-buffer":{"version":"2.1.2"}}},"bytes":{"version":"3.0.0"},"content-type":{"version":"1.0.4"},"depd":{"version":"1.1.2"},"http-errors":{"version":"1.6.3","dependencies":{"depd":{"version":"1.1.2"},"inherits":{"version":"2.0.3"},"setprototypeof":{"version":"1.1.0"},"statuses":{"version":"1.4.0"}}},"on-finished":{"version":"2.3.0"},"qs":{"version":"6.5.2"},"raw-body":{"version":"2.3.3","dependencies":{"bytes":{"version":"3.0.0"},"http-errors":{"version":"1.6.3"},"iconv-lite":{"version":"0.4.23","dependencies":{"safer-buffer":{"version":"2.1.2"}}},"unpipe":{"version":"1.0.0"}}},"type-is":{"version":"1.6.18"}}},"content-disposition":{"version":"0.5.2"},"content-type":{"version":"1.0.4"},"cookie":{"version":"0.3.1"},"cookie-signature":{"version":"1.0.6"},"depd":{"version":"1.1.2"},"encodeurl":{"version":"1.0.2"},"escape-html":{"version":"1.0.3"},"etag":{"version":"1.8.1"},"debug":{"version":"2.6.9","dependencies":{"ms":{"version":"2.0.0"}}},"safe-buffer":{"version":"5.1.2"},"finalhandler":{"version":"1.1.1","dependencies":{"encodeurl":{"version":"1.0.2"},"escape-html":{"version":"1.0.3"},"debug":{"version":"2.6.9","dependencies":{"ms":{"version":"2.0.0"}}},"on-finished":{"version":"2.3.0"},"parseurl":{"version":"1.3.3"},"statuses":{"version":"1.4.0"},"unpipe":{"version":"1.0.0"}}},"fresh":{"version":"0.5.2"},"merge-descriptors":{"version":"1.0.1"},"methods":{"version":"1.1.2"},"on-finished":{"version":"2.3.0","dependencies":{"ee-first":{"version":"1.1.1"}}},"parseurl":{"version":"1.3.3"},"path-to-regexp":{"version":"0.1.7"},"proxy-addr":{"version":"2.0.5","dependencies":{"forwarded":{"version":"0.1.2"},"ipaddr.js":{"version":"1.9.0"}}},"qs":{"version":"6.5.2"},"range-parser":{"version":"1.2.1"},"send":{"version":"0.16.2","dependencies":{"depd":{"version":"1.1.2"},"destroy":{"version":"1.0.4"},"encodeurl":{"version":"1.0.2"},"escape-html":{"version":"1.0.3"},"etag":{"version":"1.8.1"},"fresh":{"version":"0.5.2"},"http-errors":{"version":"1.6.3"},"mime":{"version":"1.4.1"},"ms":{"version":"2.0.0"},"on-finished":{"version":"2.3.0"},"range-parser":{"version":"1.2.1"},"debug":{"version":"2.6.9","dependencies":{"ms":{"version":"2.0.0"}}},"statuses":{"version":"1.4.0"}}},"serve-static":{"version":"1.13.2","dependencies":{"encodeurl":{"version":"1.0.2"},"escape-html":{"version":"1.0.3"},"parseurl":{"version":"1.3.3"},"send":{"version":"0.16.2"}}},"setprototypeof":{"version":"1.1.0"},"statuses":{"version":"1.4.0"},"type-is":{"version":"1.6.18","dependencies":{"media-typer":{"version":"0.3.0"},"mime-types":{"version":"2.1.25"}}},"utils-merge":{"version":"1.0.1"},"vary":{"version":"1.1.2"}}},"fontfaceobserver":{"version":"2.1.0"},"fs":{"version":"0.0.1-security"},"history":{"version":"4.9.0","dependencies":{"@babel/runtime":{"version":"7.7.4"},"loose-envify":{"version":"1.4.0","dependencies":{"js-tokens":{"version":"4.0.0"}}},"resolve-pathname":{"version":"2.2.0"},"tiny-invariant":{"version":"1.0.6"},"tiny-warning":{"version":"1.0.3"},"value-equal":{"version":"0.4.0"}}},"hoist-non-react-statics":{"version":"3.3.0","dependencies":{"react-is":{"version":"16.12.0"}}},"immutable":{"version":"3.8.2"},"intl":{"version":"1.2.5"},"invariant":{"version":"2.2.4","dependencies":{"loose-envify":{"version":"1.4.0"}}},"ip":{"version":"1.1.5"},"keycode":{"version":"2.2.0"},"lodash":{"version":"4.17.15"},"lru-memoize":{"version":"1.1.0"},"minimist":{"version":"1.2.0"},"mui-datatables":{"version":"2.13.2","dependencies":{"classnames":{"version":"2.2.6"},"lodash.assignwith":{"version":"4.2.0"},"lodash.clonedeep":{"version":"4.5.0"},"lodash.find":{"version":"4.6.0"},"lodash.get":{"version":"4.4.2"},"lodash.isequal":{"version":"4.5.0"},"lodash.isundefined":{"version":"3.0.1"},"lodash.memoize":{"version":"4.1.2"},"lodash.merge":{"version":"4.6.2"},"prop-types":{"version":"15.7.2"},"react-to-print":{"version":"2.5.0","dependencies":{"prop-types":{"version":"15.7.2"}}}}},"prop-types":{"version":"15.7.2","dependencies":{"loose-envify":{"version":"1.4.0"},"object-assign":{"version":"4.1.1"},"react-is":{"version":"16.12.0"}}},"rcolor":{"version":"1.0.1"},"react":{"version":"16.8.6","dependencies":{"loose-envify":{"version":"1.4.0"},"object-assign":{"version":"4.1.1"},"prop-types":{"version":"15.7.2"},"scheduler":{"version":"0.13.6","dependencies":{"loose-envify":{"version":"1.4.0"},"object-assign":{"version":"4.1.1"}}}}},"react-anchor-link-smooth-scroll":{"version":"1.0.12"},"react-animated-slider":{"version":"1.1.4","dependencies":{"react":{"version":"16.8.6"}}},"react-autosuggest":{"version":"9.4.3","dependencies":{"prop-types":{"version":"15.7.2"},"react-autowhatever":{"version":"10.2.0","dependencies":{"prop-types":{"version":"15.7.2"},"react-themeable":{"version":"1.1.0","dependencies":{"object-assign":{"version":"3.0.0"}}},"section-iterator":{"version":"2.0.0"}}},"shallow-equal":{"version":"1.2.0"}}},"react-big-calendar":{"version":"0.19.2","dependencies":{"classnames":{"version":"2.2.6"},"date-arithmetic":{"version":"3.1.0"},"invariant":{"version":"2.2.4"},"lodash":{"version":"4.17.15"},"prop-types":{"version":"15.7.2"},"dom-helpers":{"version":"3.4.0","dependencies":{"@babel/runtime":{"version":"7.7.4"}}},"warning":{"version":"2.1.0","dependencies":{"loose-envify":{"version":"1.4.0"}}},"react-overlays":{"version":"0.7.4","dependencies":{"classnames":{"version":"2.2.6"},"prop-types":{"version":"15.7.2"},"prop-types-extra":{"version":"1.1.1","dependencies":{"react-is":{"version":"16.12.0"},"warning":{"version":"4.0.2"}}},"dom-helpers":{"version":"3.4.0","dependencies":{"@babel/runtime":{"version":"7.7.4"}}},"warning":{"version":"3.0.0","dependencies":{"loose-envify":{"version":"1.4.0"}}}}},"react-prop-types":{"version":"0.4.0","dependencies":{"warning":{"version":"3.0.0","dependencies":{"loose-envify":{"version":"1.4.0"}}}}},"uncontrollable":{"version":"4.1.0","dependencies":{"invariant":{"version":"2.2.4"}}}}},"react-calendar":{"version":"2.19.2","dependencies":{"get-user-locale":{"version":"1.3.0","dependencies":{"lodash.once":{"version":"4.1.1"}}},"merge-class-names":{"version":"1.3.0"},"prop-types":{"version":"15.7.2"},"react-lifecycles-compat":{"version":"3.0.4"}}},"react-countup":{"version":"3.0.3","dependencies":{"countup.js":{"version":"1.9.3"}}},"react-dom":{"version":"16.8.6","dependencies":{"loose-envify":{"version":"1.4.0"},"object-assign":{"version":"4.1.1"},"prop-types":{"version":"15.7.2"},"scheduler":{"version":"0.13.6"}}},"react-draft-wysiwyg":{"version":"1.13.2","dependencies":{"classnames":{"version":"2.2.6"},"draftjs-utils":{"version":"0.9.4"},"html-to-draftjs":{"version":"1.4.0"},"linkify-it":{"version":"2.2.0","dependencies":{"uc.micro":{"version":"1.0.6"}}},"prop-types":{"version":"15.7.2"}}},"react-dropzone":{"version":"10.2.1","dependencies":{"attr-accept":{"version":"2.0.0"},"file-selector":{"version":"0.1.12","dependencies":{"tslib":{"version":"1.10.0"}}},"prop-types":{"version":"15.7.2"}}},"react-event-listener":{"version":"0.6.6","dependencies":{"@babel/runtime":{"version":"7.7.4"},"prop-types":{"version":"15.7.2"},"warning":{"version":"4.0.2"}}},"react-google-maps":{"version":"9.4.5","dependencies":{"babel-runtime":{"version":"6.26.0","dependencies":{"core-js":{"version":"2.5.7"},"regenerator-runtime":{"version":"0.11.1"}}},"can-use-dom":{"version":"0.1.0"},"google-maps-infobox":{"version":"2.0.0"},"invariant":{"version":"2.2.4"},"lodash":{"version":"4.17.15"},"marker-clusterer-plus":{"version":"2.1.4"},"markerwithlabel":{"version":"2.0.2"},"prop-types":{"version":"15.7.2"},"recompose":{"version":"0.26.0","dependencies":{"change-emitter":{"version":"0.1.6"},"fbjs":{"version":"0.8.17"},"hoist-non-react-statics":{"version":"2.5.5"},"symbol-observable":{"version":"1.2.0"}}},"warning":{"version":"3.0.0","dependencies":{"loose-envify":{"version":"1.4.0"}}},"scriptjs":{"version":"2.5.9"}}},"react-helmet":{"version":"6.0.0-beta","dependencies":{"object-assign":{"version":"4.1.1"},"prop-types":{"version":"15.7.2"},"react-fast-compare":{"version":"2.0.4"},"react-side-effect":{"version":"1.2.0","dependencies":{"shallowequal":{"version":"1.1.0"}}}}},"react-input-range":{"version":"1.3.0","dependencies":{"autobind-decorator":{"version":"1.4.3"},"prop-types":{"version":"15.7.2"}}},"react-intl":{"version":"2.4.0","dependencies":{"intl-format-cache":{"version":"2.2.9"},"intl-messageformat":{"version":"2.2.0","dependencies":{"intl-messageformat-parser":{"version":"1.4.0"}}},"intl-relativeformat":{"version":"2.2.0","dependencies":{"intl-messageformat":{"version":"2.2.0"}}},"invariant":{"version":"2.2.4"}}},"react-ionicons":{"version":"2.1.6","dependencies":{"prop-types":{"version":"15.5.10","dependencies":{"fbjs":{"version":"0.8.17"},"loose-envify":{"version":"1.4.0"}}},"react":{"version":"15.4.2","dependencies":{"fbjs":{"version":"0.8.17"},"loose-envify":{"version":"1.4.0"},"object-assign":{"version":"4.1.1"}}},"react-dom":{"version":"15.4.2","dependencies":{"fbjs":{"version":"0.8.17"},"loose-envify":{"version":"1.4.0"},"object-assign":{"version":"4.1.1"}}},"styled-components":{"version":"2.2.3","dependencies":{"buffer":{"version":"5.4.3","dependencies":{"base64-js":{"version":"1.3.1"},"ieee754":{"version":"1.1.13"}}},"css-to-react-native":{"version":"2.3.2","dependencies":{"camelize":{"version":"1.0.0"},"css-color-keywords":{"version":"1.0.0"},"postcss-value-parser":{"version":"3.3.1"}}},"fbjs":{"version":"0.8.17"},"is-function":{"version":"1.0.1"},"is-plain-object":{"version":"2.0.4","dependencies":{"isobject":{"version":"3.0.1"}}},"prop-types":{"version":"15.7.2"},"hoist-non-react-statics":{"version":"1.2.0"},"supports-color":{"version":"3.2.3","dependencies":{"has-flag":{"version":"1.0.0"}}},"stylis":{"version":"3.5.4"}}}}},"react-jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"@emotion/is-prop-valid":{"version":"0.7.3","dependencies":{"@emotion/memoize":{"version":"0.7.1"}}},"css-jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}},"jss-preset-default":{"version":"10.0.4"}}},"hoist-non-react-statics":{"version":"3.3.0"},"is-in-browser":{"version":"1.1.3"},"jss-preset-default":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss-plugin-compose":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}},"tiny-warning":{"version":"1.0.3"}}},"jss-plugin-expand":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}}}},"jss-plugin-extend":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}},"tiny-warning":{"version":"1.0.3"}}},"jss-plugin-rule-value-observable":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}},"symbol-observable":{"version":"1.2.0"}}},"jss-plugin-template":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}},"tiny-warning":{"version":"1.0.3"}}},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}},"jss-plugin-camel-case":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"hyphenate-style-name":{"version":"1.0.3"},"jss":{"version":"10.0.4"}}},"jss-plugin-default-unit":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4"}}},"jss-plugin-global":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4"}}},"jss-plugin-nested":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4"},"tiny-warning":{"version":"1.0.3"}}},"jss-plugin-props-sort":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4"}}},"jss-plugin-rule-value-function":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"jss":{"version":"10.0.4"}}},"jss-plugin-vendor-prefixer":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"css-vendor":{"version":"2.0.7"},"jss":{"version":"10.0.4"}}}}},"prop-types":{"version":"15.7.2"},"jss":{"version":"10.0.4","dependencies":{"@babel/runtime":{"version":"7.7.4"},"csstype":{"version":"2.6.7"},"is-in-browser":{"version":"1.1.3"},"tiny-warning":{"version":"1.0.3"}}},"shallow-equal":{"version":"1.2.0"},"theming":{"version":"3.2.0","dependencies":{"hoist-non-react-statics":{"version":"3.3.0"},"prop-types":{"version":"15.7.2"},"react-display-name":{"version":"0.2.5"},"tiny-warning":{"version":"1.0.3"}}},"tiny-warning":{"version":"1.0.3"}}},"react-loadable":{"version":"5.5.0","dependencies":{"prop-types":{"version":"15.7.2"}}},"react-loading-bar":{"version":"0.0.7","dependencies":{"shallowequal":{"version":"0.2.2","dependencies":{"lodash.keys":{"version":"3.1.2","dependencies":{"lodash._getnative":{"version":"3.9.1"},"lodash.isarguments":{"version":"3.1.0"},"lodash.isarray":{"version":"3.0.4"}}}}}}},"react-markdown":{"version":"4.3.1","dependencies":{"html-to-react":{"version":"1.4.2","dependencies":{"domhandler":{"version":"3.0.0","dependencies":{"domelementtype":{"version":"2.0.1"}}},"htmlparser2":{"version":"4.0.0","dependencies":{"domelementtype":{"version":"2.0.1"},"domhandler":{"version":"3.0.0"},"domutils":{"version":"2.0.0","dependencies":{"dom-serializer":{"version":"0.2.2","dependencies":{"domelementtype":{"version":"2.0.1"},"entities":{"version":"2.0.0"}}},"domelementtype":{"version":"2.0.1"},"domhandler":{"version":"3.0.0"}}},"entities":{"version":"2.0.0"}}},"lodash.camelcase":{"version":"4.3.0"},"ramda":{"version":"0.26.1"}}},"mdast-add-list-metadata":{"version":"1.0.1","dependencies":{"unist-util-visit-parents":{"version":"1.1.2"}}},"prop-types":{"version":"15.7.2"},"react-is":{"version":"16.12.0"},"remark-parse":{"version":"5.0.0","dependencies":{"collapse-white-space":{"version":"1.0.5"},"is-alphabetical":{"version":"1.0.3"},"is-decimal":{"version":"1.0.3"},"is-whitespace-character":{"version":"1.0.3"},"is-word-character":{"version":"1.0.3"},"markdown-escapes":{"version":"1.0.3"},"parse-entities":{"version":"1.2.2","dependencies":{"character-entities":{"version":"1.2.3"},"character-entities-legacy":{"version":"1.1.3"},"character-reference-invalid":{"version":"1.1.3"},"is-alphanumerical":{"version":"1.0.3","dependencies":{"is-alphabetical":{"version":"1.0.3"},"is-decimal":{"version":"1.0.3"}}},"is-decimal":{"version":"1.0.3"},"is-hexadecimal":{"version":"1.0.3"}}},"repeat-string":{"version":"1.6.1"},"state-toggle":{"version":"1.0.2"},"trim":{"version":"0.0.1"},"trim-trailing-lines":{"version":"1.1.2"},"unherit":{"version":"1.1.2","dependencies":{"inherits":{"version":"2.0.3"},"xtend":{"version":"4.0.2"}}},"unist-util-remove-position":{"version":"1.1.4","dependencies":{"unist-util-visit":{"version":"1.4.1"}}},"vfile-location":{"version":"2.0.6"},"xtend":{"version":"4.0.2"}}},"unified":{"version":"6.2.0","dependencies":{"bail":{"version":"1.0.4"},"extend":{"version":"3.0.2"},"is-plain-obj":{"version":"1.1.0"},"trough":{"version":"1.0.4"},"vfile":{"version":"2.3.0","dependencies":{"replace-ext":{"version":"1.0.0"},"unist-util-stringify-position":{"version":"1.1.2"},"vfile-message":{"version":"1.1.1","dependencies":{"unist-util-stringify-position":{"version":"1.1.2"}}},"is-buffer":{"version":"1.1.6"}}},"x-is-string":{"version":"0.1.0"}}},"unist-util-visit":{"version":"1.4.1","dependencies":{"unist-util-visit-parents":{"version":"2.1.2","dependencies":{"unist-util-is":{"version":"3.0.0"}}}}},"xtend":{"version":"4.0.2"}}},"react-modal":{"version":"3.11.1","dependencies":{"exenv":{"version":"1.2.2"},"prop-types":{"version":"15.7.2"},"react-lifecycles-compat":{"version":"3.0.4"},"warning":{"version":"4.0.3","dependencies":{"loose-envify":{"version":"1.4.0"}}}}},"react-number-format":{"version":"3.6.2","dependencies":{"prop-types":{"version":"15.7.2"}}},"react-popper":{"version":"0.10.4","dependencies":{"popper.js":{"version":"1.16.0"},"prop-types":{"version":"15.7.2"}}},"react-redux":{"required":{"_requested":{"name":"react-redux"},"author":{"name":"Dan Abramov"},"dependencies":{"@babel/runtime":{"_requested":{"name":"@babel/runtime"},"name":"@babel/runtime","version":"7.7.4"},"invariant":{"_requested":{"name":"invariant"},"author":{"name":"Andres Suarez"},"name":"invariant","version":"2.2.4"},"loose-envify":{"_requested":{"name":"loose-envify"},"name":"loose-envify","version":"1.4.0"},"prop-types":{"_requested":{"name":"prop-types"},"name":"prop-types","version":"15.7.2"},"react-is":{"_requested":{"name":"react-is"},"name":"react-is","version":"16.12.0"},"hoist-non-react-statics":{"_requested":{"name":"hoist-non-react-statics"},"author":{"name":"Michael Ridgway"},"dependencies":{"react-is":{"_requested":{"name":"react-is"},"name":"react-is","version":"16.12.0"}},"name":"hoist-non-react-statics","version":"3.3.2"}},"name":"react-redux","version":"7.0.2"}},"react-router-dom":{"version":"5.0.1","dependencies":{"@babel/runtime":{"version":"7.7.4"},"loose-envify":{"version":"1.4.0"},"prop-types":{"version":"15.7.2"},"react-router":{"version":"5.0.1","dependencies":{"@babel/runtime":{"version":"7.7.4"},"loose-envify":{"version":"1.4.0"},"mini-create-react-context":{"version":"0.3.2","dependencies":{"@babel/runtime":{"version":"7.7.4"},"gud":{"version":"1.0.0"},"tiny-warning":{"version":"1.0.3"}}},"prop-types":{"version":"15.7.2"},"react-is":{"version":"16.12.0"},"history":{"version":"4.10.1","dependencies":{"@babel/runtime":{"version":"7.7.4"},"loose-envify":{"version":"1.4.0"},"resolve-pathname":{"version":"3.0.0"},"value-equal":{"version":"1.0.1"},"tiny-invariant":{"version":"1.0.6"},"tiny-warning":{"version":"1.0.3"}}},"hoist-non-react-statics":{"version":"3.3.2","dependencies":{"react-is":{"version":"16.12.0"}}},"path-to-regexp":{"version":"1.8.0","dependencies":{"isarray":{"version":"0.0.1"}}},"tiny-invariant":{"version":"1.0.6"},"tiny-warning":{"version":"1.0.3"}}},"history":{"version":"4.10.1","dependencies":{"@babel/runtime":{"version":"7.7.4"},"loose-envify":{"version":"1.4.0"},"resolve-pathname":{"version":"3.0.0"},"value-equal":{"version":"1.0.1"},"tiny-invariant":{"version":"1.0.6"},"tiny-warning":{"version":"1.0.3"}}},"tiny-invariant":{"version":"1.0.6"},"tiny-warning":{"version":"1.0.3"}}},"react-select":{"version":"3.0.8","dependencies":{"@babel/runtime":{"version":"7.7.4"},"@emotion/cache":{"version":"10.0.27","dependencies":{"@emotion/sheet":{"version":"0.9.4"},"@emotion/stylis":{"version":"0.8.5"},"@emotion/utils":{"version":"0.11.3"},"@emotion/weak-memoize":{"version":"0.2.5"}}},"@emotion/core":{"version":"10.0.27","dependencies":{"@babel/runtime":{"version":"7.7.4"},"@emotion/cache":{"version":"10.0.27"},"@emotion/css":{"version":"10.0.27"},"@emotion/serialize":{"version":"0.11.15","dependencies":{"@emotion/hash":{"version":"0.7.4"},"@emotion/memoize":{"version":"0.7.4"},"@emotion/unitless":{"version":"0.7.5"},"@emotion/utils":{"version":"0.11.3"},"csstype":{"version":"2.6.7"}}},"@emotion/sheet":{"version":"0.9.4"},"@emotion/utils":{"version":"0.11.3"}}},"@emotion/css":{"version":"10.0.27","dependencies":{"@emotion/serialize":{"version":"0.11.15"},"@emotion/utils":{"version":"0.11.3"},"babel-plugin-emotion":{"version":"10.0.27","dependencies":{"@babel/helper-module-imports":{"version":"7.7.4","dependencies":{"@babel/types":{"version":"7.7.4","dependencies":{"lodash":{"version":"4.17.15"},"to-fast-properties":{"version":"2.0.0"},"esutils":{"version":"2.0.2"}}}}},"@emotion/serialize":{"version":"0.11.15"},"@emotion/hash":{"version":"0.7.4"},"@emotion/memoize":{"version":"0.7.4"},"babel-plugin-macros":{"version":"2.8.0","dependencies":{"@babel/runtime":{"version":"7.7.4"},"cosmiconfig":{"version":"6.0.0","dependencies":{"@types/parse-json":{"version":"4.0.0"},"parse-json":{"version":"5.0.0","dependencies":{"@babel/code-frame":{"version":"7.8.3","dependencies":{"@babel/highlight":{"version":"7.8.3","dependencies":{"chalk":{"version":"2.4.2"},"esutils":{"version":"2.0.2"},"js-tokens":{"version":"4.0.0"}}}}},"error-ex":{"version":"1.3.2","dependencies":{"is-arrayish":{"version":"0.2.1"}}},"json-parse-better-errors":{"version":"1.0.2"},"lines-and-columns":{"version":"1.1.6"}}},"path-type":{"version":"4.0.0"},"import-fresh":{"version":"3.2.1","dependencies":{"parent-module":{"version":"1.0.1","dependencies":{"callsites":{"version":"3.1.0"}}},"resolve-from":{"version":"4.0.0"}}},"yaml":{"version":"1.7.2","dependencies":{"@babel/runtime":{"version":"7.7.4"}}}}},"resolve":{"version":"1.13.1","dependencies":{"path-parse":{"version":"1.0.6"}}}}},"babel-plugin-syntax-jsx":{"version":"6.18.0"},"convert-source-map":{"version":"1.6.0","dependencies":{"safe-buffer":{"version":"5.1.1"}}},"escape-string-regexp":{"version":"1.0.5"},"find-root":{"version":"1.1.0"},"source-map":{"version":"0.5.7"}}}}},"memoize-one":{"version":"5.1.1"},"prop-types":{"version":"15.7.2"},"react-input-autosize":{"version":"2.2.2","dependencies":{"prop-types":{"version":"15.7.2"}}},"react-transition-group":{"version":"2.9.0","dependencies":{"loose-envify":{"version":"1.4.0"},"prop-types":{"version":"15.7.2"},"react-lifecycles-compat":{"version":"3.0.4"},"dom-helpers":{"version":"3.4.0","dependencies":{"@babel/runtime":{"version":"7.7.4"}}}}}}},"react-slick":{"version":"0.23.2","dependencies":{"classnames":{"version":"2.2.6"},"enquire.js":{"version":"2.1.6"},"json2mq":{"version":"0.2.0","dependencies":{"string-convert":{"version":"0.2.1"}}},"lodash.debounce":{"version":"4.0.8"},"prettier":{"version":"1.19.1"},"resize-observer-polyfill":{"version":"1.5.1"}}},"react-swipeable-views":{"version":"0.12.18","dependencies":{"prop-types":{"version":"15.7.2"},"react-swipeable-views-core":{"version":"0.12.17","dependencies":{"@babel/runtime":{"version":"7.0.0","dependencies":{"regenerator-runtime":{"version":"0.12.1"}}},"warning":{"version":"4.0.2"}}},"react-swipeable-views-utils":{"version":"0.12.18","dependencies":{"fbjs":{"version":"0.8.17"},"keycode":{"version":"2.2.0"},"prop-types":{"version":"15.7.2"},"react-event-listener":{"version":"0.6.6"},"react-swipeable-views-core":{"version":"0.12.17"},"@babel/runtime":{"version":"7.0.0","dependencies":{"regenerator-runtime":{"version":"0.12.1"}}}}},"@babel/runtime":{"version":"7.0.0","dependencies":{"regenerator-runtime":{"version":"0.12.1"}}},"dom-helpers":{"version":"3.4.0","dependencies":{"@babel/runtime":{"version":"7.7.4","dependencies":{"regenerator-runtime":{"version":"0.13.3"}}}}},"warning":{"version":"4.0.2"}}},"react-syntax-highlighter":{"version":"7.0.4","dependencies":{"babel-runtime":{"version":"6.26.0"},"highlight.js":{"version":"9.12.0"},"lowlight":{"version":"1.9.2","dependencies":{"fault":{"version":"1.0.3","dependencies":{"format":{"version":"0.2.2"}}},"highlight.js":{"version":"9.12.0"}}},"prismjs":{"version":"1.17.1","dependencies":{"clipboard":{"version":"2.0.4","dependencies":{"good-listener":{"version":"1.2.2","dependencies":{"delegate":{"version":"3.2.0"}}},"select":{"version":"1.1.2"},"tiny-emitter":{"version":"2.1.0"}}}}},"refractor":{"version":"2.10.0","dependencies":{"hastscript":{"version":"5.1.1","dependencies":{"comma-separated-tokens":{"version":"1.0.7"},"hast-util-parse-selector":{"version":"2.2.3"},"property-information":{"version":"5.3.0","dependencies":{"xtend":{"version":"4.0.2"}}},"space-separated-tokens":{"version":"1.1.4"}}},"parse-entities":{"version":"1.2.2"},"prismjs":{"version":"1.17.1"}}}}},"react-text-mask":{"version":"5.4.3","dependencies":{"prop-types":{"version":"15.7.2"}}},"react-ultimate-pagination":{"version":"1.2.0","dependencies":{"prop-types":{"version":"15.7.2"},"ultimate-pagination":{"version":"1.0.0"}}},"recharts":{"version":"1.8.5","dependencies":{"classnames":{"version":"2.2.6"},"core-js":{"version":"2.6.10"},"d3-interpolate":{"version":"1.4.0","dependencies":{"d3-color":{"version":"1.4.0"}}},"d3-scale":{"version":"2.2.2","dependencies":{"d3-array":{"version":"1.2.4"},"d3-collection":{"version":"1.0.7"},"d3-format":{"version":"1.4.2"},"d3-interpolate":{"version":"1.4.0"},"d3-time":{"version":"1.1.0"},"d3-time-format":{"version":"2.2.2","dependencies":{"d3-time":{"version":"1.1.0"}}}}},"d3-shape":{"version":"1.3.7","dependencies":{"d3-path":{"version":"1.0.9"}}},"lodash":{"version":"4.17.15"},"prop-types":{"version":"15.7.2"},"react-resize-detector":{"version":"2.3.0","dependencies":{"lodash.debounce":{"version":"4.0.8"},"lodash.throttle":{"version":"4.1.1"},"prop-types":{"version":"15.7.2"},"resize-observer-polyfill":{"version":"1.5.1"}}},"react-smooth":{"version":"1.0.5","dependencies":{"lodash":{"version":"4.17.15"},"prop-types":{"version":"15.7.2"},"raf":{"version":"3.4.1","dependencies":{"performance-now":{"version":"2.1.0"}}},"react-transition-group":{"version":"2.9.0","dependencies":{"loose-envify":{"version":"1.4.0"},"prop-types":{"version":"15.7.2"},"react-lifecycles-compat":{"version":"3.0.4"},"dom-helpers":{"version":"3.4.0","dependencies":{"@babel/runtime":{"version":"7.7.4"}}}}}}},"recharts-scale":{"version":"0.4.3","dependencies":{"decimal.js-light":{"version":"2.5.0"}}},"reduce-css-calc":{"version":"1.3.0","dependencies":{"math-expression-evaluator":{"version":"1.2.17"},"balanced-match":{"version":"0.4.2"},"reduce-function-call":{"version":"1.0.3","dependencies":{"balanced-match":{"version":"1.0.0"}}}}}}},"recompose":{"version":"0.28.2","dependencies":{"change-emitter":{"version":"0.1.6"},"fbjs":{"version":"0.8.17"},"react-lifecycles-compat":{"version":"3.0.4"},"@babel/runtime":{"version":"7.0.0-beta.56","dependencies":{"regenerator-runtime":{"version":"0.12.1"}}},"hoist-non-react-statics":{"version":"2.5.5"},"symbol-observable":{"version":"1.2.0"}}},"redux":{"version":"4.0.1","dependencies":{"loose-envify":{"version":"1.4.0"},"symbol-observable":{"version":"1.2.0"}}},"redux-form":{"version":"8.2.0","dependencies":{"@babel/runtime":{"version":"7.7.4"},"es6-error":{"version":"4.1.1"},"invariant":{"version":"2.2.4"},"is-promise":{"version":"2.1.0"},"lodash":{"version":"4.17.15"},"lodash-es":{"version":"4.17.15"},"prop-types":{"version":"15.7.2"},"react-is":{"version":"16.12.0"},"react-lifecycles-compat":{"version":"3.0.4"},"hoist-non-react-statics":{"version":"3.3.2","dependencies":{"react-is":{"version":"16.12.0"}}}}},"redux-immutable":{"version":"4.0.0"},"redux-saga":{"version":"1.0.2","dependencies":{"@redux-saga/core":{"version":"1.1.3","dependencies":{"@babel/runtime":{"version":"7.7.4"},"redux":{"version":"4.0.4","dependencies":{"loose-envify":{"version":"1.4.0"},"symbol-observable":{"version":"1.2.0"}}},"@redux-saga/deferred":{"version":"1.1.2"},"@redux-saga/delay-p":{"version":"1.1.2","dependencies":{"@redux-saga/symbols":{"version":"1.1.2"}}},"@redux-saga/is":{"version":"1.1.2","dependencies":{"@redux-saga/symbols":{"version":"1.1.2"},"@redux-saga/types":{"version":"1.1.0"}}},"@redux-saga/symbols":{"version":"1.1.2"},"@redux-saga/types":{"version":"1.1.0"},"typescript-tuple":{"version":"2.2.1","dependencies":{"typescript-compare":{"version":"0.0.2","dependencies":{"typescript-logic":{"version":"0.0.0"}}}}}}}}},"reselect":{"version":"4.0.0"},"sanitize.css":{"version":"8.0.0"},"serve-favicon":{"version":"2.5.0","dependencies":{"etag":{"version":"1.8.1"},"fresh":{"version":"0.5.2"},"parseurl":{"version":"1.3.3"},"safe-buffer":{"version":"5.1.1"},"ms":{"version":"2.1.1"}}},"slick-carousel":{"version":"1.8.1"},"warning":{"version":"4.0.2","dependencies":{"loose-envify":{"version":"1.4.0"}}},"whatwg-fetch":{"version":"2.0.4"}}} \ No newline at end of file -- cgit v1.2.3 From 9c396976bb42a9d41407358ce1a1d37242230f21 Mon Sep 17 00:00:00 2001 From: gabrhr <73925454+gabrhr@users.noreply.github.com> Date: Fri, 27 May 2022 12:50:13 -0500 Subject: Add redux, dispatch and etiquetas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - estetica de etiquetas (ok) - add message, pedido Reducer - add dispatch en Componentes con connect - add api reducer que obtienen el JSON todo ok #TODO - FIX logica de añadiir - FIX axios y dispatch fuera de un componente --- front/odiparpack/app/actions/actionTypes.js | 7 ++ front/odiparpack/app/actions/message.js | 17 ++++ front/odiparpack/app/actions/pedido.js | 26 +++++ front/odiparpack/app/api/pedido.js | 6 ++ .../app/components/Odipar/EtiquetaData.js | 53 +++++----- front/odiparpack/app/components/Odipar/common.js | 10 +- .../app/components/Sidebar/MainMenuSimple.js | 4 +- .../app/components/Tables/CrudTableForm.js | 2 + front/odiparpack/app/containers/App/index.js | 60 ++++++++++- .../app/containers/Odipar/Pedidos/Pedidos.js | 5 +- .../containers/Odipar/Pedidos/table/CrudPedido.js | 30 +++++- .../containers/Odipar/Pedidos/table/sampleData.js | 16 +-- .../app/containers/Tables/demos/sampleData.js | 27 +++-- front/odiparpack/app/redux/configureStore.js | 6 +- .../odiparpack/app/redux/modules/crudTableForm.js | 1 + front/odiparpack/app/redux/modules/message.js | 30 ++++++ front/odiparpack/app/redux/modules/pedido.js | 16 +++ front/odiparpack/app/redux/reducers.js | 6 ++ front/odiparpack/app/utils/odipar/api.js | 113 +++++++++++++++++++++ front/odiparpack/app/utils/odipar/constants.js | 9 ++ front/odiparpack/app/utils/odipar/menu.js | 51 ++++++++++ .../internals/webpack/webpack.base.babel.js | 1 + front/odiparpack/package-lock.json | 39 ++++++- front/odiparpack/package.json | 3 + 24 files changed, 481 insertions(+), 57 deletions(-) create mode 100644 front/odiparpack/app/actions/message.js create mode 100644 front/odiparpack/app/actions/pedido.js create mode 100644 front/odiparpack/app/api/pedido.js create mode 100644 front/odiparpack/app/redux/modules/message.js create mode 100644 front/odiparpack/app/redux/modules/pedido.js create mode 100644 front/odiparpack/app/utils/odipar/api.js create mode 100644 front/odiparpack/app/utils/odipar/constants.js create mode 100644 front/odiparpack/app/utils/odipar/menu.js diff --git a/front/odiparpack/app/actions/actionTypes.js b/front/odiparpack/app/actions/actionTypes.js index 08986f2..5aaa47a 100644 --- a/front/odiparpack/app/actions/actionTypes.js +++ b/front/odiparpack/app/actions/actionTypes.js @@ -82,3 +82,10 @@ export const DELETE_EVENT = 'DELETE_EVENT'; // Notification Form export const CLOSE_NOTIF = 'CLOSE_NOTIF'; + + +//Odi Message +export const CLOSE_MESSAGE = 'CLOSE_MESSAGE'; +export const OPEN_MESSAGE = 'OPEN_MESSAGE'; + +export const LISTA_PEDIDO = 'SAVE_PEDIDO'; \ No newline at end of file diff --git a/front/odiparpack/app/actions/message.js b/front/odiparpack/app/actions/message.js new file mode 100644 index 0000000..881a41f --- /dev/null +++ b/front/odiparpack/app/actions/message.js @@ -0,0 +1,17 @@ +import * as types from './actionTypes'; +import { partial } from 'odi-utils/constants'; + + +export const closeMessage = () => ({ + type: types.CLOSE_MESSAGE, +}) + +export const setMessage = (type, message) => ({ + type: types.OPEN_MESSAGE, + payload: { + type, message + } +}) + +export const openSuccessMessage = partial(setMessage, 'success'); +export const openErrorMessage = partial(setMessage, 'error'); \ No newline at end of file diff --git a/front/odiparpack/app/actions/pedido.js b/front/odiparpack/app/actions/pedido.js new file mode 100644 index 0000000..15382fe --- /dev/null +++ b/front/odiparpack/app/actions/pedido.js @@ -0,0 +1,26 @@ +import { + getPedidosAPI +} from 'ba-api/pedido'; +import { addMessageCurry } from 'odi-utils/api'; +import * as types from './actionTypes' + +export const setPedidos = (payload) => ({ + type: types.LISTA_PEDIDO, + payload +}); + +export const getPedidos = () => { + return dispatch => { + return new Promise( + (resolve, reject) => { + console.log("entreeeeeeeeee") + addMessageCurry(getPedidosAPI(), dispatch, '',"aaaaaaaaa") + .then(pedidos => { + dispatch(setPedidos({pedidos})); + resolve(pedidos) + console.log(pedidos) + }) + } + ) + } +} \ No newline at end of file diff --git a/front/odiparpack/app/api/pedido.js b/front/odiparpack/app/api/pedido.js new file mode 100644 index 0000000..7cfb3f7 --- /dev/null +++ b/front/odiparpack/app/api/pedido.js @@ -0,0 +1,6 @@ +import { apiPost, apiGet, apiDelete, apiPut } from "odi-utils/api"; + +//GET APIS +export const getPedidosAPI = () => { + return apiGet('ayuda/') +} \ No newline at end of file diff --git a/front/odiparpack/app/components/Odipar/EtiquetaData.js b/front/odiparpack/app/components/Odipar/EtiquetaData.js index 4a2a37c..a2f262d 100644 --- a/front/odiparpack/app/components/Odipar/EtiquetaData.js +++ b/front/odiparpack/app/components/Odipar/EtiquetaData.js @@ -1,10 +1,5 @@ //Pedido export const pedido = { - entregado: { - text: "Entregado", - color: "#81C784", - icon: false - }, pendiente:{ text: "Pendiente", color: "#FFB74D", @@ -15,59 +10,71 @@ export const pedido = { color: "#64B5F6", icon: false }, + entregado: { + text: "Entregado", + color: "#81C784", + icon: false + }, cancelado: { text: "Cancelado", color: "#E57373", icon: false - } + }, + pendienteAveria:{ + text: "Pendiente por Averia", + color: "#FFB74D", + icon: false + } } //Camion export const camion = { - entregado: { - text: "Entregado", + disponible : { + text: "Disponible", color: "#81C784", icon: false }, - pendiente:{ - text: "Pendiente", - color: "#FFB74D", + enReparto: { + text: "En Reparto", + color: "#64B5F6", icon: false }, - enCamino: { - text: "En Camino", - color: "#64B5F6", + mantenimiento:{ + text: "Mantenimiento", + color: "#FFB74D", icon: false }, cancelado: { - text: "Cancelado", + text: "Inhabilitado", color: "#E57373", icon: false } } + //Bloqueos export const bloqueo = { desbloqueado: { - text: "Entregado", + text: "Disponible", color: "#81C784", icon: false }, bloqueado:{ - text: "Pendiente", - color: "#FFB74D", + text: "Bloqueado", + color: "#E57373", icon: false } } - + + //Almacen export const almacen = { noPrincipal: { text: "Pequeño", - color: "#81C784", - icon: false + color: "#DED8D8", + icon: 10 }, principal:{ text: "Principal", - color: "#FFB74D", - icon: false + color: "#DED8D8", + icon: 16 } } \ No newline at end of file diff --git a/front/odiparpack/app/components/Odipar/common.js b/front/odiparpack/app/components/Odipar/common.js index c66b792..39ba76a 100644 --- a/front/odiparpack/app/components/Odipar/common.js +++ b/front/odiparpack/app/components/Odipar/common.js @@ -1,6 +1,7 @@ import React from "react" import { Chip } from "@material-ui/core"; -import {pedido, camion, bloqueo, almacen} from './EtiquetaData' +import { pedido, camion, bloqueo, almacen } from './EtiquetaData' +import Brightness1Icon from '@material-ui/icons/Brightness1'; const etiquetaStyle = color => ({ fontWeight: 'bold', @@ -11,7 +12,7 @@ const etiquetaStyle = color => ({ //Etiquetas export function etiqueta(tipo , estado) { // eslint-disable-line - let {color, text} = "" + let {color, text, icon} = "" switch(tipo){ case 'etiq_pedido': text = pedido[Object.keys(pedido)[estado]].text @@ -29,10 +30,13 @@ export function etiqueta(tipo , estado) { // eslint-disable-line console.log("entre?") text = almacen[Object.keys(almacen)[estado]].text color = almacen[Object.keys(almacen)[estado]].color + icon = almacen[Object.keys(almacen)[estado]].icon break; } return ( - + tipo == "etiq_alma" ? + } style={{fontWeight: 'bold', backgroundColor: color}}/> : + ) } \ No newline at end of file diff --git a/front/odiparpack/app/components/Sidebar/MainMenuSimple.js b/front/odiparpack/app/components/Sidebar/MainMenuSimple.js index f7634ca..18ac8fd 100644 --- a/front/odiparpack/app/components/Sidebar/MainMenuSimple.js +++ b/front/odiparpack/app/components/Sidebar/MainMenuSimple.js @@ -5,10 +5,8 @@ import classNames from 'classnames'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import { NavLink } from 'react-router-dom'; -import ExpandLess from '@material-ui/icons/ExpandLess'; -import ExpandMore from '@material-ui/icons/ExpandMore'; // Menu Object -import MenuContent from 'ba-api/menu'; +import MenuContent from 'odi-utils/menu'; import { List, ListItem, ListItemIcon, ListItemText, Collapse, Icon } from '@material-ui/core'; import styles from './sidebar-jss'; diff --git a/front/odiparpack/app/components/Tables/CrudTableForm.js b/front/odiparpack/app/components/Tables/CrudTableForm.js index d2d2ea8..219fcd2 100644 --- a/front/odiparpack/app/components/Tables/CrudTableForm.js +++ b/front/odiparpack/app/components/Tables/CrudTableForm.js @@ -6,6 +6,7 @@ import FloatingPanel from './../Panel/FloatingPanel'; class CrudTableForm extends React.Component { componentDidMount() { + console.log("en el FORM",this.props.dataInit) this.props.fetchData(this.props.dataInit, this.props.branch); } @@ -31,6 +32,7 @@ class CrudTableForm extends React.Component { } = this.props; return (
+
{children} diff --git a/front/odiparpack/app/containers/App/index.js b/front/odiparpack/app/containers/App/index.js index a7313fe..ea78618 100644 --- a/front/odiparpack/app/containers/App/index.js +++ b/front/odiparpack/app/containers/App/index.js @@ -5,11 +5,51 @@ import Auth from './Auth'; import Application from './Application'; import LoginDedicated from '../Pages/Standalone/LoginDedicated'; import ThemeWrapper from './ThemeWrapper'; +import { Snackbar, Button, Icon } from '@material-ui/core'; +import { connect } from 'react-redux'; window.__MUI_USE_NEXT_TYPOGRAPHY_VARIANTS__ = true; -function App() { +function App(props) { + + const handleMessageClose = () => { + props.dispatch(closeMessage()) + } + + const { + openMessage = false, + message = '', + type = 'error' + } = props + return ( + + + {type === 'success' ? 'check_circle' : 'report_problem'} + + {message} +
+ } + action={[ + + ]} + /> @@ -20,4 +60,20 @@ function App() { ); } -export default App; +const reducer = 'message'; +const mapStateToProps = state => ({ + force: state, // force state from reducer + message: state.getIn([reducer, 'message']), + type: state.getIn([reducer, 'type']), + openMessage: state.getIn([reducer, 'openMessage']) +}); + +const mapDispatchToProps = dispatch => ({ + dispatch: dispatch +}); +const AppMapped = connect( + mapStateToProps, + mapDispatchToProps +)(App); + +export default AppMapped; diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js index c1539e0..a9baab8 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js @@ -3,7 +3,7 @@ import { withStyles } from '@material-ui/core/styles'; import PropTypes from 'prop-types'; import { CrudPedido } from './table' import { Paper, Typography } from '@material-ui/core'; -import { etiqueta } from 'ba-components/Odipar/common'; + const styles = ({ root: { flexGrow: 1, @@ -19,9 +19,6 @@ class Pedidos extends Component { {`Pedidos`} -
- {etiqueta("etiq_pedido", 1)} -
diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js index b11881f..d1fd553 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js @@ -19,7 +19,8 @@ import { } from '@material-ui/core'; import { anchorTable, dataApi } from './sampleData'; import FormPedido from './FormPedido'; - +//actions +import { setPedidos, getPedidos } from '../../../../actions/pedido'; const branch = 'crudPedido'; @@ -40,7 +41,25 @@ const styles = ({ }); class CrudPedido extends Component { + constructor (props) { + super(props) + this.state = { + dataReal: [] + }; + + this.props.dispatch(getPedidos()) + .then( res => { + console.log("aqui en el then ps", res) + this.setState({ + dataReal: res + }) + }) + console.log("aqui en el then ps 2", this.props.pedidosLista) + + } + render() { + console.log("render ps") const { classes, fetchData, @@ -56,6 +75,11 @@ class CrudPedido extends Component { messageNotif, title, } = this.props; + + const {dataReal} = this.state; + //console.log("render ps DATA", dataReal) + //console.log("original", dataApi) + return (
closeNotif(branch)} message={messageNotif} /> @@ -63,7 +87,7 @@ class CrudPedido extends Component { ({ dataTable: state.getIn([branch, 'dataTable']), openForm: state.getIn([branch, 'showFrm']), messageNotif: state.getIn([branch, 'notifMsg']), + pedidosLista : state.getIn(['pedido','pedidos']), }); const mapDispatchToProps = dispatch => ({ @@ -122,6 +147,7 @@ const mapDispatchToProps = dispatch => ({ removeRow: bindActionCreators(removeAction, dispatch), editRow: bindActionCreators(editAction, dispatch), closeNotif: bindActionCreators(closeNotifAction, dispatch), + dispatch }); const CrudPedidoMapped = connect( diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js index 2e2b003..e16f7cc 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js @@ -4,10 +4,10 @@ export const anchorTable = [ label: 'Id', initialValue: '', hidden: true, - type: 'texto' }, { name: 'cantidad', label: 'Cantidad', + initialValue: 0, width: 'auto', hidden: false, type: 'texto' @@ -21,28 +21,28 @@ export const anchorTable = [ }, { name: 'origen', label: 'Origen', - initialValue: 'option1', + initialValue: 'Lima', width: 'auto', hidden: false, type: 'texto' }, { name: 'destino', label: 'Destino', - initialValue: 'option1', + initialValue: 'Lima', width: 'auto', hidden: false, type: 'texto' }, { name: 'plazo_entrega', label: 'Plazo de entrega', - initialValue: true, + initialValue: 'aja', width: 'auto', hidden: false, type: 'texto' }, { name: 'nombre', label: 'Cliente', - initialValue: true, + initialValue: null, width: 'auto', hidden: false, type: 'texto' @@ -53,7 +53,8 @@ export const anchorTable = [ width: 'auto', hidden: false, type: 'etiq_pedido' - }, { + }, + { name: 'action', label: 'Action', initialValue: '', @@ -65,8 +66,9 @@ export const dataApi = [ { id: '1', cantidad: 30, - fecha: '24/05/2022 11:28 AM', + origen: 'Arequipa', + fecha: '24/05/2022 11:28 AM', destino: 'Cuzco', plazo_entrega: '24 horas', nombre: 'Juan', diff --git a/front/odiparpack/app/containers/Tables/demos/sampleData.js b/front/odiparpack/app/containers/Tables/demos/sampleData.js index d53d8e2..c783c81 100644 --- a/front/odiparpack/app/containers/Tables/demos/sampleData.js +++ b/front/odiparpack/app/containers/Tables/demos/sampleData.js @@ -9,53 +9,62 @@ export const anchorTable = [ label: 'Text Field', initialValue: null, width: 'auto', - hidden: false + hidden: false, + type:"texto" }, { name: 'email', label: 'Email Field', initialValue: null, width: 'auto', - hidden: false + hidden: false, + type:"texto" }, { name: 'radio', label: 'Radio Option', initialValue: 'option1', width: '80', - hidden: false + hidden: false, + type:"texto" }, { name: 'selection', label: 'Selection', initialValue: 'option1', width: '80', - hidden: false + hidden: false, + type:"texto" }, { name: 'onof', label: 'On/Of Input', initialValue: true, width: '80', - hidden: false + hidden: false, + type:"texto" }, { name: 'checkbox', label: 'Checkbox', initialValue: true, width: '80', - hidden: false + hidden: false, + type:"texto" }, { name: 'textarea', label: 'Text Area', initialValue: 'This is default text', width: 'auto', - hidden: false + hidden: false, + type:"texto" }, { name: 'edited', label: '', initialValue: '', - hidden: true + hidden: true, + type:"texto" }, { name: 'action', label: 'Action', initialValue: '', - hidden: false + hidden: false, + type:"texto" }, ]; diff --git a/front/odiparpack/app/redux/configureStore.js b/front/odiparpack/app/redux/configureStore.js index 49a6b7b..80c84c0 100644 --- a/front/odiparpack/app/redux/configureStore.js +++ b/front/odiparpack/app/redux/configureStore.js @@ -7,6 +7,7 @@ import { fromJS } from 'immutable'; import { routerMiddleware } from 'connected-react-router/immutable'; import createSagaMiddleware from 'redux-saga'; import createReducer from './reducers'; +import thunk from 'redux-thunk'; const sagaMiddleware = createSagaMiddleware(); @@ -14,7 +15,7 @@ export default function configureStore(initialState = {}, history) { // Create the store with two middlewares // 1. sagaMiddleware: Makes redux-sagas work // 2. routerMiddleware: Syncs the location/URL path to the state - const middlewares = [sagaMiddleware, routerMiddleware(history)]; + const middlewares = [thunk,sagaMiddleware, routerMiddleware(history)]; const enhancers = [applyMiddleware(...middlewares)]; @@ -29,11 +30,12 @@ export default function configureStore(initialState = {}, history) { shouldHotReload: false, }) : compose; + /* eslint-enable */ const store = createStore( createReducer(), fromJS(initialState), - composeEnhancers(...enhancers), + composeEnhancers(...enhancers) ); // Extensions diff --git a/front/odiparpack/app/redux/modules/crudTableForm.js b/front/odiparpack/app/redux/modules/crudTableForm.js index d5194c1..29b9813 100644 --- a/front/odiparpack/app/redux/modules/crudTableForm.js +++ b/front/odiparpack/app/redux/modules/crudTableForm.js @@ -24,6 +24,7 @@ const initialItem = (keyTemplate, anchor) => { for (let i = 0; i < rawKey.length; i += 1) { if (rawKey[i] !== 'id') { const itemIndex = anchor.findIndex(a => a.name === rawKey[i]); + if (itemIndex == -1) continue staticKey[rawKey[i]] = anchor[itemIndex].initialValue; } } diff --git a/front/odiparpack/app/redux/modules/message.js b/front/odiparpack/app/redux/modules/message.js new file mode 100644 index 0000000..e02eb08 --- /dev/null +++ b/front/odiparpack/app/redux/modules/message.js @@ -0,0 +1,30 @@ +import { CLOSE_MESSAGE,OPEN_MESSAGE } from 'ba-actions/actionTypes'; + +const initState = { + message: '', + type: '', + openMessage: false +} + +const message = (state = initState, action = {}) => { + + const { type, payload } = action; + + switch (type) { + + case CLOSE_MESSAGE: + return {...initState} + case OPEN_MESSAGE: + return { + ...state, + ...payload, + openMessage: true + } + default: + return state + + } + +} + +export default message; \ No newline at end of file diff --git a/front/odiparpack/app/redux/modules/pedido.js b/front/odiparpack/app/redux/modules/pedido.js new file mode 100644 index 0000000..9101fe4 --- /dev/null +++ b/front/odiparpack/app/redux/modules/pedido.js @@ -0,0 +1,16 @@ +import { LISTA_PEDIDO } from 'ba-actions/actionTypes'; + +const initState = { + pedidos : [] +} + +const pedido = (state = initState, action) => { + switch (action.type) { + case LISTA_PEDIDO: + return { ...state, pedidos: action.payload } + default : + return state + } +} + +export default pedido; \ No newline at end of file diff --git a/front/odiparpack/app/redux/reducers.js b/front/odiparpack/app/redux/reducers.js index 7327c48..e0e2547 100644 --- a/front/odiparpack/app/redux/reducers.js +++ b/front/odiparpack/app/redux/reducers.js @@ -20,6 +20,10 @@ import email from './modules/email'; import calendar from './modules/calendar'; import initval from './modules/initForm'; +//Odipar +import pedido from './modules/pedido'; +import message from './modules/message' + /** * Branching reducers to use one reducer for many components */ @@ -56,6 +60,8 @@ export default function createReducer(injectedReducers) { crudTableForm, crudTbFrmDemo: branchReducer(crudTableForm, 'crudTbFrmDemo'), crudPedido: branchReducer(crudTableForm, 'crudPedido'), + pedido, + message, language: languageProviderReducer, router: connectRouter(history), ...injectedReducers, diff --git a/front/odiparpack/app/utils/odipar/api.js b/front/odiparpack/app/utils/odipar/api.js new file mode 100644 index 0000000..ea5e617 --- /dev/null +++ b/front/odiparpack/app/utils/odipar/api.js @@ -0,0 +1,113 @@ +import Axios from 'axios' +import {apiUrl} from './constants'; +import qs from "query-string"; +import { openSuccessMessage, openErrorMessage } from 'ba-actions/message'; + +export function getHeaders() { + let session = getSession(); + return { + //Authorization: `Token ${(session && session.accessToken) || null}` + } +} + + +export function getSession() { + if (window && window.localStorage) { + return window.localStorage.getObject('session'); + } + + return null; +} + +export function saveSession(value) { + if (window && window.localStorage) { + return window.localStorage.saveObject('session', value); + } + + return null; +} + +export function apiReq(endPoint, data, method, headers, requestOptions = {}) { + return new Promise((res, rej) => { + + headers = { + ...headers + } + if (method === 'get' || method === 'delete') { + data = { + ...requestOptions, + params: data, + paramsSerializer: function (params) { + return qs.stringify(params, { arrayFormat: 'repeat' }) + }, + headers + } + } + + Axios[method](endPoint, data, { headers }).then((result) => { + let { data } = result; + console.log("aca en la promesa ps") + if (data.status === false) { + return rej(data); + } + + return res(data); + }).catch((err) => { + return rej(err); + }); + }) +} + +export function generateUrl(path) { + return apiUrl + path; +} + +export function apiPost(endPoint, data, headers = {}) { + return apiReq(generateUrl(endPoint), data, 'post', headers); +} + +export function apiDelete(endPoint, data, headers = {}) { + return apiReq(generateUrl(endPoint), data, 'delete', headers); +} + +export function apiGet(endPoint, data, headers = {}, requestOptions) { + return apiReq(generateUrl(endPoint), data, 'get', headers, requestOptions); +} + +export function apiPut(endPoint, data, headers = {}) { + return apiReq(generateUrl(endPoint), data, 'put', headers); +} + + +export function addMessageCurry(promise, dispatch, errorMsg = '', successMsg = '', showError = true) { + return new Promise( + (resolve, reject) => { + + promise + .then(response => { + + if (successMsg) { + console.log("mensajitooooo=?????") + dispatch( + openSuccessMessage(successMsg) + ) + } + + resolve(response) + }) + .catch( + err => { + if(showError) { + dispatch( + openErrorMessage(errorMsg || ((err.response && err.response.data.message) || 'Server encountered an error')) + ) + } + + reject(err) + } + ) + + } + ) + +} \ No newline at end of file diff --git a/front/odiparpack/app/utils/odipar/constants.js b/front/odiparpack/app/utils/odipar/constants.js new file mode 100644 index 0000000..73f3521 --- /dev/null +++ b/front/odiparpack/app/utils/odipar/constants.js @@ -0,0 +1,9 @@ +//export const apiUrl = `${config.api}api/v1/`; +export const apiUrl = 'http://localhost:8083/'; + +//mensaje +export function partial(fn, ...presetArgs) { + return function partiallyApplied(...laterArgs) { + return fn(...presetArgs, ...laterArgs); + }; +} \ No newline at end of file diff --git a/front/odiparpack/app/utils/odipar/menu.js b/front/odiparpack/app/utils/odipar/menu.js new file mode 100644 index 0000000..eca2600 --- /dev/null +++ b/front/odiparpack/app/utils/odipar/menu.js @@ -0,0 +1,51 @@ +module.exports = [ + { + key: 'seguimiento', + name: 'Seguimiento', + icon: 'near_me', + link: '/app/dashboard-v2', + child: [ ] + }, + { + key: 'pedidos', + name: 'Pedidos', + icon: 'inventory_2', + link: '/app/pedidos', + child: [ ] + }, + { + key: 'camiones', + name: 'Camiones', + icon: 'local_shipping', + link: '/app/layouts/grid', + child: [ ] + }, + { + key: 'almacenes', + name: 'Almacenes', + icon: 'warehouse', + link: '/app/tables/crud-table', + child: [ ] + }, + { + key: 'red_tramos', + name: 'Red de Tramos', + icon: 'location_on', + link: '/app/forms/reduxform', + child: [ ] + }, + { + key: 'otros', + name: 'Otros parámetros', + icon: 'settings', + link: '/app/ui/icons', + child: [ ] + }, + { + key: 'simulacion', + name: 'Simulación', + icon: 'fast_forward', + link: '/app/pages/calendar', + child: [ ] + } + ]; \ No newline at end of file diff --git a/front/odiparpack/internals/webpack/webpack.base.babel.js b/front/odiparpack/internals/webpack/webpack.base.babel.js index ca26c12..89ff730 100644 --- a/front/odiparpack/internals/webpack/webpack.base.babel.js +++ b/front/odiparpack/internals/webpack/webpack.base.babel.js @@ -197,6 +197,7 @@ module.exports = options => ({ 'ba-api': path.resolve(__dirname, '../../app/api/'), 'ba-images': path.resolve(__dirname, '../../public/images/'), 'ba-vendor': path.resolve(__dirname, '../../node_modules/'), + 'odi-utils': path.resolve(__dirname,'../../app/utils/odipar/') } }, devtool: options.devtool, diff --git a/front/odiparpack/package-lock.json b/front/odiparpack/package-lock.json index bf01861..ff64c1f 100644 --- a/front/odiparpack/package-lock.json +++ b/front/odiparpack/package-lock.json @@ -6069,8 +6069,7 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "decompress-zip": { "version": "0.3.2", @@ -7772,6 +7771,11 @@ } } }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" + }, "finalhandler": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", @@ -13963,6 +13967,17 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, + "query-string": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz", + "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==", + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -15204,6 +15219,11 @@ "symbol-observable": "^1.2.0" } }, + "redux-devtools-extension": { + "version": "2.13.9", + "resolved": "https://registry.npmjs.org/redux-devtools-extension/-/redux-devtools-extension-2.13.9.tgz", + "integrity": "sha512-cNJ8Q/EtjhQaZ71c8I9+BPySIBVEKssbPpskBfsXqb8HJ002A3KRVHfeRzwRo6mGPqsm7XuHTqNSNeS1Khig0A==" + }, "redux-form": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-8.2.0.tgz", @@ -15244,6 +15264,11 @@ "@redux-saga/core": "^1.0.2" } }, + "redux-thunk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", + "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==" + }, "reflect.ownkeys": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", @@ -16596,6 +16621,11 @@ "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", "dev": true }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -16749,6 +16779,11 @@ "stream-to": "~0.2.0" } }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + }, "string-argv": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", diff --git a/front/odiparpack/package.json b/front/odiparpack/package.json index 7e9a59a..480d0a7 100644 --- a/front/odiparpack/package.json +++ b/front/odiparpack/package.json @@ -136,6 +136,7 @@ "minimist": "1.2.0", "mui-datatables": "^2.13.1", "prop-types": "15.7.2", + "query-string": "^7.1.1", "rcolor": "^1.0.1", "react": "16.8.6", "react-anchor-link-smooth-scroll": "^1.0.11", @@ -171,9 +172,11 @@ "recharts": "^1.5.0", "recompose": "^0.28.2", "redux": "4.0.1", + "redux-devtools-extension": "^2.13.9", "redux-form": "8.2.0", "redux-immutable": "4.0.0", "redux-saga": "1.0.2", + "redux-thunk": "^2.4.1", "reselect": "4.0.0", "sanitize.css": "8.0.0", "serve-favicon": "^2.4.5", -- cgit v1.2.3 From 32fb17de8f78317b165b6f269a8bab2d4e852d0d Mon Sep 17 00:00:00 2001 From: gabrhr <73925454+gabrhr@users.noreply.github.com> Date: Mon, 30 May 2022 20:08:04 -0500 Subject: Fix axios and add new MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FIX logica de añadiir (ok) - FIX axios y dispatch fuera de un componente (ok) - Cambiar las notificaciones --- front/odiparpack/app/actions/pedido.js | 22 +++---- front/odiparpack/app/api/notifMessage.js | 8 +-- front/odiparpack/app/api/pedido.js | 18 +++++- front/odiparpack/app/app.js | 6 +- .../app/components/Notification/Notification.js | 69 +++++++++++++++++++--- .../app/components/Tables/CrudTableForm.js | 36 +++++++++-- .../app/components/Tables/tableParts/Form.js | 4 +- .../components/Tables/tableParts/MainTableForm.js | 4 +- .../components/Tables/tableParts/RowReadOnly.js | 17 +++++- .../app/containers/Odipar/Pedidos/Pedidos.js | 42 ++++++++++++- .../containers/Odipar/Pedidos/table/CrudPedido.js | 33 ++++------- .../containers/Odipar/Pedidos/table/sampleData.js | 1 - front/odiparpack/app/redux/configureStore.js | 20 +++++-- .../odiparpack/app/redux/modules/crudTableForm.js | 15 ++++- front/odiparpack/app/utils/odipar/api.js | 20 ++----- front/odiparpack/package-lock.json | 5 ++ front/odiparpack/package.json | 3 +- 17 files changed, 235 insertions(+), 88 deletions(-) diff --git a/front/odiparpack/app/actions/pedido.js b/front/odiparpack/app/actions/pedido.js index 15382fe..f8e95d6 100644 --- a/front/odiparpack/app/actions/pedido.js +++ b/front/odiparpack/app/actions/pedido.js @@ -9,18 +9,12 @@ export const setPedidos = (payload) => ({ payload }); -export const getPedidos = () => { - return dispatch => { - return new Promise( - (resolve, reject) => { - console.log("entreeeeeeeeee") - addMessageCurry(getPedidosAPI(), dispatch, '',"aaaaaaaaa") - .then(pedidos => { - dispatch(setPedidos({pedidos})); - resolve(pedidos) - console.log(pedidos) - }) - } - ) +export const getPedidos = () => async dispatch => { + try{ + const res = await getPedidosAPI(); + dispatch(setPedidos({res})) + return res; + }catch(e){ + console.log(e) } -} \ No newline at end of file +} diff --git a/front/odiparpack/app/api/notifMessage.js b/front/odiparpack/app/api/notifMessage.js index 2d2b48b..bc7a60c 100644 --- a/front/odiparpack/app/api/notifMessage.js +++ b/front/odiparpack/app/api/notifMessage.js @@ -1,10 +1,10 @@ module.exports = { - saved: 'Data has been saved', - updated: 'Data has been updated', - removed: 'Item has been removed', + saved: 'Se ha guardado correctamente', + updated: 'Se ha actualizado correctamente', + removed: 'Se ha eliminado correctamente', posted: 'Your post has been submitted', commented: 'Your comment has been submitted', - discard: 'Action canceled', + discard: 'Cancelado', addCart: 'Item added to cart', checkout: 'Thank you for shopping', sent: 'Email sent', diff --git a/front/odiparpack/app/api/pedido.js b/front/odiparpack/app/api/pedido.js index 7cfb3f7..63d6e2e 100644 --- a/front/odiparpack/app/api/pedido.js +++ b/front/odiparpack/app/api/pedido.js @@ -1,6 +1,18 @@ -import { apiPost, apiGet, apiDelete, apiPut } from "odi-utils/api"; +import axios from 'axios'; +import { apiGet } from '../utils/odipar/api'; //GET APIS -export const getPedidosAPI = () => { - return apiGet('ayuda/') +export const getPedidosAPI = async () => { + return await apiGet(`ayuda/`) +} + +export function getAPi(){ + axios.get( + `http://localhost:8083/ayuda/`, //TODO: check currentTimeStamp + { + headers: { + 'Content-type': 'application/json', + }, + } + ) } \ No newline at end of file diff --git a/front/odiparpack/app/app.js b/front/odiparpack/app/app.js index 6845268..34f6a9f 100644 --- a/front/odiparpack/app/app.js +++ b/front/odiparpack/app/app.js @@ -34,9 +34,13 @@ import { translationMessages } from './i18n'; // Create redux store with history const initialState = {}; -const store = configureStore(initialState, history); +//const store = configureStore(initialState, history); const MOUNT_NODE = document.getElementById('app'); +//New store +import { confStore } from './redux/configureStore'; +const store = confStore() + const render = messages => { ReactDOM.render( diff --git a/front/odiparpack/app/components/Notification/Notification.js b/front/odiparpack/app/components/Notification/Notification.js index 7e73896..fcc53a4 100644 --- a/front/odiparpack/app/components/Notification/Notification.js +++ b/front/odiparpack/app/components/Notification/Notification.js @@ -2,8 +2,13 @@ import React from 'react'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import CloseIcon from '@material-ui/icons/Close'; +import classNames from 'classnames'; +import CheckCircleOutlinedIcon from '@material-ui/icons/CheckCircleOutlined'; +import ErrorOutlineOutlinedIcon from '@material-ui/icons/ErrorOutlineOutlined'; +import InfoOutlinedIcon from '@material-ui/icons/InfoOutlined'; +import ReportProblemOutlinedIcon from '@material-ui/icons/ReportProblemOutlined'; -import { Snackbar, IconButton } from '@material-ui/core'; +import { Snackbar, IconButton, SnackbarContent } from '@material-ui/core'; const styles = theme => ({ close: { @@ -11,6 +16,41 @@ const styles = theme => ({ }, }); +const variantIcon = { + success: CheckCircleOutlinedIcon, + warning: ReportProblemOutlinedIcon, + error: ErrorOutlineOutlinedIcon, + info: InfoOutlinedIcon, +}; + +const styles1 = theme => ({ + success: { + backgroundColor: '#b6f8c4', + }, + error: { + backgroundColor: '#faabab', + }, + info: { + backgroundColor: '#b2e7f5', + }, + warning: { + backgroundColor: '#f5ea9f', + }, + icon: { + fontSize: 20, + color: 'black' + }, + iconVariant: { + opacity: 0.9, + marginRight: theme.spacing(1), + }, + message: { + display: 'flex', + alignItems: 'center', + color: 'black' + }, +}); + class Notification extends React.Component { handleClose = (event, reason) => { if (reason === 'clickaway') { @@ -20,20 +60,30 @@ class Notification extends React.Component { }; render() { - const { classes, message } = this.props; + const { classes, message, variant } = this.props; + const Icon = variantIcon[variant]; return ( this.handleClose()} ContentProps={{ 'aria-describedby': 'message-id', }} - message={message} + anchorOrigin={{ + vertical: 'top', + horizontal: 'right', + }} + + > + + + {message} + + )} action={[ this.handleClose()} > - + , ]} /> + ); } } @@ -56,4 +107,4 @@ Notification.propTypes = { message: PropTypes.string.isRequired, }; -export default withStyles(styles)(Notification); +export default withStyles(styles1)(Notification); diff --git a/front/odiparpack/app/components/Tables/CrudTableForm.js b/front/odiparpack/app/components/Tables/CrudTableForm.js index 219fcd2..0ba5264 100644 --- a/front/odiparpack/app/components/Tables/CrudTableForm.js +++ b/front/odiparpack/app/components/Tables/CrudTableForm.js @@ -5,15 +5,39 @@ import MainTableForm from './tableParts/MainTableForm'; import FloatingPanel from './../Panel/FloatingPanel'; class CrudTableForm extends React.Component { - componentDidMount() { - console.log("en el FORM",this.props.dataInit) - this.props.fetchData(this.props.dataInit, this.props.branch); + + componentDidUpdate(previousProps) { + if (previousProps.dataInit !== this.props.dataInit) { + //console.log("en el FORM",this.props.dataInit) + this.props.fetchData(this.props.dataInit, this.props.branch); + } } sendValues = (values) => { setTimeout(() => { this.props.submit(values, this.props.branch); }, 500); + if (this.props.editingId === this.props.initValues.get('id')) { + this.props.dispatch(this.props.editRowAPI()).then((res) => { + if (res) { + console.log("EDIT RO ", res) + } + }) + } else { + this.props.dispatch(this.props.addNewAPI()).then((res) => { + if (res) { + console.log("ADD NEW FORM ", res) + } + }) + } + + } + + getTitle( ){ + if (this.props.editingId === this.props.initValues.get(this.props.anchor[0].name)) { + return "Editar" + } + return "Añadir nuevo" } render() { @@ -28,12 +52,13 @@ class CrudTableForm extends React.Component { anchor, children, branch, - initValues + initValues, + removeRowAPI } = this.props; return (
- + {children} @@ -46,6 +71,7 @@ class CrudTableForm extends React.Component { editRow={editRow} anchor={anchor} branch={branch} + removeRowAPI={removeRowAPI} />
); diff --git a/front/odiparpack/app/components/Tables/tableParts/Form.js b/front/odiparpack/app/components/Tables/tableParts/Form.js index da66966..66188c7 100644 --- a/front/odiparpack/app/components/Tables/tableParts/Form.js +++ b/front/odiparpack/app/components/Tables/tableParts/Form.js @@ -31,14 +31,14 @@ class Form extends Component {
diff --git a/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js b/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js index 8869212..1437fa8 100644 --- a/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js +++ b/front/odiparpack/app/components/Tables/tableParts/MainTableForm.js @@ -29,7 +29,8 @@ class MainTableForm extends React.Component { editRow, addNew, anchor, - branch + branch, + removeRowAPI } = this.props; const getItems = dataArray => dataArray.map(item => ( editRow(item, branch)} anchor={anchor} branch={branch} + removeRowAPI = {removeRowAPI} /> )); diff --git a/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js b/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js index 2f4a519..d060d02 100644 --- a/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js +++ b/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js @@ -8,6 +8,7 @@ import EditIcon from '@material-ui/icons/BorderColor'; import { etiqueta } from 'ba-components/Odipar/common'; import { TableCell, IconButton, LinearProgress } from '@material-ui/core'; +import { connect } from 'react-redux'; const styles = theme => ({ button: { @@ -23,10 +24,16 @@ class RowReadOnly extends React.Component { item, removeRow, editRow, - branch + branch, + removeRowAPI } = this.props; const eventDel = () => { removeRow(item, branch); + this.props.dispatch(removeRowAPI()).then((res) => { + if (res) { + console.log("REMOVE READ ONLY ", res) + } + }) }; const eventEdit = () => { editRow(item, branch); @@ -86,5 +93,11 @@ RowReadOnly.propTypes = { editRow: PropTypes.func.isRequired, branch: PropTypes.string.isRequired, }; +const mapDispatchToProps = dispatch => ({ + dispatch +}); -export default withStyles(styles)(RowReadOnly); +const RowReadOnlyMapped = connect( + mapDispatchToProps +)(RowReadOnly); +export default withStyles(styles)(RowReadOnlyMapped); diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js index a9baab8..27adce5 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js @@ -3,6 +3,11 @@ import { withStyles } from '@material-ui/core/styles'; import PropTypes from 'prop-types'; import { CrudPedido } from './table' import { Paper, Typography } from '@material-ui/core'; +import { connect } from 'react-redux'; + +// +import { getPedidos } from 'ba-actions/pedido'; +import pedido from '../../../redux/modules/pedido'; const styles = ({ root: { @@ -12,7 +17,25 @@ const styles = ({ }); class Pedidos extends Component { + constructor (props) { + super(props) + this.state = { + dataRealF: [] + }; + this.props.dispatch(getPedidos()).then((res) => { + if (res) { + this.setState({ + dataRealF: res.data, + }); + } + }) + //console.log("Pedido - LUEGO DE THEN ", this.state.dataRealF) + } + + render() { + const {dataRealF} = this.state; + //console.log ("aNTESZSSSS?", pedidosLista) const { classes } = this.props; return (
@@ -21,7 +44,7 @@ class Pedidos extends Component {
- +
@@ -33,4 +56,19 @@ Pedidos.propTypes = { classes: PropTypes.object.isRequired, }; -export default withStyles(styles)(Pedidos); \ No newline at end of file +const reducer = 'pedido' +const mapStateToProps = state => ({ + force: state, // force state from reducer + pedidosLista : state.getIn([reducer]), +}); + +const mapDispatchToProps = dispatch => ({ + dispatch +}); + +const PedidosMapped = connect( + mapStateToProps, + mapDispatchToProps +)(Pedidos); + +export default withStyles(styles)(PedidosMapped); \ No newline at end of file diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js index d1fd553..c7a7a58 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/CrudPedido.js @@ -20,8 +20,7 @@ import { import { anchorTable, dataApi } from './sampleData'; import FormPedido from './FormPedido'; //actions -import { setPedidos, getPedidos } from '../../../../actions/pedido'; - +import { getPedidos } from '../../../../actions/pedido'; const branch = 'crudPedido'; const renderRadioGroup = ({ input, ...rest }) => ( @@ -41,25 +40,9 @@ const styles = ({ }); class CrudPedido extends Component { - constructor (props) { - super(props) - this.state = { - dataReal: [] - }; - - this.props.dispatch(getPedidos()) - .then( res => { - console.log("aqui en el then ps", res) - this.setState({ - dataReal: res - }) - }) - console.log("aqui en el then ps 2", this.props.pedidosLista) - - } render() { - console.log("render ps") + //console.log("render ps") const { classes, fetchData, @@ -74,15 +57,17 @@ class CrudPedido extends Component { closeNotif, messageNotif, title, + dataReal, + dispatch, + editingId } = this.props; - const {dataReal} = this.state; //console.log("render ps DATA", dataReal) //console.log("original", dataApi) return (
- closeNotif(branch)} message={messageNotif} /> + closeNotif(branch)} variant = "success" message={messageNotif} /> {/* Create Your own form, then arrange or custom it as You like */} @@ -136,6 +126,7 @@ const mapStateToProps = state => ({ dataTable: state.getIn([branch, 'dataTable']), openForm: state.getIn([branch, 'showFrm']), messageNotif: state.getIn([branch, 'notifMsg']), + editingId: state.getIn([branch, 'editingId']), pedidosLista : state.getIn(['pedido','pedidos']), }); diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js index e16f7cc..3a7556c 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/sampleData.js @@ -66,7 +66,6 @@ export const dataApi = [ { id: '1', cantidad: 30, - origen: 'Arequipa', fecha: '24/05/2022 11:28 AM', destino: 'Cuzco', diff --git a/front/odiparpack/app/redux/configureStore.js b/front/odiparpack/app/redux/configureStore.js index 80c84c0..767af03 100644 --- a/front/odiparpack/app/redux/configureStore.js +++ b/front/odiparpack/app/redux/configureStore.js @@ -8,14 +8,15 @@ import { routerMiddleware } from 'connected-react-router/immutable'; import createSagaMiddleware from 'redux-saga'; import createReducer from './reducers'; import thunk from 'redux-thunk'; +import { composeWithDevTools } from "redux-devtools-extension"; const sagaMiddleware = createSagaMiddleware(); -export default function configureStore(initialState = {}, history) { +export function configureStore(initialState = {}, history) { // Create the store with two middlewares // 1. sagaMiddleware: Makes redux-sagas work // 2. routerMiddleware: Syncs the location/URL path to the state - const middlewares = [thunk,sagaMiddleware, routerMiddleware(history)]; + const middlewares = [thunk, routerMiddleware(history)]; const enhancers = [applyMiddleware(...middlewares)]; @@ -35,13 +36,13 @@ export default function configureStore(initialState = {}, history) { const store = createStore( createReducer(), fromJS(initialState), - composeEnhancers(...enhancers) + composeWithDevTools(applyMiddleware(thunk)) ); // Extensions - store.runSaga = sagaMiddleware.run; + //store.runSaga = sagaMiddleware.run; store.injectedReducers = {}; // Reducer registry - store.injectedSagas = {}; // Saga registry + //store.injectedSagas = {}; // Saga registry // Make reducers hot reloadable, see http://mxs.is/googmo /* istanbul ignore next */ @@ -53,3 +54,12 @@ export default function configureStore(initialState = {}, history) { return store; } + +export function confStore (){ + const store = createStore( + createReducer(), + composeWithDevTools(applyMiddleware(thunk)) + ); + store.injectedReducers = {}; + return store; +} diff --git a/front/odiparpack/app/redux/modules/crudTableForm.js b/front/odiparpack/app/redux/modules/crudTableForm.js index 29b9813..acf9abd 100644 --- a/front/odiparpack/app/redux/modules/crudTableForm.js +++ b/front/odiparpack/app/redux/modules/crudTableForm.js @@ -31,6 +31,19 @@ const initialItem = (keyTemplate, anchor) => { return Map(staticKey); }; + +const initialItemNew = (anchor) => { + const [...rawKey] = anchor.map((e) => e.name); + const staticKey = {}; + for (let i = 0; i < rawKey.length; i += 1) { + if (rawKey[i] !== 'id') { + staticKey[rawKey[i]] = anchor[i].initialValue; + } + } + + return Map(staticKey); +}; + let editingIndex = 0; const initialImmutableState = fromJS(initialState); @@ -46,7 +59,7 @@ export default function reducer(state = initialImmutableState, action = {}) { case `${branch}/${ADD_NEW}`: return state.withMutations((mutableState) => { const raw = state.get('dataTable').last(); - const initial = initialItem(raw, action.anchor); + const initial = initialItemNew(action.anchor); mutableState.set('formValues', initial); mutableState.set('showFrm', true); }); diff --git a/front/odiparpack/app/utils/odipar/api.js b/front/odiparpack/app/utils/odipar/api.js index ea5e617..50c2beb 100644 --- a/front/odiparpack/app/utils/odipar/api.js +++ b/front/odiparpack/app/utils/odipar/api.js @@ -1,4 +1,4 @@ -import Axios from 'axios' +import axios from 'axios' import {apiUrl} from './constants'; import qs from "query-string"; import { openSuccessMessage, openErrorMessage } from 'ba-actions/message'; @@ -28,8 +28,7 @@ export function saveSession(value) { } export function apiReq(endPoint, data, method, headers, requestOptions = {}) { - return new Promise((res, rej) => { - + //console.log("apiReq - ANTES DE PROMESA") headers = { ...headers } @@ -44,18 +43,7 @@ export function apiReq(endPoint, data, method, headers, requestOptions = {}) { } } - Axios[method](endPoint, data, { headers }).then((result) => { - let { data } = result; - console.log("aca en la promesa ps") - if (data.status === false) { - return rej(data); - } - - return res(data); - }).catch((err) => { - return rej(err); - }); - }) + return axios[method](endPoint, data, { headers }) } export function generateUrl(path) { @@ -87,7 +75,7 @@ export function addMessageCurry(promise, dispatch, errorMsg = '', successMsg = ' .then(response => { if (successMsg) { - console.log("mensajitooooo=?????") + console.log("addMessageCurry -SUCCESS MSG") dispatch( openSuccessMessage(successMsg) ) diff --git a/front/odiparpack/package-lock.json b/front/odiparpack/package-lock.json index ff64c1f..2b4b0e5 100644 --- a/front/odiparpack/package-lock.json +++ b/front/odiparpack/package-lock.json @@ -19244,6 +19244,11 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" }, + "when": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz", + "integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=" + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/front/odiparpack/package.json b/front/odiparpack/package.json index 480d0a7..d2cde1e 100644 --- a/front/odiparpack/package.json +++ b/front/odiparpack/package.json @@ -182,7 +182,8 @@ "serve-favicon": "^2.4.5", "slick-carousel": "^1.8.1", "warning": "4.0.2", - "whatwg-fetch": "2.0.4" + "whatwg-fetch": "2.0.4", + "when": "^3.7.8" }, "devDependencies": { "@babel/cli": "7.4.3", -- cgit v1.2.3 From cbc7d7f7494508fda69e88c76702a878bebca0e2 Mon Sep 17 00:00:00 2001 From: gabrhr <73925454+gabrhr@users.noreply.github.com> Date: Tue, 31 May 2022 03:58:23 -0500 Subject: Add Almacenes - todo de almacenes, redux, pagina - mejoro form de pedido (etiqueta estado, RUC) #TODO - Ver combobox con API --- front/odiparpack/app/actions/actionTypes.js | 6 +- front/odiparpack/app/actions/almacen.js | 19 +++ front/odiparpack/app/actions/pedido.js | 1 - front/odiparpack/app/api/almacen.js | 6 + front/odiparpack/app/api/themePalette.js | 17 ++- .../app/components/Forms/ReduxFormMUI.js | 7 + front/odiparpack/app/components/Odipar/common.js | 11 +- .../app/components/Tables/CrudTableForm.js | 5 +- front/odiparpack/app/containers/App/Application.js | 4 +- .../app/containers/Odipar/Almacen/Almacenes.js | 66 +++++++++ .../containers/Odipar/Almacen/table/CrudAlmacen.js | 148 +++++++++++++++++++++ .../containers/Odipar/Almacen/table/FormAlmacen.js | 124 +++++++++++++++++ .../containers/Odipar/Almacen/table/dataAlmacen.js | 75 +++++++++++ .../app/containers/Odipar/Almacen/table/index.js | 1 + .../app/containers/Odipar/Pedidos/Pedidos.js | 3 +- .../containers/Odipar/Pedidos/table/FormPedido.js | 30 ++++- .../containers/Odipar/Pedidos/table/sampleData.js | 5 +- front/odiparpack/app/containers/pageListAsync.js | 8 ++ front/odiparpack/app/redux/modules/almacen.js | 16 +++ front/odiparpack/app/redux/reducers.js | 3 + .../odiparpack/app/styles/layout/_typography.scss | 4 +- front/odiparpack/app/utils/odipar/menu.js | 2 +- 22 files changed, 539 insertions(+), 22 deletions(-) create mode 100644 front/odiparpack/app/actions/almacen.js create mode 100644 front/odiparpack/app/api/almacen.js create mode 100644 front/odiparpack/app/containers/Odipar/Almacen/Almacenes.js create mode 100644 front/odiparpack/app/containers/Odipar/Almacen/table/CrudAlmacen.js create mode 100644 front/odiparpack/app/containers/Odipar/Almacen/table/FormAlmacen.js create mode 100644 front/odiparpack/app/containers/Odipar/Almacen/table/dataAlmacen.js create mode 100644 front/odiparpack/app/containers/Odipar/Almacen/table/index.js create mode 100644 front/odiparpack/app/redux/modules/almacen.js diff --git a/front/odiparpack/app/actions/actionTypes.js b/front/odiparpack/app/actions/actionTypes.js index 5aaa47a..8fd305f 100644 --- a/front/odiparpack/app/actions/actionTypes.js +++ b/front/odiparpack/app/actions/actionTypes.js @@ -87,5 +87,7 @@ export const CLOSE_NOTIF = 'CLOSE_NOTIF'; //Odi Message export const CLOSE_MESSAGE = 'CLOSE_MESSAGE'; export const OPEN_MESSAGE = 'OPEN_MESSAGE'; - -export const LISTA_PEDIDO = 'SAVE_PEDIDO'; \ No newline at end of file +//Odi Pedido +export const LISTA_PEDIDO = 'LISTA_PEDIDO'; +//Odi Almacen +export const LISTA_ALMACEN = 'LISTA_ALMACEN'; \ No newline at end of file diff --git a/front/odiparpack/app/actions/almacen.js b/front/odiparpack/app/actions/almacen.js new file mode 100644 index 0000000..b5694cd --- /dev/null +++ b/front/odiparpack/app/actions/almacen.js @@ -0,0 +1,19 @@ +import { + getAlmacenesAPI +} from 'ba-api/almacen'; +import * as types from './actionTypes' + +export const setAlmacenes = (payload) => ({ + type: types.LISTA_ALMACEN, + payload +}); + +export const getAlmacenes = () => async dispatch => { + try{ + const res = await getAlmacenesAPI(); + dispatch(setAlmacenes({res})) + return res; + }catch(e){ + console.log(e) + } +} \ No newline at end of file diff --git a/front/odiparpack/app/actions/pedido.js b/front/odiparpack/app/actions/pedido.js index f8e95d6..8a011f0 100644 --- a/front/odiparpack/app/actions/pedido.js +++ b/front/odiparpack/app/actions/pedido.js @@ -1,7 +1,6 @@ import { getPedidosAPI } from 'ba-api/pedido'; -import { addMessageCurry } from 'odi-utils/api'; import * as types from './actionTypes' export const setPedidos = (payload) => ({ diff --git a/front/odiparpack/app/api/almacen.js b/front/odiparpack/app/api/almacen.js new file mode 100644 index 0000000..dcc629b --- /dev/null +++ b/front/odiparpack/app/api/almacen.js @@ -0,0 +1,6 @@ +import { apiGet } from 'odi-utils/api'; + +//GET APIS +export const getAlmacenesAPI = async () => { + return await apiGet(`ayuda/almacen`) +} \ No newline at end of file diff --git a/front/odiparpack/app/api/themePalette.js b/front/odiparpack/app/api/themePalette.js index c7971b3..eaec9e7 100644 --- a/front/odiparpack/app/api/themePalette.js +++ b/front/odiparpack/app/api/themePalette.js @@ -200,7 +200,22 @@ const themePalette = (color) => ({ secondary: palette[color].palette.secondary, }, typography: { - useNextVariants: true, + h5: { + fontSize: 18, + fontWeight: 600, + color: "#202A75", + margin: "5px 0 10px", + }, + h4: { + fontSize: 25, + fontWeight: 500, + margin: "10px 0 5px", + }, + h6: { + fontSize: 17, + fontWeight: 420, + margin: "0px 0 0px", + }, }, }); diff --git a/front/odiparpack/app/components/Forms/ReduxFormMUI.js b/front/odiparpack/app/components/Forms/ReduxFormMUI.js index e3f5c33..285543f 100644 --- a/front/odiparpack/app/components/Forms/ReduxFormMUI.js +++ b/front/odiparpack/app/components/Forms/ReduxFormMUI.js @@ -6,6 +6,8 @@ import Checkbox from '@material-ui/core/Checkbox'; import Switch from '@material-ui/core/Switch'; import { DateTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'; +import { etiqueta } from '../Odipar/common'; +import { Chip } from '@material-ui/core'; import MomentUtils from '@date-io/moment'; import moment from 'moment' import 'moment/locale/es' @@ -88,3 +90,8 @@ export const DatePickerRedux = ({ input, label, readonly}) => ( /> ); + +export const EstadoRedux = ({input, label}) => { + const value = input.value? input.value : 0 + return etiqueta("etiq_pedido", value) +} diff --git a/front/odiparpack/app/components/Odipar/common.js b/front/odiparpack/app/components/Odipar/common.js index 39ba76a..b6fb49d 100644 --- a/front/odiparpack/app/components/Odipar/common.js +++ b/front/odiparpack/app/components/Odipar/common.js @@ -3,7 +3,7 @@ import { Chip } from "@material-ui/core"; import { pedido, camion, bloqueo, almacen } from './EtiquetaData' import Brightness1Icon from '@material-ui/icons/Brightness1'; -const etiquetaStyle = color => ({ +export const etiquetaStyle = color => ({ fontWeight: 'bold', color: '#FFF', backgroundColor: color @@ -27,10 +27,11 @@ export function etiqueta(tipo , estado) { // eslint-disable-line color = bloqueo[Object.keys(bloqueo)[estado]].color break; case 'etiq_alma': - console.log("entre?") - text = almacen[Object.keys(almacen)[estado]].text - color = almacen[Object.keys(almacen)[estado]].color - icon = almacen[Object.keys(almacen)[estado]].icon + let {estadoNum} = 2 + estado === false? estadoNum = 0 : estadoNum = 1 + text = almacen[Object.keys(almacen)[estadoNum]].text + color = almacen[Object.keys(almacen)[estadoNum]].color + icon = almacen[Object.keys(almacen)[estadoNum]].icon break; } diff --git a/front/odiparpack/app/components/Tables/CrudTableForm.js b/front/odiparpack/app/components/Tables/CrudTableForm.js index 0ba5264..017a3fc 100644 --- a/front/odiparpack/app/components/Tables/CrudTableForm.js +++ b/front/odiparpack/app/components/Tables/CrudTableForm.js @@ -5,10 +5,13 @@ import MainTableForm from './tableParts/MainTableForm'; import FloatingPanel from './../Panel/FloatingPanel'; class CrudTableForm extends React.Component { + /* componentDidMount(){ + this.props.fetchData(this.props.dataInit, this.props.branch); + } */ componentDidUpdate(previousProps) { if (previousProps.dataInit !== this.props.dataInit) { - //console.log("en el FORM",this.props.dataInit) + //console.log("en el FORM",this.props.dataInit)} this.props.fetchData(this.props.dataInit, this.props.branch); } } diff --git a/front/odiparpack/app/containers/App/Application.js b/front/odiparpack/app/containers/App/Application.js index 21c7a76..8a30720 100644 --- a/front/odiparpack/app/containers/App/Application.js +++ b/front/odiparpack/app/containers/App/Application.js @@ -26,7 +26,8 @@ import { Photos, Error, Settings, HelpSupport, MapMarker, MapDirection, SearchMap, TrafficIndicator, StreetViewMap, NotFound, - Pedidos + Pedidos, + Almacenes } from '../pageListAsync'; function Application(props) { @@ -39,6 +40,7 @@ function Application(props) { {/* Pedidos */} + { /* Layout */ } diff --git a/front/odiparpack/app/containers/Odipar/Almacen/Almacenes.js b/front/odiparpack/app/containers/Odipar/Almacen/Almacenes.js new file mode 100644 index 0000000..31a3039 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Almacen/Almacenes.js @@ -0,0 +1,66 @@ +import React, { Component } from 'react'; +import { withStyles } from '@material-ui/core/styles'; +import PropTypes from 'prop-types'; +import { CrudAlmacen } from './table' +import { Paper, Typography } from '@material-ui/core'; +import { connect } from 'react-redux'; + +//actions +import { getAlmacenes } from '../../../actions/almacen'; + +const styles = ({ + root: { + flexGrow: 1, + marginTop: 30, + } + }); + +class Almacenes extends Component { + constructor (props) { + super(props) + this.state = { + dataRealF: [] + }; + this.props.dispatch(getAlmacenes()).then((res) => { + if (res) { + this.setState({ + dataRealF: res.data, + }); + } + }) + //console.log("Pedido - LUEGO DE THEN ", this.state.dataRealF) + } + + + render() { + const {dataRealF} = this.state; + //console.log ("aNTESZSSSS?") + const { classes } = this.props; + return ( +
+ + {`Almacenes`} + +
+ + + +
+
+ ); + } +} + +Almacenes.propTypes = { + classes: PropTypes.object.isRequired, +}; + +const mapDispatchToProps = dispatch => ({ + dispatch +}); + +const AlmacenesMapped = connect( + mapDispatchToProps +)(Almacenes); + +export default withStyles(styles)(AlmacenesMapped); \ No newline at end of file diff --git a/front/odiparpack/app/containers/Odipar/Almacen/table/CrudAlmacen.js b/front/odiparpack/app/containers/Odipar/Almacen/table/CrudAlmacen.js new file mode 100644 index 0000000..887d603 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Almacen/table/CrudAlmacen.js @@ -0,0 +1,148 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { withStyles } from '@material-ui/core/styles'; +import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; +import { + fetchAction, + addAction, + closeAction, + submitAction, + removeAction, + editAction, + closeNotifAction +} from 'ba-actions/CrudTbFrmActions'; +import { CrudTableForm, Notification } from 'ba-components'; +import { + Paper, + RadioGroup, +} from '@material-ui/core'; +import { anchorTable, dataApi } from './dataAlmacen'; +import FormAlmacen from './FormAlmacen'; +//actions +import { getPedidos } from '../../../../actions/pedido'; +const branch = 'crudAlmacen'; + +const renderRadioGroup = ({ input, ...rest }) => ( + input.onChange(value)} + /> +); + + +const styles = ({ + root: { + flexGrow: 1, + } +}); + +class CrudAlmacen extends Component { + render() { + //console.log("render ps") + const { + classes, + fetchData, + addNew, + closeForm, + submit, + removeRow, + editRow, + dataTable, + openForm, + initValues, + closeNotif, + messageNotif, + title, + dataReal, + dispatch, + editingId + } = this.props; + + //console.log("render ps DATA", dataReal) + //console.log("original", dataApi) + //console.log("original", anchorTable) + + return ( +
+ closeNotif(branch)} variant = "success" message={messageNotif} /> + + + {/* Create Your own form, then arrange or custom it as You like */} + + {/* No need create button or submit, because that already made in this component */} + + +
+ ); + } +} + +renderRadioGroup.propTypes = { + input: PropTypes.object.isRequired, +}; + +CrudAlmacen.propTypes = { + dataTable: PropTypes.object.isRequired, + openForm: PropTypes.bool.isRequired, + classes: PropTypes.object.isRequired, + fetchData: PropTypes.func.isRequired, + addNew: PropTypes.func.isRequired, + closeForm: PropTypes.func.isRequired, + submit: PropTypes.func.isRequired, + removeRow: PropTypes.func.isRequired, + editRow: PropTypes.func.isRequired, + initValues: PropTypes.object.isRequired, + closeNotif: PropTypes.func.isRequired, + messageNotif: PropTypes.string.isRequired, + title: PropTypes.string.isRequired, +}; + + +const mapStateToProps = state => ({ + force: state, // force state from reducer + initValues: state.getIn([branch, 'formValues']), + dataTable: state.getIn([branch, 'dataTable']), + openForm: state.getIn([branch, 'showFrm']), + messageNotif: state.getIn([branch, 'notifMsg']), + editingId: state.getIn([branch, 'editingId']), +}); + +const mapDispatchToProps = dispatch => ({ + fetchData: bindActionCreators(fetchAction, dispatch), + addNew: bindActionCreators(addAction, dispatch), + closeForm: bindActionCreators(closeAction, dispatch), + submit: bindActionCreators(submitAction, dispatch), + removeRow: bindActionCreators(removeAction, dispatch), + editRow: bindActionCreators(editAction, dispatch), + closeNotif: bindActionCreators(closeNotifAction, dispatch), + dispatch +}); + +const CrudAlmacenMapped = connect( + mapStateToProps, + mapDispatchToProps +)(CrudAlmacen); + +export default withStyles(styles)(CrudAlmacenMapped); diff --git a/front/odiparpack/app/containers/Odipar/Almacen/table/FormAlmacen.js b/front/odiparpack/app/containers/Odipar/Almacen/table/FormAlmacen.js new file mode 100644 index 0000000..05cfda7 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Almacen/table/FormAlmacen.js @@ -0,0 +1,124 @@ +import React, { Component } from 'react'; +import { withStyles } from '@material-ui/core/styles'; +import PropTypes from 'prop-types'; +import { Field } from 'redux-form/immutable'; +import {required, integer} from 'ba-api/validation' +import { + SelectRedux, + TextFieldRedux +} from 'ba-components/Forms/ReduxFormMUI'; +import { + MenuItem, + InputLabel, + FormControl, + } from '@material-ui/core'; + +const styles = ({ + root: { + flexGrow: 1, + }, + field: { + width: '100%', + marginBottom: 20 + }, + fieldBasic: { + width: '100%', + marginBottom: 20, + marginTop: 10 + }, + inlineWrap: { + display: 'flex', + flexDirection: 'row' + } + }); + + +class FormAlmacen extends Component { + saveRef = ref => { + this.ref = ref; + return this.ref; + }; + + render() { + const { classes } = this.props; + const trueBool = true; + return ( + <> +
+ + Tipo de Almacen + + Principal + Pequeño + + +
+
+ + Region + + Costa + Sierra + Selva + + +
+
+ + Provincia + + Lima + Arequipa + Cuzco + + +
+
+ + +
+ + ); + } +} + +FormAlmacen.propTypes = { + classes: PropTypes.object.isRequired, + }; + +export default withStyles(styles)(FormAlmacen); \ No newline at end of file diff --git a/front/odiparpack/app/containers/Odipar/Almacen/table/dataAlmacen.js b/front/odiparpack/app/containers/Odipar/Almacen/table/dataAlmacen.js new file mode 100644 index 0000000..685df27 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Almacen/table/dataAlmacen.js @@ -0,0 +1,75 @@ +export const anchorTable = [ + { + name: 'id', + label: 'Identificador', + initialValue: '', + hidden: false, + type: 'texto' + }, { + name: 'esPrincipal', + label: 'Tipo de Almacen', + initialValue: true, + width: 'auto', + hidden: false, + type: 'etiq_alma' + }, { + name: 'region', + label: 'Region', + initialValue: 'Costa', + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'provincia', + label: 'Provincia', + initialValue: 'Lima', + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'latitud', + label: 'Latitud', + initialValue: 0, + width: 'auto', + hidden: false, + type: 'texto' + }, { + name: 'longitud', + label: 'Longitud', + initialValue: 0, + width: 'auto', + hidden: false, + type: 'texto' + }, + { + name: 'action', + label: 'Acciones', + initialValue: '', + hidden: false + }, +]; + +export const dataApi = [ + { + id: '1', + esPrincipal: false, + region: 'Costa', + provincia: 'Arequipa', + latitud: 24, + longitud: 50, + estado: 0, + correo: 'mail@boss.com', + dni: '123456' + }, { + id: '2', + esPrincipal: true, + region: 'Costa', + provincia: 'Lima', + latitud: 24, + longitud: 50, + nombre: 'Juan', + estado: 1, + correo: 'mail@boss.com', + dni: '123456' + } +]; diff --git a/front/odiparpack/app/containers/Odipar/Almacen/table/index.js b/front/odiparpack/app/containers/Odipar/Almacen/table/index.js new file mode 100644 index 0000000..38d22f6 --- /dev/null +++ b/front/odiparpack/app/containers/Odipar/Almacen/table/index.js @@ -0,0 +1 @@ +export CrudAlmacen from "./CrudAlmacen"; \ No newline at end of file diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js index 27adce5..f617458 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/Pedidos.js @@ -5,9 +5,8 @@ import { CrudPedido } from './table' import { Paper, Typography } from '@material-ui/core'; import { connect } from 'react-redux'; -// +//actions import { getPedidos } from 'ba-actions/pedido'; -import pedido from '../../../redux/modules/pedido'; const styles = ({ root: { diff --git a/front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js b/front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js index 40bc801..548f47b 100644 --- a/front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js +++ b/front/odiparpack/app/containers/Odipar/Pedidos/table/FormPedido.js @@ -6,12 +6,14 @@ import {required, integer} from 'ba-api/validation' import { SelectRedux, TextFieldRedux, - DatePickerRedux + DatePickerRedux, + EstadoRedux } from 'ba-components/Forms/ReduxFormMUI'; import { MenuItem, InputLabel, FormControl, + Typography, } from '@material-ui/core'; const styles = ({ @@ -53,6 +55,9 @@ class FormPedido extends Component { const trueBool = true; return ( <> + + {`Datos de Pedido`} +
+
+ Estado + + +
+ + {`Datos de Entrega`} +
- Lugar de Origen + Origen
+ + + {`Datos de Cliente`} + +
import('./Odipar/Almacen/Almacenes'), + loading: Loading, +}); + + + // Dashboard export const DashboardV1 = Loadable({ loader: () => import('./Dashboard/Dashboard'), diff --git a/front/odiparpack/app/redux/modules/almacen.js b/front/odiparpack/app/redux/modules/almacen.js new file mode 100644 index 0000000..bb9b7d6 --- /dev/null +++ b/front/odiparpack/app/redux/modules/almacen.js @@ -0,0 +1,16 @@ +import { LISTA_ALMACEN } from 'ba-actions/actionTypes'; + +const initState = { + almacenes : [] +} + +const almacen = (state = initState, action) => { + switch (action.type) { + case LISTA_ALMACEN: + return { ...state, pedidos: action.payload } + default : + return state + } +} + +export default almacen; \ No newline at end of file diff --git a/front/odiparpack/app/redux/reducers.js b/front/odiparpack/app/redux/reducers.js index e0e2547..0c2e9b8 100644 --- a/front/odiparpack/app/redux/reducers.js +++ b/front/odiparpack/app/redux/reducers.js @@ -23,6 +23,7 @@ import initval from './modules/initForm'; //Odipar import pedido from './modules/pedido'; import message from './modules/message' +import almacen from './modules/almacen'; /** * Branching reducers to use one reducer for many components @@ -60,7 +61,9 @@ export default function createReducer(injectedReducers) { crudTableForm, crudTbFrmDemo: branchReducer(crudTableForm, 'crudTbFrmDemo'), crudPedido: branchReducer(crudTableForm, 'crudPedido'), + crudAlmacen: branchReducer(crudTableForm, 'crudAlmacen'), pedido, + almacen, message, language: languageProviderReducer, router: connectRouter(history), diff --git a/front/odiparpack/app/styles/layout/_typography.scss b/front/odiparpack/app/styles/layout/_typography.scss index 49a10c6..247921b 100644 --- a/front/odiparpack/app/styles/layout/_typography.scss +++ b/front/odiparpack/app/styles/layout/_typography.scss @@ -13,14 +13,14 @@ h3, h4, h6 { font-family: $heading-font-family; - font-size: modular-scale(1); + font-size: modular-scale(0.5); line-height: $heading-line-height; margin: 0 0 $small-spacing; } h5 { font-family: $heading-font-family; - font-size: modular-scale(1); + font-size: 1; line-height: $base-line-height; font-weight: 600; color: #202A75; diff --git a/front/odiparpack/app/utils/odipar/menu.js b/front/odiparpack/app/utils/odipar/menu.js index eca2600..1b280b8 100644 --- a/front/odiparpack/app/utils/odipar/menu.js +++ b/front/odiparpack/app/utils/odipar/menu.js @@ -24,7 +24,7 @@ module.exports = [ key: 'almacenes', name: 'Almacenes', icon: 'warehouse', - link: '/app/tables/crud-table', + link: '/app/almacenes', child: [ ] }, { -- cgit v1.2.3 From 31fed364e12655eac62c01b00a6af7bcd4c49d2a Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 10:17:46 -0500 Subject: Update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2489cb0..379ec44 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ hs_err_pid* replay_pid* # JS -node_modules \ No newline at end of file +node_modules +package_lock.json -- cgit v1.2.3 From 8de97e6433aedec8390c9f080b1b40fffbf036bc Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 10:18:45 -0500 Subject: Update .gitignore - Ignore package-lock.json --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 379ec44..65c4e60 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,4 @@ replay_pid* # JS node_modules -package_lock.json +package-lock.json -- cgit v1.2.3 From 975a540ad6ef828d2b4e8f02afc3c2e0e8477b6e Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 12:01:40 -0500 Subject: Init back/aco-mdvrptw (algoritmo en Java) --- .gitignore | 4 ++++ back/aco-mdvrptw/pom.xml | 16 ++++++++++++++++ back/aco-mdvrptw/src/main/java/org/example/Main.java | 7 +++++++ 3 files changed, 27 insertions(+) create mode 100644 back/aco-mdvrptw/pom.xml create mode 100644 back/aco-mdvrptw/src/main/java/org/example/Main.java diff --git a/.gitignore b/.gitignore index 65c4e60..ada321e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,10 @@ hs_err_pid* replay_pid* +## IntelliJ IDEA +.idea +.run + # JS node_modules package-lock.json diff --git a/back/aco-mdvrptw/pom.xml b/back/aco-mdvrptw/pom.xml new file mode 100644 index 0000000..29293bc --- /dev/null +++ b/back/aco-mdvrptw/pom.xml @@ -0,0 +1,16 @@ + + + 4.0.0 + + org.example + aco-mdvrptw + 1.0-SNAPSHOT + + + 17 + 17 + + + \ No newline at end of file diff --git a/back/aco-mdvrptw/src/main/java/org/example/Main.java b/back/aco-mdvrptw/src/main/java/org/example/Main.java new file mode 100644 index 0000000..407f157 --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/org/example/Main.java @@ -0,0 +1,7 @@ +package org.example; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file -- cgit v1.2.3 From 8ce8fd4f156181f0221079d8b93fb339a82135a4 Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 13:29:00 -0500 Subject: Run ACO-VRP (OS dependant, needs ~/.odiparpack) Python to Java translation proved very difficult. For now only call python from Java. No more Java motto "Write once, run everywhere". --- .../src/main/java/com/odiparpack/acovrp/Ant.java | 33 ++++++++++++++++++ .../src/main/java/com/odiparpack/acovrp/Main.java | 19 ++++++++++ .../odiparpack/acovrp/MultipleAntColonySystem.java | 4 +++ .../java/com/odiparpack/acovrp/VrptwGraph.java | 4 +++ .../src/main/java/org/example/Main.java | 40 +++++++++++++++++++++- 5 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java create mode 100644 back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java new file mode 100644 index 0000000..f422f31 --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Ant.java @@ -0,0 +1,33 @@ +package com.odiparpack.acovrp; + +import java.util.ArrayList; + +public class Ant { + // graph + public int current_index; + public double vehicle_load; + public double vehicle_travel_time; + ArrayList travel_path; + ArrayList index_to_visit; + double total_travel_distance; + + public Ant() { + travel_path = new ArrayList<>(); + index_to_visit = new ArrayList<>(); + } + + public static void main(String[] args) { + int i = 0; + Ant a = new Ant(); + + for (i = 0; i < 100; i++) { + a.travel_path.add(100 - i); + } + + for (i = 0; i < 100; i++) { + System.out.format("%d\n", a.travel_path.get(i)); + } + System.out.println(a.travel_path); + System.out.println(a); + } +} diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java new file mode 100644 index 0000000..33320bc --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/Main.java @@ -0,0 +1,19 @@ +package com.odiparpack.acovrp; + +public class Main { + public static void basic_aco() { + + } + + public static void vrptw_aco_figure() { + + } + + public static void example1() { + + } + + public static void main(String[] args) { + example1(); + } +} diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java new file mode 100644 index 0000000..8ece5aa --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/MultipleAntColonySystem.java @@ -0,0 +1,4 @@ +package com.odiparpack.acovrp; + +public class MultipleAntColonySystem { +} diff --git a/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java new file mode 100644 index 0000000..9ee546b --- /dev/null +++ b/back/aco-mdvrptw/src/main/java/com/odiparpack/acovrp/VrptwGraph.java @@ -0,0 +1,4 @@ +package com.odiparpack.acovrp; + +public class VrptwGraph { +} diff --git a/back/aco-mdvrptw/src/main/java/org/example/Main.java b/back/aco-mdvrptw/src/main/java/org/example/Main.java index 407f157..ce5a91a 100644 --- a/back/aco-mdvrptw/src/main/java/org/example/Main.java +++ b/back/aco-mdvrptw/src/main/java/org/example/Main.java @@ -1,7 +1,45 @@ package org.example; +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; + public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + String command = "pwd && date && ls ~"; + command = "~/.odiparpack"; + try { + System.out.println( + System.getProperty("os.name") + "\n" + + System.getProperty("user.name") + ); + ProcessBuilder pb + = new ProcessBuilder("sh", "-c", command); + pb.directory( + new File(System.getProperty("user.home")) + ); + Process process = pb.start(); + + StringBuilder output = new StringBuilder(); + BufferedReader reader + = new BufferedReader(new InputStreamReader( + process.getInputStream() + )); + String line; + while ((line = reader.readLine()) != null) { + output.append(line + '\n'); + } + int exitVal = process.waitFor(); + if (exitVal == 0) { + System.out.println("The output is:"); + System.out.println(output); + //System.exit(0); + } + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } } } \ No newline at end of file -- cgit v1.2.3 From 0d238caafe9b58559ca65c036b354d9aa33ba151 Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 14:02:20 -0500 Subject: Make mvnw executable. Specify database odiparback/src/main/resources/application.properties --- back/odiparback/mvnw | 0 .../src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java | 1 - back/odiparback/src/main/resources/application.properties | 5 ++++- 3 files changed, 4 insertions(+), 2 deletions(-) mode change 100644 => 100755 back/odiparback/mvnw delete mode 100644 back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java diff --git a/back/odiparback/mvnw b/back/odiparback/mvnw old mode 100644 new mode 100755 diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java deleted file mode 100644 index 7898192..0000000 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/demo/services/aaa.java +++ /dev/null @@ -1 +0,0 @@ -a diff --git a/back/odiparback/src/main/resources/application.properties b/back/odiparback/src/main/resources/application.properties index 8b13789..bdbd503 100644 --- a/back/odiparback/src/main/resources/application.properties +++ b/back/odiparback/src/main/resources/application.properties @@ -1 +1,4 @@ - +spring.datasource.url=jdbc:mysql://tokumori.xyz:3306/ +spring.datasource.dbname=odiparback +spring.datasource.username=gabs +spring.datasource.password=odiparfront -- cgit v1.2.3 From 4fef941b7f221943ea654cd7c0b3c452b562f09c Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 21:31:54 -0500 Subject: Remove ODP_ prefix from DAO implementations --- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/AveriaDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/CamionDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/ClienteDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/PTGDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/PedidoDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/RegionDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/RutaDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoAveriaDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoCamionDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoRutaDaoImp.java | 2 +- .../src/main/java/pe/edu/pucp/odiparback/dao/imp/UsuarioDaoImp.java | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java index 575d38a..c1967b5 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java @@ -23,7 +23,7 @@ public class AlmacenDaoImp implements AlmacenDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Almacen"; + String query = "SELECT * FROM almacen"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AveriaDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AveriaDaoImp.java index 1bf1882..745a0c2 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AveriaDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AveriaDaoImp.java @@ -23,7 +23,7 @@ public class AveriaDaoImp implements AveriaDao{ public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Averia"; + String query = "SELECT * FROM averia"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/CamionDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/CamionDaoImp.java index 4c97808..00d723d 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/CamionDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/CamionDaoImp.java @@ -23,7 +23,7 @@ public class CamionDaoImp implements CamionDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Camion"; + String query = "SELECT * FROM camion"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/ClienteDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/ClienteDaoImp.java index 2a9ae44..54b8d92 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/ClienteDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/ClienteDaoImp.java @@ -23,7 +23,7 @@ public class ClienteDaoImp implements ClienteDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Cliente"; + String query = "SELECT * FROM cliente"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PTGDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PTGDaoImp.java index ac076cf..37d18df 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PTGDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PTGDaoImp.java @@ -23,7 +23,7 @@ public class PTGDaoImp implements PTGDao{ public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_PTG"; + String query = "SELECT * FROM ptg"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PedidoDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PedidoDaoImp.java index 3ebc387..943a085 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PedidoDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/PedidoDaoImp.java @@ -23,7 +23,7 @@ public class PedidoDaoImp implements PedidoDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Pedido"; + String query = "SELECT * FROM pedido"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RegionDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RegionDaoImp.java index 15788d4..f5ca8ef 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RegionDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RegionDaoImp.java @@ -23,7 +23,7 @@ public class RegionDaoImp implements RegionDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Region"; + String query = "SELECT * FROM region"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RutaDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RutaDaoImp.java index 0e491b7..de8ed6c 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RutaDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/RutaDaoImp.java @@ -23,7 +23,7 @@ public class RutaDaoImp implements RutaDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Ruta"; + String query = "SELECT * FROM ruta"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoAveriaDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoAveriaDaoImp.java index f2980cf..0248800 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoAveriaDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoAveriaDaoImp.java @@ -23,7 +23,7 @@ public class TipoAveriaDaoImp implements TipoAveriaDao{ public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_TipoAveria"; + String query = "SELECT * FROM tipoAveria"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoCamionDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoCamionDaoImp.java index 0889570..9758a3b 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoCamionDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TipoCamionDaoImp.java @@ -23,7 +23,7 @@ public class TipoCamionDaoImp implements TipoCamionDao{ public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_TipoCamion"; + String query = "SELECT * FROM tipoCamion"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoDaoImp.java index 717dcf2..abd275d 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoDaoImp.java @@ -23,7 +23,7 @@ public class TramoDaoImp implements TramoDao{ public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Tramo"; + String query = "SELECT * FROM tramo"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoRutaDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoRutaDaoImp.java index 1808c61..7f5f7dd 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoRutaDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/TramoRutaDaoImp.java @@ -23,7 +23,7 @@ public class TramoRutaDaoImp implements TramoRutaDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_TramoRuta"; + String query = "SELECT * FROM tramoRuta"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/UsuarioDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/UsuarioDaoImp.java index c0e6ef1..9ed2f86 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/UsuarioDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/UsuarioDaoImp.java @@ -23,7 +23,7 @@ public class UsuarioDaoImp implements UsuarioDao{ public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM ODP_Usuario"; + String query = "SELECT * FROM usuario"; resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ -- cgit v1.2.3 From 5ec150126e38f592aeeaf49731eb45cced4f308c Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Tue, 31 May 2022 23:07:51 -0500 Subject: Adjust models to fit DataBase Remove prefix ODP_ Fix id field names Add some missing attributes here and there --- .../pe/edu/pucp/odiparback/models/Almacen.java | 18 +++++++++--------- .../java/pe/edu/pucp/odiparback/models/Averia.java | 10 +++++----- .../java/pe/edu/pucp/odiparback/models/Camion.java | 8 ++++---- .../pe/edu/pucp/odiparback/models/Cliente.java | 8 ++++---- .../java/pe/edu/pucp/odiparback/models/PTG.java | 21 ++++++++++----------- .../java/pe/edu/pucp/odiparback/models/Pedido.java | 22 +++++++++++----------- .../java/pe/edu/pucp/odiparback/models/Region.java | 4 ++-- .../java/pe/edu/pucp/odiparback/models/Rol.java | 4 ++-- .../java/pe/edu/pucp/odiparback/models/Ruta.java | 22 +++++++++------------- .../pe/edu/pucp/odiparback/models/TipoAveria.java | 6 +++--- .../pe/edu/pucp/odiparback/models/TipoCamion.java | 8 ++++---- .../java/pe/edu/pucp/odiparback/models/Tramo.java | 10 +++++----- .../pe/edu/pucp/odiparback/models/TramoRuta.java | 14 ++++++++------ .../pe/edu/pucp/odiparback/models/Usuario.java | 10 +++++++--- 14 files changed, 83 insertions(+), 82 deletions(-) diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java index ab8e989..dd5a815 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java @@ -28,22 +28,22 @@ import lombok.Setter; public class Almacen { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idAlmacen", updatable = false, nullable = false) - private int idAlmacen; + @Column(name = "id", updatable = false, nullable = false) + private int id; - @Column(name = "cuidad") - private String cuidad; //nombre del almacen = nombre cuidad + @Column(name = "ciudad") + private String ciudad; //nombre del almacen = nombre cuidad - @Column(name = "posicionX") - private int posicionX; + @Column(name = "latitud") + private double latitud; - @Column(name = "posicionY") - private int posicionY; + @Column(name = "longitud") + private double longitud; @Column(name = "esPrincipal") private boolean esPrincipal; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idRegion") + @JoinColumn(name = "region_fk") private Region region; } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Averia.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Averia.java index 69d69c3..dae9a24 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Averia.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Averia.java @@ -30,20 +30,20 @@ import lombok.Setter; public class Averia { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idAveria", updatable = false, nullable = false) - private int idAveria; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "descripcion") - private String nombre; + private String descripcion; @Column(name = "fechaRegistro") private Date fechaRegistro; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idCamion") + @JoinColumn(name = "camion_fk") private Camion camion; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idTipoAveria") + @JoinColumn(name = "tipoAveria_fk") private TipoAveria tipoAveria; } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Camion.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Camion.java index 123ce79..834e2d1 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Camion.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Camion.java @@ -28,20 +28,20 @@ import lombok.Setter; public class Camion { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idCamion", updatable = false, nullable = false) - private int idCamion; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "placa") private String placa; @Column(name = "kilometraje") - private Double kilometraje; + private double kilometraje; @Column(name = "estado") private int estado = 0; //0: @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idTipoCamion") + @JoinColumn(name = "tipoCamion_fk") private TipoCamion tipoCamion; } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Cliente.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Cliente.java index bea5d13..acb4213 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Cliente.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Cliente.java @@ -25,14 +25,14 @@ import lombok.Setter; public class Cliente { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idCliente", updatable = false, nullable = false) - private int idCliente; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "nombreCompleto") - private String nombreCompleto; + private String nombreCompleto; // Razon Social @Column(name = "dni") - private int dni; + private int dni; // RUC @Column(name = "correo") private String correo; diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/PTG.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/PTG.java index 2a21379..edc4194 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/PTG.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/PTG.java @@ -2,12 +2,7 @@ package pe.edu.pucp.odiparback.models; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import javax.persistence.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -19,7 +14,7 @@ import lombok.Setter; @Entity @Table(name = "ptg") -@SQLDelete(sql = "UPDATE ptg SET activo = 0 WHERE id = ?") +@SQLDelete(sql = "UPDATE PTG SET activo = 0 WHERE id = ?") @Where(clause = "activo = 1") @NoArgsConstructor @AllArgsConstructor @@ -29,12 +24,16 @@ public class PTG { //Plan de transporte Generado @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idPTG", updatable = false, nullable = false) + @Column(name = "id", updatable = false, nullable = false) private int idPTG; - @Column(name = "fechaGenerada") - private Date fechaGenerada; + @Column(name = "fechaGenerado") + private Date fechaGenerado; @Column(name = "esSimulacion") - private boolean esSimulacion; + private boolean esSimulacion; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "usuario_fk") + private Usuario usuario_fk; // Usuario que genera } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java index 616aea4..38cd5a7 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java @@ -34,33 +34,33 @@ import lombok.Setter; public class Pedido { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idPedido", updatable = false, nullable = false) - private int idPedido; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "cantidad") private int cantidad; @Column(name = "estado") - private int estado; //0: pendiente + private int estado; //0: pendiente - @Column(name = "codigo") - private int codigo; + @Column(name = "codigoPedido") + private int codigoPedido; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idAlmacen") + @JoinColumn(name = "almacen_fk") private Almacen almacen; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idCliente") + @JoinColumn(name = "cliente_fk") private Cliente cliente; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idUsuario") - private Usuario usuarioRegistro; //Usuario que registra + @JoinColumn(name = "usuario_fk") + private Usuario usuarioRegistro; //Usuario que registra @Temporal(TemporalType.TIMESTAMP) @Column(columnDefinition = "DATETIME", nullable = false) - protected Date fechaRegistro = new Date(); + protected Date fechaPedido = new Date(); @Temporal(TemporalType.TIMESTAMP) @Column(columnDefinition = "DATETIME", nullable = false) @@ -73,7 +73,7 @@ public class Pedido { @PrePersist private void onCreate(){ - fechaRegistro=fechaModificacion=addHoursToJavaUtilDate(new Date(), -5); + fechaPedido=fechaPedido=addHoursToJavaUtilDate(new Date(), -5); } public Date addHoursToJavaUtilDate(Date date, int hours) { diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Region.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Region.java index 1341317..b0d4625 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Region.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Region.java @@ -25,8 +25,8 @@ import lombok.Setter; public class Region { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idRegion", updatable = false, nullable = false) - private int idRegion; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "nombre") private String nombre; diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Rol.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Rol.java index a3bc5b5..0be1521 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Rol.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Rol.java @@ -25,8 +25,8 @@ import lombok.Setter; public class Rol { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idRol", updatable = false, nullable = false) - private int idRol; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "nombre") private String nombre; diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Ruta.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Ruta.java index b1a9368..2bc8ce0 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Ruta.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Ruta.java @@ -33,28 +33,24 @@ import lombok.Setter; public class Ruta { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idRuta", updatable = false, nullable = false) - private int idRuta; - - @Column(name = "nombre") - private String nombre; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "fechaInicio") private Date fechaInicio; - @Column(name = "fechaFinEst") - private Date fechaFinEst; - - - @Column(name = "fechaFinReal") - private Date fechaFinReal; + @Column(name = "fechaFin") + private Date fechaFin; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) - @JoinColumn(name = "idTramoRuta") + @JoinColumn(name = "id") private List tramoRutas; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idCamion") + @JoinColumn(name = "camion_fk") private Camion camion; + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "PTG_fk") + private PTG ptg; } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoAveria.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoAveria.java index 92156fd..84488eb 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoAveria.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoAveria.java @@ -27,12 +27,12 @@ import lombok.Setter; public class TipoAveria { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idTipoAveria", updatable = false, nullable = false) - private int idTipoAveria; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "nombre") private String nombre; @Column(name = "duracion") - private Date duracion; + private int duracion; } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoCamion.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoCamion.java index 608a089..f8aab31 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoCamion.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TipoCamion.java @@ -25,13 +25,13 @@ import lombok.Setter; public class TipoCamion { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idTipoCamion", updatable = false, nullable = false) - private int idTipoCamion; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "nombre") private String nombre; //Tipo A, B o C - @Column(name = "velocidad") - private Double velocidad; + @Column(name = "capacidad") + private int capacidad; } \ No newline at end of file diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Tramo.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Tramo.java index 1a615d0..4f1ea69 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Tramo.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Tramo.java @@ -29,20 +29,20 @@ public class Tramo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "idTramo", updatable = false, nullable = false) - private int idTramo; + private int id; @Column(name = "distancia") private double distancia; - @Column(name = "estado") - private boolean estado; + @Column(name = "estaBloqueado") + private boolean estaBloqueado; // estado @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idAlmacen") + @JoinColumn(name = "almacen1_fk") private Almacen origen; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idAlmacen") + @JoinColumn(name = "almacen2_fk") private Almacen destino; } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TramoRuta.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TramoRuta.java index 7c55588..a2d9241 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TramoRuta.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/TramoRuta.java @@ -21,8 +21,8 @@ import lombok.NoArgsConstructor; import lombok.Setter; @Entity -@Table(name = "tramoRuta") -@SQLDelete(sql = "UPDATE tramoRuta SET activo = 0 WHERE id = ?") +@Table(name = "tramo_ruta") +@SQLDelete(sql = "UPDATE tramo_ruta SET activo = 0 WHERE id = ?") @Where(clause = "activo = 1") @NoArgsConstructor @AllArgsConstructor @@ -30,11 +30,11 @@ import lombok.Setter; public class TramoRuta { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idTramoRuta", updatable = false, nullable = false) - private int idTramoRuta; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "orden") - private int orden; // idk + private int orden; // idk -> Rpta: # de orden en la ruta @Column(name = "paquetesEntregar") private int paquetesEntregar; @@ -52,6 +52,8 @@ public class TramoRuta { private Date horaLlegadaReal; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idTramo") + @JoinColumn(name = "tramo_fk") private Tramo tramo; + + // ruta_fk } diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Usuario.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Usuario.java index b7902ba..9920c12 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Usuario.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Usuario.java @@ -28,8 +28,8 @@ import lombok.Setter; public class Usuario { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idUsuario", updatable = false, nullable = false) - private int idUsuario; + @Column(name = "id", updatable = false, nullable = false) + private int id; @Column(name = "usuario") private String usuario; @@ -50,6 +50,10 @@ public class Usuario { private String correo; @ManyToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "idRol") + @JoinColumn(name = "creador_fk") + private Usuario creador; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "rol_fk") private Rol rol; } -- cgit v1.2.3 From bb4aaab339b0cbc15af38e6218c9e594d8b7804e Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Wed, 1 Jun 2022 00:49:43 -0500 Subject: Small changes to models. Add sql view and dump --- .../pe/edu/pucp/odiparback/models/Almacen.java | 10 +- .../java/pe/edu/pucp/odiparback/models/Pedido.java | 2 +- back/sql/some_views_and_selects.sql | 47 ++++ ...ables+sampledata_mini-noactivefieldyet.dump.sql | 290 +++++++++++++++++++++ 4 files changed, 346 insertions(+), 3 deletions(-) create mode 100644 back/sql/some_views_and_selects.sql create mode 100644 back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java index dd5a815..121b711 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Almacen.java @@ -31,8 +31,14 @@ public class Almacen { @Column(name = "id", updatable = false, nullable = false) private int id; - @Column(name = "ciudad") - private String ciudad; //nombre del almacen = nombre cuidad + @Column(name = "ubigeo") + private String ubigeo; + + @Column(name = "departamento") + private String departamento; + + @Column(name = "provincia") + private String provincia; @Column(name = "latitud") private double latitud; diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java index 38cd5a7..4df158b 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/models/Pedido.java @@ -44,7 +44,7 @@ public class Pedido { private int estado; //0: pendiente @Column(name = "codigoPedido") - private int codigoPedido; + private String codigoPedido; // URL @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "almacen_fk") diff --git a/back/sql/some_views_and_selects.sql b/back/sql/some_views_and_selects.sql new file mode 100644 index 0000000..e5306e3 --- /dev/null +++ b/back/sql/some_views_and_selects.sql @@ -0,0 +1,47 @@ +-- v_almacen +select a.ubigeo, a.departamento, a.provincia, a.latitud, a.longitud, + a.esPrincipal, r.nombre AS region + from almacen a join region r on a.region_fk = r.id; + +-- v_camion +select c.id, c.placa, c.kilometraje, c.estado, + tc.nombre AS 'tipo', tc.capacidad + from camion c join tipoCamion tc on c.tipoCamion_fk = tc.id; + +-- v_pedido +select cli.nombreCompleto AS cliente, cli.dni AS RUC, + alm.ubigeo, alm.provincia, + ped.cantidad, ped.fechaPedido, ped.plazoEntrega, ped.estado, + ped.codigoPedido AS URL_pedido, + usu.usuario AS 'registrado por' + from pedido ped join cliente cli on ped.cliente_fk = cli.id + inner join usuario usu on ped.usuario_fk = usu.id + inner join almacen alm on ped.almacen_fk = alm.id; + +-- v_tramo +select t.id as 'tramo', t.distancia, t.estaBloqueado, + a1.id, a1.provincia, a2.id, a2.provincia + from tramo t inner join almacen a1 on t.almacen1_fk = a1.id + inner join almacen a2 on t.almacen2_fk = a2.id + order by a1.id; + +-- v_usuario +select u.usuario, u.nombre, u.apellido, u.dni, u.correo, + u2.nombre AS 'registered by', r.nombre AS rol + from usuario u left join usuario u2 on u.creador_fk = u2.id + inner join rol r on u.rol_fk = r.id; + +-- PTG (lista de rutas) + +-- "Select de ruta": Listado de tramos de la ruta con id=1 +select t_r.orden, r.fechaInicio, r.fechaFin, + a1.provincia, a2.provincia, t.distancia, + c.placa, t_r.paquetesEntregar + from ruta r inner join tramo_ruta t_r on r.id = t_r.ruta_fk + inner join tramo t on t.id = t_r.ruta_fk + inner join almacen a1 on t.almacen1_fk = a1.id + inner join almacen a2 on t.almacen2_fk = a2.id + + inner join camion c on r.camion_fk = c.id + where r.id = 1 + order by t_r.orden; diff --git a/back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql b/back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql new file mode 100644 index 0000000..11c9a2d --- /dev/null +++ b/back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql @@ -0,0 +1,290 @@ +-- Adminer 4.7.9 MySQL dump + +SET NAMES utf8; +SET time_zone = '+00:00'; +SET foreign_key_checks = 0; +SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; + +SET NAMES utf8mb4; + +DROP TABLE IF EXISTS `almacen`; +CREATE TABLE `almacen` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ubigeo` varchar(10) NOT NULL, + `departamento` varchar(100) NOT NULL, + `provincia` varchar(100) NOT NULL, + `latitud` double NOT NULL, + `longitud` double NOT NULL, + `esPrincipal` int(11) NOT NULL, + `region_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `region_fk` (`region_fk`), + CONSTRAINT `almacen_ibfk_1` FOREIGN KEY (`region_fk`) REFERENCES `region` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `almacen`; +INSERT INTO `almacen` (`id`, `ubigeo`, `departamento`, `provincia`, `latitud`, `longitud`, `esPrincipal`, `region_fk`) VALUES +(1, '10201', 'Amazonas', 'Bagua', -5.63906152, -78.53166353, 0, 3), +(2, '40101', 'Arequipa', 'Arequipa', -16.39881421, -71.537019649, 1, 1), +(3, '50901', 'Ayacucho', 'Sucre', -14.01125749, -73.83884087, 0, 2), +(4, '130101', 'La Libertad', 'Trujillo', -8.11176389, -79.02868652, 1, 1), +(5, '150101', 'Lima', 'Lima', -12.04591952, -77.03049615, 1, 1), +(6, '230101', 'Tacna', 'Tacna', -18.0137008, -70.2507964, 0, 1); + +DROP TABLE IF EXISTS `averia`; +CREATE TABLE `averia` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `descripcion` varchar(1000) NOT NULL, + `fechaRegistro` datetime NOT NULL, + `camion_fk` int(11) NOT NULL, + `tipoAveria_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `camion_fk` (`camion_fk`), + KEY `tipoAveria_fk` (`tipoAveria_fk`), + CONSTRAINT `averia_ibfk_1` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`), + CONSTRAINT `averia_ibfk_2` FOREIGN KEY (`tipoAveria_fk`) REFERENCES `tipoAveria` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `averia`; + +DROP TABLE IF EXISTS `camion`; +CREATE TABLE `camion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `placa` varchar(10) NOT NULL, + `kilometraje` double NOT NULL, + `estado` int(11) NOT NULL, + `tipoCamion_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `tipoCamion_fk` (`tipoCamion_fk`), + CONSTRAINT `camion_ibfk_1` FOREIGN KEY (`tipoCamion_fk`) REFERENCES `tipoCamion` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `camion`; +INSERT INTO `camion` (`id`, `placa`, `kilometraje`, `estado`, `tipoCamion_fk`) VALUES +(1, 'ETALLIC', 69420, 1, 1); + +DROP TABLE IF EXISTS `cliente`; +CREATE TABLE `cliente` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombreCompleto` varchar(100) NOT NULL, + `dni` varchar(10) NOT NULL, + `correo` varchar(100) NOT NULL, + `telefono` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `cliente`; +INSERT INTO `cliente` (`id`, `nombreCompleto`, `dni`, `correo`, `telefono`) VALUES +(1, 'EmpresaAAA', '1234567890', 'contacto@empresaAAA.com', '123456789'), +(2, 'EmpresaBBB', '1234567890', 'contacto@empresaBBB.com', '123456789'); + +DROP TABLE IF EXISTS `pedido`; +CREATE TABLE `pedido` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `fechaPedido` datetime NOT NULL, + `cantidad` int(11) NOT NULL, + `plazoEntrega` int(11) NOT NULL, + `estado` int(11) NOT NULL, + `codigoPedido` varchar(100) DEFAULT NULL, + `almacen_fk` int(11) NOT NULL, + `cliente_fk` int(11) NOT NULL, + `usuario_fk` int(11) NOT NULL, + `PTG_fk` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `usuario_fk` (`usuario_fk`), + KEY `PTG_fk` (`PTG_fk`), + KEY `cliente_fk` (`cliente_fk`), + KEY `almacen_fk` (`almacen_fk`), + CONSTRAINT `pedido_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`), + CONSTRAINT `pedido_ibfk_2` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), + CONSTRAINT `pedido_ibfk_3` FOREIGN KEY (`cliente_fk`) REFERENCES `cliente` (`id`), + CONSTRAINT `pedido_ibfk_4` FOREIGN KEY (`almacen_fk`) REFERENCES `almacen` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `pedido`; +INSERT INTO `pedido` (`id`, `fechaPedido`, `cantidad`, `plazoEntrega`, `estado`, `codigoPedido`, `almacen_fk`, `cliente_fk`, `usuario_fk`, `PTG_fk`) VALUES +(2, '2022-01-01 00:00:00', 10, 1, 0, '20220101_000001', 3, 1, 4, NULL); + +DROP TABLE IF EXISTS `PTG`; +CREATE TABLE `PTG` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `fechaGenerado` datetime NOT NULL, + `esSimulacion` int(11) NOT NULL, + `usuario_fk` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `usuario_fk` (`usuario_fk`), + CONSTRAINT `PTG_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `PTG`; +INSERT INTO `PTG` (`id`, `fechaGenerado`, `esSimulacion`, `usuario_fk`) VALUES +(1, '2022-06-01 05:10:47', 1, 1); + +DROP TABLE IF EXISTS `region`; +CREATE TABLE `region` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombre` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `region`; +INSERT INTO `region` (`id`, `nombre`) VALUES +(1, 'costa'), +(2, 'sierra'), +(3, 'selva'); + +DROP TABLE IF EXISTS `rol`; +CREATE TABLE `rol` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombre` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `rol`; +INSERT INTO `rol` (`id`, `nombre`) VALUES +(1, 'superuser'); + +DROP TABLE IF EXISTS `ruta`; +CREATE TABLE `ruta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `fechaInicio` datetime NOT NULL, + `fechaFin` datetime NOT NULL, + `PTG_fk` int(11) NOT NULL, + `camion_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `PTG_fk` (`PTG_fk`), + KEY `camion_fk` (`camion_fk`), + CONSTRAINT `ruta_ibfk_1` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), + CONSTRAINT `ruta_ibfk_2` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `ruta`; +INSERT INTO `ruta` (`id`, `fechaInicio`, `fechaFin`, `PTG_fk`, `camion_fk`) VALUES +(1, '2022-01-01 00:00:00', '2022-01-02 00:00:00', 1, 1); + +DROP TABLE IF EXISTS `tipoAveria`; +CREATE TABLE `tipoAveria` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombre` int(11) NOT NULL, + `duracion` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `tipoAveria`; + +DROP TABLE IF EXISTS `tipoCamion`; +CREATE TABLE `tipoCamion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `nombre` varchar(100) NOT NULL, + `capacidad` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `tipoCamion`; +INSERT INTO `tipoCamion` (`id`, `nombre`, `capacidad`) VALUES +(1, 'tipoA', 90), +(2, 'tipoB', 45), +(3, 'tipoC', 30); + +DROP TABLE IF EXISTS `tramo`; +CREATE TABLE `tramo` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `distancia` double NOT NULL, + `estaBloqueado` int(11) NOT NULL, + `almacen1_fk` int(11) NOT NULL, + `almacen2_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `almacen1_fk` (`almacen1_fk`), + KEY `almacen2_fk` (`almacen2_fk`), + CONSTRAINT `tramo_ibfk_1` FOREIGN KEY (`almacen1_fk`) REFERENCES `almacen` (`id`), + CONSTRAINT `tramo_ibfk_2` FOREIGN KEY (`almacen2_fk`) REFERENCES `almacen` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `tramo`; +INSERT INTO `tramo` (`id`, `distancia`, `estaBloqueado`, `almacen1_fk`, `almacen2_fk`) VALUES +(1, 10, 0, 2, 5), +(2, 10, 0, 3, 5), +(3, 10, 0, 4, 5), +(4, 10, 0, 6, 5), +(5, 20, 0, 1, 4), +(6, 20, 0, 4, 1), +(7, 10, 0, 5, 2), +(8, 10, 0, 5, 3), +(9, 10, 0, 5, 4), +(10, 10, 0, 5, 6); + +DROP TABLE IF EXISTS `tramo_ruta`; +CREATE TABLE `tramo_ruta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `orden` int(11) NOT NULL, + `horaSalidaEst` datetime NOT NULL, + `horaLlegadaEst` datetime NOT NULL, + `horaSalidaReal` datetime DEFAULT NULL, + `horaLlegadaReal` datetime DEFAULT NULL, + `paquetesEntregar` int(11) NOT NULL, + `ruta_fk` int(11) NOT NULL, + `tramo_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `ruta_fk` (`ruta_fk`), + KEY `tramo_fk` (`tramo_fk`), + CONSTRAINT `tramo_ruta_ibfk_1` FOREIGN KEY (`ruta_fk`) REFERENCES `ruta` (`id`), + CONSTRAINT `tramo_ruta_ibfk_2` FOREIGN KEY (`tramo_fk`) REFERENCES `tramo` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `tramo_ruta`; +INSERT INTO `tramo_ruta` (`id`, `orden`, `horaSalidaEst`, `horaLlegadaEst`, `horaSalidaReal`, `horaLlegadaReal`, `paquetesEntregar`, `ruta_fk`, `tramo_fk`) VALUES +(1, 1, '2022-01-01 10:00:00', '2022-01-01 15:00:00', NULL, NULL, 0, 1, 9), +(2, 2, '2022-01-01 16:00:00', '2022-01-01 21:00:00', NULL, NULL, 10, 1, 6); + +DROP TABLE IF EXISTS `usuario`; +CREATE TABLE `usuario` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `usuario` varchar(100) NOT NULL, + `clave` varchar(100) NOT NULL, + `nombre` varchar(100) NOT NULL, + `apellido` varchar(100) NOT NULL, + `dni` varchar(10) NOT NULL, + `correo` varchar(100) NOT NULL, + `creador_fk` int(11) DEFAULT NULL, + `rol_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `creador_fk` (`creador_fk`), + KEY `rol_fk` (`rol_fk`), + CONSTRAINT `usuario_ibfk_2` FOREIGN KEY (`creador_fk`) REFERENCES `usuario` (`id`), + CONSTRAINT `usuario_ibfk_3` FOREIGN KEY (`rol_fk`) REFERENCES `usuario` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +TRUNCATE `usuario`; +INSERT INTO `usuario` (`id`, `usuario`, `clave`, `nombre`, `apellido`, `dni`, `correo`, `creador_fk`, `rol_fk`) VALUES +(1, 'gabs', '*6AB7931FB2D104A478932D23AF4C7700D1A0C61A', 'Gabriela', 'Hernandez', '12345678', 'gabs@pucp.edu.pe', NULL, 1), +(4, 'mitsuo', '*D279131EA232308E083B3EA192B74A0C15EA8701', 'Mitsuo', 'Tokumori', '12345678', 'mitsuo@pucp.edu.pe', 1, 1); + +DROP VIEW IF EXISTS `v_almacen`; +CREATE TABLE `v_almacen` (`ubigeo` varchar(10), `departamento` varchar(100), `provincia` varchar(100), `latitud` double, `longitud` double, `esPrincipal` int(11), `region` varchar(100)); + + +DROP VIEW IF EXISTS `v_camion`; +CREATE TABLE `v_camion` (`id` int(11), `placa` varchar(10), `kilometraje` double, `estado` int(11), `tipo` varchar(100), `capacidad` int(11)); + + +DROP VIEW IF EXISTS `v_pedido`; +CREATE TABLE `v_pedido` (`cliente` varchar(100), `RUC` varchar(10), `ubigeo` varchar(10), `provincia` varchar(100), `cantidad` int(11), `fechaPedido` datetime, `plazoEntrega` int(11), `estado` int(11), `URL_pedido` varchar(100), `registrado por` varchar(100)); + + +DROP VIEW IF EXISTS `v_usuario`; +CREATE TABLE `v_usuario` (`usuario` varchar(100), `nombre` varchar(100), `apellido` varchar(100), `dni` varchar(10), `correo` varchar(100), `registered by` varchar(100), `rol` varchar(100)); + + +DROP TABLE IF EXISTS `v_almacen`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_almacen` AS select `a`.`ubigeo` AS `ubigeo`,`a`.`departamento` AS `departamento`,`a`.`provincia` AS `provincia`,`a`.`latitud` AS `latitud`,`a`.`longitud` AS `longitud`,`a`.`esPrincipal` AS `esPrincipal`,`r`.`nombre` AS `region` from (`almacen` `a` join `region` `r` on(`a`.`region_fk` = `r`.`id`)); + +DROP TABLE IF EXISTS `v_camion`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_camion` AS select `c`.`id` AS `id`,`c`.`placa` AS `placa`,`c`.`kilometraje` AS `kilometraje`,`c`.`estado` AS `estado`,`tc`.`nombre` AS `tipo`,`tc`.`capacidad` AS `capacidad` from (`camion` `c` join `tipoCamion` `tc` on(`c`.`tipoCamion_fk` = `tc`.`id`)); + +DROP TABLE IF EXISTS `v_pedido`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_pedido` AS select `cli`.`nombreCompleto` AS `cliente`,`cli`.`dni` AS `RUC`,`alm`.`ubigeo` AS `ubigeo`,`alm`.`provincia` AS `provincia`,`ped`.`cantidad` AS `cantidad`,`ped`.`fechaPedido` AS `fechaPedido`,`ped`.`plazoEntrega` AS `plazoEntrega`,`ped`.`estado` AS `estado`,`ped`.`codigoPedido` AS `URL_pedido`,`usu`.`usuario` AS `registrado por` from (((`pedido` `ped` join `cliente` `cli` on(`ped`.`cliente_fk` = `cli`.`id`)) join `usuario` `usu` on(`ped`.`usuario_fk` = `usu`.`id`)) join `almacen` `alm` on(`ped`.`almacen_fk` = `alm`.`id`)); + +DROP TABLE IF EXISTS `v_usuario`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_usuario` AS select `u`.`usuario` AS `usuario`,`u`.`nombre` AS `nombre`,`u`.`apellido` AS `apellido`,`u`.`dni` AS `dni`,`u`.`correo` AS `correo`,`u2`.`nombre` AS `registered by`,`r`.`nombre` AS `rol` from ((`usuario` `u` left join `usuario` `u2` on(`u`.`creador_fk` = `u2`.`id`)) join `rol` `r` on(`u`.`rol_fk` = `r`.`id`)); + +-- 2022-06-01 05:35:28 -- cgit v1.2.3 From 6c1e5ccf4147471c49fa6b62d53a73d6e04c7b63 Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Wed, 1 Jun 2022 01:55:10 -0500 Subject: Add "activo" field to all DB tables --- back/sql/20220401dump.sampledata.sql | 85 ++++++ back/sql/20220401dump.tables+views.sql | 245 +++++++++++++++++ ...ables+sampledata_mini-noactivefieldyet.dump.sql | 290 --------------------- 3 files changed, 330 insertions(+), 290 deletions(-) create mode 100644 back/sql/20220401dump.sampledata.sql create mode 100644 back/sql/20220401dump.tables+views.sql delete mode 100644 back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql diff --git a/back/sql/20220401dump.sampledata.sql b/back/sql/20220401dump.sampledata.sql new file mode 100644 index 0000000..5042e32 --- /dev/null +++ b/back/sql/20220401dump.sampledata.sql @@ -0,0 +1,85 @@ +-- Adminer 4.7.9 MySQL dump + +SET NAMES utf8; +SET time_zone = '+00:00'; +SET foreign_key_checks = 0; +SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; + +SET NAMES utf8mb4; + +TRUNCATE `almacen`; +INSERT INTO `almacen` (`id`, `activo`, `ubigeo`, `departamento`, `provincia`, `latitud`, `longitud`, `esPrincipal`, `region_fk`) VALUES +(1, 1, '10201', 'Amazonas', 'Bagua', -5.63906152, -78.53166353, 0, 3), +(2, 1, '40101', 'Arequipa', 'Arequipa', -16.39881421, -71.537019649, 1, 1), +(3, 1, '50901', 'Ayacucho', 'Sucre', -14.01125749, -73.83884087, 0, 2), +(4, 1, '130101', 'La Libertad', 'Trujillo', -8.11176389, -79.02868652, 1, 1), +(5, 1, '150101', 'Lima', 'Lima', -12.04591952, -77.03049615, 1, 1), +(6, 1, '230101', 'Tacna', 'Tacna', -18.0137008, -70.2507964, 0, 1); + +TRUNCATE `averia`; + +TRUNCATE `camion`; +INSERT INTO `camion` (`id`, `activo`, `placa`, `kilometraje`, `estado`, `tipoCamion_fk`) VALUES +(1, 1, 'ETALLIC', 69420, 1, 1); + +TRUNCATE `cliente`; +INSERT INTO `cliente` (`id`, `activo`, `nombreCompleto`, `dni`, `correo`, `telefono`) VALUES +(1, 1, 'EmpresaAAA', '1234567890', 'contacto@empresaAAA.com', '123456789'), +(2, 1, 'EmpresaBBB', '1234567890', 'contacto@empresaBBB.com', '123456789'); + +TRUNCATE `pedido`; +INSERT INTO `pedido` (`id`, `activo`, `fechaPedido`, `cantidad`, `plazoEntrega`, `estado`, `codigoPedido`, `almacen_fk`, `cliente_fk`, `usuario_fk`, `PTG_fk`) VALUES +(2, 1, '2022-01-01 00:00:00', 10, 1, 0, '20220101_000001', 3, 1, 4, NULL); + +TRUNCATE `PTG`; +INSERT INTO `PTG` (`id`, `activo`, `fechaGenerado`, `esSimulacion`, `usuario_fk`) VALUES +(1, 1, '2022-06-01 05:10:47', 1, 1); + +TRUNCATE `region`; +INSERT INTO `region` (`id`, `activo`, `nombre`) VALUES +(1, 1, 'costa'), +(2, 1, 'sierra'), +(3, 1, 'selva'); + +TRUNCATE `rol`; +INSERT INTO `rol` (`id`, `activo`, `nombre`) VALUES +(1, 1, 'superuser'); + +TRUNCATE `ruta`; +INSERT INTO `ruta` (`id`, `activo`, `fechaInicio`, `fechaFin`, `PTG_fk`, `camion_fk`) VALUES +(1, 1, '2022-01-01 00:00:00', '2022-01-02 00:00:00', 1, 1); + +TRUNCATE `tipoAveria`; + +TRUNCATE `tipoCamion`; +INSERT INTO `tipoCamion` (`id`, `activo`, `nombre`, `capacidad`) VALUES +(1, 1, 'tipoA', 90), +(2, 1, 'tipoB', 45), +(3, 1, 'tipoC', 30); + +TRUNCATE `tramo`; +INSERT INTO `tramo` (`id`, `activo`, `distancia`, `estaBloqueado`, `almacen1_fk`, `almacen2_fk`) VALUES +(1, 1, 10, 0, 2, 5), +(2, 1, 10, 0, 3, 5), +(3, 1, 10, 0, 4, 5), +(4, 1, 10, 0, 6, 5), +(5, 1, 20, 0, 1, 4), +(6, 1, 20, 0, 4, 1), +(7, 1, 10, 0, 5, 2), +(8, 1, 10, 0, 5, 3), +(9, 1, 10, 0, 5, 4), +(10, 1, 10, 0, 5, 6); + +TRUNCATE `tramo_ruta`; +INSERT INTO `tramo_ruta` (`id`, `activo`, `orden`, `horaSalidaEst`, `horaLlegadaEst`, `horaSalidaReal`, `horaLlegadaReal`, `paquetesEntregar`, `ruta_fk`, `tramo_fk`) VALUES +(1, 1, 1, '2022-01-01 10:00:00', '2022-01-01 15:00:00', NULL, NULL, 0, 1, 9), +(2, 1, 2, '2022-01-01 16:00:00', '2022-01-01 21:00:00', NULL, NULL, 10, 1, 6); + +TRUNCATE `usuario`; +INSERT INTO `usuario` (`id`, `activo`, `usuario`, `clave`, `nombre`, `apellido`, `dni`, `correo`, `creador_fk`, `rol_fk`) VALUES +(1, 1, 'gabs', '*6AB7931FB2D104A478932D23AF4C7700D1A0C61A', 'Gabriela', 'Hernandez', '12345678', 'gabs@pucp.edu.pe', NULL, 1), +(2, 1, 'dayana', '*D279131EA232308E083B3EA192B78A0C15EA8701', 'Dayana', 'Alarcon', '12345678', 'dayana@pucp.edu.pe', 1, 1), +(3, 1, 'jannina', '*D279131EA232308E083B3EA192B84A0C15EA8701', 'Jannina', 'DeLosGodos', '12345678', 'jannina@pucp.edu.pe', 1, 1), +(4, 1, 'mitsuo', '*D279131EA232308E083B3EA192B74A0C15EA8701', 'Mitsuo', 'Tokumori', '12345678', 'mitsuo@pucp.edu.pe', 1, 1); + +-- 2022-06-01 06:13:09 diff --git a/back/sql/20220401dump.tables+views.sql b/back/sql/20220401dump.tables+views.sql new file mode 100644 index 0000000..7ff1c24 --- /dev/null +++ b/back/sql/20220401dump.tables+views.sql @@ -0,0 +1,245 @@ +-- Adminer 4.7.9 MySQL dump + +SET NAMES utf8; +SET time_zone = '+00:00'; +SET foreign_key_checks = 0; +SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; + +SET NAMES utf8mb4; + +DROP TABLE IF EXISTS `almacen`; +CREATE TABLE `almacen` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `ubigeo` varchar(10) NOT NULL, + `departamento` varchar(100) NOT NULL, + `provincia` varchar(100) NOT NULL, + `latitud` double NOT NULL, + `longitud` double NOT NULL, + `esPrincipal` int(11) NOT NULL, + `region_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `region_fk` (`region_fk`), + CONSTRAINT `almacen_ibfk_1` FOREIGN KEY (`region_fk`) REFERENCES `region` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `averia`; +CREATE TABLE `averia` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `descripcion` varchar(1000) NOT NULL, + `fechaRegistro` datetime NOT NULL, + `camion_fk` int(11) NOT NULL, + `tipoAveria_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `camion_fk` (`camion_fk`), + KEY `tipoAveria_fk` (`tipoAveria_fk`), + CONSTRAINT `averia_ibfk_1` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`), + CONSTRAINT `averia_ibfk_2` FOREIGN KEY (`tipoAveria_fk`) REFERENCES `tipoAveria` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `camion`; +CREATE TABLE `camion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `placa` varchar(10) NOT NULL, + `kilometraje` double NOT NULL, + `estado` int(11) NOT NULL, + `tipoCamion_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `tipoCamion_fk` (`tipoCamion_fk`), + CONSTRAINT `camion_ibfk_1` FOREIGN KEY (`tipoCamion_fk`) REFERENCES `tipoCamion` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `cliente`; +CREATE TABLE `cliente` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombreCompleto` varchar(100) NOT NULL, + `dni` varchar(10) NOT NULL, + `correo` varchar(100) NOT NULL, + `telefono` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `pedido`; +CREATE TABLE `pedido` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `fechaPedido` datetime NOT NULL, + `cantidad` int(11) NOT NULL, + `plazoEntrega` int(11) NOT NULL, + `estado` int(11) NOT NULL, + `codigoPedido` varchar(100) DEFAULT NULL, + `almacen_fk` int(11) NOT NULL, + `cliente_fk` int(11) NOT NULL, + `usuario_fk` int(11) NOT NULL, + `PTG_fk` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `usuario_fk` (`usuario_fk`), + KEY `PTG_fk` (`PTG_fk`), + KEY `cliente_fk` (`cliente_fk`), + KEY `almacen_fk` (`almacen_fk`), + CONSTRAINT `pedido_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`), + CONSTRAINT `pedido_ibfk_2` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), + CONSTRAINT `pedido_ibfk_3` FOREIGN KEY (`cliente_fk`) REFERENCES `cliente` (`id`), + CONSTRAINT `pedido_ibfk_4` FOREIGN KEY (`almacen_fk`) REFERENCES `almacen` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `PTG`; +CREATE TABLE `PTG` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `fechaGenerado` datetime NOT NULL, + `esSimulacion` int(11) NOT NULL, + `usuario_fk` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `usuario_fk` (`usuario_fk`), + CONSTRAINT `PTG_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `region`; +CREATE TABLE `region` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `rol`; +CREATE TABLE `rol` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `ruta`; +CREATE TABLE `ruta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `fechaInicio` datetime NOT NULL, + `fechaFin` datetime NOT NULL, + `PTG_fk` int(11) NOT NULL, + `camion_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `PTG_fk` (`PTG_fk`), + KEY `camion_fk` (`camion_fk`), + CONSTRAINT `ruta_ibfk_1` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), + CONSTRAINT `ruta_ibfk_2` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tipoAveria`; +CREATE TABLE `tipoAveria` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` int(11) NOT NULL, + `duracion` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tipoCamion`; +CREATE TABLE `tipoCamion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` varchar(100) NOT NULL, + `capacidad` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tramo`; +CREATE TABLE `tramo` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `distancia` double NOT NULL, + `estaBloqueado` int(11) NOT NULL, + `almacen1_fk` int(11) NOT NULL, + `almacen2_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `almacen1_fk` (`almacen1_fk`), + KEY `almacen2_fk` (`almacen2_fk`), + CONSTRAINT `tramo_ibfk_1` FOREIGN KEY (`almacen1_fk`) REFERENCES `almacen` (`id`), + CONSTRAINT `tramo_ibfk_2` FOREIGN KEY (`almacen2_fk`) REFERENCES `almacen` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tramo_ruta`; +CREATE TABLE `tramo_ruta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `orden` int(11) NOT NULL, + `horaSalidaEst` datetime NOT NULL, + `horaLlegadaEst` datetime NOT NULL, + `horaSalidaReal` datetime DEFAULT NULL, + `horaLlegadaReal` datetime DEFAULT NULL, + `paquetesEntregar` int(11) NOT NULL, + `ruta_fk` int(11) NOT NULL, + `tramo_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `ruta_fk` (`ruta_fk`), + KEY `tramo_fk` (`tramo_fk`), + CONSTRAINT `tramo_ruta_ibfk_1` FOREIGN KEY (`ruta_fk`) REFERENCES `ruta` (`id`), + CONSTRAINT `tramo_ruta_ibfk_2` FOREIGN KEY (`tramo_fk`) REFERENCES `tramo` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `usuario`; +CREATE TABLE `usuario` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `usuario` varchar(100) NOT NULL, + `clave` varchar(100) NOT NULL, + `nombre` varchar(100) NOT NULL, + `apellido` varchar(100) NOT NULL, + `dni` varchar(10) NOT NULL, + `correo` varchar(100) NOT NULL, + `creador_fk` int(11) DEFAULT NULL, + `rol_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `creador_fk` (`creador_fk`), + KEY `rol_fk` (`rol_fk`), + CONSTRAINT `usuario_ibfk_2` FOREIGN KEY (`creador_fk`) REFERENCES `usuario` (`id`), + CONSTRAINT `usuario_ibfk_3` FOREIGN KEY (`rol_fk`) REFERENCES `usuario` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP VIEW IF EXISTS `v_almacen`; +CREATE TABLE `v_almacen` (`ubigeo` varchar(10), `departamento` varchar(100), `provincia` varchar(100), `latitud` double, `longitud` double, `esPrincipal` int(11), `region` varchar(100)); + + +DROP VIEW IF EXISTS `v_camion`; +CREATE TABLE `v_camion` (`id` int(11), `placa` varchar(10), `kilometraje` double, `estado` int(11), `tipo` varchar(100), `capacidad` int(11)); + + +DROP VIEW IF EXISTS `v_pedido`; +CREATE TABLE `v_pedido` (`cliente` varchar(100), `RUC` varchar(10), `ubigeo` varchar(10), `provincia` varchar(100), `cantidad` int(11), `fechaPedido` datetime, `plazoEntrega` int(11), `estado` int(11), `URL_pedido` varchar(100), `registrado por` varchar(100)); + + +DROP VIEW IF EXISTS `v_usuario`; +CREATE TABLE `v_usuario` (`usuario` varchar(100), `nombre` varchar(100), `apellido` varchar(100), `dni` varchar(10), `correo` varchar(100), `registered by` varchar(100), `rol` varchar(100)); + + +DROP TABLE IF EXISTS `v_almacen`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_almacen` AS select `a`.`ubigeo` AS `ubigeo`,`a`.`departamento` AS `departamento`,`a`.`provincia` AS `provincia`,`a`.`latitud` AS `latitud`,`a`.`longitud` AS `longitud`,`a`.`esPrincipal` AS `esPrincipal`,`r`.`nombre` AS `region` from (`almacen` `a` join `region` `r` on(`a`.`region_fk` = `r`.`id`)) where a.activo = 1; + +DROP TABLE IF EXISTS `v_camion`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_camion` AS select `c`.`id` AS `id`,`c`.`placa` AS `placa`,`c`.`kilometraje` AS `kilometraje`,`c`.`estado` AS `estado`,`tc`.`nombre` AS `tipo`,`tc`.`capacidad` AS `capacidad` from (`camion` `c` join `tipoCamion` `tc` on(`c`.`tipoCamion_fk` = `tc`.`id`)) where c.activo = 1; + +DROP TABLE IF EXISTS `v_pedido`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_pedido` AS select `cli`.`nombreCompleto` AS `cliente`,`cli`.`dni` AS `RUC`,`alm`.`ubigeo` AS `ubigeo`,`alm`.`provincia` AS `provincia`,`ped`.`cantidad` AS `cantidad`,`ped`.`fechaPedido` AS `fechaPedido`,`ped`.`plazoEntrega` AS `plazoEntrega`,`ped`.`estado` AS `estado`,`ped`.`codigoPedido` AS `URL_pedido`,`usu`.`usuario` AS `registrado por` from (((`pedido` `ped` join `cliente` `cli` on(`ped`.`cliente_fk` = `cli`.`id`)) join `usuario` `usu` on(`ped`.`usuario_fk` = `usu`.`id`)) join `almacen` `alm` on(`ped`.`almacen_fk` = `alm`.`id`)) where ped.activo = 1; + +DROP TABLE IF EXISTS `v_usuario`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_usuario` AS select `u`.`usuario` AS `usuario`,`u`.`nombre` AS `nombre`,`u`.`apellido` AS `apellido`,`u`.`dni` AS `dni`,`u`.`correo` AS `correo`,`u2`.`nombre` AS `registered by`,`r`.`nombre` AS `rol` from ((`usuario` `u` left join `usuario` `u2` on(`u`.`creador_fk` = `u2`.`id`)) join `rol` `r` on(`u`.`rol_fk` = `r`.`id`)) where u.activo = 1; + +-- 2022-06-01 06:30:20 diff --git a/back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql b/back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql deleted file mode 100644 index 11c9a2d..0000000 --- a/back/sql/tables+sampledata_mini-noactivefieldyet.dump.sql +++ /dev/null @@ -1,290 +0,0 @@ --- Adminer 4.7.9 MySQL dump - -SET NAMES utf8; -SET time_zone = '+00:00'; -SET foreign_key_checks = 0; -SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; - -SET NAMES utf8mb4; - -DROP TABLE IF EXISTS `almacen`; -CREATE TABLE `almacen` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ubigeo` varchar(10) NOT NULL, - `departamento` varchar(100) NOT NULL, - `provincia` varchar(100) NOT NULL, - `latitud` double NOT NULL, - `longitud` double NOT NULL, - `esPrincipal` int(11) NOT NULL, - `region_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `region_fk` (`region_fk`), - CONSTRAINT `almacen_ibfk_1` FOREIGN KEY (`region_fk`) REFERENCES `region` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `almacen`; -INSERT INTO `almacen` (`id`, `ubigeo`, `departamento`, `provincia`, `latitud`, `longitud`, `esPrincipal`, `region_fk`) VALUES -(1, '10201', 'Amazonas', 'Bagua', -5.63906152, -78.53166353, 0, 3), -(2, '40101', 'Arequipa', 'Arequipa', -16.39881421, -71.537019649, 1, 1), -(3, '50901', 'Ayacucho', 'Sucre', -14.01125749, -73.83884087, 0, 2), -(4, '130101', 'La Libertad', 'Trujillo', -8.11176389, -79.02868652, 1, 1), -(5, '150101', 'Lima', 'Lima', -12.04591952, -77.03049615, 1, 1), -(6, '230101', 'Tacna', 'Tacna', -18.0137008, -70.2507964, 0, 1); - -DROP TABLE IF EXISTS `averia`; -CREATE TABLE `averia` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `descripcion` varchar(1000) NOT NULL, - `fechaRegistro` datetime NOT NULL, - `camion_fk` int(11) NOT NULL, - `tipoAveria_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `camion_fk` (`camion_fk`), - KEY `tipoAveria_fk` (`tipoAveria_fk`), - CONSTRAINT `averia_ibfk_1` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`), - CONSTRAINT `averia_ibfk_2` FOREIGN KEY (`tipoAveria_fk`) REFERENCES `tipoAveria` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `averia`; - -DROP TABLE IF EXISTS `camion`; -CREATE TABLE `camion` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `placa` varchar(10) NOT NULL, - `kilometraje` double NOT NULL, - `estado` int(11) NOT NULL, - `tipoCamion_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `tipoCamion_fk` (`tipoCamion_fk`), - CONSTRAINT `camion_ibfk_1` FOREIGN KEY (`tipoCamion_fk`) REFERENCES `tipoCamion` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `camion`; -INSERT INTO `camion` (`id`, `placa`, `kilometraje`, `estado`, `tipoCamion_fk`) VALUES -(1, 'ETALLIC', 69420, 1, 1); - -DROP TABLE IF EXISTS `cliente`; -CREATE TABLE `cliente` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `nombreCompleto` varchar(100) NOT NULL, - `dni` varchar(10) NOT NULL, - `correo` varchar(100) NOT NULL, - `telefono` varchar(20) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `cliente`; -INSERT INTO `cliente` (`id`, `nombreCompleto`, `dni`, `correo`, `telefono`) VALUES -(1, 'EmpresaAAA', '1234567890', 'contacto@empresaAAA.com', '123456789'), -(2, 'EmpresaBBB', '1234567890', 'contacto@empresaBBB.com', '123456789'); - -DROP TABLE IF EXISTS `pedido`; -CREATE TABLE `pedido` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `fechaPedido` datetime NOT NULL, - `cantidad` int(11) NOT NULL, - `plazoEntrega` int(11) NOT NULL, - `estado` int(11) NOT NULL, - `codigoPedido` varchar(100) DEFAULT NULL, - `almacen_fk` int(11) NOT NULL, - `cliente_fk` int(11) NOT NULL, - `usuario_fk` int(11) NOT NULL, - `PTG_fk` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `usuario_fk` (`usuario_fk`), - KEY `PTG_fk` (`PTG_fk`), - KEY `cliente_fk` (`cliente_fk`), - KEY `almacen_fk` (`almacen_fk`), - CONSTRAINT `pedido_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`), - CONSTRAINT `pedido_ibfk_2` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), - CONSTRAINT `pedido_ibfk_3` FOREIGN KEY (`cliente_fk`) REFERENCES `cliente` (`id`), - CONSTRAINT `pedido_ibfk_4` FOREIGN KEY (`almacen_fk`) REFERENCES `almacen` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `pedido`; -INSERT INTO `pedido` (`id`, `fechaPedido`, `cantidad`, `plazoEntrega`, `estado`, `codigoPedido`, `almacen_fk`, `cliente_fk`, `usuario_fk`, `PTG_fk`) VALUES -(2, '2022-01-01 00:00:00', 10, 1, 0, '20220101_000001', 3, 1, 4, NULL); - -DROP TABLE IF EXISTS `PTG`; -CREATE TABLE `PTG` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `fechaGenerado` datetime NOT NULL, - `esSimulacion` int(11) NOT NULL, - `usuario_fk` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `usuario_fk` (`usuario_fk`), - CONSTRAINT `PTG_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `PTG`; -INSERT INTO `PTG` (`id`, `fechaGenerado`, `esSimulacion`, `usuario_fk`) VALUES -(1, '2022-06-01 05:10:47', 1, 1); - -DROP TABLE IF EXISTS `region`; -CREATE TABLE `region` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(100) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `region`; -INSERT INTO `region` (`id`, `nombre`) VALUES -(1, 'costa'), -(2, 'sierra'), -(3, 'selva'); - -DROP TABLE IF EXISTS `rol`; -CREATE TABLE `rol` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(100) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `rol`; -INSERT INTO `rol` (`id`, `nombre`) VALUES -(1, 'superuser'); - -DROP TABLE IF EXISTS `ruta`; -CREATE TABLE `ruta` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `fechaInicio` datetime NOT NULL, - `fechaFin` datetime NOT NULL, - `PTG_fk` int(11) NOT NULL, - `camion_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `PTG_fk` (`PTG_fk`), - KEY `camion_fk` (`camion_fk`), - CONSTRAINT `ruta_ibfk_1` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), - CONSTRAINT `ruta_ibfk_2` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `ruta`; -INSERT INTO `ruta` (`id`, `fechaInicio`, `fechaFin`, `PTG_fk`, `camion_fk`) VALUES -(1, '2022-01-01 00:00:00', '2022-01-02 00:00:00', 1, 1); - -DROP TABLE IF EXISTS `tipoAveria`; -CREATE TABLE `tipoAveria` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `nombre` int(11) NOT NULL, - `duracion` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `tipoAveria`; - -DROP TABLE IF EXISTS `tipoCamion`; -CREATE TABLE `tipoCamion` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `nombre` varchar(100) NOT NULL, - `capacidad` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `tipoCamion`; -INSERT INTO `tipoCamion` (`id`, `nombre`, `capacidad`) VALUES -(1, 'tipoA', 90), -(2, 'tipoB', 45), -(3, 'tipoC', 30); - -DROP TABLE IF EXISTS `tramo`; -CREATE TABLE `tramo` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `distancia` double NOT NULL, - `estaBloqueado` int(11) NOT NULL, - `almacen1_fk` int(11) NOT NULL, - `almacen2_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `almacen1_fk` (`almacen1_fk`), - KEY `almacen2_fk` (`almacen2_fk`), - CONSTRAINT `tramo_ibfk_1` FOREIGN KEY (`almacen1_fk`) REFERENCES `almacen` (`id`), - CONSTRAINT `tramo_ibfk_2` FOREIGN KEY (`almacen2_fk`) REFERENCES `almacen` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `tramo`; -INSERT INTO `tramo` (`id`, `distancia`, `estaBloqueado`, `almacen1_fk`, `almacen2_fk`) VALUES -(1, 10, 0, 2, 5), -(2, 10, 0, 3, 5), -(3, 10, 0, 4, 5), -(4, 10, 0, 6, 5), -(5, 20, 0, 1, 4), -(6, 20, 0, 4, 1), -(7, 10, 0, 5, 2), -(8, 10, 0, 5, 3), -(9, 10, 0, 5, 4), -(10, 10, 0, 5, 6); - -DROP TABLE IF EXISTS `tramo_ruta`; -CREATE TABLE `tramo_ruta` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `orden` int(11) NOT NULL, - `horaSalidaEst` datetime NOT NULL, - `horaLlegadaEst` datetime NOT NULL, - `horaSalidaReal` datetime DEFAULT NULL, - `horaLlegadaReal` datetime DEFAULT NULL, - `paquetesEntregar` int(11) NOT NULL, - `ruta_fk` int(11) NOT NULL, - `tramo_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `ruta_fk` (`ruta_fk`), - KEY `tramo_fk` (`tramo_fk`), - CONSTRAINT `tramo_ruta_ibfk_1` FOREIGN KEY (`ruta_fk`) REFERENCES `ruta` (`id`), - CONSTRAINT `tramo_ruta_ibfk_2` FOREIGN KEY (`tramo_fk`) REFERENCES `tramo` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `tramo_ruta`; -INSERT INTO `tramo_ruta` (`id`, `orden`, `horaSalidaEst`, `horaLlegadaEst`, `horaSalidaReal`, `horaLlegadaReal`, `paquetesEntregar`, `ruta_fk`, `tramo_fk`) VALUES -(1, 1, '2022-01-01 10:00:00', '2022-01-01 15:00:00', NULL, NULL, 0, 1, 9), -(2, 2, '2022-01-01 16:00:00', '2022-01-01 21:00:00', NULL, NULL, 10, 1, 6); - -DROP TABLE IF EXISTS `usuario`; -CREATE TABLE `usuario` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `usuario` varchar(100) NOT NULL, - `clave` varchar(100) NOT NULL, - `nombre` varchar(100) NOT NULL, - `apellido` varchar(100) NOT NULL, - `dni` varchar(10) NOT NULL, - `correo` varchar(100) NOT NULL, - `creador_fk` int(11) DEFAULT NULL, - `rol_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `creador_fk` (`creador_fk`), - KEY `rol_fk` (`rol_fk`), - CONSTRAINT `usuario_ibfk_2` FOREIGN KEY (`creador_fk`) REFERENCES `usuario` (`id`), - CONSTRAINT `usuario_ibfk_3` FOREIGN KEY (`rol_fk`) REFERENCES `usuario` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -TRUNCATE `usuario`; -INSERT INTO `usuario` (`id`, `usuario`, `clave`, `nombre`, `apellido`, `dni`, `correo`, `creador_fk`, `rol_fk`) VALUES -(1, 'gabs', '*6AB7931FB2D104A478932D23AF4C7700D1A0C61A', 'Gabriela', 'Hernandez', '12345678', 'gabs@pucp.edu.pe', NULL, 1), -(4, 'mitsuo', '*D279131EA232308E083B3EA192B74A0C15EA8701', 'Mitsuo', 'Tokumori', '12345678', 'mitsuo@pucp.edu.pe', 1, 1); - -DROP VIEW IF EXISTS `v_almacen`; -CREATE TABLE `v_almacen` (`ubigeo` varchar(10), `departamento` varchar(100), `provincia` varchar(100), `latitud` double, `longitud` double, `esPrincipal` int(11), `region` varchar(100)); - - -DROP VIEW IF EXISTS `v_camion`; -CREATE TABLE `v_camion` (`id` int(11), `placa` varchar(10), `kilometraje` double, `estado` int(11), `tipo` varchar(100), `capacidad` int(11)); - - -DROP VIEW IF EXISTS `v_pedido`; -CREATE TABLE `v_pedido` (`cliente` varchar(100), `RUC` varchar(10), `ubigeo` varchar(10), `provincia` varchar(100), `cantidad` int(11), `fechaPedido` datetime, `plazoEntrega` int(11), `estado` int(11), `URL_pedido` varchar(100), `registrado por` varchar(100)); - - -DROP VIEW IF EXISTS `v_usuario`; -CREATE TABLE `v_usuario` (`usuario` varchar(100), `nombre` varchar(100), `apellido` varchar(100), `dni` varchar(10), `correo` varchar(100), `registered by` varchar(100), `rol` varchar(100)); - - -DROP TABLE IF EXISTS `v_almacen`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_almacen` AS select `a`.`ubigeo` AS `ubigeo`,`a`.`departamento` AS `departamento`,`a`.`provincia` AS `provincia`,`a`.`latitud` AS `latitud`,`a`.`longitud` AS `longitud`,`a`.`esPrincipal` AS `esPrincipal`,`r`.`nombre` AS `region` from (`almacen` `a` join `region` `r` on(`a`.`region_fk` = `r`.`id`)); - -DROP TABLE IF EXISTS `v_camion`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_camion` AS select `c`.`id` AS `id`,`c`.`placa` AS `placa`,`c`.`kilometraje` AS `kilometraje`,`c`.`estado` AS `estado`,`tc`.`nombre` AS `tipo`,`tc`.`capacidad` AS `capacidad` from (`camion` `c` join `tipoCamion` `tc` on(`c`.`tipoCamion_fk` = `tc`.`id`)); - -DROP TABLE IF EXISTS `v_pedido`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_pedido` AS select `cli`.`nombreCompleto` AS `cliente`,`cli`.`dni` AS `RUC`,`alm`.`ubigeo` AS `ubigeo`,`alm`.`provincia` AS `provincia`,`ped`.`cantidad` AS `cantidad`,`ped`.`fechaPedido` AS `fechaPedido`,`ped`.`plazoEntrega` AS `plazoEntrega`,`ped`.`estado` AS `estado`,`ped`.`codigoPedido` AS `URL_pedido`,`usu`.`usuario` AS `registrado por` from (((`pedido` `ped` join `cliente` `cli` on(`ped`.`cliente_fk` = `cli`.`id`)) join `usuario` `usu` on(`ped`.`usuario_fk` = `usu`.`id`)) join `almacen` `alm` on(`ped`.`almacen_fk` = `alm`.`id`)); - -DROP TABLE IF EXISTS `v_usuario`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_usuario` AS select `u`.`usuario` AS `usuario`,`u`.`nombre` AS `nombre`,`u`.`apellido` AS `apellido`,`u`.`dni` AS `dni`,`u`.`correo` AS `correo`,`u2`.`nombre` AS `registered by`,`r`.`nombre` AS `rol` from ((`usuario` `u` left join `usuario` `u2` on(`u`.`creador_fk` = `u2`.`id`)) join `rol` `r` on(`u`.`rol_fk` = `r`.`id`)); - --- 2022-06-01 05:35:28 -- cgit v1.2.3 From 95b4b7bb03cbb7b402414e4cbca2d812286c5800 Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Wed, 1 Jun 2022 01:58:09 -0500 Subject: Add database schema image --- back/sql/ss_20220531_221843.png | Bin 0 -> 99151 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 back/sql/ss_20220531_221843.png diff --git a/back/sql/ss_20220531_221843.png b/back/sql/ss_20220531_221843.png new file mode 100644 index 0000000..fbec2c2 Binary files /dev/null and b/back/sql/ss_20220531_221843.png differ -- cgit v1.2.3 From 0516f1fa27daf3315bf883684bbd6191faf68844 Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Wed, 1 Jun 2022 02:03:17 -0500 Subject: Fixed typo --- back/sql/20220401dump.sampledata.sql | 85 ------------ back/sql/20220401dump.tables+views.sql | 245 --------------------------------- back/sql/20220601dump.sampledata.sql | 85 ++++++++++++ back/sql/20220601dump.tables+views.sql | 245 +++++++++++++++++++++++++++++++++ 4 files changed, 330 insertions(+), 330 deletions(-) delete mode 100644 back/sql/20220401dump.sampledata.sql delete mode 100644 back/sql/20220401dump.tables+views.sql create mode 100644 back/sql/20220601dump.sampledata.sql create mode 100644 back/sql/20220601dump.tables+views.sql diff --git a/back/sql/20220401dump.sampledata.sql b/back/sql/20220401dump.sampledata.sql deleted file mode 100644 index 5042e32..0000000 --- a/back/sql/20220401dump.sampledata.sql +++ /dev/null @@ -1,85 +0,0 @@ --- Adminer 4.7.9 MySQL dump - -SET NAMES utf8; -SET time_zone = '+00:00'; -SET foreign_key_checks = 0; -SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; - -SET NAMES utf8mb4; - -TRUNCATE `almacen`; -INSERT INTO `almacen` (`id`, `activo`, `ubigeo`, `departamento`, `provincia`, `latitud`, `longitud`, `esPrincipal`, `region_fk`) VALUES -(1, 1, '10201', 'Amazonas', 'Bagua', -5.63906152, -78.53166353, 0, 3), -(2, 1, '40101', 'Arequipa', 'Arequipa', -16.39881421, -71.537019649, 1, 1), -(3, 1, '50901', 'Ayacucho', 'Sucre', -14.01125749, -73.83884087, 0, 2), -(4, 1, '130101', 'La Libertad', 'Trujillo', -8.11176389, -79.02868652, 1, 1), -(5, 1, '150101', 'Lima', 'Lima', -12.04591952, -77.03049615, 1, 1), -(6, 1, '230101', 'Tacna', 'Tacna', -18.0137008, -70.2507964, 0, 1); - -TRUNCATE `averia`; - -TRUNCATE `camion`; -INSERT INTO `camion` (`id`, `activo`, `placa`, `kilometraje`, `estado`, `tipoCamion_fk`) VALUES -(1, 1, 'ETALLIC', 69420, 1, 1); - -TRUNCATE `cliente`; -INSERT INTO `cliente` (`id`, `activo`, `nombreCompleto`, `dni`, `correo`, `telefono`) VALUES -(1, 1, 'EmpresaAAA', '1234567890', 'contacto@empresaAAA.com', '123456789'), -(2, 1, 'EmpresaBBB', '1234567890', 'contacto@empresaBBB.com', '123456789'); - -TRUNCATE `pedido`; -INSERT INTO `pedido` (`id`, `activo`, `fechaPedido`, `cantidad`, `plazoEntrega`, `estado`, `codigoPedido`, `almacen_fk`, `cliente_fk`, `usuario_fk`, `PTG_fk`) VALUES -(2, 1, '2022-01-01 00:00:00', 10, 1, 0, '20220101_000001', 3, 1, 4, NULL); - -TRUNCATE `PTG`; -INSERT INTO `PTG` (`id`, `activo`, `fechaGenerado`, `esSimulacion`, `usuario_fk`) VALUES -(1, 1, '2022-06-01 05:10:47', 1, 1); - -TRUNCATE `region`; -INSERT INTO `region` (`id`, `activo`, `nombre`) VALUES -(1, 1, 'costa'), -(2, 1, 'sierra'), -(3, 1, 'selva'); - -TRUNCATE `rol`; -INSERT INTO `rol` (`id`, `activo`, `nombre`) VALUES -(1, 1, 'superuser'); - -TRUNCATE `ruta`; -INSERT INTO `ruta` (`id`, `activo`, `fechaInicio`, `fechaFin`, `PTG_fk`, `camion_fk`) VALUES -(1, 1, '2022-01-01 00:00:00', '2022-01-02 00:00:00', 1, 1); - -TRUNCATE `tipoAveria`; - -TRUNCATE `tipoCamion`; -INSERT INTO `tipoCamion` (`id`, `activo`, `nombre`, `capacidad`) VALUES -(1, 1, 'tipoA', 90), -(2, 1, 'tipoB', 45), -(3, 1, 'tipoC', 30); - -TRUNCATE `tramo`; -INSERT INTO `tramo` (`id`, `activo`, `distancia`, `estaBloqueado`, `almacen1_fk`, `almacen2_fk`) VALUES -(1, 1, 10, 0, 2, 5), -(2, 1, 10, 0, 3, 5), -(3, 1, 10, 0, 4, 5), -(4, 1, 10, 0, 6, 5), -(5, 1, 20, 0, 1, 4), -(6, 1, 20, 0, 4, 1), -(7, 1, 10, 0, 5, 2), -(8, 1, 10, 0, 5, 3), -(9, 1, 10, 0, 5, 4), -(10, 1, 10, 0, 5, 6); - -TRUNCATE `tramo_ruta`; -INSERT INTO `tramo_ruta` (`id`, `activo`, `orden`, `horaSalidaEst`, `horaLlegadaEst`, `horaSalidaReal`, `horaLlegadaReal`, `paquetesEntregar`, `ruta_fk`, `tramo_fk`) VALUES -(1, 1, 1, '2022-01-01 10:00:00', '2022-01-01 15:00:00', NULL, NULL, 0, 1, 9), -(2, 1, 2, '2022-01-01 16:00:00', '2022-01-01 21:00:00', NULL, NULL, 10, 1, 6); - -TRUNCATE `usuario`; -INSERT INTO `usuario` (`id`, `activo`, `usuario`, `clave`, `nombre`, `apellido`, `dni`, `correo`, `creador_fk`, `rol_fk`) VALUES -(1, 1, 'gabs', '*6AB7931FB2D104A478932D23AF4C7700D1A0C61A', 'Gabriela', 'Hernandez', '12345678', 'gabs@pucp.edu.pe', NULL, 1), -(2, 1, 'dayana', '*D279131EA232308E083B3EA192B78A0C15EA8701', 'Dayana', 'Alarcon', '12345678', 'dayana@pucp.edu.pe', 1, 1), -(3, 1, 'jannina', '*D279131EA232308E083B3EA192B84A0C15EA8701', 'Jannina', 'DeLosGodos', '12345678', 'jannina@pucp.edu.pe', 1, 1), -(4, 1, 'mitsuo', '*D279131EA232308E083B3EA192B74A0C15EA8701', 'Mitsuo', 'Tokumori', '12345678', 'mitsuo@pucp.edu.pe', 1, 1); - --- 2022-06-01 06:13:09 diff --git a/back/sql/20220401dump.tables+views.sql b/back/sql/20220401dump.tables+views.sql deleted file mode 100644 index 7ff1c24..0000000 --- a/back/sql/20220401dump.tables+views.sql +++ /dev/null @@ -1,245 +0,0 @@ --- Adminer 4.7.9 MySQL dump - -SET NAMES utf8; -SET time_zone = '+00:00'; -SET foreign_key_checks = 0; -SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; - -SET NAMES utf8mb4; - -DROP TABLE IF EXISTS `almacen`; -CREATE TABLE `almacen` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `ubigeo` varchar(10) NOT NULL, - `departamento` varchar(100) NOT NULL, - `provincia` varchar(100) NOT NULL, - `latitud` double NOT NULL, - `longitud` double NOT NULL, - `esPrincipal` int(11) NOT NULL, - `region_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `region_fk` (`region_fk`), - CONSTRAINT `almacen_ibfk_1` FOREIGN KEY (`region_fk`) REFERENCES `region` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `averia`; -CREATE TABLE `averia` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `descripcion` varchar(1000) NOT NULL, - `fechaRegistro` datetime NOT NULL, - `camion_fk` int(11) NOT NULL, - `tipoAveria_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `camion_fk` (`camion_fk`), - KEY `tipoAveria_fk` (`tipoAveria_fk`), - CONSTRAINT `averia_ibfk_1` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`), - CONSTRAINT `averia_ibfk_2` FOREIGN KEY (`tipoAveria_fk`) REFERENCES `tipoAveria` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `camion`; -CREATE TABLE `camion` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `placa` varchar(10) NOT NULL, - `kilometraje` double NOT NULL, - `estado` int(11) NOT NULL, - `tipoCamion_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `tipoCamion_fk` (`tipoCamion_fk`), - CONSTRAINT `camion_ibfk_1` FOREIGN KEY (`tipoCamion_fk`) REFERENCES `tipoCamion` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `cliente`; -CREATE TABLE `cliente` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `nombreCompleto` varchar(100) NOT NULL, - `dni` varchar(10) NOT NULL, - `correo` varchar(100) NOT NULL, - `telefono` varchar(20) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `pedido`; -CREATE TABLE `pedido` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `fechaPedido` datetime NOT NULL, - `cantidad` int(11) NOT NULL, - `plazoEntrega` int(11) NOT NULL, - `estado` int(11) NOT NULL, - `codigoPedido` varchar(100) DEFAULT NULL, - `almacen_fk` int(11) NOT NULL, - `cliente_fk` int(11) NOT NULL, - `usuario_fk` int(11) NOT NULL, - `PTG_fk` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `usuario_fk` (`usuario_fk`), - KEY `PTG_fk` (`PTG_fk`), - KEY `cliente_fk` (`cliente_fk`), - KEY `almacen_fk` (`almacen_fk`), - CONSTRAINT `pedido_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`), - CONSTRAINT `pedido_ibfk_2` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), - CONSTRAINT `pedido_ibfk_3` FOREIGN KEY (`cliente_fk`) REFERENCES `cliente` (`id`), - CONSTRAINT `pedido_ibfk_4` FOREIGN KEY (`almacen_fk`) REFERENCES `almacen` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `PTG`; -CREATE TABLE `PTG` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `fechaGenerado` datetime NOT NULL, - `esSimulacion` int(11) NOT NULL, - `usuario_fk` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `usuario_fk` (`usuario_fk`), - CONSTRAINT `PTG_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `region`; -CREATE TABLE `region` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `nombre` varchar(100) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `rol`; -CREATE TABLE `rol` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `nombre` varchar(100) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `ruta`; -CREATE TABLE `ruta` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `fechaInicio` datetime NOT NULL, - `fechaFin` datetime NOT NULL, - `PTG_fk` int(11) NOT NULL, - `camion_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `PTG_fk` (`PTG_fk`), - KEY `camion_fk` (`camion_fk`), - CONSTRAINT `ruta_ibfk_1` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), - CONSTRAINT `ruta_ibfk_2` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `tipoAveria`; -CREATE TABLE `tipoAveria` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `nombre` int(11) NOT NULL, - `duracion` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `tipoCamion`; -CREATE TABLE `tipoCamion` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `nombre` varchar(100) NOT NULL, - `capacidad` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `tramo`; -CREATE TABLE `tramo` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `distancia` double NOT NULL, - `estaBloqueado` int(11) NOT NULL, - `almacen1_fk` int(11) NOT NULL, - `almacen2_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `almacen1_fk` (`almacen1_fk`), - KEY `almacen2_fk` (`almacen2_fk`), - CONSTRAINT `tramo_ibfk_1` FOREIGN KEY (`almacen1_fk`) REFERENCES `almacen` (`id`), - CONSTRAINT `tramo_ibfk_2` FOREIGN KEY (`almacen2_fk`) REFERENCES `almacen` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `tramo_ruta`; -CREATE TABLE `tramo_ruta` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `orden` int(11) NOT NULL, - `horaSalidaEst` datetime NOT NULL, - `horaLlegadaEst` datetime NOT NULL, - `horaSalidaReal` datetime DEFAULT NULL, - `horaLlegadaReal` datetime DEFAULT NULL, - `paquetesEntregar` int(11) NOT NULL, - `ruta_fk` int(11) NOT NULL, - `tramo_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `ruta_fk` (`ruta_fk`), - KEY `tramo_fk` (`tramo_fk`), - CONSTRAINT `tramo_ruta_ibfk_1` FOREIGN KEY (`ruta_fk`) REFERENCES `ruta` (`id`), - CONSTRAINT `tramo_ruta_ibfk_2` FOREIGN KEY (`tramo_fk`) REFERENCES `tramo` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP TABLE IF EXISTS `usuario`; -CREATE TABLE `usuario` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `activo` int(11) NOT NULL, - `usuario` varchar(100) NOT NULL, - `clave` varchar(100) NOT NULL, - `nombre` varchar(100) NOT NULL, - `apellido` varchar(100) NOT NULL, - `dni` varchar(10) NOT NULL, - `correo` varchar(100) NOT NULL, - `creador_fk` int(11) DEFAULT NULL, - `rol_fk` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `creador_fk` (`creador_fk`), - KEY `rol_fk` (`rol_fk`), - CONSTRAINT `usuario_ibfk_2` FOREIGN KEY (`creador_fk`) REFERENCES `usuario` (`id`), - CONSTRAINT `usuario_ibfk_3` FOREIGN KEY (`rol_fk`) REFERENCES `usuario` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - - -DROP VIEW IF EXISTS `v_almacen`; -CREATE TABLE `v_almacen` (`ubigeo` varchar(10), `departamento` varchar(100), `provincia` varchar(100), `latitud` double, `longitud` double, `esPrincipal` int(11), `region` varchar(100)); - - -DROP VIEW IF EXISTS `v_camion`; -CREATE TABLE `v_camion` (`id` int(11), `placa` varchar(10), `kilometraje` double, `estado` int(11), `tipo` varchar(100), `capacidad` int(11)); - - -DROP VIEW IF EXISTS `v_pedido`; -CREATE TABLE `v_pedido` (`cliente` varchar(100), `RUC` varchar(10), `ubigeo` varchar(10), `provincia` varchar(100), `cantidad` int(11), `fechaPedido` datetime, `plazoEntrega` int(11), `estado` int(11), `URL_pedido` varchar(100), `registrado por` varchar(100)); - - -DROP VIEW IF EXISTS `v_usuario`; -CREATE TABLE `v_usuario` (`usuario` varchar(100), `nombre` varchar(100), `apellido` varchar(100), `dni` varchar(10), `correo` varchar(100), `registered by` varchar(100), `rol` varchar(100)); - - -DROP TABLE IF EXISTS `v_almacen`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_almacen` AS select `a`.`ubigeo` AS `ubigeo`,`a`.`departamento` AS `departamento`,`a`.`provincia` AS `provincia`,`a`.`latitud` AS `latitud`,`a`.`longitud` AS `longitud`,`a`.`esPrincipal` AS `esPrincipal`,`r`.`nombre` AS `region` from (`almacen` `a` join `region` `r` on(`a`.`region_fk` = `r`.`id`)) where a.activo = 1; - -DROP TABLE IF EXISTS `v_camion`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_camion` AS select `c`.`id` AS `id`,`c`.`placa` AS `placa`,`c`.`kilometraje` AS `kilometraje`,`c`.`estado` AS `estado`,`tc`.`nombre` AS `tipo`,`tc`.`capacidad` AS `capacidad` from (`camion` `c` join `tipoCamion` `tc` on(`c`.`tipoCamion_fk` = `tc`.`id`)) where c.activo = 1; - -DROP TABLE IF EXISTS `v_pedido`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_pedido` AS select `cli`.`nombreCompleto` AS `cliente`,`cli`.`dni` AS `RUC`,`alm`.`ubigeo` AS `ubigeo`,`alm`.`provincia` AS `provincia`,`ped`.`cantidad` AS `cantidad`,`ped`.`fechaPedido` AS `fechaPedido`,`ped`.`plazoEntrega` AS `plazoEntrega`,`ped`.`estado` AS `estado`,`ped`.`codigoPedido` AS `URL_pedido`,`usu`.`usuario` AS `registrado por` from (((`pedido` `ped` join `cliente` `cli` on(`ped`.`cliente_fk` = `cli`.`id`)) join `usuario` `usu` on(`ped`.`usuario_fk` = `usu`.`id`)) join `almacen` `alm` on(`ped`.`almacen_fk` = `alm`.`id`)) where ped.activo = 1; - -DROP TABLE IF EXISTS `v_usuario`; -CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_usuario` AS select `u`.`usuario` AS `usuario`,`u`.`nombre` AS `nombre`,`u`.`apellido` AS `apellido`,`u`.`dni` AS `dni`,`u`.`correo` AS `correo`,`u2`.`nombre` AS `registered by`,`r`.`nombre` AS `rol` from ((`usuario` `u` left join `usuario` `u2` on(`u`.`creador_fk` = `u2`.`id`)) join `rol` `r` on(`u`.`rol_fk` = `r`.`id`)) where u.activo = 1; - --- 2022-06-01 06:30:20 diff --git a/back/sql/20220601dump.sampledata.sql b/back/sql/20220601dump.sampledata.sql new file mode 100644 index 0000000..5042e32 --- /dev/null +++ b/back/sql/20220601dump.sampledata.sql @@ -0,0 +1,85 @@ +-- Adminer 4.7.9 MySQL dump + +SET NAMES utf8; +SET time_zone = '+00:00'; +SET foreign_key_checks = 0; +SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; + +SET NAMES utf8mb4; + +TRUNCATE `almacen`; +INSERT INTO `almacen` (`id`, `activo`, `ubigeo`, `departamento`, `provincia`, `latitud`, `longitud`, `esPrincipal`, `region_fk`) VALUES +(1, 1, '10201', 'Amazonas', 'Bagua', -5.63906152, -78.53166353, 0, 3), +(2, 1, '40101', 'Arequipa', 'Arequipa', -16.39881421, -71.537019649, 1, 1), +(3, 1, '50901', 'Ayacucho', 'Sucre', -14.01125749, -73.83884087, 0, 2), +(4, 1, '130101', 'La Libertad', 'Trujillo', -8.11176389, -79.02868652, 1, 1), +(5, 1, '150101', 'Lima', 'Lima', -12.04591952, -77.03049615, 1, 1), +(6, 1, '230101', 'Tacna', 'Tacna', -18.0137008, -70.2507964, 0, 1); + +TRUNCATE `averia`; + +TRUNCATE `camion`; +INSERT INTO `camion` (`id`, `activo`, `placa`, `kilometraje`, `estado`, `tipoCamion_fk`) VALUES +(1, 1, 'ETALLIC', 69420, 1, 1); + +TRUNCATE `cliente`; +INSERT INTO `cliente` (`id`, `activo`, `nombreCompleto`, `dni`, `correo`, `telefono`) VALUES +(1, 1, 'EmpresaAAA', '1234567890', 'contacto@empresaAAA.com', '123456789'), +(2, 1, 'EmpresaBBB', '1234567890', 'contacto@empresaBBB.com', '123456789'); + +TRUNCATE `pedido`; +INSERT INTO `pedido` (`id`, `activo`, `fechaPedido`, `cantidad`, `plazoEntrega`, `estado`, `codigoPedido`, `almacen_fk`, `cliente_fk`, `usuario_fk`, `PTG_fk`) VALUES +(2, 1, '2022-01-01 00:00:00', 10, 1, 0, '20220101_000001', 3, 1, 4, NULL); + +TRUNCATE `PTG`; +INSERT INTO `PTG` (`id`, `activo`, `fechaGenerado`, `esSimulacion`, `usuario_fk`) VALUES +(1, 1, '2022-06-01 05:10:47', 1, 1); + +TRUNCATE `region`; +INSERT INTO `region` (`id`, `activo`, `nombre`) VALUES +(1, 1, 'costa'), +(2, 1, 'sierra'), +(3, 1, 'selva'); + +TRUNCATE `rol`; +INSERT INTO `rol` (`id`, `activo`, `nombre`) VALUES +(1, 1, 'superuser'); + +TRUNCATE `ruta`; +INSERT INTO `ruta` (`id`, `activo`, `fechaInicio`, `fechaFin`, `PTG_fk`, `camion_fk`) VALUES +(1, 1, '2022-01-01 00:00:00', '2022-01-02 00:00:00', 1, 1); + +TRUNCATE `tipoAveria`; + +TRUNCATE `tipoCamion`; +INSERT INTO `tipoCamion` (`id`, `activo`, `nombre`, `capacidad`) VALUES +(1, 1, 'tipoA', 90), +(2, 1, 'tipoB', 45), +(3, 1, 'tipoC', 30); + +TRUNCATE `tramo`; +INSERT INTO `tramo` (`id`, `activo`, `distancia`, `estaBloqueado`, `almacen1_fk`, `almacen2_fk`) VALUES +(1, 1, 10, 0, 2, 5), +(2, 1, 10, 0, 3, 5), +(3, 1, 10, 0, 4, 5), +(4, 1, 10, 0, 6, 5), +(5, 1, 20, 0, 1, 4), +(6, 1, 20, 0, 4, 1), +(7, 1, 10, 0, 5, 2), +(8, 1, 10, 0, 5, 3), +(9, 1, 10, 0, 5, 4), +(10, 1, 10, 0, 5, 6); + +TRUNCATE `tramo_ruta`; +INSERT INTO `tramo_ruta` (`id`, `activo`, `orden`, `horaSalidaEst`, `horaLlegadaEst`, `horaSalidaReal`, `horaLlegadaReal`, `paquetesEntregar`, `ruta_fk`, `tramo_fk`) VALUES +(1, 1, 1, '2022-01-01 10:00:00', '2022-01-01 15:00:00', NULL, NULL, 0, 1, 9), +(2, 1, 2, '2022-01-01 16:00:00', '2022-01-01 21:00:00', NULL, NULL, 10, 1, 6); + +TRUNCATE `usuario`; +INSERT INTO `usuario` (`id`, `activo`, `usuario`, `clave`, `nombre`, `apellido`, `dni`, `correo`, `creador_fk`, `rol_fk`) VALUES +(1, 1, 'gabs', '*6AB7931FB2D104A478932D23AF4C7700D1A0C61A', 'Gabriela', 'Hernandez', '12345678', 'gabs@pucp.edu.pe', NULL, 1), +(2, 1, 'dayana', '*D279131EA232308E083B3EA192B78A0C15EA8701', 'Dayana', 'Alarcon', '12345678', 'dayana@pucp.edu.pe', 1, 1), +(3, 1, 'jannina', '*D279131EA232308E083B3EA192B84A0C15EA8701', 'Jannina', 'DeLosGodos', '12345678', 'jannina@pucp.edu.pe', 1, 1), +(4, 1, 'mitsuo', '*D279131EA232308E083B3EA192B74A0C15EA8701', 'Mitsuo', 'Tokumori', '12345678', 'mitsuo@pucp.edu.pe', 1, 1); + +-- 2022-06-01 06:13:09 diff --git a/back/sql/20220601dump.tables+views.sql b/back/sql/20220601dump.tables+views.sql new file mode 100644 index 0000000..7ff1c24 --- /dev/null +++ b/back/sql/20220601dump.tables+views.sql @@ -0,0 +1,245 @@ +-- Adminer 4.7.9 MySQL dump + +SET NAMES utf8; +SET time_zone = '+00:00'; +SET foreign_key_checks = 0; +SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; + +SET NAMES utf8mb4; + +DROP TABLE IF EXISTS `almacen`; +CREATE TABLE `almacen` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `ubigeo` varchar(10) NOT NULL, + `departamento` varchar(100) NOT NULL, + `provincia` varchar(100) NOT NULL, + `latitud` double NOT NULL, + `longitud` double NOT NULL, + `esPrincipal` int(11) NOT NULL, + `region_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `region_fk` (`region_fk`), + CONSTRAINT `almacen_ibfk_1` FOREIGN KEY (`region_fk`) REFERENCES `region` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `averia`; +CREATE TABLE `averia` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `descripcion` varchar(1000) NOT NULL, + `fechaRegistro` datetime NOT NULL, + `camion_fk` int(11) NOT NULL, + `tipoAveria_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `camion_fk` (`camion_fk`), + KEY `tipoAveria_fk` (`tipoAveria_fk`), + CONSTRAINT `averia_ibfk_1` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`), + CONSTRAINT `averia_ibfk_2` FOREIGN KEY (`tipoAveria_fk`) REFERENCES `tipoAveria` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `camion`; +CREATE TABLE `camion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `placa` varchar(10) NOT NULL, + `kilometraje` double NOT NULL, + `estado` int(11) NOT NULL, + `tipoCamion_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `tipoCamion_fk` (`tipoCamion_fk`), + CONSTRAINT `camion_ibfk_1` FOREIGN KEY (`tipoCamion_fk`) REFERENCES `tipoCamion` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `cliente`; +CREATE TABLE `cliente` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombreCompleto` varchar(100) NOT NULL, + `dni` varchar(10) NOT NULL, + `correo` varchar(100) NOT NULL, + `telefono` varchar(20) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `pedido`; +CREATE TABLE `pedido` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `fechaPedido` datetime NOT NULL, + `cantidad` int(11) NOT NULL, + `plazoEntrega` int(11) NOT NULL, + `estado` int(11) NOT NULL, + `codigoPedido` varchar(100) DEFAULT NULL, + `almacen_fk` int(11) NOT NULL, + `cliente_fk` int(11) NOT NULL, + `usuario_fk` int(11) NOT NULL, + `PTG_fk` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `usuario_fk` (`usuario_fk`), + KEY `PTG_fk` (`PTG_fk`), + KEY `cliente_fk` (`cliente_fk`), + KEY `almacen_fk` (`almacen_fk`), + CONSTRAINT `pedido_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`), + CONSTRAINT `pedido_ibfk_2` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), + CONSTRAINT `pedido_ibfk_3` FOREIGN KEY (`cliente_fk`) REFERENCES `cliente` (`id`), + CONSTRAINT `pedido_ibfk_4` FOREIGN KEY (`almacen_fk`) REFERENCES `almacen` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `PTG`; +CREATE TABLE `PTG` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `fechaGenerado` datetime NOT NULL, + `esSimulacion` int(11) NOT NULL, + `usuario_fk` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `usuario_fk` (`usuario_fk`), + CONSTRAINT `PTG_ibfk_1` FOREIGN KEY (`usuario_fk`) REFERENCES `usuario` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `region`; +CREATE TABLE `region` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `rol`; +CREATE TABLE `rol` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` varchar(100) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `ruta`; +CREATE TABLE `ruta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `fechaInicio` datetime NOT NULL, + `fechaFin` datetime NOT NULL, + `PTG_fk` int(11) NOT NULL, + `camion_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `PTG_fk` (`PTG_fk`), + KEY `camion_fk` (`camion_fk`), + CONSTRAINT `ruta_ibfk_1` FOREIGN KEY (`PTG_fk`) REFERENCES `PTG` (`id`), + CONSTRAINT `ruta_ibfk_2` FOREIGN KEY (`camion_fk`) REFERENCES `camion` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tipoAveria`; +CREATE TABLE `tipoAveria` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` int(11) NOT NULL, + `duracion` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tipoCamion`; +CREATE TABLE `tipoCamion` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `nombre` varchar(100) NOT NULL, + `capacidad` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tramo`; +CREATE TABLE `tramo` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `distancia` double NOT NULL, + `estaBloqueado` int(11) NOT NULL, + `almacen1_fk` int(11) NOT NULL, + `almacen2_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `almacen1_fk` (`almacen1_fk`), + KEY `almacen2_fk` (`almacen2_fk`), + CONSTRAINT `tramo_ibfk_1` FOREIGN KEY (`almacen1_fk`) REFERENCES `almacen` (`id`), + CONSTRAINT `tramo_ibfk_2` FOREIGN KEY (`almacen2_fk`) REFERENCES `almacen` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `tramo_ruta`; +CREATE TABLE `tramo_ruta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `orden` int(11) NOT NULL, + `horaSalidaEst` datetime NOT NULL, + `horaLlegadaEst` datetime NOT NULL, + `horaSalidaReal` datetime DEFAULT NULL, + `horaLlegadaReal` datetime DEFAULT NULL, + `paquetesEntregar` int(11) NOT NULL, + `ruta_fk` int(11) NOT NULL, + `tramo_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `ruta_fk` (`ruta_fk`), + KEY `tramo_fk` (`tramo_fk`), + CONSTRAINT `tramo_ruta_ibfk_1` FOREIGN KEY (`ruta_fk`) REFERENCES `ruta` (`id`), + CONSTRAINT `tramo_ruta_ibfk_2` FOREIGN KEY (`tramo_fk`) REFERENCES `tramo` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP TABLE IF EXISTS `usuario`; +CREATE TABLE `usuario` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `activo` int(11) NOT NULL, + `usuario` varchar(100) NOT NULL, + `clave` varchar(100) NOT NULL, + `nombre` varchar(100) NOT NULL, + `apellido` varchar(100) NOT NULL, + `dni` varchar(10) NOT NULL, + `correo` varchar(100) NOT NULL, + `creador_fk` int(11) DEFAULT NULL, + `rol_fk` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `creador_fk` (`creador_fk`), + KEY `rol_fk` (`rol_fk`), + CONSTRAINT `usuario_ibfk_2` FOREIGN KEY (`creador_fk`) REFERENCES `usuario` (`id`), + CONSTRAINT `usuario_ibfk_3` FOREIGN KEY (`rol_fk`) REFERENCES `usuario` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +DROP VIEW IF EXISTS `v_almacen`; +CREATE TABLE `v_almacen` (`ubigeo` varchar(10), `departamento` varchar(100), `provincia` varchar(100), `latitud` double, `longitud` double, `esPrincipal` int(11), `region` varchar(100)); + + +DROP VIEW IF EXISTS `v_camion`; +CREATE TABLE `v_camion` (`id` int(11), `placa` varchar(10), `kilometraje` double, `estado` int(11), `tipo` varchar(100), `capacidad` int(11)); + + +DROP VIEW IF EXISTS `v_pedido`; +CREATE TABLE `v_pedido` (`cliente` varchar(100), `RUC` varchar(10), `ubigeo` varchar(10), `provincia` varchar(100), `cantidad` int(11), `fechaPedido` datetime, `plazoEntrega` int(11), `estado` int(11), `URL_pedido` varchar(100), `registrado por` varchar(100)); + + +DROP VIEW IF EXISTS `v_usuario`; +CREATE TABLE `v_usuario` (`usuario` varchar(100), `nombre` varchar(100), `apellido` varchar(100), `dni` varchar(10), `correo` varchar(100), `registered by` varchar(100), `rol` varchar(100)); + + +DROP TABLE IF EXISTS `v_almacen`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_almacen` AS select `a`.`ubigeo` AS `ubigeo`,`a`.`departamento` AS `departamento`,`a`.`provincia` AS `provincia`,`a`.`latitud` AS `latitud`,`a`.`longitud` AS `longitud`,`a`.`esPrincipal` AS `esPrincipal`,`r`.`nombre` AS `region` from (`almacen` `a` join `region` `r` on(`a`.`region_fk` = `r`.`id`)) where a.activo = 1; + +DROP TABLE IF EXISTS `v_camion`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_camion` AS select `c`.`id` AS `id`,`c`.`placa` AS `placa`,`c`.`kilometraje` AS `kilometraje`,`c`.`estado` AS `estado`,`tc`.`nombre` AS `tipo`,`tc`.`capacidad` AS `capacidad` from (`camion` `c` join `tipoCamion` `tc` on(`c`.`tipoCamion_fk` = `tc`.`id`)) where c.activo = 1; + +DROP TABLE IF EXISTS `v_pedido`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_pedido` AS select `cli`.`nombreCompleto` AS `cliente`,`cli`.`dni` AS `RUC`,`alm`.`ubigeo` AS `ubigeo`,`alm`.`provincia` AS `provincia`,`ped`.`cantidad` AS `cantidad`,`ped`.`fechaPedido` AS `fechaPedido`,`ped`.`plazoEntrega` AS `plazoEntrega`,`ped`.`estado` AS `estado`,`ped`.`codigoPedido` AS `URL_pedido`,`usu`.`usuario` AS `registrado por` from (((`pedido` `ped` join `cliente` `cli` on(`ped`.`cliente_fk` = `cli`.`id`)) join `usuario` `usu` on(`ped`.`usuario_fk` = `usu`.`id`)) join `almacen` `alm` on(`ped`.`almacen_fk` = `alm`.`id`)) where ped.activo = 1; + +DROP TABLE IF EXISTS `v_usuario`; +CREATE ALGORITHM=UNDEFINED DEFINER=`gabs`@`%.%.%.%` SQL SECURITY DEFINER VIEW `v_usuario` AS select `u`.`usuario` AS `usuario`,`u`.`nombre` AS `nombre`,`u`.`apellido` AS `apellido`,`u`.`dni` AS `dni`,`u`.`correo` AS `correo`,`u2`.`nombre` AS `registered by`,`r`.`nombre` AS `rol` from ((`usuario` `u` left join `usuario` `u2` on(`u`.`creador_fk` = `u2`.`id`)) join `rol` `r` on(`u`.`rol_fk` = `r`.`id`)) where u.activo = 1; + +-- 2022-06-01 06:30:20 -- cgit v1.2.3 From e9cb09907f8dbc9a4a64549a3ea4d1d8313e7c25 Mon Sep 17 00:00:00 2001 From: Mitsuo Tokumori Date: Wed, 1 Jun 2022 13:06:34 -0500 Subject: Fix application.settings, try with different... AlmacenDaoImp.getAll --- .../main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java | 6 ++++-- back/odiparback/src/main/resources/application.properties | 9 ++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java index c1967b5..7a17ded 100644 --- a/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java +++ b/back/odiparback/src/main/java/pe/edu/pucp/odiparback/dao/imp/AlmacenDaoImp.java @@ -23,8 +23,10 @@ public class AlmacenDaoImp implements AlmacenDao { public List getAll() { List resultado = null; try{ - String query = "SELECT * FROM almacen"; - resultado = entityManager.createQuery(query).getResultList(); + String hql = "FROM almacen "; + resultado = entityManager.createQuery(hql).getResultList(); +// String query = "SELECT * FROM almacen"; +// resultado = entityManager.createQuery(query).getResultList(); } catch(Exception ex){ System.out.print(ex.getMessage()); diff --git a/back/odiparback/src/main/resources/application.properties b/back/odiparback/src/main/resources/application.properties index bdbd503..6c4feb8 100644 --- a/back/odiparback/src/main/resources/application.properties +++ b/back/odiparback/src/main/resources/application.properties @@ -1,4 +1,7 @@ -spring.datasource.url=jdbc:mysql://tokumori.xyz:3306/ -spring.datasource.dbname=odiparback +# MySQL +spring.datasource.url=jdbc:mysql://tokumori.xyz:3306/odiparback spring.datasource.username=gabs -spring.datasource.password=odiparfront +spring.datasource.password=odiparfront123odiparfront123odiparfront123 +spring.datasource.driver-class-name=com.mysql.jdbc.Driver +spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect +# com.mysql.cj.jdbc.Driver (new driver) \ No newline at end of file -- cgit v1.2.3