incorporar facturacion a razones sociales distintas

feature/ConsolidarPedimentos_20231229
Felix Morales 1 year ago
commit 1d45606cf3
  1. 24
      src/Components/Catalogos/CatCentroCostos/CatCentroCostos.tsx
  2. 100
      src/Components/Corresponsales/TraficoCorresponsales.tsx
  3. 1
      src/DTO/DTOCatCentrosCostos.ts
  4. 1
      src/Interfaces/Catalogos/ICatCentroCostos.ts
  5. 2
      src/Services/Catalogos/CentrosCostos.Service.ts

@ -51,6 +51,7 @@ export const CatCentroConstos: FC = () => {
<th>Clave</th> <th>Clave</th>
<th>Cliente</th> <th>Cliente</th>
<th>Centro Costos</th> <th>Centro Costos</th>
<th>Cliente Facturacion</th>
<th></th> <th></th>
</thead> </thead>
<tbody> <tbody>
@ -82,6 +83,29 @@ export const CatCentroConstos: FC = () => {
}} }}
/> />
}</td> }</td>
<td>{
<CurrencyFormat
value={centroCosto.clienteFacturacion}
disabled={false}
displayType={'input'}
format={'####'}
style={{
fontSize: '18px',
backgroundColor: '#F1EEF9',
border: '2px solid #5923F6',
color: '#5923F6',
width: '100%',
textAlign: 'right',
borderRadius: '10px',
paddingRight: '10px',
paddingLeft: '10px',
}}
onValueChange={(values: any) => {
const {formattedValue, value, floatValue} = values;
centroCosto.clienteFacturacion = formattedValue;
}}
/>
}</td>
<td><Button variant="primary" onClick={() => saveCentroCosto(centroCosto, index)}>Guardar</Button></td> <td><Button variant="primary" onClick={() => saveCentroCosto(centroCosto, index)}>Guardar</Button></td>
</tr> </tr>
) )

