コード例 #1
0
ファイル: ArticulosServices.cs プロジェクト: WildGenie/00-HID
        public bool UpdateProveedor(Proveedor modificado)
        {
            HIDContext ctx    = DB.Context;
            bool       result = false;

            try
            {
                Errores.Clear();

                //  ctx.Proveedores.Add(nuevo);
                //  var errorList = ctx.GetValidationErrors();  //  una para cada instancia...ojo...
                var validation = ctx.Entry(modificado).GetValidationResult();

                if (!validation.IsValid)
                {
                    Errores.AddRange(HidErrorInfo.FromEFCollectionError(validation.ValidationErrors));
                }
                else
                {
                    ctx.SaveChanges();
                    Audit(InfoType.Modificacion, "UpdateProveedor",
                          string.Format("[M] Proveedor: Nombre --> {0} CUIT --> {1}", modificado.Nombre, modificado.CUIT));

                    result = true;
                }
            }
            catch (Exception ex)
            {
                Errores.Add(HidErrorInfo.FromException(ex));
            }
            return(result);
        }
コード例 #2
0
        public T?ObtenerEnum <T>(int columna, string descripcion, bool esRequerido = true)
            where T : struct
        {
            var tipo = typeof(T);

            if (!tipo.IsEnum)
            {
                throw new ArgumentException(string.Format("El tipo '{0}' no es un Enum válido.", tipo.Name));
            }

            var celda = Hoja.Cells[Fila, columna];
            var valor = celda.Value;

            if (valor != null)
            {
                try
                {
                    return((T?)Enum.Parse(tipo, Convert.ToString(valor)));
                }
                catch (Exception)
                {
                    Errores.Add(string.Format("El dato '{0}' no es válido (celda {1}).", descripcion, celda.Address));
                    return(null);
                }
            }
            else
            {
                if (esRequerido)
                {
                    Errores.Add(string.Format("El dato '{0}' es requerido y no ha sido especificado (celda {1}).", descripcion, celda.Address));
                }

                return(null);
            }
        }
コード例 #3
0
        protected T?ObtenerValor <T>(int columna, string descripcion, bool esRequerido = true)
            where T : struct
        {
            var celda = Hoja.Cells[Fila, columna];
            var valor = celda.Value;

            if (valor != null)
            {
                try
                {
                    return((T)Convert.ChangeType(valor, typeof(T)));
                }
                catch (Exception)
                {
                    Errores.Add(string.Format("El dato '{0}' no es válido (celda {1}).", descripcion, celda.Address));
                    return(null);
                }
            }
            else
            {
                if (esRequerido)
                {
                    Errores.Add(string.Format("El dato '{0}' es requerido y no ha sido especificado (celda {1}).", descripcion, celda.Address));
                }

                return(null);
            }
        }
        /// <summary>
        /// Recepción de datos del puerto serial enviados por arduino
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            //-------------------------Recepción de datos del arduino------------------------------
            _bufferint = serialPort1.ReadLine();

            //-------------Convirtiendo valores recibidos a datos tipo double------------------

            bool valnum1 = double.TryParse(_bufferint, out _data1);

            //-------------------Muestreo de datos para filtrar errores de medición-------------

            if (valnum1)   // Validando que el dato recibido sea un número
            {
                _dataHcsr04 = _data1;
                ErrorIntegral(_dataHcsr04 * 0.017);
                _sumHcsr04 = _sumHcsr04 + _dataHcsr04;
                _contador++;
            }

            //--------------Promediando datos del muestreo y calculando distancias------------------

            if (_contador == 29)
            {
                _promHcsr04 = _sumHcsr04 / 30;
                _contador   = 0;
                _sumHcsr04  = 0;
                _sumTime    = 0;

                _distanceHcsr04 = _promHcsr04 * 0.017;
                ErrorProporcional(_distanceHcsr04);
                ErrorDerivativo(_distanceHcsr04);

                //-------------Mandando distancia sensada por el sensor al monitor------------------

                BufferContentHcsr04(Math.Round(_distanceHcsr04, 1).ToString());
                BufferOutEp(Ep.ToString());
                BufferOutEint(Ei.ToString());
                BufferOutEderiv(Ed.ToString());
                BufferOutPwm(_pwmPid.ToString());

                //-----------------Envio de datos al arduino y graficación---------------------------
                serialPort1_SenddataProportional(_distanceHcsr04);
                Updategraph(i++, _distanceHcsr04);
                serialPort1.DiscardInBuffer();

                //-----------------Añadiendo datos a lista para su ingreso al excel-------------------
                Posiciones.Add(_distanceHcsr04);
                Errores.Add(Ep);

                if (i > 100)
                {
                    i = 0;
                }
            }
        }
