/// <summary> /// Constructor clase RegistroLRFacturasEmitidas. /// </summary> public FiltroConsultaOTT() { if (Settings.Current.IDVersionSii.CompareTo("1.1") < 0) { PeriodoImpositivo = new PeriodoImpositivo(); } else { PeriodoLiquidacion = new PeriodoImpositivo(); } }
/// <summary> /// Constructor clase RegistroLRBajaRecibidas. /// </summary> public RegistroLRBajaDetOperacionIntracomunitaria() { if (Settings.Current.IDVersionSii.CompareTo("1.1") < 0) { PeriodoImpositivo = new PeriodoImpositivo(); } else { PeriodoLiquidacion = new PeriodoImpositivo(); } IDFactura = new IDFactura(); }
/// <summary> /// Constructor clase RegistroLRFacturasEmitidas. /// </summary> public RegistroLRBajaExpedidas() { if (Settings.Current.IDVersionSii.CompareTo("1.1") < 0) { PeriodoImpositivo = new PeriodoImpositivo(); } else { PeriodoLiquidacion = new PeriodoImpositivo(); } IDFactura = new IDFactura(); }
/// <summary> /// Constructor clase RegistroLRFacturasEmitidas. /// </summary> public RegistroLROpTrascendTribu() { if (Settings.Current.IDVersionSii.CompareTo("1.1") < 0) { PeriodoImpositivo = new PeriodoImpositivo(); } else { PeriodoLiquidacion = new PeriodoImpositivo(); } Contraparte = new Contraparte(); }
/// <summary> /// Constructor de la clase RespuestaConsultaLRBienesInversion. /// </summary> public RespuestaConsultaLRBienesInversion() { Cabecera = new Cabecera(); if (Settings.Current.IDVersionSii.CompareTo("1.1") < 0) { PeriodoImpositivo = new PeriodoImpositivo(); } else { PeriodoLiquidacion = new PeriodoImpositivo(); } RegistroRCLRBienesInversion = new List <RegistroRCLRBienesInversion>(); }
/// <summary> /// Función para tratar el registro de factura que se acaba de leer. /// </summary> /// <param name="_CamposReg"></param> /// <returns></returns> private RegistroLRFacturasRecibidas TratarFactRecibida(string[] _CamposReg) { RegistroLRFacturasRecibidas _RegLRFactReciWRK = new RegistroLRFacturasRecibidas(); // Informamos el periodo impositivo. PeriodoImpositivo _PeriodoWrk = new PeriodoImpositivo { Ejercicio = _CamposReg[1], Periodo = _CamposReg[2] }; _RegLRFactReciWRK.PeriodoImpositivo = _PeriodoWrk; // Informamos el IDFactura. IDFactura _IDFactWrk = new IDFactura(); IDEmisorFactura _IDEmisorFact = new IDEmisorFactura(); Contraparte _ReceptorWrk = new Contraparte(); if (string.IsNullOrWhiteSpace(_CamposReg[4])) { _IDEmisorFact.NIF = _CamposReg[3]; _ReceptorWrk.NIF = _IDEmisorFact.NIF; } else { IDOtro _ProveedorExtWrk = new IDOtro { CodigoPais = _CamposReg[4], IDType = _CamposReg[5], ID = _CamposReg[3] }; _IDEmisorFact.IDOtro = _ProveedorExtWrk; _ReceptorWrk.IDOtro = _IDEmisorFact.IDOtro; } _IDFactWrk.IDEmisorFactura = _IDEmisorFact; _IDFactWrk.NumSerieFacturaEmisor = _CamposReg[6].Trim(); _IDFactWrk.FechaExpedicionFacturaEmisor = _CamposReg[7]; _RegLRFactReciWRK.IDFactura = _IDFactWrk; // Procedemos a tratar la factura actual. FacturaRecibida _FacturaActual = new FacturaRecibida { //Aquí indicamos si se trata de una factura 'normal' o es 'rectificativa'. TipoFactura = _CamposReg[8], ClaveRegimenEspecialOTrascendencia = _CamposReg[9], ImporteTotal = ((_CamposReg[10]).Trim()).Replace(',', '.'), FechaOperacion = _CamposReg[17] }; if (string.IsNullOrWhiteSpace(_CamposReg[11])) { _CamposReg[11] = "Hay que informar el concepto de la factura"; } _FacturaActual.DescripcionOperacion = _CamposReg[11].Trim(); // Informamos la contraparte, que según pruebas con el SOAP, este tiene que ser igual que el IDEmisorFactura _ReceptorWrk.NombreRazon = _CamposReg[12].Trim(); _FacturaActual.Contraparte = _ReceptorWrk; _FacturaActual.FechaRegContable = _CamposReg[13]; // Procedemos a informar los campos en el caso de que se trate del envio de una factura rectificativa. if (!string.IsNullOrWhiteSpace(_CamposReg[14])) { _FacturaActual.TipoRectificativa = _CamposReg[14]; ImporteRectificacion _ImpRectifWrk = new ImporteRectificacion { BaseRectificada = ((_CamposReg[15]).Trim()).Replace(',', '.'), CuotaRectificada = ((_CamposReg[16]).Trim()).Replace(',', '.') }; _FacturaActual.ImporteRectificacion = _ImpRectifWrk; } // Procedemos a informar la cuota deducible en el caso de que corresponda. // Si no viene informada la cuota deducible, pondremos '-1' con el fin de que al volver a generarse el lote // la ponga a cero, y si no la calcule. if (string.IsNullOrWhiteSpace(_CamposReg[18])) { _FacturaActual.CuotaDeducible = "-1"; } else { _FacturaActual.CuotaDeducible = ((_CamposReg[18]).Trim()).Replace(',', '.'); } _RegLRFactReciWRK.FacturaRecibida = _FacturaActual; return(_RegLRFactReciWRK); }
// Función para tratar el registro de factura que se acaba de leer. private RegistroLRDetOperacionIntracomunitaria TratarOperIntracom(string[] _CamposReg) { RegistroLRDetOperacionIntracomunitaria _RegLRFactIntraWrk = new RegistroLRDetOperacionIntracomunitaria(); // Informamos el periodo impositivo. PeriodoImpositivo _PeriodoWrk = new PeriodoImpositivo { Ejercicio = _CamposReg[1], Periodo = _CamposReg[2] }; _RegLRFactIntraWrk.PeriodoImpositivo = _PeriodoWrk; // // Informamos el IDFactura. // Por las pruebas que hemos podido realizar, en el SoapUI, dependiendo de si se trata de una factura intracomunitaria emitida o recibida // el emisor de la misma será o el titular o el proveedor/acreedor que nos haya remitido la factura. En nuestro caso, al tratarse de facturas // recibidas, el emisor de la misma será el proveedor/acreedor. Procedemos a modificar el código para que se genere correctamente el lote. // IDFactura _IDFactWrk = new IDFactura(); _IDFactWrk.IDEmisorFactura.NombreRazon = _CamposReg[3].Trim(); if (string.IsNullOrWhiteSpace(_CamposReg[5])) { _IDFactWrk.IDEmisorFactura.NIF = _CamposReg[4]; } else { IDOtro _EmisorExt = new IDOtro { ID = _CamposReg[4], CodigoPais = _CamposReg[5], IDType = _CamposReg[6] }; _IDFactWrk.IDEmisorFactura.IDOtro = _EmisorExt; } _IDFactWrk.NumSerieFacturaEmisor = _CamposReg[7].Trim(); _IDFactWrk.FechaExpedicionFacturaEmisor = _CamposReg[8]; _RegLRFactIntraWrk.IDFactura = _IDFactWrk; // // Informamos la contraparte, que, según la documentación y las pruebas realizadas, en nuestro caso tendremos que informar // los datos del titular del libro.. // Contraparte _ContraparteWrk = new Contraparte { NombreRazon = _CamposReg[9].Trim(), NIF = _CamposReg[10] }; _RegLRFactIntraWrk.Contraparte = _ContraparteWrk; // Informamos los datos correspondientes a la operación intracomunitaria. OperacionIntracomunitaria _OperIntraWrk = new OperacionIntracomunitaria { TipoOperacion = _CamposReg[11], ClaveDeclarado = _CamposReg[12], EstadoMiembro = _CamposReg[13], DescripcionBienes = _CamposReg[14], DireccionOperador = _CamposReg[15] }; _RegLRFactIntraWrk.OperacionIntracomunitaria = _OperIntraWrk; return(_RegLRFactIntraWrk); }
// Función para tratar el registro de factura que se acaba de leer. private RegistroLRFacturasEmitidas TratarFactEmitida(string[] _CamposReg) { RegistroLRFacturasEmitidas _RegLRFactEmitWRK = new RegistroLRFacturasEmitidas(); // Informamos el periodo impositivo. PeriodoImpositivo _PeriodoWrk = new PeriodoImpositivo { Ejercicio = _CamposReg[1], Periodo = _CamposReg[2] }; _RegLRFactEmitWRK.PeriodoImpositivo = _PeriodoWrk; // Informamos el IDFactura. IDFactura _IDFactWrk = new IDFactura(); _IDFactWrk.IDEmisorFactura.NIF = _CamposReg[3]; _IDFactWrk.NumSerieFacturaEmisor = _CamposReg[4].Trim(); _IDFactWrk.FechaExpedicionFacturaEmisor = _CamposReg[5]; // En caso de que se trate de una factura de Asiento Resumen, hay que informar la última factura // que se incluye en este envío. if (!string.IsNullOrWhiteSpace(_CamposReg[14])) { _IDFactWrk.NumSerieFacturaEmisorResumenFin = _CamposReg[14]; } _RegLRFactEmitWRK.IDFactura = _IDFactWrk; // Procedemos a tratar la factura actual. FacturaExpedida _FacturaActual = new FacturaExpedida { TipoFactura = _CamposReg[6], ClaveRegimenEspecialOTrascendencia = _CamposReg[7], ImporteTotal = ((_CamposReg[8]).Trim()).Replace(',', '.') }; if (string.IsNullOrWhiteSpace(_CamposReg[9])) { _CamposReg[9] = "Hay que informar el concepto de la factura"; } _FacturaActual.DescripcionOperacion = _CamposReg[9].Trim(); // Informamos la contraparte, que cambiará dependiendo de si se trata de un cliente nacional o extranjero Contraparte _ClienteWrk = new Contraparte { NombreRazon = _CamposReg[10].Trim() }; if (string.IsNullOrWhiteSpace(_CamposReg[12])) { _ClienteWrk.NIF = _CamposReg[11]; } else { IDOtro _ClienteExtWrk = new IDOtro { CodigoPais = _CamposReg[12], IDType = _CamposReg[13], ID = _CamposReg[11] }; _ClienteWrk.IDOtro = _ClienteExtWrk; } _FacturaActual.Contraparte = _ClienteWrk; // Indicamos la fecha de operación, en el caso de que venga informada if (!string.IsNullOrWhiteSpace(_CamposReg[15])) { _FacturaActual.FechaOperacion = _CamposReg[15]; } // Procedemos a informar los campos en el caso de que se trate del envio de una factura rectificativa. if (!string.IsNullOrWhiteSpace(_CamposReg[16])) { _FacturaActual.TipoRectificativa = _CamposReg[16]; ImporteRectificacion _ImpRectifWrk = new ImporteRectificacion { BaseRectificada = ((_CamposReg[17]).Trim()).Replace(',', '.'), CuotaRectificada = ((_CamposReg[18]).Trim()).Replace(',', '.') }; _FacturaActual.ImporteRectificacion = _ImpRectifWrk; } // Procedemos a tratar el caso de que se trate del deslgose no Sujeto TipoDesglose tipoDesglose = new TipoDesglose(); DesgloseFactura desgloseFactura = new DesgloseFactura(); NoSujeta noSujeta = new NoSujeta(); if (!string.IsNullOrWhiteSpace(_CamposReg[19]) || !string.IsNullOrWhiteSpace(_CamposReg[20])) { if (!string.IsNullOrWhiteSpace(_CamposReg[19])) { noSujeta.ImportePorArticulos7_14_Otros = ((_CamposReg[19]).Trim()).Replace(',', '.'); } if (!string.IsNullOrWhiteSpace(_CamposReg[20])) { noSujeta.ImporteTAIReglasLocalizacion = ((_CamposReg[20]).Trim()).Replace(',', '.'); } desgloseFactura.NoSujeta = noSujeta; tipoDesglose.DesgloseFactura = desgloseFactura; _FacturaActual.TipoDesglose = tipoDesglose; } _RegLRFactEmitWRK.FacturaExpedida = _FacturaActual; return(_RegLRFactEmitWRK); }