private List <guiaRemision> Get_Xml_Guia_x_Traspaso(int IdEmpresa, decimal IdGuia) { try { tb_Bodega_Bus Bus_Bodega = new tb_Bodega_Bus(); tb_Bodega_Info Info_Bodega = new tb_Bodega_Info(); in_Guia_x_traspaso_bodega_Info Info_Guia = new in_Guia_x_traspaso_bodega_Info(); Info_Guia = Get_Info_x_in_Guia(IdEmpresa, IdGuia); Info_Bodega = Bus_Bodega.Get_Info_Bodega(IdEmpresa, Convert.ToInt32(Info_Guia.IdSucursal_Partida), 1); List <guiaRemision> listaaux = new List <guiaRemision>(); List <guiaRemision> lista = new List <guiaRemision>(); guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios(); guiaRemision myObject = new guiaRemision(); myObject.destinatarios = destinatarios; destinatarios.destinatario = new List <destinatario>(); destinatario destinatari = new destinatario(); destinatarioDetalles destinatariodet = new destinatarioDetalles(); destinatari.detalles = destinatariodet; destinatari.detalles.detalle = new List <detalle>(); string correo = ""; string format = "dd/MM/yyyy"; myObject.id = guiaRemisionID.comprobante; myObject.version = "1.1.0"; myObject.id = guiaRemisionID.comprobante; infoTributaria info = new infoTributaria(); myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision(); //información tributaria myObject.infoTributaria = info; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = string.IsNullOrEmpty(Info_Guia.razon_social_empresa)?"": Info_Guia.razon_social_empresa.Trim(); myObject.infoTributaria.nombreComercial = string.IsNullOrEmpty(Info_Guia.nom_comercial_empresa)?"": Info_Guia.nom_comercial_empresa.Trim(); myObject.infoTributaria.ruc = Info_Guia.ruc_empresa; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObject.infoTributaria.codDoc = "06"; myObject.infoTributaria.estab = Convert.ToString(Info_Guia.IdEstablecimiento); myObject.infoTributaria.ptoEmi = Info_Guia.IdPuntoEmision; myObject.infoTributaria.secuencial = Info_Guia.NumDocumento_Guia; myObject.infoTributaria.dirMatriz = string.IsNullOrEmpty(Info_Guia.direc_empresa)?"": Info_Guia.direc_empresa.Trim(); //datos de la guía de remisión myObject.infoGuiaRemision.dirEstablecimiento = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim(); myObject.infoGuiaRemision.dirPartida = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim(); myObject.infoGuiaRemision.razonSocialTransportista = string.IsNullOrEmpty(Info_Guia.nom_transportista) ? "" : Info_Guia.nom_transportista.Trim(); myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05"; myObject.infoGuiaRemision.rucTransportista = Info_Guia.ced_transportista; myObject.infoGuiaRemision.placa = Info_Guia.Placa; // myObject.infoGuiaRemision.obligadoContabilidad = (Info_Guia.obligado_conta_empresa == "SI" || Info_Guia.obligado_conta_empresa=="S") ?"S":"N"; // myObject.infoGuiaRemision.contribuyenteEspecial = Info_Guia.contrib_especial_empresa; myObject.infoGuiaRemision.fechaIniTransporte = Convert.ToDateTime(Info_Guia.Fecha_Traslado).ToString(format); myObject.infoGuiaRemision.fechaFinTransporte = Convert.ToDateTime(Info_Guia.Fecha_llegada).ToString(format); //datos del destinatario destinatari.identificacionDestinatario = Info_Guia.IdentificacionDestinatario; destinatari.razonSocialDestinatario = string.IsNullOrEmpty(Info_Guia.NombreDestinatario) ? "" : Info_Guia.NombreDestinatario.Trim(); destinatari.dirDestinatario = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada) ? "" : Info_Guia.Direc_sucu_Llegada.Trim(); destinatari.motivoTraslado = string.IsNullOrEmpty(Info_Guia.nom_Motivo_Traslado)?"": Info_Guia.nom_Motivo_Traslado.Trim(); //destinatari.ruta = ""; //destinatari.detalles.detalle //myObject.infoGuiaRemision //para extraer el detalle de la hoja, multiples lineas de producto in_Guia_x_traspaso_bodega_det_Bus BusDetalle_Guia = new in_Guia_x_traspaso_bodega_det_Bus(); List <in_Guia_x_traspaso_bodega_det_Info> ListInfoDetalle_Guia = new List <in_Guia_x_traspaso_bodega_det_Info>(); ListInfoDetalle_Guia = BusDetalle_Guia.Get_List_Guia_x_traspaso_bodega_x_OC_det(IdEmpresa, IdGuia); //if (ListInfoDetalle_Guia.Count() > 0) //{ foreach (var item in ListInfoDetalle_Guia) { detalle det = new detalle(); det.codigoInterno = item.IdProducto.ToString(); det.codigoAdicional = item.pr_codigo; det.descripcion = item.nom_producto.Trim() + (item.obs_OCompra == null ? "" : item.obs_OCompra.Trim()) + "(OC#" + item.IdOrdenCompra + ")"; det.cantidad = Convert.ToDecimal(item.Cantidad_enviar); destinatari.detalles.detalle.Add(det); } //} //else //{ in_Guia_x_traspaso_bodega_det_sin_oc_Bus BusDetalle_Guia_SOC = new in_Guia_x_traspaso_bodega_det_sin_oc_Bus(); List <in_Guia_x_traspaso_bodega_det_sin_oc_Info> ListInfoDetalle_Guia_SOC = new List <in_Guia_x_traspaso_bodega_det_sin_oc_Info>(); ListInfoDetalle_Guia_SOC = BusDetalle_Guia_SOC.Get_List_Guia_x_traspaso_bodega_det_sin_oc(IdEmpresa, IdGuia); foreach (var item in ListInfoDetalle_Guia_SOC) { detalle det = new detalle(); det.codigoInterno = (item.IdProducto == null) ? item.Num_Fact : Convert.ToDecimal(item.IdProducto).ToString(); det.codigoAdicional = item.Num_Fact; det.descripcion = item.nom_producto.Trim() + (item.observacion == null ? "" : item.observacion.Trim()) + "(Prove:" + item.nom_proveedor + ")"; det.cantidad = Convert.ToDecimal(item.Cantidad_enviar); destinatari.detalles.detalle.Add(det); } //} //campos adicionales guía de remisión guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional(); Cl_ValidarEmail_Info datosAdc = new Cl_ValidarEmail_Info(); if (datosAdc.email_bien_escrito(correo) == true) { compoadicional.nombre = "MAIL"; compoadicional.Value = correo; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } //punto de llegada if (Info_Guia.Direc_sucu_Llegada != "") //(dtrcabGuiaRe.IsDBNull(27) == false) { compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "DESTINO"; compoadicional.Value = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada)?"": Info_Guia.Direc_sucu_Llegada; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } destinatarios.destinatario.Add(destinatari); lista.Add(myObject); return(lista);; } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex) { EntityType = typeof(in_Guia_x_traspaso_bodega_Bus) }; } }
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 <Info.class_sri.GuiaRemision.guiaRemision> GenerarXmlGuiaRemision(List <vwprd_Guia_Remision_Electronica_Info> LstGuia_Remision_Electronica_Info) { try { char pad_Cero = '0'; List <guiaRemision> listaaux = new List <guiaRemision>(); List <guiaRemision> lista = new List <guiaRemision>(); guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios(); guiaRemision myObject = new guiaRemision(); myObject.destinatarios = destinatarios; destinatarios.destinatario = new List <destinatario>(); destinatario destinatari = new destinatario(); destinatarioDetalles destinatariodet = new destinatarioDetalles(); destinatari.detalles = destinatariodet; destinatari.detalles.detalle = new List <detalle>(); int cont = 0; string correo = ""; foreach (var item in LstGuia_Remision_Electronica_Info) { if (cont == 0) { cont = 1; myObject.id = guiaRemisionID.comprobante; myObject.version = "1.1.0"; myObject.id = guiaRemisionID.comprobante; infoTributaria info = new infoTributaria(); myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision(); // myObject.destinatarios = new guiaRemisionDestinatarios(); //información tributaria myObject.infoTributaria = info; info.ambiente = "1"; myObject.infoTributaria.tipoEmision = "1"; myObject.infoTributaria.razonSocial = item.RazonSocial; myObject.infoTributaria.nombreComercial = item.NombreComercial; myObject.infoTributaria.ruc = item.em_ruc; myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000"; myObject.infoTributaria.codDoc = item.CodDocumentoTipo; myObject.infoTributaria.estab = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero); //dtrcabGuiaRe.GetString(1).Substring(0, 3);//001 x tener una sola sucursale - coger codigo tb_sucursal myObject.infoTributaria.ptoEmi = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero); //dtrcabGuiaRe.GetString(1).Substring(3, 3);//001 x tener una sola punto de venta o caja myObject.infoTributaria.secuencial = Convert.ToString(item.IdGuiaRemision).PadLeft(9, pad_Cero); // dtrcabGuiaRe.GetString(1).Substring(6, 9); myObject.infoTributaria.dirMatriz = item.em_direccion; //dtrcabGuiaRe.GetString(6);//tb_empresa //datos de la guía de remisión myObject.infoGuiaRemision.dirEstablecimiento = item.Su_Direccion; //dtrcabGuiaRe.GetString(6);//tb_empresa myObject.infoGuiaRemision.dirPartida = item.Direccion_Origen; //dtrcabGuiaRe.GetString(7); myObject.infoGuiaRemision.razonSocialTransportista = item.Nombre_Transportista; //dtrcabGuiaRe.GetString(8);//tb_persona myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05"; //dtrcabGuiaRe.GetString(9);//ficha sri que tipo de ID-CC pendiente myObject.infoGuiaRemision.rucTransportista = item.Cedula_Transportista; //dtrcabGuiaRe.GetString(10);//tb_persona myObject.infoGuiaRemision.obligadoContabilidad = item.ObligadoAllevarConta; //obliconta;//tb_empresa - conversion S por SI o N por NO myObject.infoGuiaRemision.contribuyenteEspecial = item.ContribuyenteEspecial; //contspecia; myObject.infoGuiaRemision.fechaIniTransporte = Convert.ToString(item.gi_FechaIniTraslado); //dtrcabGuiaRe.GetString(11); myObject.infoGuiaRemision.fechaFinTransporte = Convert.ToString(item.gi_FechaFinTraslado); //dtrcabGuiaRe.GetString(12); myObject.infoGuiaRemision.placa = item.placa; //dtrcabGuiaRe.GetString(13); //datos del destinatario destinatari.identificacionDestinatario = item.pe_cedulaRuc; //dtrcabGuiaRe.GetString(15); destinatari.razonSocialDestinatario = item.pe_razonSocial; //dtrcabGuiaRe.GetString(16); destinatari.dirDestinatario = item.pe_direccion; //dtrcabGuiaRe.GetString(17); destinatari.motivoTraslado = item.descripcion_motivo_traslado; //dtrcabGuiaRe.GetString(18); destinatari.ruta = item.ruta; //dtrcabGuiaRe.GetString(19); // si la guia de remision tiene factura } //para extraer el detalle de la hoja, multiples lineas de producto detalle det = new detalle(); det.codigoInterno = item.pr_codigo; //dtrcabGuiaRe.GetString(21); det.codigoAdicional = item.pr_descripcion; //dtrcabGuiaRe.GetString(22); det.descripcion = item.pr_descripcion_2; //dtrcabGuiaRe.GetString(23); det.cantidad = Convert.ToDecimal(item.gi_cantidad); //Convert.ToDecimal(dtrcabGuiaRe.GetDouble(24)); // DETALLES ADICIONALES det.detallesAdicionales = new List <detalleDetAdicional>(); detalleDetAdicional DtelleAd = new detalleDetAdicional(); DtelleAd.nombre = item.unidad_medida_consumo; //dtrcabGuiaRe.GetString(25); DtelleAd.valor = item.unidad_medida_consumo; //dtrcabGuiaRe.GetString(25); det.detallesAdicionales.Add(DtelleAd); destinatari.detalles.detalle.Add(det); if (item.pe_correo != null) { correo = item.pe_correo; //dtrcabGuiaRe.GetString(26); } //campos adicionales guía de remisión guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional(); Cl_ValidarEmail_Info datosAdc = new Cl_ValidarEmail_Info(); if (datosAdc.email_bien_escrito(correo) == true) { compoadicional.nombre = "MAIL"; compoadicional.Value = correo; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } //punto de llegada if (item.Direccion_Destino != "") //(dtrcabGuiaRe.IsDBNull(27) == false) { compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "DESTINO"; compoadicional.Value = item.Direccion_Destino; myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } //Obra de referencia if (item.descripcion_obra != "") //(dtrcabGuiaRe.IsDBNull(28) == false) { compoadicional = new guiaRemisionCampoAdicional(); compoadicional.nombre = "OBRA"; compoadicional.Value = item.descripcion_obra; //dtrcabGuiaRe.GetString(28); myObject.infoAdicional = new List <guiaRemisionCampoAdicional>(); myObject.infoAdicional.Add(compoadicional); } destinatarios.destinatario.Add(destinatari); lista.Add(myObject); } return(lista);; } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex) { EntityType = typeof(fa_guia_remision_Bus) }; } }