public List <PresupuestoMaterialBE> PresupuestosFerreterias(int IdObra, decimal Area, string Latitud, string Longitud, int IdEstablecimiento)
        {
            try
            {
                var lista  = new List <PresupuestoMaterialBE>();
                var reader = db.Database.SqlQuery <sp_PresupuestoMaterial_Result>("sp_PresupuestoMaterial @param1, @param2, @param3,@param4",
                                                                                  new SqlParameter("param1", Area),
                                                                                  new SqlParameter("param2", IdObra),
                                                                                  new SqlParameter("param3", Latitud),
                                                                                  new SqlParameter("param4", Longitud)
                                                                                  );
                foreach (var item in reader)
                {
                    var PresupuestoMaterialBE = new PresupuestoMaterialBE()
                    {
                        EstablecimientoBE = new EstablecimientoBE()
                        {
                            IdEstablecimiento = item.IdEstablecimiento, NombreComercial = item.NombreComercial, RazonSocial = item.RazonSocial, Direccion = item.Direccion, Latitud = item.Latitud, Longitud = item.Longitud, RUC = item.RUC
                        },
                        SubTotal = (decimal)item.SubTotal,
                    };

                    lista.Add(PresupuestoMaterialBE);
                }

                List <PresupuestoMaterialBE> lista2 = new List <PresupuestoMaterialBE>();

                if (IdEstablecimiento == 0)
                {
                    float lat    = float.Parse(Latitud, CultureInfo.InvariantCulture);
                    float longit = float.Parse(Longitud, CultureInfo.InvariantCulture);
                    lista2 = lista.OrderBy(t => Extensiones.DistanciaKm(new Posicion(lat, longit), new Posicion(float.Parse(t.EstablecimientoBE.Latitud, CultureInfo.InvariantCulture), float.Parse(t.EstablecimientoBE.Longitud, CultureInfo.InvariantCulture)))).Take(5).ToList();
                }
                else
                {
                    lista2 = lista.Where(t => t.EstablecimientoBE.IdEstablecimiento == IdEstablecimiento).ToList();
                }



                return(lista2.OrderBy(t => t.SubTotal).ToList());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public int InsertarPresupuesto(PresupuestoMaterialBE presupuestoMaterialBE)
        {
            try
            {
                var presupuesto = new SG_PresupuestoMaterial()
                {
                    IdPresupuestoMaterial = db.SG_PresupuestoMaterial.OrderByDescending(t => t.IdPresupuestoMaterial).FirstOrDefault() == null ? 1 : db.SG_PresupuestoMaterial.OrderByDescending(t => t.IdPresupuestoMaterial).FirstOrDefault().IdPresupuestoMaterial + 1,
                    IdEstablecimiento     = presupuestoMaterialBE.IdEstablecimiento,
                    IdPersona             = presupuestoMaterialBE.IdPersona,
                    IdObra         = presupuestoMaterialBE.IdObra,
                    Fecha          = DateTime.Now,
                    SubTotal       = presupuestoMaterialBE.SubTotal,
                    Area           = presupuestoMaterialBE.Area,
                    IGV            = 0,
                    Total          = presupuestoMaterialBE.SubTotal,
                    EstadoDespacho = (int)ConstantesBE.EstadoDespacho.Pendiente
                };

                db.SG_PresupuestoMaterial.Add(presupuesto);

                SG_PresupuestoMaterial_Articulo presupuestomaterial;
                foreach (var item in PresupuestoFerreteriaDetalle(presupuestoMaterialBE.IdObra, presupuestoMaterialBE.Area, presupuestoMaterialBE.IdEstablecimiento))
                {
                    presupuestomaterial = new SG_PresupuestoMaterial_Articulo()
                    {
                        IdPresupuestoMaterial = presupuesto.IdPresupuestoMaterial,
                        IdArticulo            = item.ArticuloBE.IdArticulo,
                        Cantidad = item.Cantidad,
                        Precio   = item.Precio,
                        SubTotal = item.SubTotal
                    };
                    db.SG_PresupuestoMaterial_Articulo.Add(presupuestomaterial);
                    presupuestomaterial = null;
                }

                db.SaveChanges();

                return(presupuesto.IdPresupuestoMaterial);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
Example #3
0
 public int InsertarPresupuesto(PresupuestoMaterialBE PresupuestoMOBE)
 {
     return(PresupuestoMaterialDAO.InsertarPresupuesto(PresupuestoMOBE));
 }