예제 #1
0
        public bool GetInfo_ProveedorProducto(string Codigo, int IdProducto)
        {
            try
            {
                ProveedorProducto_Info info = new ProveedorProducto_Info();

                using (EntitiesGeneral db = new EntitiesGeneral())
                {
                    ProveedorProducto Entity = db.ProveedorProducto.Where(q => q.Codigo == Codigo && q.IdProducto == IdProducto).FirstOrDefault();

                    if (Entity == null)
                    {
                        return(false);
                    }
                    else
                    {
                        info = new ProveedorProducto_Info
                        {
                            Tipo       = Entity.Tipo,
                            Codigo     = Entity.Codigo,
                            IdProducto = Entity.IdProducto,
                            Secuencia  = Entity.Secuencia
                        };
                        return(true);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #2
0
        public async Task <ActionResult <ProveedorProducto> > Post(ProveedorProducto proveedorProducto)
        {
            _context.ProveedorProducto.Add(proveedorProducto);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Get", new { id = proveedorProducto.ProveedorProductoId }, proveedorProducto));
        }
예제 #3
0
        public async Task <IActionResult> Put(int id, ProveedorProducto proveedorProducto)
        {
            if (id != proveedorProducto.ProveedorProductoId)
            {
                return(BadRequest());
            }

            _context.Entry(proveedorProducto).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductoProveedorExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            ProveedorProducto proveedorProducto = db.ProveedorProductoes.Find(id);

            db.ProveedorProductoes.Remove(proveedorProducto);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #5
0
 public ActionResult Edit([Bind(Include = "ProveedorProductoID,ProveedorID,ProductoID")] ProveedorProducto proveedorProducto)
 {
     if (ModelState.IsValid)
     {
         db.Entry(proveedorProducto).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ProductoID  = new SelectList(db.Productoes, "ProductoID", "Descripcion", proveedorProducto.ProductoID);
     ViewBag.ProveedorID = new SelectList(db.Proveedors, "ProveedorID", "Nombre", proveedorProducto.ProveedorID);
     return(View(proveedorProducto));
 }
예제 #6
0
        public ActionResult Create([Bind(Include = "ProveedorProductoID,ProveedorID,Id_producto")] ProveedorProducto proveedorProducto)
        {
            if (ModelState.IsValid)
            {
                db.ProveedorProductos.Add(proveedorProducto);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.Id_producto = new SelectList(db.Productos, "Id_producto", "Nombre_producto", proveedorProducto.Id_producto);
            ViewBag.ProveedorID = new SelectList(db.Proveedores, "ProveedorID", "Nombre", proveedorProducto.ProveedorID);
            return(View(proveedorProducto));
        }
예제 #7
0
        // GET: ProveedorProductoes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ProveedorProducto proveedorProducto = db.ProveedorProductoes.Find(id);

            if (proveedorProducto == null)
            {
                return(HttpNotFound());
            }
            return(View(proveedorProducto));
        }
예제 #8
0
        // GET: ProveedorProductoes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ProveedorProducto proveedorProducto = db.ProveedorProductoes.Find(id);

            if (proveedorProducto == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ProductoID  = new SelectList(db.Productoes, "ProductoID", "Descripcion", proveedorProducto.ProductoID);
            ViewBag.ProveedorID = new SelectList(db.Proveedors, "ProveedorID", "Nombre", proveedorProducto.ProveedorID);
            return(View(proveedorProducto));
        }
예제 #9
0
        public ActionResult CostoProducto(int productoId)
        {
            var producto = Uow.Productos.Obtener(productoId);

            if (producto == null)
            {
                producto = new Producto();
            }

            var costo = new ProveedorProducto()
            {
                Producto   = producto,
                ProductoId = productoId,
                Identifier = Guid.NewGuid(),
            };

            return(PartialView(costo));
        }
예제 #10
0
        private void btnAsignar_Click(object sender, EventArgs e)
        {
            DataGridViewRow filaProveedor = dgvProveedores.CurrentRow;
            DataGridViewRow filaProducto  = dgvProductos.CurrentRow;

            int idProveedor = Convert.ToInt32(filaProveedor.Cells["Id"].Value);
            int idProducto  = Convert.ToInt32(filaProducto.Cells["Id"].Value);

            using (var ctx = new FacturadorDBContext())
            {
                ProveedorProducto provprod = new ProveedorProducto();
                provprod.ProveedorId = idProveedor;
                provprod.ProductoId  = idProducto;

                ctx.ProveedorProductos.Add(provprod);
                ctx.SaveChanges();
            }
        }
예제 #11
0
        public void Crear(Compra compra)
        {
            compra.Identifier = Guid.NewGuid();

            var factura = Uow.Facturas.Obtener(compra.FacturaId);

            Uow.Facturas.Modificar(factura);

            //Fix para prevenir gurdar la factura.
            compra.Factura = null;

            ////Agregar una trasaccion por cada compra producto.
            foreach (CompraProducto compraProd in compra.ComprasProductos)
            {
                compraProd.Identifier = Guid.NewGuid();
                compraProd.FechaUltimaModificacion = DateTime.Now;

                var stockTransaccion = new StockTransaccion
                {
                    Identifier              = Guid.NewGuid(),
                    Cantidad                = compraProd.Cantidad,
                    StockTransaccionTipoId  = 2,                           //Compra
                    FechaUltimaModificacion = DateTime.Now
                };

                //Tipo = 2 / Compra. TODO: Map an enum.

                ////Obtengo la instancia de stock para la compra del producto
                Stock stock = Uow.Stocks.Obtener(s => s.MaxiKioscoId == factura.MaxiKioscoId && s.ProductoId == compraProd.ProductoId);
                if (stock == null)
                {
                    stock = new Stock
                    {
                        Identifier        = Guid.NewGuid(),
                        MaxiKioscoId      = factura.MaxiKioscoId,
                        ProductoId        = compraProd.ProductoId,
                        OperacionCreacion = "Compra en web",
                        FechaCreacion     = DateTime.Now
                    };
                    Uow.Stocks.Agregar(stock);
                }

                stockTransaccion.Stock = stock;
                Uow.StockTransacciones.Agregar(stockTransaccion);

                ////Actualizar el costo del producto para el proveedor seleccionado.
                var proveedorProducto = Uow.ProveedorProductos
                                        .Obtener(pp => pp.ProductoId == compraProd.ProductoId &&
                                                 pp.ProveedorId == factura.ProveedorId);

                //Si el producto no esta cargado para el proveedor debemos crearlo
                if (proveedorProducto == null)
                {
                    proveedorProducto                        = new ProveedorProducto();
                    proveedorProducto.Identifier             = Guid.NewGuid();
                    proveedorProducto.ProductoId             = compraProd.ProductoId;
                    proveedorProducto.ProveedorId            = factura.ProveedorId;
                    proveedorProducto.CostoConIVA            = compraProd.CostoActualizado.GetValueOrDefault();
                    proveedorProducto.CostoSinIVA            = proveedorProducto.CostoConIVA / 1.21m;
                    proveedorProducto.FechaUltimoCambioCosto = DateTime.Now;
                    Uow.ProveedorProductos.Agregar(proveedorProducto);
                }
                else
                {
                    var nuevoCosto = compraProd.CostoActualizado ?? proveedorProducto.CostoConIVA;
                    if (nuevoCosto != proveedorProducto.CostoConIVA)
                    {
                        proveedorProducto.FechaUltimoCambioCosto = DateTime.Now;
                    }

                    proveedorProducto.CostoConIVA = nuevoCosto;
                    proveedorProducto.CostoSinIVA = proveedorProducto.CostoConIVA / 1.21m;
                    Uow.ProveedorProductos.Modificar(proveedorProducto);
                }

                ////Actualizar el precio y el costo del producto.
                var producto = Uow.Productos.Obtener(compraProd.ProductoId);
                producto.PrecioConIVA = compraProd.PrecioActualizado ?? producto.PrecioConIVA;
                producto.PrecioSinIVA = producto.PrecioConIVA / 1.21m;
                Uow.Productos.Modificar(producto);
            }

            Uow.Compras.Agregar(compra);
            Uow.Commit();
        }