public fx_GeneradorXML_Comprobante_Info(string _IdComprobante, DateTime _Fecha, eTipoComprobante _TipoCbte , string _Observacion, comprobanteRetencion _cbteRet) { IdComprobante = _IdComprobante; Fecha = _Fecha; TipoCbte = _TipoCbte; Observacion = _Observacion; cbteRet = _cbteRet; }
public TipoComprobante_Info() { CbteFactura = new factura(); CbteFactura_evento = new factura(); cbteRet = new comprobanteRetencion(); cbteNC = new notaCredito(); cbteDeb = new notaDebito(); cbtGR = new guiaRemision(); }
public Comprobante_Info(string _IdComprobante, DateTime _Fecha, Core.Erp.Info.General.Cl_Enumeradores.eTipoComprobante _TipoCbte , string _Observacion, comprobanteRetencion _cbteRet) { IdComprobante = _IdComprobante; Fecha = _Fecha; TipoCbte = _TipoCbte; Observacion = _Observacion; cbteRet = _cbteRet; }
public List <comprobanteRetencion> GenerarXmlRetencion(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { #region conexion de base detos efrim try { using (SqlConnection co = new SqlConnection(OconEfirm)) { co.Open(); sql = "select RUC,RAZONSOCIAL,NOMBRECOMERCIAL,DIRMATRIZ,CONTRIBUYENTEESPECIAL from tb_Empresa where RUC ='0992496797001'"; SqlCommand cmd = new SqlCommand(sql, co); SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { ruc = reader.GetString(0); Rz = reader.GetString(1); Nomcom = reader.GetString(2); direccion = reader.GetString(3); contspecia = reader.GetString(4); } co.Close(); reader.Close(); } } catch (Exception ex) { } #endregion // formato fecha string sFi, sFf; sFi = string.Format(formatoFechaDB, FechaIni); sFf = string.Format(formatoFechaDB, FechaFin); try { List <comprobanteRetencion> lista = new List <comprobanteRetencion>(); using (SqlConnection conexion = new SqlConnection(ConexionDBCliente)) { conexion.Open(); string sqlcabFact = "select * from ELECTRONICA_RET_CABECERA where fechaEmision between '" + sFi + "' and '" + sFf + "'"; SqlCommand cmdcabRet = new SqlCommand(sqlcabFact, conexion); SqlDataReader dtrCabRet = cmdcabRet.ExecuteReader(); while (dtrCabRet.Read()) { try { comprobanteRetencion myObjectRete = new comprobanteRetencion(); myObjectRete.id = comprobanteRetencionID.comprobante; myObjectRete.version = "1.0.0"; myObjectRete.idSpecified = true; myObjectRete.infoTributaria = new infoTributaria(); myObjectRete.infoCompRetencion = new comprobanteRetencionInfoCompRetencion(); myObjectRete.impuestos = new List <FirmElect.Info.class_sri.Retencion.impuesto>(); myObjectRete.infoTributaria.ambiente = "1"; myObjectRete.infoTributaria.tipoEmision = "1"; myObjectRete.infoTributaria.razonSocial = Rz; myObjectRete.infoTributaria.nombreComercial = Nomcom; myObjectRete.infoTributaria.ruc = ruc; myObjectRete.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObjectRete.infoTributaria.codDoc = "07"; myObjectRete.infoTributaria.estab = dtrCabRet.GetString(5); myObjectRete.infoTributaria.ptoEmi = dtrCabRet.GetString(6); myObjectRete.infoTributaria.secuencial = Convert.ToString(dtrCabRet.GetString(0)); myObjectRete.infoTributaria.dirMatriz = direccion; myObjectRete.infoCompRetencion.fechaEmision = string.Format("{0:dd/MM/yyyy}", dtrCabRet.GetDateTime(3)).Replace('-', '/');//.Trim(); myObjectRete.infoCompRetencion.dirEstablecimiento = direccion; //myObjectRete.infoCompRetencion.contribuyenteEspecial = contspecia; myObjectRete.infoCompRetencion.obligadoContabilidad = "SI"; myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = dtrCabRet.GetString(4); myObjectRete.infoCompRetencion.razonSocialSujetoRetenido = dtrCabRet.GetString(2); myObjectRete.infoCompRetencion.identificacionSujetoRetenido = Convert.ToString(dtrCabRet.GetString(1)); myObjectRete.infoCompRetencion.periodoFiscal = Convert.ToString(myObjectRete.infoCompRetencion.fechaEmision).Substring(3, 7); // sentencia para extraer detalle de retencion using (SqlConnection conexion1 = new SqlConnection(ConexionDBCliente)) { conexion1.Open(); string sqlDetalleRet = "select * from ELECTRONICA_RET_DETALLE where secuencial='" + dtrCabRet.GetString(0) + "' "; SqlCommand cmdDetalleFac = new SqlCommand(sqlDetalleRet, conexion1); SqlDataReader dtrDetalleRet = cmdDetalleFac.ExecuteReader(); while (dtrDetalleRet.Read()) { FirmElect.Info.class_sri.Retencion.impuesto imp = new FirmElect.Info.class_sri.Retencion.impuesto(); imp.codigo = dtrDetalleRet.GetString(1); imp.codigoRetencion = dtrDetalleRet.GetString(2); imp.baseImponible = dtrDetalleRet.GetDecimal(3); imp.porcentajeRetener = Convert.ToDecimal(dtrDetalleRet.GetDecimal(4)); imp.valorRetenido = dtrDetalleRet.GetDecimal(5); imp.codDocSustento = dtrDetalleRet.GetString(6); imp.numDocSustento = dtrDetalleRet.GetString(7); myObjectRete.infoCompRetencion.fechaEmision = string.Format("{0:dd/MM/yyyy}", dtrCabRet.GetDateTime(3)).Replace('-', '/');//.Trim(); myObjectRete.impuestos.Add(imp); if (dtrDetalleRet.IsDBNull(8) == false) { campoAdicional = dtrDetalleRet.GetString(8); } } // campos adicionales fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (datosAdc.email_bien_escrito(campoAdicional) == true) { comprobanteRetencionCampoAdicional compoadicional = new comprobanteRetencionCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = campoAdicional; myObjectRete.infoAdicional = new List <comprobanteRetencionCampoAdicional>(); myObjectRete.infoAdicional.Add(compoadicional); } dtrDetalleRet.Close(); conexion1.Close(); lista.Add(myObjectRete); } } catch (Exception ex) { } } dtrCabRet.Close(); conexion.Close(); return(lista); } } catch (Exception ex) { return(new List <comprobanteRetencion>()); } }
public List <comprobanteRetencion> GenerarXmlRetencion(List <cp_XML_Documento_Info> consulta, int IdEmpresa, decimal IdDocumento) { try { string secuencia_aux = ""; string secuencia = ""; List <comprobanteRetencion> lista = new List <comprobanteRetencion>(); EntitiesCuentasxPagar ECXP = new EntitiesCuentasxPagar(); foreach (var item in consulta) { comprobanteRetencion myObjectRete = new comprobanteRetencion(); myObjectRete.version = "1.0.0"; myObjectRete.idSpecified = true; myObjectRete.infoTributaria = new infoTributaria(); myObjectRete.infoCompRetencion = new comprobanteRetencionInfoCompRetencion(); myObjectRete.impuestos = new List <Info.class_sri.Retencion.impuesto>(); myObjectRete.infoTributaria.ambiente = "1"; myObjectRete.infoTributaria.tipoEmision = "1"; myObjectRete.infoTributaria.razonSocial = item.RazonSocial.Trim(); //empresa validar myObjectRete.infoTributaria.nombreComercial = item.NombreComercial.Trim(); //empresa validar myObjectRete.infoTributaria.ruc = item.em_ruc.Trim(); //empresa validar myObjectRete.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObjectRete.infoTributaria.codDoc = "07"; //validar secuencial retencion secuencia_aux = ""; secuencia = ""; if (!String.IsNullOrEmpty(item.ret_NumeroDocumento)) { if (item.ret_NumeroDocumento.Length < 9) { int conta = item.ret_NumeroDocumento.Length; int diferencia = 9 - conta; secuencia_aux = secuencia_aux.PadLeft(diferencia, '0'); secuencia = secuencia_aux + item.ret_NumeroDocumento; item.ret_NumeroDocumento = secuencia; } } string[] serie = Convert.ToString(item.serie).Split('-'); myObjectRete.infoTributaria.estab = serie[0].Trim(); // retencion myObjectRete.infoTributaria.ptoEmi = serie[1].Trim();; // retencion myObjectRete.infoTributaria.secuencial = item.ret_NumeroDocumento; // retencion validar ceros a la izquierda myObjectRete.infoTributaria.dirMatriz = item.em_direccion.Trim(); //empresa validar myObjectRete.infoCompRetencion.fechaEmision = Convert.ToDateTime(item.ret_Fecha).Date.ToString("dd/MM/yyyy"); // factura myObjectRete.infoCompRetencion.dirEstablecimiento = item.em_direccion; ///sucursal myObjectRete.infoCompRetencion.contribuyenteEspecial = item.ContribuyenteEspecial; //empresa myObjectRete.infoCompRetencion.obligadoContabilidad = (item.ObligadoAllevarConta == "S" || item.ObligadoAllevarConta == "SI") ? "SI" : "NO"; switch (item.IdTipoDocumento) { case "CED": myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "05"; break; case "PAS": myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "06"; break; case "RUC": myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "04"; break; default: break; } myObjectRete.infoCompRetencion.razonSocialSujetoRetenido = item.pe_nombreCompleto.Replace('*', ' ').Trim(); // proveedor myObjectRete.infoCompRetencion.identificacionSujetoRetenido = item.emi_Ruc.Trim(); // cedula o ruc myObjectRete.infoCompRetencion.periodoFiscal = Convert.ToString(myObjectRete.infoCompRetencion.fechaEmision).Substring(3, 7); // factura // consultar detalle Retencion List <cp_XML_Documento_Retencion_Info> listaDetReten = new List <cp_XML_Documento_Retencion_Info>(); listaDetReten = GetList(IdEmpresa, IdDocumento); if (listaDetReten.Count != 0) { foreach (var itemDET in listaDetReten) { Info.class_sri.Retencion.impuesto imp = new Info.class_sri.Retencion.impuesto(); if (itemDET.re_tipoRet == "IVA") { imp.codigo = "2"; switch (Convert.ToString(itemDET.re_Porcen_retencion)) { case "0": imp.codigoRetencion = "8"; imp.porcentajeRetener = 0; break; case "10": imp.codigoRetencion = "9"; imp.porcentajeRetener = 10; break; case "20": imp.codigoRetencion = "10"; imp.porcentajeRetener = 20; break; case "30": imp.codigoRetencion = "1"; imp.porcentajeRetener = 30; break; case "50": imp.codigoRetencion = "11"; imp.porcentajeRetener = 50; break; case "70": imp.codigoRetencion = "2"; imp.porcentajeRetener = 70; break; case "100": imp.codigoRetencion = "3"; imp.porcentajeRetener = 100; break; default: break; } } if (itemDET.re_tipoRet == "RTF") { imp.codigo = "1"; imp.codigoRetencion = itemDET.re_Codigo_impuesto; imp.porcentajeRetener = Convert.ToDecimal(itemDET.re_Porcen_retencion); } imp.baseImponible = Math.Round(Convert.ToDecimal(itemDET.re_baseRetencion), 2); imp.valorRetenido = Math.Round(Convert.ToDecimal(itemDET.re_valor_retencion), 2); imp.codDocSustento = item.CodDocumento; //si factura es 01 y // validar secuencial factura secuencia_aux = ""; secuencia = ""; if (!String.IsNullOrEmpty(item.NumeroDocumento)) { if (item.NumeroDocumento.Length < 9) { int conta = item.NumeroDocumento.Length; int diferencia = 9 - conta; secuencia_aux = secuencia_aux.PadLeft(diferencia, '0'); secuencia = secuencia_aux + item.NumeroDocumento; item.NumeroDocumento = secuencia; } } string[] serieFact = Convert.ToString(item.co_serie).Split('-'); imp.numDocSustento = serieFact[0].Trim() + serieFact[1].Trim() + Convert.ToString(item.NumeroDocumento).Trim(); imp.fechaEmisionDocSustento = Convert.ToDateTime(item.FechaEmision).ToString("dd/MM/yyyy"); // myObjectRete.infoCompRetencion.fechaEmision = item.co_FechaFactura.ToString(format); myObjectRete.impuestos.Add(imp); if (!String.IsNullOrEmpty(item.pe_correo.Trim())) { string campoAdicional = item.pe_correo.Trim(); // campos adicionales Cl_ValidarEmail_Info datosAdc = new Cl_ValidarEmail_Info(); if (!String.IsNullOrEmpty(campoAdicional)) { if (datosAdc.email_bien_escrito(campoAdicional) == true) { comprobanteRetencionCampoAdicional compoadicional = new comprobanteRetencionCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = campoAdicional; myObjectRete.infoAdicional = new List <comprobanteRetencionCampoAdicional>(); myObjectRete.infoAdicional.Add(compoadicional); } } } } } lista.Add(myObjectRete); } return(lista); } catch (Exception ex) { throw; } }
public List <comprobanteRetencion> GenerarXmlRetencion(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB) { //string sFi, sFf; //sFi = string.Format(formatoFechaDB, FechaIni); //sFf = string.Format(formatoFechaDB, FechaFin); DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString()); DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString()); List <comprobanteRetencion> lista = new List <comprobanteRetencion>(); try { using (Entity_conexion_efixed Context = new Entity_conexion_efixed()) { var retenciones = Context.vwfe_retencion.Where(v => v.fecha >= Fi && v.fecha <= Ff); foreach (var item in retenciones) { try { comprobanteRetencion myObjectRete = new comprobanteRetencion(); myObjectRete.id = comprobanteRetencionID.comprobante; myObjectRete.version = "1.0.0"; myObjectRete.idSpecified = true; myObjectRete.infoTributaria = new infoTributaria(); myObjectRete.infoCompRetencion = new comprobanteRetencionInfoCompRetencion(); myObjectRete.impuestos = new List <FirmElect.Info.class_sri.Retencion.impuesto>(); myObjectRete.infoTributaria.ambiente = "1"; myObjectRete.infoTributaria.tipoEmision = "1"; myObjectRete.infoTributaria.razonSocial = item.RazonSocial; myObjectRete.infoTributaria.nombreComercial = item.NombreComercial; myObjectRete.infoTributaria.ruc = item.em_ruc; myObjectRete.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObjectRete.infoTributaria.codDoc = "07"; myObjectRete.infoTributaria.estab = item.serie1; myObjectRete.infoTributaria.ptoEmi = item.serie2; myObjectRete.infoTributaria.secuencial = Convert.ToString(item.NumRetencion); myObjectRete.infoTributaria.dirMatriz = item.em_direccion; myObjectRete.infoCompRetencion.fechaEmision = string.Format("{0:dd/MM/yyyy}", item.fecha);//.Trim(); myObjectRete.infoCompRetencion.dirEstablecimiento = item.em_direccion; //if (item.ContribuyenteEspecial != "0000") //{ // myObjectRete.infoCompRetencion.contribuyenteEspecial = item.ContribuyenteEspecial; //} myObjectRete.infoCompRetencion.obligadoContabilidad = "SI"; if (item.IdTipoDocumento == "RUC") { myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "04"; } if (item.IdTipoDocumento == "PAS") { myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "06"; } if (item.IdTipoDocumento == "CED") { myObjectRete.infoCompRetencion.tipoIdentificacionSujetoRetenido = "05"; } myObjectRete.infoCompRetencion.razonSocialSujetoRetenido = (item.pe_nombreCompleto.ToString().Replace("S.A", "")).Trim(); myObjectRete.infoCompRetencion.identificacionSujetoRetenido = Convert.ToString(item.pe_cedulaRuc); myObjectRete.infoCompRetencion.periodoFiscal = Convert.ToString(myObjectRete.infoCompRetencion.fechaEmision).Substring(3, 7); // sentencia para extraer detalle de retencion var retencion_det = Context.vwfe_retencion_detalle.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdRetencion == item.IdRetencion).ToList(); foreach (var item_det in retencion_det) { FirmElect.Info.class_sri.Retencion.impuesto imp = new FirmElect.Info.class_sri.Retencion.impuesto(); if (item_det.re_tipoRet == "RTF") { imp.codigo = "1"; } else { imp.codigo = "2"; } if (item_det.re_tipoRet != "RTF") { if (item_det.re_Porcen_retencion == 10) { imp.codigoRetencion = "09"; } if (item_det.re_Porcen_retencion == 20) { imp.codigoRetencion = "10"; } if (item_det.re_Porcen_retencion == 30) { imp.codigoRetencion = "1"; } if (item_det.re_Porcen_retencion == 50) { imp.codigoRetencion = "11"; } if (item_det.re_Porcen_retencion == 70) { imp.codigoRetencion = "2"; } if (item_det.re_Porcen_retencion == 100) { imp.codigoRetencion = "3"; } } else { imp.codigoRetencion = item_det.re_Codigo_impuesto; } imp.baseImponible = Convert.ToDecimal(item_det.baseRetencion); imp.porcentajeRetener = Convert.ToDecimal(item_det.re_Porcen_retencion); imp.valorRetenido = Convert.ToDecimal(item_det.re_valor_retencion); imp.codDocSustento = item.IdOrden_giro_Tipo.ToString(); imp.numDocSustento = item.co_serie.Substring(0, 3) + item.co_serie.Substring(4, 3) + item.co_factura; imp.fechaEmisionDocSustento = string.Format("{0:dd/MM/yyyy}", item.co_fechaOg);//.Trim(); myObjectRete.impuestos.Add(imp); } // campos adicionales if (item.pe_correo == null) { item.pe_correo = ""; } fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info(); if (datosAdc.email_bien_escrito(item.pe_correo) == true) { myObjectRete.infoAdicional = new List <comprobanteRetencionCampoAdicional>(); comprobanteRetencionCampoAdicional compoadicional = new comprobanteRetencionCampoAdicional(); compoadicional.nombre = "MAIL"; compoadicional.Value = item.pe_correo; myObjectRete.infoAdicional.Add(compoadicional); } lista.Add(myObjectRete); } catch (Exception ex) { } } return(lista); } } catch (Exception ex) { return(new List <comprobanteRetencion>()); } }