import { M3Procesos } from "../Registro/m3-procesos"; import { M3PEncItems } from "../Registro/m3-penc-items"; import { M3PrdGeneral } from "../Maestro/M3PrdGeneral.type"; import { M3PDetalleItems, M3PItemsWEB, M3PDetalleCupon } from "../Registro/m3-pdetalle-items"; import { PostServiceM3 } from "../../ConexionSQL/posts.service"; import { M3Data } from "../Data/m3-data"; import { M3Ubicacion } from "../Maestro/Ubicacion/M3Ubicacion.type"; import { M3ENCPROMO } from "../Promociones/Models/M3ENCPROMO.class"; import { TypeM3PrdGrp } from "../Maestro/M3PrdGrp.type"; import { PromocionProcesada, PromocionesAsociadas, PromocionCombinada } from "../Promociones/Models/M3PromoProcesada.class"; import { M3CouchMaestro } from "../Data/m3-couch-maestro"; import { M3PDinamicas } from "../Registro/m3-pdinamicas"; import { M3PrdPackDet } from "../Maestro/M3PrdPackDet"; import { M3PrdAdicionales } from "../Maestro/M3PrdAdicionales.type"; import { M3OtClasificaciones } from "../Registro/m3-ot-clasificaciones"; import { M3PrdLista } from "../Maestro/M3PrdLista.type"; import { MathTF } from "../Miscelanea/MathTF.class"; export declare class M3RegService { oMathTF: MathTF; private oM3CouchMaestro; oListaObsequios: Array; obsequiosExc: boolean; obsequioOPromo: number; obsequiosCantidad: number; private GoPostServiceM3; private gsIdkatios; constructor(ioM3CouchMaestro: M3CouchMaestro, IsPostServiceM3: PostServiceM3, sIdkatios: string); /** * Validar numero de items agregados. si es mayor a 1.000 prende parametro */ ValidarNumeroItems(olM3Procesos: M3Procesos): void; ProcesamientoService(sIDKatios: string, PostServiceM3: PostServiceM3, oM3Procesos: M3Procesos, oDataUser: any, funcionOK: Function, funcionError: Function, aplRetomarInfo?: boolean): void; procesamiento_service_async(sIDKatios: string, PostServiceM3: PostServiceM3, oM3Procesos: M3Procesos, oDataUser: any, aplRetomarInfo?: boolean): Promise; RegistroEventoM3OffLine(sIDKatios: string, PostServiceM3: PostServiceM3, oM3Procesos: Array, oDataUser: any): Promise; RetomarInformacion(oDataUser: any, oM3Procesos: M3Procesos, aplRetomarInfo: boolean): void; ProcesamientoServicePouchDB(oM3Data: M3Data, oM3PItemsWEB: M3PItemsWEB, prodGRPSelected: TypeM3PrdGrp, funcionOK: Function, funcionError: Function, oDataUser: any, sIDKatios: string, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, ioM3Procesos: M3Procesos, oM3PDinamicasByActividad?: any): void; addtocart(oM3PItemsWEB: M3PItemsWEB, prodGRPSelected: TypeM3PrdGrp, funcionOK: Function, funcionError: Function, oDataUser: any, sIDKatios: string, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, ioM3Procesos: M3Procesos, oM3PDinamicasByActividad?: any, valorDescuento?: number): M3Procesos; validarExistaProducto(oM3ListaEnc: Array, oM3PrdGrl: M3PrdGeneral, oM3PItemsWEB: M3PItemsWEB): number; getCantidadPositiva(oM3PEncItems: M3PEncItems): boolean; /** * Valida que el encabezado con el producto agregado, sea un paquete * @param oM3PEncItems * @param oM3ListaEnc */ ValidarEstaPaquete(oM3PEncItems: M3PEncItems, oM3ListaEnc: Array): boolean; /** * Validar los precios de los productos * @param oEnc * @param oM3PrdLista */ ValidarPreciosPrds(oEnc: M3PEncItems, oM3PrdLista: M3PrdLista): boolean; UpdateM3ProcesosWithData(oM3Procesos: M3Procesos, oM3Data: M3Data, oDataUser: any, sIDKatios: string, tipoUbicacion: string, funcionOK: Function, funcionError: Function, m3Ubicacion?: M3Ubicacion, oM3PItemsWEB?: M3PItemsWEB): void; procesarPromoAfterCarritoOk(oM3Procesos: M3Procesos, oM3Data: M3Data, oDataUser: any, m3Ubicacion: M3Ubicacion, funcionOK: Function, funcionError: Function, oM3PItemsWEB: M3PItemsWEB): void; updateAPouch(oM3Procesos: M3Procesos, oM3Data: M3Data, oDataUser: any, sIDKatios: string, tipoUbicacion: string, funcionOK: Function, funcionError: Function): void; DeleteM3Proceso(oM3Data: M3Data, oDataUser: any, sIDKatios: string): Promise; DelDocsStartAndCurrent(oM3Data: M3Data, sIDKatios: string, olM3Procesos: M3Procesos, UbicacionCurrent: any, HubCurrent: any): void; GetCarritoComprasPouchDB(oM3Data: M3Data, oDataUser: any, sIDKatios: string): Promise; MoveCartIntoUser(sIDKatios: string, oM3Data: M3Data, oDataUserOrigen: any, oDataUserDestino: any, funcionOK: Function): Promise; /** * Recalcular precios totales y de base * @param oM3Procesos */ RecalcularPreciosPromoCombinada(oM3Procesos: M3Procesos): void; RecalcularPrecios(oM3Procesos: M3Procesos): void; CalcularPrecioBaseFromProceso(oM3PEncItems: M3PEncItems, dPrecioNeto: number): number; /** * Creacion nuevo M3 procesos, este va vacio sin nisiquiera M3PEncItems. * Se utiliza principalmente para las creacion desde 0 un M3 Proceso. Que pasa de estados '' al primer estado * @param ioM3Procesos * @param idproceso_destino * @param tdoc * @param ndoc * @param estados_futuros * @param idHub * @param idUbicacion */ CreateM3NewProcesoEmpty(ioM3Procesos: M3Procesos, idproceso_destino: string, tdoc: string, ndoc: string, estados_futuros: Array, idHub: string, idUbicacion: string): void; LoadM3ProcesoEmptyPDB(prodGRPSelected: TypeM3PrdGrp, oM3PItemsWEB: M3PItemsWEB, oDataUser: any, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, ioM3Procesos: M3Procesos, oM3PDinamicasByActividad?: any): M3Procesos; LoadAdicionales(oM3PItemsWEB: M3PItemsWEB, product: TypeM3PrdGrp): M3PItemsWEB; LoadM3ProcesoFromData(oM3Procesos: M3Procesos, prodGRPSelected: TypeM3PrdGrp, oM3PItemsWEB: M3PItemsWEB, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, oDataUser: any, oM3PDinamicasByActividad?: any, valorDescuento?: number): M3Procesos; LoadM3PEncItemsFromPrdGrl(oM3Procesos: M3Procesos, prodGRPSelected: TypeM3PrdGrp, oencabezadoItems: Array, oM3PItemsWEB: M3PItemsWEB, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, oDataUser: any, oPadreM3PEncItems: M3PEncItems, valorDescuento?: number, oM3PDinamicasByActividad?: any): void; calcularPorcentajeDescuentoCombo(prodGRPSelected: TypeM3PrdGrp): number; /** * Recalculo de precios de hijos del paquete * @param oM3PrdPackDet */ CalcularPreciosPCKG(oM3PrdPackDet: M3PrdPackDet): void; loadM3PEncItemsFromPromocionCombo(oM3Procesos: M3Procesos, productosHijosDelCombo: Array, codigo: string, valor: any, dCantidad: number): M3PEncItems; recalcularM3Proceso(oM3Procesos: M3Procesos): void; LoadM3PEncItemsFromPrdGrlItem(oM3Procesos: M3Procesos, prodGRPSelected: TypeM3PrdGrp, oencabezadoItems: Array, oM3PItemsWEB: M3PItemsWEB, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, oDataUser: any, oPadreM3PEncItems?: M3PEncItems, valorDescuento?: number): M3PEncItems; /** * Retorna true si este producto se encuentra restringido * @param oPromocionProcesada */ validarProductoRestringido(oPromocionProcesada: PromocionProcesada): boolean; /** * Retorna el máximo valor de un atributo dentro de la lista cualquiera */ GetMaxAtributoFromLista(lista: any, atributo: any): any; /** * Valores Calculados por proceso. * @param oM3PEncItems * @param dCantidad */ ValoresCalculadosProceso(oM3PEncItems: M3PEncItems, dCantidad: number): void; /** * Retorna la sumatoria de los valores de un atributo dado del arreglo de impuestos * @param oM3PEncItems * @param atributo */ getValorTotalFromImpuestos(oM3PEncItems: M3PEncItems, atributo: string): number; private agregarImpuesto; private InsUpdDetItem; /** * Obtener valor total * @param cantidad Nueva Cantidad * @param oM3PEncItems * @param DescUnitario */ private GetTotalByUnitario; /** * Obtener valor unitario * @param cantidad * @param oM3PEncItems * @param DescTotal */ private GetUnitarioByTotal; /** * Adicionar detalles relacionados con la informacion de sw externo. * @param oM3PEncItems Objeto donde se guardará los nuevos atributos. * @param oAdicionales Desde donde se sacará la información. */ AddItemsInterfaz(oM3PEncItems: M3PEncItems, oAdicionales: Array): void; /** * Adicionar detalles * @param oM3PEncItems Objeto donde se guardará los nuevos atributos. * @param oAdicionales Desde donde se sacará la información. */ AdicionalesToDetalles(oM3PEncItems: M3PEncItems, oAdicionales: Array): void; camposAdicionalesToDetalles(oM3PEncItems: M3PEncItems, oM3PItemsWEB: M3PItemsWEB): void; /** * Agregar informacion de promociones Nombre, ID. a detalle del encabezado de producto agregado * @param oPromocionProcesada Informacion de promociones procesadas * @param oM3PEncItems Encabezado de items */ GenerarInfoPromocionesProcesadas(oPromocionProcesada: PromocionProcesada, iCantidad: number, aplicadas?: boolean): any; /** * Adicionar detalle de promociones * @param oM3PEncItems * @param sNombres * @param sIds */ AddInfoPromocionesADetalle(oPromocionProcesada: PromocionProcesada, oM3PEncItems: M3PEncItems, iCantidad: number): void; /** * Cargar a detalle informacion de niveles de precio * @param infNivelesPrcio Informacion de niveles de precio * @param oM3PEncItems Objeto donde se cargará la informacion */ LoadDetalleNivelesPrecio(infNivelesPrcio: any, oM3PEncItems: M3PEncItems): void; /** * Verificar con que nivel de precio va a trabajar * @param prodGRPSelected El producto ingresado * @param iCantidad La cantidad de productos que va a ingresar */ VerificarPrecioByNiveles(prodGRPSelected: TypeM3PrdGrp, iCantidad: number): {}; VerificarPrecioByNivelesGeneral(oM3PrdGeneral: M3PrdGeneral, iCantidad: number): {}; /** * Retorna los cupones generados de la lista de promoprocesadas * @param oPromocionProcesada */ get_list_cupones_from_promo(oPromocionProcesada: PromocionProcesada, cantidad: number): Array; AsignarPromocionesCombinadas(oM3Procesos: M3Procesos, oPromocionProcesada: PromocionProcesada, oM3PEncItems: M3PEncItems): void; /** * Asignar promociones combiandas a M3 Proceso, este, valida que no exista un promocion anterior. */ AsignarPromocionesCombinadasAM3Proceso(oM3Procesos: M3Procesos, oPromocionCombinada: PromocionCombinada): void; /** * Adicionar a dinamicas proceso de combinadas * @param ioM3Proceso */ AddDinamicaProcesoCombinadas(ioM3Proceso: M3Procesos): void; CalcularPromociones(oM3Procesos: M3Procesos, prodGRPSelected: TypeM3PrdGrp, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, oDataUser: any, oM3PItemsWEB: M3PItemsWEB): PromocionProcesada; VerificarObsequios(oPromocionProcesada: PromocionProcesada, cantidad: number, oM3PEncItems: M3PEncItems): void; armarListaObsequiosSKU(promo: PromocionesAsociadas, oM3PEncItems: M3PEncItems, cantidad: number): void; asignarIdEncPadreObsequio(promo: PromocionesAsociadas, oM3PEncItems: M3PEncItems): void; armarListaObsequiosCombiSKU(combi: any, oM3PEncItems: M3PEncItems, cantidad: number): void; asignarIdEncPadreObsequioCombinado(obsequios: any, oM3PEncItems: M3PEncItems): void; validaSiTieneOtraPromo(promoObsequio: PromocionesAsociadas, arrPromocionesAsociadas: Array): boolean; ProcesarObsequios(oDataUser: any, oM3PItemsWEB: M3PItemsWEB, oM3Ubicacion: M3Ubicacion, EnLinea: boolean, oM3Procesos: M3Procesos): Promise; GuardarPromocion(promo: any, oDataUser: any, oM3PItemsWEB: M3PItemsWEB, oM3Ubicacion: M3Ubicacion, EnLinea: boolean, oM3Procesos: M3Procesos): Promise; AdicionarPromocionAProceso(promo: any, oM3Procesos: M3Procesos, oM3PItemsWEB: M3PItemsWEB, oM3Ubicacion: M3Ubicacion, EnLinea: boolean, oDataUser: any): Promise; GetProductoBySKU(sSKU: any, EnLinea: boolean, oM3Procesos: M3Procesos, oDataUser: any, disponibleM3Enc?: any): Promise; CalculatePrecioBase(CTBLDIMPPRD: string, dValorNeto: number): number; LoadM3PImpuestosFromPrdGrl(CTBLDIMPPRD: string, oM3PEncItems: M3PEncItems, dValorNeto: number, cantidad: number, valorTotalProductoUnit: number): number; /** * FS 20190725 * Corrige el valor que tomo el impuesto despues de haberse redondeado * Si al recorrer todos los impuestos la diferencia no se zanja, NI MODOS el error está en otra parte * Se crea esta función para resolver los errores de timbrado de factura electrónica * @param oM3PEncItems * @param diferencia Diferencia que se debe saldar para conseguir el valor total de impuestos requerido */ ajustadorDeImpuestos(oM3PEncItems: M3PEncItems, diferencia: number): void; LoadM3PDetalle(sValor: string, sConcepto: string): M3PDetalleItems; GenerarPromoCombinada(oM3Procesos: M3Procesos, oDataUser: any): Promise; CompareM3Proceso(sIDKatios: string, oM3Data: M3Data, oDataUser: any, ilM3ProcesosSQL: M3Procesos): Promise; AddComercialToM3Proceso(oM3Procesos: M3Procesos, TdocComercial: string, NdocComercial: string): void; CreateTuplaDinamica(nombre: any, valor: any): M3PDinamicas; setCantidadALLYUPDCouch(oM3Procesos: M3Procesos, oM3Data: M3Data, oDataUser: any, sIDKatios: string, funcionOK: Function, funcionError: Function, iCantidad: any): void; setCantidadYUPDCouch(oM3Procesos: M3Procesos, oM3Data: M3Data, oDataUser: any, sIDKatios: string, funcionOK: Function, funcionError: Function, idProducto: any, Lote: any, iCantidad: any, tipoUbicacion: any, IDEnc: any, m3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, forzarBorrad?: boolean): void; setCantidadV2(oM3Procesos: M3Procesos, idProducto: any, Lote: any, iCantidad: any, IDEnc: any, oDataUser: any, sIDKatios: string, m3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array): Promise<{ "M3Proceso": M3Procesos; "M3PItemsWEB": M3PItemsWEB; }>; get_M3ENC_by_idprd_lote(oM3Procesos: M3Procesos, idProducto: any, Lote: any): M3PEncItems; getCantidad(oM3Procesos: M3Procesos, oProducto: M3PrdGeneral): string; getCantidadTotal(oM3Procesos: M3Procesos): number; MergeRecepYEnc(oM3Procesos: M3Procesos, idRecepcion: number): void; RemoveCurCRec(oM3Procesos: M3Procesos): void; MergeEntpYEnc(oM3Procesos: M3Procesos): void; RemoveCurCEnt(oM3Procesos: M3Procesos): void; /** * Promociones que se procesan despues de agregar al carrito * @param oM3Procesos * @param oDataUser * @param oM3PItemsWEB * @param oM3Ubicacion * @param EnLinea */ ProcPromoAfterAddToCart(oM3Procesos: M3Procesos, oDataUser: any, oM3PItemsWEB: M3PItemsWEB, oM3Ubicacion: M3Ubicacion, EnLinea: boolean): Promise; /** * Procesar promociones despues de finalizar el registro * @param oM3Procesos */ ProcPromoAfterFinalizar(oM3Procesos: M3Procesos, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, oDataUser: any): void; PromoAfterProceso(oM3Procesos: M3Procesos, oM3Ubicacion: M3Ubicacion, oM3ENCPROMO: Array, oDataUser: any): void; /** * Agregar informacion de promociones a informacion dinamica del proceso * @param oM3Procesos * @param oPromocionProcesada */ AddInfoPromocionesADinamicas(oM3Procesos: M3Procesos, oPromocionProcesada: PromocionProcesada): void; get_m3_proceso_by_id_prestamo_async(PostServiceM3: PostServiceM3, id_katios: string, id_prestamo: string): Promise; GetConceptoM3SaldosItemUb(PostServiceM3: PostServiceM3, sIDKatios: string, jData: any): Promise; /** * Agrega o modifica la cantidad de un objeto M3OtClasificaciones dentro dela lista de un Proceso * @param product * @param cantidad * @param ioM3Procesos * @param funcionOK */ addProductoToOtrasClas(product: TypeM3PrdGrp, cantidad: number, ioM3Procesos: M3Procesos, funcionOK: Function): void; /** * Elimina un objeto M3OtClasificaciones poniendo su valor y cantidad en cero * @param oM3OtClasificaciones * @param ioM3Procesos */ deleteProductoFromOtrasClas(oM3OtClasificaciones: M3OtClasificaciones, ioM3Procesos: M3Procesos): M3Procesos; /** * Recalcula el valor de M3Procesos.ValOtraClasi a partir de la sumatoria de los objetos dentro del arreglo M3Procesos.M3OtClasificaciones * @param oM3Procesos */ recalcularValOtraClasiM3Procesos(oM3Procesos: M3Procesos): M3Procesos; /** * Valida la existencia de un producto dentro de un la lista de M3OtClasificaciones * @param listM3OtClasificaciones * @param product */ validarExistaOtraClasif(listM3OtClasificaciones: Array, product: TypeM3PrdGrp): M3OtClasificaciones; /** * Limpia los detalles y los impuestos de un producto dado en un proceso de devolucion * @param productoBorrado * @param procesoDevolucion */ deletePrdDevolucion(productoBorrado: any, procesoDevolucion: M3Procesos): void; /** * Ajusta los Valores en caso de encontrar diferencias para poder generar FE * @param oM3Procesos */ ajustadorValoresCFDIFront(oM3Procesos: M3Procesos): M3Procesos; /** * Retorna el valor total de promociones aplicadas en el proceso en cuestión * @param oM3Procesos */ getValorTotalDescuentos(oM3Procesos: M3Procesos): number; /** * Retorna el valor total de impuestos cobrados en el proceso en cuestión * @param oM3Procesos */ getValorTotalImporteImpuestos(oM3Procesos: M3Procesos): number; /** * Mueve el valor de un impuesto en 0.01 y su correspondiente base para que cuadre los valores al timbrar la FE * @param diferencia * @param oM3Procesos */ ajustadorImpuestosCFDI(diferencia: number, oM3Procesos: M3Procesos): void; /** * Mueve el valor de un descuento en 0.01 para que cuadre los valores al timbrar la FE * @param diferencia * @param oM3Procesos */ ajustadorDescuentosCFDI(diferencia: number, oM3Procesos: M3Procesos): void; getPrdsGeneralFromM3Proceso(PostServiceM3: PostServiceM3, sIdKatios: string, jData: any, oFuncionOK: Function, oFuncionErr: Function): void; }