Ejemplo n.º 1
0
        /// <summary>
        /// Procedimiento que almacena la información de los niveles por marco
        /// </summary>
        /// <param name="nivel"></param>
        /// <param name="tinOpcion"></param>
        /// <returns></returns>
        public Resultado setNivelPorMarco(NivelPorMarco nivel, short tinOpcion)
        {
            Resultado result = new Resultado();

            try
            {
                using (MarcosDataContext dc = new MarcosDataContext(Helper.ConnectionString()))
                {
                    var query = from item in dc.stp_setNivelPorMarco(nivel.intNivelID, nivel.intSeleccionMarcoID, nivel.intNumeroTarima, nivel.decPeso, nivel.decTotal, nivel.bitActivo, (byte)tinOpcion)
                                select new Resultado
                    {
                        vchDescripcion = item.vchDescripcion,
                        vchResultado   = item.vchResultado
                    };
                    result = query.First();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Procedimiento que almacena toda la información de la pantalla de captura de Marco
        /// </summary>
        /// <param name="marco"></param>
        /// <param name="listNivel"></param>
        /// <param name="tinOpcion"></param>
        /// <returns></returns>
        public Resultado setSeleccionMarco(SeleccionMarco marco, List <NivelPorMarco> listNivel, short tinOpcion)
        {
            Resultado result                 = new Resultado();
            Resultado resultNivel            = new Resultado();
            int       intNumeroNivelAnterior = 0;
            int       intNumeroNivelNuevo    = 0;

            try
            {
                //Revisamos si existe una lista
                if (marco != null)
                {
                    //using (TransactionScope transaction = new TransactionScope())
                    //{
                    // Obtenemos el número de niveles anterior
                    intNumeroNivelAnterior = (int)(new MarcosDataContext(Helper.ConnectionString())).fn_getNumeroNivelMarco(marco.intSeleccionMarcoID);
                    using (MarcosDataContext dc = new MarcosDataContext(Helper.ConnectionString()))
                    {
                        var query = from item in dc.stp_setSeleccionMarco(marco.intSeleccionMarcoID, marco.intRackID, marco.intDetCotizaID, marco.intConfiguraMarcoID,
                                                                          marco.decFondoMarco, marco.decAlturaMarco, marco.decAlturaPandeoRack, marco.vchSKU, marco.decPesoMarco,
                                                                          marco.decPrecioUnitario, marco.intTipoID, marco.intMaterialID, marco.decFondo, marco.decAltura,
                                                                          marco.decAlturaPandeo, marco.decCapacidadMarco, marco.bitEstructural, marco.bitRolado, marco.intNumeroNiveles,
                                                                          marco.decCapacidadCargaTotal, marco.bitActivo, (byte)tinOpcion)
                                    select new Resultado
                        {
                            vchDescripcion = item.vchDescripcion,
                            vchResultado   = item.vchResultado
                        };
                        result = query.First();
                    }
                    // Obtenemos el número de niveles nuevo
                    intNumeroNivelNuevo = (int)(marco.intNumeroNiveles == null ? 0 : marco.intNumeroNiveles);
                    if (result.vchResultado != "NOK")
                    {
                        // Almacenamos los cambios para el procedimiento de nivel marco
                        // Registro Nuevo o Actualización
                        if (listNivel != null)
                        {
                            if (tinOpcion == 1 || intNumeroNivelAnterior == intNumeroNivelNuevo)
                            {
                                foreach (NivelPorMarco nivel in listNivel)
                                {
                                    using (MarcosDataContext dc = new MarcosDataContext(Helper.ConnectionString()))
                                    {
                                        var query = from item in dc.stp_setNivelPorMarco(nivel.intNivelID, Convert.ToInt32(result.vchResultado), nivel.intNumeroTarima, nivel.decPeso, nivel.decTotal, nivel.bitActivo, (byte)tinOpcion)
                                                    select new Resultado
                                        {
                                            vchDescripcion = item.vchDescripcion,
                                            vchResultado   = item.vchResultado
                                        };
                                        resultNivel = query.First();
                                    }
                                    if (resultNivel.vchResultado == "NOK")
                                    {
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                // Validamos si son nuevos registros
                                if (intNumeroNivelNuevo != intNumeroNivelAnterior)
                                {
                                    // Recorremos la lista hasta llegar al número Nuevo
                                    for (int i = 0; i < intNumeroNivelAnterior; i++)
                                    {
                                        // Actualizamos los datos de la lista
                                        using (MarcosDataContext dc = new MarcosDataContext(Helper.ConnectionString()))
                                        {
                                            var query = from item in dc.stp_setNivelPorMarco(listNivel[i].intNivelID, Convert.ToInt32(result.vchResultado), listNivel[i].intNumeroTarima,
                                                                                             listNivel[i].decPeso, listNivel[i].decTotal, listNivel[i].bitActivo, 2)
                                                        select new Resultado
                                            {
                                                vchDescripcion = item.vchDescripcion,
                                                vchResultado   = item.vchResultado
                                            };
                                            resultNivel = query.First();
                                        }
                                        if (resultNivel.vchDescripcion == "NOK")
                                        {
                                            break;
                                        }
                                    }
                                    if (intNumeroNivelNuevo < intNumeroNivelAnterior)
                                    {
                                        // Al terminar, recorremos la lista quitando hasta llegar el número de nivel anterior
                                        for (int i = intNumeroNivelNuevo; i < intNumeroNivelAnterior; i++)
                                        {
                                            // Actualizamos los datos de la lista, dando baja a los registros
                                            using (MarcosDataContext dc = new MarcosDataContext(Helper.ConnectionString()))
                                            {
                                                var query = from item in dc.stp_setNivelPorMarco(listNivel[i].intNivelID, Convert.ToInt32(result.vchResultado), listNivel[i].intNumeroTarima,
                                                                                                 listNivel[i].decPeso, listNivel[i].decTotal, listNivel[i].bitActivo, 3) //Quitamos los registros
                                                            select new Resultado
                                                {
                                                    vchDescripcion = item.vchDescripcion,
                                                    vchResultado   = item.vchResultado
                                                };
                                                resultNivel = query.First();
                                            }
                                            if (resultNivel.vchDescripcion == "NOK")
                                            {
                                                break;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        // En caso contrario
                                        // Al terminar, recorremos la lista quitando hasta llegar el número de nivel anterior
                                        for (int i = intNumeroNivelAnterior; i < intNumeroNivelNuevo; i++)
                                        {
                                            // Actualizamos los datos de la lista, dando baja a los registros
                                            using (MarcosDataContext dc = new MarcosDataContext(Helper.ConnectionString()))
                                            {
                                                var query = from item in dc.stp_setNivelPorMarco(listNivel[i].intNivelID, Convert.ToInt32(result.vchResultado), listNivel[i].intNumeroTarima,
                                                                                                 listNivel[i].decPeso, listNivel[i].decTotal, listNivel[i].bitActivo, 1) // Agregamos los nuevos
                                                            select new Resultado
                                                {
                                                    vchDescripcion = item.vchDescripcion,
                                                    vchResultado   = item.vchResultado
                                                };
                                                resultNivel = query.First();
                                            }
                                            if (resultNivel.vchDescripcion == "NOK")
                                            {
                                                break;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    //else
                    //{
                    //    // Para los que quedaron fuera, se establece el valor a 0

                    //}
                    // Concatenamos el resultado
                    result.vchDescripcion += ". " + resultNivel.vchDescripcion;
                    //// The Complete method commits the transaction. If an exception has been thrown,
                    //// Complete is not  called and the transaction is rolled back.
                    //if (result.vchResultado != "NOK" && resultNivel.vchResultado != "NOK")
                    //    transaction.Complete();
                    //}
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }