From 20d1a89c0740a304e57c2d8ee6ffcc17e3f6dba2 Mon Sep 17 00:00:00 2001 From: BENKE Charles Date: Tue, 28 May 2013 10:05:49 +0200 Subject: [PATCH 1/7] Update contrat.class.php Add get_element_list function for return list of element (intervention linked to the contract) --- htdocs/contrat/class/contrat.class.php | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index f5bdfb0d0db..d0599d75ef9 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -2071,6 +2071,48 @@ class ContratLigne return -2; } } + + /** + * Load elements linked to contract (only intervention for the moment) + * + * @param User $user Objet type + * @return array $elements array of linked elements + */ + function get_element_list($type) + { + $elements = array(); + + $sql = ''; + if ($type == 'intervention') + $sql = "SELECT rowid FROM " . MAIN_DB_PREFIX . "fichinter WHERE fk_contrat=" . $this->id; + if (! $sql) return -1; + + //print $sql; + dol_syslog(get_class($this)."::get_element_list sql=" . $sql); + $result = $this->db->query($sql); + if ($result) + { + $nump = $this->db->num_rows($result); + if ($nump) + { + $i = 0; + while ($i < $nump) + { + $obj = $this->db->fetch_object($result); + $elements[$i] = $obj->rowid; + $i++; + } + $this->db->free($result); + /* Return array */ + return $elements; + } + } + else + { + dol_print_error($this->db); + } + } + } From aa06a0b113b72a45837a429880e74b26761932f2 Mon Sep 17 00:00:00 2001 From: BENKE Charles Date: Tue, 28 May 2013 15:37:08 +0200 Subject: [PATCH 2/7] Update modSociete.class.php enhance filter on export of contact add postorfunction field in export of contact --- htdocs/core/modules/modSociete.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index fa23cf38ee1..9c556762d71 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -312,8 +312,8 @@ class modSociete extends DolibarrModules $this->export_label[$r]='ExportDataset_company_2'; $this->export_icon[$r]='contact'; $this->export_permission[$r]=array(array("societe","contact","export")); - $this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civilite'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode"); - $this->export_TypeFields_array[$r]=array('c.lastname'=>"Text",'c.firstname'=>"Text",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text"); + $this->export_fields_array[$r]=array('c.rowid'=>"IdContact",'c.civilite'=>"CivilityCode",'c.lastname'=>'Lastname','c.firstname'=>'Firstname','c.poste'=>'PostOrFunction','c.datec'=>"DateCreation",'c.tms'=>"DateLastModification",'c.priv'=>"ContactPrivate",'c.address'=>"Address",'c.zip'=>"Zip",'c.town'=>"Town",'c.phone'=>"Phone",'c.fax'=>"Fax",'c.phone_mobile'=>"Mobile",'c.email'=>"EMail",'p.libelle'=>"Country",'p.code'=>"CountryCode",'s.rowid'=>"IdCompany",'s.nom'=>"CompanyName",'s.status'=>"Status",'s.code_client'=>"CustomerCode",'s.code_fournisseur'=>"SupplierCode"); + $this->export_TypeFields_array[$r]=array('c.civilite'=>"List:c_civilite:civilite:code",'c.name'=>'Text','c.firstname'=>'Text','c.poste'=>'Text','c.datec'=>"Date",'c.priv'=>"Boolean",'c.address'=>"Text",'c.cp'=>"Text",'c.ville'=>"Text",'c.phone'=>"Text",'c.fax'=>"Text",'c.email'=>"Text",'p.libelle'=>"List:c_pays:libelle:rowid",'p.code'=>"Text",'s.rowid'=>"List:societe:nom",'s.nom'=>"Text",'s.status'=>"Status",'s.code_client'=>"Text",'s.code_fournisseur'=>"Text"); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>"company",'s.code_client'=>"company",'s.code_fournisseur'=>"company"); // We define here only fields that use another picto if (empty($conf->fournisseur->enabled)) { From 23c25066d3c32d4609df58ce2f6051d38bb05295 Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Tue, 28 May 2013 17:54:55 +0200 Subject: [PATCH 3/7] Change comment on dol_include_once --- htdocs/core/lib/functions.lib.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 9f543529379..0e647baeb55 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -223,10 +223,9 @@ function dol_getprefix() /** * Make an include_once using default root and alternate root if it fails. - * WARNING: In most cases, you should not use this function: * To link to a core file, use include(DOL_DOCUMENT_ROOT.'/pathtofile') * To link to a module file from a module file, use include './mymodulefile'; - * To link to a module file from a core file, then this function can be used + * To link to a module file from a core file, then this function can be used (call by hook / trigger / speciales pages) * * @param string $relpath Relative path to file (Ie: mydir/myfile, ../myfile, ...) * @param string $classname Class name From 7c56da05b80dae598f3df8b8dfddc3e2f081548b Mon Sep 17 00:00:00 2001 From: Florian Henry Date: Tue, 28 May 2013 18:35:15 +0200 Subject: [PATCH 4/7] Add hook on propal/order/incoive list --- htdocs/comm/propal/list.php | 6 +++++- htdocs/commande/liste.php | 6 ++++++ htdocs/compta/facture/list.php | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index 2e3b70a8ca3..a9f2ed914e6 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -77,7 +77,7 @@ $result = restrictedArea($user, $module, $objectid, $dbtable); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('propalcard')); +$hookmanager->initHooks(array('propallist')); @@ -85,6 +85,10 @@ $hookmanager->initHooks(array('propalcard')); * Actions */ + +$parameters=array('socid'=>$socid); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks + // Do we click on purge search criteria ? if (GETPOST("button_removefilter_x")) { diff --git a/htdocs/commande/liste.php b/htdocs/commande/liste.php index a9de12c790a..82bcdd7829d 100644 --- a/htdocs/commande/liste.php +++ b/htdocs/commande/liste.php @@ -67,10 +67,16 @@ $limit = $conf->liste_limit; $viewstatut=GETPOST('viewstatut'); +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +$hookmanager->initHooks(array('orderlist')); + /* * Actions */ +$parameters=array('socid'=>$socid); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hook + // Do we click on purge search criteria ? if (GETPOST("button_removefilter_x")) { diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index aa685e11ab3..9369a6341b0 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -98,7 +98,7 @@ $usehm=(! empty($conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?$conf->global->MA $object=new Facture($db); // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('invoicecard')); +$hookmanager->initHooks(array('invoicelist')); $now=dol_now(); From 15e663ae157634c1fc25a99e757d49298a4a3307 Mon Sep 17 00:00:00 2001 From: Vinicius Nogueira Date: Tue, 28 May 2013 23:07:08 -0300 Subject: [PATCH 5/7] Translation pt-BR Updating translation files pt-BR --- htdocs/langs/pt_BR/banks.lang | 10 +- htdocs/langs/pt_BR/boxes.lang | 102 ++++++++++++------- htdocs/langs/pt_BR/errors.lang | 180 +++++++++++++++++++++++---------- 3 files changed, 198 insertions(+), 94 deletions(-) diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index ae92ea7488f..85cab8cc5a5 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -38,7 +38,7 @@ Withdrawal=Reembolso AccountStatement=Extrato da Conta AccountStatementShort=Extrato AccountStatements=Extratos das Contas -LastAccountStatements=�ltimos Extratos Bancários +LastAccountStatements=Últimos Extratos Bancários Rapprochement=Conciliação IOMonthlyReporting=Relatório Mensal E/S BankAccountDomiciliation=Domicilio de Conta @@ -139,5 +139,11 @@ BankTransactionLine=Transação Bancária AllAccounts=Todas as Contas bancarias/de Caixa BackToAccount=Voltar e a Conta ShowAllAccounts=Mostrar para todas as Contas - +FutureTransaction=Transação futura. Não pode ser conciliada. +SelectChequeTransactionAndGenerate=Selecionar / filtrar cheques para incluir no recibo de depósito em cheque e clique em "Criar". +InputReceiptNumber=Escolha o extrato bancário relacionado com a conciliação. É um valor numérico classificável (tal como, AAAAMM) +EventualyAddCategory=Eventualmente, especificar uma categoria para classificar os registros +ToConciliate=Para conciliar? +ThenCheckLinesAndConciliate=Em seguida, verifique as linhas presentes no extrato bancário e clique +BankDashboard=Banco resumo de contas diff --git a/htdocs/langs/pt_BR/boxes.lang b/htdocs/langs/pt_BR/boxes.lang index e668f36e291..81f7e3838f3 100644 --- a/htdocs/langs/pt_BR/boxes.lang +++ b/htdocs/langs/pt_BR/boxes.lang @@ -2,59 +2,83 @@ CHARSET=UTF-8 BoxLastRssInfos=Links de informação RSS BoxLastProducts=Últimos produtos/serviços -BoxLastProductsInContract=Últimos produtos/serviços contratados +BoxProductsAlertStock=Produtos em alerta no estoque +BoxLastProductsInContract=Últimos %s produtos/serviços contratados BoxLastSupplierBills=Últimas faturas de Fornecedores -BoxLastCustomerBills=Últimas faturas a Clientes -BoxOldestUnpayedCustomerBills=Faturas a Clientes mais antigas pendentes de pagamento -BoxOldestUnpayedSupplierBills=Faturas de Fornecedores mais antigas pendentes de pagamento +BoxLastCustomerBills=BoxLastCustomerBills=Últimas faturas a Clientes +BoxOldestUnpaidCustomerBills=Faturas mais antigas de cliente a pagar +BoxOldestUnpaidSupplierBills=Faturas mais antigas de fornecedor a pagar BoxLastProposals=Últimos Orçamentos BoxLastProspects=Últimos clientes potenciais BoxLastCustomers=Últimos clientes -BoxLastCustomerOrders=Últimos pedidos -BoxLastCustomerNfes=Últimas Notas Fiscais BoxLastSuppliers=Últimos Fornecedores +BoxLastCustomerOrders=Últimos pedidos BoxLastBooks=Últimos books BoxLastActions=Últimas ações -BoxCurrentAccounts=Saldos contas correntes -BoxSalesTurnover=Volume de negocio -BoxTotalUnpayedCustomerBills=Total faturas a clientes Pendentes de pagamento -BoxTotalUnpayedSuppliersBills=Total faturas de Fornecedores Pendentes de Pagamento +BoxLastContracts=Últimos contratos +BoxLastContacts=Últimos contatos/endereços +BoxLastMembers=Últimos membros +BoxFicheInter=Últimas interevenções +BoxCurrentAccounts=Saldos contas bancarias +BoxSalesTurnover=Volume de vendas +BoxTotalUnpaidCustomerBills=Total de Faturas a receber de clientes +BoxTotalUnpaidSuppliersBills=Total de Faturas a pagar para fornecedores BoxTitleLastBooks=Os %s últimos Favoritos registados BoxTitleNbOfCustomers=Número de clientes BoxTitleLastRssInfos=As %s últimas Infos de %s -BoxTitleLastProducts=Os %s últimos Produtos/Serviços Registados +BoxTitleLastProducts=Os %s últimos Produtos/Serviços +BoxTitleProductsAlertStock=Produtos em alerta estoque BoxTitleLastCustomerOrders=Os %s últimos pedidos de clientes modificados -BoxTitleLastCustomerNfes=Os %s últimas notas fiscais de clientes modificadas -BoxTitleLastSuppliers=Os %s últimos Fornecedores modificados -BoxTitleLastCustomers=Os %s últimos clientes modificados +BoxTitleLastSuppliers=Os %s últimos fornecedores +BoxTitleLastCustomers=Os %s últimos clientes +BoxTitleLastModifiedSuppliers=Os %s últimos fornecedores alterados +BoxTitleLastModifiedCustomers=Os %s últimos clientes alterados BoxTitleLastCustomersOrProspects=Os %s últimos clientes ou clientes potenciais registados BoxTitleLastPropals=Os %s últimos Orçamentos registados -BoxTitleLastCustomerBills=As %s últimas faturas a clientes registradas -BoxTitleLastSupplierBills=As %s últimas faturas de Fornecedores registradas -BoxTitleLastProspects=Os %s últimos clientes potenciais modificados +BoxTitleLastCustomerBills=As %s últimas faturas a clientes +BoxTitleLastSupplierBills=As %s últimas faturas de fornecedores +BoxTitleLastProspects=Os %s últimos clientes potenciais +BoxTitleLastModifiedProspects=Os %s últimos clientes potenciais alterados BoxTitleLastProductsInContract=Os %s últimos produtos/serviços contratados -BoxTitleOldestUnpayedCustomerBills=As %s faturas mais antigas a Clientes pendentes de cobrança -BoxTitleOldestUnpayedSupplierBills=As %s faturas mais antigas de Fornecedores pendentes de pagamento -BoxTitleCurrentAccounts=Saldos das contas correntes -BoxTitleSalesTurnover=Volume de negocio realizado -BoxTitleTotalUnpayedCustomerBills=Pendente de clientes -BoxTitleTotalUnpayedSuppliersBills=Pendente a Fornecedores -BoxMyLastBookmarks=Os meus últimos Favoritos +BoxTitleLastModifiedMembers=os %s últimos membros alterados +BoxTitleLastFicheInter=As %s últimas intervenções +BoxTitleOldestUnpaidCustomerBills=As %s faturas de clientes mais antigas ( A RECEBER ) +BoxTitleOldestUnpaidSupplierBills=As %s faturas de fornecedores mais antigas ( A PAGAR ) +BoxTitleCurrentAccounts=Saldos de contas bancarias +BoxTitleSalesTurnover=Volume de vendas +BoxTitleTotalUnpaidCustomerBills=Faturas de clientes a receber +BoxTitleTotalUnpaidSuppliersBills=Faturas de fornecedores a pagar +BoxTitleLastModifiedContacts=os %s últimos contatos/endereços alterados +BoxMyLastBookmarks=Meus %s últimos marcadores +BoxOldestExpiredServices=Serviços expirados mais antigos +BoxLastExpiredServices=Os %s últimos serviços expirados +BoxTitleLastActionsToDo=As %s últimas ações a realizar +BoxTitleLastContracts=Os %s últimos contratos +BoxTitleLastModifiedDonations=Últimas %s doações alteradas +BoxTitleLastModifiedExpenses=Últimas %s despesas alteradas +BoxGlobalActivity=Atividade Global (faturas, propostas, ordens) FailedToRefreshDataInfoNotUpToDate=Erro na atualização do fluxos RSS. Data da última atualização: %s LastRefreshDate=Data da última atualização -NoRecordedBookmarks=Não existem favoritos pessoais. Click aqui para adicionar. -NoRecordedCustomers=Nenhum cliente registado -BoxTitleLastActionsToDo=As %s últimas ações a realizar -NoActionsToDo=Sem ações a realizar -NoRecordedOrders=Sem pedidos de clientes registados -NoRecordedNfes=Sem notas fiscais de clientes registados -NoRecordedProposals=Sem Orçamentos registados -NoRecordedInvoices=Sem faturas a clientes registados -NoUnpayedCustomerBills=Sem faturas a clientes Pendentes de pagamento -NoRecordedSupplierInvoices=Sem faturas de Fornecedores -NoUnpayedSupplierBills=Sem faturas de Fornecedores Pendentes de Pagamento -NoRecordedProducts=Nenhum Produto/Serviço registado -NoRecordedProspects=Nenhums prespéctiva registrada +NoRecordedBookmarks=Não existem marcadores pessoais. Click aqui para adicionar. +ClickToAdd=Click aqui para adicionar. +NoRecordedCustomers=Nenhum cliente cadastrado +NoRecordedContacts=Nenhum contato cadastrado +NoActionsToDo=Nenhuma atividade a realizar +NoRecordedOrders=Nenhum pedido de cliente registado +NoRecordedProposals=Nenhum orçamento encontrado +NoRecordedInvoices=Nenhuma fatura a clientes registada +NoUnpaidCustomerBills=Nenhuma fatura de cliente ( A RECEBER ) +NoRecordedSupplierInvoices=Nenhuma fatura de fornecedores ( A PAGAR ) +NoUnpaidSupplierBills=Nenhuma fatura de fornecedores ( A PAGAR ) +NoModifiedSupplierBills=Nenhuma fatura de fornecedores alterada +NoRecordedProducts=Nenhum produto/serviço +NoRecordedProspects=Nenhum cliente potencial NoContractedProducts=Nenhum Produto/Serviço contratado - - +NoRecordedContracts=Nenhum contrato +BoxLatestSupplierOrders=Últimos pedidos a fornecedores +BoxTitleLatestSupplierOrders=%s Últimos pedidos a fornecedores +NoSupplierOrder=Nenhum pedido a fornecedores +BoxInvoicesPerMonth=Faturas por mês +BoxOrdersPerMonth=Pedidos por mês +BoxProposalsPerMonth=Orçamentos por mês +NoTooLowStockProducts=Nenhum produto abaixo do limite de estoque \ No newline at end of file diff --git a/htdocs/langs/pt_BR/errors.lang b/htdocs/langs/pt_BR/errors.lang index 012cdbb20fb..767925a54ef 100644 --- a/htdocs/langs/pt_BR/errors.lang +++ b/htdocs/langs/pt_BR/errors.lang @@ -1,18 +1,31 @@ # Dolibarr language file - pt_BR rev. 0.0 - errors CHARSET=UTF-8 -ErrorLoginAlreadyExists=o login %s já existe. + +# No errors +NoErrorCommitIsDone=Nenhum erro, we commit + +# Errors +Error=Erro +Errors=Erros +ErrorButCommitIsDone=Erros foram encontrados apesar disso validamos +ErrorBadEMail=EMail %s está errado +ErrorBadUrl=Url %s está errado +ErrorLoginAlreadyExists=login %s já existe. ErrorGroupAlreadyExists=o grupo %s já existe. -ErrorDuplicateTrigger=um Arquivo trigger de Nome '%s' está utilizado. Elimine o duplicado da pasta '%s'. -ErrorFailToCreateFile=Erro ao criar o arquivo '' -ErrorFailToDeleteFile=Error à eliminar o Arquivo '%s'. -ErrorFailToRenameDir=Error à renombar a pasta '%s' a '%s'. -ErrorFailToCreateDir=Erro ao criar a pasta '%s' -ErrorFailToDeleteDir=Error à eliminar a pasta '%s'. -ErrorFailedToDeleteJoinedFiles=impossível eliminar a entidade já que tem Arquivos anexos. Elimine antes os Arquivos anexos +ErrorRecordNotFound=Registro não encontrado. +ErrorFailToCopyFile=Falha ao copiar o arquivo '%s' em '%s'. +ErrorFailToRenameFile=Falha ao renomear o arquivo '%s' em '%s'. +ErrorFailToDeleteFile=Falha ao excluir arquivo '%s'. +ErrorFailToCreateFile=Falha ao criar arquivo '%s'. +ErrorFailToRenameDir=Falha ao renomear diretorio '%s' into '%s'. +ErrorFailToCreateDir=Falha ao criar diretorio '%s'. +ErrorFailToDeleteDir=Falha ao deletar diretorio '%s'. +ErrorFailedToDeleteJoinedFiles=impossível eliminar a entidade já que tem Arquivos anexos. Elimine antes os Arquivos anexos. ErrorThisContactIsAlreadyDefinedAsThisType=Este contato já está definido como contato para este tipo. ErrorCashAccountAcceptsOnlyCashMoney=Esta conta bancaria é de tipo Caixa e só aceita o método de pagamento de tipo especie. ErrorFromToAccountsMustDiffers=a conta origem e destino devem ser diferentes. ErrorBadThirdPartyName=Nome de Fornecedor incorreto +ErrorProdIdIsMandatory=O %s é obrigatório ErrorBadCustomerCodeSyntax=a sintaxis do código cliente é incorreta ErrorCustomerCodeRequired=Código cliente obrigatório ErrorCustomerCodeAlreadyUsed=Código de cliente já utilizado @@ -21,49 +34,110 @@ ErrorUrlNotValid=O Endereço do Site está incorreta ErrorBadSupplierCodeSyntax=a sintaxis do código fornecedor é incorreta ErrorSupplierCodeRequired=Código fornecedor obrigatório ErrorSupplierCodeAlreadyUsed=Código de fornecedor já utilizado -ErrorBadParameters=parâmetros incorretos -ErrorFailedToWriteInDir=impossível escribir na pasta %s -ErrorFoundBadEmailInFile=Encontrada sintaxis incorreta em email em %s linhas em Arquivo (Exemplo linha %s com email -ErrorUserCannotBeDelete=o usuário não pode ser eliminado. Quizá esé associado a elementos de Dolibarr. -ErrorFieldsRequired=não se indicaron Alguns campos obrigatórios -ErrorFailedToCreateDir=Error na creação de uma carpeta. Compruebe que 0 usuario del servidor Web tiene derechos de escritura en las carpetas de documentos de Dolibarr. Si 0 parámetro safe_mode está ativo en este PHP, Compruebe que los archivos php dolibarr pertencen ao usuario del servidor Web. -ErrorNoMailDefinedForThisUser=E-Mail não definido para este usuário -ErrorFeatureNeedJavascript=Esta Funcionalidade precisa de javascript ativo para funcionar. Modifique em configuração->entorno. -ErrorTopMenuMustHaveAParentWithId0=um menu do tipo 'Superior' não pode ter um menu pai. Coloque 0 ao ID pai o busque um menu do tipo 'esquerdo' -ErrorLeftMenuMustHaveAParentId=um menu do tipo 'esquerdo' deve de ter um ID de pai -ErrorFileNotFound=Arquivo não encontrado (Rota incorreta, permissões incorretos o acesso prohibido por o parâmetro openbasedir) -ErrorFunctionNotAvailableInPHP=a função %s é requerida por esta Funcionalidade, mas não se encuetra disponível nesta Versão/Instalação de PHP. -ErrorDirAlreadyExists=já existe uma pasta com ese Nome. -ErrorFieldCanNotContainSpecialCharacters=o campo %s não deve contener caracter0es especiais -WarningAllowUrlFopenMustBeOn=o parâmetro allow_url_fopen deve ser especificado a on ao Arquivo php.ini para discolocar deste módulo completamente ativo. deve modificar este Arquivo manualmente -WarningBuildScriptNotRunned=o script %s ainda não ha ejecutado a construcção de gráficos. -WarningBookmarkAlreadyExists=já existe um marcador com este título o esta URL. -WarningPassIsEmpty=Atenção: a senha da base de dados está vazia. Esto é buraco na segurança. deve agregar uma senha e a sua base de dados e alterar a sua Arquivo conf.php para reflejar esto. -ErrorNoAccountancyModuleLoaded=Módulo de Contabilidade não ativado -ErrorExportDuplicateProfil=o Nome do perfil já existe para este lote de exportação -ErrorLDAPSetupNotComplete=a configuração Dolibarr-LDAP é incompleta. -ErrorLDAPMakeManualTest=foi criado unn Arquivo .ldif na pasta %s. Trate de gastor manualmente este Arquivo a partir da linha de comandos para Obter mais detalles acerca do error. -ErrorCantSaveADoneUserWithZeroPercentage=No se pode cambiar uma acção ao estado no comenzada si tiene un usuario realizante de a acción. -ErrorRefAlreadyExists=a referencia utilizada para a criação já existe -ErrorPleaseTypeBankTransactionReportName=Introduzca o Nome do registo bancario sobre a qual o escrito está constatado (formato AAAAMM ó AAAMMJJ) -ErrorRecordHasChildren=não se pode eliminar o registo porque tem hijos. -ErrorFailedToSendPassword=Erro ao enviar a senha -ErrorPasswordDiffers=As Senhas não são identicas, volte a introduzi-las -ErrorForbidden=acesso não autorizado.
Tentando acessar a uma página, zona o função sem estar em uma Sessão autentificada o que não se autoriza para a sua conta de usuário. -ErrorForbidden2=Os permissões para este usuário podem ser designados por o administrador Dolibarr mediante o menu %s-> %s. -ErrorForbidden3=Dolibarr não parece funcionar em uma Sessão autentificada. Consulte a documentação de Instalação de Dolibarr para saber cómo administrar as autenticaciones (htaccess, mod_auth u outro...). -ErrorNoImagickReadimage=a função imagick_readimage não está presente nesta Instalação de PHP. a resenha não está pois disponível. Os administradores podem desativar esta separador ao menu configuração - visualização. -ErrorRecordAlreadyExists=registo já existente -ErrorCantReadFile=Erro na leitura do arquivo '&s' -ErrorCantReadDir=Erro na leitura da pasta '%s' -ErrorFailedToFindEntity=Error de leitura da entidade '%s' +ErrorBadParameters=Parâmetros incorretos +ErrorBadValueForParameter=Valor incorreto '%s' parametro incorreto '%s' +ErrorBadImageFormat=Formato de imagen não suportado +ErrorBadDateFormat=Valor '%s' tem o formato de data errada +ErrorFailedToWriteInDir=impossível escrever na pasta %s +ErrorFoundBadEmailInFile=Encontrada sintaxis incorreta em email em %s linhas em Arquivo (Exemplo linha %s com email=%s) +ErrorUserCannotBeDelete=O usuário não pode ser excluído. Pode ser que está associada a entidades Dolibarr. +ErrorFieldsRequired=Alguns campos obrigatórios não foram preenchidos. +ErrorFailedToCreateDir=Falha ao criar um diretório. Verifique se o usuário do servidor web tem permissões para gravar no diretório de documentos Dolibarr. Se o parâmetro safe_mode esta ligado neste PHP, verifique se Dolibarr php arquivos possui para o usuário do servidor web (ou grupo). +ErrorNoMailDefinedForThisUser=Nenhum e-mail definido para este usuário +ErrorFeatureNeedJavascript=Este recurso necessita que o Javascript esteja ativado para o trabalho. Mudar isso no setup - display. +ErrorTopMenuMustHaveAParentWithId0=Um menu do tipo 'Top' não pode ter um menu pai. Coloque 0 no menu pai ou escolher um menu do tipo 'Esquerda'. +ErrorLeftMenuMustHaveAParentId=Um menu do tipo 'Esquerda' deve ter um ID de pai. +ErrorFileNotFound=Arquivo % s não encontrado (Caminho inválido, permissões erradas ou acesso negado pelo PHP OpenBasedir ou parâmetro safe_mode) +ErrorDirNotFound=Diretório % s não encontrado (Caminhoinválido, permissões erradas ou acesso negado pelo PHP OpenBasedir ou parâmetro safe_mode) +ErrorFunctionNotAvailableInPHP=Função % s é necessário para esta função, mas não está disponível nesta versão / configuração do PHP. +ErrorDirAlreadyExists=Um diretório com este nome já existe. +ErrorFileAlreadyExists=Um arquivo com este nome já existe. +ErrorPartialFile=Arquivo não foi completamente recebido pelo servidor. +ErrorNoTmpDir=Diretório temporário %s não existe. +ErrorUploadBlockedByAddon=Envio bloqueado por um plug-in PHP / Apache. +ErrorFileSizeTooLarge=O tamanho do arquivo é muito grande. +ErrorSizeTooLongForIntType=Tamanho demasiado longo para o tipo int (%s dígitos no máximo) +ErrorSizeTooLongForVarcharType=Tamanho demasiado longo para o tipo string (%s caracteres no máximo) +ErrorNoValueForSelectType=Por favor, preencha o valor de lista de seleção +ErrorNoValueForCheckBoxType=Por favor, preencha o valor para a lista de checkbox +ErrorNoValueForRadioType=Por favor, preencha o valor para a lista de rádio box +ErrorBadFormatValueList=O valor da lista não pode ter mais do que um vir : %s, mas precisa de pelo menos um: llave, Valores +ErrorFieldCanNotContainSpecialCharacters=Campo %s não deve contém caracteres especiais. +ErrorNoAccountancyModuleLoaded=Módulo de contabilidade desativado +ErrorExportDuplicateProfil=Este nome profil já existe para este conjunto de exportação. +ErrorLDAPSetupNotComplete=Dolibarr-LDAP correspondência não é completa. +ErrorLDAPMakeManualTest=Um .ldif arquivo foi gerado no diretório %s. Tente carregá-lo manualmente a partir da linha de comando para ter mais informações sobre os erros. +ErrorCantSaveADoneUserWithZeroPercentage=Não é possível salvar uma ação com "status não iniciada" se o campo "feito" também está cheio. +ErrorRefAlreadyExists=Ref usado para a criação já existe. +ErrorPleaseTypeBankTransactionReportName=Por favor, digite o nome do recibo bancário onde a transação está relatada (Format YYYYMM ou AAAAMMDD). +ErrorRecordHasChildren=Falha ao excluir os registros, uma vez que este tem alguns filhos. +ErrorModuleRequireJavascript=Javascript não deve ser desativado para ter esse recurso funcionando. Para ativar/desativar o Javascript, vá ao menu Home->Setup->Display. +ErrorPasswordsMustMatch=Ambas as senhas digitadas devem ser iguais. +ErrorContactEMail=Um erro técnico ocorrido. Por favor, contate o administrador seguir email %s en fornecer o código de erro %s na sua mensagem, ou ainda melhor, adicionando uma cópia de tela da página. +ErrorWrongValueForField=Valor errado para o número do campo %s (valor '%s' não corresponde regra regex %s) +ErrorFieldValueNotIn=Valor errado para o número do campo %s (valor '%s' não é um valor disponível no campo %s da tabela %s) +ErrorFieldRefNotIn=alor errado para o número do campo %s (valor '%s' a referencia %s não existe) +ErrorsOnXLines=erros em %s source record(s) +ErrorFileIsInfectedWithAVirus=O programa antivírus não foi capaz de validar o arquivo (arquivo pode ser infectado por um vírus) +ErrorSpecialCharNotAllowedForField=Os caracteres especiais não são permitidos para o campo "%s" +ErrorDatabaseParameterWrong=Parâmetro de configuração de banco de dados '%s' tem um valor não compatível para usar Dolibarr (deve ter valor '%s'). +ErrorNumRefModel=Uma referência existe no banco de dados (%s) e não é compatível com esta regra de numeração. Remover registro ou renomeado referência para ativar este módulo. +ErrorQtyTooLowForThisSupplier=Quantidade muito baixa para este fornecedor ou nenhum preço definido neste produto desta empresa +ErrorModuleSetupNotComplete=Configuração do módulo parece ser incompleto. Vá em Setup - Módulos para ser concluído. +ErrorBadMask=Erro na máscara +ErrorBadMaskFailedToLocatePosOfSequence=Erro, máscara, sem número de série +ErrorBadMaskBadRazMonth=Erro, valor de reset inválido. +ErrorSelectAtLeastOne=Erro. Selecione pelo menos uma entrada. +ErrorProductWithRefNotExist=Produto com referência '%s' não existe +ErrorDeleteNotPossibleLineIsConsolidated=Não é possível excluir porque o registro está ligado a uma transação bancaria que está conciliada +ErrorProdIdAlreadyExist=%s é atribuído a um fornecedor +ErrorFailedToSendPassword=Falha no envio da senha +ErrorFailedToLoadRSSFile=Falha ao obter RSS feed. Tente adicionar MAIN_SIMPLEXMLLOAD_DEBUG constante se as mensagens de erro não fornece informações suficientes. +ErrorPasswordDiffers=Senhas difere, por favor, tente novamente. +ErrorForbidden=Acesso negado.
Você tenta acessar uma página, área ou função, sem estar em uma sessão autenticada ou que não é permitido para o usuário. +ErrorForbidden2=Permissão para este login pode ser definido pelo administrador Dolibarr a partir do menu %s->%s. +ErrorForbidden3=Parece que Dolibarr não é usada por meio de uma sessão de autenticação. Dê uma olhada na documentação de configuração Dolibarr saber como gerenciar autenticações (htaccess, mod_auth ou outro...). +ErrorNoImagickReadimage=Class Imagick não é encontrado nesta PHP. Pré-visualização pode estar disponível. Os administradores podem desabilitar essa aba no menu Setup - Display. +ErrorRecordAlreadyExists=Registro já existe +ErrorCantReadFile=Falha ao ler arquivo '%s' +ErrorCantReadDir=Falha ao ler diretório '%s' +ErrorFailedToFindEntity=Falha ao ler ambiente '%s' ErrorBadLoginPassword=Identificadores de usuário o senha incorretos -ErrorLoginDisabled=a sua conta está desativada -ErrorFailedToRunExternalCommand=Error ao tentar o comando externo. verifique que está disponível e ejecutable por a sua servidor PHP. sim o PHP Safe Mode está ativo, verifique que o comando encontra-se em uma pasta definida ao parâmetro safe_mode_exec_dir. -ErrorFailedToChangePassword=Error na modificação da senha -ErrorLoginDoesNotExists=a conta de usuário de %s não foi encontrado. -ErrorLoginHasNoEmail=Este usuário não tem e-mail. impossível continuar. -ErrorBadValueForCode=Valor incorreto para o código. volte a tentar com um Novo valor... -ErrorFileIsInfectedWith=Este Arquivo está infectado por %s -WarningInstallDirExists=Atenção: a pasta install (%s) ainda existe. uma vez concluida a Instalação a sua presença não é necessário, e representa um falho serio de segurança. Devería eliminarla o antes possível. -WarningUntilDirRemoved=Esta alerta seguirá ativa mientras a pasta exista (alerta visivel para Os Usuários admin somente). \ No newline at end of file +ErrorLoginDisabled=Sua conta foi desativada +ErrorFailedToRunExternalCommand=Falha ao executar o comando externo. Confira está disponível e executável pelo seu servidor PHP. se PHP Safe Mode está ativado, verifique se o comando está dentro de um diretório definido pelo parâmetro safe_mode_exec_dir. +ErrorFailedToChangePassword=Falha ao alterar a senha +ErrorLoginDoesNotExists=Usuário com login %s não pôde ser encontrado. +ErrorLoginHasNoEmail=Este usuário não tem nenhum endereço de e-mail. Processo abortado. +ErrorBadValueForCode=Valor inválido para o código de segurança. Tente novamente com o novo valor... +ErrorBothFieldCantBeNegative=Campo %s e %s não podem ser negativos. +ErrorWebServerUserHasNotPermission=Conta de Usuario %s usado para executar servidor web não tem permissão para que +ErrorNoActivatedBarcode=Nenhum tipo de código de barras ativado +ErrUnzipFails=Falha para unzip %s com ZipArchive +ErrNoZipEngine=Nenhum motor para descompactar o arquivo %s neste PHP +ErrorFileMustBeADolibarrPackage=O Arquivo %s deve ser um pacote zip Dolibarr +ErrorFileRequired=É preciso um arquivo Dolibarr pacote +ErrorPhpCurlNotInstalled=O CURL PHP não está instalado, isto é essencial para conversar com Paypal +ErrorFailedToAddToMailmanList=Falha ao adicionar registros %s para lista Mailman %s ou SPIP base +ErrorFailedToRemoveToMailmanList=Falha ao remover registro %s para lista Mailman %s ou SPIP base +ErrorNewValueCantMatchOldValue=O novo valor não pode ser igual a um velho +ErrorFailedToValidatePasswordReset=Falha ao resetar senha. Pode ser o reset já tenha sido feito (este link pode ser usado apenas uma vez). Se não, tente reiniciar o processo de reset. +ErrorToConnectToMysqlCheckInstance=Falhas na conexão ao banco de dados. Verifique servidor MySQL está rodando (na maioria dos casos, você pode iniciá-lo a partir de sagacidade linha de comando 'sudo /etc/init.d/mysql start'). +ErrorFailedToAddContact=Falha ao adicionar contatos +ErrorDateMustBeBeforeToday=A data não pode ser maior do que hoje + +# Warnings +WarningMandatorySetupNotComplete=Parâmetros de configuração obrigatórios ainda não estão definidos +WarningSafeModeOnCheckExecDir=Atenção, a opção PHP safe_mode está em modo de comando deve ser armazenado dentro de um diretório declarado pelo parâmetro php safe_mode_exec_dir. +WarningAllowUrlFopenMustBeOn=Parâmetro allow_url_fopen deve ser ajustado para on no arquivo php.ini para ter este módulo funcionar completamente. Você deve modificar este arquivo manualmente. +WarningBuildScriptNotRunned=Script %s ainda não foi executado para construir gráficos, ou não há dados para mostrar. +WarningBookmarkAlreadyExists=Um marcador com este título ou essa meta (URL) já existe. +WarningPassIsEmpty=Atenção, senha de banco de dados está vazio. Esta é uma falha de segurança. Você deve adicionar uma senha para o banco de dados e alterar o arquivo conf.php para resolver isso. +WarningConfFileMustBeReadOnly=Atenção, o seu arquivo de configuração (htdocs/conf/conf.php) pode ser substituído pelo servidor web. Esta é uma falha de segurança séria. Modificar permissões em arquivos para estar em modo somente leitura para o usuário do sistema operacional utilizado pelo servidor web. Se você usa o formato Windows e FAT para o seu disco, você deve saber que este sistema de arquivos não permite adicionar permissões em arquivos, por isso não pode ser completamente seguro. +WarningsOnXLines=Avisos sobre %s registro de fonte (s) +WarningNoDocumentModelActivated=Nenhum modelo, para a geração de documentos, foi ativado. Um modelo será escolhida por padrão até que você verifique a configuração do módulo. +WarningLockFileDoesNotExists=Atenção, uma vez que a instalação estiver concluída, você deve desabilitar a instalação/migrar ferramentas, adicionando um arquivo install.lock no diretório %s. Se estiver faltando este arquivo é uma falha de segurança. +WarningUntilDirRemoved=Todos os avisos de segurança (visível somente por usuários de administrador) permanecerá ativo enquanto a vulnerabilidade está presente (ou que a constante MAIN_REMOVE_INSTALL_WARNING é adicionada Setup->Other setup). +WarningCloseAlways=Atenção, o fechamento é feito mesmo se o valor difere entre elementos de origem e de destino. Ative esse recurso com cautela. +WarningUsingThisBoxSlowDown=Atenção, utilizando esta caixa de abrandar a sério todas as páginas que mostram a caixa. +WarningClickToDialUserSetupNotComplete=Instalação de informações ClickToDial para o usuário não são completas (ver guia ClickToDial no seu cartão de usuário). +WarningNotRelevant=Operação irrelevante para este conjunto de dados From 3b9af82c390c810cec813ac74b57a17febe317fd Mon Sep 17 00:00:00 2001 From: Stephen L Date: Wed, 29 May 2013 13:28:44 +0200 Subject: [PATCH 6/7] Add Invoice hook in orderstoinvoice.php + Standardization Signed-off-by: Stephen L. --- htdocs/commande/orderstoinvoice.php | 52 ++++++++++++++++++----------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php index 93a4db53fbb..9631ced232b 100755 --- a/htdocs/commande/orderstoinvoice.php +++ b/htdocs/commande/orderstoinvoice.php @@ -78,6 +78,12 @@ if ($action == 'create') } } +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; +$hookmanager=new HookManager($db); +$hookmanager->initHooks(array('orderstoinvoice')); + + /* * Actions */ @@ -200,18 +206,18 @@ if (($action == 'create' || $action == 'add') && empty($mesgs)) while ($ii < $nn) { - dol_include_once('/commande/class/commande.class.php'); - $srcobject = new Commande($db); + include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; + $objectsrc = new Commande($db); dol_syslog("Try to find source object origin=".$object->origin." originid=".$object->origin_id." to add lines"); - $result=$srcobject->fetch($orders_id[$ii]); + $result=$objectsrc->fetch($orders_id[$ii]); if ($result > 0) { if($closeOrders) { - $srcobject->classer_facturee(); - $srcobject->setStatut(3); + $objectsrc->classer_facturee(); + $objectsrc->setStatut(3); } - $lines = $srcobject->lines; - if (empty($lines) && method_exists($srcobject,'fetch_lines')) $lines = $srcobject->fetch_lines(); + $lines = $objectsrc->lines; + if (empty($lines) && method_exists($objectsrc,'fetch_lines')) $lines = $objectsrc->fetch_lines(); $fk_parent_line=0; $num=count($lines); for ($i=0;$i<$num;$i++) @@ -306,7 +312,7 @@ if (($action == 'create' || $action == 'add') && empty($mesgs)) } else { - $mesgs[]=$srcobject->error; + $mesgs[]=$objectsrc->error; $error++; } $ii++; @@ -424,6 +430,23 @@ if ($action == 'create' && empty($mesgs)) select_projects($soc->id, $projectid, 'projectid'); print ''; } + + include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; + $objectsrc = new Commande($db); + $listoforders = array(); + foreach ($selected as $sel) + { + $result=$objectsrc->fetch($sel); + if ($result > 0) + { + $listoforders[] = $objectsrc->ref; + } + } + + // Other attributes + $parameters=array('objectsrc' => $objectsrc, 'idsrc' => $listoforders, 'colspan' => ' colspan="3"'); + $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook + // Modele PDF print ''.$langs->trans('Model').''; print ''; @@ -438,18 +461,7 @@ if ($action == 'create' && empty($mesgs)) print ''; print ''; // Private note From 4f9b5883df92ebc6179c5f0515bd1e08ea917ad6 Mon Sep 17 00:00:00 2001 From: simnandez Date: Wed, 29 May 2013 18:17:39 +0200 Subject: [PATCH 7/7] Fix: [ bug #916 ] Products complementary attributes, imports and multicompany Fix: [ bug #917 ] Missing field type in products complementary attributes imports No Changelog Update need, because complementary attributes is new in 3.4 --- htdocs/core/modules/modProduct.class.php | 46 ++++++++++++------------ 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index 830974f7a4b..c4ded22f591 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Sebastien Di Cintio * Copyright (C) 2004 Benoit Mortier * Copyright (C) 2005-2012 Regis Houssin - * Copyright (C) 2012 Juanjo Menent + * Copyright (C) 2012-2013 Juanjo Menent * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -145,7 +145,7 @@ class modProduct extends DolibarrModules if (! empty($conf->stock->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r],array('p.stock'=>'product','p.pmp'=>'product')); if (! empty($conf->barcode->enabled)) $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r],array('p.barcode'=>'product')); // Add extra fields - $sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product'"; + $sql="SELECT name, label, type FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product'"; $resql=$this->db->query($sql); if ($resql) // This can fail when class is used on old database (during migration for example) { @@ -153,27 +153,27 @@ class modProduct extends DolibarrModules { $fieldname='extra.'.$obj->name; $fieldlabel=ucfirst($obj->label); - $typeFilter="Text"; - switch($obj->type) - { - case 'int': - case 'double': - case 'price': - $typeFilter="Numeric"; - break; - case 'date': - case 'datetime': - $typeFilter="Date"; - break; - case 'boolean': - $typeFilter="Boolean"; - break; - case 'sellist': - $typeFilter="List:".$obj->param; - break; - } + $typeFilter="Text"; + switch($obj->type) + { + case 'int': + case 'double': + case 'price': + $typeFilter="Numeric"; + break; + case 'date': + case 'datetime': + $typeFilter="Date"; + break; + case 'boolean': + $typeFilter="Boolean"; + break; + case 'sellist': + $typeFilter="List:".$obj->param; + break; + } $this->export_fields_array[$r][$fieldname]=$fieldlabel; - $this->export_TypeFields_array[$r][$fieldname]=$typeFilter; + $this->export_TypeFields_array[$r][$fieldname]=$typeFilter; $this->export_entities_array[$r][$fieldname]='product'; } } @@ -198,7 +198,7 @@ class modProduct extends DolibarrModules $this->import_tables_creator_array[$r]=array('p'=>'fk_user_author'); // Fields to store import user id $this->import_fields_array[$r]=array('p.ref'=>"Ref*",'p.label'=>"Label*",'p.description'=>"Description",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.duration'=>"Duration",'p.customcode'=>'CustomCode','p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell*",'p.tobuy'=>"OnBuy*",'p.fk_product_type'=>"Type*",'p.finished'=>'Nature','p.datec'=>'DateCreation*'); // Add extra fields - $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product'"; + $sql="SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'product' AND entity = ".$conf->entity; $resql=$this->db->query($sql); if ($resql) // This can fail when class is used on old database (during migration for example) {