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(); }