diff options
Diffstat (limited to 'front/odiparpack')
15 files changed, 243 insertions, 55 deletions
diff --git a/front/odiparpack/app/actions/actionTypes.js b/front/odiparpack/app/actions/actionTypes.js index 11884c0..36d1b07 100644 --- a/front/odiparpack/app/actions/actionTypes.js +++ b/front/odiparpack/app/actions/actionTypes.js @@ -93,3 +93,8 @@ export const LISTA_PEDIDO = 'LISTA_PEDIDO'; export const LISTA_ALMACEN = 'LISTA_ALMACEN'; //Odi Camion export const LISTA_CAMION = 'LISTA_CAMION'; +export const NUEVO_CAMION = 'NUEVO_CAMION'; +export const ACTUALIZAR_CAMION = 'ACTUALIZAR_CAMION'; +export const ELIMINAR_CAMION = 'ELIMINAR_CAMION'; + +export const LISTA_TIPO_CAMION = 'LISTA_TIPO_CAMION'; diff --git a/front/odiparpack/app/actions/camion.js b/front/odiparpack/app/actions/camion.js index 6fdd2c6..dc60eee 100644 --- a/front/odiparpack/app/actions/camion.js +++ b/front/odiparpack/app/actions/camion.js @@ -1,6 +1,12 @@ import { - getCamionAPI + getCamionAPI, + insertarCamionAPI, + editarCamionAPI, + eliminarCamionAPI } from 'ba-api/camion'; +import { + getTipoCamionXNombreAPI +} from 'ba-api/tipoCamion'; import * as types from './actionTypes' export const setCamiones = (payload) => ({ @@ -8,6 +14,21 @@ export const setCamiones = (payload) => ({ payload }); +export const insertCamiones = (payload) => ({ + type: types.NUEVO_CAMION, + payload +}); + +export const updateCamiones = (payload) => ({ + type: types.ACTUALIZAR_CAMION, + payload +}); + +export const deleteCamiones = (payload) => ({ + type: types.ELIMINAR_CAMION, + payload +}); + /***************************************/ export function b2fCamiones(x){ const {...other} = x @@ -23,6 +44,24 @@ export function b2fCamiones(x){ } } +export function f2bCamion(x, tipo){ + console.log("Antes", tipo) + console.log("data new", x.get('id')) + const data = { + id: x.get('id')? x.get('id'): undefined, + placa: x.get('placa'), + codigo: "A0005", + estado: x.get('estado'), + kilometraje: 50.0, + tipoCamion: { + id: tipo.id, + nombre: tipo.nombre, + capacidad: tipo.capacidad + } + } + return data +} + /***************************************/ export const getCamiones = () => async dispatch => { @@ -37,3 +76,36 @@ export const getCamiones = () => async dispatch => { console.log(e) } } + +export const insertarCamion = (data) => async dispatch => { + try{ + const resTipo = await getTipoCamionXNombreAPI(data.get('tipo')); + const res = await insertarCamionAPI(f2bCamion(data, resTipo.data)); + dispatch(insertCamiones({res})) + return res; + }catch(e){ + console.log(e) + } +} + +export const editarCamion = (data) => async dispatch => { + try{ + const resTipo = await getTipoCamionXNombreAPI(data.get('tipo')); + const res = await editarCamionAPI(f2bCamion(data, resTipo.data)); + dispatch(updateCamiones({res})) + return res; + }catch(e){ + console.log(e) + } +} + +export const eliminarCamion = (data) => async dispatch => { + try{ + //Envia id + const res = await eliminarCamionAPI(data); + dispatch(deleteCamiones({res})) + return res; + }catch(e){ + console.log(e) + } +} diff --git a/front/odiparpack/app/actions/tipoCamion.js b/front/odiparpack/app/actions/tipoCamion.js new file mode 100644 index 0000000..06a47d6 --- /dev/null +++ b/front/odiparpack/app/actions/tipoCamion.js @@ -0,0 +1,19 @@ +import { + getTiposCamionAPI +} from 'ba-api/tipoCamion'; +import * as types from './actionTypes' + +export const setTipoCamiones = (payload) => ({ + type: types.LISTA_TIPO_CAMION, + payload +}); + +export const getTipoCamiones = () => async dispatch => { + try{ + const res = await getTiposCamionAPI(); + dispatch(setTipoCamiones({res})) + return res; + }catch(e){ + console.log(e) + } +}
\ No newline at end of file diff --git a/front/odiparpack/app/api/camion.js b/front/odiparpack/app/api/camion.js index 8229bbf..b368522 100644 --- a/front/odiparpack/app/api/camion.js +++ b/front/odiparpack/app/api/camion.js @@ -1,6 +1,21 @@ -import { apiGet } from '../utils/odipar/api'; +import { apiDelete, apiGet, apiPost, apiPut } from '../utils/odipar/api'; //GET APIS export const getCamionAPI = async () => { return await apiGet(`camion/`) } + +//POST APIS +export const insertarCamionAPI = async (data) => { + return await apiPost(`camion/`, data) +} + +//PUT APIS +export const editarCamionAPI = async (data) => { + return await apiPut(`camion/`, data) +} + +//DELETE APIS +export const eliminarCamionAPI = async (id) => { + return await apiDelete(`camion/${id}`) +} diff --git a/front/odiparpack/app/api/pedido.js b/front/odiparpack/app/api/pedido.js index 63d6e2e..0b7e3d1 100644 --- a/front/odiparpack/app/api/pedido.js +++ b/front/odiparpack/app/api/pedido.js @@ -3,7 +3,7 @@ import { apiGet } from '../utils/odipar/api'; //GET APIS export const getPedidosAPI = async () => { - return await apiGet(`ayuda/`) + return await apiGet(`camion/`) } export function getAPi(){ diff --git a/front/odiparpack/app/api/tipoCamion.js b/front/odiparpack/app/api/tipoCamion.js new file mode 100644 index 0000000..d932d10 --- /dev/null +++ b/front/odiparpack/app/api/tipoCamion.js @@ -0,0 +1,10 @@ +import { apiGet } from '../utils/odipar/api'; + +//GET APIS +export const getTiposCamionAPI = async () => { + return await apiGet(`tipoCamion/`) +} + +export const getTipoCamionXNombreAPI = async (nombre) => { + return await apiGet(`tipoCamion/nombre=${nombre}`) +}
\ No newline at end of file diff --git a/front/odiparpack/app/components/Tables/CrudTableForm.js b/front/odiparpack/app/components/Tables/CrudTableForm.js index 017a3fc..5e99280 100644 --- a/front/odiparpack/app/components/Tables/CrudTableForm.js +++ b/front/odiparpack/app/components/Tables/CrudTableForm.js @@ -15,21 +15,30 @@ class CrudTableForm extends React.Component { this.props.fetchData(this.props.dataInit, this.props.branch); } } + + renderData(){ + this.props.dispatch(this.props.getDataAPI()).then((res) => { + if (res) { + this.props.fetchData(res.data, this.props.branch); + } + }) + }6 + 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) => { + this.props.dispatch(this.props.editRowAPI(values)).then((res) => { if (res) { console.log("EDIT RO ", res) } }) } else { - this.props.dispatch(this.props.addNewAPI()).then((res) => { + this.props.dispatch(this.props.addNewAPI(values)).then((res) => { if (res) { - console.log("ADD NEW FORM ", res) + this.renderData(); } }) } diff --git a/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js b/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js index f6be3fd..5e58ca7 100644 --- a/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js +++ b/front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js @@ -29,7 +29,7 @@ class RowReadOnly extends React.Component { } = this.props; const eventDel = () => { removeRow(item, branch); - this.props.dispatch(removeRowAPI()).then((res) => { + this.props.dispatch(removeRowAPI(item.get('id'))).then((res) => { if (res) { console.log("REMOVE READ ONLY ", res) } diff --git a/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/CamionTab.js b/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/CamionTab.js index 5110566..bd86653 100644 --- a/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/CamionTab.js +++ b/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/CamionTab.js @@ -16,6 +16,7 @@ const styles = ({ }); class CamionTab extends Component { + //Obtenemos la lista constructor (props) { super(props) this.state = { @@ -26,7 +27,6 @@ class CamionTab extends Component { this.setState({ dataRealF: res.data, }); - console.log("Vengo del back", res.data) } }) } @@ -34,10 +34,9 @@ class CamionTab extends Component { render() { const {dataRealF} = this.state; - const { classes } = this.props; return ( - - <CrudCamionTab title = "Listado de Camiones" dataReal={dataRealF}/> + //Mandamos la lista(dataRealF) y la funcion del GET + <CrudCamionTab title = "Listado de Camiones" dataReal={dataRealF} getDataAPI={getCamiones}/> ); } diff --git a/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/CrudCamionTab.js b/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/CrudCamionTab.js index 11c0805..6d5f366 100644 --- a/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/CrudCamionTab.js +++ b/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/CrudCamionTab.js @@ -19,8 +19,10 @@ import { } from '@material-ui/core'; import { anchorTable, dataApi } from './dataCamion'; import FormCamionTab from './FormCamionTab'; + //actions -import { getPedidos } from 'ba-actions/pedido'; +import { insertarCamion, editarCamion, eliminarCamion } from 'ba-actions/camion'; + const branch = 'crudCamion'; const renderRadioGroup = ({ input, ...rest }) => ( @@ -42,7 +44,7 @@ const styles = ({ class CrudCamionTab extends Component { render() { - //console.log("render ps") + //Obtenemos dataReal y getDataAPI const { classes, fetchData, @@ -59,16 +61,17 @@ class CrudCamionTab extends Component { title, dataReal, dispatch, - editingId + editingId, + getDataAPI } = this.props; - //console.log("render ps DATA", dataReal) - //console.log("original", dataApi) - return ( <div> <Notification close={() => closeNotif(branch)} variant = "success" message={messageNotif} /> <Paper className={classes.root}> + {/* Enviamos dataReal como dataInit y getDataAPI. + También, mandamos addNewAPI, removeRowAPI, editRowAPI (con funciones de arriba "//actions") + */} <CrudTableForm dataTable={dataTable} openForm={openForm} @@ -83,14 +86,17 @@ class CrudCamionTab extends Component { editRow={editRow} branch={branch} initValues={initValues} - addNewAPI={getPedidos} - removeRowAPI={getPedidos} - editRowAPI={getPedidos} + getDataAPI = {getDataAPI} + addNewAPI={insertarCamion} + removeRowAPI={eliminarCamion} + editRowAPI={editarCamion} dispatch = {dispatch} editingId = {editingId} > - {/* Create Your own form, then arrange or custom it as You like */} - <FormCamionTab/> + {/* Create Your own form, then arrange or custom it as You like + ------------> OJO Mandamos dispatch + */} + <FormCamionTab dispatch = {dispatch}/> {/* No need create button or submit, because that already made in this component */} </CrudTableForm> </Paper> diff --git a/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/FormCamionTab.js b/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/FormCamionTab.js index 25d107c..f98ae20 100644 --- a/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/FormCamionTab.js +++ b/front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/FormCamionTab.js @@ -2,19 +2,17 @@ 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 {required} from 'ba-api/validation' import { SelectRedux, - TextFieldRedux, - DatePickerRedux, - EstadoRedux + TextFieldRedux } from 'ba-components/Forms/ReduxFormMUI'; import { MenuItem, InputLabel, - FormControl, - Typography, + FormControl } from '@material-ui/core'; + import { getTipoCamiones } from 'ba-actions/tipoCamion'; const styles = ({ root: { @@ -34,25 +32,56 @@ const styles = ({ flexDirection: 'row' } }); - + +const tipoCamion = [ + { + id: 1, + nombre: "A", + capacidad: 90 + }, + { + id: 2, + nombre: "B", + capacidad: 45 + }, + { + id: 3, + nombre: "C", + capacidad: 30 + }, + { + id: 4, + nombre: "D", + capacidad: 30 + } +] + class FormCamionTab extends Component { + constructor (props) { + super(props) + this.state = { + comboTipos: [] + }; + this.props.dispatch(getTipoCamiones()).then((res) => { + if (res) { + this.setState({ + comboTipos: res.data? res.data : [] + }); + } + }) + } + + 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; + const {comboTipos} = this.state return ( <> <div> @@ -75,8 +104,11 @@ class FormCamionTab extends Component { placeholder="Seleccionar" autoWidth={trueBool} > - <MenuItem value="A">A</MenuItem> - <MenuItem value="B">B</MenuItem> + {comboTipos.map((item,index) => { + return ( + <MenuItem value={item.nombre}>{item.nombre}</MenuItem> + ) + })} </Field> </FormControl> </div> diff --git a/front/odiparpack/app/containers/Odipar/Simulacion/SimulacionMain.js b/front/odiparpack/app/containers/Odipar/Simulacion/SimulacionMain.js index b9447d8..52d821f 100644 --- a/front/odiparpack/app/containers/Odipar/Simulacion/SimulacionMain.js +++ b/front/odiparpack/app/containers/Odipar/Simulacion/SimulacionMain.js @@ -1,8 +1,9 @@ import React, {Component} from "react"; import { Button, Divider, FormControl, Grid, InputLabel, MenuItem, Paper, Select, Typography } from "@material-ui/core"; import { withStyles } from '@material-ui/core/styles'; -import { Field, reduxForm } from "redux-form"; -import { SelectRedux } from 'ba-components/Forms/ReduxFormMUI'; +import { Link } from 'react-router-dom'; +import { reduxForm } from "redux-form"; + const styles = ({ root: { @@ -30,13 +31,9 @@ class SimulacionMain extends Component { tipo:'' } - changeTipo(tipo){ - this.setState({tipo: tipo}) - } - handleChange = event => { - this.setState({ [event.target.name]: event.target.value }); - }; + this.setState({ tipo: event.target.value }); + }; render() { const trueBool = true; @@ -56,27 +53,32 @@ class SimulacionMain extends Component { <form> <div> <FormControl className={classes.field}> - <InputLabel htmlFor="selection">Tipo de simulación</InputLabel> + <InputLabel htmlFor="tipoid">Tipo de simulación</InputLabel> <Select + value={this.state.tipo} + onChange={this.handleChange} + placeholder="Seleccionar" + autoWidth={trueBool} inputProps={{ name: 'tipo', id: 'tipoid', }} - value={initData.selection} - onChange={this.handleChange} - placeholder="Seleccionar" - autoWidth={trueBool} > - <MenuItem value = "option1" >Simulación a 7 días</MenuItem> - <MenuItem value="option2" >Simulación a colapso</MenuItem> + <MenuItem value ={"option1"} >Simulación a 7 días</MenuItem> + <MenuItem value={"option2"} >Simulación as colapso</MenuItem> </Select> </FormControl> </div> <div> + <Link to ={{ + pathname:"/app/simulacion" + }} style={{ textDecoration: 'none' }}> + <Button variant="contained" color="secondary"> Iniciar Simulación </Button> + </Link> </div> </form> </Grid> diff --git a/front/odiparpack/app/redux/modules/camion.js b/front/odiparpack/app/redux/modules/camion.js index 5cfe7d8..03394d7 100644 --- a/front/odiparpack/app/redux/modules/camion.js +++ b/front/odiparpack/app/redux/modules/camion.js @@ -1,4 +1,4 @@ -import { LISTA_CAMION } from 'ba-actions/actionTypes'; +import { LISTA_CAMION, NUEVO_CAMION } from 'ba-actions/actionTypes'; const initState = { camiones : [] @@ -8,6 +8,8 @@ const camion = (state = initState, action) => { switch (action.type) { case LISTA_CAMION: return { ...state, camiones: action.payload } + case NUEVO_CAMION: + return { ...state } default : return state } diff --git a/front/odiparpack/app/redux/modules/tipoCamion.js b/front/odiparpack/app/redux/modules/tipoCamion.js new file mode 100644 index 0000000..c5e690a --- /dev/null +++ b/front/odiparpack/app/redux/modules/tipoCamion.js @@ -0,0 +1,16 @@ +import { LISTA_TIPO_CAMION } from 'ba-actions/actionTypes'; + +const initState = { + tipos : [] +} + +const camion = (state = initState, action) => { + switch (action.type) { + case LISTA_TIPO_CAMION: + return { ...state, tipos: action.payload } + default : + return state + } +} + +export default camion;
\ No newline at end of file diff --git a/front/odiparpack/app/utils/odipar/api.js b/front/odiparpack/app/utils/odipar/api.js index 50c2beb..3f6f726 100644 --- a/front/odiparpack/app/utils/odipar/api.js +++ b/front/odiparpack/app/utils/odipar/api.js @@ -43,6 +43,7 @@ export function apiReq(endPoint, data, method, headers, requestOptions = {}) { } } + console.log("AAAAAAAaaaaaaa?", data) return axios[method](endPoint, data, { headers }) } |
