summaryrefslogtreecommitdiffstats
path: root/front/odiparpack
diff options
context:
space:
mode:
Diffstat (limited to 'front/odiparpack')
-rw-r--r--front/odiparpack/app/actions/actionTypes.js5
-rw-r--r--front/odiparpack/app/actions/camion.js74
-rw-r--r--front/odiparpack/app/actions/tipoCamion.js19
-rw-r--r--front/odiparpack/app/api/camion.js17
-rw-r--r--front/odiparpack/app/api/pedido.js2
-rw-r--r--front/odiparpack/app/api/tipoCamion.js10
-rw-r--r--front/odiparpack/app/components/Tables/CrudTableForm.js15
-rw-r--r--front/odiparpack/app/components/Tables/tableParts/RowReadOnly.js2
-rw-r--r--front/odiparpack/app/containers/Odipar/Camiones/CamionTab/CamionTab.js7
-rw-r--r--front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/CrudCamionTab.js28
-rw-r--r--front/odiparpack/app/containers/Odipar/Camiones/CamionTab/table/FormCamionTab.js66
-rw-r--r--front/odiparpack/app/containers/Odipar/Simulacion/SimulacionMain.js32
-rw-r--r--front/odiparpack/app/redux/modules/camion.js4
-rw-r--r--front/odiparpack/app/redux/modules/tipoCamion.js16
-rw-r--r--front/odiparpack/app/utils/odipar/api.js1
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 })
}