コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: SalidaOtroConceptoBL.cs プロジェクト: joedayz/joerp
 public bool Actualizar(SalidaOtroConceptoDTO transaccion)
 {
     try
     {
         return(repository.Actualizar(transaccion));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }