Merge branch 'master' of github.com:hillelcoren/invoice-ninja

This commit is contained in:
Hillel Coren 2016-01-31 15:10:40 +02:00
commit 646c239cd8
6 changed files with 115 additions and 3 deletions

View File

@ -249,6 +249,26 @@ class InvoiceApiController extends BaseAPIController
return $item; return $item;
} }
public function emailInvoicev2()
{
$data = Input::all();
$error = null;
$invoice = Invoice::scope($data['id'])->firstOrFail();
$this->mailer->sendInvoice($invoice);
if($error) {
$response['error'] = "There was an error sending the invoice";
}
else {
$response = json_encode(RESULT_SUCCESS, JSON_PRETTY_PRINT);
}
$headers = Utils::getApiHeaders();
return Response::make($response, $error ? 400 : 200, $headers);
}
public function emailInvoice() public function emailInvoice()
{ {
$data = Input::all(); $data = Input::all();

View File

@ -0,0 +1,88 @@
<?php namespace App\Http\Controllers;
use App\Ninja\Transformers\ProductTransformer;
use Auth;
use Str;
use DB;
use Datatable;
use Utils;
use URL;
use View;
use Input;
use Session;
use Redirect;
use App\Models\Product;
use App\Models\TaxRate;
use App\Services\ProductService;
class ProductApiController extends BaseAPIController
{
protected $productService;
public function __construct(ProductService $productService)
{
parent::__construct();
$this->productService = $productService;
}
public function index()
{
$products = Product::scope()->withTrashed();
$products = $products->paginate();
$paginator = Product::scope()->withTrashed()->paginate();
$transformer = new ProductTransformer(\Auth::user()->account, $this->serializer);
$data = $this->createCollection($products, $transformer, 'products', $paginator);
return $this->response($data);
}
public function getDatatable()
{
return $this->productService->getDatatable(Auth::user()->account_id);
}
public function store()
{
return $this->save();
}
public function update($publicId)
{
return $this->save($publicId);
}
public function destroy($publicId)
{
//stub
}
private function save($productPublicId = false)
{
if ($productPublicId) {
$product = Product::scope($productPublicId)->firstOrFail();
} else {
$product = Product::createNew();
}
$product->product_key = trim(Input::get('product_key'));
$product->notes = trim(Input::get('notes'));
$product->cost = trim(Input::get('cost'));
//$product->default_tax_rate_id = Input::get('default_tax_rate_id');
$product->save();
$transformer = new ProductTransformer(\Auth::user()->account, Input::get('serializer'));
$data = $this->createItem($product, $transformer, 'products');
return $this->response($data);
}
}

View File

@ -7,6 +7,7 @@ class VerifyCsrfToken extends BaseVerifier {
private $openRoutes = [ private $openRoutes = [
'signup/register', 'signup/register',
'api/v1/*',
'api/v1/login', 'api/v1/login',
'api/v1/clients/*', 'api/v1/clients/*',
'api/v1/clients', 'api/v1/clients',

View File

@ -230,7 +230,9 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function()
Route::resource('tasks', 'TaskApiController'); Route::resource('tasks', 'TaskApiController');
Route::post('hooks', 'IntegrationController@subscribe'); Route::post('hooks', 'IntegrationController@subscribe');
Route::post('email_invoice', 'InvoiceApiController@emailInvoice'); Route::post('email_invoice', 'InvoiceApiController@emailInvoice');
Route::post('email_invoicev2', 'InvoiceApiController@emailInvoicev2');
Route::get('user_accounts','AccountApiController@getUserAccounts'); Route::get('user_accounts','AccountApiController@getUserAccounts');
Route::resource('products', 'ProductApiController');
// Vendor // Vendor
Route::resource('vendors', 'VendorApiController'); Route::resource('vendors', 'VendorApiController');

View File

@ -19,6 +19,7 @@ class ContactTransformer extends EntityTransformer
'phone' => $contact->phone, 'phone' => $contact->phone,
'last_login' => $contact->last_login, 'last_login' => $contact->last_login,
'account_key' => $this->account->account_key, 'account_key' => $this->account->account_key,
'send_invoice' => (bool) $contact->send_invoice,
]; ];
} }
} }

View File

@ -401,7 +401,7 @@ return array(
'hide_paid_to_date' => 'Ocultar valor pagado a la fecha', 'hide_paid_to_date' => 'Ocultar valor pagado a la fecha',
'hide_paid_to_date_help' => 'Solo mostrar la opción “Pagado a la fecha” en sus facturas cuando se ha recibido un pago.', 'hide_paid_to_date_help' => 'Solo mostrar la opción “Pagado a la fecha” en sus facturas cuando se ha recibido un pago.',
'charge_taxes' => 'Cargar Impuestos', 'charge_taxes' => 'Cargar Impuestos',
'user_management' => 'Gestión de Usuario', 'user_management' => 'Gestión de Usuarios',
'add_user' => 'Añadir Usuario', 'add_user' => 'Añadir Usuario',
'send_invite' => 'Enviar Invitación', //Context for its use 'send_invite' => 'Enviar Invitación', //Context for its use
'sent_invite' => 'Invitación enviada con éxito', 'sent_invite' => 'Invitación enviada con éxito',
@ -735,7 +735,7 @@ return array(
'invoice_to' => 'Factura para', 'invoice_to' => 'Factura para',
'invoice_no' => 'N.º Factura', 'invoice_no' => 'N.º Factura',
'recent_payments' => 'Pagos recientes', 'recent_payments' => 'Pagos recientes',
'outstanding' => 'Destacado', 'outstanding' => 'Pendiente de Cobro',
'manage_companies' => 'Gestionar compañías', 'manage_companies' => 'Gestionar compañías',
'total_revenue' => 'Ingresos Totales', 'total_revenue' => 'Ingresos Totales',
@ -890,7 +890,7 @@ return array(
'quote_is_approved' => 'Este presupuesto esta aprovado', 'quote_is_approved' => 'Este presupuesto esta aprovado',
'apply_credit' => 'Aplicar Crédito', 'apply_credit' => 'Aplicar Crédito',
'system_settings' => 'Configuraciones de Sistemas', 'system_settings' => 'Configuración del Sistema',
'archive_token' => 'Archivar Token', 'archive_token' => 'Archivar Token',
'archived_token' => 'Token archivado', 'archived_token' => 'Token archivado',
'archive_user' => 'Archivar Usuario', 'archive_user' => 'Archivar Usuario',