Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Como acessar

como_acessar_test_code.gif

O test code foi criado para que os desenvolvedores possam testar os Entry Points criados no banco de dados e funcionalidades do sistema, pois anteriormente era necessário inserir os códigos e configurações no Banco de Dados e executar pelo sistema, com o Test Code é possível centralizar a execução e testes para validação dos códigos e configurações.

Códigos de Exemplo

(acesse aqui para mais informações sobre DAO)

//Obter um único registro do banco pelo SEQ_DB:
$operacao = Dao::table('EQP_OPER')->seqDb(10);

// Criar um array com a chave sendo o SEQ_DB:
$records = Dao::table('EQP')->select('SEQ_DB')->get();
$seqDbList = array_column($records, null,'SEQ_DB');
print_r($seqDbList);

Exemplo de Alerts

(acesse aqui para mais informações sobre Alerts)

$$reportsService = new ReportsService();
$reportExportService = new ReportExportService();

$html = $reportsService->getHtmlReport('test_reports',['inicio'=>'03/10/2020','fim'=>'04/10/2020']);

/** 
 * O ultimo parametro no metodo generatePdfFile com o valor "true", 
 * define que o retorno serão metadados do arquivo ('filePath' e 'fileName'), 
 * necessario para enviar o pdf anexo no alerts
*/
$pdf = $reportExportService->generatePdfFile($html,[],'report1.pdf', true);
$pdf2 = $reportExportService->generatePdfFile($html,[],'report2.pdf', true);

$imagem = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI4AAABACAYAAADMH0/MAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QMcEzoVGrfXywAAH1RJREFUeNrtnXmcVNW1779rn1NDNzQ9MDSjSIOCIA6AxhmNMfGqMdEIRq+J0SQmN8bkY3xqBm/KTlQck2d85l7JTXxmcKATk1yNswIiCjggAg3SDDI23U1302MN55y97h/VTF2nCjB5nzyl95916uzae+3fmn5rnVPCR3i0vHVnqYd/kSIT1Ng6F/texE2uLZ0caxOptvSN/2dDPsqLb3jrp2NB7lXRswRJCzSoZZkg84jIAs9Pbxk+rTopoH1H3QecPcBZkehv0vGzLMHZih5hkAkgQxRNq9W3HCNPqvLU4Km3bBfpA08fcIAND18ZdwbpwLgbt35lzI/5Q+ISjYz2vOAUNXq2WD0eERV4STGPWDeycNhxN3b1HfkhDBzVGc6Wl4pPV9//thHJKPIegS6RqCzzXNMVGzCuUqx81ghXIEwWlY2I3qsxb07l0dWdfcd+qAJn7nR3W/rwCyz2NtChImJQ3YHIElXzZ1eCBSY6ttuUxo5StdeCnK+qrQL/Jxp1fld2zA9a+47+EHVVTX+5uiQdz0y21h4ljjlFlJMtjBboEOEpsA+OaPNqm44+diBJ+aqq/TYYH/SO9JCihw877IZk3/F/+OF8FBedSGAqjbHjK1NbG31/RVxLFyj6GiLtCmOAT4iY8e3xSFM61bLK+AOXG0ejYjhJhCOiKbvmrv+cuam6+um+lP1QAY4q4i6aMMVLBldv3to9qbOxNdqxbXtz0mtd19XmLiguj60UZLCInIHaEyXQzZ5ZWhuNj11ukXKF6YodltqefOfuh15p6oPAIQKcM5numkj3ucC3BTlXlE+pMM5Peuqmtm8+6ugJdcm0LrdqByLyCWCcE5TUDQvKVnXFnc0CRyOcANJ29y3nv1n98xf8Phgc/DAfOeDcOj8wDi+hVAv8QaBJ4fOq/O9ujd386tx5Iytbu2o9z5slVv4icAzi3LS1e31V5ZRBq0TcX2MlDTpze3NysqpKHwwOlawKhLk4i+eNK870j440vn4e5HIVHY7yR/DvPG3scRu3lkYmW5wHDTpZVO4Ybst+vnFIZUUR/BzlAkXurPTi98kpfYHyx97i9KBd5Sz8k6rXtp9xY22tl5JfBCrfU1gJfEGMe92CuqUVI6JbV6D212o1aeHireycuKHDa8LwjBg6EP1Ug9s+rA8Ghwhweo+zqms7G5aufNkN9BaQD1S5TEzks3XvbXXwnOdReVnQI9TRc8sz62JxIm+oZQ3okarOND7ipZc+4PwdY2YNQTqTXCyi/4WiiFzcmI6NbE8mmxD7rAoecMqguFvR0tbdpKLvgvQ3jnPMhrmJWB8UDgHgqCLP3D8u9vw9x/Sbm5ju7rE8G1OK/E2Q11GdAnp6LQTiOotRtooyPuj2Du8aTDdWVoJaUTtxYAn9+6DwMQeOgrx55+QxpSn3ymLfuzEab5yse7kav7KrEZgHElGfE/uvXNovTapBjNmoUOG6ZtSkSZMC45otgnQhMtinqLgPCh9z4MxLTHcyTnC2qrkVuB7RC+YlRu92NfM+2JjBBCsUbVejRxUVMcBsKU5j7QdAzAYMoaYGa20LkEK0v5VMv7445+PO4zDfqpVmRa0I/azKNCcaKdl1/dZq1DVOg6i2CTIgFonGmyfHAlXaQERE+79dVW6MtWkEX5VoIES1r1vn4w0cqcb6QbAGZSOIIyITiMSH7bIYAuqrpBGTEQVHrZkKiCMBolYh4G3AGEFBxGQcAq/P3hwCwbF11RMhBdql2FZxVNirPTTiBztFdJ5V+3I3toWnZgciLBOV5y369tRrZvsmQ4MIL6I8n7YljX3tpQc33I/agucmprvRoGGKhSpEnnSc4KF0ReX7e3/nmfTq1vNiE+4BeKZjTetZ1dhNr6desG3RJRpzW0VQVa++fmm02vpif/VMR19/zsFa/n/2AubMwKk8dsIQJ2oqfRsEnRrdcv73l+/M0yMsL94x4Yi4yP3AZAvXnjF21dMyk6DvKA8hizM3Md01kYZjxOFbavUYR403QL1XFt4z7v/C2vX0ch8LZk0us/iXA59Q0bdjjn2PmfT11BxqMU48vn2kGLlB4EuCnCAip4iR72Aj//buPcfsw608PWtyuRB8xUGuEUiD8+SmTndrX2xyCAInsIwR4XgRE939oUoJykltqdSQXR+9dtf4klL8LyP6HUUHWeUNm7EvzayuzfQd4aHnqgQXwhyNghg3JprALIqPP8yzzpdF9Fsgg0HrCGS2BoM3wKq+EzwEgaOeZUNEWaroOBGJZD/VLgyLnWSwc378qGMduEFEz5Ns22czyMOBz2tnVc8P9gru9QASAP3QAP/77s83px7g74bK7h+YBOmH2e+HB86MOQ6sLCIaKUHtIHAGYE0MxwqYACSFF3Ri3Ba66aCtO8n86n3bNFPvbzFFE+/3rXVRJiN4IrwaqDxN3F5iRL4kKicAsa4gYpd1Dl77aNOk+nc7K0/jMpPdmLGKyloeTX1AAqgnTmpAOX5mKNYvxUgM6/qI34bVemzLDmp+ngoVzDXXREgP60fKHUjEGUQmKMGNRAhsgGvbyWgD+E3U3NoFcmCHl0i4bC4uokPLifqDsFKCEu05mhSOsxMv2URHRSvPfTcDKJfdOwgJJmOD3Kq9qoertfzhlu0HBL5LZ40G/0jEMSFzdWEzK6mpbgGEL941DPxJOCKgSVQ7CLSZZHQnsTHd1MwMPnw6PmNOFPP+KJApOJyKylHAKIRyVKJZXVJFJIXSBrYeMWuBhai/CD/YSE11Zo9cMWdHxw20QWSkIwzEyFgR/bQKZyJSLoBvpfOPzePto02Toi1ePI0Y3Wvz3UhwA+q/jMSPA/spVKaBjgFKAYdsat8JrEP1JRzzBOmlG6ipyQpixn1FxLsOx4+cCvYM0CNBRoAUgxoERelCdTNiXgc7h6j3Ho9Up/LK6cpEHBs7DLUnEcjJwESEEbvXlI3nPJQWRNdhdD5iX2DshFXUrTsJqw9hpDL3sG0bqt+j3nsqRxFzzur2wUS4C8uFGNMLOBqAPol1q3n85m3MSFTgxm5G7FUgLio+wk6UrajUIrxC3L7Kw5lmqLYHDpwZMxyixw4hkLMRuQT0eJAhQBQpFGSrgngozai+jtqf8cQtb+ytsavuGl/SjDkOyxUI56oyTEQiCopq/fZMyfPfXvepkxv9/uM1F+wbEHsbasaiXAhUAfE8a7Kgbag8ie/cQ2P3OkYWDUXtBaheBBwHUo6oCyKhe1G6QRZhuJvM0pd3g28fOU0dRhD8C8KFwDSECiASPiegWNB2YAnq3IvxFJxfA4eFfLkVyzepzzxZEDhXPhwnve0ShHsQGZrze0IdwnfYkn6FIRgi8c+hdhYiY3PPjwzKVuBJ4Nc89sP33QO2MpG6U1H9JiJnAQMROcCMTCQLLi3LZnGmc9fZz01Md+PFjWOalasVLgKqBInIHi/bqfDgTzedvLrB7/eZXAupClqMmhuxejhG4vvPIqUcuBRXUwx338AGM4EzgFJk1y9L/r0I/YDpqArRaRthzprdSnBBohg3diY2+FqPnAYUVqrddt+AlKF8ChMMxpqnEYL8y8BwJjA/r7IK/k9OQNxrgcqQ641Y+SVBbAHzfxhw2W1TsPZ6DIfnOb8YQhXKt4ChXHrbD/cPnHPvj+GuORM1PwJORPgw3XI+yGvAPYxP1wK6IjExujO641Tf8nWEfwEpFdlHVFZh5ZausmdXdA05E6EsV5AiqAxGdAhGDtx6ivZD7SXgnAc6kl2B+cElFVOx/pmc+4sPeI40FySK6Rf7LMLNwET4EHISDMrRQDGipXkBrPvZ61d/Vk7S/SIweY8y7FZGD5EXkOCvPH5DkisTZWTkXxGmgDj7WV8xyjk47suFgTM94VLRdQ5qqoHjQqyMZts0sejuXMEgKrvNsuIDb2Dsj/GOfJPqmcHSn48ua03az4mYG4EjhdyDU6XFYOcktk5vs8ipQLyAth7sCQmySxM/bNVFShA9naLMn7n6riTd/hcRvRmlKuewDm5pEeAIVCV0aYpgVKivl7yxVTJ9PspFiBT3EqpFZCmWXxK8t4UZ9xWRTl6MMAMk0uPC9mchB6N6jlsQX0NjVahe24Pc3sFVGuUDRFahuh3FRyWCYSAwGtUqkFLUrsU4D5Dx3qFmZvDWnVWlXcn41QjfRBgr5Lo8VVSV2kBkXl2m9DBEJxbckKqCJEHbAB+RKGg5SPTAyQH1ENqAZI9LK0W1XwEQGFQPo8jvT7ecAFwHMoaw41YNENpRuhA1qAwAKc67p/0pg2BgaviVdPRIxF4BUpmjFSJNoL8lllnGIzUBl06pRMx40FdBQXUgyFhgRFaGea3i8PzAmZHoh9HLQc5EiPQSRBsij6LyK5K6idJMFw0VSmWL4MWLMEEZNnI8as9FWELcPMej1d7iByYMTHaZa8To9YKUqGo3IsWSy2AnEX3+jbaBH6D268CIcEGqotKB8hqG5wlYitUODANxOA/l0p5MprAbVV0F8ixqXyNjtxBxozh2KipfAk4g7xOvEgczEeNf3+OecjMX5QOsPodx5qJmI4Hn4uoxWP0imNNyZHsgIaPmQdXls8pQexXIKTmKrqQQ+ySR6J945EfZbDCe2k7Q/z6czgzdRQqmCJOuwsjVwOUgRXnAY/MDJxIfj9oLkd4uQgOQ5wmC+3ji39eF3JkCWkkkNlIXn4uJZfjNjd0v3jGhwuuSbwpcq0inqL4EjEX1+F6bVIPWWz949faNZzsgn0C0Xx7eahvobzHmv9ia2rRXliFccc9y/EwAcl3uHvYSJizAcBeNkUW8eGP3bm7k3OveZeCwLVh9AJFRIT5Ns+bduxTMSUgOuHyUpRgzi+7UXP56S9vuua956G3ad2xA+A/QqrzZVrhlFDQkMZl6TQQTfBJrvgC95KVYVN9CnV9xeFfj7s+zdMLelEIbqg38651pNDgZ4ajctakC9eGm8pqHIlk+gzEhV5NYeRnrby64wepqy6M/aOX3N3a9lRhWFHOcS63K1ap8IKo/VmShwChE3N5EhQq1Jh5f0+nERwATQoM2pROVh/Ejv+DRH2zolZoq6SXNiPMy6M78NIEuwiXBlsx8Xryxax9C7bkH0jj2bYQ1aAjRpgpKJZhPIxSHoHoDIvdRUfwMf63euc/cs7/hobHVKOtBDr66rzk0inDk2MMJ5GsoI3IOW2jCMQ9Rt2EF1ft5qaaIgr8D2ImGkZzSBbo8HDit20pQPQnCHhsRg9FKnGg5MxLRLIOc3yE/c/+4WLq47NNi7dcFXSJqbsCyEbhUkaHS615V6VbVhbPqTupE9TjEhrgaDUCXgP9bam5qCGVQa+ZYRJPh1TAAmlGZTdHAt/LyITbmYfHyCDgbYAuDQ9bXhejv6Uo/zwPfTYffHwRApgD5q3mLB8YIrdv2yG3GnQMQeyXIaTlxk2oHah9F+Rtvz/YOAJWC41YgUh4SgylQj8qicFcVL+qPb0eEmF9Ai0CuwsgwTOw9dF0Tl9/eAqYdtV342gFeG0xKJibO1AEd0aOs4SuIrjSu3hmT2PZur/s2EZ0qISZa0SajLH26Y1gx2KlgikOcRAfCC7SUbsor4KnfcAlGjcaRohBcB6gswwSvM/sbXgHNLsfokGxMIXmC1LAD1zoc+Qt/pT1/gdfEsH4pKrnhdDZQ7wYpyYmbFNnH4iQShjX+Gahcikiui4I3cOQ3/P77O+EHwow5hvJWsw/w9h47742AHg0MDSVQVVfhR/IQgH4mhjjxcEMigjAG9JpsjKBeljq33RjtwDWtEN2G1C1+bsu1K84YO//8qASNqnpv6WjzQcva5BfEcLEgYc8yWRHWqJjVmOLDCLxpmJB6msgm4DWey6PNAOPH9EfttB7h9z6ZJJhX8fz6gjWmtXYimMOQg8jZlTRqniU5bjXMtHm95BWzBqEMDQWf0ISVLRiOA3KzGyPS0/Mo1Lqjich3UKnqZfkV2IiVB3Cp5/KfHg23VcG6kXTqIJxoP8Tk7muwF8FnGkhpyK6TCAtp7NoRDpyI6caT9p4aTx6hidPDou5FMIr2kKjWwZ5XHPG2r0uVbzMaVH919Yh1C53V44wEV6nKIEIJfQ0UWbFditoI7BmIjM75fcUi+j7W3bCfOKAyS2qpk0s40wL6FjW3elAdfv/S4iKKg2kI5QdF9YhuR8xcHp+Zv1fozFsdRsSqEKkIuRqArENoAD02RPyC7QHbhTf2x3EvRvXEUBcl8hyOFBHYH4JzMkhVNnBWJ/t9G+4LsyWXkKIoTYh9h/nVfjhwkkUtRJLzUXM8QtnBle8FwBkcTZWMiHeV/HLb1JJVyYFHN4ybW3u6Bl8V9FTJx40I3cby7u2rTxM0OAkxFaHWQmURse6W/XCwx2AZF8rDCLV4kVUFK9wDgkoCPS03eC84AtBFSLCy4LdGUkygUzGUhFRR0oi+iUg8r9oaFYIBDv2csxH7Veg9j2rWalGF6AXA0H3ZcdkP7xl60QJL8fw1kK8DsOaGJCI1wAvZot7B9X84KKOiHaxLlrMyOWhwxspF4F4oqhchebiBrKPaGVjqVntlFYgJN9OwA3GWcjiZApXpGFamIpSGXM2AvEO0s7ngJqyd1EOGHcxIYuV1KkpaCs9dXIlhKmFtLaI7sLIYkc68wLYYTPdwcL4CjAtN55XhiH4SYdSHKKmEuYMkIkuI9W+GQv04mXffxxz/74itBc5BzDiUEkRj+6tpxE1AZxBlc6YET40zOJKcMtBNjyT7VlDZ5YBzjbBu6/LcbekgMhljxyE5rQCKsBrL+wXTSs+tBJ0WyhxbmnGcxWyhuwDw4nhyKqIVB1WSUG3C8g4PfDdTsMtA/BN6aAYJYcCX47jLUHs0YjVPUF6CkUtQpkMYKEQQikIjMCWNaDcqQQhoo6EBeXbUA28wtjNZGDg1NQHUrGHGfXfTr+tRUuYoHKpQqcRSnu2/sRU9fnoQyJBdRJunhg3pUlLWISqWEwdsKx0Z6yjNeg31VVmrmDWiHKeio3bnFSLr/rvz2AzCiYiUhweespige0f+oFYN62YdRaBH5DC+ikXsWoTagi0JqfhQRE/EHFShUhG2opF1BS10ZMoArP0MwuAQzUki+jKxHdtIlqWQ0Md+DJiTQMcjUnYQq9uJ6OvAQgK7Dusks8DcXbY1KGcj8jXoDTpVYDXGXb1LYffvv2tuSAJrmTFnPYPrXdItDhRFaErGiLoxxMaRyGjUXo1yMSKxjJrdohsW7eSTpRspddM9aTDvGDE/9j1qrRNcIyrXIVKqYFVlw2MN4/shMi1PnakVw5s8Xp1fo+tnxwl0CsKgEI3yQZZBpFA2ZVgTjEfkiNAAkYK0y0Zi0lGQI+GOiQinhbsPrQfzKsvGpRi/I9nTTNXb2sRRew5qig7YGKp2gMzG2P8kXbydxnaPIeP3pTX7r+9Pp38WaDQkmfAReYuxnS17twccmFSybYPhD77NmLOeyPoINjgdYeTeLmt66WYmFe8AtQHIm4r779veXj53Zg321buOmodlBlAqqt2+Sl0bZhzIpPAcVuogsrzgStsaB2LMyXmq6e3gvMHvb8zvpmoHxHDTJ6JhFqEgb6ZAIzui+S3Z52dVoHIZEtqg5SG8jHFXU1VuoTkJYeSjOEgYxZB3YQHKPALzII/9cFPer11x+yiQE0PDkGygvZjqPVbahIbUVybKuOr2wSQSB6ZxjSsFCfph9miRAMMjnZw+YDPFTgZgkzr8rKM4uWBmDUEWx06TwA5VsCJtHUF8AwEnhLKxig/6Dt5+glrHHYMyPk/9ZzP4tQVdSTRZhugJoUqlPXX7DzOuuz9GkT0fuCB8brZg7Z+zoK6hJxYJDhgcaDoPoDsQfY7y8vqCMZ1lOnBEyLosyhqiQV0vf7k32/pQhJm3TyIT+TFpcxdrIydyZaJwV10iYRgVOxwrn0O1Yo+18Tm9dDNj4q2Iaosx8qBfzLPnfXft7g2aiHapsFPQQGD9szurkiin5vrYHjelLITa/G8InZGIYu0JSFivrnqovINjNhfMQ9WZBEwIIf0UpBG0Jc+dgjCRkmQl7KVwiYThc4kymrsvRMxNwKiQtXUh8gRB5A1AmThRs7QD/oH4IZCVqK7rYYpzMz3HrGf2N/y8MguipwNXAeVhFAnCQpJ+w94fu/tMENlxKnA9KmeCdVEzmmTs93zxziXEklsZ0JJke0VW44oxpKOl1NnxiL0CkfP2jvAPi7Vz8oAtxCRIg77oZ8ycs25euc8/t3iBH7g4XlZjeP/55sNKe9xUWNa2ASdYzuM1+bXQLRkA6alAcUh804nyJqlM/hjk3PujkJyS7SrMzdVQfbunUj4wD/lxApHgW8yM/AWZtR18hzpGUGw+idVLEY4MIeoUlbcR8yg132/fa71Jsp2T+0NOE/A4mEvCGW4twnIUV9+1kI63upk4UamdJLDSwSkehPFPwsp1wLGhclfbgjWLmLhvFpoFzhWJIfjRz/X0lE7aK3CbjssxaLCZTGwDzUNbcOkEDB4lCMNQMw4Yme1NyY6YCTijdDNVsZ0qsNRa/uMMf+XWHK/gG1UHxdBlMcu2ZAZMQbQyJDiziCyiX1C4Ik+qCjXHh5YplM0E7pvU/Ch/baosNRC1p+zDiO+5vw14DvgMMDnPDBXAtThyEQRNiImgMhh0CIbicBac9zHcR7/y1btdaHW1cukdSUS9gv142aD3Dxh9DeSKUOZOZACq3yHpH4k7ZTV1miayrh82OhwTTEI5GtGhBSiW9yFY1pv+cLnijnH49t8QLgcqezGtDjAIkUHAcXulnT3GWXJoRgGGRzs5tWSLFhmvWZCHizNtb0p1rhl14hGTCTwX1ea61IBNGet+OU/DeScqC5h9azJviWDGHAfqjkd0VCjwYAXp7vUF4hvB+GNQJkMYW6xbMLoAK5XAZ3qeQw2bpj/CkSBH7iFh8zCxwhqM3IMz7AVmX+Xts2ITdIPjFY5rmIv6v8ZELTYICH9JvEHkcNCvo9brkYXBEOm5JgVSogAxb2LTDbmTBsElGPkyIpX76ZXN9hGLmGyami1O5YBBLNP6b2dkrN0DeVlN7Olp1fWhcUnGy0REiSmy9m87J4DRPJqsmzHeioIlgvSGYsR8IqfPdg9bvIRobUcBYs4AxyEMI7Rpi/fo8j7AsS+B3dTDbXzY4YNdgQ1+gvb7E49clQopZPpgbd64RnUzqrMZULmGlGnFsjFPjLN3NhZHpDjLt0nBdpged9mGyiIm5sZaBtG/AfNRuvi7HnNVBe0YGe1Yd3bphs6YCVaLI7859aal9fnmjbhuXETivpqVC1qGVoEMC82mRN6G0vqCP1/CcNCpeYTRAP6SnGeg9s0M+veko0WhASbOYqK1HWT8txBm9zCpBykvDUBbEPkTEvkeA4b8kT98tz1P1ctHxMtjCVoR+R1B2fxsW0hXC8izoAfzgqieANxuB82EZ1O6CmFlGEtv8JbX4pufovpbVOsLozYfYOhEZFlE+OU3hr7z5wnx5p2o1sRtcnGhP1HNWBtXa2lIl6xtDYqPCT00sR2gSxjX0l0ws8OfjOqIUAFgV6F2Y0Fr6mRGhvNHKKrbkeA9amoCaqo78bxHEB5CdWuPyzgAGdkOkMXAXWT8H7B63asFe4EMPuGNXj7KXJzgMWq+nf2P0ZrqDL55GuG/QTv3C2jFR3UrymMoT2QVI8fapIEleKnG0Dwkq4Vz3uNLs36MZ18COQd0UjbwlWKUGEYNuitM0wAkA3SDbAfWonYRkfjin1S92HpafPPdgqzEMY9NvWl9e0FLGNgicWXH4s4RjYGlFMMGcv7NRepwdR/yKZctHh6HpjEgjWhvrdMUIi8wqKK5APAc6twxqHqga3uvEpEFRNJ7+qtrqhu4MvEL/PhyAj0fYSrooGxFW92eN7t7PQfShPA+KgswugA3s55HCzw6vHvZkS7U24AxFfvKROoxPEhVULcPQObcvJkv3FZN3KlF9ZOIjEO1P9qT6Ij6CF3ZJzLlTVTn4motgVyOlXpEm3qBqwl4OfucfHUIcHpm5Xc0Mz3xFEOKXiGaGQqRYVgZgrEVWIoQ40IA1iRxtAXfNBKx24jHt9Pe3snjP/LOuPNXJwdqDhdHful1rdxY6KVHqsjCu00pqvVRk1oOkVlgi3N4Oy9op8RbU1jKb3vY0U8hZnGuyRcf199QsPAIFs8uJSL/C0yv+pZYPGniCHbsI9ZHqncy9ZqnOXLYAkxsDNlHgiqzHYsagG0HGvDZTH/ZSmemLdv/c4AvKyjp3kp7dBZI2b4yCdqJeKtzFElEgU3MuO9BYt1/AncMVoeClvY8GtEJug2jm+mIbSM2rptgpUM0+mdUFuR4+ECTqLMm33plv+Re/XCH1m1CR4XAWjjsaEtruaVmpt0b8XMT010Tb7zeMTrSk+Sss27auL3Q1HMT012nuPEyrJQFqa5fnVW9McVHeeyS1aaUoaRFacQy79ag50D/GWNPmygQdmZ/zyhcq8oGRQcU85hIw2BXZJT4zhNnZjY27lehhndKqg31rV19Jl/J5E2zPyojTFbyT91T4fri3znMP0bZMMY1YwNrVhdHnXfDOJveo2PbDscEps2NOOtlf49s9I3/78Y/BDgzmOhaJRpE5ZXjbnyv60DuKe9f6gSwqaxLG/qO4RAFDoDv6zo6Oj440O9vi3b7UQ221NbW9v2t4aE8NHHQIJRE4uPzR2uH2vgfFTZZy1avCWIAAAAASUVORK5CYII=";


