From 33f0271a0e04231ebd4b1c030074459bc03bceaf Mon Sep 17 00:00:00 2001 From: Luis Eduardo Estevao Date: Wed, 11 Feb 2026 15:28:05 -0300 Subject: [PATCH] feat: implement order creation and cancellation functionality with new entities for city, sales order items, and temporary order items. --- src/domain/entity/tables/pccidade.entity.ts | 23 +- .../entity/tables/pcorcavendai.entity.ts | 65 +++--- src/domain/entity/tables/pcpeditemp.entity.ts | 214 +++++++++--------- src/sales/order/order.service.ts | 4 +- src/sales/pre-order/pre-order.service.ts | 26 +-- 5 files changed, 162 insertions(+), 170 deletions(-) diff --git a/src/domain/entity/tables/pccidade.entity.ts b/src/domain/entity/tables/pccidade.entity.ts index 63ace2a..a231746 100644 --- a/src/domain/entity/tables/pccidade.entity.ts +++ b/src/domain/entity/tables/pccidade.entity.ts @@ -4,35 +4,32 @@ import { Column, Entity, PrimaryColumn } from "typeorm"; export class Pccidade { @PrimaryColumn({ name: 'CODCIDADE' }) codcidade: number; - + @Column({ name: 'NOMECIDADE' }) nomecidade: string; - + @Column({ name: 'CODIBGE' }) codibge: number; - + @Column({ name: 'UF' }) uf: string; - + @Column({ name: 'POPULACAO' }) populacao: number; - + @Column({ name: 'CODMUNESTADUAL' }) codmunestadual: number; - + @Column({ name: 'UTILIZAFRETETRANSP' }) utilizafretetransp: string; - + @Column({ name: 'CODMUNSIAFI' }) codmunsiafi: number; - - @Column({ name: 'DTMXSALTER' }) - dtmxsalter: Date; - + @Column({ name: 'LATITUDE' }) latitude: string; - + @Column({ name: 'LONGITUDE' }) longitude: string; - + } \ No newline at end of file diff --git a/src/domain/entity/tables/pcorcavendai.entity.ts b/src/domain/entity/tables/pcorcavendai.entity.ts index 8f3e2e7..e82d336 100644 --- a/src/domain/entity/tables/pcorcavendai.entity.ts +++ b/src/domain/entity/tables/pcorcavendai.entity.ts @@ -2,94 +2,91 @@ import { Column, Entity, PrimaryColumn } from "typeorm"; @Entity("PCORCAVENDAI") export class Pcorcavendai { - @PrimaryColumn({name: 'NUMORCA'}) + @PrimaryColumn({ name: 'NUMORCA' }) numorca: number; - @PrimaryColumn({name: 'CODPROD'}) + @PrimaryColumn({ name: 'CODPROD' }) codprod: number; - @PrimaryColumn({name: 'NUMSEQ'}) + @PrimaryColumn({ name: 'NUMSEQ' }) numseq: number; - @Column({name: 'DATA'}) + @Column({ name: 'DATA' }) data: Date; - @Column({name: 'CODCLI'}) + @Column({ name: 'CODCLI' }) codcli: number; - @Column({name: 'CODUSUR'}) + @Column({ name: 'CODUSUR' }) codusur: number; - @Column({name: 'QT'}) + @Column({ name: 'QT' }) qt: number; - @Column({name: 'PVENDA'}) + @Column({ name: 'PVENDA' }) pvenda: number; - @Column({name: 'PTABELA'}) + @Column({ name: 'PTABELA' }) ptabela: number; - @Column({name: 'NUMCAR'}) + @Column({ name: 'NUMCAR' }) numcar: number; - @Column({name: 'POSICAO'}) + @Column({ name: 'POSICAO' }) posicao: string; - - @Column({name: 'ST'}) + + @Column({ name: 'ST' }) st: number; - @Column({name: 'VLCUSTOFIN'}) + @Column({ name: 'VLCUSTOFIN' }) vlcustofin: number; - @Column({name: 'VLCUSTOREAL'}) + @Column({ name: 'VLCUSTOREAL' }) vlcustoreal: number; - @Column({name: 'PERCOM'}) + @Column({ name: 'PERCOM' }) percom: number; - @Column({name: 'PERDESC'}) + @Column({ name: 'PERDESC' }) perdesc: number; - @Column({name: 'PVENDABASE'}) + @Column({ name: 'PVENDABASE' }) pvendabase: number; - @Column({name: 'CODST'}) + @Column({ name: 'CODST' }) codst: number; - @Column({name: 'CUSTOFINEST'}) + @Column({ name: 'CUSTOFINEST' }) custofinest: number; - - @Column({name: 'CODAUXILIAR'}) + + @Column({ name: 'CODAUXILIAR' }) codauxiliar: number; - @Column({name: 'CODFILIALRETIRA'}) + @Column({ name: 'CODFILIALRETIRA' }) codfilialretira: string; - @Column({name: 'PORIGINAL'}) + @Column({ name: 'PORIGINAL' }) poriginal: number; - @Column({name: 'VLCUSTOCONT'}) + @Column({ name: 'VLCUSTOCONT' }) vlcustocont: number; - @Column({name: 'VLCUSTOREP'}) + @Column({ name: 'VLCUSTOREP' }) vlcustorep: number; - @Column({name: 'PBASERCA'}) + @Column({ name: 'PBASERCA' }) pbaserca: number; - @Column({name: 'PVENDA1'}) + @Column({ name: 'PVENDA1' }) pvenda1: number; - @Column({name: 'TIPOENTREGA'}) + @Column({ name: 'TIPOENTREGA' }) tipoentrega: string; - @Column({name: 'COMPLEMENTO'}) + @Column({ name: 'COMPLEMENTO' }) complemento: string; - @Column({name: 'AMBIENTE'}) + @Column({ name: 'AMBIENTE' }) ambiente: string; - @Column({name: 'RETIRAPOSTERIOR_IMEDIATA'}) - rp_imediata: string; - } \ No newline at end of file diff --git a/src/domain/entity/tables/pcpeditemp.entity.ts b/src/domain/entity/tables/pcpeditemp.entity.ts index 3ae4e57..44570eb 100644 --- a/src/domain/entity/tables/pcpeditemp.entity.ts +++ b/src/domain/entity/tables/pcpeditemp.entity.ts @@ -3,167 +3,165 @@ import { Column, Entity, PrimaryColumn } from "typeorm"; @Entity('PCPEDITEMP') export class Pcpeditemp { -@Column({ name: 'TIPOINTEGRACAO' }) -tipointegracao: string; + @Column({ name: 'TIPOINTEGRACAO' }) + tipointegracao: string; -@Column({ name: 'OBSERVACAO_PC' }) -observacao_pc: string; + @Column({ name: 'OBSERVACAO_PC' }) + observacao_pc: string; -@Column({ name: 'NUMPEDCLI' }) -numpedcli: string; + @Column({ name: 'NUMPEDCLI' }) + numpedcli: string; -@PrimaryColumn({ name: 'NUMPEDRCA' }) -numpedrca: number; + @PrimaryColumn({ name: 'NUMPEDRCA' }) + numpedrca: number; -@Column({ name: 'CODCLI' }) -codcli: number; + @Column({ name: 'CODCLI' }) + codcli: number; -@Column({ name: 'CODUSUR' }) -codusur: number; + @Column({ name: 'CODUSUR' }) + codusur: number; -@Column({ name: 'DATA' }) -data: Date; + @Column({ name: 'DATA' }) + data: Date; -@PrimaryColumn({ name: 'CODPROD' }) -codprod: number; + @PrimaryColumn({ name: 'CODPROD' }) + codprod: number; -@Column({ name: 'QT' }) -qt: number; + @Column({ name: 'QT' }) + qt: number; -@Column({ name: 'QT_FATURADA' }) -qt_faturada: number; + @Column({ name: 'QT_FATURADA' }) + qt_faturada: number; -@Column({ name: 'PVENDA' }) -pvenda: number; + @Column({ name: 'PVENDA' }) + pvenda: number; -@Column({ name: 'PTABELA' }) -ptabela: number; + @Column({ name: 'PTABELA' }) + ptabela: number; -@Column({ name: 'PERDESC' }) -perdesc: number; + @Column({ name: 'PERDESC' }) + perdesc: number; -@PrimaryColumn({ name: 'NUMSEQ' }) -numseq: number; + @PrimaryColumn({ name: 'NUMSEQ' }) + numseq: number; -@Column({ name: 'CODAUXILIAR' }) -codauxiliar: number; + @Column({ name: 'CODAUXILIAR' }) + codauxiliar: number; -@Column({ name: 'CODCERTIFIC' }) -codcertific: number; + @Column({ name: 'CODCERTIFIC' }) + codcertific: number; -@Column({ name: 'CODFILIALRETIRA' }) -codfilialretira: string; + @Column({ name: 'CODFILIALRETIRA' }) + codfilialretira: string; -@Column({ name: 'NUMLOTE' }) -numlote: string; + @Column({ name: 'NUMLOTE' }) + numlote: string; -@Column({ name: 'COMPLEMENTO' }) -complemento: string; + @Column({ name: 'COMPLEMENTO' }) + complemento: string; -@Column({ name: 'CODPLPAG' }) -codplpag: number; + @Column({ name: 'CODPLPAG' }) + codplpag: number; -@Column({ name: 'CODPROMOCAO' }) -codpromocao: string; + @Column({ name: 'CODPROMOCAO' }) + codpromocao: string; -@Column({ name: 'PRAZOMEDIO' }) -prazomedio: number; + @Column({ name: 'PRAZOMEDIO' }) + prazomedio: number; -@Column({ name: 'LOCALIZACAO' }) -localizacao: string; + @Column({ name: 'LOCALIZACAO' }) + localizacao: string; -@Column({ name: 'PBONIFIC' }) -pbonific: number; + @Column({ name: 'PBONIFIC' }) + pbonific: number; -@Column({ name: 'CODDEGUSTACAO' }) -coddegustacao: number; + @Column({ name: 'CODDEGUSTACAO' }) + coddegustacao: number; -@Column({ name: 'PESOBRUTO' }) -pesobruto: number; + @Column({ name: 'PESOBRUTO' }) + pesobruto: number; -@Column({ name: 'EANCODPROD' }) -eancodprod: number; + @Column({ name: 'EANCODPROD' }) + eancodprod: number; -@Column({ name: 'CODNAOATENDIMENTO' }) -codnaoatendimento: number; + @Column({ name: 'CODNAOATENDIMENTO' }) + codnaoatendimento: number; -@Column({ name: 'OBSINTEGRACAO1' }) -obsintegracao1: string; + @Column({ name: 'OBSINTEGRACAO1' }) + obsintegracao1: string; -@Column({ name: 'OBSINTEGRACAO2' }) -obsintegracao2: string; + @Column({ name: 'OBSINTEGRACAO2' }) + obsintegracao2: string; -@Column({ name: 'NUMPEDWEB' }) -numpedweb: number; + @Column({ name: 'NUMPEDWEB' }) + numpedweb: number; -@Column({ name: 'TRANSACAO' }) -transacao: number; + @Column({ name: 'TRANSACAO' }) + transacao: number; -@Column({ name: 'IDVENDA' }) -idvenda: number; + @Column({ name: 'IDVENDA' }) + idvenda: number; -@Column({ name: 'INTEGRADORA' }) -integradora: number; + @Column({ name: 'INTEGRADORA' }) + integradora: number; -@Column({ name: 'CODRETORNO' }) -codretorno: number; + @Column({ name: 'CODRETORNO' }) + codretorno: number; -@Column({ name: 'COMISSAOATIM' }) -comissaoatim: number; + @Column({ name: 'COMISSAOATIM' }) + comissaoatim: number; -@Column({ name: 'TIPOENTREGA' }) -tipoentrega: string; + @Column({ name: 'TIPOENTREGA' }) + tipoentrega: string; -@Column({ name: 'CODRETORNOS' }) -codretornos: string; + @Column({ name: 'CODRETORNOS' }) + codretornos: string; -@Column({ name: 'DTINCLUSAO' }) -dtinclusao: Date; + @Column({ name: 'DTINCLUSAO' }) + dtinclusao: Date; -@Column({ name: 'CODPRODCESTA' }) -codprodcesta: number; + @Column({ name: 'CODPRODCESTA' }) + codprodcesta: number; -@Column({ name: 'BONIFIC' }) -bonific: string; + @Column({ name: 'BONIFIC' }) + bonific: string; -@Column({ name: 'DTIMP' }) -dtimp: Date; + @Column({ name: 'DTIMP' }) + dtimp: Date; -@Column({ name: 'PBASERCA' }) -pbaserca: number; + @Column({ name: 'PBASERCA' }) + pbaserca: number; -@Column({ name: 'VLFRETE' }) -vlfrete: number; + @Column({ name: 'VLFRETE' }) + vlfrete: number; -@Column({ name: 'FATORCONVERSAO' }) -fatorconversao: number; + @Column({ name: 'FATORCONVERSAO' }) + fatorconversao: number; -@Column({ name: 'IDKITPRODUTO' }) -idkitproduto: string; + @Column({ name: 'IDKITPRODUTO' }) + idkitproduto: string; -@Column({ name: 'MOVIMENTACONTACORRENTERCA' }) -movimentacontacorrenterca: string; + @Column({ name: 'MOVIMENTACONTACORRENTERCA' }) + movimentacontacorrenterca: string; -@Column({ name: 'PORIGINAL' }) -poriginal: number; + @Column({ name: 'PORIGINAL' }) + poriginal: number; -@Column({ name: 'ESC_EMBALAGEMPRESENTE' }) -esc_embalagempresente: string; + @Column({ name: 'ESC_EMBALAGEMPRESENTE' }) + esc_embalagempresente: string; -@Column({ name: 'QTUNITEMB' }) -qtunitemb: number; + @Column({ name: 'QTUNITEMB' }) + qtunitemb: number; -@Column({ name: 'IDREMESSAWEB' }) -idremessaweb: number; + @Column({ name: 'IDREMESSAWEB' }) + idremessaweb: number; -@Column({ name: 'CODFILIAL' }) -codfilial: string; + @Column({ name: 'CODFILIAL' }) + codfilial: string; -@Column({ name: 'CODCLIPARTILHA' }) -codclipartilha: number; + @Column({ name: 'CODCLIPARTILHA' }) + codclipartilha: number; -@Column({name: 'RETIRAPOSTERIOR_IMEDIATA'}) -rp_imediata: string; } diff --git a/src/sales/order/order.service.ts b/src/sales/order/order.service.ts index 019fda8..d5f8ddb 100644 --- a/src/sales/order/order.service.ts +++ b/src/sales/order/order.service.ts @@ -586,7 +586,7 @@ export class OrderService { itemOrder.codauxiliar = componente.ean; itemOrder.codfilialretira = item.idStock; itemOrder.tipoentrega = (item.deliveryMethod == 'RA') ? "RP" : item.deliveryMethod; - itemOrder.rp_imediata = (item.deliveryMethod == 'RA') ? "S" : "N"; + // itemOrder.rp_imediata = (item.deliveryMethod == 'RA') ? "S" : "N"; if (item.deliveryMethod == 'RA') { preOrder.dtentrega = new Date(); } @@ -619,7 +619,7 @@ export class OrderService { itemOrder.codauxiliar = item.ean; itemOrder.codfilialretira = item.idStock; itemOrder.tipoentrega = (item.deliveryMethod == 'RA') ? "RP" : item.deliveryMethod; - itemOrder.rp_imediata = (item.deliveryMethod == 'RA') ? "S" : "N"; + //itemOrder.rp_imediata = (item.deliveryMethod == 'RA') ? "S" : "N"; if (item.deliveryMethod == 'RA') { preOrder.dtentrega = new Date(); } diff --git a/src/sales/pre-order/pre-order.service.ts b/src/sales/pre-order/pre-order.service.ts index 18a6983..d307f8b 100644 --- a/src/sales/pre-order/pre-order.service.ts +++ b/src/sales/pre-order/pre-order.service.ts @@ -51,7 +51,7 @@ export class PreOrderService { if (shopping.length > 0) { idPreOrder = shopping[0].idPreOrder; const existPreOrder = await queryRunner - .query('SELECT PCORCAVENDAC.CODUSUR as "idRca" FROM PCORCAVENDAC WHERE NUMORCA = :NUMORCA', [idPreOrder]); + .query('SELECT PCORCAVENDAC.CODUSUR as "idRca" FROM PCORCAVENDAC WHERE NUMORCA = :NUMORCA', [idPreOrder]); idRca = existPreOrder[0].idRca; await queryRunner.query('DELETE FROM PCORCAVENDAI WHERE NUMORCA = :1', [idPreOrder]); await queryRunner.query('DELETE FROM PCORCAVENDAC WHERE NUMORCA = :1', [idPreOrder]); @@ -70,9 +70,9 @@ export class PreOrderService { cart.id, cart.preCustomerName, cart.preCustomerPhone, cart.idSeller, idPreOrder]); } } else { - if ( cart.preCustomerDocument != null ) { - await queryRunner.query(`DELETE FROM ESTVENDAPRECLIENTE WHERE IDCART = :1 AND REGEXP_REPLACE(:CPF, '[^0-9]', '')`, - [cart.id, cart.preCustomerDocument]); + if (cart.preCustomerDocument != null) { + await queryRunner.query(`DELETE FROM ESTVENDAPRECLIENTE WHERE IDCART = :1 AND REGEXP_REPLACE(:CPF, '[^0-9]', '')`, + [cart.id, cart.preCustomerDocument]); } } @@ -92,7 +92,7 @@ export class PreOrderService { itemPreOrder.codcli = cart.idCustomer; itemPreOrder.codprod = item.idProduct; itemPreOrder.codauxiliar = item.ean; - itemPreOrder.codusur = ( idRca > 0 ) ? idRca : cart.idSeller; + itemPreOrder.codusur = (idRca > 0) ? idRca : cart.idSeller; itemPreOrder.qt = item.quantity; itemPreOrder.pvenda = item.salePrice; itemPreOrder.ptabela = item.listPrice; @@ -120,7 +120,7 @@ export class PreOrderService { itemPreOrder.pvenda1 = 0; itemPreOrder.tipoentrega = item.deliveryMethod; // eslint-disable-next-line @typescript-eslint/camelcase - itemPreOrder.rp_imediata = (item.deliveryMethod == "RA") ? "S" : "N"; + // itemPreOrder.rp_imediata = (item.deliveryMethod == "RA") ? "S" : "N"; itemPreOrder.complemento = item.descriptionAux; itemPreOrder.ambiente = item.environment; @@ -144,7 +144,7 @@ export class PreOrderService { itemPreOrder.codcli = cart.idCustomer; itemPreOrder.codprod = 48500; itemPreOrder.codauxiliar = 48500; - itemPreOrder.codusur = ( idRca > 0 ) ? idRca : cart.idSeller; + itemPreOrder.codusur = (idRca > 0) ? idRca : cart.idSeller; itemPreOrder.qt = 1; itemPreOrder.pvenda = Number.parseFloat(cart.shippingValue.toString()); itemPreOrder.ptabela = Number.parseFloat(cart.shippingValue.toString()); @@ -201,7 +201,7 @@ export class PreOrderService { preOrder.minuto = new Date().getMinutes(); preOrder.dtentrega = cart.shippingDate; // dateDelivery; preOrder.codfilial = cart.saleStore, - preOrder.codusur = ( idRca > 0 ) ? idRca : cart.idSeller; + preOrder.codusur = (idRca > 0) ? idRca : cart.idSeller; preOrder.codemitente = cart.userId; preOrder.codusur3 = cart.idProfessional; preOrder.tipoprioridadeentrega = cart.shippingPriority; @@ -352,12 +352,12 @@ export class PreOrderService { sql += ` AND PCORCAVENDAC.NUMORCA = ${idPreOrder} `; } - if ( document.length > 0 ) { - sql += ` AND REGEXP_REPLACE(PCCLIENT.CGCENT, '[^0-9]', '') = REGEXP_REPLACE(${document}, '[^0-9]', '') `; + if (document.length > 0) { + sql += ` AND REGEXP_REPLACE(PCCLIENT.CGCENT, '[^0-9]', '') = REGEXP_REPLACE(${document}, '[^0-9]', '') `; } - if ( nameCustomer.length > 0 ) { - sql += ` AND PCCLIENT.CLIENTE LIKE UPPER('${nameCustomer}')||'%' `; + if (nameCustomer.length > 0) { + sql += ` AND PCCLIENT.CLIENTE LIKE UPPER('${nameCustomer}')||'%' `; } const preOrders = @@ -411,7 +411,7 @@ export class PreOrderService { } await queryRunner.query("BEGIN ESK_VENDA.ATUALIZAR_PRECO_VENDA(:idcart, :paymentPlanId); END;", - [preOrder[0].cartId, preOrder[0].paymentPlanId]); + [preOrder[0].cartId, preOrder[0].paymentPlanId]); const invoiceStores = await this.listsService.GetStoreAll(); const invoiceStore = await invoiceStores.find(data => data.id === preOrder[0].invoiceStore);