Esempio n. 1
0
        public async Task <ActionResult> Alta(long entradaId, long formaPagoId)
        {
            var entrada = await _helperEntrada.ObtenerEntrada(entradaId);

            var evento = entrada.Evento;

            var factura = new FacturaDto()
            {
                ClienteId   = entrada.ClienteId.Value,
                EmpresaId   = evento.EmpresaId,
                FormaPagoId = formaPagoId,
                Fecha       = DateTime.Today,
                TipoFactura = Dominio.Enum.TipoFactura.B,
                Total       = entrada.Precio
            };

            long facturaId = await _facturaServicio.InsertarDevuelveId(factura);

            var facturaDetalle = new FacturaDetalleDto()
            {
                Cantidad  = 1,
                EntradaId = entradaId,
                FacturaId = facturaId,
                SubTotal  = entrada.Precio
            };

            await _facturadetalleServicio.Insertar(facturaDetalle);

            return(RedirectToAction("Imprimir", "FacturaPDF", new { @id = facturaId }));
        }
Esempio n. 2
0
        public async Task <IActionResult> AltaFacturaRedirect(long clienteId, long formaPagoId, long entradaId, int cantidad, long[] entradas)
        {
            var entrada = await _helperEntrada.ObtenerEntrada(entradaId);

            var evento  = entrada.Evento;
            var factura = new FacturaDto()
            {
                ClienteId   = clienteId,
                EmpresaId   = evento.EmpresaId,
                FormaPagoId = formaPagoId,
                Fecha       = DateTime.Now,
                TipoFactura = Dominio.Enum.TipoFactura.B,
                Total       = cantidad * entrada.Precio
            };
            long facturaId = await _facturaServicio.InsertarDevuelveId(factura);

            var facturaDetalle = new FacturaDetalleDto()
            {
                Cantidad  = cantidad,
                EntradaId = entrada.Id,
                FacturaId = facturaId,
                SubTotal  = cantidad * entrada.Precio
            };
            await _facturadetalleServicio.Insertar(facturaDetalle);


            return(RedirectToAction("CompraExitosa", new { facturaId = facturaId, entradas }));
        }
Esempio n. 3
0
        public async Task <ActionResult <FacturaDto> > CreateEdit([FromBody] FacturaDto factura)
        {
            if (factura.IdFactura == 0)
            {
                await _facturaRepository.CreateFactura(factura);

                if (await _facturaRepository.SaveAllAsync())
                {
                    return(factura);
                }
                else
                {
                    return(BadRequest("Unable to add factura"));
                }
            }

            else
            {
                var facturaFromDB = await _facturaRepository.GetFacturaAsync(factura.IdFactura);

                _mapper.Map(factura, facturaFromDB);

                _facturaRepository.UpdateFactura(facturaFromDB);

                if (await _facturaRepository.SaveAllAsync())
                {
                    return(NoContent());
                }

                else
                {
                    return(BadRequest("Unable to update factura"));
                }
            }
        }
Esempio n. 4
0
        private int GuardarComprobante(FacturaDto facturaDto, int sucursalId, int clienteId)
        {
            var facturaInternaEmitida = new FacturaEmitida
            {
                ComplementosPago = new List <ComplementoPago>(),
                EmisorId         = sucursalId,
                ReceptorId       = clienteId,
                Fecha            = facturaDto.Fecha,
                Folio            = facturaDto.Folio.ToString(),
                FormaPago        = facturaDto.FormaPago,
                MetodoPago       = facturaDto.MetodoPago,
                Moneda           = facturaDto.Moneda,
                Serie            = facturaDto.Serie,
                Subtotal         = facturaDto.SubtotalCalculado,
                TipoCambio       = facturaDto.TipoCambio,
                TipoComprobante  = facturaDto.TipoComprobante,
                Total            = facturaDto.TotalCalculado,
                Uuid             = facturaDto.Uuid,
                ArchivoFisicoXml = facturaDto.Xml
            };

            _db.FacturasEmitidas.Add(facturaInternaEmitida);
            _db.SaveChanges();

            return(facturaInternaEmitida.Id);
        }
Esempio n. 5
0
 private void dgvgrillaFactura_RowEnter(object sender, DataGridViewCellEventArgs e)
 {
     if (dgvGrillaFactura.RowCount > 0)
     {
         _facturaSeleccionada = (FacturaDto)dgvGrillaFactura.Rows[e.RowIndex].DataBoundItem;
     }
 }
        public ActionResult GenerarFactura(FacturaDto model)
        {
            if (ModelState.IsValid)
            {
            }

            //ProcesoFacturacion.CrearFactura();
            return(View("Index", model));
        }
Esempio n. 7
0
        private void dgvGrilla_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvGrilla.RowCount > 0)
            {
                _facturaSeleccionada = (FacturaDto)dgvGrilla.Rows[e.RowIndex].DataBoundItem;

                txtTotal.Text = (_facturaSeleccionada.Total - _facturaSeleccionada.TotalAbonado).ToString("C2");
            }
        }
Esempio n. 8
0
        public FacturaDto GenerarFactura(Sucursal sucursal, Cliente cliente)
        {
            var facturaDto = new FacturaDto
            {
                Fecha           = DateTime.Now,
                Folio           = sucursal.Folio,
                Moneda          = c_Moneda.XXX,
                Serie           = sucursal.Serie,
                TipoComprobante = c_TipoDeComprobante.P,
                ConceptosDto    = new List <ConceptoDto>(),
                EnvioEmailDto   = new EnvioEmailDto
                {
                    CuerpoCorreo     = "A continuación su complemento de pago, muchas gracias por su preferencia",
                    EmailEmisor      = sucursal.MailEmisor,
                    EmailsReceptores = new List <String> {
                        sucursal.MailConfirmacion, cliente.Email
                    },
                    EncabezadoCorreo = "Complemento de Pago",
                    NombreSucursal   = sucursal.Nombre
                },
                EmisorDto = new EmisorDto
                {
                    Cer             = sucursal.Cer,
                    Key             = sucursal.Key,
                    LugarExpedicion = sucursal.CodigoPostal,
                    PasswordKey     = sucursal.PasswordKey,
                    RazonSocial     = sucursal.RazonSocial,
                    RegimenFiscal   = sucursal.RegimenFiscal,
                    Rfc             = sucursal.Rfc,
                    DobleValidacion = true,
                    Logo            = sucursal.Logo,
                    Nombre          = sucursal.Nombre
                },
                ReceptorDto = new ReceptorDto
                {
                    RazonSocial      = cliente.RazonSocial,
                    ResidenciaFiscal = cliente.Pais,
                    Rfc     = cliente.Rfc,
                    UsoCfdi = c_UsoCFDI.PorDefinir,
                },
                Timbrado = true
            };

            var conceptoDto = new ConceptoDto
            {
                Cantidad = 1,
                ClaveProductoServicio = "84111506",
                Descripcion           = "Pago",
                PrecioUnitario        = 0,
                Total             = 0,
                ClaveUnidadMedida = "ACT"
            };

            facturaDto.ConceptosDto.Add(conceptoDto);

            return(facturaDto);
        }
        public ActionResult Index()
        {
            var model = new FacturaDto();

            model.CabeceraDto = new CabeceraDto();
            model.DetalleDto  = new DetalleDto();
            return(View("EjemploScaffolding", model.CabeceraDto));
            //return View();
        }
Esempio n. 10
0
 public void CfdisRelacionados(ref FacturaDto facturaDto, ComplementoPago complementoPago)
 {
     if (complementoPago.CfdiRelacionadoId != null && complementoPago.TipoRelacion != null)
     {
         facturaDto.TipoRelacion      = complementoPago.TipoRelacion;
         facturaDto.CfdisRelacionados = new List <string> {
             complementoPago.CfdiRelacionado.Uuid
         };
     }
 }
Esempio n. 11
0
        public string Facturas(string Factura, string codFact)
        {
            Facturas   obj     = new Facturas();
            FacturaDto objFact = new FacturaDto();

            objFact = obj.getListSharepoint(Factura, codFact); //"3000001247"
            var xml = Utilidades.XML.GetXMLFromObject(objFact);

            return(xml);
        }
Esempio n. 12
0
        public _Cliente_CtaCte_EmisionFactura(FacturaDto factura, decimal total, decimal Efectivo, decimal Vuelto)
        {
            InitializeComponent();

            lblCodigo.Text   = factura.Numero.ToString();
            lblFecha.Text    = factura.Fecha.ToString();
            lblTotal.Text    = total.ToString("C2");
            lblCliente.Text  = factura.CLienteApynom.ToString();
            lblEfectivo.Text = Efectivo.ToString("C2");
            lblVuelto.Text   = Vuelto.ToString("C2");
        }
Esempio n. 13
0
        private void ActualizarDatosCliente(string cadenaBuscar)
        {
            dgvGrillaClientes.DataSource = _ClienteServicio.ObtenerPorFiltro(cadenaBuscar).ToList();

            FormatearGrillaClientes(dgvGrillaClientes);

            if (dgvGrillaClientes.RowCount == 0)
            {
                _clienteSeleccionado = null;

                _facturaSeleccionada = null;
            }
        }
Esempio n. 14
0
 public IHttpActionResult AfterInsert(FacturaDto data)
 {
     try
     {
         Log.Debug("FacturaController.AfterInsert: Inicio");
         // Desarrollo de lógica de apertura
         LogData(data);
         // Fin de lógica de apertura
         Log.Debug("FacturaController.AfterInsert: Fin");
         return(Ok());
     }
     catch (Exception e)
     {
         Log.Fatal("FacturaController.AfterInsert", e);
         return(InternalServerError());
     };
 }
Esempio n. 15
0
        public FacturaDto Agregar(FacturaDto facturaDto)
        {
            var Factura = new Factura()
            {
                Numero         = NumeroFactura(),
                FechaOperacion = facturaDto.FechaOperacion,
                SubTotal       = facturaDto.SubTotal,
                Total          = facturaDto.Total,
                Descuento      = facturaDto.Descuento
            };

            _facturaRepositorio.Agregar(Factura);
            _facturaRepositorio.Guardar();

            facturaDto.Id = Factura.Id;
            return(facturaDto);
        }
        public void PagoCuota(CuotaDto cuota, FacturaDto factura, ClienteDto cliente)
        {
            var Cuota = new CuotaDto()
            {
                CuotaVigente     = cuota.CuotaVigente,
                CuotaVencimiento = cuota.CuotaVigente.AddMonths(cuota.Cantidad),
                Cantidad         = cuota.Cantidad,
                Estado           = Estado.Vigente,
                ClienteId        = cliente.Id
            };

            var Factura = new FacturaDto()
            {
                FechaOperacion = DateTime.Now,
                SubTotal       = factura.SubTotal,
                Total          = factura.SubTotal
            };

            var cuotaId = _cuotaServicio.CuotaVigente(Cuota);

            var facturaId = _facturaServicio.Agregar(Factura);

            using (var context = new Context())
            {
                context.Pago_Factura.Add(new Pago_Factura()
                {
                    FacturaId  = facturaId.Id,
                    CuotaId    = cuotaId.Id,
                    ClienteId  = SessionActiva.ClienteId,
                    EmpleadoId = SessionActiva.EmpleadoId
                });
                context.SaveChanges();
            }

            var movimiento = new MovimientoDto()
            {
                Descripcion        = "Pago Cuota",
                EmpleadoId         = SessionActiva.EmpleadoId,
                FechaActualizacion = DateTime.Now,
                TipoMovimiento     = TipoMovimiento.Ingreso,
                Monto = factura.SubTotal
            };

            _movimientoServicio.NuevoMovimiento(movimiento);
        }
Esempio n. 17
0
        public Abonar_CtaCte(FacturaDto factura, long ClienteId)
        {
            InitializeComponent();

            _movimientoServicio    = new MovimientoServicio();
            _facturServicio        = new FacturaServicio();
            _clienteServicio       = new ClienteServicio();
            _clienteId             = ClienteId;
            _factura               = factura;
            RealizoAlgunaOperacion = false;
            lblTotal.Text          = (_factura.Total - _factura.TotalAbonado).ToString("C2");

            txtEfectivo.KeyPress += Validacion.NoInyeccion;
            txtEfectivo.KeyPress += Validacion.NoSimbolos;
            txtEfectivo.KeyPress += Validacion.NoLetras;

            txtEfectivo.Enter += txt_Enter;
            txtEfectivo.Leave += txt_Leave;
        }
Esempio n. 18
0
        public async Task <IActionResult> SalvareFactura()
        {
            using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                var        content    = reader.ReadToEndAsync().Result;
                FacturaDto facturaDto = JsonConvert.DeserializeObject <FacturaDto>(content);
                bool       status     = false;
                if (ModelState.IsValid)
                {
                    Factura fc = new Factura
                    {
                        IdLocatie    = facturaDto.IdLocatie,
                        NumarFactura = facturaDto.NumarFactura,
                        DataFactura  = facturaDto.DataFactura,
                        NumeClient   = facturaDto.NumeClient
                    };
                    foreach (var i in facturaDto.Produse)
                    {
                        fc.DetaliiFactura.Add(new DetaliiFactura
                        {
                            IdLocatie  = fc.IdLocatie,
                            NumeProdus = i.NumeProdus,
                            Cantitate  = i.Cantitate,
                            PretUnitar = i.PretUnitar,
                            Valoare    = i.Valoare,
                            Factura    = fc
                        });
                    }
                    _facturiRepository.AdaugaFactura(fc);
                    await _facturiRepository.SaveAllAsync();

                    status = true;
                }
                else
                {
                    status = false;
                }

                return(Json(new { success = status }));
            }
        }
        public async Task <FacturaDto> CreateFactura(FacturaDto factura)
        {
            Factura newFactura = new Factura
            {
                IdLocatie      = factura.IdLocatie,
                NumarFactura   = factura.NumarFactura,
                DataFactura    = factura.DataFactura,
                NumeClient     = factura.NumeClient,
                DetaliiFactura = factura.DetaliiFactura
            };

            try { await _context.Facturi.AddAsync(_mapper.Map <FacturaDto, Factura>(factura)); }
            catch (Exception ex)
            {
                throw new Exception($"{nameof(factura)} could not be saved: {ex.Message}");
            }

            FacturaDto facturaToReturn = _mapper.Map <Factura, FacturaDto>(newFactura);

            return(facturaToReturn);
        }
Esempio n. 20
0
        private void ActualizarDatosFactura(long?clienteId, string cadenaBuscar)
        {
            if (_clienteSeleccionado != null)
            {
                dgvGrillaFactura.DataSource = _facturaServicio.ObtenerFacturasPorCliente(clienteId, cadenaBuscar).ToList();

                FormatearGrillaFacturas(dgvGrillaFactura);

                if (dgvGrillaFactura.RowCount == 0)
                {
                    _facturaSeleccionada = null;
                }
            }

            else
            {
                dgvGrillaFactura.DataSource = _facturaServicio.ObtenerFacturasPorCliente(null, cadenaBuscar).ToList();

                FormatearGrillaFacturas(dgvGrillaFactura);
            }
        }
Esempio n. 21
0
        public void MandarMailFacturaCliente(string clienteMail, FacturaDto factura)
        {
            SmtpClient Client = new SmtpClient()
            {
                Host                  = "smtp.gmail.com",
                Port                  = 587,
                EnableSsl             = true,
                DeliveryMethod        = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials           = new NetworkCredential()
                {
                    UserName = "",
                    Password = ""
                }
            };

            MailAddress FromEmail = new MailAddress("", "E-Commerce");

            MailAddress ToEmail = new MailAddress(clienteMail, "Someone");

            MailMessage Message = new MailMessage()
            {
                From    = FromEmail,
                Subject = "Cuenta de Usuario",

                Body = $"<table style = 'max-width: 600px; padding: 10px; margin:0 auto; border-collapse: collapse;'>" +
                       $"  <tr>" +
                       $"    <td style = 'background-color: #34495e; text-align: center; padding: 0'>" +
                       $"      <ul style = 'font-size: 15px;  margin: 10px 0'>" +
                       $"         </ul>" +
                       $"   </td >" +
                       $"</tr>" +
                       $"</table>"
            };

            Message.To.Add(ToEmail);

            Client.Send(Message);
        }
Esempio n. 22
0
        private void LogData(FacturaDto data)
        {
            Log.Info("Detalle de la factura");
            Log.Info(data.ComandaId);
            Log.Info(data.Fecha);
            Log.Info(data.Hora);
            Log.Info(data.Estado);
            Log.Info(data.Total);
            Log.Info("Detalle de renglones");
            if (data.Detalle != null)
            {
                foreach (var renglon in data.Detalle)
                {
                    string line = $"{renglon.NumeroRenglon};{renglon.CodigoArticulo}; ;{renglon.Cantidad}; ;{renglon.Importe}";
                    Log.Info(line);
                }
            }
            Log.Info("Json Facturación");
            var json = new JavaScriptSerializer().Serialize(data);

            Log.Info(json);
        }
Esempio n. 23
0
        private void cmbEstadoFactura_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbEstadoFactura.SelectedItem.ToString() == "Pagadas")
            {
                var ctaCteId = _cuentaCorrienteServicio.ObtenerCuentaCorrientePorClienteIdSinFiltro(_cliente.Id).Id;

                dgvGrilla.DataSource = _facturaServicio.ObtenerFacturasPagadasCtaCte(string.Empty, ctaCteId, EstadoFactura.Pagada).ToList();

                FormatearGrilla(dgvGrilla);

                txtBuscar.Clear();
            }

            if (cmbEstadoFactura.SelectedItem.ToString() == "Impagadas")
            {
                var ctaCteId = _cuentaCorrienteServicio.ObtenerCuentaCorrientePorClienteIdSinFiltro(_cliente.Id).Id;

                dgvGrilla.DataSource = _facturaServicio.ObtenerFacturasImpagadasCtaCte(string.Empty, ctaCteId, EstadoFactura.Impagada, EstadoFactura.PagadaParcial).ToList();

                FormatearGrilla(dgvGrilla);

                txtBuscar.Clear();
            }

            if (cmbEstadoFactura.SelectedItem.ToString() == "Todas")
            {
                ActualizarDatos(string.Empty);

                txtBuscar.Clear();
            }

            if (dgvGrilla.RowCount == 0)
            {
                _facturaSeleccionada = null;

                txtTotal.Text = 0m.ToString("C2");
            }
        }
Esempio n. 24
0
        public FacturaDto ObtenerUltimaFacturaEmitida()
        {
            using (var context = new ModeloGastronomiaContainer())
            {
                var numero = context.Facturas.Max(x => x.Numero);

                var factura = context.Facturas.FirstOrDefault(x => x.Numero == numero);

                var facturaDto = new FacturaDto()
                {
                    Id            = factura.Id,
                    Numero        = factura.Numero,
                    Fecha         = factura.Fecha,
                    Total         = factura.Total,
                    TotalAbonado  = factura.TotalAbonado,
                    ClienteId     = factura.ClienteId,
                    EmpleadoId    = factura.EmpleadoId,
                    CLienteApynom = string.Concat(factura.Cliente.Apellido, " ", factura.Cliente.Nombre)
                };

                return(facturaDto);
            }
        }
 public ActionResult PagoFactura(CuotaDto cuota, FacturaDto factura, ClienteDto cliente)
 {
     if (_cajaServicio.VerSiCajaEstaAbierta())
     {
         if (_facturaServicio.ValidarMesPago(cuota.CuotaVigente, SessionActiva.ClienteId) == false)
         {
             _facturaServicio.PagoCuota(cuota, factura, cliente);
             return(RedirectToAction("CuotasCliente", "Cuota"));
         }
         else
         {
             TempData["Validacion"] = "Puede Pasar";
             ModelState.AddModelError("Error", "El cliente ya posee la factura");
             return(RedirectToAction("CuotasCliente", "Cuota"));
         }
     }
     else
     {
         TempData["error"] = "error";
         return(RedirectToAction("Perfil", "Cliente"));
     }
     //_pagoFacturaServicio.PagoFactura(PagoFactura);
 }
Esempio n. 26
0
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                if (nudTotal.Value > _factura.Total)
                {
                    if (MessageBox.Show("El total que esta por abonar es superior al monto a pagar. ¿Desea continuar?",
                                        "Atencion",
                                        MessageBoxButtons.OKCancel,
                                        MessageBoxIcon.Question)
                        == DialogResult.Cancel)
                    {
                        return;
                    }
                }
                else if (nudTotal.Value < _factura.Total)
                {
                    MessageBox.Show("El total que esta por abonar es inferior al monto a pagar.",
                                    "Atencion",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);

                    return;
                }

                var facturaNueva = new FacturaDto();

                if (_vieneDeVentas)
                {
                    facturaNueva.EmpleadoId      = _factura.Vendedor.Id;
                    facturaNueva.ClienteId       = _factura.Cliente.Id;
                    facturaNueva.TipoComprobante = _factura.TipoComprobante;

                    facturaNueva.Descuento = _factura.Descuento;
                    facturaNueva.SubTotal  = _factura.SubTotal;
                    facturaNueva.Total     = _factura.Total;

                    facturaNueva.Estado          = Estado.Pagada;
                    facturaNueva.PuestoTrabajoId = _factura.PuntoVentaId;
                    facturaNueva.Fecha           = DateTime.Now;
                    facturaNueva.Iva105          = 0;
                    facturaNueva.Iva21           = 0;
                    facturaNueva.UsuarioId       = _factura.UsuarioId;

                    foreach (var item in _factura.Items)
                    {
                        facturaNueva.Items.Add(new DetalleComprobanteDto()
                        {
                            Cantidad    = item.Cantidad,
                            Iva         = item.Iva,
                            Descripcion = item.Descripcion,
                            Precio      = item.Precio,
                            ArticuloId  = item.ArticuloId,
                            Codigo      = item.CodigoBarra,
                            SubTotal    = item.SubTotal,

                            Eliminado = false
                        });
                    }
                }
                else
                {
                    //Pendiente de pago
                }

                //FORMAS DE PAGO

                //EFECTIVO
                if (nudTotalEfectivo.Value > 0)
                {
                    facturaNueva.FormasDePagos.Add(new FormaPagoDto()
                    {
                        Monto     = nudTotalEfectivo.Value,
                        TipoPago  = TipoPago.Efectivo,
                        Eliminado = false
                    });
                }

                //TARJETA
                if (nudTotalTarjeta.Value > 0)
                {
                    facturaNueva.FormasDePagos.Add(new FormaPagoTarjetaDto()
                    {
                        NumeroTarjeta  = txtNumeroTarjeta.Text,
                        TipoPago       = TipoPago.Tarjeta,
                        CantidadCuotas = (int)nudCantidadCuotas.Value,
                        CuponPago      = txtCuponPago.Text,
                        Monto          = nudTotalTarjeta.Value,
                        TarjetaId      = (long)cmbTarjeta.SelectedValue,
                        Eliminado      = false
                    });
                }

                //CHEQUE
                if (nudTotalCheque.Value > 0)
                {
                    facturaNueva.FormasDePagos.Add(new FormaPagoChequeDto()
                    {
                        BancoId          = (long)cmbBanco.SelectedValue,
                        Monto            = nudTotalCheque.Value,
                        ClienteId        = _factura.Cliente.Id,
                        FechaVencimiento = dtpFechaVencimientoCheque.Value,
                        Numero           = txtNumeroCheque.Text,
                        TipoPago         = TipoPago.Cheque,
                        Eliminado        = false
                    });
                }

                //CTA CTE
                if (nudTotalCtaCte.Value > 0)
                {
                    if (_vieneDeVentas)
                    {
                        var deuda = 0;  //Corregir

                        if (_factura.Cliente.ActivarCtaCte)

                        {
                            if (_factura.Cliente.TieneLimiteCompra && _factura.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value)
                            {
                                var mensajeCtaCte =
                                    $"El cliente {_factura.Cliente.ApyNom} esta exediendo el limite permitido."
                                    + Environment.NewLine
                                    + $"El limite es {_factura.Cliente.MontoMaximoCtaCte.ToString("C")}";

                                MessageBox.Show(mensajeCtaCte);
                            }

                            facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto()
                            {
                                TipoPago  = TipoPago.CtaCte,
                                ClienteId = _factura.Cliente.Id,
                                Monto     = nudTotalCtaCte.Value,
                                Eliminado = false
                            });
                        }
                    }
                    else // Si viene de Pendiente
                    {
                    }
                }

                _facturaServicio.Insertar(facturaNueva);

                MessageBox.Show("Los datos se grabaron correctamente.");

                RealizoVenta = true;
                this.Close();
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
                RealizoVenta = false;
            }
        }
Esempio n. 27
0
        public FacturaDto getListSharepoint(string factura, string CodigoProveedor)
        {
            try
            {
                FacturaDto objFactura = new FacturaDto();
                _Context = _Conexion.ConetionSharepoint();
                if (_Context != null)
                {
                    CamlQuery QueryReferencia = new CamlQuery();

                    var obj = _Context.Web.Lists.GetByTitle("InformacionFacturas");

                    CamlQuery query = new CamlQuery();
                    query.ViewXml = "<View><Query><Where><And><Eq><FieldRef Name='Factura'/>" +
                                    "<Value Type='text'>" + factura + "</Value></Eq>" +
                                    "<Eq><FieldRef Name='CodigoProveedor'/>" +
                                    "<Value Type='text'>" + CodigoProveedor + "</Value></Eq>" +
                                    "</And></Where></Query><RowLimit>100</RowLimit></View>";
                    ListItemCollection itemFactura = obj.GetItems(query);
                    _Context.Load(itemFactura);
                    _Context.ExecuteQuery();
                    if (itemFactura.Count > 0)
                    {
                        for (int i = 0; i < itemFactura.Count; i++)
                        {
                            var item = itemFactura[i];
                            objFactura.Factura = (string)item["Factura"];
                            //objFactura.Proveedor = (string)item["Proveedor"];
                            objFactura.Codproveedor = (string)item["CodigoProveedor"];
                            //objFactura.ResponsableSAP = (string)item["ResponsableSAP"];
                            //objFactura.Fecharadicado = (DateTime)item["FechaRadicado"];
                            //FieldLookupValue ResponsableFactura = item["ResponsableFactura"] as FieldLookupValue;
                            //objFactura.Responsablefactura = ResponsableFactura.LookupValue;
                            //objFactura.Valor = Convert.ToString((Double)item["Valor"]);
                            //objFactura.Moneda = (string)item["Moneda"];
                            //objFactura.Numeropreliminar = (string)item["NumeroPreliminar"];
                            //objFactura.Numerocontabilizado = (string)item["NumeroContabilizado"];
                            //FieldLookupValue ResponsableEstado = item["ResponsableEstado"] as FieldLookupValue;
                            //objFactura.Responsableestado = ResponsableEstado.LookupValue;
                            //objFactura.Estado = item.FieldValues["Estado"].ToString();
                            //objFactura.Limitegestion = (DateTime)item["Limite_x0020_gestion"];
                            //objFactura.CodigoRadicado = (string)item["C_x00f3_digo_x0020_radicado"];
                            //objFactura.Añoradicado = Convert.ToString((Double)item["A_x00f1_o_x0020_del_x0020_radica"]);
                            //objFactura.Nitproveedor = (string)item["Nit_x0020_proveedor"];
                            //objFactura.Motivodevolución = (string)item["Motivo_x0020_devoluci_x00f3_n"];
                            //objFactura.Descripciondevolucion = (string)item["Descripcion_x0020_devolucion"];
                            //objFactura.Tipodocumento = (string)item["Tipo_x0020_documento"];
                            //objFactura.Iddocumento = (string)item["IdDocumento"];
                            //objFactura.Fechafactura = (DateTime)item["FechaFactura"];
                            objFactura.Linkdocumento = (string)item["LinkDocumento"];
                            //objFactura.Idfactura = (Double)item["IdFactura"];
                            //objFactura.Estadointernofactura = (string)item["EstadoInternoFactura"];
                            //objFactura.Responsabletramite = (string)item["ResponsableTramite"];
                            //objFactura.Etapatramite = (string)item["EtapaTramite"];
                            //objFactura.Cajatramite = (string)item["CajaTramite"];
                            //objFactura.Serietramite = (string)item["SerieTramite"];
                            //objFactura.Archivotramite = (string)item["ArchivoTramite"];
                            //objFactura.Ubicaciontramite = (string)item["UbicacionTramite"];
                            //objFactura.Notificacionjefe = (Boolean)item["NotificacionJefe"];
                            //objFactura.Notificacionresponsable = (Boolean)item["NotificacionResponsable"];
                            //objFactura.Codigodevolución = (string)item["CodigoDevolucion"];
                            //objFactura.Responsablecomprasnoindustriales = (string)item["ResponsableCompras"];
                            //objFactura.Codigodevolución = (string)item["CodigoDevolucion"];
                            //objFactura.Solicitantecompra = (string)item["SolicitanteCompras"];
                            //objFactura.Novidad = (Boolean)item["Novidad"];
                            //objFactura.Causantedevolucion = (string)item["CausanteDevolucion"];
                            //objFactura.Usuariocontabilidad = (string)item["UsuarioContabilidad"];
                        }
                    }
                }
                return(objFactura);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Esempio n. 28
0
        private void btnFacturar_Click(object sender, EventArgs e)
        {
            _factura.Cliente         = _clienteSeleccionado;
            _factura.Vendedor        = _vendedorSeleccionado;
            _factura.TipoComprobante = (TipoComprobante)cmbTipoComprobante.SelectedItem;
            _factura.PuntoVentaId    = (long)cmbPuestoVenta.SelectedValue;
            _factura.UsuarioId       = Identidad.UsuarioId;


            if (_configuracion.PuestoCajaSeparado)
            {
                try
                {
                    var nuevoComprobante = new FacturaDto()
                    {
                        EmpleadoId      = _factura.Vendedor.Id,
                        ClienteId       = _factura.Cliente.Id,
                        TipoComprobante = _factura.TipoComprobante,
                        Descuento       = _factura.Descuento,
                        SubTotal        = _factura.SubTotal,
                        Fecha           = DateTime.Now,
                        Estado          = Estado.Pendiente,
                        PuestoTrabajoId = _factura.PuntoVentaId,

                        Iva105      = 0,
                        Iva21       = 0,
                        Total       = _factura.Total,
                        UsuarioId   = _factura.UsuarioId,
                        VieneVentas = true,
                        Eliminado   = false
                    };

                    foreach (var item in _factura.Items)
                    {
                        nuevoComprobante.Items.Add(new DetalleComprobanteDto
                        {
                            Cantidad    = item.Cantidad,
                            Iva         = item.Iva,
                            Descripcion = item.Descripcion,
                            Precio      = item.Precio,
                            ArticuloId  = item.ArticuloId,
                            Codigo      = item.CodigoBarra,
                            SubTotal    = item.SubTotal,
                            Eliminado   = false,
                        });
                    }

                    _facturaServicio.Insertar(nuevoComprobante);

                    MessageBox.Show("Los datos se grabaron correctamente");
                    LimpiarParaNuevoFactura();
                }
                catch (DbEntityValidationException ex)
                {
                    var error = ex.EntityValidationErrors.SelectMany(v => v.ValidationErrors)
                                .Aggregate(string.Empty,
                                           (current, validationError) =>
                                           current +
                                           ($"Property: {validationError.PropertyName} Error: {validationError.ErrorMessage}. {Environment.NewLine}"
                                           ));


                    throw new Exception($"Ocurrio un error grave al grabar la Factura. Error: {error}");
                }
            }
            else
            {
                var fFormaDePago = new _00044_FormaPago(_factura);
                fFormaDePago.ShowDialog();

                if (fFormaDePago.RealizoVenta)
                {
                    LimpiarParaNuevoFactura();
                    txtCodigo.Focus();
                }
            }
        }
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                if (nudTotal.Value > _factura.Total)
                {
                    if (MessageBox.Show("El total que esta por abonar es superior al monto a pagar.Desea continuar ? ", "Atención", MessageBoxButtons.OKCancel,
                                        MessageBoxIcon.Question) == DialogResult.Cancel)
                    {
                        return;
                    }
                }
                else if (nudTotal.Value < _factura.Total)
                {
                    MessageBox.Show("El total que esta por abonar es inferior al monto a pagar", "Atención", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                    return;
                }

                var _facturaNueva = new FacturaDto();
                {
                    if (_vieneDeVentas)
                    {
                        _facturaNueva.EmpleadoId      = _factura.Vendedor.Id;
                        _facturaNueva.ClienteId       = _factura.Cliente.Id;
                        _facturaNueva.TipoComprobante = _factura.TipoComprobante;
                        _facturaNueva.Descuento       = _factura.Descuento;
                        _facturaNueva.SubTotal        = _factura.SubTotal;
                        _facturaNueva.Total           = _factura.Total;
                        _facturaNueva.Estado          = Estado.Pagada;
                        _facturaNueva.PuestoTrabajoId = _factura.PuntoVentaId;
                        _facturaNueva.Fecha           = DateTime.Now;
                        _facturaNueva.Iva105          = 0;
                        _facturaNueva.Iva21           = 0;
                        _facturaNueva.UsuarioId       = _factura.UsuarioId;

                        foreach (var item in _factura.Items)
                        {
                            _facturaNueva.Items.Add(new DetalleComprobanteDto
                            {
                                Cantidad    = item.Cantidad,
                                Iva         = item.Iva,
                                Descripcion = item.Descripcion,
                                Precio      = item.Precio,
                                ArticuloId  = item.ArticuloId,
                                Codigo      = item.CodigoBarra,
                                SubTotal    = item.SubTotal,
                                Eliminado   = false,
                            });
                        }
                    }
                    else
                    {
                        // TODO pendiente de Pago
                    }
                    if (nudTotalEfectivo.Value > 0)
                    {
                        _facturaNueva.FormasDePagos.Add(new FormaPagoDto
                        {
                            Monto     = nudTotalEfectivo.Value,
                            TipoPago  = TipoPago.Efectivo,
                            Eliminado = false
                        });
                    }
                    if (nudTotalCtaCte.Value > 0)
                    {
                        if (_vieneDeVentas)
                        {
                            // TODO: Falta ver deuda del Cliente
                            var deuda = 0;
                            if (_factura.Cliente.ActivarCtaCte)
                            {
                                if (_factura.Cliente.TieneLimiteCompra && _factura.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value)
                                {
                                    var menssajeCtaCte = $"El cliente {_factura.Cliente.ApyNom} esta por arriba del limite Permitido." + Environment.NewLine +
                                                         $" El limite es {_factura.Cliente.MontoMaximoCtaCte.ToString("C")}";

                                    MessageBox.Show(menssajeCtaCte, "Atención", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                                    return;
                                }


                                _facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto
                                {
                                    TipoPago  = TipoPago.CtaCte,
                                    ClienteId = _factura.Cliente.Id,
                                    Monto     = nudTotalCtaCte.Value,
                                    Eliminado = false,
                                });
                            }
                        }
                        else
                        {
                            // TODO: Facturas Pendientes de Pago
                        }
                    }
                    _facturaServicio.Insertar(_facturaNueva);
                    MessageBox.Show("Los datos se grabaron correctamente");

                    RealizoVenta = true;
                    Close();
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
                RealizoVenta = false;
            }
        }
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                if (nudVuelto.Value > 0)
                {
                    if (MessageBox.Show("El total que esta por abonar es superior al monto a pagar.Desea continuar ? ",
                                        "Atención", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
                        == DialogResult.Cancel)
                    {
                        return;
                    }
                }
                else if (nudVuelto.Value < 0)
                {
                    MessageBox.Show("El total que esta por abonar es inferior al monto a pagar",
                                    "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                var _facturaNueva = new FacturaDto();
                _facturaNueva.VieneVentas = _vieneDeVentas;

                if (_vieneDeVentas)
                {
                    _facturaNueva.EmpleadoId      = _factura.Vendedor.Id;
                    _facturaNueva.ClienteId       = _factura.Cliente.Id;
                    _facturaNueva.TipoComprobante = _factura.TipoComprobante;
                    _facturaNueva.Descuento       = _factura.Descuento;
                    _facturaNueva.SubTotal        = _factura.SubTotal;
                    _facturaNueva.Total           = _factura.Total;
                    _facturaNueva.Estado          = Estado.Pagada;
                    _facturaNueva.PuestoTrabajoId = _factura.PuntoVentaId;
                    _facturaNueva.Fecha           = DateTime.Now;
                    _facturaNueva.Iva105          = 0;
                    _facturaNueva.Iva21           = 0;
                    _facturaNueva.UsuarioId       = _factura.UsuarioId;
                    foreach (var item in _factura.Items)
                    {
                        _facturaNueva.Items.Add(new DetalleComprobanteDto
                        {
                            Cantidad    = item.Cantidad,
                            Iva         = item.Iva,
                            Descripcion = item.Descripcion,
                            Precio      = item.Precio,
                            ArticuloId  = item.ArticuloId,
                            Codigo      = item.CodigoBarra,
                            SubTotal    = item.SubTotal,
                            Eliminado   = false,
                        });
                    }
                }
                else
                {
                    _facturaNueva.Id              = _facturaPendiente.Id;
                    _facturaNueva.Estado          = Estado.Pendiente;
                    _facturaNueva.VieneVentas     = false;
                    _facturaNueva.TipoComprobante = _facturaPendiente.TipoComprobante;
                    _facturaNueva.UsuarioId       = Identidad.UsuarioId;
                    _facturaNueva.Fecha           = DateTime.Now;
                    _facturaNueva.Total           = _facturaPendiente.MontoPagar;
                }
                // Formas de Pago
                if (nudTotalEfectivo.Value > 0)
                {
                    _facturaNueva.FormasDePagos.Add(new FormaPagoDto
                    {
                        Monto     = nudTotalEfectivo.Value,
                        TipoPago  = TipoPago.Efectivo,
                        Eliminado = false
                    });
                }
                if (nudTotalTarjeta.Value > 0)
                {
                    _facturaNueva.FormasDePagos.Add(new FormaPagoTarjetaDto
                    {
                        TipoPago       = TipoPago.Tarjeta,
                        CantidadCuotas = (int)nudCantidadCuotas.Value,
                        CuponPago      = txtCuponPago.Text,
                        Monto          = nudTotalTarjeta.Value,
                        NumeroTarjeta  = txtNumeroTarjeta.Text,
                        TarjetaId      = (long)cmbTarjeta.SelectedValue,
                        Eliminado      = false
                    });
                }
                if (nudTotalCheque.Value > 0)
                {
                    _facturaNueva.FormasDePagos.Add(new FormaPagoChequeDto
                    {
                        BancoId          = (long)cmbBanco.SelectedValue,
                        ClienteId        = _factura.Cliente.Id,
                        FechaVencimiento = dtpFechaVencimientoCheque.Value,
                        Monto            = nudTotalCheque.Value,
                        Numero           = txtNumeroCheque.Text,
                        TipoPago         = TipoPago.Cheque,
                        Eliminado        = false
                    });
                }
                if (nudTotalCtaCte.Value > 0)
                {
                    var deuda = _cuentaCorrienteServicio.ObtenerDeudaCliente(_factura.Cliente.Id);

                    if (_vieneDeVentas)
                    {
                        if (_factura.Cliente.ActivarCtaCte)
                        {
                            if (_factura.Cliente.TieneLimiteCompra &&
                                _factura.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value)
                            {
                                var menssajeCtaCte = $"El cliente {_factura.Cliente.ApyNom} esta por arriba del limite Permitido."
                                                     + Environment.NewLine
                                                     + $" El limite es { _factura.Cliente.MontoMaximoCtaCte.ToString("C")}";
                                MessageBox.Show(menssajeCtaCte, "Atención",
                                                MessageBoxButtons.OK, MessageBoxIcon.Stop);
                                return;
                            }
                            _facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto
                            {
                                TipoPago  = TipoPago.CtaCte,
                                ClienteId = _factura.Cliente.Id,
                                Monto     = nudTotalCtaCte.Value,
                                Eliminado = false,
                            });
                        }
                    }
                    else // Si viene de Pendiente
                    {
                        if (_facturaPendiente.Cliente.ActivarCtaCte)
                        {
                            if (_facturaPendiente.Cliente.TieneLimiteCompra &&
                                _facturaPendiente.Cliente.MontoMaximoCtaCte < deuda + nudTotalCtaCte.Value)
                            {
                                var menssajeCtaCte =
                                    $"El cliente {_facturaPendiente.Cliente.ApyNom} esta por arriba del limite Permitido."
                                    + Environment.NewLine
                                    + $" El limite es { _facturaPendiente.Cliente.MontoMaximoCtaCte.ToString("C")}";
                                MessageBox.Show(menssajeCtaCte, "Atención",
                                                MessageBoxButtons.OK, MessageBoxIcon.Stop);
                                return;
                            }
                            _facturaNueva.FormasDePagos.Add(new FormaPagoCtaCteDto
                            {
                                TipoPago  = TipoPago.CtaCte,
                                ClienteId = _facturaPendiente.Cliente.Id,
                                Monto     = nudTotalCtaCte.Value,
                                Eliminado = false,
                            });
                        }
                    }//TODO PRE PARCIAL
                }
                if (!_vieneDeVentas)
                {
                    _facturaServicio.Modificar(_facturaNueva);
                    MessageBox.Show("Los datos se grabaron correctamente");
                    RealizoVenta = true;
                    Close();
                }
                else
                {
                    _facturaServicio.Insertar(_facturaNueva);
                    MessageBox.Show("Los datos se grabaron correctamente");
                    RealizoVenta = true;
                    Close();
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
                RealizoVenta = false;
            }
        }