Esempio n. 1
0
        private void CargarFacturas()
        {
            this.pDetalles.Visible    = true;
            this.gbRefacturar.Visible = true;
            facturas          oFactura          = new facturas();
            FacturasImplement oFacturaImplement = new FacturasImplement();
            socios            oSocio            = new socios();
            SocioImplement    oSocioImplement   = new SocioImplement();

            oSocio = oSocioImplement.Get(_idSocio);
            tarifas           oTarifa            = new tarifas();
            TarifaImplement   oTarifaImplement   = new TarifaImplement();
            cod_impuestos     oCodImpuesto       = new cod_impuestos();
            ImpuestoImplement oImpuestoImplement = new ImpuestoImplement();

            oCodImpuesto = oImpuestoImplement.Get(oSocio.iva.Value);
            oFactura     = oFacturaImplement.Get(_idFactura);
            oTarifa      = oTarifaImplement.Get(oSocio.tarifa.Value);
            this.txtNroFacturaAct.Text = oFactura.id_factura.ToString();
            _periodo = oFactura.id_factura.ToString();
            this.txtFechaAct.Text = oFactura.id_periodo.ToString();
            CargarFactura(_idFactura);
            this.txtTotalAct.Text = sumarFilas(ref this.dgDetalleAct, "colAImporte").ToString();
            CargarFacturaFutura(_periodo, _idSocio);
            this.txtTotalFut.Text = sumarFilas(ref this.dgDetalleFut, "colFImporte").ToString();
        }
Esempio n. 2
0
        public int ObtenerLecturaAnterior(int idFactura)
        {
            int _LectAnt = 0;

            using (cooperativaEntities bd = new cooperativaEntities())
            {
                Commons oCommons = new Commons();

                FacturasImplement oFacturasImplement = new FacturasImplement();
                facturas          oFactura           = new facturas();

                oFactura = oFacturasImplement.Get(idFactura);


                var facturaAnterior = (from f in bd.facturas
                                       join m in bd.socios_mediciones on f.id_medicion equals m.id_medicion
                                       where f.id_factura < idFactura && f.id_socio == oFactura.id_socio
                                       orderby f.id_factura descending
                                       select new
                {
                    f.id_factura,
                    m.lectura
                }).Take(1).ToList();

                if (facturaAnterior.Count > 0)
                {
                    _LectAnt = (int)facturaAnterior[0].lectura;
                }
            }
            return(_LectAnt);
        }
Esempio n. 3
0
        public async Task <ActionResult <facturas> > PostFactura(facturas facturas)
        {
            _context.Facturas.Add(facturas);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetFactura), new { id = facturas.Id }, facturas));
        }
Esempio n. 4
0
 public bool SaveList(List <vventas> lista)
 {
     try
     {
         using (var db = new NtLinkLocalServiceEntities())
         {
             foreach (vventas ventas in lista)
             {
                 vventas  ventas1 = ventas;
                 facturas f       = db.facturas.Where(p => p.idVenta == ventas1.idVenta).First();
                 f.Cancelado      = ventas.Cancelado;
                 f.FechaPago      = ventas.FechaPago;
                 f.ReferenciaPago = ventas.ReferenciaPago;
                 f.Vencimiento    = ventas.Vencimiento;
                 f.Proyecto       = ventas.Proyecto;
                 //_entities.facturas.ApplyCurrentValues(f);
             }
             db.SaveChanges();
         }
         return(true);
     }
     catch (Exception ee)
     {
         Logger.Error(ee.Message);
         return(false);
     }
 }
Esempio n. 5
0
        private void GuardarCobranza()
        {
            facturas                  oFacturas                  = new facturas();
            socios                    oSocio                     = new socios();
            SocioImplement            oSocioImplement            = new SocioImplement();
            FacturasImplement         oFacturasImplement         = new FacturasImplement();
            PeriodosImplement         oPeriodosImplement         = new PeriodosImplement();
            FacturasDetallesImplement oFacturasDetallesImplement = new FacturasDetallesImplement();

            oFacturas = oFacturasImplement.Get(int.Parse(txtNroFactura.Text));
            oFacturas.id_estadoPago = 3;
            oFacturasImplement.Update(oFacturas);

            cobranzas oCobranza = new cobranzas();

            oCobranza.id_caja                = int.Parse(cmbCaja.SelectedValue.ToString());
            oCobranza.id_factura             = _idFactura;
            oCobranza.id_recibo              = 0;
            oCobranza.id_socio               = _idSocio;
            oCobranza.importe                = decimal.Parse(txtTotalCobrado.Text);
            oCobranza.descuento_convenio     = 0;
            oCobranza.iva_descuento_convenio = 0;
            oCobranza.fecha_cobro            = dtpFechaCaja.Value;
            oCobranza.id_terminal            = 0;//VER
            oCobranza.fecha_registro         = DateTime.Now;
            CobranzasImplement oCobranzasImplement = new CobranzasImplement();

            oCobranzasImplement.Save(oCobranza);
        }
Esempio n. 6
0
        public ActionResult facturar(string id_cliente, decimal monto_pago)
        {
            string   id_factura = "fact-" + DateTime.UtcNow.ToString().Replace("/", "").Replace(" ", "").Replace(":", "").Replace("am", "").Replace("pm", "");
            facturas factura    = new facturas();

            factura.id_factura = id_factura;
            factura.fk_cliente = id_cliente;
            factura.credito    = false;
            factura.total      = (decimal?)Session["total"];
            db.facturas.Add(factura);
            foreach (var producto in (List <productos>)Session["productos_caja"])
            {
                factura_productos fact_pro = new factura_productos();
                fact_pro.fk_factura  = id_factura;
                fact_pro.fk_producto = producto.id_producto;
                db.factura_productos.Add(fact_pro);
            }
            db.SaveChanges();

            if (id_cliente == "")
            {
                ViewBag.n_cliente = "Cliente X";
            }
            else
            {
                ViewBag.n_cliente = db.clientes.Find(id_cliente).nombre;
            }
            ViewBag.id_factura = id_factura;
            ViewBag.total      = (decimal?)Session["total"];
            ViewBag.cambio     = monto_pago - ViewBag.total;
            return(View("Factura"));
        }
        public void Delete(int idConvenio)
        {
            using (cooperativaEntities bd = new cooperativaEntities())
            {
                DataTable         dtFacturas         = new DataTable();
                FacturasImplement oFacturasImplement = new FacturasImplement();
                var listar = (from f in bd.facturas
                              where f.id_convenio == idConvenio
                              select f).ToList();
                Commons oCommons = new Commons();
                dtFacturas = oCommons.convertToTable(listar);

                foreach (DataRow dr in dtFacturas.Rows)
                {
                    int      idFactura = int.Parse(dr["id_factura"].ToString());
                    facturas oFacturas = new facturas();
                    oFacturas             = oFacturasImplement.Get(idFactura);
                    oFacturas.id_convenio = 0;
                    oFacturasImplement.Update(oFacturas);
                }

                var regis = (from p in bd.convenios
                             where p.id_convenio == idConvenio
                             select p).Single();

                bd.DeleteObject(regis);
                bd.SaveChanges();
            }
        }
Esempio n. 8
0
        public IHttpActionResult Putfacturas(int id, facturas facturas)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != facturas.id_Facturas)
            {
                return(BadRequest());
            }

            db.Entry(facturas).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!facturasExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 9
0
 //Constructor
 public SeleccionDescuentoVM(facturas factura, ObservableCollection <detallesfactura> detallesfactura)
 {
     ListaDescuentos   = BbddService.GetDescuentos();
     FacturaDescuento  = factura;
     DetallesEnFactura = detallesfactura;
     DetallesSeleccionadosParaDescuento = new ObservableCollection <detallesfactura>();
 }
Esempio n. 10
0
        private void Inicializar()
        {
            FacturasImplement oFacturasImplement = new FacturasImplement();
            facturas          oFacturas          = new facturas();

            oFacturas               = oFacturasImplement.Get(_idFactura);
            txtFactura.Text         = oFacturas.id_factura.ToString();
            txtPeriodo.Text         = oFacturas.id_periodo.ToString().Substring(4, 2) + "/" + oFacturas.id_periodo.ToString().Substring(0, 4);
            txtFehaFacturacion.Text = "";

            txtFechaVencimiento.Text = "";
            EstadosPagoImplement oEstadosPagoImplement = new EstadosPagoImplement();
            cod_estados_pago     oCod_Estados_Pago     = new cod_estados_pago();
            int idEstado = (int)oFacturas.id_estadoPago;

            oCod_Estados_Pago = oEstadosPagoImplement.Get(idEstado);
            txtEstado.Text    = oCod_Estados_Pago.estado_pago;
            txtFechaPago.Text = oFacturas.fechaPago.ToString();
            socios_mediciones      oSociosMediciones       = new socios_mediciones();
            SocioMedicionImplement oSocioMedicionImplement = new SocioMedicionImplement();

            oSociosMediciones    = oSocioMedicionImplement.Get((int)oFacturas.id_medicion);
            txtM3Consumidos.Text = oSociosMediciones.consumo.ToString();

            cargarGrillaConceptos();

            txtImporteTotal.Text = oFacturas.importeTotal.ToString();
            txtCobrado.Text      = oFacturas.cobrado.ToString();
        }
Esempio n. 11
0
        public ActionResult DeleteConfirmed(int id)
        {
            facturas facturas = db.facturas.Find(id);

            db.facturas.Remove(facturas);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        /// <summary>
        /// Consulta para detalles de una factura.
        /// </summary>
        /// <param name="factura">Factura para consultar sus detalles</param>
        /// <returns>Lista de detalles de una factura determinada</returns>
        public static ObservableCollection <detallesfactura> GetDetallesfactura(facturas factura)
        {
            var query = from df in _context.detallesfactura
                        where df.CodFactura == factura.IdFactura
                        select df;

            return(new ObservableCollection <detallesfactura>(query.ToList()));
        }
Esempio n. 13
0
 public ActionResult Edit([Bind(Include = "id,nombrePaciente,nombreEmpleado,fecha,monto")] facturas facturas)
 {
     if (ModelState.IsValid)
     {
         db.Entry(facturas).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(facturas));
 }
Esempio n. 14
0
        public ActionResult Create([Bind(Include = "id,nombrePaciente,nombreEmpleado,fecha,monto")] facturas facturas)
        {
            if (ModelState.IsValid)
            {
                db.facturas.Add(facturas);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(facturas));
        }
Esempio n. 15
0
        public async Task <IActionResult> PutFactura(int id, facturas facturas)
        {
            if (id != facturas.Id)
            {
                return(BadRequest());
            }
            _context.Entry(facturas).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(NoContent());
        }
Esempio n. 16
0
        public IHttpActionResult Getfacturas(int id)
        {
            facturas facturas = db.facturas.Find(id);

            if (facturas == null)
            {
                return(NotFound());
            }

            return(Ok(facturas));
        }
        public PanelVentasVM()
        {
            ListaCategorias     = BbddService.GetCategorias();
            ListaTallasTextiles = BbddService.GetTallasTextiles();
            ListaNumerosCalzado = BbddService.GetNumerosCalzado();
            ListaColores        = BbddService.GetColores();

            FacturaFinal             = new facturas();
            DetallesArticulosFactura = new ObservableCollection <detallesfactura>();

            CantidadElementosFactura = 0;
        }
Esempio n. 18
0
        public IHttpActionResult Postfacturas(facturas facturas)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.facturas.Add(facturas);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = facturas.id_Facturas }, facturas));
        }
Esempio n. 19
0
        private void CargarSeleccionFactura()
        {
            facturas          oFacturas          = new facturas();
            FacturasImplement oFacturasImplement = new FacturasImplement();
            DataGridViewRow   row = this.dgvFacturas.CurrentRow;

            if (row != null)
            {
                _idFactura = Convert.ToInt32(row.Cells[1].Value);
                this.dgvConceptos.DataSource = oFacturasImplement.GetConceptosByIdFactDT(_idFactura);
            }
        }
Esempio n. 20
0
 public ActionResult Edit([Bind(Include = "id,id_empleado,id_articulo,id_usuario,fecha_venta,monto_articulo,cantidad,comentario,estado")] facturas facturas)
 {
     if (ModelState.IsValid)
     {
         db.Entry(facturas).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.id_articulo = new SelectList(db.articulos, "id", "descripcion", facturas.id_articulo);
     ViewBag.id_empleado = new SelectList(db.empleados, "id", "nombre", facturas.id_empleado);
     ViewBag.id_usuario  = new SelectList(db.usuarios, "id", "nombre", facturas.id_usuario);
     return(View(facturas));
 }
Esempio n. 21
0
        public IHttpActionResult Deletefacturas(int id)
        {
            facturas facturas = db.facturas.Find(id);

            if (facturas == null)
            {
                return(NotFound());
            }

            db.facturas.Remove(facturas);
            db.SaveChanges();

            return(Ok(facturas));
        }
Esempio n. 22
0
        // GET: /Facturas/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            facturas facturas = db.facturas.Find(id);

            if (facturas == null)
            {
                return(HttpNotFound());
            }
            return(View(facturas));
        }
        void Facturas_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            if (e.SelectedItem == null)
            {
                return;
            }
            facturas ContextoActual = ((facturas)e.SelectedItem);
            int      index          = 0;

            foreach (var factura in facturas)
            {
                index++;
                if (factura == ContextoActual && index == Constantes.isEnableSelected && !factura.isSelected)
                {
                    factura.isSelected             = true;
                    ContextoActual.backgroundColor = Color.FromHex("4D4D4D");
                    ContextoActual.iconEstado      = "iSeleccionado";
                    ContextoActual.background      = "iFacturaSeleccionadaBackground";
                    Constantes.isEnableUnSelected  = Constantes.isEnableSelected;
                    if (facturas.Count() != Constantes.isEnableSelected)
                    {
                        Constantes.isEnableSelected = Constantes.isEnableSelected + 1;
                    }
                }
                else if (factura == ContextoActual && index == Constantes.isEnableUnSelected && factura.isSelected)
                {
                    factura.isSelected             = false;
                    ContextoActual.background      = "iFacturaBackground";
                    ContextoActual.iconEstado      = "iNoSeleccionado";
                    ContextoActual.backgroundColor = Color.FromHex("BFBFBF");
                    if (Constantes.isEnableSelected != 1)
                    {
                        Constantes.isEnableSelected = Constantes.isEnableUnSelected;
                    }
                    Constantes.isEnableUnSelected = Constantes.isEnableUnSelected - 1;
                }
            }

            if (facturas.Count(n => n.isSelected == true) > 0)
            {
                continuar.Source = "iContinuarB";
            }
            else
            {
                continuar.Source = "iContinuarA";
            }

            Facturas.SelectedItem = null;
        }
Esempio n. 24
0
        // GET: facturas/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            facturas facturas = db.facturas.Find(id);

            if (facturas == null)
            {
                return(HttpNotFound());
            }
            ViewBag.id_articulo = new SelectList(db.articulos, "id", "descripcion", facturas.id_articulo);
            ViewBag.id_empleado = new SelectList(db.empleados, "id", "nombre", facturas.id_empleado);
            ViewBag.id_usuario  = new SelectList(db.usuarios, "id", "nombre", facturas.id_usuario);
            return(View(facturas));
        }
        private facturas CrearFactura(ServicioLocal.Business.Comprobante comp, int idempresa, int idcliente)
        {
            TipoDocumento t = TipoDocumento.FacturaGeneral;

            if (comp.TipoDeComprobante.ToString() == "ingreso")
            {
                t = TipoDocumento.FacturaGeneral;
            }
            if (comp.TipoDeComprobante.ToString() == "egreso")
            {
                t = TipoDocumento.NotaCredito;
            }
            facturas fact = new facturas();

            fact.TipoDocumento   = t;
            fact.IdEmpresa       = new int?(idempresa);
            fact.Importe         = comp.Total;
            fact.IVA             = new decimal?(comp.IVA);
            fact.SubTotal        = new decimal?(comp.SubTotal);
            fact.Total           = new decimal?(comp.Total);
            fact.idcliente       = idcliente;
            fact.Fecha           = Convert.ToDateTime(comp.Fecha);
            fact.Folio           = comp.Folio;
            fact.Serie           = comp.Serie;
            fact.nProducto       = new int?(comp.Conceptos.Count <ServicioLocal.Business.ComprobanteConcepto>());
            fact.captura         = DateTime.Now;
            fact.Cancelado       = new short?(0);
            fact.Usuario         = "MOVIL";
            fact.LugarExpedicion = comp.LugarExpedicion;
            fact.Proyecto        = comp.Proyecto;
            if (comp.MetodoPago != null)
            {
                fact.Metodo = comp.MetodoPago.ToString();
            }
            fact.MonedaS   = comp.Moneda;
            fact.FormaPago = comp.FormaPago;
            if (comp.TipoDeComprobante.ToString() == "Egreso")
            {
                fact.NotaCredito = true;
            }
            return(fact);
        }
Esempio n. 26
0
        private void GuardarNuevoConvenio()
        {
            convenios         oConvenio          = new convenios();
            ConvenioImplement oConvenioImplement = new ConvenioImplement();

            //Cancelo el adeudado
            oConvenioImplement.CancelarAdeudado(_idSocio);

            oConvenio.id_socio                     = _idSocio;
            oConvenio.fecha_convenio               = dtpFechaConvenio.Value;
            oConvenio.importe_total                = _ImporteDeuda;
            oConvenio.valor_cuota                  = _ImporteCuota;
            oConvenio.cuotas                       = _CantidadCuotas;
            oConvenio.facturadas                   = _CantidadCuotasCanceladas;
            oConvenio.pendientes                   = _CantidadCuotas - _CantidadCuotasCanceladas;
            oConvenio.finalizado                   = (_CantidadCuotas == _CantidadCuotasCanceladas);
            oConvenio.iva_facturas                 = 0; //VER
            oConvenio.cuota_iva                    = 0; //VER
            oConvenio.convenio_judicial            = (chkConvenioAbogado.Checked);
            oConvenio.porcentaje_descuento_recargo = 0; //VER
            oConvenio.importe_descuento_recargo    = 0; //VER
            oConvenio.tipo_descuento_recargo       = -1;
            oConvenio.id_usuario                   = null;
            oConvenio.id_terminal                  = null;
            oConvenio.fecha_registro               = DateTime.Today;
            oConvenio.moratoria                    = _convenioMora;
            int idConvenio = oConvenioImplement.Save(oConvenio);

            FacturasImplement oFacturasImplement = new FacturasImplement();
            facturas          oFacturas          = new facturas();

            foreach (int i in _ListaFacturas)
            {
                oFacturas             = oFacturasImplement.Get(i);
                oFacturas.id_convenio = idConvenio;
                oFacturasImplement.Update(oFacturas);
            }

            DialogResult = DialogResult.OK;
            this.Close();
        }
