private void enviadoc(string tipodoc, int numero)
        {
            FacturaElectronica fe = new FacturaElectronica();

            var respuesta = fe.EnviarFactura(tipodoc, numero);

            //cargar encabezado

            //cargar detalles

            //cargar formapago
        }
        private void btnEmitir_Click(object sender, EventArgs e)
        {
            FbData fb = new FbData();

            string sql   = "";
            string clase = "";

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (Convert.ToBoolean(row.Cells[0].Value) == true)
                {
                    var tipo   = row.Cells[1].Value;
                    var numero = row.Cells[2].Value;


                    #region aplicaredondeoimpuesto

                    clase = Getclasefactura(tipo);

                    if (chkImpuesto.Checked)
                    {
                        sql = "update oedet set vlr_iva = (((price*qtyship)-totaldct) * porc_iva / 100) where tipo = '" + clase + "' and number = " + numero.ToString();

                        fb.ExecuteNonQuery(sql);



                        sql = "update oe set salestax = (select sum(vlr_iva) from oedet where oedet.tipo = oe.tipo and oedet.number = oe.number) " +
                              " where oe.tipo = '" + clase + "' and number = " + numero.ToString();

                        fb.ExecuteNonQuery(sql);

                        sql = "update oe set total = subtotal + salestax - coalesce(disc1,0) - coalesce(disc2,0) - coalesce(disc3,0) " +
                              " where oe.tipo = '" + clase + "' and number = " + numero.ToString();

                        fb.ExecuteNonQuery(sql);
                    }


                    #endregion

                    FacturaElectronica fe = new FacturaElectronica();


                    #region validar datos

                    var f = new FacturaEnc();

                    FbData db = new FbData();

                    var sqlciiu = "select FIRST 1 actividad_eco_enc.cod_internacional " +
                                  " from actividad_eco_enc, actividad_eco_det " +
                                  " where actividad_eco_enc.codact = actividad_eco_det.codact " +
                                  " and actividad_eco_det.principal = 'S' " +
                                  " and actividad_eco_det.id_n = OE.ID_N";


                    sql = "SELECT OE.ID_EMPRESA, " +
                          "OE.ID_SUCURSAL, TIPDOC.SIGLA AS TIPO,OE.NUMBER, OE.FECHA, OE.DUEDATE FECHAVENC, CUST.ID_N, CUST.CV,CUST.COMPANY, CUST.ADDR1 direccion,CUST.PHONE1 telefono1, " +
                          " CIUDADES.CODIGO COD_CIUDAD,SHIPTO.CITY,SHIPTO.COD_DPTO,SHIPTO.DEPARTAMENTO,SHIPTO.EMAIL,OE.OCNUMERO,OE.NROREMISION,OE.COMMENTS, " +
                          " TRIBUTARIA_TIPODOCUMENTO.TDOC CODTIPOIDENTIFICACION,TRIBUTARIA_TIPODOCUMENTO.DESCRIPCION DESCTIPOIDENTIFICACION, " +
                          " TRIBUTARIA_TIPOCONTRIBUYENTE.CODIGO CODTIPOPERSONA,TRIBUTARIA_TIPOCONTRIBUYENTE.DESCRIPCION DESCRIPCIONTIPOPERSONA, " +
                          "(OE.SUBTOTAL - OE.DESTOTAL) VLRBRUTO,OE.SUBTOTAL,OE.SALESTAX IMPUESTO,OE.TOTAL,coalesce(OE.PORCRTFTE,0) PORCRTFTE,coalesce(OE.DISC1,0) retefuente, " +
                          " coalesce(OE.DISC3,0) RETEIVA,coalesce(OE.DISC2,0) RETEICA,OE.DESTOTAL,coalesce((" + sqlciiu + "),'') CODIGOCIIU,OE.DEV_FACTURA CRUCENUMERO, OE.DEV_TIPOFAC CRUCETIPO,OE.CUFE " +
                          " FROM CUST,OE,SHIPTO,TRIBUTARIA,TRIBUTARIA_TIPOCONTRIBUYENTE,TRIBUTARIA_TIPODOCUMENTO,TIPDOC,CIUDADES " +
                          " WHERE((CUST.ID_N = OE.ID_N) " +
                          " AND(CUST.ID_N = SHIPTO.ID_N) " +
                          " AND(OE.ID_N = TRIBUTARIA.ID_N) " +
                          " AND(OE.SHIPTO = SHIPTO.SUCCLIENTE) " +
                          " AND(SHIPTO.CITY = CIUDADES.CIUDAD AND CIUDADES.ID_DEPTO = SHIPTO.COD_DPTO) " +
                          " AND (OE.TIPO = TIPDOC.CLASE) " +
                          " AND(TRIBUTARIA.TDOC = TRIBUTARIA_TIPODOCUMENTO.TDOC) " +
                          " AND(TRIBUTARIA.TIPO_CONTRIBUYENTE = TRIBUTARIA_TIPOCONTRIBUYENTE.CODIGO OR TRIBUTARIA.TIPO_CONTRIBUYENTE = 0 )) " +
                          " AND(((OE.ID_EMPRESA = 1) " +
                          " AND(TIPDOC.SIGLA = '" + tipo + "') " +
                          " AND(OE.NUMBER = " + numero + ")))";


                    var da = db.DataReader(sql);

                    DataTable dt = new DataTable();

                    da.Fill(dt);

                    try
                    {
                        var r = dt.Rows[0];

                        var correoe = r["email"].ToString().Trim();

                        if (correoe == "")
                        {
                            MessageBox.Show("Verificar correo electronico " + numero.ToString());
                            LogText(tipo.ToString(), numero.ToString(), "Verificar correo electronico ");
                        }

                        var tipodoident = r["CODTIPOIDENTIFICACION"].ToString();
                        var ciiu        = r["CODIGOCIIU"].ToString();

                        if (tipodoident == "31" && ciiu == "")
                        {
                            MessageBox.Show("Verificar codigo ciiu tercero con nit " + numero.ToString());
                            LogText(tipo.ToString(), numero.ToString(), "Verificar codigo ciiu tercero con nit ");
                        }
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show("Verificar datos tributarios/direccion de envio " + numero.ToString());
                        LogText(tipo.ToString(), numero.ToString(), "Verificar datos tributarios/direccion de envio ");
                    }

                    #endregion



                    var data = fe.EnviarFactura(tipo.ToString().Trim(), Convert.ToInt32(numero));

                    //MessageBox.Show(tipo + "-" + numero.ToString() + data.mensaje);

                    if (data.codigo == 200 || data.codigo == 201)
                    {
                        //string clase =   Getclasefactura(tipo);

                        sql = "update oe set cufe = '" + data.cufe + "', procesadoDian ='S' where tipo='" + clase + "' and number=" + numero.ToString();

                        fb.ExecuteNonQuery(sql);
                    }

                    LogResult(tipo.ToString(), numero.ToString(), data);
                }
            }



            GetFacturas();
        }