예제 #1
0
        public Boolean compararPrecio(string codProducto, int tipoListaPrecio, decimal precio)
        {
            //DESCRIPCION: Compara si el precio ha variado o no (VENTANA MODAL - ACTUALIZAR)
            Boolean   respuesta = false;
            Decimal   precioBD  = 0; //no tiene precio
            CLNPrecio clnPrecio = new CLNPrecio();
            CADPrecio CADPrecio = new CADPrecio();

            //NOTA: ES POSIBLE ACTUALIZAR UN VALOR DE PRECIO DE (0) A OTRO PRECIO MAYOR A CERO (0) ó
            //DE UN VALOR DE PRECIO DIFERENTE DE CERO A CERO (0)
            try
            {
                //Obtener lista de precios por Producto
                precioBD = CADPrecio.ObtenerPrecioXProducto(codProducto, tipoListaPrecio);  //cuando no encuentra precio en la TblPrecio el valor automatico asignado es cero (0), desde el store.


                if (!tipoListaPrecio.Equals(0))                                                           //Tipo de Precio es DISTINTO del PRECIO COSTO.
                {
                    if (precioBD.Equals(-1))                                                              //NO SE ENCONTRÓ TIPO DE PRECIO EN LA TABLA: TBLPRECIO
                    {                                                                                     //POR DEFECTO CUANDO NO SE ENCUENTRE EL TIPO DE PRECIO EN LA TABLA: TBLPRECIO, SE RETORNA (-1) DEL STORE.
                        //INSERTAR PRECIO VENTA EN LA BASE DE DATOS EN LA TABLA: TblPrecio
                        CADPrecio.ActualizarInsertarPrecioModal(codProducto, tipoListaPrecio, precio, 3); //INSERTAR PRECIO EN LA TABLA: TblPrecio (3)
                        respuesta = true;
                    }
                    else //SI SE ENCONTRÓ EL TIPO DE PRECIO EN LA TABLA: TBLPRECIO
                    {
                        if (!precioBD.Equals(precio))
                        {
                            //ACTUALIZAR PRECIO COSTO EN LA BASE DE DATOS EN LA TABLA: TblProducto
                            CADPrecio.ActualizarInsertarPrecioModal(codProducto, tipoListaPrecio, precio, 2); //ACTUALIAZR PRECIO EN LA TABLA: TblProducto (1)
                            respuesta = true;
                        }
                    }
                }
                else //Tipo de Precio es IGUAL a PRECIO COSTO
                {
                    if (!precioBD.Equals(precio)) //SI EL PRECIO DE LA BD ES DISTINTO AL PRECIO INGRESADO POR FORMULARIO SE ACTUALIZARÁ
                    {
                        //ACTUALIZAR PRECIO EN LA BASE DE DATOS EN LA TABLA: TblPrecio
                        CADPrecio.ActualizarInsertarPrecioModal(codProducto, tipoListaPrecio, precio, 1); //ACTUALIZAR PRECIO EN LA TABLA: TblProducto (1)
                        respuesta = true;
                    }
                }
            }
            catch (Exception ex)
            {
                ex.StackTrace.ToString();
            }

            return(respuesta);
        }
예제 #2
0
        public Boolean compararDataExcelvsDataTablas(List <CENCPrecio> dataExcel, List <CENCPrecio> dataTablas)
        {
            //DESCRIPCION: Compara Data Excel versus Data de las Tablas
            String    valorExcel       = "";
            String    valorTabla       = "";
            String    codProductoExcel = "";
            String    codProductoBD    = "";
            Double    dvalorExcel;
            Double    dvalorTabla;
            Boolean   flag      = false;
            CLNPrecio clnPrecio = new CLNPrecio();


            //DESCRIPCION: Comparar data de Excel vs Tabla
            try
            {
                for (int i = 0; i < dataExcel.Count; i++)                       //Data de Excel
                {
                    for (int j = 0; j < dataTablas.Count; j++)                  //Data de Tablas
                    {
                        codProductoExcel = dataExcel[i].CodProducto.ToUpper();  //SE PASA A MAYUSCULAS PUES C# "SI" ES SENSIBLE A MAYUSCULAS Y/O MINUSCULAS SIN EMBARGO SQL "NO"
                        codProductoBD    = dataTablas[j].CodProducto.ToUpper(); //SE PASA A MAYUSCULAS PUES C# "SI" ES SENSIBLE A MAYUSCULAS Y/O MINUSCULAS SIN EMBARGO SQL "NO"

                        if (codProductoExcel.Equals(codProductoBD))             //Buando codigo de producto de Excel en la Data de Tablas
                        {
                            //INICIO: DE LA COMPARACION DEL PRECIO COSTO DEL EXCEL VERSUS LA DATA DE LAS TABLAS
                            valorExcel  = dataExcel[i].PrecioCosto;
                            valorTabla  = dataTablas[j].PrecioCosto;
                            dvalorExcel = Convert.ToDouble(valorExcel); //Convertimos los precios a Double para eliminar los ceros a la derecha en casos los haya
                            dvalorTabla = Convert.ToDouble(valorTabla); //Convertimos los precios a Double para eliminar los ceros a la derecha en casos los haya
                            //FIN: DE LA COMPARACION DEL PRECIO COSTO DEL EXCEL VERSUS LA DATA DE LAS TABLAS
                            if (!dvalorExcel.Equals(dvalorTabla))
                            {
                                //ACTUALIZO (DE LO CONTRARIO NO REALIZO NINGUNA ACCION)
                                clnPrecio.RegistrarActualizarxCargaMasiva(dataExcel[i].CodProducto, 0, dvalorExcel, 1);
                            }

                            //INICIO: DE LA COMPARACION DEL DETALLE DE PRECIOS POR CADA PRODUCTO (Data del Excel versus Tablas de la Base de Datos)
                            valorExcel = "";
                            valorTabla = "";
                            for (int k = 0; k < dataExcel[i].Ldprecios.Count; k++)
                            {
                                flag = false; //Inicializo para volver a comparar el Detalle de Precios del Excel con el Detalle de Precio de las Tablas
                                for (int m = 0; m < dataTablas[j].Ldprecios.Count; m++)
                                {
                                    if (dataExcel[i].Ldprecios[k].TipoListaPrecio == dataTablas[j].Ldprecios[m].TipoListaPrecio) //Comparar por cada Tipo de Precio del Excel con el Tipo de Precio registrado en la Base de Datos
                                    {
                                        flag = true;
                                        //Si encuentro el mismo tipo de precio del Excel con la Base de Datos de cada Producto => Obtengo el Precio Venta para verificar si el valor es diferente para actualizar
                                        valorExcel  = dataExcel[i].Ldprecios[k].PrecioVenta;
                                        valorTabla  = dataTablas[j].Ldprecios[m].PrecioVenta;
                                        dvalorExcel = Convert.ToDouble(valorExcel); //Convertimos los precios a Double para eliminar los ceros a la derecha en casos los haya
                                        dvalorTabla = Convert.ToDouble(valorTabla); //Convertimos los precios a Double para eliminar los ceros a la derecha en casos los haya

                                        if (!dvalorExcel.Equals(dvalorTabla))       //si el valor del precio del Excel es distinto al Precio de la Tabla (ACTUALIZO)
                                        {
                                            //ACTUALIZO (DE LO CONTRARIO NO REALIZO NINGUNA ACCION)
                                            clnPrecio.RegistrarActualizarxCargaMasiva(dataExcel[i].CodProducto, dataExcel[i].Ldprecios[k].TipoListaPrecio, dvalorExcel, 2);
                                        }
                                    }
                                }
                                //Si "NO" encontré el Tipo de Precio de la data del Excel en la Data de las Tablas recien inserto
                                if (flag == false)
                                {
                                    //INSERTO EN LA BASE DE DATOS (tblPrecio)
                                    clnPrecio.RegistrarActualizarxCargaMasiva(dataExcel[i].CodProducto, dataExcel[i].Ldprecios[k].TipoListaPrecio, Convert.ToDouble(dataExcel[i].Ldprecios[k].PrecioVenta), 3);
                                }
                            } //FIN: DE LA COMPARACION DEL DETALLE DE PRECIOS POR CADA PRODUCTO (Data del Excel versus Tablas de la Base de Datos)
                        }     //SINO ENCUENTRO EL PRODUCTO NO HAGO NADA (PUES SOLO ACTUALIZO O AGREGO UN TIPO DE PRECIO SI EL PRODUCTO YA EXISTE PUES ESTE MANTENEDOR SOLO ES DE PRECIOS)
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(true);
        }