Exemplo n.º 1
0
        public int Delete(long id)
        {
            Requisicion requisicion = new Requisicion();

            requisicion = FindById(id);

            requisiciones requisicionTable = new requisiciones
            {
                id_requisicion                = requisicion.GetId(),
                id_centro_gasto               = requisicion.GetCentroGasto().GetId(),
                id_comprador                  = requisicion.GetComprador().GetId(),
                id_proveedor                  = requisicion.GetProveedor().GetId(),
                clave_requisicion             = requisicion.GetClave(),
                fecha_elaboracion_requisicion = requisicion.GetFechaElaboracion(),
                fecha_entrega_requisicion     = requisicion.GetFechaEntrega(),
                estado_requisicion            = requisicion.GetEstado(),
                carta_compromiso_requisicion  = requisicion.GetCartaCompromiso(),
                fecha_promesa_entrega         = requisicion.GetFechaPromesaEntrega(),
                observacion_requisicion       = requisicion.GetObservaciones()
            };


            DAODataContext contexto = new DAODataContext();

            contexto.requisiciones.Attach(requisicionTable);
            contexto.requisiciones.DeleteOnSubmit(requisicionTable);
            contexto.SubmitChanges();

            return(0);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Insercion del objeto requisicion
        /// </summary>
        /// <param name="requisicion"></param>
        /// <returns>El código de error, 0 si el resultado es exitoso</returns>
        public int Insert(Requisicion requisicion, bool agregarCentroGasto, bool agregarComprador, bool agregarProveedor)
        {
            if (agregarCentroGasto)
            {
                ///Aqui se manejara la insercion del centro de gasto
                CentroGasto centroGasto = new CentroGasto();

                CentroGastoDAO centroGastoDAO = new CentroGastoDAO();

                centroGastoDAO.Insert(centroGasto);
            }

            if (agregarComprador)
            {
                ///Aqui se manejara la insercion del comprador asignado
                Comprador comprador = new Comprador();

                CompradorDAO compradorDAO = new CompradorDAO();

                compradorDAO.Insert(comprador);
            }

            if (agregarProveedor)
            {
                ///Aqui se manejara la insercion del proveedor
                Proveedor proveedor = new Proveedor();

                ProveedorDAO proveedorDAO = new ProveedorDAO();

                proveedorDAO.Insert(proveedor);
            }

            requisiciones requisicionTable = new requisiciones
            {
                id_centro_gasto               = requisicion.GetCentroGasto().GetId(),
                id_comprador                  = requisicion.GetComprador().GetId(),
                id_proveedor                  = requisicion.GetProveedor().GetId(),
                clave_requisicion             = requisicion.GetClave(),
                fecha_elaboracion_requisicion = requisicion.GetFechaElaboracion(),
                fecha_entrega_requisicion     = requisicion.GetFechaEntrega(),
                estado_requisicion            = requisicion.GetEstado(),
                carta_compromiso_requisicion  = requisicion.GetCartaCompromiso(),
                fecha_promesa_entrega         = requisicion.GetFechaPromesaEntrega(),
                observacion_requisicion       = requisicion.GetObservaciones()
            };

            DAODataContext contexto = new DAODataContext();

            contexto.requisiciones.InsertOnSubmit(requisicionTable);
            contexto.SubmitChanges();
            return(0);
        }
Exemplo n.º 3
0
        public int Update(Requisicion requisicion)
        {
            DAODataContext contexto = new DAODataContext();

            requisiciones requisicionTable = contexto.requisiciones.Single(req => req.id_requisicion == requisicion.GetId());

            requisicionTable.id_centro_gasto               = requisicion.GetCentroGasto().GetId();
            requisicionTable.id_comprador                  = requisicion.GetComprador().GetId();
            requisicionTable.id_proveedor                  = requisicion.GetProveedor().GetId();
            requisicionTable.clave_requisicion             = requisicion.GetClave();
            requisicionTable.fecha_elaboracion_requisicion = requisicion.GetFechaElaboracion();
            requisicionTable.fecha_entrega_requisicion     = requisicion.GetFechaEntrega();
            requisicionTable.estado_requisicion            = requisicion.GetEstado();
            requisicionTable.carta_compromiso_requisicion  = requisicion.GetCartaCompromiso();
            requisicionTable.fecha_promesa_entrega         = requisicion.GetFechaPromesaEntrega();
            requisicionTable.observacion_requisicion       = requisicion.GetObservaciones();

            contexto.SubmitChanges();

            return(0);
        }
Exemplo n.º 4
0
        public int Update(long id, int idCentroGasto, int idComprador, int idProveedor,
                          string clave, DateTime fechaElaboracion, DateTime?fechaEntrega,
                          char?estado, string cartaCompromiso, DateTime?fechaPromesaEntrega, string observaciones)
        {
            DAODataContext contexto = new DAODataContext();

            requisiciones requisicionTable = contexto.requisiciones.Single(req => req.id_requisicion == id);

            requisicionTable.id_centro_gasto               = idCentroGasto;
            requisicionTable.id_comprador                  = idComprador;
            requisicionTable.id_proveedor                  = idProveedor;
            requisicionTable.clave_requisicion             = clave;
            requisicionTable.fecha_elaboracion_requisicion = fechaElaboracion;
            requisicionTable.fecha_entrega_requisicion     = fechaEntrega;
            requisicionTable.estado_requisicion            = estado;
            requisicionTable.carta_compromiso_requisicion  = cartaCompromiso;
            requisicionTable.fecha_promesa_entrega         = fechaPromesaEntrega;
            requisicionTable.observacion_requisicion       = observaciones;

            contexto.SubmitChanges();

            return(0);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Insercion del objeto requisicion
        /// </summary>
        /// <param name="idCentroGasto">El id del centro de gasto</param>
        /// <param name="idComprador">El id del comprador</param>
        /// <param name="idProveedor">El id del proveedor</param>
        /// <param name="clave">La clave de la requisicion</param>
        /// <param name="fechaElaboracion">La fecha de elaboracion de la requisicion</param>
        /// <param name="fechaEntrega">La fecha de entrega limite de la requisicion</param>
        /// <param name="estado">El estado de la requisicion</param>
        /// <param name="cartaCompromiso">La carta compromiso de la requisicion</param>
        /// <param name="fechaPromesaEntrega">La fecha de promesa de entrega de la requisicion</param>
        /// <param name="observaciones">Observaciones respecto a la requisicion</param>
        /// <returns>El código de error, 0 si el resultado es exitoso</returns>
        public int Insert(int idCentroGasto, int idComprador, int idProveedor,
                          string clave, DateTime fechaElaboracion, DateTime?fechaEntrega,
                          char?estado, string cartaCompromiso, DateTime?fechaPromesaEntrega, string observaciones)
        {
            requisiciones requisicionTable = new requisiciones
            {
                id_centro_gasto               = idCentroGasto,
                id_comprador                  = idComprador,
                id_proveedor                  = idProveedor,
                clave_requisicion             = clave,
                fecha_elaboracion_requisicion = fechaElaboracion,
                fecha_entrega_requisicion     = fechaEntrega,
                estado_requisicion            = estado,
                carta_compromiso_requisicion  = cartaCompromiso,
                fecha_promesa_entrega         = fechaPromesaEntrega,
                observacion_requisicion       = observaciones
            };

            DAODataContext contexto = new DAODataContext();

            contexto.requisiciones.InsertOnSubmit(requisicionTable);
            contexto.SubmitChanges();
            return(0);
        }
        public ActionResult GuardaRequisicion(FormCollection fc)
        {
            using (var db = new sgopEntities())
            {
                try
                {
                    MethodEncrypt me                     = new MethodEncrypt();
                    Rangos        rango                  = new Rangos();
                    int           idLicitacion           = Convert.ToInt32(me.getDecrypt(fc["idLicitacionEncrypt"]));
                    JArray        jsonConceptosAgregados = JArray.Parse(fc["conceptosAgregar"].ToString());
                    var           licitacion             = db.licitaciones.Where(lic => lic.idLicitacion == idLicitacion).First();
                    List <RequisicionesMaterialesViewModel> lstMateriales = new List <RequisicionesMaterialesViewModel>();

                    int idRequisicionRango = (int)licitacion.idRequisicion;

                    //Si la licitacion no tiene agregada la requisicion obtiene una nueva
                    if (idRequisicionRango == 0)
                    {
                        idRequisicionRango = rango.getSiguienteID("REQUISICIONES");
                        //Actualiza la requisicion de la licitacion
                        licitacion.idRequisicion   = idRequisicionRango;
                        db.Entry(licitacion).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                    }
                    else
                    {
                        var requisicionesList = (db.requisiciones.Where(req => req.idRequisicionRango == idRequisicionRango)).ToList();
                        var reqMatList        = db.requisicionesMateriales.Where(reqMat => reqMat.idRequisicion == idRequisicionRango).ToList();

                        //Si la cantidad de la lista enviada es diferente a la cantidad de las requisiciones que hay en la base de datos
                        //Entonces elimina todas las requisiciones totales y materiales
                        if (requisicionesList.Count != jsonConceptosAgregados.Count)
                        {
                            //Requisiciones totales
                            foreach (var item in requisicionesList)
                            {
                                int?          idConcepto  = item.idConcepto;
                                requisiciones requisicion = db.requisiciones.Where(req => req.idConcepto == idConcepto && req.idRequisicionRango == idRequisicionRango).First();
                                db.requisiciones.Remove(requisicion);
                                db.SaveChanges();
                            }

                            //Requisiciones Materiales
                            foreach (var item in reqMatList)
                            {
                                requisicionesMateriales requisicionMat = db.requisicionesMateriales.Where(reqMat => reqMat.idRequisicion == idRequisicionRango).First();
                                db.requisicionesMateriales.Remove(requisicionMat);
                                db.SaveChanges();
                            }
                        }
                    }

                    for (int i = 0; i < jsonConceptosAgregados.Count; i++)
                    {
                        int    idConcepto = Convert.ToInt32(jsonConceptosAgregados[i]["idConcepto"]);
                        double cantidad   = Convert.ToDouble(jsonConceptosAgregados[i]["cantidad"]);

                        //Trae la requisicion donde haya ese idConcepto y ese idRequisicion
                        try
                        {
                            //Si la encuentra, actualiza la cantidad de la requisicion con ese idConcepto y ese idRequisicion
                            var requisicion = db.requisiciones.Where(r => r.idConcepto == idConcepto && r.idRequisicionRango == idRequisicionRango).First();
                            requisicion.cantidad        = cantidad;
                            db.Entry(requisicion).State = System.Data.Entity.EntityState.Modified;
                            db.SaveChanges();

                            //Trae la lista de las requisiciones materiales para ese idConcepto y idRequisicion
                            var requisicionMatLista = db.requisicionesMateriales.Where(rm => rm.idConcepto == idConcepto && rm.idRequisicion == idRequisicionRango).ToList();

                            //Recorre la lista
                            foreach (var reqm in requisicionMatLista)
                            {
                                //Busca en la tabla relacionConceptosMateriales el idConcepto y idMaterial para obtener la cantidad necesaria
                                var relConcMat = db.relacionConceptosMateriales.Where(rcm => rcm.idConcepto == idConcepto && rcm.idMaterial == reqm.idMaterial).First();
                                //Busca la requisicionMaterial que se va a actualizar
                                var requisicionMat = db.requisicionesMateriales.Find(reqm.idRequisicionMaterial);

                                requisicionMat.total           = cantidad * relConcMat.cantidad;//Actualiza el total
                                db.Entry(requisicionMat).State = System.Data.Entity.EntityState.Modified;
                                db.SaveChanges();
                            }
                        }
                        catch (Exception)
                        {
                            //Si no la encuentra, guarda una nueva requisicion con ese idConcepto y ese idRequisicion
                            var           concepto       = db.catalogoConceptos.Find(idConcepto);
                            requisiciones tRequisiciones = new requisiciones();

                            tRequisiciones.idRequisicionRango = idRequisicionRango;
                            tRequisiciones.idConcepto         = idConcepto;
                            tRequisiciones.cantidad           = cantidad;
                            tRequisiciones.total = concepto.precioUnitario * cantidad;

                            db.requisiciones.Add(tRequisiciones);
                            db.SaveChanges();

                            //Obtiene todos los materiales que se necesitan para ese idConcepto

                            lstMateriales = (from mat in db.relacionConceptosMateriales
                                             where mat.idConcepto == idConcepto
                                             select new RequisicionesMaterialesViewModel
                            {
                                idRelacion = mat.idRelacion,
                                idConcepto = mat.idConcepto,
                                idMaterial = mat.idMaterial,
                                cantidadMaterial = mat.cantidad
                            }).ToList();

                            foreach (var relacion in lstMateriales)
                            {
                                requisicionesMateriales tReqMat = new requisicionesMateriales();

                                tReqMat.idRequisicion = idRequisicionRango;
                                tReqMat.idConcepto    = idConcepto;
                                tReqMat.idMaterial    = relacion.idMaterial;
                                tReqMat.total         = cantidad * relacion.cantidadMaterial;

                                db.requisicionesMateriales.Add(tReqMat);
                                db.SaveChanges();
                            }
                        }
                    }
                    db.Dispose();
                    return(Content("requisicionGuardada"));
                }
                catch (Exception)
                {
                    db.Dispose();
                    return(Content("noExisteLicitacion"));
                }
            }
        }