public void AnularDevolucion()
 {
     DevolucionSQL dSQL = new DevolucionSQL();
     if (dSQL.puedeAnular(devolucionSel.IdDevolucion))
     {
         if (!dSQL.cambiarEstado(devolucionSel.IdDevolucion, 3))
         {
             _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No se pudo anular la devolución"));
         }
         ActualizarTabla();
     }
     else
     {
         _windowManager.ShowDialog(new AlertViewModel(_windowManager, "La devolución ya no puede ser anulada"));
     }
 }
 public void ObtenerProductosVenta()
 {
     DevolucionSQL dSQL = new DevolucionSQL();
     if (idDevolucion > 0)
     {
         LstProductos = dSQL.BuscarProductos(-1, -1, null, idDevolucion);
         DocPago = LstProductos.First().DocPago;
     }
     else
     {
         dev.venta = dSQL.BuscarVenta(this.DocPago);
         DNI = dev.venta == null ? null : dev.venta.dni;
         if (dev.venta != null && dev.venta.IdVenta > 0)
             LstProductos = dSQL.BuscarProductos(-1, dev.venta.IdVenta);
         else
             LstProductos = null;
     }
 }
 public void ActualizarTabla()
 {
     DevolucionSQL devSQL = new DevolucionSQL();
     Devoluciones = devSQL.buscarDevoluciones(notaCreditoHide, docPagoHide, estadoHide, registroDesdeHide, registroHastaHide, dniHide);
     NotifyOfPropertyChange("Devoluciones");
 }
 public void GuardarDevolucion()
 {
     if (DocPago == null || DocPago == "" || lstProductos == null || lstProductos.Count == 0)
     {
         _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No ingreso documento de pago"));
         return;
     }
     foreach (DevolucionProducto prod in lstProductos)
     {
         if (prod.Devuelve + prod.Devuelto > prod.Cantidad)
         {
             _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No puede devolver mas de lo que se adquirió en la venta."));
             return;
         }
     }
     DevolucionModel dModel = new DevolucionModel();
     DevolucionSQL dSQL = new DevolucionSQL();
     int num = dSQL.numDevoluciones();
     dev.archivo = dModel.GenerarNotaCredito(dev, num, lstProductos);
     dev.idUsuario = Int32.Parse(Thread.CurrentPrincipal.Identity.Name);
     string message = dModel.registrarDevolucion(dev, lstProductos);
     _windowManager.ShowDialog(new AlertViewModel(_windowManager, message));
     if (window != null)
         window.ActualizarTabla();
     ((Window)this.GetView()).Owner.Focus();
     TryClose();
 }
 public void AnularDevolucion()
 {
     DevolucionSQL dSQL = new DevolucionSQL();
     if (dSQL.puedeAnular(idDevolucion))
     {
         if (!dSQL.cambiarEstado(idDevolucion, 0))
         {
             _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No se pudo anular la devolución"));
         }
         if (window != null)
             window.ActualizarTabla();
         ((Window)this.GetView()).Owner.Focus();
         TryClose();
     }
     else
     {
         _windowManager.ShowDialog(new AlertViewModel(_windowManager, "La devolución ya no puede ser anulada"));
     }
 }
 private void CambiarEstadoDevolucion(Devolucion SelectedDevolucion)
 {
     DevolucionSQL dsql = new DevolucionSQL();
     dsql.cambiarEstado(SelectedDevolucion.IdDevolucion, 2);
 }
        //Botones:
        public void CargarProductos()
        {
            string referencia = TxtDoc;
            if (string.IsNullOrWhiteSpace(referencia))
            {
                _windowManager.ShowDialog(new AlertViewModel(_windowManager, "No se ha ingresado ningun Documento de Referencia"));
                return;
            }
            string mot = this.selectedMotivo;
            if (string.Compare(mot, "Orden de Compra", true) == 0)
            {
                List<ProductoxOrdenCompra> poc = new List<ProductoxOrdenCompra>();
                poc = SelectedOrden.LstProducto;
                List<ProductoCant> lpcan = new List<ProductoCant>();
                for (int i = 0; i < poc.Count; i++)
                {
                    ProductoCant pcan = new ProductoCant();
                    pcan.IdProducto = poc.ElementAt(i).Producto.IdProducto;
                    pcan.Can = poc.ElementAt(i).Cantidad;
                    pcan.CodigoProd = poc.ElementAt(i).Producto.CodigoProd;
                    pcan.Nombre = poc.ElementAt(i).Producto.Nombre;
                    pcan.CanAtend = poc.ElementAt(i).CantAtendida.ToString();
                    pcan.CanAtender = poc.ElementAt(i).CantidadAtender;
                    pcan.Ubicaciones = new List<Ubicacion>();
                    lpcan.Add(pcan);
                }
                LstProductos = new List<ProductoCant>(lpcan);

            }
            else
            {
                if (string.Compare(mot, "Traslado Externo", true) == 0)
                {
                    if (selectedGuia == null)
                    {
                        _windowManager.ShowDialog(new AlertViewModel(_windowManager, "Ingrese un código de guía de remisión valido"));
                    }
                    else
                    {
                        LstProductos = selectedGuia.Nota.LstProducto;
                    }
                }
                else
                {
                    if (string.Compare(mot, "Devolucion", true) == 0)
                    {
                        List<DevolucionProducto> dv = new List<DevolucionProducto>();
                        DevolucionSQL dsql = new DevolucionSQL();

                        dv = dsql.BuscarProductos(-1, -1, null, SelectedDevolucion.IdDevolucion);
                        List<ProductoCant> lpcan = new List<ProductoCant>();
                        for (int i = 0; i < dv.Count; i++)
                        {
                            ProductoCant pcan = new ProductoCant();
                            Producto p = new Producto();
                            ProductoSQL pgw = new ProductoSQL();
                            p = pgw.Buscar_por_CodigoProducto(dv.ElementAt(i).IdProducto);
                            pcan.IdProducto = p.IdProducto;
                            pcan.Nombre = p.Nombre;
                            pcan.Can = "0";
                            pcan.CanAtend = "0";
                            pcan.CanAtender = dv.ElementAt(i).Devuelto.ToString();
                            pcan.Ubicaciones = new List<Ubicacion>();
                            pcan.CodigoProd = p.CodigoProd;
                            lpcan.Add(pcan);
                        }
                        LstProductos = new List<ProductoCant>(lpcan);
                    }
                    else
                    {

                        if (string.Compare(mot, "Abastecimiento", true) == 0)
                        {

                            List<ProductoCant> psa = new List<ProductoCant>();
                            ProductoxSolicitudAbSQL pasql = new ProductoxSolicitudAbSQL();

                            psa = pasql.ListaProductos(SelectedSolicitud.idSolicitudAB.ToString());

                            List<ProductoCant> lpcan = new List<ProductoCant>();
                            for (int i = 0; i < psa.Count; i++)
                            {
                                ProductoCant pcan = new ProductoCant();
                                pcan.IdProducto = psa.ElementAt(i).IdProducto;
                                pcan.Can = psa.ElementAt(i).Can;
                                pcan.CodigoProd = psa.ElementAt(i).CodigoProd;
                                pcan.Nombre = psa.ElementAt(i).Nombre;
                                pcan.CanAtend = "0";
                                pcan.CanAtender = psa.ElementAt(i).CanAtend;
                                pcan.Ubicaciones = new List<Ubicacion>();
                                lpcan.Add(pcan);
                            }

                            LstProductos = new List<ProductoCant>(lpcan);

                        }
                    }
                }
            }

            NotifyOfPropertyChange(() => LstProductos);
            if (LstProductos != null)
            {
                EstadoMot = false;
                Estado = false;
            }
        }
        public string registrarDevolucion(Devolucion dev, List<DevolucionProducto> prod)
        {
            DBConexion db = new DBConexion();
            db.conn.Open();
            SqlTransaction trans = db.conn.BeginTransaction();
            db.cmd.Transaction = trans;
            DevolucionSQL devSQL = new DevolucionSQL(db);
            int idDevolucion;
            string message;

            if ((idDevolucion = devSQL.insertarDevolucion(dev)) > 0)
            {
                if (devSQL.insertarProductosDevolucion(idDevolucion, prod))
                {
                    trans.Commit();
                    return "La operacion fue exitosa";
                }
                else
                    message = "Hubo un error al agregar los productos";
            }
            else
                message = "No se pudo crear la solicitud";

            trans.Rollback();
            return message;
        }