1: <?php
2: namespace tests\integration\barebones\models\billing;
3:
4: use Barebones\Lib\ApplicationDataConnectionPool;
5: use tests\integration\barebones\BarebonesTestCase;
6: use ClientsFeeSchedulesMapModel;
7: use CPTModel;
8: use Session;
9:
10: class ClientsFeeSchedulesMapModelTest extends BarebonesTestCase
11: {
12:
13: public function testUniqueCptIDPerCFSM()
14: {
15: error_reporting(E_ALL);
16:
17: $cusConn = ApplicationDataConnectionPool::get('_8');
18: $cusConn->beginTransaction();
19:
20: Session::set('usr_cur_customer_id', '8');
21: Session::set('usr_cur_client_id', '134641');
22:
23: $cpt = CPTModel::findFirstMatch(array(
24: 'cpt_cus_id' => '0',
25: 'cpt_cpt_code' => '99212',
26: ));
27:
28: $cfsm1 = new ClientsFeeSchedulesMapModel();
29: $cfsm2 = new ClientsFeeSchedulesMapModel();
30: foreach(ClientsFeeSchedulesMapModel::$sharedCPTAttributes as $cfsm_attr => $cpt_attr){
31: $cfsm1[$cfsm_attr] = $cpt[$cpt_attr];
32: $cfsm2[$cfsm_attr] = $cpt[$cpt_attr];
33: }
34: $cfsm1->cfsm_cpt_id = $cpt->cpt_id;
35: $cfsm1->cfsm_price = '1.50';
36: $cfsm1->cfsm_price_self_pay = '1.50';
37:
38:
39: $cfsm2->cfsm_cpt_id = $cpt->cpt_id;
40: $cfsm2->cfsm_price = '0.50';
41: $cfsm2->cfsm_price_self_pay = '0.50';
42:
43: $cfsm1->save();
44: $cfsm2->save();
45:
46: $this->assertNotEquals($cfsm1->cfsm_cpt_id, $cfsm2->cfsm_cpt_id);
47: $cusConn->rollback();
48: }
49:
50: public function testNoNewCPTOnNoSharedAttrChange()
51: {
52: error_reporting(E_ALL);
53:
54: $cusConn = ApplicationDataConnectionPool::get('_8');
55: $cusConn->beginTransaction();
56:
57: Session::set('usr_cur_customer_id', '8');
58: Session::set('usr_cur_client_id', '134641');
59:
60: $cfsm = ClientsFeeSchedulesMapModel::findFirstMatch(array(
61: 'cfsm_cus_id' => Session::get('usr_cur_customer_id'),
62: 'cfsm_cli_id' => Session::get('usr_cur_client_id'),
63: ));
64:
65: $cpt_id = $cfsm->cfsm_cpt_id;
66: $cfsm->cfsm_price = '56.73';
67:
68: $cfsm->save();
69:
70: $this->assertEquals($cfsm->cfsm_cpt_id, $cpt_id);
71: $cusConn->rollback();
72: }
73:
74: public function testNewCPTOnSharedAttrChangeForGlobalCPT()
75: {
76: error_reporting(E_ALL);
77:
78: $cusConn = ApplicationDataConnectionPool::get('_8');
79: $cusConn->beginTransaction();
80:
81: Session::set('usr_cur_customer_id', '8');
82: Session::set('usr_cur_client_id', '134641');
83:
84: $cfsm = ClientsFeeSchedulesMapModel::findFirstMatch(array(
85: 'cfsm_id' => 52747
86: ));
87:
88: $cpt_id = $cfsm->cfsm_cpt_id;
89: $cfsm->cfsm_cpt_desc = $cfsm->cfsm_cpt_desc.'CHANGE';
90:
91: $cfsm->save();
92:
93: $this->assertNotEquals($cfsm->cfsm_cpt_id, $cpt_id);
94: $cusConn->rollback();
95: }
96:
97: public function testNoNewCPTOnSharedAttrChangeForNonGlobalCPT()
98: {
99: error_reporting(E_ALL);
100:
101: $cusConn = ApplicationDataConnectionPool::get('_8');
102: $cusConn->beginTransaction();
103:
104: Session::set('usr_cur_customer_id', '8');
105: Session::set('usr_cur_client_id', '134641');
106:
107: $cfsm = ClientsFeeSchedulesMapModel::findFirstMatch(array(
108: 'cfsm_id' => 68959
109: ));
110:
111: $cpt_id = $cfsm->cfsm_cpt_id;
112: $cfsm->cfsm_cpt_desc = $cfsm->cfsm_cpt_desc.'CHANGE';
113:
114: $cfsm->save();
115:
116: $this->assertEquals($cfsm->cfsm_cpt_id, $cpt_id);
117: $cusConn->rollback();
118: }
119: }
120: