public function testAccountGetById_Ok()
 {
     $client = TestEnvironment::client();
     $response = $client->get('/modules/api/bankaccounts/1', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $expected = new stdClass();
     $expected->account_code = '1060';
     $expected->account_type = '0';
     $expected->id = '1';
     $expected->bank_account_name = 'Current account';
     $expected->bank_name = 'N/A';
     $expected->bank_account_number = 'N/A';
     $expected->bank_curr_code = 'USD';
     $expected->bank_address = '';
     $expected->dflt_curr_act = '1';
     $expected->last_reconciled_date = '0000-00-00 00:00:00';
     $expected->ending_reconcile_balance = '0';
     $expected->inactive = '0';
     $expected->{'0'} = '1060';
     $expected->{'1'} = '0';
     $expected->{'2'} = 'Current account';
     $expected->{'3'} = 'N/A';
     $expected->{'4'} = 'N/A';
     $expected->{'5'} = '';
     $expected->{'6'} = 'USD';
     $expected->{'7'} = '1';
     $expected->{'8'} = '1';
     $expected->{'9'} = '0000-00-00 00:00:00';
     $expected->{'10'} = '0';
     $expected->{'11'} = '0';
     $this->assertEquals($expected, $result);
 }
 public function testAccountTypes_Ok()
 {
     $client = TestEnvironment::client();
     $response = $client->get('/modules/api/glaccounttypes', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
 }
 public function testCRUD_Ok()
 {
     $client = TestEnvironment::client();
     // List
     $response = $client->get('/modules/api/category/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count0 = count($result);
     $this->assertGreaterThan(1, $count0);
     // Add
     $response = $client->post('/modules/api/category/', array('headers' => TestEnvironment::headers(), 'body' => array('description' => 'description', 'tax_type_id' => '1', 'units' => 'each', 'mb_flag' => 'D', 'sales_account' => '4010', 'cogs_account' => '5010', 'adjustment_account' => '5040', 'assembly_account' => '1530', 'inventory_account' => '1510')));
     $this->assertEquals('201', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $id = $result->category_id;
     $this->assertNotNull($id);
     // List again
     $response = $client->get('/modules/api/category/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count1 = count($result);
     $this->assertEquals($count0 + 1, $count1);
     // Get by id
     $response = $client->get('/modules/api/category/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $this->assertEquals($id, $result->category_id);
     // Write back
     $response = $client->put('/modules/api/category/' . $id, array('headers' => TestEnvironment::headers(), 'body' => array('description' => 'other description', 'tax_type_id' => '1', 'units' => 'month', 'mb_flag' => 'D', 'sales_account' => '4010', 'cogs_account' => '5010', 'adjustment_account' => '5040', 'assembly_account' => '1530', 'inventory_account' => '1510')));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // List again
     $response = $client->get('/modules/api/category/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count1 = count($result);
     $this->assertEquals($count0 + 1, $count1);
     $this->assertEquals($id, $result[$count1 - 1]->category_id);
     $this->assertEquals('other description', $result[$count1 - 1]->description);
     // Delete
     $response = $client->delete('/modules/api/category/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // List again
     $response = $client->get('/modules/api/category/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count2 = count($result);
     $this->assertEquals($count0, $count2);
 }
 public function testTaxGroups_Ok()
 {
     $client = TestEnvironment::client();
     // List
     $response = $client->get('/modules/api/taxgroups/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $this->assertEquals(2, count($result));
     $expected = new stdClass();
     $expected->id = 1;
     $expected->name = 'Tax';
     $expected->tax_shipping = 0;
     $this->assertEquals($expected, $result[0]);
 }
 public function testCRUD_Ok()
 {
     $client = TestEnvironment::client();
     // List
     $response = $client->get('/modules/api/suppliers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count0 = count($result);
     $this->assertEquals(0, $count0);
     // Add
     // 		$id = TestEnvironment::createId();
     $response = $client->post('/modules/api/suppliers/', array('headers' => TestEnvironment::headers(), 'body' => array('supp_name' => 'supp_name', 'supp_ref' => 'supp_ref', 'address' => 'address', 'supp_address' => 'supp_address', 'gst_no' => 'gst_no', 'website' => 'website', 'supp_account_no' => 'supp_account_no', 'bank_account' => 'bank_account', 'credit_limit' => '1000', 'curr_code' => 'USD', 'payment_terms' => '1', 'payable_account' => '1010', 'purchase_account' => '1020', 'payment_discount_account' => '1030', 'notes' => 'notes', 'tax_group_id' => '1', 'tax_included' => '1')));
     $this->assertEquals('201', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // 		var_dump($result);
     $id = $result->supplier_id;
     $expected = new stdClass();
     $expected->supplier_id = '1';
     $expected->supp_name = 'supp_name';
     $expected->supp_ref = 'supp_ref';
     $expected->address = 'address';
     $expected->supp_address = 'supp_address';
     $expected->gst_no = 'gst_no';
     $expected->website = 'website';
     $expected->supp_account_no = 'supp_account_no';
     $expected->bank_account = 'bank_account';
     $expected->credit_limit = '1000';
     $expected->curr_code = 'USD';
     $expected->payment_terms = '1';
     $expected->payable_account = '1010';
     $expected->purchase_account = '1020';
     $expected->payment_discount_account = '1030';
     $expected->notes = 'notes';
     $expected->tax_group_id = '1';
     $expected->tax_included = '1';
     $expected->contact = '';
     $expected->dimension_id = '0';
     $expected->dimension2_id = '0';
     $expected->inactive = '0';
     $expected->{'0'} = '1';
     $expected->{'1'} = 'supp_name';
     $expected->{'2'} = 'supp_ref';
     $expected->{'3'} = 'address';
     $expected->{'4'} = 'supp_address';
     $expected->{'5'} = 'gst_no';
     $expected->{'6'} = '';
     $expected->{'7'} = 'supp_account_no';
     $expected->{'8'} = 'website';
     $expected->{'9'} = 'bank_account';
     $expected->{'10'} = 'USD';
     $expected->{'11'} = '1';
     $expected->{'12'} = '1';
     $expected->{'13'} = '0';
     $expected->{'14'} = '0';
     $expected->{'15'} = '1';
     $expected->{'16'} = '1000';
     $expected->{'17'} = '1020';
     $expected->{'18'} = '1010';
     $expected->{'19'} = '1030';
     $expected->{'20'} = 'notes';
     $expected->{'21'} = '0';
     $this->assertEquals($expected, $result);
     // List again
     $response = $client->get('/modules/api/suppliers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count1 = count($result);
     $this->assertEquals($count0 + 1, $count1);
     // Get by id
     $response = $client->get('/modules/api/suppliers/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $this->assertEquals($expected, $result);
     // Write back
     $response = $client->put('/modules/api/suppliers/' . $id, array('headers' => TestEnvironment::headers(), 'body' => array('supp_name' => 'new supp_name', 'supp_ref' => 'new supp_ref', 'address' => 'new address', 'supp_address' => 'new supp_address', 'gst_no' => 'new gst_no', 'website' => 'new website', 'supp_account_no' => 'new supp_account_no', 'bank_account' => 'new bank_account', 'credit_limit' => '2000', 'curr_code' => 'NZD', 'payment_terms' => '2', 'payable_account' => '2010', 'purchase_account' => '2020', 'payment_discount_account' => '2030', 'notes' => 'new notes', 'tax_group_id' => '2', 'tax_included' => '2')));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // Get by id to read back
     $response = $client->get('/modules/api/suppliers/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $expected->supp_name = 'new supp_name';
     $expected->supp_ref = 'new supp_ref';
     $expected->address = 'new address';
     $expected->supp_address = 'new supp_address';
     $expected->gst_no = 'new gst_no';
     $expected->website = 'new website';
     $expected->supp_account_no = 'new supp_account_no';
     $expected->bank_account = 'new bank_account';
     $expected->credit_limit = '2000';
     $expected->curr_code = 'NZD';
     $expected->payment_terms = '2';
     $expected->payable_account = '2010';
     $expected->purchase_account = '2020';
     $expected->payment_discount_account = '2030';
     $expected->notes = 'new notes';
     $expected->tax_group_id = '2';
     $expected->tax_included = '2';
     $expected->contact = '';
     $expected->dimension_id = '0';
     $expected->dimension2_id = '0';
     $expected->inactive = '0';
     $expected->{'0'} = '1';
     $expected->{'1'} = 'new supp_name';
     $expected->{'2'} = 'new supp_ref';
     $expected->{'3'} = 'new address';
     $expected->{'4'} = 'new supp_address';
     $expected->{'5'} = 'new gst_no';
     $expected->{'6'} = '';
     $expected->{'7'} = 'new supp_account_no';
     $expected->{'8'} = 'new website';
     $expected->{'9'} = 'new bank_account';
     $expected->{'10'} = 'NZD';
     $expected->{'11'} = '2';
     $expected->{'12'} = '2';
     $expected->{'13'} = '0';
     $expected->{'14'} = '0';
     $expected->{'15'} = '2';
     $expected->{'16'} = '2000';
     $expected->{'17'} = '2020';
     $expected->{'18'} = '2010';
     $expected->{'19'} = '2030';
     $expected->{'20'} = 'new notes';
     $expected->{'21'} = '0';
     $this->assertEquals($expected, $result);
     // List again
     $response = $client->get('/modules/api/suppliers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count1 = count($result);
     $this->assertEquals($count0 + 1, $count1);
     $this->assertEquals($id, $result[$count1 - 1]->supplier_id);
     // Delete
     $response = $client->delete('/modules/api/suppliers/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // List again
     $response = $client->get('/modules/api/suppliers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count2 = count($result);
     $this->assertEquals($count0, $count2);
 }
 public function testCRUD_Ok()
 {
     $client = TestEnvironment::client();
     // List
     $response = $client->get('/modules/api/customers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count0 = count($result);
     $this->assertEquals(0, $count0);
     // Add
     // 		$id = TestEnvironment::createId();
     $response = $client->post('/modules/api/customers/', array('headers' => TestEnvironment::headers(), 'body' => array('custname' => 'custname', 'cust_ref' => 'cust_ref', 'address' => 'address', 'tax_id' => 'tax_id', 'curr_code' => 'USD', 'credit_status' => '1', 'payment_terms' => '1', 'discount' => '0', 'pymt_discount' => '0', 'credit_limit' => '1000', 'sales_type' => '1', 'notes' => 'notes')));
     $this->assertEquals('201', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $id = $result->debtor_no;
     $expected = new stdClass();
     $expected->debtor_no = '1';
     $expected->name = 'custname';
     $expected->debtor_ref = 'cust_ref';
     $expected->address = 'address';
     $expected->tax_id = 'tax_id';
     $expected->curr_code = 'USD';
     $expected->sales_type = '1';
     $expected->dimension_id = '0';
     $expected->dimension2_id = '0';
     $expected->credit_status = '1';
     $expected->payment_terms = '1';
     $expected->discount = '0';
     $expected->pymt_discount = '0';
     $expected->credit_limit = '1000';
     $expected->notes = 'notes';
     $expected->inactive = '0';
     $expected->{'0'} = '1';
     $expected->{'1'} = 'custname';
     $expected->{'2'} = 'cust_ref';
     $expected->{'3'} = 'address';
     $expected->{'4'} = 'tax_id';
     $expected->{'5'} = 'USD';
     $expected->{'6'} = '1';
     $expected->{'7'} = '0';
     $expected->{'8'} = '0';
     $expected->{'9'} = '1';
     $expected->{'10'} = '1';
     $expected->{'11'} = '0';
     $expected->{'12'} = '0';
     $expected->{'13'} = '1000';
     $expected->{'14'} = 'notes';
     $expected->{'15'} = '0';
     $this->assertEquals($expected, $result);
     // List again
     $response = $client->get('/modules/api/customers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count1 = count($result);
     $this->assertEquals($count0 + 1, $count1);
     // Get by id
     $response = $client->get('/modules/api/customers/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $this->assertEquals($expected, $result);
     // Write back
     $response = $client->put('/modules/api/customers/' . $id, array('headers' => TestEnvironment::headers(), 'body' => array('custname' => 'new custname', 'cust_ref' => 'new cust_ref', 'address' => 'new address', 'tax_id' => 'new tax_id', 'curr_code' => 'NZD', 'credit_status' => '2', 'payment_terms' => '2', 'discount' => '1', 'pymt_discount' => '1', 'credit_limit' => '2000', 'sales_type' => '2', 'notes' => 'new notes')));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // Get by id to read back
     $response = $client->get('/modules/api/customers/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $expected->name = 'new custname';
     $expected->debtor_ref = 'new cust_ref';
     $expected->address = 'new address';
     $expected->tax_id = 'new tax_id';
     $expected->curr_code = 'NZD';
     $expected->sales_type = '2';
     // 		$expected->dimension_id = '0';
     // 		$expected->dimension2_id = '0';
     $expected->credit_status = '2';
     $expected->payment_terms = '2';
     $expected->discount = '1';
     $expected->pymt_discount = '1';
     $expected->credit_limit = '2000';
     $expected->notes = 'new notes';
     // 		$expected->inactive = '0';
     $expected->{'0'} = '1';
     $expected->{'1'} = 'new custname';
     $expected->{'2'} = 'new cust_ref';
     $expected->{'3'} = 'new address';
     $expected->{'4'} = 'new tax_id';
     $expected->{'5'} = 'NZD';
     $expected->{'6'} = '2';
     $expected->{'7'} = '0';
     $expected->{'8'} = '0';
     $expected->{'9'} = '2';
     $expected->{'10'} = '2';
     $expected->{'11'} = '1';
     $expected->{'12'} = '1';
     $expected->{'13'} = '2000';
     $expected->{'14'} = 'new notes';
     $expected->{'15'} = '0';
     $this->assertEquals($expected, $result);
     // List again
     $response = $client->get('/modules/api/customers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count1 = count($result);
     $this->assertEquals($count0 + 1, $count1);
     $this->assertEquals($id, $result[$count1 - 1]->debtor_no);
     // Delete
     $response = $client->delete('/modules/api/customers/' . $id, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // List again
     $response = $client->get('/modules/api/customers/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count2 = count($result);
     $this->assertEquals($count0, $count2);
 }
 public function testCRUD_Ok()
 {
     $client = TestEnvironment::client();
     TestEnvironment::createCustomer($client, 'TEST_CUST', 'Test Customer');
     TestEnvironment::createItem($client, 'TEST_ITEM', 'Test Item');
     // List
     $response = $client->get('/modules/api/sales/' . ST_SALESINVOICE, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count0 = count($result);
     $this->assertEquals(0, $count0);
     // Add
     $ref = TestEnvironment::createId();
     //?XDEBUG_SESSION_START=cambell
     $response = $client->post('/modules/api/sales/', array('headers' => TestEnvironment::headers(), 'body' => array('trans_type' => ST_SALESINVOICE, 'ref' => $ref, 'comments' => 'comments', 'order_date' => '01/02/2013', 'delivery_date' => '03/04/2013', 'cust_ref' => 'cust_ref', 'deliver_to' => 'deliver_to', 'delivery_address' => 'delivery_address', 'phone' => 'phone', 'ship_via' => 'ship_via', 'location' => 'DEF', 'freight_cost' => '0', 'customer_id' => '2', 'branch_id' => '2', 'sales_type' => '1', 'dimension_id' => '0', 'dimension2_id' => '0', 'items' => array(0 => array('stock_id' => 'TEST_ITEM', 'qty' => '1', 'price' => '2', 'discount' => '0', 'description' => 'description')))));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // List again
     $response = $client->get('/modules/api/sales/' . ST_SALESINVOICE . '/', array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $count1 = count($result);
     $this->assertEquals($count0 + 1, $count1);
     $id = $result[0]->trans_no;
     // Get by id
     $response = $client->get('/modules/api/sales/' . $id . '/' . ST_SALESINVOICE, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $expected = new stdClass();
     $expected->ref = $ref;
     $expected->comments = "comments";
     $expected->order_date = "01/02/2013";
     $expected->payment = "0";
     $expected->payment_terms = false;
     $expected->due_date = "03/04/2013";
     $expected->phone = "";
     $expected->cust_ref = "cust_ref";
     $expected->delivery_address = "delivery_address";
     $expected->ship_via = "0";
     $expected->deliver_to = "Test Customer";
     $expected->delivery_date = "03/04/2013";
     $expected->location = NULL;
     $expected->freight_cost = "0";
     $expected->email = "";
     $expected->customer_id = "2";
     $expected->branch_id = "2";
     $expected->sales_type = "1";
     $expected->dimension_id = "0";
     $expected->dimension2_id = "0";
     $item = new stdClass();
     $item->id = "2";
     $item->stock_id = "TEST_ITEM";
     $item->qty = 1;
     $item->units = "ea";
     $item->price = "2";
     $item->discount = "0";
     $item->description = "description";
     $expected->line_items = array($item);
     $expected->sub_total = 2;
     $expected->display_total = 2;
     $this->assertEquals($expected, $result);
     // Write back
     $response = $client->put('/modules/api/sales/' . $id . '/' . ST_SALESINVOICE, array('headers' => TestEnvironment::headers(), 'body' => array('trans_type' => ST_SALESINVOICE, 'ref' => $ref, 'comments' => 'new comments', 'order_date' => '02/03/2013', 'delivery_date' => '04/05/2013', 'cust_ref' => 'cust_ref', 'deliver_to' => 'new deliver_to', 'delivery_address' => 'new delivery_address', 'phone' => 'new phone', 'ship_via' => 'new ship_via', 'location' => 'DEF', 'freight_cost' => '0', 'customer_id' => '2', 'branch_id' => '2', 'sales_type' => '1', 'dimension_id' => '0', 'dimension2_id' => '0')));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     // Get by id
     $response = $client->get('/modules/api/sales/' . $id . '/' . ST_SALESINVOICE, array('headers' => TestEnvironment::headers()));
     $this->assertEquals('200', $response->getStatusCode());
     $result = $response->getBody();
     $result = json_decode($result);
     $expected = new stdClass();
     $expected->ref = $ref;
     $expected->comments = "new comments";
     $expected->order_date = "02/03/2013";
     $expected->payment = "0";
     $expected->payment_terms = false;
     $expected->due_date = "04/05/2013";
     $expected->phone = "";
     $expected->cust_ref = "cust_ref";
     $expected->delivery_address = "delivery_address";
     $expected->ship_via = "0";
     $expected->deliver_to = "Test Customer";
     $expected->delivery_date = "04/05/2013";
     $expected->location = NULL;
     $expected->freight_cost = "0";
     $expected->email = "";
     $expected->customer_id = "2";
     $expected->branch_id = "2";
     $expected->sales_type = "1";
     $expected->dimension_id = "0";
     $expected->dimension2_id = "0";
     $item = new stdClass();
     $item->id = "2";
     $item->stock_id = "TEST_ITEM";
     $item->qty = 1;
     $item->units = "ea";
     $item->price = "2";
     $item->discount = "0";
     $item->description = "description";
     $expected->line_items = array($item);
     $expected->sub_total = 2;
     $expected->display_total = 2;
     $this->assertEquals($expected, $result);
     /* Delete is currently untested, and not implemented with standard FA
     		// Delete
     		$response = $client->delete('/modules/api/sales/' . $id, array(
     			'headers' => TestEnvironment::headers()
     		));
     		$this->assertEquals('200', $response->getStatusCode());
     		$result = $response->getBody();
     		$result = json_decode($result);
     
     		// List again
     		$response = $client->get('/modules/api/sales/', array(
     			'headers' => TestEnvironment::headers()
     		));
     
     		$this->assertEquals('200', $response->getStatusCode());
     		$result = $response->getBody();
     		$result = json_decode($result);
     
     		$count2 = count($result);
     		$this->assertEquals($count0, $count2);
     		*/
 }