private void PrepararDatos(ref SalidaOtroConceptoDTO salida) { var operacionDocumentos = OperacionDocumentoBL.Instancia.GetByOperacion(salida.IdOperacion); var tiposDocumentos = ItemTablaBL.Instancia.GetByTabla((int)TipoTabla.TipoComprobante); var documentos = new List <Comun>(); foreach (var documento in operacionDocumentos) { var tipoDocumento = tiposDocumentos.FirstOrDefault(p => p.IdItemTabla == documento.TipoDocumento); documentos.Add(new Comun { Id = documento.TipoDocumento, Nombre = tipoDocumento.Valor }); } var sucursales = SucursalBL.Instancia.GetAutorizadas(IdEmpresa, UsuarioActual.IdEmpleado); var direcciones = new List <Comun>(); foreach (var sucursal in sucursales) { var ubigeo = UbigeoBL.Instancia.Single(sucursal.IdUbigeo); direcciones.Add(new Comun { Id = sucursal.IdSucursal, Nombre = string.Format("{0} - {1}, {2}", sucursal.Nombre, sucursal.Direccion, ubigeo.Direccion) }); } if (salida.IdTransaccion == 0) { var transaccionImpuesto = new List <TransaccionImpuesto>(); var operacionImpuestos = OperacionImpuestoBL.Instancia.GetByOperacion(salida.IdOperacion); foreach (var operacionImpuesto in operacionImpuestos) { transaccionImpuesto.Add(new TransaccionImpuesto { IdImpuesto = operacionImpuesto.IdImpuesto, Secuencia = operacionImpuesto.Orden, Tasa = operacionImpuesto.Impuesto.Monto, NombreImpuesto = operacionImpuesto.Impuesto.Nombre, Signo = operacionImpuesto.Impuesto.Signo, EsEditable = Convert.ToBoolean(operacionImpuesto.Impuesto.EsEditable) }); } salida.TransaccionImpuesto = transaccionImpuesto.OrderBy(p => p.Secuencia).ToList(); } else { salida.TransaccionImpuesto = TransaccionImpuestoBL.Instancia.GetByTransaccion(salida.IdTransaccion); } salida.Documentos = documentos; salida.Direcciones = direcciones; salida.Monedas = MonedaBL.Instancia.GetAll(); salida.Almacenes = AlmacenBL.Instancia.GetByIdSucursal(IdSucursal); }
public bool Actualizar(SalidaOtroConceptoDTO transaccion) { try { return(repository.Actualizar(transaccion)); } catch (Exception ex) { throw new Exception(ex.Message); } }
public ActionResult Crear() { ViewData["Accion"] = "Crear"; var salida = new SalidaOtroConceptoDTO { IdOperacion = IdOperacion, FechaDocumento = FechaSistema, Estado = (int)TipoEstadoTransaccion.Registrado, }; DetalleOtrasSalidas = new List <MovimientoProducto>(); PrepararDatos(ref salida); return(PartialView("OtrasSalidasPanel", salida)); }
public JsonResult Modificar(SalidaOtroConceptoDTO salida) { var jsonResponse = new JsonResponse(); if (ModelState.IsValid) { try { var salidaOriginal = SalidaOtroConceptoBL.Instancia.Single(salida.IdTransaccion); var operacion = OperacionBL.Instancia.Single(IdOperacion); salidaOriginal.IdPersona = UsuarioActual.IdEmpleado; salidaOriginal.IdAlmacen = salida.IdAlmacen; salidaOriginal.FechaEntrega = salida.FechaEntrega; salidaOriginal.Glosa = salida.Glosa; salidaOriginal.MontoTipoCambio = salida.MontoTipoCambio; salidaOriginal.IdEmpleado = UsuarioActual.IdEmpleado; salidaOriginal.UsuarioCreacion = UsuarioActual.IdEmpleado; salidaOriginal.UsuarioModificacion = UsuarioActual.IdEmpleado; salidaOriginal.MovimientoProducto = new List <MovimientoProducto>(); salidaOriginal.TransaccionImpuesto = new List <TransaccionImpuesto>(); if (DetalleOtrasSalidas.Count == 0) { jsonResponse.Success = false; jsonResponse.Message = "No se puede registrar sin ingresar los productos."; } else { var secuencia = 0; foreach (var movimientoProducto in DetalleOtrasSalidas) { movimientoProducto.Secuencia = ++secuencia; movimientoProducto.FechaRegistro = salida.FechaDocumento; movimientoProducto.IdAlmacen = salida.IdAlmacen; movimientoProducto.SignoStock = operacion.SignoStock; movimientoProducto.Estado = (int)TipoEstadoTransaccion.Registrado; movimientoProducto.FechaCreacion = FechaCreacion; movimientoProducto.FechaModificacion = FechaModificacion; movimientoProducto.UsuarioCreacion = UsuarioActual.IdEmpleado; movimientoProducto.UsuarioModificacion = UsuarioActual.IdEmpleado; var secuenciaDetalle = 0; foreach (var productoStock in movimientoProducto.MovimientoProductoStock) { productoStock.Secuencia = ++secuenciaDetalle; productoStock.IdAlmacen = salida.IdAlmacen.Value; } if (movimientoProducto.MovimientoProductoStock.Count == 0) { movimientoProducto.MovimientoProductoStock.Add( new MovimientoProductoStock { Secuencia = 1, IdAlmacen = salida.IdAlmacen.Value, Cantidad = movimientoProducto.Cantidad, LoteSerie = string.Empty }); } salidaOriginal.MovimientoProducto.Add(movimientoProducto); } SalidaOtroConceptoBL.Instancia.Actualizar(salidaOriginal); jsonResponse.Success = true; jsonResponse.Message = "El registro se realizo correctamente."; } } catch (Exception ex) { jsonResponse.Message = ex.Message; } } else { jsonResponse.Message = "Por favor ingrese todos los campos requeridos"; } return(Json(jsonResponse, JsonRequestBehavior.AllowGet)); }