TS (2739) Я пытаюсь сделать приложение с ионным и Sqlite, но у меня есть эта проблема, это мое первое приложение - PullRequest
0 голосов
/ 23 октября 2019

Это проблема: введите '{id: any;IdCliente: любой;idvendedor: любой;Феча: любая;} 'отсутствуют свойства типа' Dev ': idCliente, idVendedorts (2739)

что я могу сделать? В ventas.page.ts

import { DatabaseService, Dev } from './../../services/database.service';

import { Component, OnInit } from '@angular/core';

import { ActivatedRoute, Router } from '@angular/router';

import { ToastController } from '@ionic/angular';

@Component({

selector: 'app-venta',

  templateUrl: './venta.page.html',

 styleUrls: ['./venta.page.scss'],
})
export class ventaPage implements OnInit {

venta: Dev = null;

// id = '';

constructor(private route: ActivatedRoute, private db: DatabaseService, private router: 

Router, private toast: ToastController) { }

ngOnInit() {
this.route.paramMap.subscribe(params => {
  let devId = params.get('id');
   this.db.getVentas(devId).then(data => {

   this.venta = data; // **here is the error**

ошибка в строке выше venta не распознана: Тип '{id: любой;IdCliente: любой;idvendedor: любой;Феча: любая;} 'отсутствуют следующие свойства из типа' Dev ': idCliente, idVendedorts (2739)

   });
  });
 }

 delete() {
 this.db.deleteVentas(this.venta.id).then(() => {
  this.router.navigateByUrl('/');
 });
 }

**Database.service.ts**

import { Platform } from '@ionic/angular';

import { Injectable } from '@angular/core';
import { SQLitePorter } from '@ionic-native/sqlite-porter/ngx';
import { HttpClient } from '@angular/common/http';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite/ngx';
import { BehaviorSubject, Observable } from 'rxjs';


export interface Dev {
id: number,
idCliente: number,
idVendedor: number,
Fecha: Date,
 }
@Injectable({
providedIn: 'root'
})
export class DatabaseService {

private database: SQLiteObject;
private dbReady: BehaviorSubject<boolean> = new BehaviorSubject(false);

Ventas = new BehaviorSubject([]);
VentaDetalle = new BehaviorSubject([]);

constructor(private plt: Platform, private sqlitePorter: SQLitePorter, private sqlite: SQLite, 
private http: HttpClient) {
this.plt.ready().then(() => {
  this.sqlite.create({
    name: 'Ventas.db',
    location: 'default'
  })
  .then((db: SQLiteObject) => {
      this.database = db;
      this.seedDatabase();
  });
  });
 }
seedDatabase() {
//seed.sql es el archivo que creamos primero donde insertamos unos campos
this.http.get('assets/seed.sql', { responseType: 'text'})
.subscribe(sql => {
  this.sqlitePorter.importSqlToDb(this.database, sql)
    .then(_ => {
      this.loadVentas();
      this.loadVentaDetalle();
      this.dbReady.next(true);
    })
    .catch(e => console.error(e));
});
}

loadVentaDetalle() {
let query = 'SELECT VentaDetalle.id_venta, VentaDetalle.id_producto, VentaDetalle.cant,  
VentaDetalle.Precio, Ventas.IDVendedor, Ventas.id AS creator FROM VentaDetalle JOIN Ventas ON 
 Ventas.id = VentasDetalle.Id_venta';
return this.database.executeSql(query, []).then(data => {
  let VentaDetalle = [];
  if (data.rows.length > 0) {
    for (var i = 0; i < data.rows.length; i++) {
      VentaDetalle.push({ 
        id_producto: data.rows.item(i).id_producto,
        id: data.rows.item(i).id,
        cant: data.rows.item(i).cant,
        Precio:data.rows.item(i).Precio,
       });
    }
  }
  this.VentaDetalle.next(VentaDetalle);
});

}
 loadVentas() {
  //    const data = await this.database.executeSql('SELECT * FROM Ventas', []);
 return this.database.executeSql('SELECT * FROM Ventas', []).then(data => {
 let Ventas: Dev[] = [];
 if (data.rows.length > 0) {
  for (var i = 0; i < data.rows.length; i++) {
    let Fecha = [];
    if (data.rows.item(i).Fecha != '') {
      //Fecha = JSON.parse(data.rows.item(i).Fecha);
    }
    Ventas.push({
      id: data.rows.item(i).id,
      idCliente: data.rows.item(i).idCliente,
      idVendedor: data.rows.item(i).IdVendedor,
      Fecha: data.rows.item(i).Fecha,
    });
    }
  }
  this.Ventas.next(Ventas);
  });
  }
  getDatabaseState() {
   return this.dbReady.asObservable();
 }

 getDevs(): Observable<Dev[]> {
 return this.Ventas.asObservable();
 }

getVentadetalle(): Observable<any[]> {
 return this.VentaDetalle.asObservable();
}
addventas(IdCliente, idVendedor, Fecha){
 let data = [IdCliente, idVendedor, Fecha];
 return this.database.executeSql('INSERT INTO Ventas (IdCliente, idVendedor, Fecha) VALUES (?, 
?, ?)', data).then(data => {
this.loadVentas();
});

}

//getVentas(id): Promise<Dev> {
getVentas(id) {  
return this.database.executeSql('SELECT * FROM Ventas WHERE id = ?', [id]).then(data => { 
 let Venta =[];
//let IdCliente = [];
  if (data.rows.item(0).Fecha != '') {
 //IdCliente = JSON.parse(data.rows.item(0).idCliente);
// Fecha=data.rows.item0(0).Fecha;
 }

return {
  id: data.rows.item(0).id,
  IdCliente: data.rows.item(0).idCliente, 
  idvendedor: data.rows.item(0).idVendedor,
  Fecha: data.rows.item(0).Fecha
   }
 });
 }
deleteVentas(id:number) {
return this.database.executeSql('DELETE FROM Ventas WHERE id = ?', [id]).then(_ => {
this.loadVentas();
this.loadVentaDetalle();
 });
}

updateventas(dev: Dev) {

let data = [dev.idCliente, dev.idVendedor, dev.Fecha];
return this.database.executeSql(`UPDATE Ventas SET id = ?,IdCliente =?, idproduct0 = ?, Fecha = 
? WHERE id = ${dev.id}`, data).then(data => {
this.loadVentas();
})
}

addVentasDetalle(id_venta,id_producto, Precio, Cant) {
let data = [id_venta,id_producto, Precio, Cant];
 return this.database.executeSql('INSERT INTO product (id_venta,id_producto, Precio, Cant) 
VALUES (?, ?)', data).then(data => {
this.loadVentaDetalle();
 });
 }

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...