src/Controller/DefaultController.php line 172

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. //use App\Config;
  4. //use App\Controller\MongoClient;
  5. //use App\Entity\Tune\AffiliateInfo;
  6. //use App\Entity\AffiliateOfferBlock;
  7. //use App\Entity\Alerts;
  8. //use App\Entity\AppInfo;
  9. //use App\Entity\AppsflyerWatcher;
  10. //use App\Entity\Employees;
  11. //use App\Entity\HoAffiliateMmpPartnerMapping;
  12. //use App\Entity\HyperAffiliateData;
  13. //use App\Entity\MmpAdvertisers;
  14. //use App\Entity\MmpMobileApps;
  15. //use App\Entity\MmpNotifications;
  16. //use App\Entity\MmpPartnerRules;
  17. //use App\Entity\MmpPartners;
  18. //use App\Entity\MmpReports;
  19. //use App\Entity\Tune\OfferInfo;
  20. //use App\Entity\OfferTagRelationship;
  21. //use App\Entity\PayoutControl;
  22. //use App\Entity\PayoutControlAffiliateHyperData;
  23. //use App\Entity\PayoutTotal;
  24. //use App\Entity\RevenueControl;
  25. //use App\Entity\RevenueControlAdvertiserHyperData;
  26. //use App\Entity\RevenueTotal;
  27. //use App\Entity\SkadNetworkPostbackLogs;
  28. //use App\Entity\OfferScheduledChangesLogs;
  29. //use App\Entity\UsersHierarchy;
  30. use App\Config;
  31. use App\Entity\Tune\AdvertiserInfo;
  32. use App\Entity\Tune\AffiliateInfo;
  33. use App\Entity\AffiliateRating;
  34. use App\Entity\AppInfo;
  35. use App\Entity\AppsflyerDatalocker;
  36. use App\Entity\Employees;
  37. use App\Entity\HyperClientInfo;
  38. use App\Entity\MafoId\MafoAdvertisers;
  39. use App\Entity\MafoId\MafoAdvertisersMapping;
  40. use App\Entity\MafoId\MafoAffiliatesMapping;
  41. use App\Entity\MmpFraudReports;
  42. use App\Entity\MmpMobileApps;
  43. use App\Entity\MmpReports;
  44. use App\Entity\ObjectMappingWithTuneWebAccount;
  45. use App\Entity\Tune\OfferInfo;
  46. use App\Entity\OfferTagRelationship;
  47. use App\Entity\RecommendationsByObject;
  48. use App\Entity\Tag;
  49. use App\Entity\UsersHierarchy;
  50. use App\Entity\HoAffiliateMmpPartnerMapping;
  51. use App\Entity\MafoId\MafoAffiliateMmpPartnerMapping;
  52. use App\Services\AdjustAPI;
  53. use App\Services\AffiliateHasofferAPI;
  54. use App\Services\Alerts;
  55. use App\Services\AppsflyerAPI;
  56. use App\Services\Aws\ElasticCache;
  57. use App\Services\Aws\S3;
  58. use App\Services\BrandHasofferAPI;
  59. use App\Services\Common;
  60. use App\Services\FinancialToolsComponents;
  61. use App\Services\HyperApis;
  62. use App\Services\ImpressionsApis;
  63. use App\Services\Integrations\CjAPI;
  64. use App\Services\Mailer;
  65. use App\Services\Metrics24APICalls;
  66. use App\Services\MmpComponents;
  67. use App\Services\MysqlQueries;
  68. use App\Services\Scraper;
  69. use App\Services\UsersComponents;
  70. use Doctrine\Persistence\ManagerRegistry;
  71. use Exception;
  72. use Mmoreram\GearmanBundle\Service\GearmanClientInterface;
  73. use MongoClient;
  74. use MongoDB\Client as Mongo;
  75. use Ramsey\Uuid\Uuid;
  76. use Symfony\Component\HttpKernel\KernelInterface;
  77. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  78. use Symfony\Component\Mailer\Header\MetadataHeader;
  79. use Symfony\Component\Mailer\MailerInterface;
  80. use Symfony\Component\Mercure\Authorization;
  81. use Symfony\Component\Mercure\Discovery;
  82. use Symfony\Component\Mercure\HubInterface;
  83. use Symfony\Component\Mercure\Update;
  84. use Symfony\Component\Mime\Email;
  85. use Symfony\Component\Mime\Part\DataPart;
  86. use Symfony\Component\Mime\Part\File;
  87. use Symfony\Component\Routing\Annotation\Route;
  88. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  89. use Symfony\Component\HttpFoundation\JsonResponse;
  90. use Symfony\Component\HttpFoundation\Request;
  91. use Symfony\Component\HttpFoundation\Response;
  92. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  93. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  94. use App\Services\NewAdjustAPI;
  95. use Symfony\Contracts\HttpClient\HttpClientInterface;
  96. use Twig\Environment;
  97. //use Ramsey\Uuid\Uuid;
  98. class DefaultController extends AbstractController
  99. {
  100. private $commonCalls;
  101. private $doctrine;
  102. private $brandHasofferApi;
  103. private $tuneApi;
  104. private $projectDir;
  105. private $mmpComponents;
  106. private $financialToolsComponents;
  107. private $gearmanClientInterface;
  108. private $alerts;
  109. private $rootPath;
  110. private $afApi;
  111. private $s3;
  112. private AdjustAPI $adjustApi;
  113. private $showLoginForm;
  114. public function __construct(GearmanClientInterface $gearmanClientInterface, Common $commonCalls, ManagerRegistry $doctrine, BrandHasofferApi $brandHasofferApi, string $projectDir, MmpComponents $mmpComponents, Alerts $alerts, ParameterBagInterface $params, AppsflyerAPI $afApi, AdjustAPI $adjustApi, FinancialToolsComponents $financialToolsComponents, S3 $s3)
  115. {
  116. $this->commonCalls = $commonCalls;
  117. $this->doctrine = $doctrine;
  118. $this->brandHasofferApi = $brandHasofferApi;
  119. $this->tuneApi = $brandHasofferApi;
  120. $this->projectDir = $projectDir;
  121. $this->mmpComponents = $mmpComponents;
  122. $this->financialToolsComponents = $financialToolsComponents;
  123. $this->gearmanClientInterface = $gearmanClientInterface;
  124. $this->alerts = $alerts;
  125. $this->rootPath = $params->get('kernel.project_dir');
  126. $this->afApi = $afApi;
  127. $this->s3 = $s3;
  128. $this->adjustApi = $adjustApi;
  129. }
  130. // /**
  131. // * @Route("/", name="agent_homepage", host="%agents_subdomain%")
  132. // */
  133. // public function indexAgentAction(Request $request)
  134. // {
  135. // return $this->render('base_agent.html.twig', [
  136. // 'template' => '/templates/dashboard.html.twig',
  137. // ]);
  138. // }
  139. /**
  140. * @Route("/", name="mafo_publisher_homepage", host="%publishers_subdomain%")
  141. */
  142. public function indexPublisherAction(Request $request)
  143. {
  144. return $this->render('base_mafo_publisher_cabinet.html.twig', [
  145. 'template' => '/base_mafo_publisher_cabinet.html.twig',
  146. ]);
  147. }
  148. /**
  149. * @Route("/", name="mafo_advertiser_homepage", host="%advertisers_subdomain%")
  150. */
  151. public function indexAdvertiserAction(Request $request)
  152. {
  153. return $this->render('base_mafo_advertiser_cabinet.html.twig', [
  154. 'template' => '/base_mafo_advertiser_cabinet.html.twig',
  155. ]);
  156. }
  157. /**
  158. * @Route("/", name="homepage", host="%main_subdomain%")
  159. */
  160. public function indexAction(Request $request)
  161. {
  162. return $this->render('base.html.twig', [
  163. 'template' => '/templates/dashboard.html.twig',
  164. ]);
  165. }
  166. /**
  167. * @Route("/login", name="mafo_form_login", host="%main_subdomain%")
  168. */
  169. public function mafoFormLoginAction(AuthenticationUtils $authenticationUtils, Request $request)
  170. {
  171. // $authenticationUtils = $authenticationUtils->get('security.authentication_utils');
  172. // get the login error if there is one
  173. $error = $authenticationUtils->getLastAuthenticationError();
  174. // last username entered by the user
  175. $lastUsername = $authenticationUtils->getLastUsername();
  176. return $this->render('/form_login.html.twig', [
  177. 'last_username' => $lastUsername,
  178. 'error' => $error,
  179. 'errorFromParam' => $request->query->get('error'),
  180. 'show_login_form' => $_ENV['APP_ENV'] === 'dev'
  181. ]);
  182. }
  183. /**
  184. * @Route("/test", name="test_", host="%main_subdomain%")
  185. * @throws TransportExceptionInterface
  186. */
  187. public function testAction(Request $request, HyperApis $hyper)
  188. {
  189. $temp = <<<EOT
  190. [{"id":1096,"advertiserId":781,"advertiserName":"\u041e\u041e\u041e \u041c\u0435\u0434\u0438\u0430\u043d\u0430 \u0411\u0438 \u042d\u0439\u0447 Okkam","systemIdentifiers":"tune_mobile:6695","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1095,"advertiserId":584,"advertiserName":"Median BH Okkam_AVito_Travel CTV","systemIdentifiers":"tune_mobile:7084","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1094,"advertiserId":707,"advertiserName":"Lamoda Zorka","systemIdentifiers":"tune_mobile:7590|tune_mobile:7565","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1093,"advertiserId":587,"advertiserName":"Secret Kitchen","systemIdentifiers":"tune_mobile:7461","hyperStatus":"Hyper Error: Wrong Client IO","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1092,"advertiserId":130,"advertiserName":"Banki.ru\/ \u041e\u041e\u041e \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0430\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u043e \"\u0411\u0430\u043d\u043a\u0438.\u0440\u0443","systemIdentifiers":"tune_mobile:5072","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":471,"mafoCalculatedCost":307,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1091,"advertiserId":121,"advertiserName":"\u041e\u041e\u041e \"\u0412\u041f.\u0420\u0423 Mig\u0441redit","systemIdentifiers":"tune_mobile:7588","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":993,"mafoCalculatedCost":496.5,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1090,"advertiserId":739,"advertiserName":"MJCom","systemIdentifiers":"tune_mobile:7583|tune_mobile:7483|tune_mobile:7589|tune_mobile:7591","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":1760,"mafoCalculatedCost":880,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1089,"advertiserId":583,"advertiserName":"Zaimer ","systemIdentifiers":"tune_mobile:4258","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":54,"mafoCalculatedCost":54,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":1088,"advertiserId":645,"advertiserName":"MTS - KION 40 % CTV ","systemIdentifiers":"tune_mobile:5726","hyperStatus":"Hyper Error: Wrong Client IO","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"December"},"monthYear":"2025-12","month":"December","year":"2025","periodPretty":"2025 December","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":6271.02,"mafoCalculatedCost":3377.4,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":859,"advertiserId":666,"advertiserName":"EvaMobi \/\/ Baltbet \/\/ in-app","systemIdentifiers":"tune_mobile:7554","hyperStatus":"Hyper Error: Wrong Client IO","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":180,"toBeApprovedRevenue":180,"totalApprovedRevenue":180,"overrideRevenue":1,"overriddenRevenue":180,"overrideCost":null,"overriddenCost":null,"totalCost":140,"totalApprovedCost":140,"totalProfit":40,"totalApprovedProfit":40,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":22.22,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":"W","period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":850,"advertiserId":586,"advertiserName":"Gradient","systemIdentifiers":"tune_mobile:7553|tune_mobile:7530|tune_mobile:7529|tune_mobile:7528|tune_mobile:7446","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":388.85,"toBeApprovedRevenue":388.85,"totalApprovedRevenue":388.85,"overrideRevenue":1,"overriddenRevenue":388.85,"overrideCost":null,"overriddenCost":null,"totalCost":102,"totalApprovedCost":102,"totalProfit":286.85,"totalApprovedProfit":286.85,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":73.77,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":"388.85","period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":849,"advertiserId":781,"advertiserName":"\u041e\u041e\u041e \u041c\u0435\u0434\u0438\u0430\u043d\u0430 \u0411\u0438 \u042d\u0439\u0447 Okkam","systemIdentifiers":"tune_mobile:6695","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":2688.82,"toBeApprovedRevenue":2688.82,"totalApprovedRevenue":2688.82,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":600,"totalApprovedCost":600,"totalProfit":2088.82,"totalApprovedProfit":2088.82,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":77.69,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":838,"advertiserId":707,"advertiserName":"Lamoda Zorka","systemIdentifiers":"tune_mobile:7590|tune_mobile:7565","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":6093.3,"toBeApprovedRevenue":6093.3,"totalApprovedRevenue":6093.3,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":3808,"totalApprovedCost":3808,"totalProfit":2285.3,"totalApprovedProfit":2285.3,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":37.51,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":837,"advertiserId":121,"advertiserName":"\u041e\u041e\u041e \"\u0412\u041f.\u0420\u0423 Mig\u0441redit","systemIdentifiers":"tune_mobile:7588","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":637.11,"toBeApprovedRevenue":637.11,"totalApprovedRevenue":637.11,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":298.5,"totalApprovedCost":298.5,"totalProfit":338.61,"totalApprovedProfit":338.61,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":53.15,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":1233,"mafoCalculatedCost":616.5,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":836,"advertiserId":739,"advertiserName":"MJCom","systemIdentifiers":"tune_mobile:7591|tune_mobile:7589|tune_mobile:7583|tune_mobile:7483","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":680.69,"toBeApprovedRevenue":680.69,"totalApprovedRevenue":680.69,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":448,"totalApprovedCost":448,"totalProfit":232.69,"totalApprovedProfit":232.69,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":34.18,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":825,"mafoCalculatedCost":460,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":835,"advertiserId":584,"advertiserName":"Median BH Okkam_AVito_Travel CTV","systemIdentifiers":"tune_mobile:7084","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":2613.55,"toBeApprovedRevenue":2613.55,"totalApprovedRevenue":2613.55,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":1512,"totalApprovedCost":1512,"totalProfit":1101.55,"totalApprovedProfit":1101.55,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":42.15,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":535,"advertiserId":739,"advertiserName":"MJCom","systemIdentifiers":"tune_mobile:7589|tune_mobile:7483|tune_mobile:7583|tune_mobile:7591","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":984.13,"toBeApprovedRevenue":984.13,"totalApprovedRevenue":984.13,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":549,"totalApprovedCost":549,"totalProfit":435.13,"totalApprovedProfit":435.13,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":44.21,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"October"},"monthYear":"2025-10","month":"October","year":"2025","periodPretty":"2025 October","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":521,"advertiserId":587,"advertiserName":"Secret Kitchen","systemIdentifiers":"tune_mobile:7461","hyperStatus":"Hyper Error: Wrong Client IO","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"October"},"monthYear":"2025-10","month":"October","year":"2025","periodPretty":"2025 October","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":520,"advertiserId":645,"advertiserName":"MTS - KION 40 % CTV ","systemIdentifiers":"tune_mobile:5726","hyperStatus":"Hyper Error: Wrong Client IO","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"October"},"monthYear":"2025-10","month":"October","year":"2025","periodPretty":"2025 October","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":19203,"mafoCalculatedCost":12679,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":519,"advertiserId":130,"advertiserName":"Banki.ru\/ \u041e\u041e\u041e \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0430\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u043e \"\u0411\u0430\u043d\u043a\u0438.\u0440\u0443","systemIdentifiers":"tune_mobile:5072","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"October"},"monthYear":"2025-10","month":"October","year":"2025","periodPretty":"2025 October","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":584,"mafoCalculatedCost":414,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":518,"advertiserId":583,"advertiserName":"Zaimer ","systemIdentifiers":"tune_mobile:4258","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":0,"toBeApprovedRevenue":0,"totalApprovedRevenue":0,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":0,"totalApprovedCost":0,"totalProfit":0,"totalApprovedProfit":0,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":0,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"October"},"monthYear":"2025-10","month":"October","year":"2025","periodPretty":"2025 October","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":8,"mafoCalculatedCost":8,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":514,"advertiserId":587,"advertiserName":"Secret Kitchen","systemIdentifiers":"tune_mobile:7461","hyperStatus":"Hyper Error: Wrong Client IO","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":482.26,"toBeApprovedRevenue":482.26,"totalApprovedRevenue":482.26,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":279,"totalApprovedCost":279,"totalProfit":203.26,"totalApprovedProfit":203.26,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":42.15,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":null,"mafoCalculatedCost":null,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":513,"advertiserId":645,"advertiserName":"MTS - KION 40 % CTV ","systemIdentifiers":"tune_mobile:5726","hyperStatus":"Hyper Error: Wrong Client IO","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":6611.57,"toBeApprovedRevenue":6611.57,"totalApprovedRevenue":6611.57,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":3860.5,"totalApprovedCost":3860.5,"totalProfit":2751.07,"totalApprovedProfit":2751.07,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":41.61,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":3259.2,"mafoCalculatedCost":2019.4,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":512,"advertiserId":130,"advertiserName":"Banki.ru\/ \u041e\u041e\u041e \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0435 \u0430\u0433\u0435\u043d\u0442\u0441\u0442\u0432\u043e \"\u0411\u0430\u043d\u043a\u0438.\u0440\u0443","systemIdentifiers":"tune_mobile:5072","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":2202.85,"toBeApprovedRevenue":2202.85,"totalApprovedRevenue":2202.85,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":708,"totalApprovedCost":708,"totalProfit":1494.85,"totalApprovedProfit":1494.85,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":67.86,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":1348,"mafoCalculatedCost":900,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true},{"id":511,"advertiserId":583,"advertiserName":"Zaimer ","systemIdentifiers":"tune_mobile:4258","hyperStatus":"Hyper Error: Order Items not found.","billingStatusId":1,"billingStatus":"Approved For Billing","billingStatusPretty":"Approved For Billing","advertiserDiscountType":"no_discount","advertiserDiscountValue":null,"totalRevenue":2494.28,"toBeApprovedRevenue":2494.28,"totalApprovedRevenue":2494.28,"overrideRevenue":null,"overriddenRevenue":null,"overrideCost":null,"overriddenCost":null,"totalCost":1710,"totalApprovedCost":1710,"totalProfit":784.28,"totalApprovedProfit":784.28,"totalDeduction":0,"approvedDeductionFromDeductionControl":null,"totalDeductionFromDeductionControl":null,"totalApprovedDeduction":0,"overriddenDeduction":null,"overrideDeduction":null,"totalApprovedProfitPercentage":31.44,"advertiserManagerEmail":"maksim@mobupps.com","advertiserManagerName":"Maksim Nalivaiko","requiresBillingStatusUpdate":false,"revisionComment":null,"period":{"year":"2025","month":"November"},"monthYear":"2025-11","month":"November","year":"2025","periodPretty":"2025 November","fileKey":null,"linkToFile":null,"approvedByEmail":"bella@mobupps.com","approvedByName":"Bella Katsir","setBillingStatusEnabled":true,"mafoCalculatedRevenue":15,"mafoCalculatedCost":15,"comments":[],"advertiserManagerTeamName":"Russia Team","addedByEmail":null,"addedByName":null,"canEdit":true,"billingStatusButtonTooltip":"Set Billing Status","canEditEditForm":true}]
  191. EOT;
  192. $sum = 0;
  193. $data = json_decode($temp, true);
  194. foreach ($data as $key => $value) {
  195. if ($value['month'] === 'November') {
  196. $sum += $value['totalRevenue'];
  197. }
  198. }
  199. echo $sum;
  200. die;
  201. echo $temp;
  202. die;
  203. // echo json_decode($temp, true);
  204. die;
  205. // $this->mafoFinancialToolsComponents->updateAdvertiserHyperData();
  206. die;
  207. }
  208. private function migrateMmpMobileAppsAdvertiserId()
  209. {
  210. $mmpMobileApps = $this->doctrine->getRepository(MmpMobileApps::class)->getMmpMobileAppsForAdvertiserMigration();
  211. foreach ($mmpMobileApps as $mmpMobileApp) {
  212. if ($mmpMobileApp['advertiserId']) {
  213. $checkMafoAdvertiserMappingExists = $this->doctrine->getRepository(MafoAdvertisersMapping::class)->findOneBy([
  214. 'systemIdentifier' => Config::MAFO_SYSTEM_IDENTIFIER_TUNE_MOBILE,
  215. 'systemIdentifierId' => $mmpMobileApp['advertiserId']
  216. ]);
  217. if ($checkMafoAdvertiserMappingExists) {
  218. $this->doctrine->getRepository(MmpMobileApps::class)->updateMmpMobileAppsById($mmpMobileApp['id'], [
  219. 'mafoAdvertiserId' => $checkMafoAdvertiserMappingExists->getMafoAdvertiserId()->getId()
  220. ]);
  221. }
  222. }
  223. }
  224. }
  225. private function processCohortCsv()
  226. {
  227. ini_set('memory_limit', '256M');
  228. $fileDirectory = $this->rootPath . '/public/temp';
  229. $files = scandir($fileDirectory);
  230. foreach ($files as $file) {
  231. if (!$this->commonCalls->checkForString($file, 'cohort')) {
  232. continue;
  233. }
  234. $filePath = $fileDirectory . '/' . $file;
  235. // $fileData = file_get_contents($filePath);
  236. $file = fopen($filePath, 'r');
  237. $data = [];
  238. while (($line = fgetcsv($file)) !== FALSE) {
  239. //$line is an array of the csv elements
  240. $data[] = $line;
  241. if (sizeof($data) > 100) {
  242. break;
  243. }
  244. }
  245. fclose($file);
  246. $dataHeaders = $data[0];
  247. unset($data[0]);
  248. echo json_encode($data);
  249. die;
  250. }
  251. }
  252. /**
  253. * @Route("/advertiser-list", name="advertiser_list", host="%main_subdomain%")
  254. */
  255. public
  256. function getAdvertiserListAction(Request $request)
  257. {
  258. $advertiserData = $this->commonCalls->getAdvertisersListByStatusWithKeys();
  259. $response = [];
  260. foreach ($advertiserData as $key => $value) {
  261. $response[$value['id']] = [
  262. 'value' => $value['id'],
  263. 'label' => $value['id'] . ' - ' . $value['name']
  264. ];
  265. }
  266. ksort($response);
  267. header('Access-Control-Allow-Origin: *');
  268. return new JsonResponse(array_values($response));
  269. }
  270. /**
  271. * @Route("/affiliate-list", name="affiliate_list", host="%main_subdomain%")
  272. */
  273. public
  274. function getAffiliateListAction(Request $request)
  275. {
  276. $advertiserData = $this->commonCalls->getAffiliateListByStatusWithKeys();
  277. $response = [];
  278. foreach ($advertiserData as $key => $value) {
  279. $response[$value['id']] = [
  280. 'value' => $value['id'],
  281. 'label' => $value['id'] . ' - ' . $value['name']
  282. ];
  283. }
  284. ksort($response);
  285. header('Access-Control-Allow-Origin: *');
  286. return new JsonResponse(array_values($response));
  287. }
  288. /**
  289. * @Route("/oauth", name="oauth", host="%main_subdomain%")
  290. */
  291. public
  292. function oauthAction()
  293. {
  294. return new JsonResponse(true);
  295. }
  296. /**
  297. * @Route("/appsflyer/skadnetwork", name="appsflyer_skadnetwork", host="%main_subdomain%")
  298. */
  299. public
  300. function appsflyerSkadnetworkAction(Request $request)
  301. {
  302. if ($_SERVER['REQUEST_METHOD'] === Config::HTTP_METHOD_POST) {
  303. $payload = json_decode($request->getContent(), true);
  304. } else if ($_SERVER['REQUEST_METHOD'] === Config::HTTP_METHOD_GET) {
  305. $payload['transaction-id'] = $request->query->get('transaction-id');
  306. }
  307. if (isset($payload['transaction-id'])) {
  308. $data = $this->doctrine->getRepository(SkadNetworkPostbackLogs::class)->findOneBy([
  309. 'transactionId' => $payload['transaction-id']
  310. ]);
  311. if ($data) {
  312. $this->doctrine->getRepository(SkadNetworkPostbackLogs::class)->updateSkadNetworkPostbackLogs($data->getId(), [
  313. 'isPostbackAcknowledgedFromAppsflyer' => true
  314. ]);
  315. }
  316. }
  317. return new JsonResponse(true);
  318. }
  319. /**
  320. * Serve the SPA for any front-end route so React Router can handle it client-side
  321. * This should be placed LAST in your routing to act as a catch-all
  322. *
  323. * @Route("/{reactRouting}", name="spa_catch_all", requirements={"reactRouting"="^(?!api|!admin|_wdt|_profiler).*"}, methods={"GET"}, priority=-1, host="%main_subdomain%")
  324. */
  325. public function spaCatchAll(): Response
  326. {
  327. if (!$this->getUser()) {
  328. return $this->redirectToRoute('mafo_form_login');
  329. }
  330. return $this->render('base.html.twig', [
  331. 'template' => '/templates/dashboard.html.twig',
  332. ]);
  333. }
  334. /**
  335. * Serve the SPA for any front-end route so React Router can handle it client-side
  336. * This should be placed LAST in your routing to act as a catch-al
  337. *
  338. * @Route("/{reactRouting}", name="spa_catch_all_advertiser", requirements={"reactRouting"="^(?!api|!admin|_wdt|_profiler).*"}, methods={"GET"}, priority=-1, host="%advertisers_subdomain%")
  339. */
  340. public function spaCatchAllAdvertiser(): Response
  341. {
  342. if (!$this->getUser()) {
  343. return $this->redirectToRoute('client_advertiser_login');
  344. }
  345. return $this->render('base_mafo_advertiser_cabinet.html.twig', [
  346. 'template' => '/base_mafo_advertiser_cabinet.html.twig',
  347. ]);
  348. }
  349. /**
  350. * Serve the SPA for any front-end route so React Router can handle it client-side
  351. * This should be placed LAST in your routing to act as a catch-al
  352. *
  353. * @Route("/{reactRouting}", name="spa_catch_all_publisher_cabinet", requirements={"reactRouting"="^(?!api|!admin|_wdt|_profiler).*"}, methods={"GET"}, priority=-1, host="%publishers_subdomain%")
  354. */
  355. public function spaCatchAllPublisherCabinet(): Response
  356. {
  357. if (!$this->getUser()) {
  358. return $this->redirectToRoute('client_publisher_login');
  359. }
  360. return $this->render('base_mafo_publisher_cabinet.html.twig', [
  361. 'template' => '/base_mafo_publisher_cabinet.html.twig'
  362. ]);
  363. }
  364. }