Esempio n. 27
0
        private void Refacturar()
        {
            facturas          oFactura      = new facturas();
            FacturasImplement oFacImplement = new FacturasImplement();

            oFactura = oFacImplement.Get(_idFactura);
            facturas          oFacturaNew      = new facturas();
            FacturasImplement oFacImplementNew = new FacturasImplement();

            // oFacturaNew.
            foreach (DataRow row in _TablaGrilla.Rows)
            {
                //registro["id_detalle"] = oFacturaDetalle.id_detalle;
                //registro["id_concepto"] = oFacturaDetalle.id_concepto;
                //registro["id_factura"] = oFacturaDetalle.id_factura;
                //registro["id_orden"] = oFacturaDetalle.idOrden;
                //registro["id_Tipo"] = oFacturaDetalle.idTipo;
                //registro["concepto"] = oConcepto.concepto;
                //registro["importe"] = Math.Round(oFacturaDetalle.importe, 2);
            }
        }
Esempio n. 28
0
        private void CargarTotales()
        {
            int mostrarImpagas = 1;
            FacturasImplement oFacturasImplement = new FacturasImplement();

            decimal _recargo  = 0;
            decimal _srecargo = 0;

            CalculosFactura oCalculosFactura = new CalculosFactura();
            facturas        oFacturas        = new facturas();

            foreach (DataGridViewRow dr in dgvFacturas.Rows)
            {
                if (dr.Selected)
                {
                    int     id_factura  = (int)dr.Cells[1].Value;
                    decimal recargoTemp = oCalculosFactura.CalcularRecargo(id_factura);
                    decimal ivaRecTemp  = oCalculosFactura.CalcularIVARecargoNuevo(recargoTemp, _idSocio);
                    _recargo       = _recargo + recargoTemp + ivaRecTemp;
                    _srecargo      = _srecargo + (decimal)oFacturasImplement.Get(id_factura).importeTotal;
                    CanonMunicipal = CanonMunicipal + oCalculosFactura.ObtenerCanonMunicipal(id_factura);
                }
            }

            ImporteRecargos   = Math.Round(_recargo, 2);
            txtRecargo.Text   = ImporteRecargos.ToString();
            ImporteSinInteres = Math.Round(_srecargo, 2);
            txtSRecargo.Text  = ImporteSinInteres.ToString();

            TotalFacturasImporte = (decimal.Parse(txtSRecargo.Text) + decimal.Parse(txtRecargo.Text));
            txtTotalImporte.Text = TotalFacturasImporte.ToString();

            txtTotalFacturas.Text = oFacturasImplement.GetCountFacturasBySocio(_idSocio, mostrarImpagas).ToString();

            ConceptoImplement oConceptoImplement = new ConceptoImplement();

            txtRecargoDiario.Text = oConceptoImplement.Get(18).variable.ToString();

            txtSelec.Text = ObtenerCantSeleccionadas().ToString();
        }
        //Muestra el diálogo para terminar la venta y devuelve el resultado de este.
        internal bool SellExecuted()
        {
            TerminarVentaDialog terminarVenta = new TerminarVentaDialog(FacturaFinal, DetallesArticulosFactura)
            {
                WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen,
                ShowInTaskbar         = false
            };

            //Al terminar una venta se prepara una factura nueva para realizar la siguiente.
            if (terminarVenta.ShowDialog() == true)
            {
                FacturaFinal             = new facturas();
                DetallesArticulosFactura = new ObservableCollection <detallesfactura>();
                CantidadElementosFactura = 0;
                BbddService.SaveChanges();
                return(true);
            }
            else
            {
                return(false);
            }
        }
 /// <summary>
 /// Añade una factura a la base de datos
 /// </summary>
 /// <param name="facturaAdd">Objeto factura a añadir a la base de datos</param>
 /// <returns>Devuelve el número de cambios realizados en la base de datos</returns>
 public static int AddFactura(facturas facturaAdd)
 {
     _context.facturas.Add(facturaAdd);
     return(SaveChanges());
 }
Esempio n. 31
0
        public ActionResult NuevaReserva([Bind(Include = "id_rec,fecha,hora")] nuevaReservaSocioViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Recuperamos el socio
                string id_soc = Session["UserID"].ToString();
                socios db_socio = db.socios.Find(id_soc);

                DateTime fecha_baja = db_socio.f_baja ?? default(DateTime);
                if (DateTime.Compare(fecha_baja, DateTime.Today) < 0)
                {
                    addError("No puede realizar la reserva, su cuota ha expirado o aún no ha pagado su primera cuota de socio");
                }

                if (DateTime.Compare(fecha_baja, model.fecha) < 0)
                {
                    addError("No puede realizar la reserva, su cuota expira antes de la fecha de reserva");
                }

                // Recuperamos el recurso y comprobamos que existe y esta disponible
                recursos db_recurso = db.recursos.Find(model.id_rec);
                if (db_recurso == null)
                {
                    addError("El recurso no existe");
                }
                if (db_recurso.disponible == false)
                {
                    addError("El recurso seleccionado no está disponible");
                }
                reservas reserva = new reservas();
                reserva.fecha = model.fecha;
                reserva.hora = new DateTime(reserva.fecha.Year, reserva.fecha.Month, reserva.fecha.Day, model.hora.Hour, model.hora.Minute, model.hora.Second);
                reserva.pagado = false;
                reserva.precio = 3;

                // Comprobacion que la fecha y/u hora no son anteriores a hoy
                if (DateTime.Compare(reserva.fecha, DateTime.Today) < 0)
                {
                    addError("La fecha de la reserva no puede ser anterior a hoy");
                }
                if (DateTime.Compare(reserva.hora, DateTime.Now) < 0)
                {
                    addError("La hora de la reserva no puede ser anterior a ahora");
                }

                // Comprobacion que el socio no ha realizado reserva la fecha seleccionada
                reservas res_soc = db.reservas.Where(x => x.socios.id == id_soc && x.fecha == model.fecha).FirstOrDefault();
                if (res_soc != null)
                {
                    addError("Ya has hecho reserva en esta fecha (solo se te permite una reserva por dia)");
                }

                // Comprobación que el recurso se encuentra libre
                reservas existe_reserva = db.reservas.Where(x => x.recursos.id == model.id_rec && x.hora == reserva.hora).FirstOrDefault();
                if (existe_reserva != null)
                {
                    addError("El recurso se encuentra ocupado en esa fecha y hora");
                }

                if (errors != null)
                {
                    saveErrors();
                    return RedirectToAction("NuevaReserva", "Socio");
                }

                // Guardamos los datos en la BBDD
                reserva.socios = db_socio;
                reserva.recursos = db_recurso;
                facturas factura = new facturas();
                factura.xml_factura = "";
                reserva.facturas = factura;
                db.reservas.Add(reserva);
                factura.id_reserva = reserva.id;
                db.facturas.Add(factura);
                db.SaveChanges();
                factura.xml_factura = Tools.generarXmlFactura(factura, reserva);
                db.Entry(factura).State = EntityState.Modified;
                db.SaveChanges();

                // Envio de email al socio con los datos de la reserva
                string subject = "Reserva realizada en Gestenis";
                string body = "<h1>Esto es un mensaje automático del sistema</h1>"
                    + "<p>" + db_socio.nombre + " has realizado correctamente una reserva en GesTenis.</p>"
                    + "<p>Estos son los datos de su reserva:</p>"
                    + "<p>Nombre del recurso: " + reserva.recursos.nombre_rec + "</p>"
                    + "<p>Día: " + reserva.fecha.ToString("dd/MM/yyyy") + "</p>"
                    + "<p>Hora: " + reserva.hora.ToString("HH:00") + "</p>"
                    + "<p>Una vez realizado el pago en conserjería, podrá visualizar la factura en su área de usuario.</p>";
                Tools.sendEmail(db_socio, subject, body);

                saveMessage("Reserva realizada con éxito");
                return RedirectToAction("MisReservas");
            }

            //ViewBag.id = new SelectList(db.facturas, "id_reserva", "xml_factura");
            return View(model);
        }
Esempio n. 32
0
        /// <summary>
        /// Genera el xml con los datos para rellenar la factura
        /// </summary>
        /// <param name="factura">Instancia de facturas</param>
        /// <param name="reserva">Instancia de reservas</param>
        /// <returns>xml codificado en UTF8 para rellenar formulario en pdf</returns>
        public static string generarXmlFactura(facturas factura, reservas reserva)
        {
            // Transformamos los campos que pueden dar problemas de codificacion a utf8 para no tener problemas con el pdf
            byte[] bytes = Encoding.Default.GetBytes(reserva.socios.nombre);
            string nombre = Encoding.UTF8.GetString(bytes);

            bytes = Encoding.Default.GetBytes(reserva.socios.apellidos);
            string apellidos = Encoding.UTF8.GetString(bytes);

            bytes = Encoding.Default.GetBytes(reserva.socios.direccion1);
            string direccion1 = Encoding.UTF8.GetString(bytes);

            bytes = Encoding.Default.GetBytes(reserva.socios.direccion2);
            string direccion2 = Encoding.UTF8.GetString(bytes);

            bytes = Encoding.Default.GetBytes(reserva.recursos.nombre_rec);
            string nombre_rec = Encoding.UTF8.GetString(bytes);

            // Generamos el xml con formato UTF8
            string ret = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                        + "<xfdf xmlns=\"http://ns.adobe.com/xfdf/\" xml:space=\"preserve\">"
                            + "<f href=\"c:/Google Drive/PFC/factura.pdf\" />"
                            + "<fields>"
                                + "<field name = \"n_factura\">"
                                + "<value>" + factura.id.ToString() + "</value>"
                                + "</field>"
                                + "<field name = \"f_factura\">"
                                + "<value>" + DateTime.Today.ToString("dd/MM/yyyy") + "</value>"
                                + "</field>"
                                + "<field name = \"id_socio\">"
                                + "<value>" + reserva.socios.id + "</value>"
                                + "</field>"
                                + "<field name = \"nombre\">"
                                + "<value>" + nombre + "  " + apellidos + "</value>"
                                + "</field>"
                                + "<field name = \"nif\">"
                                + "<value>" + reserva.socios.nif + "</value>"
                                + "</field>"
                                + "<field name = \"direccion1\">"
                                + "<value>" + direccion1 + "</value>"
                                + "</field>"
                                + "<field name = \"direccion2\">"
                                + "<value>" + direccion2 + "</value>"
                                + "</field>"
                                + "<field name = \"nombre_recurso\">"
                                + "<value>" + nombre_rec + "</value>"
                                + "</field>"
                                + "<field name = \"fecha\">"
                                + "<value>" + reserva.fecha.ToString("dd/MM/yyyy") + "</value>"
                                + "</field>"
                                + "<field name = \"hora\">"
                                + "<value>" + reserva.hora.ToString("HH:00") + "</value>"
                                + "</field>"
                                + "<field name = \"precio\">"
                                + "<value>" + reserva.precio.ToString() + "</value>"
                                + "</field>"
                                + "<field name = \"precio_total\">"
                                + "<value>" + reserva.precio.ToString() + "</value>"
                                + "</field>"
                            + "</fields>"
                        + "</xfdf>";

            return ret;
        }
        public facturas_detalles getDetalle(int idSocio, decimal cargoFijo, decimal abono, decimal valorM3, cod_conceptos oConcepto, facturas oFactura, conceptos_particulares oConceptoParticular)
        {
            SocioMedicionImplement oSocioMedicionImpl = new SocioMedicionImplement();
                                    socios_mediciones oSocioMedicion = new socios_mediciones();
                                    if (oFactura.id_medicion.Value!=0)
                                        oSocioMedicion = oSocioMedicionImpl.Get(oFactura.id_medicion.Value);
                                    acciones oAccion = new acciones();
                                    AccionImplement oAccionesImplement = new AccionImplement();

                                    facturas_detalles oDetalle = new facturas_detalles();
                                    oDetalle.idOrden = oConcepto.orden_concepto;
                                    oDetalle.id_concepto = oConcepto.id_concepto;
                                    oDetalle.idTipo = 0;
                                    oDetalle.id_factura = oFactura.id_factura;

                                    ConvenioImplement oConvenioImplement = new ConvenioImplement();
                                    switch (oConcepto.id_formula)
                                    {
                                        case 0:

                                            oDetalle.importe = cargoFijo;

                                            break;
                                        case 1:

                                            if (cargoFijo> 0)
                                            {
                                                oDetalle.importe = cargoFijo * oConcepto.variable.Value;
                                            }
                                            else
                                            {
                                                if (oFactura.id_medicion.Value != 0)
                                                {//revisar
                                                    if ((oSocioMedicion.consumo - abono) <= 0)
                                                    {
                                                        // Si no hubo consumo excedente ...
                                                        oDetalle.importe = abono * valorM3 * oConcepto.variable.Value;
                                                    }
                                                    else
                                                    {
                                                        //  Si hubo consumo excedente ...
                                                        decimal uno = (abono * valorM3);
                                                        decimal dos = ((oSocioMedicion.consumo.Value - abono) * valorM3);
                                                        oDetalle.importe = (uno + dos) * oConcepto.variable.Value;
                                                    }
                                                }
                                                else
                                                {
                                                    //Por que no tiene medidor usa el abono
                                                    oDetalle.importe = abono * valorM3 * oConcepto.variable.Value;
                                                }
                                            }
                                            break;
                                        case 2:
                                            // Consumo excedente por ValorM3
                                            // (Facturas.Consumo - Socios.Tarifa->Abono) *
                                            // Socios.Tarifa->ValorM3

                                              if (oFactura.id_medicion.Value != 0)
                                                {
                                                    oSocioMedicion = oSocioMedicionImpl.Get(oFactura.id_medicion.Value);
                                                if ((oSocioMedicion.consumo.Value - abono) > 0)
                                                {
                                                    //        ' Calcula sólo sobre el consumo excedente
                                                    oDetalle.importe = (oSocioMedicion.consumo.Value - abono) * valorM3;

                                                }
                                                else
                                                {
                                                    //  No hubo consumo excedente
                                                    oDetalle.importe = 0;
                                                }
                                                }else
                                                  oDetalle.importe = 0;

                                            break;
                                        case 3:
                                            //  ' Abono por ValorM3
                                            //' Socios.Tarifa->Abono * Socios.Tarifa->ValorM3
                                            oDetalle.importe = abono * valorM3;
                                            break;
                                        case 4:

                                            //' Consumo por ValorM3 por Variable
                                            //' Facturas.Consumo * Socios.Tarifa->ValorM3 * Conceptos.Variable
                                            if (oFactura.id_medicion.Value != 0)
                                            oDetalle.importe = oSocioMedicion.consumo.Value * valorM3 * oConcepto.variable.Value;
                                            else
                                                oDetalle.importe = 0;
                                            break;

                                        case 5:

                                            oAccion = oAccionesImplement.GetByIdSocio(idSocio);
                                            if (oAccion != null)
                                            {
                                                if (oAccion.cuotas > oAccion.facturadas)
                                                {
                                                    oAccion.facturadas = oAccion.facturadas + 1;
                                                    oAccionesImplement.Update(oAccion);
                                                    oDetalle.importe = oAccion.valor_cuota;
                                                }
                                                else { oDetalle.importe = 0; }
                                            }
                                            else { oDetalle.importe = 0; }

                                            break;
                                        case 6:
                                            // Variable por Cuota Acciones
                                            // Acciones.ValorCuota * Conceptos.Variable
                                            // Buscar Acciones
                                            oAccion = oAccionesImplement.GetByIdSocio(idSocio);
                                            // Si encuentra un registro
                                            if (oAccion != null)
                                            {
                                                // Pregunta si no está finalizado
                                                if (oAccion.cuotas > oAccion.facturadas)
                                                {
                                                    //Si no ha finalizado se factura una cuota más
                                                    oAccion.facturadas = oAccion.facturadas + 1;
                                                    oAccionesImplement.Update(oAccion);
                                                    oDetalle.importe = oAccion.valor_cuota * oConcepto.variable.Value;
                                                }
                                                else { oDetalle.importe = 0; }
                                            }
                                            else { oDetalle.importe = 0; }
                                            break;
                                        case 7:

                                            // Cuota Convenio de pago
                                            // Convenios.ValorCuota
                                            decimal ImporteConvenios = 0;
                                            // Inicializa el campo en cero
                                            oDetalle.importe = 0;
                                            // Buscar Convenio
                                            IList ListConvenios = oConvenioImplement.GetAllBySocio(idSocio);
                                            foreach (convenios oConvenio in ListConvenios)
                                            {
                                                //  Verifica que no se trate de un convenio judicial
                                                if (!oConvenio.convenio_judicial.Value)
                                                {
                                                    //Pregunta si no está finalizado
                                                    if (oConvenio.cuotas > oConvenio.facturadas)
                                                    {
                                                        //Si no ha finalizado se factura una cuota más
                                                        oConvenio.facturadas = oConvenio.facturadas + 1;
                                                        if (oConvenio.cuotas == oConvenio.facturadas) { oConvenio.finalizado = true; }
                                                        oConvenioImplement.Update(oConvenio);
                                                        ImporteConvenios = ImporteConvenios + oConvenio.valor_cuota;
                                                    }
                                                }
                                            }
                                            oDetalle.importe = ImporteConvenios;
                                            break;
                                        case 8:
                                            // Variable por Cuota Convenio
                                            // Convenios.ValorCuota * Conceptos.Variable
                                            // Buscar Convenio
                                            IList ListaConvenios = oConvenioImplement.GetAllBySocio(idSocio);
                                            //Si encuentra un registro
                                            oDetalle.importe = 0;
                                            foreach (convenios oConvenio in ListaConvenios)
                                            {
                                                //  Verifica que no se trate de un convenio judicial
                                                if (!oConvenio.convenio_judicial.Value)
                                                {
                                                    //Pregunta si no está finalizado
                                                    if (oConvenio.cuotas > oConvenio.facturadas)
                                                    {
                                                        oConvenio.facturadas = oConvenio.facturadas + 1;
                                                        oConvenioImplement.Update(oConvenio);
                                                        oDetalle.importe = oConvenio.valor_cuota * oConcepto.variable.Value;
                                                    }
                                                    else
                                                    {
                                                        oDetalle.importe = 0;
                                                    }
                                                }
                                                else { oDetalle.importe = 0; }
                                            }

                                            break;
                                        case 9:
                                            //Importe fijo según concepto
                                            // Conceptos.Variable
                                            oDetalle.importe = oConcepto.variable.Value;
                                            break;
                                        case 10:
                                            // Importe variable que se calcula en el momento
                                            // (NO IMPLEMENTADO)
                                            break;
                                        case 11:
                                            // Importe fijo según Conceptos Particulares
                                            // ConceptosPartic.Importe
                                            oDetalle.importe = oConceptoParticular.importe;
                                            break;
                                    }

                                    return oDetalle;
        }