コード例 #5
0
        /// <summary>
        /// Realiza las labores necesarias en caso de que la respuesta
        /// sea errónea.
        /// </summary>
        protected virtual void TratarErrores()
        {
            foreach (Match error in _RgErrores.Matches(_ContenidoTexto))
            {
                Errores.Add(new RespuestaError(error.Value));
            }

            foreach (Match error in _RgErroresEntradaIncorrecta.Matches(_ContenidoTexto))
            {
                Errores.Add(new RespuestaError(error.Value));
            }
        }
コード例 #6
0
        internal void NuevoError(string tipo, string fuente, int fila, int columna, string comentario)
        {
            Error e = new Error()
            {
                Tipo       = tipo,
                Fuente     = fuente,
                Fila       = fila,
                Columna    = columna,
                Comentario = comentario
            };

            Errores.Add(e);
        }
コード例 #7
0
        /// <summary>
        /// Realiza las labores necesarias en caso de que la respuesta
        /// se satisfactoria.
        /// </summary>
        protected override void TratarExito()
        {
            switch ((_Peticion as PeticionTgvi).Accion)
            {
            case "InicializarEnvio":
                IdEnvio   = _HttpWebResponse.Headers["IDENVIO"].Trim();
                SigBloque = _HttpWebResponse.Headers["SIGBLOQUE"].Trim();
                Cookie    = _HttpWebResponse.Headers["Set-Cookie"].Trim();
                break;

            case "EnviarDatos":
                IdEnvio     = _HttpWebResponse.Headers["IDENVIO"].Trim();
                EstadoEnvio = _HttpWebResponse.Headers["ESTADO"].Trim();

                if (EstadoEnvio != "FINALIZADO")
                {
                    SigBloque = _HttpWebResponse.Headers["SIGBLOQUE"].Trim();
                }

                RegistrosEnviadosCorrectos = Convert.ToInt32(_HttpWebResponse.Headers["TOTALT2OK"].Trim());
                RegistrosEnviadosErroneos  = Convert.ToInt32(_HttpWebResponse.Headers["TOTALT2KO"].Trim());
                RegistrosEnvioCorrectos    = Convert.ToInt32(_HttpWebResponse.Headers["BLOQUET2OK"].Trim());
                RegistrosEnvioErroneos     = Convert.ToInt32(_HttpWebResponse.Headers["BLOQUET2KO"].Trim());

                if (RegistrosEnviadosErroneos > 0)
                {
                    Erronea = true;
                    Errores.Add(new RespuestaError($"Existen {RegistrosEnviadosErroneos} registros erróneos en el envío."));
                }

                break;

            case "PresentarEnvio":
                IdEnvio    = _HttpWebResponse.Headers["IDENVIO"].Trim();
                CSV        = _HttpWebResponse.Headers["CSV"].Trim();
                Expediente = _HttpWebResponse.Headers["EXPEDIENTE"].Trim();
                break;

            case "RecuperarErrores":
                IdEnvio     = _HttpWebResponse.Headers["IDENVIO"].Trim();
                EstadoEnvio = _HttpWebResponse.Headers["ESTADO"].Trim();

                Erronea = true;
                Errores.Add(new RespuestaError(_ContenidoTexto));     // Añadimos el fichero devuelto con los registros erróneos.

                break;

            default:
                throw new ArgumentException($"'{(_Peticion as PeticionTgvi).Accion}' no es una acción válida.");
            }
        }
