feat: implement order creation and cancellation functionality with new entities for city, sales order items, and temporary order items.

This commit is contained in:
Luis Eduardo Estevao
2026-02-11 15:28:05 -03:00
parent f0ef3dd21c
commit 33f0271a0e
5 changed files with 162 additions and 170 deletions

View File

@@ -26,9 +26,6 @@ export class Pccidade {
@Column({ name: 'CODMUNSIAFI' })
codmunsiafi: number;
@Column({ name: 'DTMXSALTER' })
dtmxsalter: Date;
@Column({ name: 'LATITUDE' })
latitude: string;

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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();
}

View File

@@ -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 ) {
if (cart.preCustomerDocument != null) {
await queryRunner.query(`DELETE FROM ESTVENDAPRECLIENTE WHERE IDCART = :1 AND REGEXP_REPLACE(:CPF, '[^0-9]', '')`,
[cart.id, cart.preCustomerDocument]);
[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,11 +352,11 @@ export class PreOrderService {
sql += ` AND PCORCAVENDAC.NUMORCA = ${idPreOrder} `;
}
if ( document.length > 0 ) {
if (document.length > 0) {
sql += ` AND REGEXP_REPLACE(PCCLIENT.CGCENT, '[^0-9]', '') = REGEXP_REPLACE(${document}, '[^0-9]', '') `;
}
if ( nameCustomer.length > 0 ) {
if (nameCustomer.length > 0) {
sql += ` AND PCCLIENT.CLIENTE LIKE UPPER('${nameCustomer}')||'%' `;
}
@@ -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);