Skip to content
This repository has been archived by the owner on Jan 9, 2024. It is now read-only.

Commit

Permalink
Merge pull request #5 from cwd/feature/deliveries
Browse files Browse the repository at this point in the history
adding delivery
  • Loading branch information
Robert Kummer committed Mar 14, 2016
2 parents 6028b91 + b6f8c8d commit 4440917
Show file tree
Hide file tree
Showing 10 changed files with 831 additions and 2 deletions.
12 changes: 11 additions & 1 deletion src/rokde/Gsales/Api/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,16 @@ public function user()
return $this->getContextInstance('User');
}

/**
* returns delivery context
*
* @return \Rokde\Gsales\Api\Contexts\Delivery
*/
public function delivery()
{
return $this->getContextInstance('Delivery');
}

/**
* returns a configuration context
*
Expand Down Expand Up @@ -192,4 +202,4 @@ protected function getContextInstance($context)

return static::$contexts[$context];
}
}
}
8 changes: 7 additions & 1 deletion src/rokde/Gsales/Api/Contexts/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,12 @@ public static function classmap()
'InvoiceSumm' => $namespace . '\Types\Invoice\Sum',
'DunningAction' => $namespace . '\Types\Invoice\DunningAction',

'Delivery' => $namespace . '\Types\DeliveryType',
'DeliveryBase' => $namespace . '\Types\Delivery\Base',
'DeliveryBaseFilterable' => $namespace . '\Types\Delivery\BaseFilterable',
'DeliveryPosition' => $namespace . '\Types\Delivery\Position',
'DeliverySumm' => $namespace . '\Types\Delivery\Sum',

'Refund' => $namespace . '\Types\RefundType',
'RefundBase' => $namespace . '\Types\Refund\Base',
'RefundBaseFilterable' => $namespace . '\Types\Refund\BaseFilterable',
Expand Down Expand Up @@ -260,4 +266,4 @@ private function prepareFilterOnlyParameter($filter, array $params = array())

return $params;
}
}
}
221 changes: 221 additions & 0 deletions src/rokde/Gsales/Api/Contexts/Delivery.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
<?php namespace Rokde\Gsales\Api\Contexts;

use Rokde\Gsales\Api\Types\File;
use Rokde\Gsales\Api\Types\Filter;
use Rokde\Gsales\Api\Types\Delivery\Base;
use Rokde\Gsales\Api\Types\Delivery\BasePosition;
use Rokde\Gsales\Api\Types\Delivery\Position;
use Rokde\Gsales\Api\Types\Sort;
use Rokde\Gsales\Api\Types\Type;

/**
* Class Delivery
*
* @package Rokde\Gsales\Api\Contexts
*/
class Delivery extends Api
{
/**
* returns an delivery by id
*
* @param int $deliveryId
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function get($deliveryId)
{
return $this->getEntity('getDelivery', 'deliveryid', $deliveryId);
}

/**
* returns deliverys by filter and ordering, pagination possible
*
* @param Filter[] $filter
* @param Sort $sort
* @param int $limit
* @param int $offset
*
* @return \Rokde\Gsales\Api\Types\DeliveryType[]
*/
public function all($filter = null, $sort = null, $limit = null, $offset = null)
{
return $this->getCollection('getDeliverys', $filter, $sort, $limit, $offset);
}

/**
* returns number of deliverys by filter
*
* @param Filter[] $filter
*
* @return int
*/
public function count($filter = null)
{
return $this->getCollectionCount('getDeliverysCount', $filter);
}

/**
* marks an delivery as paid
*
* @param \Rokde\Gsales\Api\Types\DeliveryType|int $delivery
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function paid($delivery)
{
return $this->modifyState('setDeliveryStatePaid', 'deliveryid', $delivery);
}

/**
* marks an delivery as open
*
* @param \Rokde\Gsales\Api\Types\DeliveryType|int $delivery
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function open($delivery)
{
return $this->modifyState('setDeliveryStateOpen', 'deliveryid', $delivery);
}

/**
* marks an delivery as canceled
*
* @param \Rokde\Gsales\Api\Types\DeliveryType|int $delivery
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function canceled($delivery)
{
return $this->modifyState('setDeliveryStateCanceled', 'deliveryid', $delivery);
}

/**
* creates a position within an delivery
*
* @param \Rokde\Gsales\Api\Types\DeliveryType|int $delivery
* @param BasePosition $position
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function createPosition($delivery, BasePosition $position)
{
$deliveryId = Type::getIdentifier($delivery);

return $this->call('createDeliveryPosition', ['deliveryid' => $deliveryId, 'data' => $position]);
}

/**
* updates a position within an delivery
*
* @param \Rokde\Gsales\Api\Types\DeliveryType|int $delivery
* @param Position $position
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function updatePosition($delivery, Position $position)
{
$deliveryId = Type::getIdentifier($delivery);
$positionId = $position->getId();

return $this->call('updateDeliveryPosition', ['deliveryid' => $deliveryId, 'positionid' => $positionId, 'data' => $position]);
}

/**
* deletes a position from an delivery
*
* @param \Rokde\Gsales\Api\Types\DeliveryType|int $delivery
* @param Position|int $position
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function deletePosition($delivery, $position)
{
$deliveryId = Type::getIdentifier($delivery);
$positionId = Type::getIdentifier($position);

return $this->call('deleteDeliveryPosition', ['deliveryid' => $deliveryId, 'positionid' => $positionId]);
}

/**
* deletes an delivery
*
* @param \Rokde\Gsales\Api\Types\DeliveryType|int $delivery
*
* @return bool
*/
public function delete($delivery)
{
$deliveryId = Type::getIdentifier($delivery);

return $this->call('deleteDelivery', ['deliveryid' => $deliveryId]);
}

/**
* creates an delivery for a customer
*
* @param Customer|int $customer
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function createForCustomer($customer)
{
$customerId = Type::getIdentifier($customer);

return $this->call('createDeliveryForCustomer', ['customerid' => $customerId]);
}

/**
* creates an delivery
*
* @param Base $delivery
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function create(Base $delivery)
{
return $this->call('createDelivery', ['data' => $delivery]);
}

/**
* creates an delivery
*
* @param Base $delivery
*
* @return \Rokde\Gsales\Api\Types\DeliveryType
*/
public function update(Base $delivery)
{
$deliveryId = $delivery->getId();

return $this->call('updateDelivery', ['deliveryid' => $deliveryId, 'data' => $delivery]);
}

/**
* adds delivery to mailspool
*
* @param \Rokde\Gsales\Api\Types\DeliveryType $delivery
*
* @return bool
*/
public function addToMailspool($delivery)
{
$deliveryId = Type::getIdentifier($delivery);

return $this->call('addDeliveryToMailspool', ['deliveryid' => $deliveryId]);
}

/**
* returns pdf file of delivery
*
* @param $delivery
*
* @return File
*/
public function pdf($delivery)
{
$deliveryId = Type::getIdentifier($delivery);

return $this->call('getDeliveryPDF', ['deliveryid' => $deliveryId]);
}
}
10 changes: 10 additions & 0 deletions src/rokde/Gsales/Api/Types/Delivery/Base.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php namespace Rokde\Gsales\Api\Types\Delivery;

/**
* Class Base
*
* @package Rokde\Gsales\Api\Types\Invoice
*/
class Base extends BaseFilterable
{
}
Loading

0 comments on commit 4440917

Please sign in to comment.