|
|
|
@ -112,6 +112,8 @@ import moment from 'moment' |
|
|
|
|
import ICorresponsalContenedores from '../../Interfaces/Corresponsales/ICorresponsalContenedores' |
|
|
|
|
import ICorresponsalFacturas from '../../Interfaces/Corresponsales/ICorresponsalFacturas' |
|
|
|
|
import { ITiposMercancias } from '../../Interfaces/Catalogos/ICatTiposMercancias' |
|
|
|
|
import axios from 'axios' |
|
|
|
|
import { TargetURL } from '../../Constants/TargetURL' |
|
|
|
|
|
|
|
|
|
interface IProps { |
|
|
|
|
IDTrafico: number |
|
|
|
@ -133,6 +135,7 @@ interface IAduanas { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
const URL = new TargetURL() |
|
|
|
|
const dispatch = useDispatch() |
|
|
|
|
const [UserId, setUserId] = useState(() => { |
|
|
|
|
const stickyValue = window.localStorage.getItem('UserId') |
|
|
|
@ -1055,7 +1058,7 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
if(Depto === 'Corresponsalias') saveCorresponsaliasStep() |
|
|
|
|
else if(Depto === 'Contabilidad') saveContabilidadStep() |
|
|
|
|
} |
|
|
|
|
const saveFinalStep = (data: DTOTraficoCompleto) => { |
|
|
|
|
const saveFinalStep = async (data: DTOTraficoCompleto) => { |
|
|
|
|
CTrafDataService.ValidateComplete(data) |
|
|
|
|
.then((response) => { |
|
|
|
|
if (response.status === 200) { |
|
|
|
@ -1096,21 +1099,28 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const saveContabilidadStep = () => { |
|
|
|
|
const saveContabilidadStep = async () => { |
|
|
|
|
if(IDEstatusContabilidad === 0){ |
|
|
|
|
setHeader('Informativo') |
|
|
|
|
setMsg('Debe aceptar el tráfico o seleccionar un motivo de rechazo.') |
|
|
|
|
setShowMsg(true) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
let arrStatus = mCCCEstatus.filter((a) => { |
|
|
|
|
if (a.id === IDEstatusContabilidad) { |
|
|
|
|
return a |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
if(IDEstatusContabilidad === 7){
|
|
|
|
|
|
|
|
|
|
let data: DTOTraficoCompleto = { |
|
|
|
|
id: IDTrafico, |
|
|
|
|
idUsuario: UserId, |
|
|
|
|
estatus: 3, |
|
|
|
|
estatus: Proceso === 2 ? 3 : 4, |
|
|
|
|
comentarios: arrStatus[0].estatus |
|
|
|
|
} |
|
|
|
|
saveFinalStep(data) |
|
|
|
|
await saveFinalStep(data).then(async (r) => { |
|
|
|
|
if(Proceso === 2) await generateFacturacionTxt(); |
|
|
|
|
}); |
|
|
|
|
}else{ |
|
|
|
|
let data: ICorresponsalesTraficoContabilidad = { |
|
|
|
|
id: 0, |
|
|
|
@ -1118,13 +1128,23 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
idTrafico: IDTrafico, |
|
|
|
|
statusProceso: 0, |
|
|
|
|
fechaRegistro: '', |
|
|
|
|
razonRechazo: arrStatus[0]?.estatus ? arrStatus[0]?.estatus : "", |
|
|
|
|
tipo: 2 |
|
|
|
|
razonRechazo: arrStatus[0].estatus, |
|
|
|
|
tipo: Proceso === 2 ? 2 : 3 |
|
|
|
|
} |
|
|
|
|
rejectCurrentStep(data) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const saveFacturacionStep = () => { |
|
|
|
|
let data: DTOTraficoCompleto = { |
|
|
|
|
id: IDTrafico, |
|
|
|
|
idUsuario: UserId, |
|
|
|
|
estatus: 5, |
|
|
|
|
comentarios: "Tráfico facturado." |
|
|
|
|
} |
|
|
|
|
saveFinalStep(data) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const rejectCurrentStep = (data:ICorresponsalesTraficoContabilidad) => { |
|
|
|
|
CContaDataService.Append(data) |
|
|
|
|
.then( () => { |
|
|
|
@ -1249,7 +1269,7 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const generateFacturacionTxt = () => { |
|
|
|
|
const generateFacturacionTxt = async () => { |
|
|
|
|
let cliente = Clientes?.filter(x => x.sClave === IDCliente)[0]; |
|
|
|
|
let tipoMercancia = TiposMercancia.filter(x => x.id === IDTipoMercancia)[0]; |
|
|
|
|
let facturas = mCFacturas.filter(factura => factura.id > 0); |
|
|
|
@ -1272,12 +1292,20 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
fileData += `0|""|""|""|""|""|""|""|""|${ValorFacturasDls}|""|""|336|""|/ / : :|${moment().format("MM/DD/YYYY hh:mm:ss")}|${moment().format("MM/DD/YYYY hh:mm:ss")}|`; |
|
|
|
|
//
|
|
|
|
|
fileData += `0|""|""|""|0|0|0|F|""|0|""|""|0|0|0|0|""|"1-9999"`; |
|
|
|
|
const blob = new Blob([fileData], { type: "text/plain" }); |
|
|
|
|
const url = URL.createObjectURL(blob); |
|
|
|
|
//const blob = new Blob([fileData], { type: "text/plain" });
|
|
|
|
|
const file = new File([fileData], `${FolioTrafico}_${Date.now()}.txt`, {type: "text/plain"}); |
|
|
|
|
let formData = new FormData(); |
|
|
|
|
formData.append('file', file); |
|
|
|
|
await axios.post( |
|
|
|
|
URL.get() + |
|
|
|
|
`/FileManager/AppendFileByProcess?IdUsuario=${UserId}&Proceso=${31}&Tags=${IDTrafico}&crud=1`, |
|
|
|
|
formData |
|
|
|
|
); |
|
|
|
|
/*const url = URL.createObjectURL(blob); |
|
|
|
|
const link = document.createElement("a"); |
|
|
|
|
link.download = `${FolioTrafico}_${Date.now()}.txt`; |
|
|
|
|
link.href = url; |
|
|
|
|
link.click(); |
|
|
|
|
link.click();*/ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const concatFacturasPedidos = (facturas: ICorresponsalFacturas[]) => { |
|
|
|
@ -2309,12 +2337,12 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
onChange={(date: any) => |
|
|
|
|
setFechaDesaduanamiento(date) |
|
|
|
|
} |
|
|
|
|
disabled={Depto === 'Contabilidad'} |
|
|
|
|
disabled={Depto !== 'Corresponsalias'} |
|
|
|
|
showTimeSelect |
|
|
|
|
timeClassName={handleColor} |
|
|
|
|
dateFormat="MM/dd/yyyy HH:mm:ss" |
|
|
|
|
placeholderText="MM/DD/AAAA HH:mm:ss" |
|
|
|
|
isClearable |
|
|
|
|
isClearable={Depto === 'Corresponsalias'} |
|
|
|
|
customInput={ |
|
|
|
|
<MaskedInput |
|
|
|
|
type="text" |
|
|
|
@ -2604,7 +2632,7 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
<Row |
|
|
|
|
style={{ |
|
|
|
|
padding:"5px 0", |
|
|
|
|
visibility: Proceso === 2 && Depto === 'Contabilidad'? 'visible' : 'hidden' |
|
|
|
|
visibility: ((Proceso === 2 && Depto === 'Contabilidad') || (Proceso === 3 && Depto === 'Facturacion'))? 'visible' : 'hidden' |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
<Col xs={5}></Col> |
|
|
|
@ -2631,7 +2659,7 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
</Form.Control> |
|
|
|
|
</Col> |
|
|
|
|
<Col xs={1} style={{}}> |
|
|
|
|
{Depto === 'Contabilidad' ? ( |
|
|
|
|
{Depto === 'Contabilidad' || Depto === 'Facturacion'? ( |
|
|
|
|
<Button |
|
|
|
|
variant="primary" |
|
|
|
|
size="sm" |
|
|
|
@ -2650,7 +2678,7 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
)} |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
<Row style={{display: Depto === 'Facturacion' ? 'flex': 'none'}}> |
|
|
|
|
<Row style={{display: Depto === 'Facturacion' && Proceso === 4 ? 'flex': 'none'}}> |
|
|
|
|
<Col xs={12} style={{textAlign:'end'}}> |
|
|
|
|
<Button |
|
|
|
|
variant="primary" |
|
|
|
@ -2660,10 +2688,10 @@ export default function TraficoCorresponsales (props:IProps) { |
|
|
|
|
paddingRight: '25px' |
|
|
|
|
}} |
|
|
|
|
onClick={() => { |
|
|
|
|
generateFacturacionTxt(); |
|
|
|
|
saveFacturacionStep(); |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
Generar TXT |
|
|
|
|
Terminar |
|
|
|
|
</Button> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|