|
@@ -1,577 +1,46 @@
|
|
|
<script>
|
|
<script>
|
|
|
- // Página de formulário CPR — sem envio para endpoint (apenas preview e copiar JSON)
|
|
|
|
|
- // Datas: use dd/MM/yyyy | Números: strings (ex: "1000")
|
|
|
|
|
- // Campos S/N: "S" ou "N"
|
|
|
|
|
-
|
|
|
|
|
- // Estado do formulário com a estrutura exatamente como o payload final precisa
|
|
|
|
|
- let form = {
|
|
|
|
|
|
|
+ let nome = '';
|
|
|
|
|
+ let numeroContato = '';
|
|
|
|
|
+ let email = '';
|
|
|
|
|
+ let tipoProduto = '';
|
|
|
|
|
+ let numeroControleInterno = '';
|
|
|
|
|
+ let quantidadeProduto = '';
|
|
|
|
|
+ let nomePropriedade = '';
|
|
|
|
|
+ let localizacaoPropriedade = '';
|
|
|
|
|
+
|
|
|
|
|
+ let previewOpen = false;
|
|
|
|
|
+ let payloadString = '';
|
|
|
|
|
+
|
|
|
|
|
+ const cardCls = 'rounded-lg bg-white/5 p-6 backdrop-blur-sm border border-white/10';
|
|
|
|
|
+ const inputCls = 'mt-1 block w-full rounded-md bg-white/5 border border-white/10 px-3 py-2 text-sm text-white placeholder-white/50 focus:border-bg1_button_contact focus:ring-1 focus:ring-bg1_button_contact';
|
|
|
|
|
+ const btnPrimary = 'inline-flex items-center justify-center rounded-md bg-gradient-to-r from-bg1_button_contact to-bg2_button_contact px-4 py-2 text-sm font-medium text-white shadow-sm hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-bg1_button_contact transition-colors';
|
|
|
|
|
+
|
|
|
|
|
+ function generatePayload() {
|
|
|
|
|
+ const payload = {
|
|
|
instrument: {
|
|
instrument: {
|
|
|
- cprTypeCode: '',
|
|
|
|
|
- otcRegisterAccountCode: '',
|
|
|
|
|
- otcPaymentAgentAccountCode: '',
|
|
|
|
|
- otcCustodianAccountCode: '',
|
|
|
|
|
- internalControlNumber: '',
|
|
|
|
|
- electronicEmissionIndicator: '', // "S" | "N"
|
|
|
|
|
- isinCode: '',
|
|
|
|
|
- issueDate: '',
|
|
|
|
|
- maturityDate: '',
|
|
|
|
|
- issueQuantity: '',
|
|
|
|
|
- issueValue: '',
|
|
|
|
|
- issueFinancialValue: '',
|
|
|
|
|
- unitValue: '',
|
|
|
|
|
- referenceDate: '',
|
|
|
|
|
- profitabilityStartDate: '',
|
|
|
|
|
- automaticExpirationIndicator: '', // "S" | "N"
|
|
|
|
|
-
|
|
|
|
|
- collaterals: [
|
|
|
|
|
- {
|
|
|
|
|
- collateralTypeCode: '',
|
|
|
|
|
- collateralTypeName: '',
|
|
|
|
|
- constitutionProcessIndicator: '', // "S" | "N"
|
|
|
|
|
- otcBondsmanAccountCode: '',
|
|
|
|
|
- documentNumber: ''
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
-
|
|
|
|
|
- products: [
|
|
|
|
|
- {
|
|
|
|
|
- cprProductName: '',
|
|
|
|
|
- cprProductClassName: '',
|
|
|
|
|
- cprProductHarvest: '',
|
|
|
|
|
- cprProductDescription: '',
|
|
|
|
|
- cprProductQuantity: '',
|
|
|
|
|
- measureUnitName: '',
|
|
|
|
|
- packagingWayName: '',
|
|
|
|
|
- cprProductStatusCode: '',
|
|
|
|
|
- productionTypeCode: ''
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
-
|
|
|
|
|
- issuers: [
|
|
|
|
|
- {
|
|
|
|
|
- cprIssuerName: '',
|
|
|
|
|
- documentNumber: '',
|
|
|
|
|
- personTypeAcronym: '',
|
|
|
|
|
- stateAcronym: '',
|
|
|
|
|
- cityName: '',
|
|
|
|
|
- ibgeCode: '',
|
|
|
|
|
- issuerLegalNatureCode: ''
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
-
|
|
|
|
|
- deposit: {
|
|
|
|
|
- otcFavoredAccountCode: '',
|
|
|
|
|
- documentNumber: '',
|
|
|
|
|
- personTypeAcronym: '',
|
|
|
|
|
- selfNumber: '',
|
|
|
|
|
- settlementModalityTypeCode: '',
|
|
|
|
|
- otcSettlementBankAccountCode: '',
|
|
|
|
|
- depositQuantity: '',
|
|
|
|
|
- depositUnitPriceValue: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- paymentMethod: {
|
|
|
|
|
- paymentMethodCode: '',
|
|
|
|
|
- indexCode: '',
|
|
|
|
|
- indexShortName: '',
|
|
|
|
|
- vcpIndicatorTypeCode: '',
|
|
|
|
|
- indexadorPercentageValue: '',
|
|
|
|
|
- interestRateSpreadPercentage: '',
|
|
|
|
|
- interestRateCriteriaTypeCode: '',
|
|
|
|
|
- interestPaymentDate: '',
|
|
|
|
|
- interestPaymentValue: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- interestPaymentFlow: {
|
|
|
|
|
- interestPaymentFrequencyCode: '',
|
|
|
|
|
- interestMonthsQuantity: '',
|
|
|
|
|
- timeUnitTypeCode: '',
|
|
|
|
|
- deadlineTypeCode: '',
|
|
|
|
|
- paymentStartDate: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- amortizationPaymentFlow: {
|
|
|
|
|
- amortizationTypeCode: '',
|
|
|
|
|
- amortizationMonthsQuantity: '',
|
|
|
|
|
- timeUnitTypeCode: '',
|
|
|
|
|
- deadlineTypeCode: '',
|
|
|
|
|
- amortizationStartDate: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- scr: {
|
|
|
|
|
- scrTypeCode: '',
|
|
|
|
|
- scrCustomerDetail: '',
|
|
|
|
|
- personTypeAcronym: '',
|
|
|
|
|
- documentNumber: '',
|
|
|
|
|
- contractCode: '',
|
|
|
|
|
- operationModalityTypeCode: '',
|
|
|
|
|
- bacenReferenceCode: '',
|
|
|
|
|
- finalityCode: '',
|
|
|
|
|
- ipocCode: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- dolarEuroProfitability: {
|
|
|
|
|
- calculationTypeCode: '',
|
|
|
|
|
- initialExchangeValue: '',
|
|
|
|
|
- fixingTypeCode: '',
|
|
|
|
|
- dataSourceTypeCode: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- igpmIpcaProfitability: {
|
|
|
|
|
- adjustmentFrequencyTypeCode: '',
|
|
|
|
|
- adjustmentProRataTypeCode: '',
|
|
|
|
|
- adjustmentTypeCode: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- creditor: {
|
|
|
|
|
- creditorName: '',
|
|
|
|
|
- documentNumber: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- ballast: {
|
|
|
|
|
- ballastTypeCode: '',
|
|
|
|
|
- lotNumber: '',
|
|
|
|
|
- ballastQuantity: '',
|
|
|
|
|
- currencyCode: '',
|
|
|
|
|
- transactionIdentification: '',
|
|
|
|
|
- additionalText: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- registerOffice: {
|
|
|
|
|
- cprNumber: '',
|
|
|
|
|
- cprContractNumber: ''
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- events: [
|
|
|
|
|
- {
|
|
|
|
|
- eventTypeCode: '',
|
|
|
|
|
- eventOriginalDate: '',
|
|
|
|
|
- unitPriceValue: '',
|
|
|
|
|
- interestUnitPriceValue: '',
|
|
|
|
|
- residualValue: '',
|
|
|
|
|
- amortizationPercentage: '',
|
|
|
|
|
- eventQuantity: ''
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
-
|
|
|
|
|
- productionPlaces: [
|
|
|
|
|
- {
|
|
|
|
|
- productionPlaceName: '',
|
|
|
|
|
- propertyRegistrationNumber: '',
|
|
|
|
|
- notaryName: '',
|
|
|
|
|
- totalProductionAreaInHectaresNumber: '',
|
|
|
|
|
- totalAreaInHectaresNumber: '',
|
|
|
|
|
- carCode: '',
|
|
|
|
|
- latitudeCode: '',
|
|
|
|
|
- longitudeCode: '',
|
|
|
|
|
- zipCode: ''
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
-
|
|
|
|
|
- greenCpr: {
|
|
|
|
|
- greenCprIndicator: '', // "S" | "N"
|
|
|
|
|
- greenCprCertificateName: '',
|
|
|
|
|
- greenCprCertificateCnpjNumber: '',
|
|
|
|
|
- greenCprGeoreferencingDescription: '',
|
|
|
|
|
- greenCprDeclarationIndicator: '' // "S" | "N"
|
|
|
|
|
- },
|
|
|
|
|
-
|
|
|
|
|
- // DeliveryPlace ainda não definido — deixo como JSON livre (textarea)
|
|
|
|
|
- deliveryPlace: {}
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Instrument
|
|
|
|
|
- let instrument_cprTypeCode = '';
|
|
|
|
|
- let instrument_otcRegisterAccountCode = '';
|
|
|
|
|
- let instrument_otcPaymentAgentAccountCode = '';
|
|
|
|
|
- let instrument_otcCustodianAccountCode = '';
|
|
|
|
|
- let instrument_internalControlNumber = '';
|
|
|
|
|
- let instrument_electronicEmissionIndicator = '';
|
|
|
|
|
- let instrument_isinCode = '';
|
|
|
|
|
- let instrument_issueDate = '';
|
|
|
|
|
- let instrument_maturityDate = '';
|
|
|
|
|
- let instrument_issueQuantity = '';
|
|
|
|
|
- let instrument_issueValue = '';
|
|
|
|
|
- let instrument_issueFinancialValue = '';
|
|
|
|
|
- let instrument_unitValue = '';
|
|
|
|
|
- let instrument_referenceDate = '';
|
|
|
|
|
- let instrument_profitabilityStartDate = '';
|
|
|
|
|
- let instrument_automaticExpirationIndicator = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Collateral (item único)
|
|
|
|
|
- let coll_collateralTypeCode = '';
|
|
|
|
|
- let coll_collateralTypeName = '';
|
|
|
|
|
- let coll_constitutionProcessIndicator = '';
|
|
|
|
|
- let coll_otcBondsmanAccountCode = '';
|
|
|
|
|
- let coll_documentNumber = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Product (item único)
|
|
|
|
|
- let prod_cprProductName = '';
|
|
|
|
|
- let prod_cprProductClassName = '';
|
|
|
|
|
- let prod_cprProductHarvest = '';
|
|
|
|
|
- let prod_cprProductDescription = '';
|
|
|
|
|
- let prod_cprProductQuantity = '';
|
|
|
|
|
- let prod_measureUnitName = '';
|
|
|
|
|
- let prod_packagingWayName = '';
|
|
|
|
|
- let prod_cprProductStatusCode = '';
|
|
|
|
|
- let prod_productionTypeCode = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Issuer (item único)
|
|
|
|
|
- let issuer_cprIssuerName = '';
|
|
|
|
|
- let issuer_documentNumber = '';
|
|
|
|
|
- let issuer_personTypeAcronym = '';
|
|
|
|
|
- let issuer_stateAcronym = '';
|
|
|
|
|
- let issuer_cityName = '';
|
|
|
|
|
- let issuer_ibgeCode = '';
|
|
|
|
|
- let issuer_issuerLegalNatureCode = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Deposit
|
|
|
|
|
- let dep_otcFavoredAccountCode = '';
|
|
|
|
|
- let dep_documentNumber = '';
|
|
|
|
|
- let dep_personTypeAcronym = '';
|
|
|
|
|
- let dep_selfNumber = '';
|
|
|
|
|
- let dep_settlementModalityTypeCode = '';
|
|
|
|
|
- let dep_otcSettlementBankAccountCode = '';
|
|
|
|
|
- let dep_depositQuantity = '';
|
|
|
|
|
- let dep_depositUnitPriceValue = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Payment Method
|
|
|
|
|
- let pay_paymentMethodCode = '';
|
|
|
|
|
- let pay_indexCode = '';
|
|
|
|
|
- let pay_indexShortName = '';
|
|
|
|
|
- let pay_vcpIndicatorTypeCode = '';
|
|
|
|
|
- let pay_indexadorPercentageValue = '';
|
|
|
|
|
- let pay_interestRateSpreadPercentage = '';
|
|
|
|
|
- let pay_interestRateCriteriaTypeCode = '';
|
|
|
|
|
- let pay_interestPaymentDate = '';
|
|
|
|
|
- let pay_interestPaymentValue = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Interest Payment Flow
|
|
|
|
|
- let ipf_interestPaymentFrequencyCode = '';
|
|
|
|
|
- let ipf_interestMonthsQuantity = '';
|
|
|
|
|
- let ipf_timeUnitTypeCode = '';
|
|
|
|
|
- let ipf_deadlineTypeCode = '';
|
|
|
|
|
- let ipf_paymentStartDate = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Amortization Payment Flow
|
|
|
|
|
- let apf_amortizationTypeCode = '';
|
|
|
|
|
- let apf_amortizationMonthsQuantity = '';
|
|
|
|
|
- let apf_timeUnitTypeCode = '';
|
|
|
|
|
- let apf_deadlineTypeCode = '';
|
|
|
|
|
- let apf_amortizationStartDate = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: SCR
|
|
|
|
|
- let scr_scrTypeCode = '';
|
|
|
|
|
- let scr_scrCustomerDetail = '';
|
|
|
|
|
- let scr_personTypeAcronym = '';
|
|
|
|
|
- let scr_documentNumber = '';
|
|
|
|
|
- let scr_contractCode = '';
|
|
|
|
|
- let scr_operationModalityTypeCode = '';
|
|
|
|
|
- let scr_bacenReferenceCode = '';
|
|
|
|
|
- let scr_finalityCode = '';
|
|
|
|
|
- let scr_ipocCode = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Dólar/Euro Profitability
|
|
|
|
|
- let de_calculationTypeCode = '';
|
|
|
|
|
- let de_initialExchangeValue = '';
|
|
|
|
|
- let de_fixingTypeCode = '';
|
|
|
|
|
- let de_dataSourceTypeCode = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: IGPM/IPCA Profitability
|
|
|
|
|
- let ig_adjustmentFrequencyTypeCode = '';
|
|
|
|
|
- let ig_adjustmentProRataTypeCode = '';
|
|
|
|
|
- let ig_adjustmentTypeCode = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Creditor
|
|
|
|
|
- let creditor_creditorName = '';
|
|
|
|
|
- let creditor_documentNumber = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Ballast
|
|
|
|
|
- let ballast_ballastTypeCode = '';
|
|
|
|
|
- let ballast_lotNumber = '';
|
|
|
|
|
- let ballast_ballastQuantity = '';
|
|
|
|
|
- let ballast_currencyCode = '';
|
|
|
|
|
- let ballast_transactionIdentification = '';
|
|
|
|
|
- let ballast_additionalText = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Register Office
|
|
|
|
|
- let register_cprNumber = '';
|
|
|
|
|
- let register_cprContractNumber = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Event (item único)
|
|
|
|
|
- let ev_eventTypeCode = '';
|
|
|
|
|
- let ev_eventOriginalDate = '';
|
|
|
|
|
- let ev_unitPriceValue = '';
|
|
|
|
|
- let ev_interestUnitPriceValue = '';
|
|
|
|
|
- let ev_residualValue = '';
|
|
|
|
|
- let ev_amortizationPercentage = '';
|
|
|
|
|
- let ev_eventQuantity = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Production Place (item único)
|
|
|
|
|
- let pl_productionPlaceName = '';
|
|
|
|
|
- let pl_propertyRegistrationNumber = '';
|
|
|
|
|
- let pl_notaryName = '';
|
|
|
|
|
- let pl_totalProductionAreaInHectaresNumber = '';
|
|
|
|
|
- let pl_totalAreaInHectaresNumber = '';
|
|
|
|
|
- let pl_carCode = '';
|
|
|
|
|
- let pl_latitudeCode = '';
|
|
|
|
|
- let pl_longitudeCode = '';
|
|
|
|
|
- let pl_zipCode = '';
|
|
|
|
|
-
|
|
|
|
|
- // Variáveis planas: Green CPR
|
|
|
|
|
- let green_greenCprIndicator = '';
|
|
|
|
|
- let green_greenCprCertificateName = '';
|
|
|
|
|
- let green_greenCprCertificateCnpjNumber = '';
|
|
|
|
|
- let green_greenCprGeoreferencingDescription = '';
|
|
|
|
|
- let green_greenCprDeclarationIndicator = '';
|
|
|
|
|
-
|
|
|
|
|
- // DeliveryPlace via textarea (independente do objeto form)
|
|
|
|
|
- let deliveryPlaceDraft = '';
|
|
|
|
|
- $: deliveryPlaceObject = (() => { try { return JSON.parse(deliveryPlaceDraft || '{}'); } catch { return {}; } })();
|
|
|
|
|
-
|
|
|
|
|
- // Derivados para preview e copiar
|
|
|
|
|
- $: payload = {
|
|
|
|
|
- data: {
|
|
|
|
|
- instrument: {
|
|
|
|
|
- cprTypeCode: instrument_cprTypeCode,
|
|
|
|
|
- otcRegisterAccountCode: instrument_otcRegisterAccountCode,
|
|
|
|
|
- otcPaymentAgentAccountCode: instrument_otcPaymentAgentAccountCode,
|
|
|
|
|
- otcCustodianAccountCode: instrument_otcCustodianAccountCode,
|
|
|
|
|
- internalControlNumber: instrument_internalControlNumber,
|
|
|
|
|
- electronicEmissionIndicator: instrument_electronicEmissionIndicator,
|
|
|
|
|
- isinCode: instrument_isinCode,
|
|
|
|
|
- issueDate: instrument_issueDate,
|
|
|
|
|
- maturityDate: instrument_maturityDate,
|
|
|
|
|
- issueQuantity: instrument_issueQuantity,
|
|
|
|
|
- issueValue: instrument_issueValue,
|
|
|
|
|
- issueFinancialValue: instrument_issueFinancialValue,
|
|
|
|
|
- unitValue: instrument_unitValue,
|
|
|
|
|
- referenceDate: instrument_referenceDate,
|
|
|
|
|
- profitabilityStartDate: instrument_profitabilityStartDate,
|
|
|
|
|
- automaticExpirationIndicator: instrument_automaticExpirationIndicator,
|
|
|
|
|
-
|
|
|
|
|
- collaterals: [
|
|
|
|
|
- {
|
|
|
|
|
- collateralTypeCode: coll_collateralTypeCode,
|
|
|
|
|
- collateralTypeName: coll_collateralTypeName,
|
|
|
|
|
- constitutionProcessIndicator: coll_constitutionProcessIndicator,
|
|
|
|
|
- otcBondsmanAccountCode: coll_otcBondsmanAccountCode,
|
|
|
|
|
- documentNumber: coll_documentNumber
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
- products: [
|
|
|
|
|
- {
|
|
|
|
|
- cprProductName: prod_cprProductName,
|
|
|
|
|
- cprProductClassName: prod_cprProductClassName,
|
|
|
|
|
- cprProductHarvest: prod_cprProductHarvest,
|
|
|
|
|
- cprProductDescription: prod_cprProductDescription,
|
|
|
|
|
- cprProductQuantity: prod_cprProductQuantity,
|
|
|
|
|
- measureUnitName: prod_measureUnitName,
|
|
|
|
|
- packagingWayName: prod_packagingWayName,
|
|
|
|
|
- cprProductStatusCode: prod_cprProductStatusCode,
|
|
|
|
|
- productionTypeCode: prod_productionTypeCode
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
- issuers: [
|
|
|
|
|
- {
|
|
|
|
|
- cprIssuerName: issuer_cprIssuerName,
|
|
|
|
|
- documentNumber: issuer_documentNumber,
|
|
|
|
|
- personTypeAcronym: issuer_personTypeAcronym,
|
|
|
|
|
- stateAcronym: issuer_stateAcronym,
|
|
|
|
|
- cityName: issuer_cityName,
|
|
|
|
|
- ibgeCode: issuer_ibgeCode,
|
|
|
|
|
- issuerLegalNatureCode: issuer_issuerLegalNatureCode
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
- deposit: {
|
|
|
|
|
- otcFavoredAccountCode: dep_otcFavoredAccountCode,
|
|
|
|
|
- documentNumber: dep_documentNumber,
|
|
|
|
|
- personTypeAcronym: dep_personTypeAcronym,
|
|
|
|
|
- selfNumber: dep_selfNumber,
|
|
|
|
|
- settlementModalityTypeCode: dep_settlementModalityTypeCode,
|
|
|
|
|
- otcSettlementBankAccountCode: dep_otcSettlementBankAccountCode,
|
|
|
|
|
- depositQuantity: dep_depositQuantity,
|
|
|
|
|
- depositUnitPriceValue: dep_depositUnitPriceValue
|
|
|
|
|
- },
|
|
|
|
|
- paymentMethod: {
|
|
|
|
|
- paymentMethodCode: pay_paymentMethodCode,
|
|
|
|
|
- indexCode: pay_indexCode,
|
|
|
|
|
- indexShortName: pay_indexShortName,
|
|
|
|
|
- vcpIndicatorTypeCode: pay_vcpIndicatorTypeCode,
|
|
|
|
|
- indexadorPercentageValue: pay_indexadorPercentageValue,
|
|
|
|
|
- interestRateSpreadPercentage: pay_interestRateSpreadPercentage,
|
|
|
|
|
- interestRateCriteriaTypeCode: pay_interestRateCriteriaTypeCode,
|
|
|
|
|
- interestPaymentDate: pay_interestPaymentDate,
|
|
|
|
|
- interestPaymentValue: pay_interestPaymentValue
|
|
|
|
|
- },
|
|
|
|
|
- interestPaymentFlow: {
|
|
|
|
|
- interestPaymentFrequencyCode: ipf_interestPaymentFrequencyCode,
|
|
|
|
|
- interestMonthsQuantity: ipf_interestMonthsQuantity,
|
|
|
|
|
- timeUnitTypeCode: ipf_timeUnitTypeCode,
|
|
|
|
|
- deadlineTypeCode: ipf_deadlineTypeCode,
|
|
|
|
|
- paymentStartDate: ipf_paymentStartDate
|
|
|
|
|
- },
|
|
|
|
|
- amortizationPaymentFlow: {
|
|
|
|
|
- amortizationTypeCode: apf_amortizationTypeCode,
|
|
|
|
|
- amortizationMonthsQuantity: apf_amortizationMonthsQuantity,
|
|
|
|
|
- timeUnitTypeCode: apf_timeUnitTypeCode,
|
|
|
|
|
- deadlineTypeCode: apf_deadlineTypeCode,
|
|
|
|
|
- amortizationStartDate: apf_amortizationStartDate
|
|
|
|
|
- },
|
|
|
|
|
- scr: {
|
|
|
|
|
- scrTypeCode: scr_scrTypeCode,
|
|
|
|
|
- scrCustomerDetail: scr_scrCustomerDetail,
|
|
|
|
|
- personTypeAcronym: scr_personTypeAcronym,
|
|
|
|
|
- documentNumber: scr_documentNumber,
|
|
|
|
|
- contractCode: scr_contractCode,
|
|
|
|
|
- operationModalityTypeCode: scr_operationModalityTypeCode,
|
|
|
|
|
- bacenReferenceCode: scr_bacenReferenceCode,
|
|
|
|
|
- finalityCode: scr_finalityCode,
|
|
|
|
|
- ipocCode: scr_ipocCode
|
|
|
|
|
- },
|
|
|
|
|
- dolarEuroProfitability: {
|
|
|
|
|
- calculationTypeCode: de_calculationTypeCode,
|
|
|
|
|
- initialExchangeValue: de_initialExchangeValue,
|
|
|
|
|
- fixingTypeCode: de_fixingTypeCode,
|
|
|
|
|
- dataSourceTypeCode: de_dataSourceTypeCode
|
|
|
|
|
- },
|
|
|
|
|
- igpmIpcaProfitability: {
|
|
|
|
|
- adjustmentFrequencyTypeCode: ig_adjustmentFrequencyTypeCode,
|
|
|
|
|
- adjustmentProRataTypeCode: ig_adjustmentProRataTypeCode,
|
|
|
|
|
- adjustmentTypeCode: ig_adjustmentTypeCode
|
|
|
|
|
- },
|
|
|
|
|
- creditor: {
|
|
|
|
|
- creditorName: creditor_creditorName,
|
|
|
|
|
- documentNumber: creditor_documentNumber
|
|
|
|
|
- },
|
|
|
|
|
- ballast: {
|
|
|
|
|
- ballastTypeCode: ballast_ballastTypeCode,
|
|
|
|
|
- lotNumber: ballast_lotNumber,
|
|
|
|
|
- ballastQuantity: ballast_ballastQuantity,
|
|
|
|
|
- currencyCode: ballast_currencyCode,
|
|
|
|
|
- transactionIdentification: ballast_transactionIdentification,
|
|
|
|
|
- additionalText: ballast_additionalText
|
|
|
|
|
- },
|
|
|
|
|
- registerOffice: {
|
|
|
|
|
- cprNumber: register_cprNumber,
|
|
|
|
|
- cprContractNumber: register_cprContractNumber
|
|
|
|
|
- },
|
|
|
|
|
- events: [
|
|
|
|
|
- {
|
|
|
|
|
- eventTypeCode: ev_eventTypeCode,
|
|
|
|
|
- eventOriginalDate: ev_eventOriginalDate,
|
|
|
|
|
- unitPriceValue: ev_unitPriceValue,
|
|
|
|
|
- interestUnitPriceValue: ev_interestUnitPriceValue,
|
|
|
|
|
- residualValue: ev_residualValue,
|
|
|
|
|
- amortizationPercentage: ev_amortizationPercentage,
|
|
|
|
|
- eventQuantity: ev_eventQuantity
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
- productionPlaces: [
|
|
|
|
|
- {
|
|
|
|
|
- productionPlaceName: pl_productionPlaceName,
|
|
|
|
|
- propertyRegistrationNumber: pl_propertyRegistrationNumber,
|
|
|
|
|
- notaryName: pl_notaryName,
|
|
|
|
|
- totalProductionAreaInHectaresNumber: pl_totalProductionAreaInHectaresNumber,
|
|
|
|
|
- totalAreaInHectaresNumber: pl_totalAreaInHectaresNumber,
|
|
|
|
|
- carCode: pl_carCode,
|
|
|
|
|
- latitudeCode: pl_latitudeCode,
|
|
|
|
|
- longitudeCode: pl_longitudeCode,
|
|
|
|
|
- zipCode: pl_zipCode
|
|
|
|
|
- }
|
|
|
|
|
- ],
|
|
|
|
|
- greenCpr: {
|
|
|
|
|
- greenCprIndicator: green_greenCprIndicator,
|
|
|
|
|
- greenCprCertificateName: green_greenCprCertificateName,
|
|
|
|
|
- greenCprCertificateCnpjNumber: green_greenCprCertificateCnpjNumber,
|
|
|
|
|
- greenCprGeoreferencingDescription: green_greenCprGeoreferencingDescription,
|
|
|
|
|
- greenCprDeclarationIndicator: green_greenCprDeclarationIndicator
|
|
|
|
|
- },
|
|
|
|
|
- deliveryPlace: deliveryPlaceObject
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
- $: payloadString = JSON.stringify(payload, null, 2);
|
|
|
|
|
-
|
|
|
|
|
- let previewOpen = false;
|
|
|
|
|
- let copied = false;
|
|
|
|
|
-
|
|
|
|
|
- async function copyJson() {
|
|
|
|
|
- try {
|
|
|
|
|
- await navigator.clipboard.writeText(payloadString);
|
|
|
|
|
- copied = true;
|
|
|
|
|
- setTimeout(() => (copied = false), 2000);
|
|
|
|
|
- } catch (e) {
|
|
|
|
|
- console.error('Falha ao copiar JSON:', e);
|
|
|
|
|
|
|
+ cprTypeCode: nome,
|
|
|
|
|
+ otcRegisterAccountCode: numeroContato,
|
|
|
|
|
+ otcPaymentAgentAccountCode: email,
|
|
|
|
|
+ otcCustodianAccountCode: tipoProduto,
|
|
|
|
|
+ internalControlNumber: numeroControleInterno,
|
|
|
|
|
+ electronicEmissionIndicator: quantidadeProduto,
|
|
|
|
|
+ isinCode: nomePropriedade,
|
|
|
|
|
+ issueDate: localizacaoPropriedade
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // deliveryPlaceDraft já definido acima; funções auxiliares não necessárias
|
|
|
|
|
-
|
|
|
|
|
- const inputCls =
|
|
|
|
|
- 'w-full rounded-md border border-border1_contact/20 bg-border2_contact/5 p-3 text-tx_contact_form focus:outline-none focus:ring-2 focus:ring-blue-400';
|
|
|
|
|
- const cardCls =
|
|
|
|
|
- 'rounded-xl border border-border1_contact/20 bg-border2_contact/5 backdrop-blur-sm p-6 md:p-8 shadow-md transition hover:shadow-lg';
|
|
|
|
|
- const btnPrimary =
|
|
|
|
|
- 'inline-flex items-center justify-center gap-2 rounded-md border-2 border-border1_contact bg-gradient-to-r from-bg1_button_contact to-bg2_button_contact px-6 py-3 font-bold text-tx_contact_form transition duration-300 ease-out hover:shadow-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-400/60';
|
|
|
|
|
- const btnGhost =
|
|
|
|
|
- 'inline-flex items-center justify-center gap-2 rounded-md border-2 border-border1_contact/40 px-4 py-2 font-medium text-tx_contact_form/80 transition hover:bg-border1_contact/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-400/60';
|
|
|
|
|
-
|
|
|
|
|
- // Blanks para listas dinâmicas
|
|
|
|
|
- const blankCollateral = {
|
|
|
|
|
- collateralTypeCode: '',
|
|
|
|
|
- collateralTypeName: '',
|
|
|
|
|
- constitutionProcessIndicator: '',
|
|
|
|
|
- otcBondsmanAccountCode: '',
|
|
|
|
|
- documentNumber: ''
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- const blankProduct = {
|
|
|
|
|
- cprProductName: '',
|
|
|
|
|
- cprProductClassName: '',
|
|
|
|
|
- cprProductHarvest: '',
|
|
|
|
|
- cprProductDescription: '',
|
|
|
|
|
- cprProductQuantity: '',
|
|
|
|
|
- measureUnitName: '',
|
|
|
|
|
- packagingWayName: '',
|
|
|
|
|
- cprProductStatusCode: '',
|
|
|
|
|
- productionTypeCode: ''
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- const blankIssuer = {
|
|
|
|
|
- cprIssuerName: '',
|
|
|
|
|
- documentNumber: '',
|
|
|
|
|
- personTypeAcronym: '',
|
|
|
|
|
- stateAcronym: '',
|
|
|
|
|
- cityName: '',
|
|
|
|
|
- ibgeCode: '',
|
|
|
|
|
- issuerLegalNatureCode: ''
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- const blankEvent = {
|
|
|
|
|
- eventTypeCode: '',
|
|
|
|
|
- eventOriginalDate: '',
|
|
|
|
|
- unitPriceValue: '',
|
|
|
|
|
- interestUnitPriceValue: '',
|
|
|
|
|
- residualValue: '',
|
|
|
|
|
- amortizationPercentage: '',
|
|
|
|
|
- eventQuantity: ''
|
|
|
|
|
};
|
|
};
|
|
|
-
|
|
|
|
|
- const blankProductionPlace = {
|
|
|
|
|
- productionPlaceName: '',
|
|
|
|
|
- propertyRegistrationNumber: '',
|
|
|
|
|
- notaryName: '',
|
|
|
|
|
- totalProductionAreaInHectaresNumber: '',
|
|
|
|
|
- totalAreaInHectaresNumber: '',
|
|
|
|
|
- carCode: '',
|
|
|
|
|
- latitudeCode: '',
|
|
|
|
|
- longitudeCode: '',
|
|
|
|
|
- zipCode: ''
|
|
|
|
|
- };
|
|
|
|
|
- </script>
|
|
|
|
|
- <div class="bg-gradient-to-b from-bg1_contact to-bg2_contact min-h-screen">
|
|
|
|
|
|
|
+
|
|
|
|
|
+ payloadString = JSON.stringify(payload, null, 2);
|
|
|
|
|
+ return payload;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function handleSubmit() {
|
|
|
|
|
+ const payload = generatePayload();
|
|
|
|
|
+ previewOpen = true;
|
|
|
|
|
+
|
|
|
|
|
+ console.log('Payload enviado:', payload);
|
|
|
|
|
+ }
|
|
|
|
|
+</script>
|
|
|
|
|
+<div class="bg-gradient-to-b from-bg1_contact to-bg2_contact min-h-screen">
|
|
|
<section id="formcpr" class="relative overflow-hidden py-24 text-tx_contact">
|
|
<section id="formcpr" class="relative overflow-hidden py-24 text-tx_contact">
|
|
|
<!-- Blobs decorativos -->
|
|
<!-- Blobs decorativos -->
|
|
|
<div aria-hidden="true" class="pointer-events-none absolute -top-24 -left-24 h-72 w-72 rounded-full bg-gradient-to-br from-bg1_button_contact/20 to-bg2_button_contact/20 blur-3xl"></div>
|
|
<div aria-hidden="true" class="pointer-events-none absolute -top-24 -left-24 h-72 w-72 rounded-full bg-gradient-to-br from-bg1_button_contact/20 to-bg2_button_contact/20 blur-3xl"></div>
|
|
@@ -582,8 +51,6 @@
|
|
|
Faça sua CPR conosco
|
|
Faça sua CPR conosco
|
|
|
</h1>
|
|
</h1>
|
|
|
|
|
|
|
|
- <!-- Ações topo -->
|
|
|
|
|
-
|
|
|
|
|
{#if previewOpen}
|
|
{#if previewOpen}
|
|
|
<div class={cardCls + ' mb-8'}>
|
|
<div class={cardCls + ' mb-8'}>
|
|
|
<p class="mb-3 font-semibold">Pré-visualização do JSON</p>
|
|
<p class="mb-3 font-semibold">Pré-visualização do JSON</p>
|
|
@@ -591,276 +58,25 @@
|
|
|
</div>
|
|
</div>
|
|
|
{/if}
|
|
{/if}
|
|
|
|
|
|
|
|
- <!-- INSTRUMENT -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Instrumento</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Tipo de CPR</label><input class={inputCls} bind:value={instrument_cprTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código da Conta de Registro (OTC)</label><input class={inputCls} bind:value={instrument_otcRegisterAccountCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código da Conta do Agente de Pagamento (OTC)</label><input class={inputCls} bind:value={instrument_otcPaymentAgentAccountCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código da Conta do Custodiante (OTC)</label><input class={inputCls} bind:value={instrument_otcCustodianAccountCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número de Controle Interno</label><input class={inputCls} bind:value={instrument_internalControlNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Emissão Eletrônica? (S/N)</label><input class={inputCls} bind:value={instrument_electronicEmissionIndicator} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código ISIN</label><input class={inputCls} bind:value={instrument_isinCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data de Emissão (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={instrument_issueDate} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data de Vencimento (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={instrument_maturityDate} /></div>
|
|
|
|
|
- <div><label class="text-sm">Quantidade Emitida</label><input class={inputCls} bind:value={instrument_issueQuantity} /></div>
|
|
|
|
|
- <div><label class="text-sm">Valor de Emissão</label><input class={inputCls} bind:value={instrument_issueValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Valor Financeiro da Emissão</label><input class={inputCls} bind:value={instrument_issueFinancialValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Valor Unitário</label><input class={inputCls} bind:value={instrument_unitValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data de Referência (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={instrument_referenceDate} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data de Início da Rentabilidade (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={instrument_profitabilityStartDate} /></div>
|
|
|
|
|
- <div><label class="text-sm">Vencimento Automático? (S/N)</label><input class={inputCls} bind:value={instrument_automaticExpirationIndicator} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- COLLATERALS -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <div class="mb-3 flex items-center justify-between">
|
|
|
|
|
- <h2 class="text-xl font-bold">Collaterals</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mb-4 rounded-md border border-border1_contact/10 p-4">
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Tipo de Garantia (código)</label><input class={inputCls} bind:value={coll_collateralTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Nome da Garantia</label><input class={inputCls} bind:value={coll_collateralTypeName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Garantia já constituída? (S/N)</label><input class={inputCls} bind:value={coll_constitutionProcessIndicator} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código da Conta do Fiador (OTC)</label><input class={inputCls} bind:value={coll_otcBondsmanAccountCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número do Documento</label><input class={inputCls} bind:value={coll_documentNumber} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mt-3"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- PRODUCTS -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <div class="mb-3 flex items-center justify-between">
|
|
|
|
|
- <h2 class="text-xl font-bold">Products</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mb-4 rounded-md border border-border1_contact/10 p-4">
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Produto</label><input class={inputCls} bind:value={prod_cprProductName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Classe do Produto</label><input class={inputCls} bind:value={prod_cprProductClassName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Safra</label><input class={inputCls} bind:value={prod_cprProductHarvest} /></div>
|
|
|
|
|
- <div class="md:col-span-3"><label class="text-sm">Descrição do Produto</label><input class={inputCls} bind:value={prod_cprProductDescription} /></div>
|
|
|
|
|
- <div><label class="text-sm">Quantidade do Produto</label><input class={inputCls} bind:value={prod_cprProductQuantity} /></div>
|
|
|
|
|
- <div><label class="text-sm">Unidade de Medida</label><input class={inputCls} bind:value={prod_measureUnitName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Forma de Embalagem</label><input class={inputCls} bind:value={prod_packagingWayName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Status do Produto (código)</label><input class={inputCls} bind:value={prod_cprProductStatusCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Produção (código)</label><input class={inputCls} bind:value={prod_productionTypeCode} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mt-3"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- ISSUERS -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <div class="mb-3 flex items-center justify-between">
|
|
|
|
|
- <h2 class="text-xl font-bold">Issuers</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mb-4 rounded-md border border-border1_contact/10 p-4">
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Nome do Emissor</label><input class={inputCls} bind:value={issuer_cprIssuerName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número do Documento (CPF/CNPJ)</label><input class={inputCls} bind:value={issuer_documentNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Pessoa (F/J)</label><input class={inputCls} bind:value={issuer_personTypeAcronym} /></div>
|
|
|
|
|
- <div><label class="text-sm">UF</label><input class={inputCls} bind:value={issuer_stateAcronym} /></div>
|
|
|
|
|
- <div><label class="text-sm">Cidade</label><input class={inputCls} bind:value={issuer_cityName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código IBGE do Município</label><input class={inputCls} bind:value={issuer_ibgeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Natureza Jurídica (código)</label><input class={inputCls} bind:value={issuer_issuerLegalNatureCode} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mt-3"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- DEPOSIT -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Deposit</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Código da Conta do Favorecido (OTC)</label><input class={inputCls} bind:value={dep_otcFavoredAccountCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número do Documento (CPF/CNPJ)</label><input class={inputCls} bind:value={dep_documentNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Pessoa (F/J)</label><input class={inputCls} bind:value={dep_personTypeAcronym} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número próprio (referência interna)</label><input class={inputCls} bind:value={dep_selfNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Modalidade de Liquidação (código)</label><input class={inputCls} bind:value={dep_settlementModalityTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código da Conta Bancária de Liquidação (OTC)</label><input class={inputCls} bind:value={dep_otcSettlementBankAccountCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Quantidade em Depósito</label><input class={inputCls} bind:value={dep_depositQuantity} /></div>
|
|
|
|
|
- <div><label class="text-sm">Preço Unitário do Depósito</label><input class={inputCls} bind:value={dep_depositUnitPriceValue} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- PAYMENT METHOD -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Payment Method</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Forma de Pagamento (código)</label><input class={inputCls} bind:value={pay_paymentMethodCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código do Índice</label><input class={inputCls} bind:value={pay_indexCode} /></div>
|
|
|
|
|
- <div class="md:col-span-3"><label class="text-sm">Nome do Índice (abreviado)</label><input class={inputCls} bind:value={pay_indexShortName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Indicador VCP (código)</label><input class={inputCls} bind:value={pay_vcpIndicatorTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Percentual do Indexador (%)</label><input class={inputCls} bind:value={pay_indexadorPercentageValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Spread da Taxa de Juros (%)</label><input class={inputCls} bind:value={pay_interestRateSpreadPercentage} /></div>
|
|
|
|
|
- <div><label class="text-sm">Critério da Taxa de Juros (código)</label><input class={inputCls} bind:value={pay_interestRateCriteriaTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data de Pagamento de Juros (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={pay_interestPaymentDate} /></div>
|
|
|
|
|
- <div><label class="text-sm">Valor do Pagamento de Juros</label><input class={inputCls} bind:value={pay_interestPaymentValue} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- INTEREST PAYMENT FLOW -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Interest Payment Flow</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Frequência de Pagamento de Juros (código)</label><input class={inputCls} bind:value={ipf_interestPaymentFrequencyCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Quantidade de Meses de Juros</label><input class={inputCls} bind:value={ipf_interestMonthsQuantity} /></div>
|
|
|
|
|
- <div><label class="text-sm">Unidade de Tempo (código)</label><input class={inputCls} bind:value={ipf_timeUnitTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Prazo (código)</label><input class={inputCls} bind:value={ipf_deadlineTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data de Início do Pagamento (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={ipf_paymentStartDate} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- AMORTIZATION PAYMENT FLOW -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Amortization Payment Flow</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Tipo de Amortização (código)</label><input class={inputCls} bind:value={apf_amortizationTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Quantidade de Meses para Amortização</label><input class={inputCls} bind:value={apf_amortizationMonthsQuantity} /></div>
|
|
|
|
|
- <div><label class="text-sm">Unidade de Tempo (código)</label><input class={inputCls} bind:value={apf_timeUnitTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Prazo (código)</label><input class={inputCls} bind:value={apf_deadlineTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data de Início da Amortização (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={apf_amortizationStartDate} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- SCR -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">SCR</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Tipo de SCR (código)</label><input class={inputCls} bind:value={scr_scrTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Detalhes do Cliente (SCR)</label><input class={inputCls} bind:value={scr_scrCustomerDetail} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Pessoa (F/J)</label><input class={inputCls} bind:value={scr_personTypeAcronym} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número do Documento (CPF/CNPJ)</label><input class={inputCls} bind:value={scr_documentNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código do Contrato</label><input class={inputCls} bind:value={scr_contractCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Modalidade da Operação (código)</label><input class={inputCls} bind:value={scr_operationModalityTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código de Referência BACEN</label><input class={inputCls} bind:value={scr_bacenReferenceCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Finalidade (código)</label><input class={inputCls} bind:value={scr_finalityCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Código IPOC</label><input class={inputCls} bind:value={scr_ipocCode} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- DOLAR/EURO PROFITABILITY -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Dólar/Euro Profitability</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Tipo de Cálculo (código)</label><input class={inputCls} bind:value={de_calculationTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Câmbio Inicial</label><input class={inputCls} bind:value={de_initialExchangeValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Fixação (código)</label><input class={inputCls} bind:value={de_fixingTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Fonte de Dados (código)</label><input class={inputCls} bind:value={de_dataSourceTypeCode} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- IGPM/IPCA PROFITABILITY -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">IGPM/IPCA Profitability</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Frequência de Reajuste (código)</label><input class={inputCls} bind:value={ig_adjustmentFrequencyTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Pró-rata de Reajuste (código)</label><input class={inputCls} bind:value={ig_adjustmentProRataTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Tipo de Reajuste (código)</label><input class={inputCls} bind:value={ig_adjustmentTypeCode} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- CREDITOR -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Creditor</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Nome do Credor</label><input class={inputCls} bind:value={creditor_creditorName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número do Documento (CPF/CNPJ)</label><input class={inputCls} bind:value={creditor_documentNumber} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- BALLAST -->
|
|
|
|
|
<div class={cardCls + ' mb-8'}>
|
|
<div class={cardCls + ' mb-8'}>
|
|
|
- <h2 class="mb-4 text-xl font-bold">Ballast</h2>
|
|
|
|
|
|
|
+ <h2 class="mb-4 text-xl font-bold">Pré-registro CPR</h2>
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
- <div><label class="text-sm">Tipo de Lastro (código)</label><input class={inputCls} bind:value={ballast_ballastTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número do Lote</label><input class={inputCls} bind:value={ballast_lotNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Quantidade do Lastro</label><input class={inputCls} bind:value={ballast_ballastQuantity} /></div>
|
|
|
|
|
- <div><label class="text-sm">Moeda (código)</label><input class={inputCls} bind:value={ballast_currencyCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Identificação da Transação</label><input class={inputCls} bind:value={ballast_transactionIdentification} /></div>
|
|
|
|
|
- <div class="md:col-span-3"><label class="text-sm">Texto Adicional</label><input class={inputCls} bind:value={ballast_additionalText} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- REGISTER OFFICE -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Register Office</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Número da CPR</label><input class={inputCls} bind:value={register_cprNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número do Contrato da CPR</label><input class={inputCls} bind:value={register_cprContractNumber} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- EVENTS -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <div class="mb-3 flex items-center justify-between">
|
|
|
|
|
- <h2 class="text-xl font-bold">Events</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mb-4 rounded-md border border-border1_contact/10 p-4">
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Tipo de Evento (código)</label><input class={inputCls} bind:value={ev_eventTypeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Data Original do Evento (dd/MM/aaaa)</label><input class={inputCls} placeholder="dd/MM/aaaa" bind:value={ev_eventOriginalDate} /></div>
|
|
|
|
|
- <div><label class="text-sm">Preço Unitário</label><input class={inputCls} bind:value={ev_unitPriceValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Preço Unitário de Juros</label><input class={inputCls} bind:value={ev_interestUnitPriceValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Valor Residual</label><input class={inputCls} bind:value={ev_residualValue} /></div>
|
|
|
|
|
- <div><label class="text-sm">Percentual de Amortização (%)</label><input class={inputCls} bind:value={ev_amortizationPercentage} /></div>
|
|
|
|
|
- <div><label class="text-sm">Quantidade do Evento</label><input class={inputCls} bind:value={ev_eventQuantity} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mt-3"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- PRODUCTION PLACES -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <div class="mb-3 flex items-center justify-between">
|
|
|
|
|
- <h2 class="text-xl font-bold">Production Places</h2>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mb-4 rounded-md border border-border1_contact/10 p-4">
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">Local de Produção (nome)</label><input class={inputCls} bind:value={pl_productionPlaceName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Número da Matrícula do Imóvel</label><input class={inputCls} bind:value={pl_propertyRegistrationNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Nome do Cartório</label><input class={inputCls} bind:value={pl_notaryName} /></div>
|
|
|
|
|
- <div><label class="text-sm">Área de Produção Total (ha)</label><input class={inputCls} bind:value={pl_totalProductionAreaInHectaresNumber} /></div>
|
|
|
|
|
- <div><label class="text-sm">Área Total (ha)</label><input class={inputCls} bind:value={pl_totalAreaInHectaresNumber} /></div>
|
|
|
|
|
- <div class="md:col-span-3"><label class="text-sm">Código CAR</label><input class={inputCls} bind:value={pl_carCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Latitude</label><input class={inputCls} bind:value={pl_latitudeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">Longitude</label><input class={inputCls} bind:value={pl_longitudeCode} /></div>
|
|
|
|
|
- <div><label class="text-sm">CEP</label><input class={inputCls} bind:value={pl_zipCode} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="mt-3"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- GREEN CPR -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <h2 class="mb-4 text-xl font-bold">Green CPR</h2>
|
|
|
|
|
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
|
|
|
- <div><label class="text-sm">CPR Verde? (S/N)</label><input class={inputCls} bind:value={green_greenCprIndicator} /></div>
|
|
|
|
|
- <div><label class="text-sm">Nome do Certificado (CPR Verde)</label><input class={inputCls} bind:value={green_greenCprCertificateName} /></div>
|
|
|
|
|
- <div><label class="text-sm">CNPJ do Certificador</label><input class={inputCls} bind:value={green_greenCprCertificateCnpjNumber} /></div>
|
|
|
|
|
- <div class="md:col-span-3"><label class="text-sm">Descrição do Georreferenciamento</label><input class={inputCls} bind:value={green_greenCprGeoreferencingDescription} /></div>
|
|
|
|
|
- <div><label class="text-sm">Declaração CPR Verde? (S/N)</label><input class={inputCls} bind:value={green_greenCprDeclarationIndicator} /></div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <!-- DELIVERY PLACE (JSON livre por enquanto) -->
|
|
|
|
|
- <div class={cardCls + ' mb-8'}>
|
|
|
|
|
- <div class="mb-3 flex items-center justify-between">
|
|
|
|
|
- <h2 class="text-xl font-bold">Delivery Place (JSON)</h2>
|
|
|
|
|
|
|
+ <div><label class="text-sm">Nome</label><input class={inputCls} bind:value={nome} /></div>
|
|
|
|
|
+ <div><label class="text-sm">Numero para Contato</label><input class={inputCls} bind:value={numeroContato} /></div>
|
|
|
|
|
+ <div><label class="text-sm">Email</label><input class={inputCls} bind:value={email} /></div>
|
|
|
|
|
+ <div><label class="text-sm">Tipo do produto</label><input class={inputCls} bind:value={tipoProduto} /></div>
|
|
|
|
|
+ <div><label class="text-sm">Número de Controle Interno</label><input class={inputCls} bind:value={numeroControleInterno} /></div>
|
|
|
|
|
+ <div><label class="text-sm">Quantidade do produto</label><input class={inputCls} bind:value={quantidadeProduto} /></div>
|
|
|
|
|
+ <div><label class="text-sm">Nome da propriedade</label><input class={inputCls} bind:value={nomePropriedade} /></div>
|
|
|
|
|
+ <div><label class="text-sm">Localização da propriedade</label><input class={inputCls} placeholder="" bind:value={localizacaoPropriedade} /></div>
|
|
|
</div>
|
|
</div>
|
|
|
- <textarea class={inputCls + ' min-h-[180px] font-mono'} bind:value={deliveryPlaceDraft}></textarea>
|
|
|
|
|
- <p class="mt-2 text-sm text-tx_contact_form/70">Cole aqui o JSON do deliveryPlace. Quando tiver a estrutura final, eu troco por inputs dedicados.</p>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <!-- Rodapé de ações -->
|
|
|
|
|
<div class="flex flex-wrap items-center gap-3">
|
|
<div class="flex flex-wrap items-center gap-3">
|
|
|
- <button class={btnPrimary} type="button" on:click={() => (previewOpen = true)}>
|
|
|
|
|
|
|
+ <button class={btnPrimary} type="button" on:click={handleSubmit}>
|
|
|
Enviar
|
|
Enviar
|
|
|
</button>
|
|
</button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</section>
|
|
</section>
|
|
|
- </div>
|
|
|
|
|
|
|
+</div>
|