/// <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); }
/// <summary> /// Constructor clase IDFactura. /// </summary> public ClavePaginacion() { IDEmisorFactura = new IDEmisorFactura(); }
/// <summary> /// Constructor clase IDFactura. /// </summary> public IDFactura() { IDEmisorFactura = new IDEmisorFactura(); }