$content = [];
$content['css'] = '';
$content['js'] = '';
$content['html'] = $html;
$content['image_base64'] = $imagem;
$additionalValues = [];
$additionalValues['CONTENT_JSON'] = json_encode($content);

ou 

$additionalValues['HTML'] = $html;
$additionalValues['IMAGE'] = $imagem;

....
$additionalValues['POSICAO_PLAT'] = -27.5527;
$additionalValues['POSICAO_PLON'] = -48.7296;
$additionalValues['SEND_EMAIL'] = 1;
$additionalValues['SEND_ALERTS'] = 0;
$additionalValues['SEND_EMAIL_PDF'] = 1;
$additionalValues['SEND_EMAIL_PDF_NAME'] = 'indicadores.pdf';
$additionalValues['SEND_EMAIL_IMAGE'] = 1;
$additionalValues['EMAIL_ATTACHMENTS'] = [$pdf,$pdf2];

$envio = Alerts::sendToUser('fabio.calegari@simova.com.br','Teste alerts '.date('d/m/Y H:i:s'), 'Teste',$additionalValues);
print_r($envio);

//sendToGroup
//sendToTopic

print_r($envio);

--> EXEMPLO COM INLINE FILES


// No template do test_reports tem: Logo com CID:<img src="cid:simova.png"> Esse nome simova.png é o criado na imagem abaixo e passado do 'file' para o array de in_line_files.