コード例 #8
0
 private void Plot()
 {
     Errores.Add(new ObservableValue(RedNeuronal.ErrorEntrenamiento));
     for (int i = 0; i < RedNeuronal.SalidasDeseadas.GetLength(0); i++)
     {
         for (int j = 0; j < RedNeuronal.SalidasDeseadas.GetLength(1); j++)
         {
             PuntosDeseados[j].Add(new ObservableValue(RedNeuronal.SalidasDeseadas[i, j]
                                                       * RedNeuronal.MayoresSalidas[j]));
             PuntosReales[j].Add(new ObservableValue(RedNeuronal.SalidasReales[i, j]
                                                     * RedNeuronal.MayoresSalidas[j]));
             RemoverPuntos(j);
         }
     }
     Thread.Sleep(VelocidadCharts);
 }
コード例 #9
0
        /// <summary>
        /// Realiza las labores necesarias en caso de que la respuesta
        /// sea errónea.
        /// </summary>
        protected override void TratarErrores()
        {
            var errores = Regex.Match(_ContenidoTexto, "(?<=(\"|'){0,1}errores(\"|'){0,1}:\\s*\\[)[^\\}]*").Value;

            if (errores == null)
            {
                return;
            }

            errores = errores.Substring(0, errores.Length - 1);
            errores = Regex.Replace(errores, "(\"|')\\s*,\\s*(\"|')", "~");

            foreach (var error in errores.Split('~'))
            {
                Errores.Add(new RespuestaError(error.Substring(1, error.Length - 1)));
            }
        }
コード例 #10
0
        protected string ObtenerTexto(int columna, string descripcion, bool esRequerido = true)
        {
            var celda = Hoja.Cells[Fila, columna];
            var valor = celda.Value;

            if (valor != null)
            {
                return(Convert.ToString(valor));
            }
            else
            {
                if (esRequerido)
                {
                    Errores.Add(string.Format("El dato '{0}' es requerido y no ha sido especificado (celda {1}).", descripcion, celda.Address));
                }

                return(null);
            }
        }
コード例 #11
0
        /// <summary>
        /// Valida los encabezados de la hoja.
        /// En caso de que todos los encabezados sean correctos, devuelve True. De lo contrario, devuelve False.
        /// </summary>
        /// <returns></returns>
        private bool ValidarEncabezados()
        {
            string     encabezado;
            int        columna;
            ExcelRange celda;
            int        cantColumnas = Encabezados.Count();

            for (int i = 0; i < cantColumnas; i++)
            {
                encabezado = Encabezados.ElementAt(i);
                columna    = i + 1;
                celda      = Worksheet.Cells[FilaEncabezados, columna];

                if (!Convert.ToString(celda.Value).Equals(encabezado))
                {
                    Errores.Add(string.Format("Encabezado '{0}' no encontrado (celda {1}).", encabezado, celda.Address));
                }
            }

            return(!Errores.Any());
        }
コード例 #12
0
 public void Error(string clave, string descripcion)
 {
     Errores.Add(clave, descripcion);
 }
コード例 #13
0
 /// <summary>
 /// Realiza las labores necesarias en caso de que la respuesta
 /// se errónea.
 /// </summary>
 protected override void TratarErrores()
 {
     Errores.Add(new RespuestaError(_HttpWebResponse.Headers["MENSAJE"].Trim()));
 }
コード例 #14
0
 internal void NuevoError(Error e)
 {
     Errores.Add(e);
 }
コード例 #15
0
        private void Bgw_DoWork(object sender, DoWorkEventArgs e)
        {
            if (Bgw.CancellationPending)
            {
                e.Cancel = true;
                return;
            }
            else
            {
                try
                {
                    using (var db = new DymContext())
                    {
                        ClavesSat      = db.CClaveProdServ.AsNoTracking().ToList();
                        Laboratorios   = db.Laboratorio.AsNoTracking().ToList();
                        UnidadMedidas  = db.UnidadMedida.AsNoTracking().ToList();
                        Presentaciones = db.Presentacion.AsNoTracking().ToList();
                        Categorias     = db.Categoria.AsNoTracking().ToList();
                    }

                    //Opening an existing Excel file
                    if (Ruta.Length == 0)
                    {
                        Ambiente.Mensaje("Archivo invalido. \nProceso abortado");
                        return;
                    }

                    fi = new FileInfo(Ruta);
                    using (ExcelPackage excelPackage = new ExcelPackage(fi))
                    {
                        //Get a WorkSheet by index. Note that EPPlus indexes are base 1, not base 0!
                        //Get a WorkSheet by name. If the worksheet doesn't exist, throw an exeption

                        workSheet = excelPackage.Workbook.Worksheets[1];

                        var start = workSheet.Dimension.Start;
                        var end   = workSheet.Dimension.End;



                        bool    succes    = false;
                        int     nIntValue = 0;
                        decimal nDecValue = 1m;

                        for (row = start.Row + 1; row <= end.Row; row++)
                        { // Row by row...
                            var producto = new Producto();

                            for (col = start.Column; col <= end.Column; col++)
                            {
                                switch (col)
                                {
                                case 1:
                                    //ProductoId
                                    producto.ProductoId = workSheet.Cells[row, col].Text.Trim();
                                    break;

                                case 2:
                                    //Descripcion
                                    producto.Descripcion = workSheet.Cells[row, col].Text.Trim();
                                    break;

                                case 3:
                                    //Stock
                                    succes = false;
                                    succes = int.TryParse(workSheet.Cells[row, col].Text.Trim(), out nIntValue);
                                    if (succes)
                                    {
                                        producto.Stock = nIntValue;
                                    }
                                    else
                                    {
                                        producto.Stock = 0;
                                    }
                                    break;

                                case 4:
                                    //Contenido
                                    producto.Contenido = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "" : workSheet.Cells[row, col].Text.Trim();
                                    break;

                                case 5:
                                    //CategoriaId
                                    var Categoria = Categorias.FirstOrDefault(x => x.CategoriaId == workSheet.Cells[row, col].Text.Trim());
                                    if (Categoria != null)
                                    {
                                        producto.CategoriaId = Categoria.CategoriaId;
                                    }
                                    else
                                    {
                                        producto.CategoriaId = "SYS";
                                    }


                                    break;

                                case 6:
                                    //PresentacionId
                                    var Presentacion = Presentaciones.FirstOrDefault(x => x.PresentacionId == workSheet.Cells[row, col].Text.Trim());
                                    if (Presentacion != null)
                                    {
                                        producto.PresentacionId = Presentacion.PresentacionId;
                                    }
                                    else
                                    {
                                        producto.PresentacionId = "SYS";
                                    }

                                    break;

                                case 7:
                                    //LaboratorioId
                                    var Laboratorio = Laboratorios.FirstOrDefault(x => x.LaboratorioId == workSheet.Cells[row, col].Text.Trim());
                                    if (Laboratorio != null)
                                    {
                                        producto.LaboratorioId = Laboratorio.LaboratorioId;
                                    }
                                    else
                                    {
                                        producto.LaboratorioId = "SYS";
                                    }

                                    break;

                                case 8:
                                    //Unidades
                                    producto.Unidades = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "" : workSheet.Cells[row, col].Text.Trim();
                                    break;

                                case 9:
                                    //PrecioCompra
                                    succes = false;
                                    succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue);
                                    if (succes)
                                    {
                                        producto.PrecioCompra = nDecValue;
                                    }
                                    else
                                    {
                                        producto.PrecioCompra = 1M;
                                    }

                                    break;

                                case 10:
                                    //PrecioCaja
                                    succes = false;
                                    succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue);
                                    if (succes)
                                    {
                                        producto.PrecioCaja = nDecValue;
                                    }
                                    else
                                    {
                                        producto.PrecioCaja = 1M;
                                    }

                                    break;

                                case 11:
                                    //Precio1
                                    succes = false;
                                    succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue);
                                    if (succes)
                                    {
                                        producto.Precio1 = nDecValue;
                                    }
                                    else
                                    {
                                        producto.Precio1 = 1M;
                                    }

                                    break;

                                case 12:
                                    //Precio2
                                    succes = false;
                                    succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue);
                                    if (succes)
                                    {
                                        producto.Precio2 = nDecValue;
                                    }
                                    else
                                    {
                                        producto.Precio2 = 1M;
                                    }

                                    break;

                                case 13:
                                    //Utilidad1
                                    succes = false;
                                    succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue);
                                    if (succes)
                                    {
                                        producto.Utilidad1 = nDecValue;
                                    }
                                    else
                                    {
                                        producto.Utilidad1 = 1M;
                                    }

                                    break;

                                case 14:
                                    //Utilidad2
                                    succes = false;
                                    succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue);
                                    if (succes)
                                    {
                                        producto.Utilidad2 = nDecValue;
                                    }
                                    else
                                    {
                                        producto.Utilidad2 = 1M;
                                    }

                                    break;

                                case 15:
                                    //TieneLote
                                    if (workSheet.Cells[row, col].Text.Trim().Equals("VERDADERO"))
                                    {
                                        producto.TieneLote = true;
                                    }
                                    else
                                    {
                                        producto.TieneLote = false;
                                    }

                                    break;

                                case 16:
                                    //UnidadMedidaId
                                    var UnidadMedida = UnidadMedidas.FirstOrDefault(x => x.UnidadMedidaId == workSheet.Cells[row, col].Text.Trim());
                                    if (UnidadMedida != null)
                                    {
                                        producto.UnidadMedidaId = UnidadMedida.UnidadMedidaId;
                                    }
                                    else
                                    {
                                        producto.UnidadMedidaId = "SYS";
                                    }

                                    break;

                                case 17:
                                    //ClaveCfdiId

                                    var ClaveProdServ = ClavesSat.FirstOrDefault(x => x.ClaveProdServId == workSheet.Cells[row, col].Text.Trim());
                                    if (ClaveProdServ != null)
                                    {
                                        producto.ClaveProdServId = ClaveProdServ.ClaveProdServId;
                                    }
                                    else
                                    {
                                        producto.ClaveUnidadId = "01010101";
                                    }

                                    break;

                                case 18:
                                    //UnidadCfdi
                                    producto.ClaveUnidadId = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "H87" : workSheet.Cells[row, col].Text.Trim();

                                    break;

                                case 19:
                                    //RutaImg
                                    producto.RutaImg   = workSheet.Cells[row, col].Text.Trim().Length == 0 ? null : (Ambiente.Empresa.DirectorioImg + workSheet.Cells[row, col].Text.Trim());
                                    producto.CratedAt  = DateTime.Now;
                                    producto.UpdatedAt = DateTime.Now;
                                    producto.CratedBy  = Ambiente.LoggedUser.UsuarioId;

                                    if (producto.ProductoId == null || producto.ProductoId.Length == 0)
                                    {
                                        Errores.Add("SE OMITIÓ, " + producto.ProductoId + ", A CAUSA DE FILA: " + row + " COLUMNA: " + col + "\n");
                                    }
                                    else
                                    {
                                        Productos.Add(producto);
                                    }

                                    break;

                                default:
                                    MessageBox.Show("Columna no encontrada");
                                    break;
                                }
                                Bgw.ReportProgress(row);
                            }
                        }
                        excelPackage.Save();
                    }
                    if (new ProductoController().InsertRange(Productos))
                    {
                        exito = true;
                    }
                }
                catch (Exception ex)
                {
                    Ambiente.Mensaje(" ALGO SALIO MAL EN FILA: " + row + " COLUMNA: " + col + "\n" + ex.ToString());
                }
            }
        }