public void Enviar(OrdenCompra o)
        {
            string numOC = "OC-" + 1000000 + o.IdOrden;
                GenerarPDF pdf = new GenerarPDF();
                Correo c = new Correo();
                //[email protected]
                string path = "\\" + numOC + ".pdf";

                string body = formato(o).ToString();
                string msg = "<html><body>Estimados :<br> Se adjunta la Orden de compra , Atenderla porfavor. <br>Saludos.<br>MadeInHouse <br>Seccion Compras </body></html>"; ;
                pdf.createPDF(body, path, false);
                c.EnviarCorreo("ORDEN DE COMPRA AL " + DateTime.Now.ToString(), o.Proveedor.Email, msg, Environment.CurrentDirectory + path);
                pdf.Borrar(Environment.CurrentDirectory + path);
        }
        public generarOrdenCompraViewModel(OrdenCompra o,BuscarOrdenCompraViewModel model)
        {
            Lst = o.LstProducto;
            CodOrden = o.CodOrdenCompra;
            FechaAtencion = o.FechaSinAtencion;
            Observaciones = o.Observaciones;
            this.model = model;
            EstadoSelected = o.MedioPago;
            Prov = o.Proveedor;
            BuscarDispo = false;
            idOrden = o.IdOrden;
            esNuevo = false;
            estado= o.Estado;

            if (estado == 1) { EsEditable = true; };
            if(estado == 0 ) { esGuardable = false;}
        }
 public void SelectedItemChanged(object sender)
 {
     ordenComprarepSeleccionado = ((sender as DataGrid).SelectedItem as OrdenCompra);
 }
        public bool Validar(OrdenCompra o)
        {
            if (String.IsNullOrEmpty(o.Observaciones))
            {
                MessageBox.Show( "El campo se encuentra vacio,Corregir..","AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return false;
            }
            if (o.Proveedor == null) {

                MessageBox.Show( "No ha Seleccionado un proveedor..","AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                return false;
            }

            if (o.LstProducto.Count == 0)
            {

                MessageBox.Show("Ingrese algún producto..", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return false;

            }

                if (o.Estado == 3)
                {
                    MessageBox.Show("No se puede editar Ordenes de compras ATENDIDAS.", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return false;

                }

                foreach (ProductoxOrdenCompra oc in o.LstProducto)
                {
                    Evaluador e = new Evaluador();

                    if (String.IsNullOrEmpty(oc.Cantidad))
                    {
                        MessageBox.Show("Hay cantidades que  se encuentran vacias,Corregir..", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return false;
                    }

                    if (!e.esNumeroEntero(oc.Cantidad))
                    {
                        MessageBox.Show("No se puede ingresar valores que no sean números en cantidad", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return false;

                    }

                    if (!e.esPositivo(Convert.ToInt32(oc.Cantidad)))
                    {

                        MessageBox.Show("No se puede ingresar valores negativos en cantidad", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return false;

                    }

                    if ((Convert.ToInt32(oc.Cantidad)) == 0)
                    {

                        MessageBox.Show("No se puede ingresar 0 como cantidad", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return false;

                    }

                    if (oc.CantAtendida > Convert.ToInt32(oc.Cantidad))
                    {

                        MessageBox.Show("La cantidad emitida no puede ser menor a la cantidad Atendida", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return false;
                    }

                }

            return true;
        }
        public void GuardarBorrador()
        {
            OrdenCompra o = new OrdenCompra();
            o.IdOrden = idOrden;
            o.IdAlmacen = 4;
            o.LstProducto = Lst;
            o.MedioPago = EstadoSelected;
            o.Observaciones = Observaciones;
            o.FechaSinAtencion = FechaAtencion;
            o.Proveedor = Prov;

            if (Validar(o))
            {

                OrdenCompraSQL oSQL = new OrdenCompraSQL();
                OrdenCompraxProductoSQL opSQL = new OrdenCompraxProductoSQL();

                if (esNuevo)
                {

                       DialogResult result = MessageBox.Show("Está cerrando el Mantenimiento de Orden de compra , desea guardar en BORRADOR ? ", "AVISO", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                       if (result == DialogResult.Yes)
                       {

                           o.Estado = 1;

                           oSQL.Agregar(o);

                           int id = new UtilesSQL().ObtenerMaximoID("OrdenCompra", "idOrden");

                           foreach (ProductoxOrdenCompra oc in o.LstProducto)
                           {
                               oc.IdOrden = id;
                               opSQL.Agregar(oc);

                           }

                           MessageBox.Show("Se guardó la Orden de compra en BORRADOR", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                           if (model != null)
                           {
                               model.Buscar();
                           }

                           this.TryClose();
                       }
                }

            }
        }
        public void Guardar()
        {
            OrdenCompra o = new OrdenCompra();
            o.IdOrden = idOrden;
            o.IdAlmacen = 4;
            o.LstProducto = Lst;
            o.MedioPago = EstadoSelected;
            o.Observaciones = Observaciones;
            o.FechaSinAtencion = FechaAtencion;
            o.Proveedor = Prov;

                if (Validar(o))
                {

                    OrdenCompraSQL oSQL = new OrdenCompraSQL();
                    OrdenCompraxProductoSQL opSQL = new OrdenCompraxProductoSQL();

                    if (esNuevo)
                    {

                        o.Estado = 2;

                        oSQL.Agregar(o);

                        int id = new UtilesSQL().ObtenerMaximoID("OrdenCompra", "idOrden");

                        foreach (ProductoxOrdenCompra oc in o.LstProducto)
                        {
                            oc.IdOrden = id;
                            opSQL.Agregar(oc);

                        }

                        MessageBox.Show("Se Generó Exitosamente la Orden de Compra", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        if (model != null)
                        {
                            model.Buscar();
                        }

                        this.TryClose();

                    }
                    else
                    {
                        o.Estado = estado;

                        oSQL.Actualizar(o);

                        if (o.Estado == 1)
                        {
                            opSQL.Eliminar(o);
                            foreach (ProductoxOrdenCompra oc in o.LstProducto)
                            {
                                oc.IdOrden = idOrden;
                                opSQL.Agregar(oc);

                            }

                            DialogResult result = MessageBox.Show("Está trabajando con un BORRADOR , desea EMITIRLO? ", "AVISO", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                            if (result == DialogResult.Yes)
                            {
                                o.Estado = 2;
                                oSQL.Actualizar(o);
                                MessageBox.Show("Se EMITIÓ adecuadamente la Orden de Compra", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            }
                        }
                        else
                        {

                            foreach (ProductoxOrdenCompra oc in o.LstProducto)
                            {
                                oc.IdOrden = idOrden;
                                opSQL.Actualizar(oc);
                                MessageBox.Show("Se Editó adecuadamente la Orden de Compra", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            }

                        }

                        if (model != null)
                        {
                            model.Buscar();
                        }
                        this.TryClose();

                    }

                }
        }
 public void SelectedItemChanged()
 {
     ordenSeleccionada = OrdenSelected;
     if (r != null)
     {
         ordenSeleccionada.LstProducto = new OrdenCompraxProductoSQL().Buscar(ordenSeleccionada.IdOrden) as List<ProductoxOrdenCompra>;
         r.Ord = ordenSeleccionada;
         TryClose();
     }
 }
        public string formato(OrdenCompra O)
        {
            OrdenCompraSQL osql = new OrdenCompraSQL();
            Almacenes a = osql.getAlmacenCentral();

            string numOC = "OC-" + 1000000 + O.IdOrden;
            string content = @"<HTML><BODY>";
            content += "<p align='center'> MadeInHouse  S.A. <br><br>  ";
            content += " Ruc. 99999999999 <br><br> ";
            content += "  Av. Priority N° xxx - San Miguel - Lima<br><br>";
            content += " Telf: 999-9999<br><br";
            content += "  www.MadeInHouse.com Email: [email protected]<br><br>";
            content += "ORDEN DE COMPRA  Nro "+ numOC+" </p><br><br>";
            content += "<br><br>";
            content += "Proveedor : " + O.Proveedor.RazonSocial+"<br><br>";
            content += "Fecha de pedido : " + O.FechaSinAtencion.ToString()+ "<br><br>";
            content += "Terminos de entrega : Entrega en Almacen central de la Empresa <br><br>";
            content += "Lugar de entrega : " + a.Direccion + "<br><br>";
            content += "Moneda de pago : Nuevos Soles <br><br>";
            content += "Telefono para contacto : " + a.Telefono + "<br><br>";
            content += "Sirvase por este medio suministrar los siguientes articulos <br><br>";
            content += "<table border = 1 ><tr><th>NRO</th><th>ARTICULO</th><th>PRECIO UNITARIO S/.</th>"+
                        "<th>CANTIDAD</th><th>PRECIO TOTAL S/.</th><tr>";
            double sumaAporte = 0;
            int i = 1;
            foreach (ProductoxOrdenCompra o in O.LstProducto) {

                int cantidad = Convert.ToInt32(o.Cantidad);
                double parcial = o.PrecioUnitario*cantidad;
                content += "<tr><td>"+i.ToString()+"</td>"+
                               "<td>"+o.Producto.Nombre+"</td>"+
                               "<td>"+o.PrecioUnitario.ToString()+"</td>"+
                               "<td>"+o.Cantidad.ToString()+"</td>"+
                "<td>"+ parcial.ToString()+"</td></tr>";
                i++;
                sumaAporte += parcial;
            }

            content += "<tr><td colspan = 4 >TOTAL S/.</td><td>"+sumaAporte.ToString()+"</td> </tr></table>";
            content += "<br><br>";
            content += "Porfavor,Tomar en cuenta las cotizaciones respectivas a la fecha. <br><br>";
            content += "Observaciones :<br><br>" + O.Observaciones ;
            content += "</BODY></HTML>";

            return content;
        }
示例#9
0
        public static List<OrdenCompra> GenerarReporOrdenCompra(string codOrCom, Proveedor prov, int estado, DateTime fechaIni, DateTime fechaFin)
        {
            List<OrdenCompra> lstServ = new List<OrdenCompra>();
            SqlConnection conn = new SqlConnection(Properties.Settings.Default.inf245g4ConnectionString);
            SqlCommand cmd = new SqlCommand();
            SqlDataReader reader;
            String where = "";

            if (!String.IsNullOrEmpty(codOrCom))
            {
                where += " AND ";
                where = where + " o.codOrdenCompra = @tiendaNom ";
                cmd.Parameters.Add(new SqlParameter("tiendaNom", codOrCom));
            }

            if (prov!=null)
            {
                if (!String.IsNullOrEmpty(prov.CodProveedor))
                {
                    where += " AND ";
                    where = where + "  o.idProveedor=@nombreCli  ";
                    cmd.Parameters.Add(new SqlParameter("nombreCli", prov.IdProveedor));
                }
            }

            if (estado!=-1)
            {
                where += " AND ";
                where = where + "  o.estado=@estadoo  ";
                cmd.Parameters.Add(new SqlParameter("estadoo", estado));
            }

            cmd.CommandText = "Select o.codOrdenCompra as codOC, o.estado as estado, o.observaciones as observaciones, o.fechaReg as fecha, p.razonSocial as razonSocial from OrdenCompra o, Proveedor p where o.idProveedor=p.idProveedor " + where;
            cmd.CommandType = CommandType.Text;
            cmd.Connection = conn;

            try
            {
                conn.Open();

                reader = cmd.ExecuteReader();

                while (reader.Read())
                {

                    OrdenCompra p = new OrdenCompra();
                    p.Estado = Int32.Parse(reader["estado"].ToString());
                    p.CodOrdenCompra = reader["codOC"].ToString();
                    p.FechaReg = reader["fecha"].ToString();
                    p.Observaciones = reader["observaciones"].ToString();
                    Proveedor pro = new Proveedor();
                    pro.RazonSocial = reader["razonSocial"].ToString();
                    p.Proveedor = pro;
                    lstServ.Add(p);
                }

                conn.Close();

            }
            catch (Exception e)
            {
                MessageBox.Show(e.StackTrace.ToString());
            }

            return lstServ;
        }
        public void Guardar()
        {
            OrdenCompraSQL oSQL = new OrdenCompraSQL();
            OrdenCompraxProductoSQL opSQL = new OrdenCompraxProductoSQL();
            UtilesSQL u = new UtilesSQL();
            SolicitudAdquisicionSQL sSQL = new SolicitudAdquisicionSQL();
               foreach (Proveedor p in LstProveedor){

               OrdenCompra o = new OrdenCompra(idAlmacen, p, "Entregar a la brevedad posible");
               o.Estado = 2;

               oSQL.Agregar(o);

               int idOrden = u.ObtenerMaximoID("OrdenCompra", "idOrden");
               o.IdOrden = idOrden;
               foreach (Consolidado c in LstConsolidado) {

               if (c.Prov.IdProveedor == p.IdProveedor)
               {
                   ProductoxOrdenCompra po = new ProductoxOrdenCompra(c, idOrden);
                   opSQL.Agregar(po);
                   o.LstProducto.Add(po);
               }

               }

               Enviar(o);

               foreach (int idSol in Solicitudes)
               {
               oSQL.relacionarOrden(idOrden, idSol);
               }

               }

               foreach (int idSol in Solicitudes)
               {
               sSQL.TerminarSolicitudes(idAlmacen, idSol);
               }
               MessageBox.Show( "Fueron generadas satisfactoriamente las Orden de compra","OBSERVACION", MessageBoxButton.OK, MessageBoxImage.Information);
               m.TryClose();
        }
示例#11
0
        public object Buscar(params object[] filters)
        {
            List<OrdenCompra> lst = new List<OrdenCompra>();
            DBConexion db = new DBConexion();
            SqlDataReader reader;

            String where = "";

                string codigoOrden = Convert.ToString(filters[0]);
                string codProv = Convert.ToString(filters[1]);
                int Estado = Convert.ToInt32(filters[2]);
                DateTime fechaIni = Convert.ToDateTime(filters[3]);
                DateTime fechaFin = Convert.ToDateTime(filters[4]);

                if (!String.IsNullOrEmpty(codigoOrden) )
                {
                    where += " and o.codOrdenCompra LIKE '%" + codigoOrden+ "%' ";
                }

                if (!String.IsNullOrEmpty(codProv))
                {
                    where += " and p.razonSocial like '%" + codProv + "%' ";
                }

                if (Estado != 4 )
                {
                    where += " and o.estado = "+ Estado;
                }

                if ((fechaIni != null) && (filters[3] != null))
                {

                    where += " and CONVERT(DATE,'" + fechaIni.ToString("yyyy-MM-dd") + "')   <=  CONVERT(DATE,o.fechaReg,103) ";

                }

                if ((fechaFin != null) && (filters[4] != null))
                {

                    where += " and CONVERT(DATE,'" + fechaFin.ToString("yyyy-MM-dd") + "')   >=  CONVERT(DATE,o.fechaReg,103) ";
                }

              //  MessageBox.Show(where);

            db.cmd.CommandText = "SELECT  o.idOrden , o.codOrdenCompra , o.idProveedor , o.fechaReg , o.fechaSinAtencion , o.observaciones , o.medioPago,o.estado "+
                                  " FROM OrdenCompra o INNER JOIN Proveedor p  "+
                                 "ON o.idProveedor = p.idProveedor "+
                                 "WHERE  1 = 1   "+ where + " Order by o.fechaReg Desc ";
            db.cmd.CommandType = CommandType.Text;
            db.cmd.Connection = db.conn;

            try
            {
                db.conn.Open();

                reader = db.cmd.ExecuteReader();

                while (reader.Read())
                {

                    OrdenCompra o = new OrdenCompra();
                    o.IdOrden = Convert.ToInt32(reader["idOrden"]);
                    o.CodOrdenCompra = Convert.ToString(reader["codOrdenCompra"]);
                    o.Proveedor = new ProveedorSQL().BuscarPorCodigo(Convert.ToInt32(reader["idProveedor"]));
                    o.FechaReg =  reader["fechaReg"].ToString();
                    o.FechaSinAtencion = reader.IsDBNull(reader.GetOrdinal("fechaSinAtencion"))?DateTime.Now:Convert.ToDateTime(reader["fechaSinAtencion"]);
                    o.Observaciones = reader["observaciones"].ToString();
                    o.MedioPago = reader["medioPago"].ToString();
                    o.Estado = Convert.ToInt32(reader["estado"]);
                  //  o.LstProducto = new OrdenCompraxProductoSQL().Buscar(o.IdOrden) as List<ProductoxOrdenCompra>;
                    lst.Add(o);

                }

                db.conn.Close();

            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
            }

            return lst;
        }