예제 #1
0
        public En_Emisor ObtenerEmisor(string numeroDocumentoIdentidad, ref string mensajeRetorno)
        {
            SqlConnection cn  = new SqlConnection(connectionString);
            SqlCommand    cmd = new SqlCommand("dbo.usp_ObtenerEmisor", cn)
            {
                CommandType = CommandType.StoredProcedure
            };

            cmd.Parameters.Add(new SqlParameter {
                ParameterName = "@numeroDocumentoIdentidad", SqlDbType = SqlDbType.VarChar, Size = 20, Value = numeroDocumentoIdentidad
            });

            try
            {
                En_Emisor emisor = null;

                cn.Open();
                SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

                if (dr.Read())
                {
                    emisor = new En_Emisor
                    {
                        CodigoDomicilioFiscal = (dr.IsDBNull(dr.GetOrdinal("CodigoDomicilioFiscal"))) ? "" : dr.GetString(dr.GetOrdinal("CodigoDomicilioFiscal")),
                        CodigoPais            = (dr.IsDBNull(dr.GetOrdinal("CodigoPais"))) ? "" : dr.GetString(dr.GetOrdinal("CodigoPais")),
                        CodigoUbigeo          = (dr.IsDBNull(dr.GetOrdinal("CodigoUbigeo"))) ? "" : dr.GetString(dr.GetOrdinal("CodigoUbigeo")),
                        Contacto = new En_Contacto
                        {
                            Correo   = (dr.IsDBNull(dr.GetOrdinal("ContactoCorreo"))) ? "" : dr.GetString(dr.GetOrdinal("ContactoCorreo")),
                            Nombre   = (dr.IsDBNull(dr.GetOrdinal("ContactoNombre"))) ? "" : dr.GetString(dr.GetOrdinal("ContactoNombre")),
                            Telefono = (dr.IsDBNull(dr.GetOrdinal("ContactoTelefono"))) ? "" : dr.GetString(dr.GetOrdinal("ContactoTelefono"))
                        },
                        Departamento             = (dr.IsDBNull(dr.GetOrdinal("Departamento"))) ? "" : dr.GetString(dr.GetOrdinal("Departamento")),
                        Direccion                = (dr.IsDBNull(dr.GetOrdinal("Direccion"))) ? "" : dr.GetString(dr.GetOrdinal("Direccion")),
                        Distrito                 = (dr.IsDBNull(dr.GetOrdinal("Distrito"))) ? "" : dr.GetString(dr.GetOrdinal("Distrito")),
                        NombreComercial          = (dr.IsDBNull(dr.GetOrdinal("NombreComercial"))) ? "" : dr.GetString(dr.GetOrdinal("NombreComercial")),
                        NumeroDocumentoIdentidad = (dr.IsDBNull(dr.GetOrdinal("NumeroDocumentoIdentidad"))) ? "" : dr.GetString(dr.GetOrdinal("NumeroDocumentoIdentidad")),
                        PaginaWeb                = (dr.IsDBNull(dr.GetOrdinal("PaginaWeb"))) ? "" : dr.GetString(dr.GetOrdinal("PaginaWeb")),
                        Provincia                = (dr.IsDBNull(dr.GetOrdinal("Provincia"))) ? "" : dr.GetString(dr.GetOrdinal("Provincia")),
                        RazonSocial              = (dr.IsDBNull(dr.GetOrdinal("RazonSocial"))) ? "" : dr.GetString(dr.GetOrdinal("RazonSocial")),
                        TipoDocumentoIdentidad   = (dr.IsDBNull(dr.GetOrdinal("TipoDocumentoIdentidad"))) ? "" : dr.GetString(dr.GetOrdinal("TipoDocumentoIdentidad"))
                                                   //Urbanizacion = (dr.IsDBNull(dr.GetOrdinal("Urbanizacion"))) ? "" : dr.GetString(dr.GetOrdinal("Urbanizacion")),
                    };
                }

                cn.Close();
                return(emisor);
            }
            catch (SqlException ex)
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
                mensajeRetorno = ex.Message.ToString();
                return(null);
            }
            catch (Exception ex)
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
                mensajeRetorno = "Ocurrió un error al registrar el comprobante, revisar el log.";
                log.Error(mensajeRetorno, ex);
                return(null);
            }
        }
예제 #2
0
        void LlenarEmisor(En_Emisor Emisor, ref DebitNoteType debitNote)
        {
            WebsiteURIType EmisorPaginaWeb = new WebsiteURIType
            {
                Value = Emisor.PaginaWeb.Trim()
            };

            List <PartyNameType> oListaNombreComercial = new List <PartyNameType>();
            PartyNameType        PartyName             = new PartyNameType
            {
                Name = new NameType1
                {
                    Value = Emisor.NombreComercial.Trim()
                }
            };

            oListaNombreComercial.Add(PartyName);


            PartyIdentificationType        EmisorIdentificacion      = new PartyIdentificationType();
            List <PartyIdentificationType> EmisorListaIdentificacion = new List <PartyIdentificationType>();

            EmisorIdentificacion.ID = new IDType
            {
                Value          = Emisor.NumeroDocumentoIdentidad.Trim(),
                schemeAgencyID = "PE:SUNAT",
                schemeID       = Emisor.TipoDocumentoIdentidad.Trim(),
                schemeName     = "Documento de Identidad",
                schemeURI      = "urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo06"
            };
            EmisorListaIdentificacion.Add(EmisorIdentificacion);

            //Razon social
            PartyLegalEntityType oRazonSocial = new PartyLegalEntityType
            {
                RegistrationName = new RegistrationNameType
                {
                    Value = Emisor.RazonSocial,
                },

                RegistrationAddress = new AddressType
                {
                    ID = new IDType
                    {
                        Value            = Emisor.CodigoUbigeo.Trim(),
                        schemeAgencyName = "PE:INEI",
                        schemeName       = "Ubigeos"
                    },
                    AddressTypeCode = new AddressTypeCodeType
                    {
                        Value          = Emisor.CodigoDomicilioFiscal.Trim(),
                        listAgencyName = "PE:SUNAT",
                        listName       = "Establecimientos anexos"
                    },
                    CitySubdivisionName = new CitySubdivisionNameType
                    {
                        Value = Emisor.Urbanizacion.Trim()
                    },
                    CityName = new CityNameType
                    {
                        Value = Emisor.Provincia.Trim()
                    },
                    CountrySubentity = new CountrySubentityType
                    {
                        Value = Emisor.Departamento.Trim()
                    },
                    District = new DistrictType
                    {
                        Value = Emisor.Distrito.Trim()
                    },
                    AddressLine = new AddressLineType[] {
                        new AddressLineType {
                            Line = new LineType {
                                Value = Emisor.Direccion.Trim()
                            }
                        }
                    },
                    Country = new CountryType
                    {
                        IdentificationCode = new IdentificationCodeType
                        {
                            listAgencyName = "United Nations Economic Commission for Europe",
                            listID         = "ISO 3166-1",
                            listName       = "Country",
                            Value          = Emisor.CodigoPais.Trim()
                        }
                    }
                }
            };

            ContactType oContacto = new ContactType
            {
                ElectronicMail = new ElectronicMailType()
                {
                    Value = Emisor.Contacto.Correo.Trim()
                },
                Name = new NameType1
                {
                    Value = Emisor.Contacto.Nombre.Trim()
                },
                Telephone = new TelephoneType
                {
                    Value = Emisor.Contacto.Telefono.Trim()
                }
            };

            SupplierPartyType oEmisor = new SupplierPartyType
            {
                Party = new PartyType
                {
                    WebsiteURI          = EmisorPaginaWeb,
                    PartyIdentification = EmisorListaIdentificacion.ToArray(),
                    PartyName           = oListaNombreComercial.ToArray(),
                    PartyLegalEntity    = new PartyLegalEntityType[] { oRazonSocial },
                    Contact             = oContacto
                }
            };

            debitNote.AccountingSupplierParty = oEmisor;
        }