mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
bug fixes
This commit is contained in:
parent
5b13f2d8ef
commit
6f9a04ca64
@ -203,9 +203,11 @@ class AccountController extends \BaseController {
|
|||||||
$count = 0;
|
$count = 0;
|
||||||
$hasHeaders = Input::get('header_checkbox');
|
$hasHeaders = Input::get('header_checkbox');
|
||||||
|
|
||||||
$countries = Country::remember(DEFAULT_QUERY_CACHE)->all();
|
$countries = Country::remember(DEFAULT_QUERY_CACHE)->get();
|
||||||
$countryMap = [];
|
$countryMap = [];
|
||||||
foreach ($countries as $country) {
|
|
||||||
|
foreach ($countries as $country)
|
||||||
|
{
|
||||||
$countryMap[strtolower($country->name)] = $country->id;
|
$countryMap[strtolower($country->name)] = $country->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,6 +221,7 @@ class AccountController extends \BaseController {
|
|||||||
|
|
||||||
$client = Client::createNew();
|
$client = Client::createNew();
|
||||||
$contact = Contact::createNew();
|
$contact = Contact::createNew();
|
||||||
|
$contact->is_primary = true;
|
||||||
$count++;
|
$count++;
|
||||||
|
|
||||||
foreach ($row as $index => $value)
|
foreach ($row as $index => $value)
|
||||||
@ -226,56 +229,56 @@ class AccountController extends \BaseController {
|
|||||||
$field = $map[$index];
|
$field = $map[$index];
|
||||||
$value = trim($value);
|
$value = trim($value);
|
||||||
|
|
||||||
if ($field == Client::$fieldName)
|
if ($field == Client::$fieldName && !$client->name)
|
||||||
{
|
{
|
||||||
$client->name = $value;
|
$client->name = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldPhone)
|
else if ($field == Client::$fieldPhone && !$client->work_phone)
|
||||||
{
|
{
|
||||||
$client->work_phone = $value;
|
$client->work_phone = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldAddress1)
|
else if ($field == Client::$fieldAddress1 && !$client->address1)
|
||||||
{
|
{
|
||||||
$client->address1 = $value;
|
$client->address1 = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldAddress2)
|
else if ($field == Client::$fieldAddress2 && !$client->address2)
|
||||||
{
|
{
|
||||||
$client->address2 = $value;
|
$client->address2 = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldCity)
|
else if ($field == Client::$fieldCity && !$client->city)
|
||||||
{
|
{
|
||||||
$client->city = $value;
|
$client->city = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldState)
|
else if ($field == Client::$fieldState && !$client->state)
|
||||||
{
|
{
|
||||||
$client->state = $value;
|
$client->state = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldPostalCode)
|
else if ($field == Client::$fieldPostalCode && !$client->postal_code)
|
||||||
{
|
{
|
||||||
$client->postal_code = $value;
|
$client->postal_code = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldCountry)
|
else if ($field == Client::$fieldCountry && !$client->country_id)
|
||||||
{
|
{
|
||||||
$value = strtolower($value);
|
$value = strtolower($value);
|
||||||
$client->country_id = isset($countryMap[$value]) ? $countryMap[$value] : null;
|
$client->country_id = isset($countryMap[$value]) ? $countryMap[$value] : null;
|
||||||
}
|
}
|
||||||
else if ($field == Client::$fieldNotes)
|
else if ($field == Client::$fieldNotes && !$client->private_notes)
|
||||||
{
|
{
|
||||||
$client->notes = $value;
|
$client->private_notes = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Contact::$fieldFirstName)
|
else if ($field == Contact::$fieldFirstName && !$contact->first_name)
|
||||||
{
|
{
|
||||||
$contact->first_name = $value;
|
$contact->first_name = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Contact::$fieldLastName)
|
else if ($field == Contact::$fieldLastName && !$contact->last_name)
|
||||||
{
|
{
|
||||||
$contact->last_name = $value;
|
$contact->last_name = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Contact::$fieldPhone)
|
else if ($field == Contact::$fieldPhone && !$contact->phone)
|
||||||
{
|
{
|
||||||
$contact->phone = $value;
|
$contact->phone = $value;
|
||||||
}
|
}
|
||||||
else if ($field == Contact::$fieldEmail)
|
else if ($field == Contact::$fieldEmail && !$contact->email)
|
||||||
{
|
{
|
||||||
$contact->email = $value;
|
$contact->email = $value;
|
||||||
}
|
}
|
||||||
@ -347,10 +350,10 @@ class AccountController extends \BaseController {
|
|||||||
'mobile' => Contact::$fieldPhone,
|
'mobile' => Contact::$fieldPhone,
|
||||||
'phone' => Client::$fieldPhone,
|
'phone' => Client::$fieldPhone,
|
||||||
'name|organization' => Client::$fieldName,
|
'name|organization' => Client::$fieldName,
|
||||||
'address|address1' => Client::$fieldAddress1,
|
'street|address|address1' => Client::$fieldAddress1,
|
||||||
'address2' => Client::$fieldAddress2,
|
'street2|address2' => Client::$fieldAddress2,
|
||||||
'city' => Client::$fieldCity,
|
'city' => Client::$fieldCity,
|
||||||
'state' => Client::$fieldState,
|
'state|province' => Client::$fieldState,
|
||||||
'zip|postal|code' => Client::$fieldPostalCode,
|
'zip|postal|code' => Client::$fieldPostalCode,
|
||||||
'country' => Client::$fieldCountry,
|
'country' => Client::$fieldCountry,
|
||||||
'note' => Client::$fieldNotes,
|
'note' => Client::$fieldNotes,
|
||||||
@ -360,6 +363,11 @@ class AccountController extends \BaseController {
|
|||||||
{
|
{
|
||||||
foreach(explode("|", $search) as $string)
|
foreach(explode("|", $search) as $string)
|
||||||
{
|
{
|
||||||
|
if (strpos($title, 'sec') === 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (strpos($title, $string) !== false)
|
if (strpos($title, $string) !== false)
|
||||||
{
|
{
|
||||||
$mapped[$i] = $column;
|
$mapped[$i] = $column;
|
||||||
|
@ -55,8 +55,10 @@ Route::get('/send_emails', function() {
|
|||||||
});
|
});
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//Route::get('/', 'HomeController@showComingSoon');
|
Route::get('/', function() {
|
||||||
Route::get('/', 'HomeController@showWelcome');
|
return Redirect::to('http://signup.invoiceninja.com');
|
||||||
|
});
|
||||||
|
|
||||||
Route::get('/rocksteady', 'HomeController@showWelcome');
|
Route::get('/rocksteady', 'HomeController@showWelcome');
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
{{ Former::open($url)->method($method)->addClass('main_form')->rules(array(
|
{{ Former::open($url)->method($method)->addClass('main_form')->rules(array(
|
||||||
'client' => 'required',
|
'client' => 'required',
|
||||||
'email' => 'required',
|
'email' => 'required',
|
||||||
'product_key' => 'max:14',
|
'product_key' => 'max:20',
|
||||||
)); }}
|
)); }}
|
||||||
|
|
||||||
<div data-bind="with: invoice">
|
<div data-bind="with: invoice">
|
||||||
@ -47,7 +47,7 @@
|
|||||||
<div class="col-lg-8 col-lg-offset-4">
|
<div class="col-lg-8 col-lg-offset-4">
|
||||||
<label for="test" class="checkbox" data-bind="attr: {for: $index() + '_check'}">
|
<label for="test" class="checkbox" data-bind="attr: {for: $index() + '_check'}">
|
||||||
<input type="checkbox" value="1" data-bind="checked: send_invoice, attr: {id: $index() + '_check'}">
|
<input type="checkbox" value="1" data-bind="checked: send_invoice, attr: {id: $index() + '_check'}">
|
||||||
<span data-bind="text: email.display"/>
|
<span data-bind="html: email.display"/>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -80,7 +80,7 @@
|
|||||||
<div class="col-md-3" id="col_2">
|
<div class="col-md-3" id="col_2">
|
||||||
{{ Former::text('invoice_number')->label('Invoice #')->data_bind("value: invoice_number, valueUpdate: 'afterkeydown'") }}
|
{{ Former::text('invoice_number')->label('Invoice #')->data_bind("value: invoice_number, valueUpdate: 'afterkeydown'") }}
|
||||||
{{ Former::text('po_number')->label('PO #')->data_bind("value: po_number, valueUpdate: 'afterkeydown'") }}
|
{{ Former::text('po_number')->label('PO #')->data_bind("value: po_number, valueUpdate: 'afterkeydown'") }}
|
||||||
{{ Former::text('discount')->data_bind("value: discount, valueUpdate: 'afterkeydown'") }}
|
{{ Former::text('discount')->data_bind("value: discount, valueUpdate: 'afterkeydown'")->append('%') }}
|
||||||
{{-- Former::select('currency_id')->label('Currency')->addOption('', '')->fromQuery($currencies, 'name', 'id')->data_bind("value: currency_id") --}}
|
{{-- Former::select('currency_id')->label('Currency')->addOption('', '')->fromQuery($currencies, 'name', 'id')->data_bind("value: currency_id") --}}
|
||||||
|
|
||||||
<div class="form-group" style="margin-bottom: 8px">
|
<div class="form-group" style="margin-bottom: 8px">
|
||||||
@ -115,7 +115,7 @@
|
|||||||
<td style="min-width:20px;" class="hide-border td-icon">
|
<td style="min-width:20px;" class="hide-border td-icon">
|
||||||
<i data-bind="visible: actionsVisible() && $parent.invoice_items().length > 1" class="fa fa-sort"></i>
|
<i data-bind="visible: actionsVisible() && $parent.invoice_items().length > 1" class="fa fa-sort"></i>
|
||||||
</td>
|
</td>
|
||||||
<td style="min-width:120px">
|
<td style="min-width:160px">
|
||||||
{{ Former::text('product_key')->useDatalist(Product::getProductKeys($products), 'key')->onkeyup('onItemChange()')
|
{{ Former::text('product_key')->useDatalist(Product::getProductKeys($products), 'key')->onkeyup('onItemChange()')
|
||||||
->raw()->data_bind("value: product_key, valueUpdate: 'afterkeydown'")->addClass('datalist') }}
|
->raw()->data_bind("value: product_key, valueUpdate: 'afterkeydown'")->addClass('datalist') }}
|
||||||
</td>
|
</td>
|
||||||
@ -1208,7 +1208,7 @@
|
|||||||
self.email.display = ko.computed(function() {
|
self.email.display = ko.computed(function() {
|
||||||
var str = '';
|
var str = '';
|
||||||
if (self.first_name() || self.last_name()) {
|
if (self.first_name() || self.last_name()) {
|
||||||
str += self.first_name() + ' ' + self.last_name() + ' - ';
|
str += self.first_name() + ' ' + self.last_name() + '<br/>';
|
||||||
}
|
}
|
||||||
return str + self.email();
|
return str + self.email();
|
||||||
});
|
});
|
||||||
|
@ -15,23 +15,23 @@ function generatePDF(invoice, checkMath) {
|
|||||||
var invoiceDate = invoice.invoice_date ? invoice.invoice_date : '';
|
var invoiceDate = invoice.invoice_date ? invoice.invoice_date : '';
|
||||||
var dueDate = invoice.due_date ? invoice.due_date : '';
|
var dueDate = invoice.due_date ? invoice.due_date : '';
|
||||||
|
|
||||||
var marginLeft = 60;
|
var marginLeft = 50;
|
||||||
var accountTop = 30;
|
var accountTop = 30;
|
||||||
var headerTop = 140;
|
var headerTop = 140;
|
||||||
var headerLeft = 360;
|
var headerLeft = 360;
|
||||||
var headerRight = 540;
|
var headerRight = 550;
|
||||||
var rowHeight = 15;
|
var rowHeight = 15;
|
||||||
var tableRowHeight = 20;
|
var tableRowHeight = 20;
|
||||||
var footerLeft = 420;
|
var footerLeft = 420;
|
||||||
var tablePadding = 6;
|
var tablePadding = 6;
|
||||||
|
|
||||||
var tableTop = 240;
|
var tableTop = 240;
|
||||||
var tableLeft = 60;
|
var tableLeft = 50;
|
||||||
var descriptionLeft = 150;
|
var descriptionLeft = 162;
|
||||||
var unitCostRight = 400;
|
var unitCostRight = 410;
|
||||||
var qtyRight = 470;
|
var qtyRight = 480;
|
||||||
var taxRight = 470;
|
var taxRight = 480;
|
||||||
var lineTotalRight = 540;
|
var lineTotalRight = 550;
|
||||||
|
|
||||||
|
|
||||||
var hasTaxes = false;
|
var hasTaxes = false;
|
||||||
@ -297,7 +297,13 @@ function generatePDF(invoice, checkMath) {
|
|||||||
console.log('%s %s %s', lineTotalRight, tableLeft, (lineTotalRight-tableLeft));
|
console.log('%s %s %s', lineTotalRight, tableLeft, (lineTotalRight-tableLeft));
|
||||||
|
|
||||||
doc.text(tableLeft, x+16, invoice.public_notes);
|
doc.text(tableLeft, x+16, invoice.public_notes);
|
||||||
doc.text(tableLeft, x+16 + (doc.splitTextToSize(invoice.public_notes, 340).length * rowHeight) + (rowHeight/2), invoice.terms);
|
if (invoice.terms) {
|
||||||
|
var termsX = x+16 + (doc.splitTextToSize(invoice.public_notes, 340).length * rowHeight) + (rowHeight/2);
|
||||||
|
doc.setFontType("bold");
|
||||||
|
doc.text(tableLeft, termsX, "Terms");
|
||||||
|
doc.setFontType("normal");
|
||||||
|
doc.text(tableLeft, termsX + rowHeight, invoice.terms);
|
||||||
|
}
|
||||||
|
|
||||||
x += 16;
|
x += 16;
|
||||||
doc.text(footerLeft, x, 'Subtotal');
|
doc.text(footerLeft, x, 'Subtotal');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user