$reportsService = new ReportsService();
$html = $reportsService->getHtmlReport('test_reports',['inicio'=>'03/10/2020','fim'=>'04/10/2020']);

$exportUtils = new ExportUtils();

$pdf = $exportUtils->generatePdfFile($html,[],'report1.pdf');
$pdf2 = $exportUtils->generatePdfFile($html,[],'report2.pdf');

$imagem = "data:image/png;base64,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";

$imagenDentro = ImageService::createImageFileFromBase64($imagem,'simova.png');


$additionalValues['HTML'] = $html;
//$additionalValues['IMAGE'] = $imagem;

$additionalValues['SEND_EMAIL'] = 1;
$additionalValues['SEND_ALERTS'] = 0;
$additionalValues['SEND_EMAIL_PDF'] = 0;
$additionalValues['SEND_EMAIL_PDF_NAME'] = 'indicadores.pdf';
$additionalValues['SEND_EMAIL_IMAGE'] = 0;
$additionalValues['EMAIL_ATTACHMENTS'] = [$pdf,$pdf2];
$additionalValues['EMAIL_INLINE_FILES'] = [$imagenDentro['file']];

$envio = Alerts::sendToUser('fabio.calegari@simova.com.br','Teste alerts '.date('d/m/Y H:i:s'), 'Teste',$additionalValues);
print_r($envio);

