incorporar facturacion a razones sociales distintas

feature/ConsolidarPedimentos_20231229
Felix Morales 12 months 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>Cliente</th>
<th>Centro Costos</th>
<th>Cliente Facturacion</th>
<th></th>
</thead>
<tbody>
@ -82,6 +83,29 @@ export const CatCentroConstos: FC = () => {
}}
/>
}</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>
</tr>
)

@ -316,6 +316,9 @@ export default function TraficoCorresponsales (props:IProps) {
const [EncabezadoPedimento1, setEncabezadoPedimento1] = useState("Pedimento");
const [EncabezadoPedimento2, setEncabezadoPedimento2] = useState(".");
const [CentroCostos, setCentroCostos] = useState<string>('');
const [ClaveClienteFacturacion, setClaveClienteFacturacion] = useState(0);
const [NombreClienteFacturacion, setNombreClienteFacturacion] = useState('')
const [RfcClienteFacturacion, setRfcClienteFacturacion] = useState('')
const [ClavesPedimentos, setClavesPedimentos] = useState<ICatClavesPedimentos[]>([])
const FechaRegistro = currentDate()
const msgColor = 'primary'
@ -528,6 +531,7 @@ export default function TraficoCorresponsales (props:IProps) {
}
const LoadEverything = () => {
let clientes: IClientes[] = [];
ClavesPedimentosService.getAllClavesPedimentos()
.then(response => setClavesPedimentos(response.data))
.catch((e: Error) => {
@ -609,6 +613,7 @@ export default function TraficoCorresponsales (props:IProps) {
})
ClientesDataService.getAllClientes(0)
.then((response) => {
clientes = response.data;
setClientes(response.data)
})
.catch((e: Error) => {
@ -684,7 +689,7 @@ export default function TraficoCorresponsales (props:IProps) {
setFolioTrafico(response.data.folioGemco)
setProceso(response.data.proceso)
setIDCliente(response.data.idCliente)
getCentroCostos(response.data.idCliente);
getCentroCostos(response.data.idCliente, clientes);
setIDTabulador(response.data.idTabulador)
setTipoOperacion(response.data.tipoOperacion)
setOpEntrada(response.data.opEntrada)
@ -1307,7 +1312,7 @@ export default function TraficoCorresponsales (props:IProps) {
let facturas = mCFacturas.filter(factura => factura.id > 0);
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"}"|`;
//
@ -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 += `${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")}|`;
//
@ -1358,26 +1363,28 @@ export default function TraficoCorresponsales (props:IProps) {
return pedidos;
}
const getCentroCostos = (idCliente: number) => {
if(Perfil !== 'heineken'){
if(idCliente > 0){
CentrosCostosService.get(idCliente)
.then(response => {
if(response.status === 204){
setHeader('Informativo')
setMsg('Centro de costos no asignado. Solicitar a servicios administrativos la asignacion del centro de costos del cliente.')
setShowMsg(true)
return
}
setCentroCostos(response.data)
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
});
}
const getCentroCostos = (idCliente: number, clientes: IClientes[]) => {
if(idCliente > 0){
CentrosCostosService.get(idCliente)
.then(response => {
setCentroCostos(response.data.centroCostos)
setClaveClienteFacturacion(response.data.clienteFacturacion);
if(response.data.clienteFacturacion !== 0 && response.data.clienteFacturacion !== idCliente){
let cliente = clientes!.filter(x => x.sClave === response.data.clienteFacturacion)[0];
let nombreCliente = cliente.sRazonSocial.split('|')[0].trim()
setNombreClienteFacturacion(nombreCliente);
setRfcClienteFacturacion(cliente.sRFC);
}
return
})
.catch((e: Error) => {
setCentroCostos(''); setClaveClienteFacturacion(0); setNombreClienteFacturacion(''); setRfcClienteFacturacion('');
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>
</Row>
<Row style={{padding: "5px 0"}}>
<Col sm={12} md={6} lg={5}>
<Col sm={12} md={6} lg={4}>
<Row>
<Col sm={9} md={10} lg={11}>
<Col sm={12} md={12} lg={12}>
<Form.Label>
Cliente
<Form.Control
@ -1486,7 +1493,7 @@ export default function TraficoCorresponsales (props:IProps) {
disabled={(Depto !== 'Corresponsalias' && Depto !== 'Sistemas')}
onChange={(e) => {
setIDCliente(parseInt(e.target.value))
getCentroCostos(+e.target.value);
getCentroCostos(+e.target.value, Clientes!);
}}
value={IDCliente}
className="form-select form-select-sm"
@ -1506,9 +1513,36 @@ export default function TraficoCorresponsales (props:IProps) {
</Col>
</Row>
</Col>
<Col sm={12} md={6} lg={6}>
<Col sm={12} md={6} lg={4} style={{display: ClaveClienteFacturacion === IDCliente || ClaveClienteFacturacion === 0 ? 'none' : ''}}>
<Row>
<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={3}>
<Col sm={6} md={6} lg={4}>
<Form.Label> Centro de Costos
<CurrencyFormat
value={CentroCostos}
@ -1529,7 +1563,7 @@ export default function TraficoCorresponsales (props:IProps) {
/>
</Form.Label>
</Col>
<Col sm={6} md={6} lg={5}>
<Col sm={6} md={6} lg={8}>
<Form.Label style={{ width:'100%' }}>
<IconContext.Provider value={{ color: 'blue', size: '15px' }}>
<span onClick={() => {
@ -1567,8 +1601,8 @@ export default function TraficoCorresponsales (props:IProps) {
</Col>
</Row>
<Row style={{padding: "5px 0"}}>
<Col sm={12} md={12} lg={7}>
<Row>
<Col sm={12} md={12} lg={6}>
<Row className='justify-content-between'>
<Col sm={3} md={3} lg={2}>
<Form.Label>T. Operacion</Form.Label>
</Col>
@ -1623,7 +1657,7 @@ export default function TraficoCorresponsales (props:IProps) {
</Col>
</Row>
</Col>
<Col sm={12} md={12} lg={5}>
<Col sm={12} md={12} lg={6}>
<Row>
<Col sm={4} md={4} lg={4}>
<Form.Label
@ -2424,7 +2458,7 @@ export default function TraficoCorresponsales (props:IProps) {
customInput={
<MaskedInput
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;
nombreCliente: string;
centroCostos: string;
clienteFacturacion: number;
}

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

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

Loading…
Cancel
Save