Пример #1
0
 public CorreoElectronico(tbDocumento doc, List <string> correoDestino, bool cargarAdjuntos)
 {
     _tipoCorreo     = 1;
     _doc            = doc;
     _cargarAdjuntos = cargarAdjuntos;
     _destinoCorreo  = correoDestino;
 }
Пример #2
0
        private void btnProcesar_Click(object sender, EventArgs e)
        {
            try
            {
                DialogResult resp = MessageBox.Show($"Esta seguro que desea realizar la PROFORMA por el MONTO: {txtMonto.Text} al CLIENTE: { txtCliente.Text}", "Generar Proforma", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (resp == DialogResult.Yes)
                {
                    if (ValidarCampos())
                    {
                        facturaGlobal.plazo = int.Parse(txtDias.Text);

                        facturaGlobal = facturacionIns.guadar(facturaGlobal);
                        if (chkImprimir.Checked)
                        {
                            clsImpresionFactura imprimir = new clsImpresionFactura(facturaGlobal, Global.Usuario.tbEmpresa);
                            imprimir.print();
                        }

                        recuperarTotal(facturaGlobal);
                        this.Close();
                    }
                }
            }
            catch (Exception)
            {
                recuperarTotal(null);
            }
        }
Пример #3
0
        private void enviarCorreo(tbDocumento doc, List <string> correos)
        {
            try
            {
                bool enviado = false;
                //se solicita respuesta, y se confecciona el correo a enviar

                CorreoElectronico correo = new CorreoElectronico(doc, correos, true);
                enviado = correo.enviarCorreo();

                if (enviado)
                {
                    MessageBox.Show("Se envió correctamente el correo electrónico", "Correo Electrónico", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Se produjo un error al enviar el Correo Electrónico", "Correo Electrónico", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                clsEvento evento = new clsEvento(ex.Message, "1");
                MessageBox.Show("Se produjo un error al enviar el Correo Electrónico", "Correo Electrónico", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #4
0
        private void btnProforma_Click(object sender, EventArgs e)
        {
            tipoDoc = (int)Enums.TipoDocumento.Proforma;
            dtgvDetalleFactura.EndEdit();
            calcularMontosT();
            agregarProductoGrid();
            if (listaDetalleDocumento.Count != 0 && txtTotal.Text != "0")
            {
                if (validarCampos())
                {
                    tbDocumento documento = crearDocumento();
                    documento.tipoDocumento     = tipoDoc;
                    documento.reporteElectronic = false;
                    if (txtCorreo.Text != string.Empty)
                    {
                        documento.correo1 = txtCorreo.Text.Trim();
                    }

                    if (txtCorreo2.Text != string.Empty)
                    {
                        documento.correo2 = txtCorreo2.Text.Trim();
                    }
                    documento.notificarCorreo = chkEnviar.Checked;
                    frmProforma form = new frmProforma();
                    form.recuperarTotal += respuesta;
                    form.facturaGlobal   = documento;
                    form.ShowDialog();
                }
            }
            else
            {
                MessageBox.Show("No hay productos o el TOTAL a cobrar es 0.", "Cobrar", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #5
0
 private void dtgvDetalleFactura_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         if (Utility.AccesoInternet())
         {
             if (e.ColumnIndex == 8)
             {
                 string idFactura = dtgvDetalleFactura.Rows[e.RowIndex].Cells[1].Value.ToString();
                 string tipoDoc   = dtgvDetalleFactura.Rows[e.RowIndex].Cells[0].Value.ToString();
                 if (idFactura != string.Empty && tipoDoc != string.Empty)
                 {
                     tbDocumento doc = new tbDocumento();
                     doc.id            = int.Parse(idFactura);
                     doc.tipoDocumento = int.Parse(tipoDoc);
                     facturaIns.consultarFacturaElectronicaPorIdFact(doc);
                     cargarDatos();
                 }
             }
         }
         else
         {
             MessageBox.Show("No hay acceso a internet, no se validarán los documentos", "Sin Internet", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Ocurrio un error, intente de nuevo", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Пример #6
0
 private void lsvFacturas_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     try
     {
         if (lsvFacturas.SelectedItems.Count > 0)
         {
             tbDocumento doc = new tbDocumento();
             doc.id            = int.Parse(lsvFacturas.SelectedItems[0].Text);
             doc.tipoDocumento = int.Parse(lsvFacturas.SelectedItems[0].SubItems[7].Text);
             doc = factIns.getEntity(doc, false);
             if (doc != null)
             {
                 frmDocumentosDetalle frm = new frmDocumentosDetalle(doc);
                 frm.ShowDialog();
                 obtenerAplicarFiltro();
             }
             else
             {
                 MessageBox.Show("No se encontró los datos de la factura seleccionada", "Error al buscar", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Пример #7
0
 public clsImpresionFactura(tbDocumento doc, tbEmpresa empresa, decimal paga, decimal vuelto)
 {
     _doc     = doc;
     _empresa = empresa;
     _paga    = paga;
     _vuelto  = vuelto;
     _canton  = cantonIns.GetEntity(_empresa.tbPersona.canton, _empresa.tbPersona.provincia);
 }
Пример #8
0
 public clsImpresionFactura(tbDocumento doc, tbEmpresa empresa, decimal paga, decimal vuelto, string cliente)
 {
     _doc                 = doc;
     _empresa             = empresa;
     _paga                = paga;
     _vuelto              = vuelto;
     _canton              = cantonIns.GetEntity(_empresa.tbPersona.canton, _empresa.tbPersona.provincia);
     _clienteSimplificada = cliente;
 }
Пример #9
0
        public void cobrar()
        {
            try
            {
                if (ValidarCampos())
                {
                    if (!btnTarjeta.Enabled)
                    {
                        facturaGlobal.refPago = txtCodTarjeta.Text;
                    }
                    else if (!btnCredito.Enabled)
                    {
                        facturaGlobal.plazo = int.Parse(txtPlazo.Text);
                    }
                    facturaGlobal.tbClientes = null;
                    facturaGlobal            = facturacionIns.guadar(facturaGlobal);
                    facturaGlobal            = facturacionIns.getEntity(facturaGlobal);
                    if (chkImprimir.Checked)
                    {
                        try
                        {
                            //DialogResult dialogResult = MessageBox.Show("Desea imprimir el documento?", "Imprimir", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            //if (dialogResult == DialogResult.Yes)
                            //{

                            decimal pago   = txtPago.Text == string.Empty ? 0 : decimal.Parse(txtPago.Text);
                            decimal vuelto = txtVuelto.Text == string.Empty ? 0 : decimal.Parse(txtVuelto.Text);

                            if (facturaGlobal.tipoDocumento == (int)Enums.TipoDocumento.TiqueteElectronico && cliente != string.Empty)
                            {
                                clsImpresionFactura imprimir = new clsImpresionFactura(facturaGlobal, Global.Usuario.tbEmpresa, pago, vuelto, cliente);
                                imprimir.print();
                            }
                            else
                            {
                                clsImpresionFactura imprimir = new clsImpresionFactura(facturaGlobal, Global.Usuario.tbEmpresa, pago, vuelto);
                                imprimir.print();
                            }

                            //}
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("No se pudo imprimir el documento", "Impresión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }

                    recuperarTotal(facturaGlobal);
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                recuperarTotal(null);
            }
        }
Пример #10
0
        public static bool generarArchivos(tbDocumento doc)
        {
            try
            {
            }
            catch (Exception)
            {
                return(false);
            }


            return(true);
        }
Пример #11
0
        private void enviarCorreoCorreoDocumentoElectronico(int id)
        {
            if (Utility.AccesoInternet())
            {
                tbDocumento doc = new tbDocumento();
                doc.id            = id;
                doc.tipoDocumento = (int)Enums.TipoDocumento.FacturaElectronica;
                doc = facturaIns.getEntity(doc);
                if (doc != null)
                {
                    DialogResult result = MessageBox.Show("Se enviará por correo electrónico la factura seleccionada, Desea continuar?", "Envio de correo electrónico", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (result == DialogResult.Yes)
                    {
                        List <string> correos = new List <string>();


                        if (doc.correo1 != null || doc.correo2 != null)
                        {
                            if (doc.correo1 != null)
                            {
                                correos.Add(doc.correo1);
                            }
                            if (doc.correo2 != null)
                            {
                                correos.Add(doc.correo2);
                            }
                        }
                        else
                        {
                            if (doc.tbClientes.tbPersona.correoElectronico != null)
                            {
                                correos.Add(doc.tbClientes.tbPersona.correoElectronico.Trim());
                            }
                        }

                        if (correos.Count != 0)
                        {
                            enviarCorreo(doc, correos);
                        }
                        else
                        {
                            MessageBox.Show("No hay correo electronicos registrados con este documento", "Correo Electrónico", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("No hay acceso a internet", "Sin Internet", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #12
0
 private void enviarProforma(int idProforma)
 {
     try
     {
         IEnumerable <tbDocumento> fact = factIns.getListAllDocumentos();
         tbDocumento proforma           = fact.Where(x => x.id == idProforma && x.tipoDocumento == (int)Enums.TipoDocumento.Proforma).SingleOrDefault();
         pasarDatosEvent(proforma);
         this.Dispose();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #13
0
 private void lstvCancelarFac_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (lstvCancelarFac.SelectedItems.Count > 0)
     {
         int idSelected = int.Parse(lstvCancelarFac.SelectedItems[0].Text);
         foreach (tbDocumento cancelar in ListaFacturas)
         {
             if (idSelected == cancelar.id)
             {
                 CancelaFac = cancelar;
             }
         }
     }
 }
Пример #14
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;
                }
            }));
        }
Пример #15
0
        private void enviarCorreo(tbDocumento proforma)
        {
            if (Utility.AccesoInternet())
            {
                DialogResult result = MessageBox.Show("Se enviará por correo electrónico la factura seleccionada, Desea continuar?", "Envio de correo electrónico", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    List <string> correos = new List <string>();
                    if (proforma.correo1 != null)
                    {
                        correos.Add(proforma.correo1.Trim());
                    }
                    if (proforma.correo2 != null)
                    {
                        correos.Add(proforma.correo2.Trim());
                    }


                    bool enviado = false;
                    try
                    {
                        CorreoElectronico correo = new CorreoElectronico(proforma, correos, true);
                        enviado = correo.enviarCorreo();
                    }
                    catch (CorreoSinDestinatarioException ex)
                    {
                        MessageBox.Show(ex.Message, "Correo Electrónico", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }


                    if (enviado)
                    {
                        MessageBox.Show("Se envió correctamente el correo electrónico", "Correo Electrónico", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Se produjo un error al enviar el Correo Electrónico", "Correo Electrónico", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("No hay acceso a internet", "Sin Internet", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #16
0
        private void btnCancelarFactura_Click(object sender, EventArgs e)
        {
            bool bandera = true;

            try
            {
                DialogResult result = MessageBox.Show("Se generará una NOTA DE CREDITO, para anular la factura seleccionada, Desea continuar?", "Anulación de factura", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    if (chkEnviar.Checked)
                    {
                        bandera = validarCampos();
                    }
                    if (bandera)
                    {
                        _doc.correo1 = txtCorreo.Text.Trim();
                        if (txtCorreo2.Text != String.Empty)
                        {
                            _doc.correo1 = txtCorreo2.Text.Trim();
                        }
                        frmRazon razon = new frmRazon();
                        razon.pasarDatosEvent += dataBuscar;
                        razon.ShowDialog();
                        if (_razon != string.Empty)
                        {
                            var doc = eliminarFactura();
                            _doc = doc;
                            if (doc != null & doc.reporteElectronic == true)
                            {
                                // BackgroundWorker tarea = new BackgroundWorker();

                                //tarea.DoWork += reportarFacturacionElectronica;
                                // tarea.RunWorkerAsync();
                                reportarFacturacionElectronica();
                            }
                        }
                    }
                }
                this.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("No se pudo eliminar la factura, intente más tarde, no se generó la NOTA DE CRÉDITO", "Error al eliminar el documento", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #17
0
        private void btnReImprimir_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Desea imprimir el documento?", "Imprimir", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dialogResult == DialogResult.Yes)
            {
                if (_doc != null)
                {
                    _doc = facturaIns.getEntity(_doc, true);
                    clsImpresionFactura imprimir = new clsImpresionFactura(_doc, Global.Usuario.tbEmpresa);
                    imprimir.print();
                }
                else
                {
                    MessageBox.Show("No hay datos que imprimir", "Imprimir", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Пример #18
0
        private void btnEnviarCorreo_Click(object sender, EventArgs e)
        {
            if (lsvFacturas.SelectedItems.Count > 0)
            {
                int idProforma = int.Parse(lsvFacturas.SelectedItems[0].Text);

                IEnumerable <tbDocumento> fact = factIns.getListAllDocumentos();
                tbDocumento proforma           = fact.Where(x => x.id == idProforma && x.tipoDocumento == (int)Enums.TipoDocumento.Proforma).SingleOrDefault();

                if (proforma != null)
                {
                    enviarCorreo(proforma);
                }
            }
            else
            {
                MessageBox.Show("Debe de seleccionar alguna proforma", "Proforma", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
Пример #19
0
        private void reportarFacturacionElectronica()
        {
            if (Utility.AccesoInternet())
            {
                try
                {
                    _doc = facturaIns.FacturarElectronicamente(_doc);

                    System.Threading.Thread.Sleep(3000);

                    facturaIns.consultarFacturaElectronicaPorClave(_doc.clave);

                    if (chkEnviar.Checked)
                    {
                        List <string> correos = new List <string>();


                        if (_doc.correo1 != null)
                        {
                            correos.Add(_doc.correo1);
                        }

                        if (_doc.correo2 != null)
                        {
                            correos.Add(_doc.correo2);
                        }


                        enviarCorreo(_doc, correos);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("No se pudo emitir el documento NOTA CREDITO", "Error al procesar", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("No hay acceso a internet, No se enviará el documento a Hacienda, validar en la pantalla de validación, para su envio correspodiente.", "Sin Internet", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #20
0
        private void btnCobrar_Click(object sender, EventArgs e)
        {
            tipoDoc = (int)Enums.TipoDocumento.FacturaElectronica;


            if (detalleDocumentoParcial.Count != 0 && txtTotal.Text != "0")
            {
                if (validarCampos())
                {
                    tbDocumento documento = crearDocumento();
                    frmCobrar   form      = new frmCobrar();
                    form.recuperarTotal += respuesta;
                    form.facturaGlobal   = documento;
                    form.ShowDialog();
                }
            }
            else
            {
                MessageBox.Show("No hay productos o el TOTAL a cobrar es 0.", "Cobrar", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #21
0
        private void datosProforma(tbDocumento entity)
        {
            if (listaDetalleDocumento == null)
            {
                listaDetalleDocumento = new List <tbDetalleDocumento>();
            }
            listaDetalleDocumento.Clear();
            foreach (var item in entity.tbDetalleDocumento)
            {
                item.tbDocumento = null;


                listaDetalleDocumento.Add(item);
            }
            if (entity.tbClientes != null)
            {
                dataBuscar(entity.tbClientes);
            }

            calcularMontosT();
            agregarProductoGrid();
        }
Пример #22
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
                        {
                            string idFactura = item.Cells[1].Value.ToString();
                            string tipoDoc = item.Cells[0].Value.ToString();
                            if (idFactura != string.Empty && tipoDoc != string.Empty)
                            {
                                tbDocumento doc = new tbDocumento();
                                doc.id = int.Parse(idFactura);
                                doc.tipoDocumento = int.Parse(tipoDoc);
                                facturaIns.consultarFacturaElectronicaPorIdFact(doc);
                                // cargarDatos();
                            }
                        }
                        catch (Exception)
                        {
                        }
                        index++;
                    }
                }
                catch (Exception)
                {
                }
            }));
        }
Пример #23
0
        private tbDocumento crearDocumento()
        {
            tbDocumento documento = new tbDocumento();

            documento.tipoDocumento         = (int)Enums.TipoDocumento.FacturaElectronica;
            documento.fecha                 = Utility.getDate();
            documento.tipoMoneda            = (int)Enums.TipoMoneda.CRC;
            documento.tipoCambio            = 0;
            documento.reporteElectronic     = (bool)Global.Usuario.tbEmpresa.tbParametrosEmpresa.First().facturacionElectronica;
            documento.tipoVenta             = (int)Enums.tipoVenta.Contado;
            documento.plazo                 = 0;
            documento.tipoPago              = (int)Enums.TipoPago.Efectivo;
            documento.refPago               = string.Empty;
            documento.estadoFactura         = (int)Enums.EstadoFactura.Cancelada;
            documento.reporteAceptaHacienda = false;
            documento.notificarCorreo       = chkEnviar.Checked;
            documento.observaciones         = txtObservaciones.Text.ToUpper().Trim();
            documento.idEmpresa             = Global.Usuario.tbEmpresa.id;
            documento.tipoIdEmpresa         = Global.Usuario.tbEmpresa.tipoId;
            //en caso que no tenga cliente asignado, sera no contribuyente

            //si no marco el check de enviar correo, deja los campos de correo electronico a notificar null
            if ((bool)documento.notificarCorreo)
            {
                documento.correo1 = txtCorreo.Text == string.Empty ? null : txtCorreo.Text.Trim();
                documento.correo2 = txtCorreo2.Text == string.Empty ? null : txtCorreo2.Text.Trim();
            }
            //cliente
            if (clienteGlo != null)
            {
                documento.idCliente     = clienteGlo.id;
                documento.tipoIdCliente = clienteGlo.tipoId;
                //asigna el valor que tenga el cliente si es contribuyente o no

                documento.tbClientes = clienteGlo;
                if (chkTiqueteElectronico.Checked)
                {
                    documento.tipoDocumento = (int)Enums.TipoDocumento.TiqueteElectronico;
                }
            }
            else
            {
                documento.tipoDocumento = (int)Enums.TipoDocumento.TiqueteElectronico;
            }

            documento.estado = true;

            //foreach (tbDetalleDocumento detalle in listaDetalleDocumento)
            //{
            //    detalle.tbProducto = null;
            //}

            documento.tbDetalleDocumento = listaDetalleDocumento;

            //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);
        }
Пример #24
0
        public void reportarFacturacionElectronica(object o, DoWorkEventArgs e)
        {
            tbDocumento doc = documentoGlo;

            try
            {
                //envio la factura a hacienda
                doc = facturaIns.FacturarElectronicamente(doc);

                System.Threading.Thread.Sleep(3000);
                //consulto a hacienda el estado de la factura
                try
                {
                    string mensaje = facturaIns.consultarFacturaElectronicaPorClave(doc.clave);
                }
                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);
                }

                bool enviado = false;
                //se solicita respuesta, y se confecciona el correo a enviar
                if ((bool)doc.notificarCorreo)
                {
                    List <string> correos = new List <string>();
                    if (doc.correo1 != null)
                    {
                        correos.Add(doc.correo1.Trim());
                    }
                    if (doc.correo2 != null)
                    {
                        correos.Add(doc.correo2.Trim());
                    }
                    CorreoElectronico correo = new CorreoElectronico(doc, correos, true);
                    enviado = correo.enviarCorreo();
                }
            }
            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);
            }
        }
Пример #25
0
        private void respuesta(tbDocumento doc)
        {
            try
            {
                if (doc != null)
                {
                    existeRespuesta = true;
                    if (doc.reporteElectronic == true)
                    {
                        if (Utility.AccesoInternet())
                        {
                            BackgroundWorker tarea = new BackgroundWorker();
                            documentoGlo  = doc;
                            tarea.DoWork += reportarFacturacionElectronica;
                            tarea.RunWorkerAsync();

                            if (doc.id != 0)
                            {
                                MessageBox.Show("El documento ha sido emitido correctamente, el reporte de hacienda se generará en segundo plano", "Documento creado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                        }
                        else
                        {
                            MessageBox.Show("No hay acceso a internet", "Sin Internet", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        if (doc.id != 0)
                        {
                            MessageBox.Show("El documento ha sido emitido correctamente", "Documento creado", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            bool enviado = false;
                            //se solicita respuesta, y se confecciona el correo a enviar
                            if ((bool)doc.notificarCorreo)
                            {
                                List <string> correos = new List <string>();
                                if (doc.correo1 != null)
                                {
                                    correos.Add(doc.correo1.Trim());
                                }
                                if (doc.correo2 != null)
                                {
                                    correos.Add(doc.correo2.Trim());
                                }
                                CorreoElectronico correo = new CorreoElectronico(doc, correos, true);
                                enviado = correo.enviarCorreo();
                            }
                        }
                    }
                    limpiarFactura();
                }
                else
                {
                    MessageBox.Show("El documento no se ha guardado, intente nuevamente, de lo contrario contacte con el administrador.", "Error al crear Documento", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show("Error en el sistema, contacte al administrador", "Error general", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #26
0
 public frmDocumentosDetalle(tbDocumento doc)
 {
     InitializeComponent();
     _doc = doc;
 }
Пример #27
0
        /// <summary>
        /// Incrementamos o Desminuimos el inventario segun lo requerido.
        /// </summary>
        /// <param name="factura"> Factura a trabajar.</param>
        /// <param name="estado">Estado de la factura: 0 = resta, 1 = suma </param>
        /// <param name="productos"> Es la lista de los productos del formulario de facturacion. </param>
        public void ActualizarInventario(tbDocumento factura, List <tbProducto> productos, int estado)
        {
            // Creamos las variables para recuperar.
            string idProducto = string.Empty;  int idIngrediente = 0;
            double cantidadComprada = 0.0F, cantInventario = 0.0F, cantidadIngrediente = 0.0F, cantNueva = 0.0F;
            int    cantMin = 0;


            // Cargamos la lista de inventario.
            listaInventario = GetListEntities(3);

            try
            {
                // Recorremos la lista del detalleFactura para recuperar el ID del Producto.
                foreach (tbDetalleDocumento produc in factura.tbDetalleDocumento)
                {
                    // Cargamos el id y la cantidad del producto comprado.
                    idProducto       = produc.idProducto;
                    cantidadComprada = (double)produc.cantidad;


                    // Recorremos la lista de productos para recuperar el ID del producto
                    foreach (tbProducto item in productos)
                    {
                        if (idProducto == item.idProducto)
                        {
                            // Creamos una lista de detalleProducto
                            ICollection <tbDetalleProducto> listaDetalleProducto = new List <tbDetalleProducto>();
                            // listaDetalleProducto = item.tbDetalleProducto;

                            // Recorremos la lista de DetalleProducto para recuperar el ID del ingrediente
                            foreach (tbDetalleProducto ingrediente in listaDetalleProducto)
                            {
                                if (idProducto == ingrediente.idProducto)
                                {
                                    // Cargamos al ID del ingrediente y la cantidad usada en el producto.
                                    cantidadIngrediente = ingrediente.cantidad;
                                    idIngrediente       = ingrediente.idIngrediente;


                                    //foreach (tbInventario inventario in listaInventario)
                                    //{
                                    //    if (inventario.idIngrediente == idIngrediente)
                                    //    {

                                    //        // Procedemos a realizar la multiplicacion de la cantidad comprada por la cantidad usada en el producto.
                                    //        cantInventario = inventario.cantidad;
                                    //        cantMin = (int)inventario.cant_max;

                                    //        double temp = (cantidadComprada * cantidadIngrediente);

                                    //        // Si el estado es 0, se restara el inventario de X ingrediente.
                                    //        // Si el estado es 1, se sumara el inventario de X ingrediente.


                                    //        cantNueva = estado == 0 ? cantInventario - temp : cantInventario + temp;

                                    //        //ACtualizamos la cantidad en dicho producto.
                                    //        inventario.cantidad = cantNueva;

                                    //        //Actualizamos la entidad en cuestion.
                                    //        inveIns.Actualizar(inventario);


                                    //    }
                                    //}
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #28
0
 public clsImpresionFactura(tbDocumento doc, tbEmpresa empresa)
 {
     _doc     = doc;
     _empresa = empresa;
 }
Пример #29
0
 /// <summary>
 /// Cargaremo los datos requeridos para realizar la impresion de la factura.
 /// </summary>
 private void cargarImpresion(ref tbDocumento factura, ref List <tbProducto> Productos)
 {
     factura   = CancelaFac;
     Productos = listaProductos;
 }
Пример #30
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);
            }
        }