Métodos da classe DateUtils

echo DateUtils::formatFromTable('2020-02-01 12:34:45'); // converte um campo de formato do banco de dados para BR com hora/minuto/segundo
echo DateUtils::formatFromTable('2020-02-01 12:34:45','d/m/Y'); // converte um campo de formato do banco de dados para BR somente d/m/y
echo DateUtils::formatFromTable('2020-02-01 12:34:45','H:i:s'); // converte um campo de formato do banco de dados para somente hora/minuto/segundo
echo DateUtils::formatFromTable('2020-02-01 12:34:45','H'); // converte um campo de formato do banco de dados para somente hora

var_dump(DateUtils::getDate());     // dia atual formato BR
var_dump(DateUtils::getDate(0,'BR'));     // dia atual formato BR (padrão)
var_dump(DateUtils::getDate(0,'DB'));     // dia atual formato Banco de dados
var_dump(DateUtils::getDate(0,'Y-m-d'));     // dia atual formato Banco de dados

var_dump(DateUtils::getDate(-1));   // dia anterior
var_dump(DateUtils::getDate(+1));   // amanhã
var_dump(DateUtils::getDate(-7));   // 7 dias atrás
var_dump(DateUtils::getDate(+7));   // 7 dias à frente

var_dump(DateUtils::getDateTime());     // dia atual
var_dump(DateUtils::getDateTime(-1));   // dia anterior

var_dump(DateUtils::getDateBetween());
var_dump(DateUtils::getDateBetween(-1));
var_dump(DateUtils::getDateBetween(+1,-27));
var_dump(DateUtils::getDateBetween(-7));
var_dump(DateUtils::getDateBetween(+7));

var_dump(DateUtils::getPeriodOfDay()); // somente o dia atual

// abordagem moderna:
list($inicioDb, $fimFimDb) = DateUtils::getDateBetween(-1,0,'DB');

// abordagem padrao para recuperar os valores da função:
$periodo = DateUtils::getDateBetween(-1,0,'DB',true);
$inicioDb = $periodo['INI'];
$fimFimDb = $periodo['FIM'];

Para simular uma request do xMova

$xmovaService = new XmovaService();


 Para consultar os dados que são montados diretamente em uma tabela (não considerando entryPoint):

$tableDS = 'EQP';
$sqlWhere = 'LIBERADO = 1'; //condição WHERE da consulta na tabela
 Atencao, para ordenar a lista ao XMova diferente do CRUD configurar um JSON no campo nfs_core_ds_tabela.ORDER_BY (ver documentacao) e VALIDAR O JSON ANTES!
$_recordsToMobileXMOVA = $xmovaService->getTableData($tableDS, $sqlWhere);
print_r($_recordsToMobileXMOVA);


 Se é um nome de entryPoint usar esse método abaixo:

$_typeRequest = 'Equipamento_Mobile'; // nome do entryPoint
$_objNFSJSONRequest
$method = 'LIST'; // ou pode ser GET (para validação de campos e retorno com json especificado
$_recordsToMobileXMOVA = $xmovaService->processEntryPointxMova($_typeRequest, $_objNFSJSONRequest, $method);
print_r($_recordsToMobileXMOVA);


Um recurso bem interessante é usar dois entryPoint com o mesmo nome mas com os tipos SQL e PHP
o Tipo SQL será executado primeiro e com isso no PHP você pode recuperar os dados de resultado do entryPoint PHP 
usando a variável $_recordsToMobileXMOVA e adicionando valores para ela, teste criando esses dois entryPoints e na versão PHP coloque:

foreach ($_recordsToMobileXMOVA as $row) {
	$row['DISPLAY_TEXT'] = $row['CODIGO'].PHP_EOL.$row['DESCRICAO'];
}

Métodos para consulta

$equipamentos = Dao::table('eqp')
			->groupBy('SEQ_DB')
			->toArray()
			->get();


// $lista = Dao::table('EQP')->get();                        
// var_dump($lista);                     
// $clientesList = Dao::table('FUNCIONARIO')
//                         ->select(['SEQ_DB','POSICAO_PLAT','POSICAO_PLON','POSICAO_DH','DESCRICAO','CODIGO','UPD_DH'])
//                         ->whereIsNotNull('POSICAO_PLAT')
//                         ->whereIsNotNull('POSICAO_PLON')
//                         ->limit(9999999)
//                         ->get();

// var_dump($clientesList);

/*
$tabela = xDS::getTabela('EQP');
$tabela = xDS::getTabela('FUNCIONARIO');
foreach ($tabela->CAMPOS as $campo) {
	echo $campo->NOME, " ", $campo->TIPO,"\n";
}
*/

// var_dump(\core\TabelaBO::getAllDataToArray("FUNCIONARIO","SEQ_DB"));

/**
* Usando o NfsQueryBuilder:
* Abordagem IDEAL que contém tratamento se parametro for null
*/
$inicioDb = '2020-09-17';
$fimFimDb = '2020-09-17 23:59:59';
$result = NFSQueryBuilder::select('*')
	->from('eqp_apt', 'apt')
	->where('apt.INI_DH between :inicio and :fim')
	->setParameter('inicio', $inicioDb)
	->setParameter('fim', $fimFimDb)
	->get();

var_dump($result);

// OU assim:
$result = NFSQueryBuilder::select('*')
	->from('eqp_apt', 'apt')
	->where("apt.INI_DH between '{$inicioDb}' and '{$fimFimDb}'")
	->get();

// OU assim:
$where = "apt.INI_DH between '".$inicioDb."' and '".$fimFimDb."'";
$result = NFSQueryBuilder::select('*')
	->from('eqp_apt', 'apt')
	->where($where)
	->get();


Testando o JSON de um NfsQueryBuilder (configuração de gráfico ou relatório):
 Pode ser JSON ou pode ser um Array

$json = '{	"equipamentos": {
		"select": ["eqp.SEQ_DB","eqp.EQP_CLASSE_SEQ_DB",
			"eqp.CODIGO",
			"eqp.DESCRICAO"
		],
		"from": "eqp eqp",
		"group_result_by_unique": "SEQ_DB",
		"order_by": [
			["eqp.SEQ_DB", "ASC"]
		]
	}
}';
$array = json_decode($json, true);
var_dump(\core\NFSQueryBuilder::getQuery($array));

Debugando o NfsQueryBuilder

$_SESSION['DEBUG_MODE'] = 1;
print_r($_SESSION['DEBUG_CONFIG']);
print_r($_SESSION['DEBUG_PARAMS']);
print_r($_SESSION['DEBUG_SQL']);

/**
* Debugando UM gráfico do Dashboard
* Crie um painel de teste e defina somente UM gráfico para esse painel
*/
$_SESSION['DEBUG_MODE'] = 1;
print_r($_SESSION['DEBUG_CONFIG']);
print_r($_SESSION['DEBUG_FILTERS_VALUES']);
print_r($_SESSION['DEBUG_FILTERS_CONFIG']);
print_r($_SESSION['DEBUG_FILTERS_AND_VALUES']);
print_r($_SESSION['DEBUG_DATA']);


// Alerts::sendToGroup('GRUPO_TESTE','Titulo','Texto');
// Alerts::sendToUser('email@xxxx.com.br','Titulo','Texto');
// Alerts::sendToTopic('TOPICO_TESTE','Titulo','Texto');
// Alerts::sendToUsers(['email@xxxx.com.br','email2222@xxxx.com.br'],'Titulo','Texto');  // AINDA NAO FUNCIONA

$destinatario = 'fabio.calegari@simova.com.br'; // usuário ativo/cadastrado (tabela alerts_users)
$titulo = 'Titulo do Alerta (até 50 caracteres) '; // o core corta automaticamente e pega somente os primeiros 50 bytes
$texto = 'Texto do Alerta (até 1000 caracteres)'; // o core corta automaticamente e pega somente os primeiros 1000 bytes
$retornoDoEnvio = Alerts::sendToUser($destinatario, $titulo, $texto);

print_r($retornoDoEnvio);

Upload de Base64 - UploadService

$seqDbUpload = UploadService::uploadBase64("data:image/jpeg;base64,".$myBase64Url);

print_r($seqDbUpload);