예제 #1
0
 public static SAB_UACI_CONTRATOS Obtener(SAB_UACI_CONTRATOS contrato)
 {
     using (var db = new SinabEntities())
     {
         return(Obtener(contrato, db));
     }
 }
예제 #2
0
        public static SAB_UACI_CONTRATOS Guardar(SAB_UACI_CONTRATOS contrato, SinabEntities db)
        {
            if (contrato.IDCONTRATO == 0)
            {
                var recs = db.SAB_UACI_CONTRATOS.Where(c =>
                                                       c.IDESTABLECIMIENTO == contrato.IDESTABLECIMIENTO &&
                                                       c.IDPROVEEDOR == contrato.IDPROVEEDOR);
                long lastId = 1;
                if (recs.Any())
                {
                    lastId = recs.Max(c => c.IDCONTRATO) + 1;
                }
                contrato.IDCONTRATO = lastId;

                db.SAB_UACI_CONTRATOS.AddObject(contrato);
                db.SaveChanges();
                return(contrato);
            }

            var rec =
                Obtener(
                    new SAB_UACI_CONTRATOS()
            {
                IDCONTRATO        = contrato.IDCONTRATO,
                IDESTABLECIMIENTO = contrato.IDESTABLECIMIENTO,
                IDPROVEEDOR       = contrato.IDPROVEEDOR
            }, db);

            if (rec != null)
            {
                rec.NUMEROCONTRATO             = contrato.NUMEROCONTRATO;
                rec.IDTIPODOCUMENTO            = contrato.IDTIPODOCUMENTO;
                rec.IDPLANTILLA                = contrato.IDPLANTILLA;
                rec.TIPOPERSONA                = contrato.TIPOPERSONA;
                rec.REPRESENTANTELEGAL         = contrato.REPRESENTANTELEGAL;
                rec.PERSONERIAJURIDICA         = contrato.PERSONERIAJURIDICA;
                rec.FECHAGENERACION            = contrato.FECHAGENERACION;
                rec.FECHAAPROBACION            = contrato.FECHAAPROBACION;
                rec.FECHADISTRIBUCION          = contrato.FECHADISTRIBUCION;
                rec.CODIGOLICITACION           = contrato.CODIGOLICITACION;
                rec.FECHAINICIOENTREGA         = contrato.FECHAINICIOENTREGA;
                rec.IDESTADOCONTRATO           = contrato.IDESTADOCONTRATO;
                rec.IDCALIFICACIONCUMPLIMIENTO = contrato.IDCALIFICACIONCUMPLIMIENTO;
                rec.IDCALIFICACIONCALIDAD      = contrato.IDCALIFICACIONCALIDAD;
                rec.IDMODALIDADCOMPRA          = contrato.IDMODALIDADCOMPRA;
                rec.NUMEROMODALIDADCOMPRA      = contrato.NUMEROMODALIDADCOMPRA;
                rec.MONTOCONTRATO              = contrato.MONTOCONTRATO;
                rec.AUUSUARIOCREACION          = contrato.AUUSUARIOCREACION;
                rec.AUFECHACREACION            = contrato.AUFECHACREACION;
                rec.AUUSUARIOMODIFICACION      = contrato.AUUSUARIOMODIFICACION;
                rec.AUFECHAMODIFICACION        = contrato.AUFECHAMODIFICACION;
                rec.ESTASINCRONIZADA           = contrato.ESTASINCRONIZADA;
                rec.ACTANOTARIAL               = contrato.ACTANOTARIAL;
                rec.RESOLUCION   = contrato.RESOLUCION;
                rec.MODIFICATIVA = contrato.MODIFICATIVA;
            }

            db.SaveChanges();
            return(rec);
        }
예제 #3
0
        public static List <BaseProductos> Obtener(SAB_UACI_CONTRATOS contrato)
        {
            using (var db = new SinabEntities())
            {
                var rec = Contratos.Obtener(contrato, db);
                return(rec.SAB_UACI_PRODUCTOSCONTRATO
                       .Join(db.vv_CATALOGOPRODUCTOS,
                             obj => obj.IDPRODUCTO,
                             inf => inf.IDPRODUCTO,
                             (obj, inf) => new BaseProductos
                {
                    IdEstablecimiento = obj.IDESTABLECIMIENTO,
                    IdProducto = obj.IDPRODUCTO,
                    IdProveedor = obj.IDPROVEEDOR,
                    IdContrato = obj.IDCONTRATO,
                    PrecioUnitario = obj.PRECIOUNITARIO ?? 0,
                    CorrProducto = inf.CORRPRODUCTO,
                    Renglon = obj.RENGLON,
                    DescLargo = inf.DESCLARGO,
                    UnidadMedida = inf.UNIDADMEDIDA,
                    DescripcionProveedor = obj.DESCRIPCIONPROVEEDOR,
                    EstaHabilitado = obj.ESTAHABILITADO,
                    FechaDeshabilitacion = obj.FECHADESHABILITACION,
                    Observacion = obj.OBSERVACION,
                    Descripcion = inf.DESCRIPCION,
                    Cantidad = obj.CANTIDAD,
                    Total = obj.PRECIOUNITARIO * obj.CANTIDAD,
                })

                       .OrderBy(objinfo => objinfo.Renglon).ToList());
            }
        }
예제 #4
0
 public static bool ExisteProducto(SAB_UACI_CONTRATOS contrato, long renglon)
 {
     using (var db = new SinabEntities())
     {
         var rec = Contratos.Obtener(contrato, db);
         return(rec.SAB_UACI_PRODUCTOSCONTRATO.Any(pc => pc.RENGLON == renglon));
     }
 }
예제 #5
0
 public static List <SAB_UACI_PRODUCTOSCONTRATO> ObtenerInmediatos(SAB_UACI_CONTRATOS contrato)
 {
     using (var db = new SinabEntities())
     {
         var cont = Contratos.Obtener(contrato, db);
         return(cont.SAB_UACI_PRODUCTOSCONTRATO.ToList());
     }
 }
예제 #6
0
 public static List <SAB_UACI_RESPONSABLEDISTRIBUCIONCONTRATO> Obtener(SAB_UACI_CONTRATOS contrato)
 {
     using (var db = new SinabEntities())
     {
         var rec = Contratos.Obtener(contrato, db);
         return(rec.SAB_UACI_RESPONSABLEDISTRIBUCIONCONTRATO.OrderBy(rdc => rdc.Nombre).ToList());
     }
 }
예제 #7
0
        public static void CargarALista(ref DropDownList lista, SAB_UACI_CONTRATOS contrato)
        {
            var list = contrato.SAB_UACI_FUENTEFINANCIAMIENTOSCONTRATOS.OrderBy(ffc => ffc.Nombre).ToList();

            lista.DataSource     = list;
            lista.DataTextField  = "Nombre";
            lista.DataValueField = "IDFUENTEFINANCIAMIENTO";
            lista.DataBind();
        }
예제 #8
0
        public static void CargarALista(ref DropDownList lista, SAB_UACI_CONTRATOS contrato)
        {
            var list = contrato.SAB_UACI_RESPONSABLEDISTRIBUCIONCONTRATO.OrderBy(rdc => rdc.Nombre).ToList();

            lista.DataSource     = list;
            lista.DataTextField  = "Nombre";
            lista.DataValueField = "IDRESPONSABLEDISTRIBUCION";
            lista.DataBind();
        }
예제 #9
0
        public static SAB_UACI_CONTRATOS Obtener(SAB_UACI_CONTRATOS contrato, SinabEntities db)
        {
            var rec = db.SAB_UACI_CONTRATOS.FirstOrDefault(c =>
                                                           c.IDCONTRATO == contrato.IDCONTRATO &&
                                                           c.IDESTABLECIMIENTO == contrato.IDESTABLECIMIENTO &&
                                                           c.IDPROVEEDOR == contrato.IDPROVEEDOR);

            return(rec);
        }
예제 #10
0
        public static List <SAB_UACI_FUENTEFINANCIAMIENTOSCONTRATOS> Obtener(SAB_UACI_CONTRATOS contrato)
        {
            using (var db = new SinabEntities())
            {
                var rec = Contratos.Obtener(contrato, db);

                return(rec.SAB_UACI_FUENTEFINANCIAMIENTOSCONTRATOS.
                       OrderBy(ffc => ffc.Nombre).ToList());
            }
        }
예제 #11
0
 public static List <SAB_UACI_ENTREGACONTRATO> Obtener(SAB_UACI_CONTRATOS contrato, long renglon)
 {
     using (var db = new SinabEntities())
     {
         return(db.SAB_UACI_ENTREGACONTRATO.Where(ec =>
                                                  ec.IDCONTRATO == contrato.IDCONTRATO &&
                                                  ec.IDESTABLECIMIENTO == contrato.IDESTABLECIMIENTO &&
                                                  ec.IDPROVEEDOR == contrato.IDPROVEEDOR &&
                                                  ec.RENGLON == renglon).ToList());
     }
 }
예제 #12
0
 public static List <SAB_UACI_ALMACENESENTREGACONTRATOS> Obtener(SAB_UACI_CONTRATOS contrato, long renglon, int idFuenteFinanciamiento = -1)
 {
     using (var db = new SinabEntities())
     {
         return(db.SAB_UACI_ALMACENESENTREGACONTRATOS.Where(aec =>
                                                            aec.IDCONTRATO == contrato.IDCONTRATO &&
                                                            aec.IDESTABLECIMIENTO == contrato.IDESTABLECIMIENTO &&
                                                            aec.IDPROVEEDOR == contrato.IDPROVEEDOR &&
                                                            aec.RENGLON == renglon &&
                                                            aec.IDALMACENENTREGA == contrato.IdAlmacen &&
                                                            aec.IDFUENTEFINANCIAMIENTO == idFuenteFinanciamiento).ToList());
     }
 }
예제 #13
0
 public static long ObtenerSiguienteRenglon(SAB_UACI_CONTRATOS contrato)
 {
     using (var db = new SinabEntities())
     {
         var rec  = Contratos.Obtener(contrato, db);
         var list = rec.SAB_UACI_PRODUCTOSCONTRATO.ToList();
         if (!list.Any())
         {
             return(1);
         }
         var reng = list.Max(pc => pc.RENGLON);
         return(reng + 1);
     }
 }
예제 #14
0
        public static bool ExisteProducto(SAB_UACI_PRODUCTOSCONTRATO producto)
        {
            var baseContrato = new SAB_UACI_CONTRATOS()
            {
                IDCONTRATO        = producto.IDCONTRATO,
                IDESTABLECIMIENTO = producto.IDESTABLECIMIENTO,
                IDPROVEEDOR       = producto.IDPROVEEDOR
            };

            using (var db = new SinabEntities())
            {
                var rec = Contratos.Obtener(baseContrato, db);
                return(rec.SAB_UACI_PRODUCTOSCONTRATO.Any(pc => pc.RENGLON == producto.RENGLON));
            }
        }
예제 #15
0
        public static string ObtenerNombres(SAB_UACI_CONTRATOS contrato)
        {
            var recs = new StringBuilder();

            if (!contrato.SAB_UACI_RESPONSABLEDISTRIBUCIONCONTRATO.Any())
            {
                return(string.Empty);
            }

            contrato.SAB_UACI_RESPONSABLEDISTRIBUCIONCONTRATO.ToList()
            .ForEach(rdc => recs.Append(rdc.SAB_CAT_RESPONSABLEDISTRIBUCION.NOMBRE + ", "));

            var res = recs.ToString();

            res = res.Remove(res.Length - 2);
            return(res);
        }
예제 #16
0
        public static string ObtenerContratos(SAB_UACI_CONTRATOS contrato)
        {
            var recs = new StringBuilder();

            if (!contrato.SAB_UACI_CONTRATOSPROCESOCOMPRA.Any())
            {
                return("--");
            }

            contrato.SAB_UACI_CONTRATOSPROCESOCOMPRA.ToList()
            .ForEach(rdc => recs.Append(rdc.SAB_UACI_PROCESOCOMPRAS.NUMERORESOLUCION + ", "));

            var res = recs.ToString();

            res = res.Remove(res.Length - 2);
            return(res);
        }
예제 #17
0
        public static void Borrar(SAB_UACI_CONTRATOS contrato)
        {
            //asegurando RollBack
            using (var db = new SinabEntities())
            {
                var rec = Obtener(contrato, db);


                if (rec == null)
                {
                    return;
                }
                //Verificar antes de borrar
                if (rec.SAB_ALM_RECIBOSRECEPCION.Any())
                {
                    throw new Exception("Contrato no puede ser borrado despues de recibido");
                }

                //Borra los responsables
                foreach (var rdc in rec.SAB_UACI_RESPONSABLEDISTRIBUCIONCONTRATO.ToList())
                {
                    db.SAB_UACI_RESPONSABLEDISTRIBUCIONCONTRATO.DeleteObject(rdc);
                }

                //borra las fuentes de financiamiento
                foreach (var ffc in rec.SAB_UACI_FUENTEFINANCIAMIENTOSCONTRATOS.ToList())
                {
                    db.SAB_UACI_FUENTEFINANCIAMIENTOSCONTRATOS.DeleteObject(ffc);
                }

                //Borrar productos contrato
                foreach (var ec in rec.SAB_UACI_PRODUCTOSCONTRATO.SelectMany(pc => pc.SAB_UACI_ENTREGACONTRATO).ToList())
                {
                    db.SAB_UACI_ENTREGACONTRATO.DeleteObject(ec);
                }

                foreach (var pc in rec.SAB_UACI_PRODUCTOSCONTRATO.ToList())
                {
                    db.SAB_UACI_PRODUCTOSCONTRATO.DeleteObject(pc);
                }

                //borra el contrato
                db.SAB_UACI_CONTRATOS.DeleteObject(rec);
                db.SaveChanges();
            }
        }
예제 #18
0
        public static string ObtenerNombres(SAB_UACI_CONTRATOS contrato)
        {
            var recs = new StringBuilder();

            if (!contrato.SAB_UACI_FUENTEFINANCIAMIENTOSCONTRATOS.Any())
            {
                return(string.Empty);
            }


            contrato.SAB_UACI_FUENTEFINANCIAMIENTOSCONTRATOS.ToList()
            .ForEach(ffc => recs.Append(ffc.SAB_CAT_FUENTEFINANCIAMIENTOS.NOMBRE + ", "));

            var res = recs.ToString();

            res = res.Remove(res.Length - 2);
            return(res);
        }
예제 #19
0
        public static void EliminarProducto(SAB_UACI_CONTRATOS contrato, long renglon)
        {
            using (var db = new SinabEntities())
            {
                var cont = Contratos.Obtener(contrato, db);
                var prod = cont.SAB_UACI_PRODUCTOSCONTRATO.FirstOrDefault(pc => pc.RENGLON == renglon);
                if (prod == null)
                {
                    return;
                }
                //borra primero las entregas
                db.SAB_UACI_ENTREGACONTRATO.Where(ec =>
                                                  ec.IDESTABLECIMIENTO == contrato.IDESTABLECIMIENTO &&
                                                  ec.IDPROVEEDOR == contrato.IDPROVEEDOR &&
                                                  ec.IDCONTRATO == contrato.IDCONTRATO &&
                                                  ec.RENGLON == renglon).ToList().ForEach(db.DeleteObject);
                //borra el registro
                db.SAB_UACI_PRODUCTOSCONTRATO.DeleteObject(prod);

                //registra la operacion
                db.SaveChanges();
            }
        }
예제 #20
0
 public static List <prcRenglonesPendientesTotales_Result> ObtenerRenglonesPendientes(SAB_UACI_CONTRATOS baseContrato, int renglon, int idsuministro)
 {
     using (var db = new SinabEntities())
     {
         return
             (db.prcRenglonesPendientesTotales(
                  baseContrato.IDESTABLECIMIENTO,
                  baseContrato.IdAlmacen,
                  baseContrato.IDPROVEEDOR,
                  baseContrato.IDCONTRATO,
                  renglon,
                  idsuministro).ToList());
     }
 }