[EDIT] CAMBIOS PARA REGISTRO DE SALIDA

parent cc5b82e1
......@@ -30,9 +30,12 @@
<mat-form-field class="w-full md:w-1/4" appearance="outline" floatLabel="always">
<mat-label>Sede designada : </mat-label>
<mat-select formControlName="sedePersonal" placeholder="[Seleccionar sede]" required>
<mat-option *ngFor="let option of this.sede_list" [value]="option?.codlocal">
{{option?.deslocal}}
<mat-option *ngFor="let option of this.sede_list" [value]="option?.value">
{{option?.viewValue}}
</mat-option>
<!-- <mat-option *ngFor="let option of this.sede_list" [value]="option?.codlocal">
{{option?.deslocal}}
</mat-option> -->
</mat-select>
</mat-form-field>
......@@ -73,9 +76,12 @@
<ng-container *ngIf="element.isNew; else displayOrigen">
<mat-form-field [formGroup]="datos_lugarOrigen" appearance="outline">
<mat-select formControlName="lugarOrigen{{element.index}}" placeholder="[Seleccionar de origen]" required>
<mat-option *ngFor="let option of this.sede_list" [value]="option?.codlocal">
{{option?.deslocal}}
<mat-option *ngFor="let option of this.sede_list" [value]="option?.value">
{{option?.viewValue}}
</mat-option>
<!--<mat-option *ngFor="let option of this.sede_list" [value]="option?.codlocal">
{{option?.deslocal}}
</mat-option> -->
</mat-select>
</mat-form-field>
</ng-container>
......@@ -104,7 +110,7 @@
<td mat-cell *matCellDef="let element">
<ng-container *ngIf="element.isNew; else displayOrigen">
<mat-form-field [formGroup]="datos_pasajeAcumulado" appearance="outline">
<input matInput formControlName="montoPasaje{{element.index}}" soloNumeros placeholder="[Monto]" value="" maxlength="6" (blur)="formatMontoPasaje(element.index)">
<input matInput formControlName="montoPasaje{{element.index}}" soloNumeros="decimal" placeholder="[Monto]" value="" maxlength="6" (blur)="formatMontoPasaje(this.datos_pasajeAcumulado,'montoPasaje'+element.index)">
</mat-form-field>
</ng-container>
<ng-template #displayOrigen>
......
......@@ -27,9 +27,9 @@ import {MatTableModule} from "@angular/material/table";
],
standalone: true,
template: `
<h1 mat-dialog-title>Confirmar Eliminación</h1>
<h1 mat-dialog-title>Confirmar eliminación pasaje</h1>
<div mat-dialog-content>
<p>¿Estás seguro de que deseas eliminar este registro?</p>
<p>¿Estás seguro de que deseas eliminar este pasaje?</p>
</div>
<div mat-dialog-actions>
<button mat-button (click)="onCancelar()">Cancelar</button>
......
......@@ -81,7 +81,6 @@ export class modalRequerimientoComponent implements OnInit{
fechaRegistro : item.fechaRegistro
}
}) || [];
console.log(datosPrincipales);
if(datosPrincipales[0]){
//Obtener los valores de descripcion, observacion, sede y empleado por separado y en un solo objeto
......@@ -99,8 +98,6 @@ export class modalRequerimientoComponent implements OnInit{
//this.detalleRequerimiento = data.requerimientoInfo
//this.filasRequerimientos =
console.log(this.detalleRequerimiento);
}
ngOnInit(): void {
......
......@@ -29,7 +29,8 @@
<ng-container matColumnDef="nombre">
<th mat-header-cell *matHeaderCellDef> NOMBRE DE ARTÍCULO </th>
<td mat-cell *matCellDef="let element">
<ng-container *ngIf="element.isNew; else displayOrigen">
<!-- DESBLOQUEAR DESPUES -->
<!-- <ng-container *ngIf="element.isNew; else displayOrigen">
<mat-form-field class="w-[25rem]">
<input type="text" placeholder="Buscar artículos" matInput formControlName="articulo{{element.index}}" [matAutocomplete]="auto" maxlength="9"
(input)="onBusquedaArticulo($event,element.index)">
......@@ -39,6 +40,11 @@
</mat-option>
</mat-autocomplete>
</mat-form-field>
</ng-container> -->
<ng-container *ngIf="element.isNew; else displayOrigen">
<mat-form-field class="w-[25rem]">
<input type="text" placeholder="Buscar artículos" matInput formControlName="articulo{{element.index}}">
</mat-form-field>
</ng-container>
<ng-template #displayOrigen>
{{ element.nombre }}
......@@ -50,8 +56,17 @@
<ng-container matColumnDef="unidad">
<th mat-header-cell *matHeaderCellDef> UNIDAD </th>
<td mat-cell *matCellDef="let element">
<ng-container *ngIf="element.isNew; else displayOrigen">
<!-- <ng-container *ngIf="element.isNew; else displayOrigen">
<mat-label>{{formGroupMS(2,'unidad'+element.index)?.value}}</mat-label>
</ng-container> -->
<ng-container *ngIf="element.isNew; else displayOrigen">
<mat-form-field appearance="outline">
<mat-select formControlName="unidad{{element.index}}" required>
<mat-option *ngFor="let option of this.listUnidades" [value]="option?.codigo">
{{option?.nombre}}
</mat-option>
</mat-select>
</mat-form-field>
</ng-container>
<ng-template #displayOrigen>
{{ element.unidad }}
......@@ -65,7 +80,7 @@
<td mat-cell *matCellDef="let element">
<ng-container *ngIf="element.isNew; else displayOrigen">
<mat-form-field class="w-[10rem]" appearance="outline">
<input matInput formControlName="cantidad{{element.index}}" soloNumeros maxlength="2">
<input matInput formControlName="cantidad{{element.index}}" soloNumeros="entero" maxlength="2">
</mat-form-field>
</ng-container>
<ng-template #displayOrigen>
......
......@@ -41,11 +41,16 @@ interface interArticulo{
acciones: boolean;
}
interface estadosArticulo {
interface interEstados {
valor: string;
nombre: string;
}
interface interUnidad {
codigo: string;
nombre: string;
}
@Component({
selector: 'ordensalida-component',
templateUrl: './ordensalida.componente.html',
......@@ -116,10 +121,11 @@ export class ordenSalidaComponent implements OnInit {
// INICIALIZACION DATOS
columnasArticulos: string[] = ['nombre', 'unidad', 'cantidad', 'estado', 'accion'];
articulosList: any[] = [];
listUnidades : interUnidad[] = [];
activarNuevoArticulo: boolean = true;
indexArticulo: number = 0;
public dataSource: interArticulo[] = [];
listEstadoArticulo: estadosArticulo[] = [{ valor: '1', nombre: 'BUENO'}, { valor: '2', nombre: 'OBSERVACIÓN' },{ valor: '3', nombre: 'MAL ESTADO' } ]
listEstadoArticulo: interEstados[] = [{ valor: '1', nombre: 'BUENO'}, { valor: '2', nombre: 'OBSERVACIÓN' },{ valor: '3', nombre: 'MAL ESTADO' } ]
// INICIALIZACION DATOS
// OBTENER DATOS DEL FORM GROUP
......@@ -143,11 +149,17 @@ export class ordenSalidaComponent implements OnInit {
private datePipe: DatePipe,
) {
this.articulosList = [];
//this.codigoUnidad = '';
}
ngOnInit(): void {
async ngOnInit(): Promise<void> {
this.dataSource = [];
const jsonParametrosArti = {
accion : 5
};
const unidadList = await this.conformidadHelper.listadoGeneralHorizon(jsonParametrosArti) ;
this.listUnidades = unidadList.map((item: any) => ({codigo: item.CODIGO , nombre: item.NOMBRE}));
}
onAgregarArticulo(event : any){
......@@ -208,7 +220,7 @@ export class ordenSalidaComponent implements OnInit {
};
console.log(this.dataSource);
//console.log(this.dataSource);
//console.log(lugarOrigen , lugarDestino, pasaje, fechaPasaje)
this.dataSource.forEach((item) => { item.acciones = true; }); // VUELVE A ACTIVAR TODAS LAS ACCION
......@@ -249,6 +261,7 @@ export class ordenSalidaComponent implements OnInit {
this.dataSource.forEach((item) => { item.acciones = true; }); // Que todas las filas vuelvan a tener las acciones
if(this.dataSource[index].isEdit){
this.dataSource[index].isEdit = false;
this.dataSource[index].isNew = false;
this.dataSource = [...this.dataSource];
......@@ -302,7 +315,7 @@ export class ordenSalidaComponent implements OnInit {
});
}
async onBusquedaArticulo(event: any , index : number) {
async onBusquedaArticulo(event: any , index : number) { // OMITIR LA BUSQUEDA POR AHORA YA QUE NO CONOCEN LOS ARTICULOS
const busquedaArt = event.target.value;
......@@ -311,8 +324,6 @@ export class ordenSalidaComponent implements OnInit {
nombreValor : busquedaArt,
};
console.log(jsonParametrosArti);
const articulos_list = await this.conformidadHelper.listadoGeneralHorizon(jsonParametrosArti) ;
const mapeoResultado = articulos_list.map((item: any) => ({
codigo: item.codigoProducto,
......@@ -321,10 +332,9 @@ export class ordenSalidaComponent implements OnInit {
}));
this.articulosList = mapeoResultado;
console.log(this.articulosList);
}
onSeleccionArticulo(event: MatAutocompleteSelectedEvent,index : number) {
onSeleccionArticulo(event: MatAutocompleteSelectedEvent,index : number) { // OMITIR LA BUSQUEDA POR AHORA YA QUE NO CONOCEN LOS ARTICULOS
//AL SELECCIONAR , SE OPTIENE EL VALUE
const selectedOption = event.option.value;
......@@ -332,7 +342,7 @@ export class ordenSalidaComponent implements OnInit {
//SE BUSCA EL VALUE DENTRO DEL LISTADO DE ARTICULOS
const articulo = this.articulosList.find((item) => item.codigo === selectedOption);
console.log(articulo);
//console.log(articulo);
//SE OPTIENE EL NOMBRE PARA PONERLO EN EL INPUT
this.formGroupMS(2,'articulo'+index)?.setValue(articulo.nombre);
this.formGroupMS(2,'codigoArticulo'+index)?.setValue(articulo.codigo);
......@@ -342,28 +352,6 @@ export class ordenSalidaComponent implements OnInit {
//SE VUELVE A LIMPIAR EL LISTADO DE ARTICULOS PARA DEJAR PASO A OTRA FUTURA BUSQUEDA.
this.articulosList = [];
/*const valor = event.option.value;
if(this.listRequerimientos.find((item) => item.codigo === valor)){
this.labelText = 'Ya existe el requerimiento ' + valor + ' en el listado'; // Cambia el texto
this.isFading = false; // Resetea el estado de opacidad para mostrar el texto
// Después de 2 segundos, comienza a desvanecer el texto
setTimeout(() => {
this.isFading = true;
}, 2000); // 2000 ms = 2 segundos
}else{
this.listRequerimientos.push({ titulo: `RQ N°${valor}`, id: this.idBotones++ , codigo: valor });
this.labelText = '';
}
this.datos_servicio.get('busquedaReq')?.setValue('');
this.inputBusqueda.nativeElement.blur();
this.detectorChange.detectChanges();
this.requerimientosFiltrados = [];
}*/
}
formatoEstado(estado: any) {
......
......@@ -76,7 +76,7 @@ export class ConformidadService {
try {
const respuesta = await axios.post(this.t_facturacion_electronica_link + '/api/v1/conformidad/registrarConformidad', Parametros);
console.log(respuesta);
//console.log(respuesta);
return respuesta.data;
} catch (e) {
return e;
......@@ -227,9 +227,6 @@ export class ConformidadService {
nombreDocumento: datos.nombreArchivo || ''
});
console.log(registroEvidencia);
if (responseBody?.status) {
respuesta = {status: true, message: "Imagenes subidas"};
} else {
......@@ -285,6 +282,8 @@ export class ConformidadService {
descripcion: json.descripcion || '',
fechaRegistro : json.fechaRegistro || '',
codArticulo : json.codArticulo || '',
nombreArticulo : json.nombreArticulo || '',
unidad : json.unidad || '-',
cantidad : json.cantidad || 0,
estado : json.estado || 0,
......@@ -298,31 +297,4 @@ export class ConformidadService {
}
}
/*async listadoRequerimientos(json: any) {
const parametros =[
json.accion || 0,
json.nombreValor || '',
json.sede || '',
]
try {
const respuesta = await axios.post(this.t_horizon_rest_link + '/api/procedure/Procedimiento',
{
database: "sqlserver",
procedure :"USP_GENERAL_FORMULARIO",
params : parametros
},
{
headers: {
'Content-Type': 'application/json'
}
});
return respuesta.data;
} catch (e) {
return e;
}
}*/
}
import { Directive ,HostListener } from '@angular/core';
import { Directive ,HostListener , Input } from '@angular/core';
@Directive({
selector: '[soloNumeros]',
......@@ -7,14 +7,28 @@ import { Directive ,HostListener } from '@angular/core';
export class SoloNumerosDirective {
@Input() soloNumeros?: 'decimal' | 'entero';
//constructor() { }
@HostListener('keypress', ['$event'])
onKeyPress(event: KeyboardEvent) {
const charCode = event.key;
// Permitir solo números (0-9)
if (this.soloNumeros === 'entero') {
// Permitir solo números enteros (0-9)
if (!/^[0-9]*$/.test(charCode)) {
event.preventDefault();
}
} else if (this.soloNumeros === 'decimal') {
if (!/^[0-9.]*$/.test(charCode)) {
event.preventDefault();
}
} else {
if (!/^[0-9]*$/.test(charCode)) {
event.preventDefault();
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment