/// <summary> /// recibe la sigla del documento, retorna la clase /// </summary> /// <param name="tipo"></param> /// <returns></returns> public string Getclasefactura(object tipo) { FbData db = new FbData(); var sqltipodoc = "select clase from tipdoc where sigla = '" + tipo + "'"; var da = db.DataReader(sqltipodoc); DataTable dt = new DataTable(); da.Fill(dt); var clase = dt.Rows[0][0].ToString(); return(clase); }
private void GetFacturas() { var tipofe = ConfigurationManager.AppSettings.Get("prefijofe"); var tiponc = ConfigurationManager.AppSettings.Get("prefijonc"); var tipond = ConfigurationManager.AppSettings.Get("prefijond"); FbData fb = new FbData(); var sql = "select TIPDOC.SIGLA AS tipo,a.number numero, a.fecha,b.id_n nit,b.company Cliente,a.subtotal,a.salestax impuesto, " + " a.total, coalesce(a.procesadodian, 'N') procesado, coalesce(a.cufe, '') cufe " + " from oe a,tipdoc, cust b where a.tipo = tipdoc.clase and a.id_n = b.id_n and a.fecha between '" + dtpDesde.Value.ToString("yyyy-MM-dd") + "' and '" + dtpHasta.Value.ToString("yyyy-MM-dd") + "' "; if (cmbDocumento.SelectedIndex == 0) { sql = sql + "and TIPDOC.SIGLA = '" + tipofe + "' "; } if (cmbDocumento.SelectedIndex == 1) { sql = sql + "and TIPDOC.SIGLA = '" + tipond + "' "; } if (cmbDocumento.SelectedIndex == 2) { sql = sql + "and TIPDOC.SIGLA = '" + tiponc + "' "; } var da = fb.DataReader(sql); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; }
public List <formapago> getfacturapago(string tipo, int numero) { var fp = new formapago(); FbData db = new FbData(); var sql = " SELECT PAGOS.NUMERO, " + " PAGOS.TIPO as tipo, PAGOS.CONCEPTO as concepto, " + " PAGOS.DESCRIPCION, PAGOS.VLR_PAGO as valor, PAGOS.DIAS, PAGOS.FECHA " + " FROM OE,TIPDOC,PAGOS " + "WHERE OE.TIPO = PAGOS.TIPO AND OE.NUMBER = PAGOS.NUMERO " + "AND (OE.TIPO = TIPDOC.CLASE) " + "AND (TIPDOC.SIGLA = '" + tipo + "') " + " AND (OE.NUMBER = " + numero + ")"; var da = db.DataReader(sql); DataTable dt = new DataTable(); da.Fill(dt); List <formapago> lfp = new List <formapago>(); foreach (DataRow row in dt.Rows) { formapago p = new formapago(); p.concepto = row["concepto"].ToString(); p.tipo = row["tipo"].ToString(); p.valor = Math.Abs(Convert.ToDecimal(row["valor"].ToString())); p.dias = Convert.ToInt32(row["dias"].ToString()); p.fecha = Convert.ToDateTime(row["fecha"].ToString()); lfp.Add(p); } return(lfp); }
private void btnEstado_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { var tipo = dataGridView1.SelectedRows[0].Cells[1].Value.ToString().Trim(); var numero = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[2].Value); Regex reg = new Regex("[*'\",_&#^@]"); tipo = reg.Replace(tipo, string.Empty); FacturaElectronica fe = new FacturaElectronica(); var data = fe.EstadoDocumento(tipo, numero); MessageBox.Show(tipo + "-" + numero.ToString() + "cufe:" + data.cufe); LogResult(tipo.ToString(), numero.ToString(), data); if (data.codigo == 200 || data.codigo == 201) { FbData fb = new FbData(); string clase = Getclasefactura(tipo); var sql = "update oe set cufe = '" + data.cufe + "', procesadoDian ='S' where tipo='" + clase.Trim() + "' and number=" + numero.ToString(); var rowsaffect = fb.ExecuteNonQuery(sql); } GetFacturas(); } else { MessageBox.Show("Seleccione una fila"); } }
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(); }
public List <facturadet> getfacturadet(string tipo, int numero) { //var fd = new facturadet(); FbData db = new FbData(); var sql = " SELECT OEDET.NUMBER, " + " OEDET.TIPO, " + " OEDET.ITEM CODIGOITEM, " + " ITEM.REFFABRICA, " + " ITEM.DESCRIPCION, " + " OEDET.QTYSHIP CANTIDAD, " + " OEDET.PRICE PRECIO, " + " OEDET.PORC_IVA, " + " OEDET.VLR_IVA, " + " coalesce(OEDET.DCTFIJO,0) DCTPORC, " + " coalesce(OEDET.TOTALDCT,0) DESCUENTOVAL, " + " (OEDET.EXTEND) SUBTOTAL, " + " (OEDET.EXTEND + OEDET.VLR_IVA) TOTAL, " + " UNIDAD.EQUIVALENTE AS UNDMEDIDA " + "FROM OE,TIPDOC,OEDET, ITEM, UNIDAD " + "WHERE OE.TIPO = OEDET.TIPO AND OE.NUMBER = OEDET.NUMBER " + "AND(OE.TIPO = TIPDOC.CLASE) " + "AND OEDET.ITEM = ITEM.ITEM " + "AND OEDET.COD_UNIDAD_VENTA = UNIDAD.COD_UNIDAD " + "AND(TIPDOC.SIGLA = '" + tipo + "') " + " AND (OE.NUMBER = " + numero + ")"; var da = db.DataReader(sql); DataTable dt = new DataTable(); da.Fill(dt); List <facturadet> lf = new List <facturadet>(); foreach (DataRow row in dt.Rows) { facturadet fe = new facturadet(); fe.codproducto = row["codigoitem"].ToString().Trim(); fe.referencia = row["reffabrica"].ToString().Trim(); fe.descprocucto = row["descripcion"].ToString().Trim(); fe.descalterna = ""; fe.cantidad = Math.Abs(Convert.ToDecimal(row["cantidad"].ToString())); fe.precio = Math.Abs(Convert.ToDecimal(row["precio"].ToString())); fe.porcimp = Convert.ToDecimal(row["porc_iva"].ToString()); fe.impuesto = Math.Abs(Convert.ToDecimal(row["vlr_iva"].ToString())); fe.unidadmedida = Convert.ToString(row["UNDMEDIDA"].ToString()); fe.descuentovalor = Math.Abs(Convert.ToDecimal(row["descuentoval"].ToString())); fe.subtotal = Math.Abs(fe.cantidad * fe.precio) - Math.Abs(fe.descuentovalor); //Math.Abs(Convert.ToDecimal(row["subtotal"].ToString())); fe.descuentol = Math.Abs(fe.descuentovalor / (fe.cantidad * fe.precio) * 100); // Math.Abs(Convert.ToDecimal(row["dctporc"].ToString())); fe.total = Math.Abs(Convert.ToDecimal(row["total"].ToString())); lf.Add(fe); } return(lf); }
public FacturaEnc getfacturaenc(string tipo, int numero) { 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"; var 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, SHIPTO.ADDR1 direccion,SHIPTO.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); var r = dt.Rows[0]; var codciudad = r["cod_ciudad"].ToString().Trim(); var coddepto = r["cod_dpto"].ToString().Trim(); codciudad = (Convert.ToInt32(codciudad) + 100000).ToString().Substring(1, 5); coddepto = (Convert.ToInt32(coddepto) + 100).ToString().Substring(1, 2); f.numero = Convert.ToInt32(r["number"].ToString()); f.tipodoc = r["tipo"].ToString().Trim(); f.prefijo = r["tipo"].ToString().Trim(); f.fecha = Convert.ToDateTime(r["fecha"].ToString()); f.fechavence = Convert.ToDateTime(r["fechavenc"].ToString()); f.nit = r["id_n"].ToString().Trim(); f.dv = r["cv"].ToString().Trim(); f.company = r["company"].ToString().Trim(); f.direccion = r["direccion"].ToString().Trim(); f.telefono1 = r["telefono1"].ToString().Trim().Replace(" ", ""); f.codciudad = codciudad; //r["cod_ciudad"].ToString().Trim(); f.ciudad = r["city"].ToString().Trim(); f.coddepto = coddepto; // r["cod_dpto"].ToString().Trim(); f.departamento = r["departamento"].ToString().Trim(); f.correoe = r["email"].ToString().Trim(); f.numordencompra = r["ocnumero"].ToString().Trim(); f.numremision = r["nroremision"].ToString().Trim(); f.comentario = r["comments"].ToString().Trim(); f.tipoIdentificacion = r["CODTIPOIDENTIFICACION"].ToString(); f.tipoPersona = r["CODTIPOPERSONA"].ToString(); f.vlrbruto = Math.Abs(Convert.ToDecimal(r["vlrbruto"].ToString())); f.subtotal = Math.Abs(Convert.ToDecimal(r["subtotal"].ToString())); f.impuesto = Math.Abs(Convert.ToDecimal(r["impuesto"].ToString())); f.total = Math.Abs(Convert.ToDecimal(r["total"].ToString())); f.baseretencion = Math.Abs(Convert.ToDecimal(r["subtotal"].ToString())); f.porcretefuente = Math.Abs(Convert.ToDecimal(r["PORCRTFTE"].ToString())); f.retefuente = Math.Abs(Convert.ToDecimal(r["retefuente"].ToString())); f.porcreteica = 0; //Convert.ToDecimal(r["dv"].ToString()); f.reteica = Math.Abs(Convert.ToDecimal(r["RETEICA"].ToString())); f.porcreteiva = 0; //Convert.ToDecimal(r["dv"].ToString()); f.reteiva = Math.Abs(Convert.ToDecimal(r["RETEIVA"].ToString())); f.descuentos = Convert.ToDecimal(r["DESTOTAL"].ToString()); f.codigociiu = r["CODIGOCIIU"].ToString(); f.cufe = r["cufe"].ToString(); f.crucenumero = r["crucenumero"].ToString(); f.crucetipo = r["crucetipo"].ToString(); //List<FacturaEnc> lf = new List<FacturaEnc>(); //foreach (DataRow row in dt.Rows) //{ // FacturaEnc fe = new FacturaEnc(); // fe.numero = Convert.ToInt32(row["Numero"].ToString()); // lf.Add(fe); //} return(f); }