public void Editar(Transferencia transferencia, bool aprobar) { var trans = Uow.Transferencias.Obtener(t => t.TransferenciaId == transferencia.TransferenciaId, t => t.TransferenciaProductos); var originales = trans.TransferenciaProductos.Where(tp => !tp.Eliminado); var paraEliminar = originales.Select(o => o.TransferenciaProductoId).ToList(); var i = 1; foreach (var tp in transferencia.TransferenciaProductos) { tp.Orden = i; if (tp.TransferenciaProductoId == 0) { tp.TransferenciaId = transferencia.TransferenciaId; Uow.TransferenciaProductos.Agregar(tp); } else { var original = originales.FirstOrDefault(o => tp.TransferenciaProductoId == o.TransferenciaProductoId); if (original != null) { original.Cantidad = tp.Cantidad; original.PrecioVenta = tp.PrecioVenta; original.ProductoId = tp.ProductoId; original.StockDestino = tp.StockDestino; original.StockOrigen = tp.StockDestino; Uow.TransferenciaProductos.Modificar(original); paraEliminar.Remove(original.TransferenciaProductoId); } } i++; } foreach (var id in paraEliminar) { Uow.TransferenciaProductos.Eliminar(id); } trans.OrigenId = transferencia.OrigenId; trans.DestinoId = transferencia.DestinoId; if (aprobar) { Aprobar(trans); } else { trans.FechaUltimaModificacion = DateTime.Now; trans.Desincronizado = true; Uow.Commit(); } }
public void Aprobar(Transferencia transferencia) { foreach (TransferenciaProducto transferenciaProd in transferencia.TransferenciaProductos) { ProcesarStock(transferenciaProd, true, transferencia.DestinoId); ProcesarStock(transferenciaProd, false, transferencia.OrigenId); } transferencia.FechaUltimaModificacion = DateTime.Now; transferencia.Desincronizado = true; transferencia.FechaAprobacion = DateTime.Now; //Uow.Transferencias.Modificar(transferencia); Uow.Commit(); }
public void Crear(Transferencia transferencia) { transferencia.Identifier = Guid.NewGuid(); transferencia.FechaCreacion = DateTime.Now; //Agregar una trasaccion por cada transferencia producto. for (int i = 0; i < transferencia.TransferenciaProductos.Count; i++) { var transferenciaProd = transferencia.TransferenciaProductos.ElementAt(i); transferenciaProd.Identifier = Guid.NewGuid(); transferenciaProd.FechaUltimaModificacion = DateTime.Now; transferenciaProd.Orden = i + 1; } Uow.Transferencias.Agregar(transferencia); Uow.Commit(); }
public ActionResult Crear(Transferencia transferencia) { if (!ModelState.IsValid) { return new HttpStatusCodeResult(HttpStatusCode.InternalServerError); } int ultima = Uow.Transferencias.Listado().Where(x => x.AutoNumero.StartsWith("WEB_")).Max(t => t.TransferenciaId); transferencia.AutoNumero = String.Format("WEB_{0}", ultima + 1); TransferenciasNegocio.Crear(transferencia); return Json(new { exito = true, transferencia.TransferenciaId }); }
public ActionResult Crear() { var ultima = Uow.Transferencias.Listado().Where(x => x.AutoNumero.StartsWith("WEB_")).OrderByDescending(x => x.TransferenciaId).FirstOrDefault(); var numero = ultima == null ? 1 : Convert.ToInt32(ultima.AutoNumero.Replace("WEB_", "")) + 1; var transferencia = new Transferencia() { FechaCreacion = DateTime.Now, AutoNumero = String.Format("WEB_{0}", numero), UsuarioId = UsuarioActual.Usuario.UsuarioId }; if (UsuarioActual.Cuenta.MaxiKioscoIdentifierPredeterminadoTransferencias != null) { var maxi = Uow.MaxiKioscos.Obtener(m => m.Identifier == UsuarioActual.Cuenta.MaxiKioscoIdentifierPredeterminadoTransferencias); transferencia.OrigenId = maxi.MaxiKioscoId; } ViewBag.CantidadIngresada = null; return PartialView(transferencia); }
public ActionResult Editar(Transferencia transferencia, FormCollection collection) { if (!ModelState.IsValid) { return new HttpStatusCodeResult(HttpStatusCode.InternalServerError); } var aprobar = Convert.ToBoolean(collection["aprobar"]); TransferenciasNegocio.Editar(transferencia, aprobar); return Json(new { exito = true, transferencia.TransferenciaId }); }