예제 #1
0
        public bool Guardar()
        {
            System.Data.SqlClient.SqlConnection  conexion = new System.Data.SqlClient.SqlConnection();
            System.Data.SqlClient.SqlTransaction transaccion;
            conexion.ConnectionString = Config.ConnectionString;
            conexion.Open();
            transaccion = conexion.BeginTransaction();

            CodigoBarras    codigoBarras = new CodigoBarras();
            DsCodigosBarras ds           = null;

            try
            {
                //reviso que no exista ninguno de los códigos del rango en la tabla codigoBarras
                //ds = codigoBarras.GetCodigoBarrasByRango(Convert.ToInt64(this.CodigoBarrasInicial), Convert.ToInt64(this.CodigoBarrasFinal),0); //0=cualquier estado
                ds = codigoBarras.GetCodigoBarrasByRango(this.CodigoBarrasInicial, this.CodigoBarrasFinal, 0); //0=cualquier estado

                if (ds.Datos.Count <= 0)
                {
                    rangoCodigoBarrasID = Convert.ToInt32(
                        Config.Conexion.EjecutarResultadoUnico(transaccion, "RangoCodigoBarrasINS",
                                                               this.CodigoBarrasInicial,
                                                               this.CodigoBarrasFinal,
                                                               this.EstadoCodigoBarrasID,
                                                               this.usuarioID,
                                                               Utiles.BaseDatos.IntToSql(this.UnidadVentaID),
                                                               Utiles.BaseDatos.IntToSql(this.ServicioID),
                                                               Utiles.BaseDatos.IntToSql(this.ModalidadEntregaID),
                                                               Utiles.BaseDatos.IntToSql(0), //TarifaPreventaID
                                                               Utiles.BaseDatos.IntToSql(0), //AgenciaID
                                                               Utiles.BaseDatos.IntToSql(0), //ClienteID
                                                               Utiles.BaseDatos.IntToSql(0), //VendedorID
                                                               Utiles.BaseDatos.IntToSql(this.MotivoID),
                                                               Utiles.BaseDatos.IntToSql(TarifarioFleteID),
                                                               Utiles.BaseDatos.IntToSql(ConceptoFacturacionID)
                                                               ));

                    codigoBarras = new CodigoBarras();
                    codigoBarras.UnidadVentaID         = this.UnidadVentaID;
                    codigoBarras.ServicioID            = this.ServicioID;
                    codigoBarras.ModalidadEntregaID    = this.ModalidadEntregaID;
                    codigoBarras.ConceptoFacturacionID = this.ConceptoFacturacionID;
                    codigoBarras.Generar(transaccion, this.CodigoBarrasInicial, this.CodigoBarrasFinal);

                    transaccion.Commit();
                    return(true);
                }
                else
                {
                    //transaccion.Rollback();
                    string codigosBarras = "";
                    int    i             = 1;
                    foreach (DsCodigosBarras.DatosRow dr in ds.Datos)
                    {
                        codigosBarras += dr.CodigoBarras;
                        if (i < ds.Datos.Count)
                        {
                            codigosBarras += " - ";
                        }
                        i++;
                    }
                    throw new Exception("Los siguientes códigos ya se encuentran asignados: <br>" + codigosBarras);
                }
            }
            catch (Exception ex)
            {
                transaccion.Rollback();
                throw new Exception(ex.Message, ex);
            }
            finally
            {
                conexion.Close();
            }
        }