@ -316,6 +316,9 @@ export default function TraficoCorresponsales (props:IProps) {
const [EncabezadoPedimento1, setEncabezadoPedimento1] = useState("Pedimento"); const [EncabezadoPedimento1, setEncabezadoPedimento1] = useState("Pedimento");
const [EncabezadoPedimento2, setEncabezadoPedimento2] = useState("."); const [EncabezadoPedimento2, setEncabezadoPedimento2] = useState(".");
const [CentroCostos, setCentroCostos] = useState<string>(''); const [CentroCostos, setCentroCostos] = useState<string>('');
const [ClaveClienteFacturacion, setClaveClienteFacturacion] = useState(0);
const [NombreClienteFacturacion, setNombreClienteFacturacion] = useState('')
const [RfcClienteFacturacion, setRfcClienteFacturacion] = useState('')
const [ClavesPedimentos, setClavesPedimentos] = useState<ICatClavesPedimentos[]>([]) const [ClavesPedimentos, setClavesPedimentos] = useState<ICatClavesPedimentos[]>([])
const FechaRegistro = currentDate() const FechaRegistro = currentDate()
const msgColor = 'primary' const msgColor = 'primary'
@ -528,6 +531,7 @@ export default function TraficoCorresponsales (props:IProps) {
} }
const LoadEverything = () => { const LoadEverything = () => {
let clientes: IClientes[] = [];
ClavesPedimentosService.getAllClavesPedimentos() ClavesPedimentosService.getAllClavesPedimentos()
.then(response => setClavesPedimentos(response.data)) .then(response => setClavesPedimentos(response.data))
.catch((e: Error) => { .catch((e: Error) => {
@ -609,6 +613,7 @@ export default function TraficoCorresponsales (props:IProps) {
}) })
ClientesDataService.getAllClientes(0) ClientesDataService.getAllClientes(0)
.then((response) => { .then((response) => {
clientes = response.data;
setClientes(response.data) setClientes(response.data)
}) })
.catch((e: Error) => { .catch((e: Error) => {
@ -684,7 +689,7 @@ export default function TraficoCorresponsales (props:IProps) {
setFolioTrafico(response.data.folioGemco) setFolioTrafico(response.data.folioGemco)
setProceso(response.data.proceso) setProceso(response.data.proceso)
setIDCliente(response.data.idCliente) setIDCliente(response.data.idCliente)
getCentroCostos(response.data.idCliente); getCentroCostos(response.data.idCliente, clientes);
setIDTabulador(response.data.idTabulador) setIDTabulador(response.data.idTabulador)
setTipoOperacion(response.data.tipoOperacion) setTipoOperacion(response.data.tipoOperacion)
setOpEntrada(response.data.opEntrada) setOpEntrada(response.data.opEntrada)
@ -1307,7 +1312,7 @@ export default function TraficoCorresponsales (props:IProps) {
let facturas = mCFacturas.filter(factura => factura.id > 0); let facturas = mCFacturas.filter(factura => factura.id > 0);
let nombreProveedor = ""; let nombreProveedor = "";
// //
let fileData = `"${FolioTrafico}"|${IDCliente}|${Patente}|${Pedimento}|${TipoCambio}|${FechaPago}|0|0|0|0|0|0|0.00|"${Aduana}"|"${ClavePedimento}"|${TipoOperacion}|`; let fileData = `"${FolioTrafico}"|${ClaveClienteFacturacion === IDCliente || ClaveClienteFacturacion === 0? IDCliente : ClaveClienteFacturacion}|${Patente}|${Pedimento}|${TipoCambio}|${FechaPago}|0|0|0|0|0|0|0.00|"${Aduana}"|"${ClavePedimento}"|${TipoOperacion}|`;
// //
fileData += `"C"|${ValorFacturasDls}|${ValorFacturasDls! * TipoCambio!}|${ValorAduanaMN}|"${DescripcionMercancia}"|${Kilos}|${Kilos! * 2.20462}|${CantidadFracciones}|"${SemafoFiscal === 0 ? "R" : "V"}"|`; fileData += `"C"|${ValorFacturasDls}|${ValorFacturasDls! * TipoCambio!}|${ValorAduanaMN}|"${DescripcionMercancia}"|${Kilos}|${Kilos! * 2.20462}|${CantidadFracciones}|"${SemafoFiscal === 0 ? "R" : "V"}"|`;
// //
@ -1319,7 +1324,7 @@ export default function TraficoCorresponsales (props:IProps) {
// //
fileData += `${Bultos}|${0}|${0}|${moment(FechaDesaduanamiento).format('MM/DD/YYYY')}|0|0|""|${moment(FechaDesaduanamiento).format('MM/DD/YYYY')}|${tipoMercancia?.clave ? tipoMercancia?.clave : '""'}|0|0|""|""|""|""|/ /|F|F|F|F|0|0|F|0.00|F|0|""|""|`; fileData += `${Bultos}|${0}|${0}|${moment(FechaDesaduanamiento).format('MM/DD/YYYY')}|0|0|""|${moment(FechaDesaduanamiento).format('MM/DD/YYYY')}|${tipoMercancia?.clave ? tipoMercancia?.clave : '""'}|0|0|""|""|""|""|/ /|F|F|F|F|0|0|F|0.00|F|0|""|""|`;
// //
fileData += `${FechaPagoH !== "" ? FechaPagoH : FechaPago}|""|""|0|"${cliente!.sRazonSocial.split('|')[0].trim()}"|${cliente!.sRFC}|""|""|""|""|""|""|""|"${nombreProveedor}"|`; fileData += `${FechaPagoH !== "" ? FechaPagoH : FechaPago}|""|""|0|"${ClaveClienteFacturacion === IDCliente || ClaveClienteFacturacion === 0? cliente!.sRazonSocial.split('|')[0].trim() : NombreClienteFacturacion}"|${ClaveClienteFacturacion === IDCliente || ClaveClienteFacturacion === 0? cliente!.sRFC : RfcClienteFacturacion}|""|""|""|""|""|""|""|"${nombreProveedor}"|`;
// //
fileData += `0|""|""|""|""|""|""|""|""|${ValorFacturasDls}|""|""|336|""|/ / : :|${moment().format("MM/DD/YYYY hh:mm:ss")}|${moment().format("MM/DD/YYYY hh:mm:ss")}|`; fileData += `0|""|""|""|""|""|""|""|""|${ValorFacturasDls}|""|""|336|""|/ / : :|${moment().format("MM/DD/YYYY hh:mm:ss")}|${moment().format("MM/DD/YYYY hh:mm:ss")}|`;
// //
@ -1358,26 +1363,28 @@ export default function TraficoCorresponsales (props:IProps) {
return pedidos; return pedidos;
} }
const getCentroCostos = (idCliente: number) => { const getCentroCostos = (idCliente: number, clientes: IClientes[]) => {
if(Perfil !== 'heineken'){ if(idCliente > 0){
if(idCliente > 0){ CentrosCostosService.get(idCliente)
CentrosCostosService.get(idCliente) .then(response => {
.then(response => { setCentroCostos(response.data.centroCostos)
if(response.status === 204){ setClaveClienteFacturacion(response.data.clienteFacturacion);
setHeader('Informativo')
setMsg('Centro de costos no asignado. Solicitar a servicios administrativos la asignacion del centro de costos del cliente.') if(response.data.clienteFacturacion !== 0 && response.data.clienteFacturacion !== idCliente){
setShowMsg(true) let cliente = clientes!.filter(x => x.sClave === response.data.clienteFacturacion)[0];
return let nombreCliente = cliente.sRazonSocial.split('|')[0].trim()
} setNombreClienteFacturacion(nombreCliente);
setCentroCostos(response.data) setRfcClienteFacturacion(cliente.sRFC);
}) }
.catch((e: Error) => { return
setHeader('Error') })
setMsg('Ocurrio un error: ' + e) .catch((e: Error) => {
setShowMsg(true) setCentroCostos(''); setClaveClienteFacturacion(0); setNombreClienteFacturacion(''); setRfcClienteFacturacion('');
return setHeader('Error')
}); setMsg('Centro de costos no asignado. Solicitar a servicios administrativos la asignacion del centro de costos del cliente.')
} setShowMsg(true)
return
});
} }
} }
@ -1475,9 +1482,9 @@ export default function TraficoCorresponsales (props:IProps) {
</Col> </Col>
</Row> </Row>
<Row style={{padding: "5px 0"}}> <Row style={{padding: "5px 0"}}>
<Col sm={12} md={6} lg={5}> <Col sm={12} md={6} lg={4}>
<Row> <Row>
<Col sm={9} md={10} lg={11}> <Col sm={12} md={12} lg={12}>
<Form.Label> <Form.Label>
Cliente Cliente
<Form.Control <Form.Control
@ -1486,7 +1493,7 @@ export default function TraficoCorresponsales (props:IProps) {
disabled={(Depto !== 'Corresponsalias' && Depto !== 'Sistemas')} disabled={(Depto !== 'Corresponsalias' && Depto !== 'Sistemas')}
onChange={(e) => { onChange={(e) => {
setIDCliente(parseInt(e.target.value)) setIDCliente(parseInt(e.target.value))
getCentroCostos(+e.target.value); getCentroCostos(+e.target.value, Clientes!);
}} }}
value={IDCliente} value={IDCliente}
className="form-select form-select-sm" className="form-select form-select-sm"
@ -1506,9 +1513,36 @@ export default function TraficoCorresponsales (props:IProps) {
</Col> </Col>
</Row> </Row>
</Col> </Col>
<Col sm={12} md={6} lg={6}> <Col sm={12} md={6} lg={4} style={{display: ClaveClienteFacturacion === IDCliente || ClaveClienteFacturacion === 0 ? 'none' : ''}}>
<Row> <Row>
<Col sm={6} md={6} lg={3}> <Col sm={12} md={12} lg={12}>
<Form.Label>
Facturar A
<Form.Control
as="select"
id="CmbCliente"
disabled={true}
value={ClaveClienteFacturacion}
className="form-select form-select-sm"
>
<option value="0">-SELECCIONE-</option>
{Clientes
? Clientes.map((c) => {
return (
<option key={c.sClave} value={c.sClave}>
{c.sRazonSocial}
</option>
)
})
: null}
</Form.Control>
</Form.Label>
</Col>
</Row>
</Col>
<Col sm={12} md={12} lg={4}>
<Row>
<Col sm={6} md={6} lg={4}>
<Form.Label> Centro de Costos <Form.Label> Centro de Costos
<CurrencyFormat <CurrencyFormat
value={CentroCostos} value={CentroCostos}
@ -1529,7 +1563,7 @@ export default function TraficoCorresponsales (props:IProps) {
/> />
</Form.Label> </Form.Label>
</Col> </Col>
<Col sm={6} md={6} lg={5}> <Col sm={6} md={6} lg={8}>
<Form.Label style={{ width:'100%' }}> <Form.Label style={{ width:'100%' }}>
<IconContext.Provider value={{ color: 'blue', size: '15px' }}> <IconContext.Provider value={{ color: 'blue', size: '15px' }}>
<span onClick={() => { <span onClick={() => {
@ -1567,8 +1601,8 @@ export default function TraficoCorresponsales (props:IProps) {
</Col> </Col>
</Row> </Row>
<Row style={{padding: "5px 0"}}> <Row style={{padding: "5px 0"}}>
<Col sm={12} md={12} lg={7}> <Col sm={12} md={12} lg={6}>
<Row> <Row className='justify-content-between'>
<Col sm={3} md={3} lg={2}> <Col sm={3} md={3} lg={2}>
<Form.Label>T. Operacion</Form.Label> <Form.Label>T. Operacion</Form.Label>
</Col> </Col>
@ -1623,7 +1657,7 @@ export default function TraficoCorresponsales (props:IProps) {
</Col> </Col>
</Row> </Row>
</Col> </Col>
<Col sm={12} md={12} lg={5}> <Col sm={12} md={12} lg={6}>
<Row> <Row>
<Col sm={4} md={4} lg={4}> <Col sm={4} md={4} lg={4}>
<Form.Label <Form.Label
@ -2424,7 +2458,7 @@ export default function TraficoCorresponsales (props:IProps) {
customInput={ customInput={
<MaskedInput <MaskedInput
type="text" type="text"
mask={[/[0-1]/, /[1-9]/, "/", /[0-3]/, /[0-9]/, "/", /[2]/, /[0]/, /[0-9]/, /[0-9]/," ",/[0-2]/, /[0-9]/,":",/[0-5]/, /[0-9]/,":",/[0-5]/, /[0-9]/]} mask={[/[0-1]/, /[0-9]/, "/", /[0-3]/, /[0-9]/, "/", /[2]/, /[0]/, /[0-9]/, /[0-9]/," ",/[0-2]/, /[0-9]/,":",/[0-5]/, /[0-9]/,":",/[0-5]/, /[0-9]/]}
/> />
} }
/>{' '} />{' '}

@ -3,4 +3,5 @@ export default interface DTOCatCentrosCostos{
idCliente: number; idCliente: number;
nombreCliente: string; nombreCliente: string;
centroCostos: string; centroCostos: string;
clienteFacturacion: number;
} }

@ -2,4 +2,5 @@ export interface ICatCentroCostos{
id:number; id:number;
idCliente: number; idCliente: number;
centroCostos: string; centroCostos: string;
clienteFacturacion: number;
} }

@ -13,7 +13,7 @@ class CentrosCostosService{
} }
get(idCliente: number){ get(idCliente: number){
return http.get<string>(`/Catalogos/CatCentrosCostos?idCliente=${idCliente}`); return http.get<ICatCentroCostos>(`/Catalogos/CatCentrosCostos?idCliente=${idCliente}`);
} }
} }

Loading…
Cancel
Save