Пример #1
0
        private void SincronizaProductos()
        {
            try
            {
                migrationTable  = migrationTableController.SelectOne(6);
                migrationFields = migrationFieldController.SelectByTableId(migrationTable.MigrationTableId);
                Sql             = "SELECT ";

                foreach (var f in migrationFields)
                {
                    if (migrationFields.Last() == f)
                    {
                        Sql += f.Expresion + " FROM " + migrationTable.Tabla;
                    }
                    else
                    {
                        Sql += f.Expresion + " , ";
                    }
                }
                Sql += " " + migrationTable.Condicion;
                GetDataTable(Sql);
                producto       = null;
                productos      = productoController.SelectAll();
                categorias     = categoriaController.SelectAll();
                presentaciones = presentacionController.SelectAll();
                laboratorios   = laboratorioController.SelectAll();

                decimal p = 0;
                bool    b = false;
                foreach (DataRow row in dataTable.Rows)
                {
                    Ambiente.S1 = row["clave"].ToString().Trim().ToUpper();
                    Ambiente.S2 = row["descrip"].ToString().Trim().ToUpper();
                    Ambiente.S3 = row["cupo"].ToString().Trim().ToUpper();

                    Ambiente.S4 = row["presenta"].ToString().Trim().ToUpper();
                    Ambiente.S4 = presentaciones.FirstOrDefault(x => x.PresentacionId.ToUpper().Equals(Ambiente.S4)) == null ? "SYS" : Ambiente.S4;

                    Ambiente.S5 = row["unidades"].ToString().Trim().ToUpper();
                    Ambiente.S6 = row["fabricante"].ToString().Trim().ToUpper();
                    Ambiente.S6 = laboratorios.FirstOrDefault(x => x.LaboratorioId.ToUpper().Equals(Ambiente.S6)) == null ? "SYS" : Ambiente.S6;

                    Ambiente.S8 = row["imagen"].ToString().Trim().ToUpper();
                    Ambiente.S8 = Ambiente.Empresa.DirectorioImg + Path.GetFileName(Ambiente.S8);

                    Ambiente.S9 = row["categoria"].ToString().Trim().ToUpper();
                    Ambiente.S9 = categorias.FirstOrDefault(x => x.CategoriaId.ToUpper().Equals(Ambiente.S9)) == null ? "SYS" : Ambiente.S9;

                    Ambiente.Boolean1 = bool.TryParse(row["encatalogo"].ToString(), out b) == true ? b : false;
                    Ambiente.Boolean2 = bool.TryParse(row["cklote"].ToString(), out b) == true ? b : false;
                    Ambiente.Boolean3 = (bool)row["cklote"];


                    Ambiente.Decimal1 = decimal.TryParse(row["pcompra"].ToString().Trim(), out p) == true ? p : 1;
                    Ambiente.Decimal2 = decimal.TryParse(row["pventa"].ToString().Trim(), out p) == true ? p : 1;
                    Ambiente.Decimal3 = decimal.TryParse(row["pmayoreo"].ToString().Trim(), out p) == true ? p : 1;
                    Ambiente.Decimal4 = decimal.TryParse(row["pcaja"].ToString().Trim(), out p) == true ? p : 1;


                    if (row["tasaimp"].ToString().Trim().ToUpper().Equals("E"))
                    {
                        Ambiente.S7 = "SYS";
                    }
                    else if (row["tasaimp"].ToString().Trim().ToUpper().Equals("I"))
                    {
                        Ambiente.S7 = "IVA";
                    }
                    else
                    {
                        Ambiente.S7 = "SYS";
                    }

                    producto = productos.FirstOrDefault(x => x.ProductoId.ToUpper().Equals(Ambiente.S1));

                    if (producto == null)
                    {
                        producto                 = new Producto();
                        producto.ProductoId      = Ambiente.S1;
                        producto.CategoriaId     = Ambiente.S9;
                        producto.PresentacionId  = Ambiente.S4;
                        producto.LaboratorioId   = Ambiente.S6;
                        producto.Descripcion     = Ambiente.S2;
                        producto.Unidades        = Ambiente.S5;
                        producto.Contenido       = Ambiente.S3;
                        producto.Stock           = 0; //atencion
                        producto.PrecioCompra    = Ambiente.Decimal1;
                        producto.PrecioCaja      = Ambiente.Decimal4;
                        producto.Precio1         = Ambiente.Decimal2;
                        producto.Precio2         = Ambiente.Decimal3;
                        producto.Precio3         = 0;
                        producto.Precio4         = 0;
                        producto.Utilidad1       = Ambiente.Margen(producto.Precio1, producto.PrecioCompra);
                        producto.Utilidad2       = Ambiente.Margen(producto.Precio2, producto.PrecioCompra);
                        producto.Utilidad3       = 0;
                        producto.Utilidad4       = 0;
                        producto.TieneLote       = Ambiente.Boolean2;
                        producto.IsDeleted       = false;
                        producto.CratedBy        = "JMENDOZAJ";
                        producto.CratedAt        = DateTime.Now;
                        producto.DeletedBy       = null;
                        producto.UpdatedBy       = "JMENDOZAJ";
                        producto.LoteId          = null; //Atencion
                        producto.UnidadMedidaId  = "PZA";
                        producto.ClaveProdServId = "01010101";
                        producto.ClaveUnidadId   = "H87";
                        producto.RutaImg         = Ambiente.S8;//Atencion
                        producto.ChkCaducidad    = producto.TieneLote;
                        producto.Impuesto1Id     = Ambiente.S7;
                        producto.Impuesto2Id     = "SYS";
                        producto.Impuesto3Id     = "SYS";
                        producto.Ocupado         = false;
                        producto.IsDeleted       = false;
                        producto.Min             = 10;
                        producto.Max             = 20;
                        producto.Costopp         = Ambiente.Decimal1;
                        producto.UltimoCosto     = Ambiente.Decimal1;
                        productoController.InsertOne(producto);
                    }
                    else
                    {
                        // producto.ProductoId = Ambiente.S1;
                        producto.CategoriaId     = Ambiente.S9;
                        producto.PresentacionId  = Ambiente.S4;
                        producto.LaboratorioId   = Ambiente.S6;
                        producto.Descripcion     = Ambiente.S2;
                        producto.Unidades        = Ambiente.S5;
                        producto.Contenido       = Ambiente.S3;
                        producto.Stock           = 0; //atencion
                        producto.PrecioCompra    = Ambiente.Decimal1;
                        producto.PrecioCaja      = Ambiente.Decimal4;
                        producto.Precio1         = Ambiente.Decimal2;
                        producto.Precio2         = Ambiente.Decimal3;
                        producto.Precio3         = 0;
                        producto.Precio4         = 0;
                        producto.Utilidad1       = Ambiente.Margen(producto.Precio1, producto.PrecioCompra);
                        producto.Utilidad2       = Ambiente.Margen(producto.Precio2, producto.PrecioCompra);
                        producto.Utilidad3       = 0;
                        producto.Utilidad4       = 0;
                        producto.TieneLote       = Ambiente.Boolean2;
                        producto.IsDeleted       = false;
                        producto.CratedBy        = "JMENDOZAJ";
                        producto.CratedAt        = DateTime.Now;
                        producto.DeletedBy       = null;
                        producto.UpdatedBy       = "JMENDOZAJ";
                        producto.LoteId          = null; //Atencion
                        producto.UnidadMedidaId  = "PZA";
                        producto.ClaveProdServId = "01010101";
                        producto.ClaveUnidadId   = "H87";
                        producto.RutaImg         = Ambiente.S8; //Atencion
                        producto.ChkCaducidad    = producto.TieneLote;
                        producto.Impuesto1Id     = Ambiente.S7;
                        producto.Impuesto2Id     = "SYS";
                        producto.Impuesto3Id     = "SYS";
                        producto.Ocupado         = false;
                        producto.IsDeleted       = false;
                        producto.Costopp         = Ambiente.Decimal1;
                        producto.UltimoCosto     = Ambiente.Decimal1;
                        productoController.Update(producto);
                    }
                }
                Ambiente.Mensaje("Proceso concluido");
            }
            catch (Exception ex)
            {
                Ambiente.Mensaje(ex.ToString());
            }
        }