Пример #1
0
        public int Registrar(RequestPedidoDetalleRegistrarDto modelo, ref long idNuevo)
        {
            int resultado = 0;

            try
            {
                const string query = "Transaccion.usp_PedidoDetalle_Registrar";
                var          p     = new DynamicParameters();
                p.Add("IdPedidoDetalle", 0, DbType.Int64, ParameterDirection.Output);
                p.Add("IdPedido", modelo.IdPedido);
                p.Add("IdProducto", modelo.IdProducto);
                p.Add("Cantidad", modelo.Cantidad);
                p.Add("PrecioUnitario", modelo.PrecioUnitario);

                using (var cn = HelperClass.ObtenerConeccion())
                {
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }

                    resultado = cn.Execute(query, commandType: CommandType.StoredProcedure, param: p);
                    idNuevo   = p.Get <long>("IdPedidoDetalle");
                }
            }
            catch (Exception ex)
            {
                Log(Level.Error, (ex.InnerException == null ? ex.Message : ex.InnerException.Message));
            }
            return(resultado);
        }
Пример #2
0
        public int Registrar(RequestPedidoRegistrarDto modelo, ref long idNuevo)
        {
            int respuesta = 0;

            try
            {
                using (var scope = new TransactionScope())
                {
                    respuesta = _adPedido.Registrar(modelo, ref idNuevo);
                    LnPedidoDetalle lnPedidoDetalle = new LnPedidoDetalle();
                    if (modelo.ListaPedidoDetalle == null)
                    {
                        modelo.ListaPedidoDetalle = new List <RequestPedidoRegistrarPedidoDetalleRegistrarDto>();
                    }

                    if (respuesta > 0 && idNuevo > 0)
                    {
                        if (modelo.ListaPedidoDetalle.Any())
                        {
                            int cantidadOkEsperadas = modelo.ListaPedidoDetalle.Count;
                            int cantidadDetallesOk  = 0;
                            foreach (var det in modelo.ListaPedidoDetalle)
                            {
                                var entUbi = new RequestPedidoDetalleRegistrarDto
                                {
                                    IdPedido       = idNuevo,
                                    Cantidad       = det.Cantidad,
                                    IdProducto     = det.IdProducto,
                                    PrecioUnitario = det.PrecioUnitario
                                };

                                long idNuevoDetalle   = 0;
                                int  resultadoDetalle = lnPedidoDetalle.Registrar(entUbi, ref idNuevoDetalle);
                                if (resultadoDetalle > 0 && idNuevoDetalle > 0)
                                {
                                    cantidadDetallesOk++;
                                }
                            }
                            if (cantidadOkEsperadas == cantidadDetallesOk)
                            {
                                scope.Complete();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log(Level.Error, ex.InnerException == null ? ex.Message : ex.InnerException.Message);
            }
            return(respuesta);
        }
Пример #3
0
        public int Modificar(RequestPedidoModificarDto modelo)
        {
            //return _adPedido.Modificar(modelo);
            int respuesta = 0;

            try
            {
                using (var scope = new TransactionScope())
                {
                    respuesta = _adPedido.Modificar(modelo);
                    LnPedidoDetalle lnPedidoDetalle = new LnPedidoDetalle();
                    if (modelo.ListaPedidoDetalle == null)
                    {
                        modelo.ListaPedidoDetalle = new List <RequestPedidoModificarPedidoDetalleModificarDto>();
                    }
                    modelo.ListaPedidoDetalle = modelo.ListaPedidoDetalle
                                                .Where(x => x.Accion == "add" || x.Accion == "upd" || x.Accion == "del").ToList();

                    if (respuesta > 0)
                    {
                        if (modelo.ListaPedidoDetalle.Any())
                        {
                            int cantidadOkEsperadas = modelo.ListaPedidoDetalle.Count;
                            int cantidadDetallesOk  = 0;
                            foreach (var det in modelo.ListaPedidoDetalle)
                            {
                                switch (det.Accion)
                                {
                                case "add":
                                {
                                    var entUbi = new RequestPedidoDetalleRegistrarDto
                                    {
                                        IdPedido       = modelo.IdPedido,
                                        Cantidad       = det.Cantidad,
                                        IdProducto     = det.IdProducto,
                                        PrecioUnitario = det.PrecioUnitario
                                    };

                                    long idNuevoDetalle   = 0;
                                    int  resultadoDetalle = lnPedidoDetalle.Registrar(entUbi, ref idNuevoDetalle);
                                    if (resultadoDetalle > 0 && idNuevoDetalle > 0)
                                    {
                                        cantidadDetallesOk++;
                                    }
                                    break;
                                }

                                case "upd":
                                {
                                    var entUbi = new RequestPedidoDetalleModificarDto
                                    {
                                        IdPedidoDetalle = det.IdPedidoDetalle,
                                        IdPedido        = modelo.IdPedido,
                                        Cantidad        = det.Cantidad,
                                        IdProducto      = det.IdProducto,
                                        PrecioUnitario  = det.PrecioUnitario
                                    };

                                    int resultadoDetalle = lnPedidoDetalle.Modificar(entUbi);
                                    if (resultadoDetalle > 0)
                                    {
                                        cantidadDetallesOk++;
                                    }
                                    break;
                                }

                                case "del":
                                {
                                    int resultadoDetalle = lnPedidoDetalle.Eliminar(det.IdPedidoDetalle);
                                    if (resultadoDetalle > 0)
                                    {
                                        cantidadDetallesOk++;
                                    }
                                    break;
                                }
                                }
                            }

                            if (cantidadOkEsperadas == cantidadDetallesOk)
                            {
                                scope.Complete();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log(Level.Error, ex.InnerException == null ? ex.Message : ex.InnerException.Message);
            }
            return(respuesta);
        }
Пример #4
0
 public int Registrar(RequestPedidoDetalleRegistrarDto modelo, ref long idNuevo)
 {
     return(_adPedidoDetalle.Registrar(modelo, ref idNuevo));
 }