Exemplo n.º 1
0
        private void reportarCompraSimplificadaHacienda(tbCompras doc)
        {
            try
            {
                if (doc != null)
                {
                    if (doc.reporteElectronico == true)
                    {
                        compraGlobal = doc;
                        if (Utility.AccesoInternet())
                        {
                            BackgroundWorker tarea = new BackgroundWorker();
                            tarea.DoWork += reportarCompraElectronica;
                            tarea.RunWorkerAsync();
                        }
                        else
                        {
                            MessageBox.Show("No hay acceso a internet", "Sin Internet", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }

                    limpiarForm();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (detalleDoc.Count != 0 && txtTotal.Text != "0")
                {
                    if (validarCamposDoc())
                    {
                        tbCompras documento = crearDocumento();

                        facturacionIns.guadarCompra(documento);
                        if (documento.tipoDoc == (int)Enums.TipoDocumento.ComprasSimplificada)
                        {
                            documento = facturacionIns.GetEntityCompra(documento);
                            reportarCompraSimplificadaHacienda(documento);
                        }
                        MessageBox.Show("La compras se ha guardado correctamente.", "Compras", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        limpiarForm();
                        cargarTotales();
                    }
                }
                else
                {
                    MessageBox.Show("No hay productos o el TOTAL a cobrar es 0.", "Cobrar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Error al guardar la compra.", "Compras", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 3
0
        private Task ProcessData(DataGridView dg, IProgress <ProgressReport> process)
        {
            int index          = 1;
            int totalProcess   = dg.Rows.Count;
            var ProgressReport = new ProgressReport();

            return(Task.Run(() =>
            {
                try
                {
                    foreach (DataGridViewRow item in dtgvDetalleFactura.Rows)
                    {
                        ProgressReport.PorcentComplete = index * 100 / totalProcess;
                        process.Report(ProgressReport);
                        try
                        {
                            int id = int.Parse(item.Cells[0].Value.ToString());
                            string tipoDoc = item.Cells[1].Value.ToString();

                            if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.Compras).ToUpper())
                            {
                                facturaIns.consultarMensajePorIdFact(id);
                            }
                            else if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.FacturaElectronica).ToUpper() ||
                                     tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaCreditoElectronica).ToUpper() ||
                                     tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaDebitoElectronica).ToUpper() ||
                                     tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.TiqueteElectronico).ToUpper())
                            {
                                tbDocumento doc = facturasLista.Where(x => x.id == id && x.tipoDocumento == (int)Enums.TipoDocumento.FacturaElectronica).SingleOrDefault();
                                facturaIns.consultarFacturaElectronicaPorIdFact(doc);
                            }
                            else if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.ComprasSimplificada).ToUpper())
                            {
                                tbCompras doc = comprasLista.Where(x => x.id == id && x.tipoDoc == (int)Enums.TipoDocumento.ComprasSimplificada).SingleOrDefault();
                                facturaIns.consultarCompraSimplificada(doc);
                            }
                        }
                        catch (Exception)
                        {
                        }
                        index++;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }));
        }
Exemplo n.º 4
0
        public tbCompras ActualizarCompraSimplificada(tbCompras entity)
        {
            try
            {
                using (dbSisSodInaEntities context = new dbSisSodInaEntities())
                {
                    context.Entry(entity).State = System.Data.Entity.EntityState.Modified;

                    context.SaveChanges();
                    return(entity);
                }
            }
            catch (Exception ex)
            {
                throw new UpdateEntityException("facturacion actualizacion. Electronica");
            }
        }
Exemplo n.º 5
0
        private tbCompras crearDocumento()
        {
            tbCompras documento = new tbCompras();

            documento.reportaInventario  = chkIncluyeInventario.Checked;
            documento.reporteElectronico = chkRegimenSimplificado.Checked;
            documento.tipoDoc            = (int)Enums.TipoDocumento.ComprasSimplificada;
            if (reporteGlobal != null)
            {
                documento.idReporteHacienda  = reporteGlobal.id;
                documento.reporteElectronico = false;
                documento.tipoDoc            = (int)Enums.TipoDocumento.Compras;
            }
            documento.fecha           = Utility.getDate();
            documento.numFactura      = int.Parse(txtIdFactura.Text);
            documento.fechaCompra     = dtpFechaCompra.Value.Date;
            documento.fechaReporte    = Utility.getDate();
            documento.estadoCompra    = (int)cboEstadoFactura.SelectedValue;
            documento.tipoPago        = (int)cboTipoPago.SelectedValue;
            documento.tipoCompra      = (int)cboTipoVenta.SelectedValue;
            documento.tipoIdProveedor = proveedorGlobal.tipoId;
            documento.idProveedor     = proveedorGlobal.id;

            documento.plazo = (int)documento.tipoCompra == (int)Enums.tipoVenta.Credito ? int.Parse(mskPlazoCredito.Text) : 0;

            documento.idEmpresa     = Global.Usuario.tbEmpresa.id;
            documento.tipoIdEmpresa = Global.Usuario.tbEmpresa.tipoId;

            documento.observaciones = txtObservaciones.Text;
            documento.tipoMoneda    = (int)Enums.TipoMoneda.CRC;


            documento.tbDetalleCompras = detalleDoc;
            documento.estado           = true;

            //Atributos de Auditoria

            documento.fecha_crea      = Utility.getDate();
            documento.fecha_ult_mod   = Utility.getDate();
            documento.usuario_crea    = Global.Usuario.nombreUsuario.Trim().ToUpper(); // Global.Usuario.nombreUsuario;
            documento.usuario_ult_mod = Global.Usuario.nombreUsuario.Trim().ToUpper(); // Global.Usuario.nombreUsuario;

            return(documento);
        }
Exemplo n.º 6
0
        private void reportarCompraElectronica(object sender, DoWorkEventArgs e)
        {
            try
            {
                //envio la factura a hacienda
                compraGlobal = facturacionIns.CompraSimplificadaElectronica(compraGlobal);

                System.Threading.Thread.Sleep(3000);
                //consulto a hacienda el estado de la factura
                try
                {
                    string mensaje = facturacionIns.consultarCompraSimplificada(compraGlobal);
                }
                catch (Exception)
                {
                    MessageBox.Show("Error al consultar el estado del documento en Hacienda, valida el estado del documento", "Error al consultar el estado del documento", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (FacturacionElectronicaException ex)
            {
                MessageBox.Show("Error al realizar la facturación electronica", "Factura Electrónica", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (EnvioCorreoException ex)
            {
                MessageBox.Show("Error al enviar la facturación por correo electrónico", "Correo electrónico", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (TokenException ex)
            {
                MessageBox.Show("Error al obtener el Token en Hacienda", "Facturación electrónica", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (ConsultaHaciendaExcpetion ex)
            {
                MessageBox.Show("Error al consultar hacienda la factura electrónica", "Facturación electrónica", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (generarXMLException ex)
            {
                MessageBox.Show("Error al generar el XML de la factura", "Facturación electrónica", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception EX)
            {
                MessageBox.Show("Error general de facturación electrónica", "Facturación electrónica", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 7
0
        public tbCompras GetEntityCompra(tbCompras entity)
        {
            try
            {
                using (dbSisSodInaEntities context = new dbSisSodInaEntities())
                {
                    var doc = (from p in context.tbCompras.Include("tbDetalleCompras").Include("tbTipoPago").Include("tbTipoVenta")
                               where p.id == entity.id && p.tipoDoc == entity.tipoDoc
                               select p).FirstOrDefault();

                    if (doc.idProveedor != null)
                    {
                        doc.tbProveedores = proveedorIns.GetProveedorById((int)doc.tipoIdProveedor, doc.idProveedor);
                    }
                    return(doc);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 8
0
        public tbCompras Guardar(tbCompras entity)
        {
            int id = comprasIns.getNewID(entity.tipoDoc) + 1;

            entity.id = id;
            foreach (var item in entity.tbDetalleCompras)
            {
                item.idCompra   = id;
                item.TipoCompra = entity.tipoDoc;
            }
            if (entity.clave == null && entity.tipoDoc == (int)Enums.TipoDocumento.ComprasSimplificada)
            {
                entity.consecutivo = BFacturacion.CreaNumeroConsecutivo(sucursal,
                                                                        caja,
                                                                        ((int)Enums.TipoDocumento.Compras).ToString(),
                                                                        entity.id.ToString().Trim());



                string codigoSeguridad = BFacturacion.CreaCodigoSeguridad(((int)Enums.TipoDocumento.Compras).ToString(),
                                                                          sucursal,
                                                                          caja,
                                                                          entity.fecha,
                                                                          entity.id.ToString().Trim());
                entity.clave = BFacturacion.CreaClave(codigoPais,
                                                      entity.fecha.Day.ToString(),
                                                      entity.fecha.Month.ToString(),
                                                      entity.fecha.Year.ToString(),
                                                      Global.Usuario.tbPersona.tbEmpresa.id.Trim(),
                                                      entity.consecutivo,
                                                      entity.estadoCompra.ToString().Trim(),
                                                      codigoSeguridad);
            }


            return(comprasIns.Guardar(entity));
        }
Exemplo n.º 9
0
        public tbCompras GuardarCompra(tbCompras entity)
        {
            try
            {
                using (dbSisSodInaEntities context = new dbSisSodInaEntities())
                {
                    context.tbCompras.Add(entity);



                    if ((bool)Global.Usuario.tbEmpresa.tbParametrosEmpresa.First().manejaInventario&& entity.reportaInventario)
                    {
                        foreach (var detalle in entity.tbDetalleCompras)
                        {
                            tbInventario inven = new tbInventario();
                            inven.idProducto = detalle.idProducto;
                            inven            = inventarioIns.GetEntity(inven);
                            if (inven != null)
                            {
                                inven.cantidad = inven.cantidad + detalle.cantidad;
                            }


                            context.Entry(inven).State = System.Data.Entity.EntityState.Modified;
                        }
                    }

                    context.SaveChanges();
                }
                return(entity);
            }
            catch (Exception ex)
            {
                throw new SaveEntityException("Error en Factura");
            }
        }
Exemplo n.º 10
0
 public tbCompras GetEntity(tbCompras entity)
 {
     return(comprasIns.GetEntity(entity));
 }
Exemplo n.º 11
0
 public tbCompras Actualizar(tbCompras entity)
 {
     return(comprasIns.Actualizar(entity));
 }
Exemplo n.º 12
0
        private void dtgvDetalleFactura_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int    id            = int.Parse(dtgvDetalleFactura.Rows[e.RowIndex].Cells[0].Value.ToString());
                string tipoDoc       = dtgvDetalleFactura.Rows[e.RowIndex].Cells[1].Value.ToString();
                int    tipoDocumento = int.Parse(dtgvDetalleFactura.Rows[e.RowIndex].Cells[11].Value.ToString());



                if (e.ColumnIndex == 8)
                {
                    if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.Compras).ToUpper())
                    {
                        frmDetalleMensaje msj = new frmDetalleMensaje();

                        foreach (var item in mensajesLista)
                        {
                            if (item.id == id)
                            {
                                msj.Reporte = item;
                                break;
                            }
                        }
                        msj.ShowDialog();
                    }
                    else if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.FacturaElectronica).ToUpper() ||
                             tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaCreditoElectronica).ToUpper() ||
                             tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaDebitoElectronica).ToUpper() ||
                             tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.TiqueteElectronico).ToUpper())
                    {
                        tbDocumento doc = facturasLista.Where(x => x.id == id && x.tipoDocumento == tipoDocumento).SingleOrDefault();
                        if (doc != null)
                        {
                            doc = facturaIns.getEntity(doc);
                            frmDocumentosDetalle form = new frmDocumentosDetalle(doc);
                            form.ShowDialog();
                        }
                    }
                }
                else if (e.ColumnIndex == 9)
                {
                    if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.Compras).ToUpper())
                    {
                        reportarMensajeElectronica(id);
                    }
                    else if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.FacturaElectronica).ToUpper() ||
                             tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaCreditoElectronica).ToUpper() ||
                             tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaDebitoElectronica).ToUpper() ||
                             tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.TiqueteElectronico).ToUpper())
                    {
                        enviarCorreoCorreoDocumentoElectronico(id);
                    }
                }
                else if (e.ColumnIndex == 10)
                {
                    if (Utility.AccesoInternet())
                    {
                        if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.Compras).ToUpper())
                        {
                            facturaIns.consultarMensajePorIdFact(id);
                            cargarDatos();
                        }
                        else if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.FacturaElectronica).ToUpper() ||
                                 tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaCreditoElectronica).ToUpper() ||
                                 tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.NotaDebitoElectronica).ToUpper() ||
                                 tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.TiqueteElectronico).ToUpper())
                        {
                            tbDocumento doc = facturasLista.Where(x => x.id == id && x.tipoDocumento == tipoDocumento).SingleOrDefault();
                            facturaIns.consultarFacturaElectronicaPorIdFact(doc);
                        }
                        else if (tipoDoc == Enum.GetName(typeof(Enums.TipoDocumento), Enums.TipoDocumento.ComprasSimplificada).ToUpper())
                        {
                            tbCompras doc = comprasLista.Where(x => x.id == id && x.tipoDoc == (int)Enums.TipoDocumento.ComprasSimplificada).SingleOrDefault();
                            facturaIns.consultarCompraSimplificada(doc);
                        }
                    }
                    else
                    {
                        MessageBox.Show("No hay acceso a internet, no se validarán los documentos", "Sin Internet", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                cargarDatos();
            }
            catch (Exception ex)
            {
                clsEvento evento = new clsEvento(ex.Message, "1");
                MessageBox.Show("Ocurrio un error, intente de nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }