Commit 934c04cf by Francisco Salazar

Merge branch 'master' of bunkrbit.com:bsabbath/onestartup-shop

parents c0ef4387 5349220b
...@@ -12,6 +12,8 @@ use Onestartup\Shop\Model\ProductShop as Product; ...@@ -12,6 +12,8 @@ use Onestartup\Shop\Model\ProductShop as Product;
use Onestartup\Shop\Model\ExtraField as Extra; use Onestartup\Shop\Model\ExtraField as Extra;
use Onestartup\Shop\Model\ProductShopInfo as ProductInfo; use Onestartup\Shop\Model\ProductShopInfo as ProductInfo;
use Onestartup\Shop\Model\CategoriaSat; use Onestartup\Shop\Model\CategoriaSat;
use Onestartup\Shop\Model\Billing;
use Onestartup\Shop\Model\VariableExtra as Variable;
use Onestartup\Shop\DataTables\ClientDataTable; use Onestartup\Shop\DataTables\ClientDataTable;
use Onestartup\Shop\DataTables\OrderDataTable; use Onestartup\Shop\DataTables\OrderDataTable;
...@@ -19,6 +21,7 @@ use Onestartup\Shop\DataTables\StockDataTable; ...@@ -19,6 +21,7 @@ use Onestartup\Shop\DataTables\StockDataTable;
use Onestartup\Shop\Model\SaleShop as Sale; use Onestartup\Shop\Model\SaleShop as Sale;
use Onestartup\Shop\Model\OrderTracking as Tracking; use Onestartup\Shop\Model\OrderTracking as Tracking;
use Onestartup\Shop\Model\ConfiguracionFactura as Config;
use Onestartup\Shop\Libs\Util; use Onestartup\Shop\Libs\Util;
use Onestartup\Shop\Requests\RequestProduct; use Onestartup\Shop\Requests\RequestProduct;
...@@ -298,6 +301,9 @@ class AdminProductController extends Controller ...@@ -298,6 +301,9 @@ class AdminProductController extends Controller
$promo = null; $promo = null;
$shipping = null; $shipping = null;
$shipping_price = null; $shipping_price = null;
$var = Variable::first();
$variable = $var != null ? $var : new Variable();
if ($sale->coupon != null) { if ($sale->coupon != null) {
$promo = $this->util->getDiscount($sale, $sale->coupon); $promo = $this->util->getDiscount($sale, $sale->coupon);
...@@ -331,13 +337,14 @@ class AdminProductController extends Controller ...@@ -331,13 +337,14 @@ class AdminProductController extends Controller
} }
return view('shop::clients.orden') return view('shop::clients.orden')
->with('sale', $sale) ->with('sale', $sale)
->with('client', $client) ->with('client', $client)
->with('orden', $orden) ->with('orden', $orden)
->with('estado', $estado) ->with('estado', $estado)
->with('promo', $promo) ->with('promo', $promo)
->with('shipping_price', $shipping_price) ->with('shipping_price', $shipping_price)
->with('shipping', $shipping); ->with('variable', $variable)
->with('shipping', $shipping);
} }
public function updateShipping(Request $request, $id) public function updateShipping(Request $request, $id)
...@@ -456,4 +463,235 @@ class AdminProductController extends Controller ...@@ -456,4 +463,235 @@ class AdminProductController extends Controller
} }
public function facturar(Request $request, $sale_id)
{
$sale = Sale::find($sale_id);
$billing = $sale->billing;
$products = $sale->products;
$conceptos = [];
$util = new Util();
$config = Config::first();
$emisor = \FacturaDigital::emisor()
->setRegimenFiscal($config->regimen_fiscal)
->getData();
$receptor = \FacturaDigital::receptor()
->setRfc($billing->rfc)
->setNombre($billing->razon)
->setUsoCFDI($billing->uso_cfdi)
->setCalle($billing->calle != null ? $billing->calle : '')
->setNoExt($billing->numero != null ? $billing->numero : '')
->setColonia($billing->colonia != null ? $billing->colonia : '')
->setMunicipio($billing->ciudad != null ? $billing->ciudad : '')
->setEstado($billing->estado != null ? $billing->estado : '')
->setPais('Mexico')
->setCodigoPostal($billing->cp != null ? $billing->cp : '')
->getData();
foreach ($products as $product) {
$concepto = \FacturaDigital::concepto()
->setClaveProdServ($product->categoria_sat->clave_producto)
->setNoIdentificacion($product->id)
->setCantidad($product->pivot->quantity)
->setClaveUnidad($product->categoria_sat->clave_unidad)
->setUnidad($product->categoria_sat->unidad)
->setDescripcion($product->name)
->setValorUnitario($product->infoSale->sale_price)
->getData();
array_push($conceptos, $concepto);
}
if ($sale->home_delivery) {
$envio = $sale->client->shipping->shipping_price;
$concepto = \FacturaDigital::concepto()
->setClaveProdServ('78102203')
->setNoIdentificacion(1000)
->setCantidad(1)
->setClaveUnidad('E48')
->setUnidad('Unidad de Servicio')
->setDescripcion($envio->name)
->setValorUnitario($envio->cost)
->getData();
array_push($conceptos, $concepto);
}
$lista = \FacturaDigital::listaConceptos();
$lista->setConceptos($conceptos);
$totales = $lista->getTotalConceptos();
$descuento = null;
$descuento_aux = 0;
if($sale->coupon != null) {
$data_discount = $util->getDiscount($sale, $sale->coupon);
$descuento = $data_discount['amount_unformated'];
$descuento_aux = $data_discount['amount_unformated'];
}
$factura = \FacturaDigital::setSerie('F')
->setFolio($sale->id)
->setFecha('AUTO')
->setFormaPago($billing->forma_pago)
->setCondicionesDePago('Pago de contado')
->setMoneda('MXN')
->setTipoCambio('1')
->setTipoDeComprobante('I')
->setMetodoPago('PUE')
->setLugarExpedicion($config->lugar_expedicion) //C.P.
->setLeyendaFolio('Folio')
->setSubTotal($totales['totalConceptos'])
->setDescuento($descuento)
->setTotal($totales['totalConceptos'] + $totales['totalImpuestos'] - $descuento_aux );
$impuesto = \FacturaDigital::impuesto()
->getData($totales['totalImpuestos']);
$factura->setEmisor($emisor);
$factura->setReceptor($receptor);
$factura->setConceptos($lista->getData());
$factura->setImpuestos($impuesto);
//return $factura->getData();
$factura_final = $factura->enviar();
if ($factura_final['codigo'] == 200) {
$billing->uuid=$factura_final['cfdi']['UUID'];
$billing->pdf=$factura_final['cfdi']['PDF'];
$billing->xml=$factura_final['cfdi']['XML'];
$billing->status = 1;
$billing->save();
$enviar = $factura->enviarCorreo($factura_final['cfdi']['UUID'], $billing->correo, '');
if ($enviar) {
return redirect()->back()->with('message_success', "Factura enviada por correo");
} else {
return redirect()->back()->with('message_warning', "No se pudo enviar la factura");
}
} else {
return redirect()->back()->with('message_danger', $factura_final['mensaje'].' ó Verifica que los datos del cliente sean correctos');
}
}
public function facturaEnviar(Request $request, $billing_id) {
$billing = Billing::find($billing_id);
$enviar = \FacturaDigital::enviarCorreo($billing->uuid, $billing->correo, '');
if ($enviar) {
return redirect()->back()->with('message_success', "Factura enviada por correo");
} else {
return redirect()->back()->with('message_warning', "No se pudo enviar la factura");
}
}
public function facturaCancelar(Request $request, $billing_id) {
$billing = Billing::find($billing_id);
$cancela = \FacturaDigital::cancelarCFDI($billing->uuid);
if ($cancela['codigo'] != 200) {
$billing->status = 2;
$billing->save();
return redirect()->back()->with('message_warning', $cancela['mensaje']);
} else {
return redirect()->back()->with('message_danger', $cancela['mensaje']);
}
}
public function showConfigs() {
$config = Config::first();
$regimen = [
'603' => 'Personas Morales con Fines no Lucrativos',
'605' => 'Sueldos y Salarios e Ingresos Asimilados a Salarios',
'606' => 'Arrendamiento',
'608' => 'Demás ingresos',
'609' => 'Consolidación',
'610' => 'Residentes en el Extranjero sin Establecimiento Permanente en México',
'611' => 'Ingresos por Dividendos (socios y accionistas)',
'612' => 'Personas Físicas con Actividades Empresariales y Profesionales',
'614' => 'Ingresos por intereses',
'616' => 'Sin obligaciones fiscales',
'620' => 'Sociedades Cooperativas de Producción que optan por diferir sus ingresos',
'621' => 'Incorporación Fiscal',
'622' => 'Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras',
'623' => 'Opcional para Grupos de Sociedades',
'624' => 'Coordinados',
'628' => 'Hidrocarburos',
'607' => 'Régimen de Enajenación o Adquisición de Bienes',
'629' => 'De los Regímenes Fiscales Preferentes y de las Empresas Multinacionales',
'630' => 'Enajenación de acciones en bolsa de valores',
'615' => 'Régimen de los ingresos por obtención de premios'
];
if ($config == null) {
$config = new Config();
}
return view('shop::config_factura.edit')
->with('config', $config)
->with('regimen', $regimen);
}
public function postConfigs(Request $request) {
$config = Config::first();
if ($config == null) {
$config = new Config();
}
$config->fill($request->all());
$config->save();
return redirect()
->back()
->with('message_success', 'Información actualizada');
}
public function showVars()
{
$variable = Variable::first();
if ($variable == null) {
$variable = new Variable();
}
return view('shop::variable.edit')
->with('variable', $variable);
}
public function postVars(Request $request)
{
$variable = Variable::first();
if ($variable == null) {
$variable = new Variable();
}
$variable->fill($request->all());
$variable->save();
return redirect()
->back()
->with('message_success', 'Información actualizada');
}
} }
...@@ -37,6 +37,8 @@ use PayPal\Api\ItemList; ...@@ -37,6 +37,8 @@ use PayPal\Api\ItemList;
use PayPal\Api\Details; use PayPal\Api\Details;
use Onestartup\Shop\Libs\Util; use Onestartup\Shop\Libs\Util;
use Onestartup\Shop\Model\VariableExtra as Variable;
use Onestartup\Shop\Model\ExtraSaleInfo;
class CartController extends Controller class CartController extends Controller
...@@ -251,6 +253,13 @@ public function shipping() ...@@ -251,6 +253,13 @@ public function shipping()
$sale->save(); $sale->save();
} }
if ($request->additional) {
$additional = new ExtraSaleInfo($request->all());
$sale->info_extra()->save($additional);
}
\Session::put('sale', $sale); \Session::put('sale', $sale);
\Session::put('client', $client); \Session::put('client', $client);
...@@ -993,6 +1002,14 @@ public function facturacion($order_id) ...@@ -993,6 +1002,14 @@ public function facturacion($order_id)
\DB::raw("CONCAT(descripcion,' - Persona Física ',fisica, ', Persona Moral ', moral) AS resumen"),'clave_uso') \DB::raw("CONCAT(descripcion,' - Persona Física ',fisica, ', Persona Moral ', moral) AS resumen"),'clave_uso')
->pluck('resumen', 'clave_uso'); ->pluck('resumen', 'clave_uso');
$forma_pago = [
'01' => 'Efectivo',
'02' => 'Cheque Nominativo',
'03' => 'Transferencia electrónica',
'04' => 'Tarjeta de crédito',
'28' => 'Tarjeta de débito'
];
if ($order->billing()->count() > 0 ) { if ($order->billing()->count() > 0 ) {
$billing = $order->billing;; $billing = $order->billing;;
...@@ -1009,6 +1026,7 @@ public function facturacion($order_id) ...@@ -1009,6 +1026,7 @@ public function facturacion($order_id)
->with('products', $products) ->with('products', $products)
->with('total', 0) ->with('total', 0)
->with('uso_cfdi', $uso_cfdi) ->with('uso_cfdi', $uso_cfdi)
->with('forma_pago', $forma_pago)
->with('addres', $addres); ->with('addres', $addres);
...@@ -1020,9 +1038,13 @@ public function facturacionStore(Request $request, $order_id) ...@@ -1020,9 +1038,13 @@ public function facturacionStore(Request $request, $order_id)
$order = Sale::find($id_decript); $order = Sale::find($id_decript);
$billing = null; $billing = null;
if ($order->billing()->count() <= 0 ) { if ($order->billing()->count() < 1 ) {
$billing = new Billing($request->all()); $billing = new Billing($request->all());
$order->billing()->save($billing); $order->billing()->save($billing);
} else {
$billing = $order->billing;
$billing->fill($request->all());
$billing->save();
} }
......
...@@ -24,6 +24,8 @@ class OrderDataTable extends DataTable ...@@ -24,6 +24,8 @@ class OrderDataTable extends DataTable
->addColumn('orden', function(Sale $sale) { ->addColumn('orden', function(Sale $sale) {
$estado = ""; $estado = "";
$html = ""; $html = "";
$facturacion = $sale->facturacion != null ? $sale->facturacion : 'N/A';
$enviar_factura = "<br><b><span class='label warning'>Datos no proporcionados aún</span></b>";
if ($sale->status == 0) { if ($sale->status == 0) {
$estado = "<span class='label danger'>Cancelado</span>"; $estado = "<span class='label danger'>Cancelado</span>";
} }
...@@ -47,6 +49,24 @@ class OrderDataTable extends DataTable ...@@ -47,6 +49,24 @@ class OrderDataTable extends DataTable
} else { } else {
$html = "Estado: <b>$estado</b><br>Tipo: <b>$sale->payment_type</b> <br>Transaccion:<br><b>$sale->transaction_id</b><br>Envio: <b>Recojer en la tienda</b>"; $html = "Estado: <b>$estado</b><br>Tipo: <b>$sale->payment_type</b> <br>Transaccion:<br><b>$sale->transaction_id</b><br>Envio: <b>Recojer en la tienda</b>";
} }
$html = $html."<br>Requiere factura: <b><span class='label info'>".$facturacion."</span></b>";
if ($facturacion == "Si") {
if ($sale->billing()->count() > 0) {
$billing = $sale->billing;
$enviar_factura = "<br><b><span class='label warning'>Factura pendiente</span></b>";
if ($billing->status == 1 ) {
$enviar_factura = "<br><b><span class='label success'>Factura enviada</span></b>";
}
if ($billing->status == 2 ) {
$enviar_factura = "<br><b><span class='label danger'>Factura cancelada</span></b>";
}
}
$html = $html.$enviar_factura;
}
return $html; return $html;
}) })
...@@ -65,7 +85,7 @@ class OrderDataTable extends DataTable ...@@ -65,7 +85,7 @@ class OrderDataTable extends DataTable
*/ */
public function query(Sale $model) public function query(Sale $model)
{ {
return $model->select(['id', 'client_id', 'status', 'payment_type','transaction_id', 'total', 'created_at'])->where('status', '!=', 0)->orderBy('id', 'desc'); return $model->select(['id', 'client_id', 'status', 'payment_type','transaction_id', 'total', 'facturacion','created_at'])->where('status', '!=', 0)->orderBy('id', 'desc');
} }
/** /**
......
...@@ -19,12 +19,12 @@ class CreateBillingsTable extends Migration ...@@ -19,12 +19,12 @@ class CreateBillingsTable extends Migration
$table->string('razon'); $table->string('razon');
$table->string('rfc'); $table->string('rfc');
$table->string('correo'); $table->string('correo');
$table->string('cp'); $table->string('cp')->nullable();
$table->string('calle'); $table->string('calle')->nullable();
$table->string('numero'); $table->string('numero')->nullable();
$table->string('colonia'); $table->string('colonia')->nullable();
$table->string('ciudad'); $table->string('ciudad')->nullable();
$table->string('estado'); $table->string('estado')->nullable();
$table->tinyInteger('status')->default(0); $table->tinyInteger('status')->default(0);
$table->integer('sale_id')->unsigned(); $table->integer('sale_id')->unsigned();
......
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddFormaPagoToBillingTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('billings', function (Blueprint $table) {
$table->string('forma_pago');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('billings', function (Blueprint $table) {
$table->dropColumn('forma_pago');
});
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateConfiguracionFacturasTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('configuracion_facturas', function (Blueprint $table) {
$table->increments('id');
$table->string('regimen_fiscal');
$table->string('lugar_expedicion');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('configuracion_facturas');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateExtraSaleInfosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('extra_sale_infos', function (Blueprint $table) {
$table->increments('id');
$table->string('extra1', 455)->nullable();
$table->string('extra2', 455)->nullable();
$table->string('extra3', 455)->nullable();
$table->string('extra4', 455)->nullable();
$table->string('extra5', 455)->nullable();
$table->string('extra6', 455)->nullable();
$table->string('extra7', 455)->nullable();
$table->string('extra8', 455)->nullable();
$table->string('extra9', 455)->nullable();
$table->string('extra10', 455)->nullable();
$table->integer('sale_id')->unsigned();
$table->foreign('sale_id')->references('id')->on('sale_shops');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('extra_sale_infos');
}
}
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateVariableExtrasTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('variable_extras', function (Blueprint $table) {
$table->increments('id');
$table->string('alias1', 455)->nullable();
$table->string('alias2', 455)->nullable();
$table->string('alias3', 455)->nullable();
$table->string('alias4', 455)->nullable();
$table->string('alias5', 455)->nullable();
$table->string('alias6', 455)->nullable();
$table->string('alias7', 455)->nullable();
$table->string('alias8', 455)->nullable();
$table->string('alias9', 455)->nullable();
$table->string('alias10', 455)->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('variable_extras');
}
}
...@@ -22,7 +22,8 @@ class Billing extends Model ...@@ -22,7 +22,8 @@ class Billing extends Model
'folio', 'folio',
'uuid', 'uuid',
'pdf', 'pdf',
'xml' 'xml',
'forma_pago'
]; ];
public function sale() public function sale()
......
<?php
namespace Onestartup\Shop\Model;
use Illuminate\Database\Eloquent\Model;
class ConfiguracionFactura extends Model
{
protected $table = 'configuracion_facturas';
protected $fillable = [
'regimen_fiscal',
'lugar_expedicion'
];
}
<?php
namespace Onestartup\Shop\Model;
use Illuminate\Database\Eloquent\Model;
class ExtraSaleInfo extends Model
{
protected $table = 'extra_sale_infos';
protected $fillable = [
'extra1',
'extra2',
'extra3',
'extra4',
'extra5',
'extra6',
'extra7',
'extra8',
'extra9',
'extra10',
'sale_id'
];
public function sale()
{
return $this->belongsTo(SaleShop::class, 'sale_id');
}
}
...@@ -50,4 +50,9 @@ class SaleShop extends Model ...@@ -50,4 +50,9 @@ class SaleShop extends Model
return $this->hasOne('Onestartup\Shop\Model\Billing', 'sale_id'); return $this->hasOne('Onestartup\Shop\Model\Billing', 'sale_id');
} }
public function info_extra()
{
return $this->hasOne(ExtraSaleInfo::class, 'sale_id');
}
} }
<?php
namespace Onestartup\Shop\Model;
use Illuminate\Database\Eloquent\Model;
class VariableExtra extends Model
{
protected $table = 'variable_extras';
protected $fillable = [
'alias1',
'alias2',
'alias3',
'alias4',
'alias5',
'alias6',
'alias7',
'alias8',
'alias9',
'alias10',
'alias11'
];
}
...@@ -11,6 +11,7 @@ use Onestartup\Shop\Model\SaleShop as Order; ...@@ -11,6 +11,7 @@ use Onestartup\Shop\Model\SaleShop as Order;
use Onestartup\Shop\Model\ClientShop as Client; use Onestartup\Shop\Model\ClientShop as Client;
use Onestartup\Shop\Model\ShippingAddres as Shipping; use Onestartup\Shop\Model\ShippingAddres as Shipping;
use Onestartup\Shop\Libs\Util; use Onestartup\Shop\Libs\Util;
use Onestartup\Shop\Model\VariableExtra as Variable;
class ResumenOrder extends Notification class ResumenOrder extends Notification
{ {
...@@ -21,6 +22,8 @@ class ResumenOrder extends Notification ...@@ -21,6 +22,8 @@ class ResumenOrder extends Notification
protected $client; protected $client;
protected $shipping; protected $shipping;
protected $promo = null; protected $promo = null;
protected $additional = null;
protected $variable = null;
...@@ -36,6 +39,9 @@ class ResumenOrder extends Notification ...@@ -36,6 +39,9 @@ class ResumenOrder extends Notification
$this->shipping = $shipping; $this->shipping = $shipping;
$this->client = $client; $this->client = $client;
$this->additional = $order->info_extra;
$this->variable = Variable::first();
if ($this->order->coupon != null) { if ($this->order->coupon != null) {
$util = new Util(); $util = new Util();
$this->promo = $util->getDiscount($order, $order->coupon); $this->promo = $util->getDiscount($order, $order->coupon);
...@@ -68,7 +74,9 @@ class ResumenOrder extends Notification ...@@ -68,7 +74,9 @@ class ResumenOrder extends Notification
'products' => $this->products, 'products' => $this->products,
'client' => $this->client, 'client' => $this->client,
'shipping' => $this->shipping, 'shipping' => $this->shipping,
'promo' => $this->promo 'promo' => $this->promo,
'additional' => $this->additional,
'variable' => $this->variable
]); ]);
} }
......
...@@ -11,6 +11,18 @@ Route::group(['middleware' => ['web', 'auth', 'is_admin']], function(){ ...@@ -11,6 +11,18 @@ Route::group(['middleware' => ['web', 'auth', 'is_admin']], function(){
Route::resource('admin/shop/shipping', 'Onestartup\Shop\Controller\ShippingPriceController', ['as'=>'admin.shop']); Route::resource('admin/shop/shipping', 'Onestartup\Shop\Controller\ShippingPriceController', ['as'=>'admin.shop']);
Route::put('admin/shop/facturar/{sale_id}',
'Onestartup\Shop\Controller\AdminProductController@facturar')
->name('admin.shop.facturar');
Route::put('admin/shop/facturaCancelar/{billing_id}',
'Onestartup\Shop\Controller\AdminProductController@facturaCancelar')
->name('admin.shop.facturaCancelar');
Route::put('admin/shop/facturaEnviar/{billing_id}',
'Onestartup\Shop\Controller\AdminProductController@facturaEnviar')
->name('admin.shop.facturaEnviar');
Route::delete('admin-shop-category/delete/cover{id}', Route::delete('admin-shop-category/delete/cover{id}',
'Onestartup\Shop\Controller\CategoryController@deleteCover') 'Onestartup\Shop\Controller\CategoryController@deleteCover')
->name('admin-shop-category.delete.cover'); ->name('admin-shop-category.delete.cover');
...@@ -83,6 +95,20 @@ Route::group(['middleware' => ['web', 'auth', 'is_admin']], function(){ ...@@ -83,6 +95,20 @@ Route::group(['middleware' => ['web', 'auth', 'is_admin']], function(){
'Onestartup\Shop\Controller\CategorySatController@apiClaveProd') 'Onestartup\Shop\Controller\CategorySatController@apiClaveProd')
->name('admin-shop-client.apiClaveProd'); ->name('admin-shop-client.apiClaveProd');
Route::get('admin/shop/config_factura',
'Onestartup\Shop\Controller\AdminProductController@showConfigs')
->name('admin.shop.config_factura');
Route::post('admin/shop/config_factura',
'Onestartup\Shop\Controller\AdminProductController@postConfigs')
->name('admin.shop.config_factura.store');
Route::get('admin/shop/variable', 'Onestartup\Shop\Controller\AdminProductController@showVars')
->name('admin.shop.variable');
Route::post('admin/shop/variable', 'Onestartup\Shop\Controller\AdminProductController@postVars')
->name('admin.shop.variable.store');
}); });
......
@extends('crm-admin::main-layout') @extends('crm-admin::main-layout')
@section('breadcrumb') @section('breadcrumb')
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a href="{{route('home')}}">Home</a> <a href="{{route('home')}}">Home</a>
</li> </li>
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a href="{{route('admin-shop-client.orders')}}">Tienda</a> <a href="{{route('admin-shop-client.orders')}}">Tienda</a>
</li> </li>
<li class="breadcrumb-item active"> <li class="breadcrumb-item active">
Detalle orden #{{$sale->id}} Detalle orden #{{$sale->id}}
</li> </li>
@endsection @endsection
@section('content') @section('content')
...@@ -37,6 +37,13 @@ setlocale(LC_MONETARY, 'en_US'); ...@@ -37,6 +37,13 @@ setlocale(LC_MONETARY, 'en_US');
<h6>Envio y factura</h6> <h6>Envio y factura</h6>
</a> </a>
</li> </li>
@if($variable->count() > 0)
<li class="nav-item">
<a class="nav-link block" href="" data-toggle="tab" data-target="#tab-4">
<h6>Detalles adicionales</h6>
</a>
</li>
@endif
</ul> </ul>
</div> </div>
...@@ -157,12 +164,12 @@ setlocale(LC_MONETARY, 'en_US'); ...@@ -157,12 +164,12 @@ setlocale(LC_MONETARY, 'en_US');
</tr> </tr>
@endforeach @endforeach
@if($sale->coupon != null) @if($sale->coupon != null)
<tr> <tr>
<td>1</td> <td>1</td>
<td>Descuento {{$sale->coupon}}</td> <td>Descuento {{$sale->coupon}}</td>
<td> - {{$promo['amount']}}</td> <td> - {{$promo['amount']}}</td>
<td> - {{$promo['amount']}}</td> <td> - {{$promo['amount']}}</td>
</tr> </tr>
@endif @endif
@if($shipping_price != null) @if($shipping_price != null)
<tr> <tr>
...@@ -184,17 +191,17 @@ setlocale(LC_MONETARY, 'en_US'); ...@@ -184,17 +191,17 @@ setlocale(LC_MONETARY, 'en_US');
</table> </table>
@if($sale->status == 2) @if($sale->status == 2)
@if($sale->payment_type == 'Tarjeta') @if($sale->payment_type == 'Tarjeta')
{!! Form::model($sale,['route'=> ['admin-shop-client.refund', $sale->id],"method"=>"PUT", "onsubmit"=>"if(!confirm('¿Estas seguro de devolver el dinero?')){return false;}"]) !!} {!! Form::model($sale,['route'=> ['admin-shop-client.refund', $sale->id],"method"=>"PUT", "onsubmit"=>"if(!confirm('¿Estas seguro de devolver el dinero?')){return false;}"]) !!}
{!! Form::submit('Reembolsar efectivo a tarjeta', ['class'=>'btn btn-warning']) !!} {!! Form::submit('Reembolsar efectivo a tarjeta', ['class'=>'btn btn-warning']) !!}
{!! Form::close() !!} {!! Form::close() !!}
@endif @endif
@if($sale->payment_type == 'Pay Pal') @if($sale->payment_type == 'Pay Pal')
{!! Form::model($sale,['route'=> ['admin-shop-client.refundPaypal', $sale->id],"method"=>"PUT", "onsubmit"=>"if(!confirm('¿Estas seguro de devolver el dinero?')){return false;}"]) !!} {!! Form::model($sale,['route'=> ['admin-shop-client.refundPaypal', $sale->id],"method"=>"PUT", "onsubmit"=>"if(!confirm('¿Estas seguro de devolver el dinero?')){return false;}"]) !!}
{!! Form::submit('Reembolsar efectivo a cuenta de paypal', ['class'=>'btn btn-warning']) !!} {!! Form::submit('Reembolsar efectivo a cuenta de paypal', ['class'=>'btn btn-warning']) !!}
{!! Form::close() !!} {!! Form::close() !!}
@endif @endif
@endif @endif
...@@ -215,63 +222,211 @@ setlocale(LC_MONETARY, 'en_US'); ...@@ -215,63 +222,211 @@ setlocale(LC_MONETARY, 'en_US');
<div class="box"> <div class="box">
<div class="box-body"> <div class="box-body">
<div class="row"> <div class="row">
<div class="col-md-6">
@if($shipping != null)
Direccion de entrega:<br> <div class="col-md-6">
<b>{{$shipping->calle}}, # {{$shipping->numero}}, col. {{$shipping->colonia}}</b><br> <h4>Datos de facturación</h4>
<b>{{$shipping->ciudad}}, {{$shipping->estado}}</b><br> <p>
C.P. <b>{{$shipping->cp}}</b><br> ¿Requiere factura? <b>{{$sale->facturacion}}</b>
Referencias:<br> </p>
<b>{{$shipping->referencias}}</b><br> @if($sale->billing()->count() > 0)
@if($sale->billing->status == 0)
<b>Factura Pendiente</b><br>
{!! Form::model($sale,['route'=> ['admin.shop.facturar',$sale->id],"method"=>"PUT"]) !!}
{!! Form::submit('Crear y enviar factura', ['class'=>'btn-xs primary']) !!}
{!! Form::close() !!}
<br>
@endif
@if($sale->billing->status == 1)
<b>Factura Enviada</b><br>
{!! Form::model($sale->billing,['route'=> ['admin.shop.facturaEnviar',$sale->billing->id],"method"=>"PUT"]) !!}
{!! Form::submit('Reenviar factura por correo', ['class'=>'btn-xs primary']) !!}
{!! Form::close() !!}
<br>
{!! Form::model($sale->billing,['route'=> ['admin.shop.facturaCancelar',$sale->billing->id],"method"=>"PUT"]) !!}
<button class='btn btn-xs btn-danger button-mb' onclick="return confirm('¿Estás seguro de cancelar esta factura?');" type='submit'>
<i class='fas fa-trash-alt icon-special-size'></i>
Cancelar factura
</button>
{!! Form::close() !!}
<br>
UUID: <b>{{$sale->billing->uuid}}</b><br>
PDF: <a href="{{$sale->billing->pdf}}" target="blank">{{$sale->billing->pdf}}</a><br>
XML: <a href="{{$sale->billing->xml}}" target="blank">{{$sale->billing->xml}}</a><br>
@endif
@if($sale->billing->status == 2)
<b> Factura Cancelada</b><br>
@endif
<br>Dirección: <br>
Calle {{$sale->billing->calle}} numero {{$sale->billing->numero}}, Col. {{$sale->billing->colonia}}
<br>
{{$sale->billing->ciudad}}, {{$sale->billing->estado}}. C.P. {{$sale->billing->cp}}
<br>
Razón social: <b>{{$sale->billing->razon}}</b><br>
R.F.C. <b>{{$sale->billing->rfc}}</b><br>
Correo electrónico:<b>{{$sale->billing->correo}}</b>
<br><br>
<h6>Liga de formulario de facturación</h6>
<a target="blank" href="{{route('cart.facturacion', \Crypt::encryptString($sale->id))}}">
Visitar link
</a>
@else
<br><br>
<h6>Liga de formulario de facturación</h6>
<a target="blank" href="{{route('cart.facturacion', \Crypt::encryptString($sale->id))}}">
Visitar link
</a>
@endif
</div>
Estatus del envio: <a href="javascript::void()" data-target="#m-a-a" data-toggle="modal" href="#" ui-target="#animate" ui-toggle-class="zoom"><i class="fa fa-edit"></i></a><br>
<span class="label warning">{{$sale->shipping_status}}</span> <div class="col-md-6">
@else @if($shipping != null)
<h6>
No hay datos de envio, el cliente pasará a la tienda a recoger el producto
</h6>
@endif
</div> Direccion de entrega:<br>
<b>{{$shipping->calle}}, # {{$shipping->numero}}, col. {{$shipping->colonia}}</b><br>
<b>{{$shipping->ciudad}}, {{$shipping->estado}}</b><br>
C.P. <b>{{$shipping->cp}}</b><br>
Referencias:<br>
<b>{{$shipping->referencias}}</b><br>
Estatus del envio: <a href="javascript::void()" data-target="#m-a-a" data-toggle="modal" href="#" ui-target="#animate" ui-toggle-class="zoom"><i class="fa fa-edit"></i></a><br>
<span class="label warning">{{$sale->shipping_status}}</span>
@else
<h6>
No hay datos de envio, el cliente pasará a la tienda a recoger el producto
</h6>
@endif
<div class="col-md-6">
<p>
¿Requiere factura? <b>{{$sale->facturacion}}</b>
</p>
@if($sale->billing()->count() > 0)
<h4>Datos de facturación</h4>
Dirección: <br>
Calle {{$sale->billing->calle}} numero {{$sale->billing->numero}}, Col. {{$sale->billing->colonia}}
<br>
{{$sale->billing->ciudad}}, {{$sale->billing->estado}}. C.P. {{$sale->billing->cp}}
<br>
Razón social: <b>{{$sale->billing->razon}}</b><br>
R.F.C. <b>{{$sale->billing->rfc}}</b><br>
Correo electrónico:<b>{{$sale->billing->correo}}</b>
<br><br>
<h6>Liga de formulario de facturación</h6>
<a target="blank" href="{{route('cart.facturacion', \Crypt::encryptString($sale->id))}}">
Visitar link
</a>
@else
<br><br>
<h6>Liga de formulario de facturación</h6>
<a target="blank" href="{{route('cart.facturacion', \Crypt::encryptString($sale->id))}}">
Visitar link
</a>
@endif
</div>
</div> </div>
</div> </div>
</div> </div>
</div><!-- end tab-3 --> </div>
</div><!-- end tab-3 -->
@if($variable->count() > 0)
<div class="tab-pane" id="tab-4">
<div class="p-a-md dark _600">Detalles adicionales</div>
<div class="box">
<div class="box-body">
@if($sale->info_extra != null)
<div class="row">
<div class="col-md-6">
@if($variable->alias1 != null)
<p>
{{$variable->alias1}} :
<b>
{{$sale->info_extra->extra1}}
</b>
</p>
@endif
@if($variable->alias2 != null)
<p>
{{$variable->alias2}} :
<b>
{{$sale->info_extra->extra2}}
</b>
</p>
@endif
@if($variable->alias3 != null)
<p>
{{$variable->alias3}} :
<b>
{{$sale->info_extra->extra3}}
</b>
</p>
@endif
@if($variable->alias4 != null)
<p>
{{$variable->alias4}} :
<b>
{{$sale->info_extra->extra4}}
</b>
</p>
@endif
@if($variable->alias5 != null)
<p>
{{$variable->alias5}} :
<b>
{{$sale->info_extra->extra5}}
</b>
</p>
@endif
</div>
<div class="col-md-6">
@if($variable->alias6 != null)
<p>
{{$variable->alias6}} :
<b>
{{$sale->info_extra->extra6}}
</b>
</p>
@endif
@if($variable->alias7 != null)
<p>
{{$variable->alias7}} :
<b>
{{$sale->info_extra->extra7}}
</b>
</p>
@endif
@if($variable->alias8 != null)
<p>
{{$variable->alias8}} :
<b>
{{$sale->info_extra->extra8}}
</b>
</p>
@endif
@if($variable->alias9 != null)
<p>
{{$variable->alias9}} :
<b>
{{$sale->info_extra->extra9}}
</b>
</p>
@endif
@if($variable->alias10 != null)
<p>
{{$variable->alias10}} :
<b>
{{$sale->info_extra->extra10}}
</b>
</p>
@endif
</div>
</div>
@endif
</div>
</div>
</div><!-- end tab-4 -->
@endif
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade animate" data-backdrop="true" id="m-a-a"> <div class="modal fade animate" data-backdrop="true" id="m-a-a">
......
@extends('crm-admin::main-layout')
@section('breadcrumb')
<li class="breadcrumb-item">
<a href="{{route('home')}}">Home</a>
</li>
<li class="breadcrumb-item active">
Configuración de datos de facturación
</li>
@endsection
@section('content')
<div class='row'>
<div class='col-md-12'>
<div class='box'>
<div class='box-header dark'>
<h2>Configuracion de datos facturación</h2>
</div>
<div class='box-body'>
<div class='col-md-12'>
{!! Form::model($config,['route'=> ['admin.shop.config_factura.store'],"method"=>"POST"]) !!}
@include('shop::config_factura.fields')
</div>
</div>
<div class='dker p-a text-right'>
<div class='col-md-12'>
{!! Form::submit('Actualizar información', ['class'=>'btn dark']) !!}
{!! Form::close() !!}
</div>
</div>
</div>
</div>
</div>
@endsection
<div class="row">
<div class="col-md-6">
<div class="form-group">
{!! Form::label('regimen_fiscal', 'Régimen Fiscal') !!}
{!! Form::select('regimen_fiscal', $regimen, null, ["class"=>"form-control"]) !!}
</div>
</div>
<div class="col-md-6">
<div class="form-group">
{!! Form::label('lugar_expedicion', 'Lugar de expedición (Código Postal)') !!}
{!! Form::text('lugar_expedicion', null, ["class"=>"form-control"]) !!}
</div>
</div>
</div>
...@@ -16,18 +16,18 @@ setlocale(LC_MONETARY, 'en_US'); ...@@ -16,18 +16,18 @@ setlocale(LC_MONETARY, 'en_US');
@component('mail::table') @component('mail::table')
| Cantidad | Producto | Precio | Subtotal | | Clave Prod | Cantidad | Producto | Precio | Subtotal |
| :-------------: |:-------------:| :--------:| :-------:| | :---------: | :-------------: |:-------------:| :--------:| :-------:|
@foreach($products as $p) @foreach($products as $p)
| {{$p->pivot->quantity}} | {{$p->name}} | {{money_format('%(#10n', $p->infoSale->sale_price)}} | {{money_format('%(#10n', $p->infoSale->sale_price * $p->pivot->quantity)}} | | {{$p->id}} | {{$p->pivot->quantity}} | {{$p->name}} | {{money_format('%(#10n', $p->infoSale->sale_price)}} | {{money_format('%(#10n', $p->infoSale->sale_price * $p->pivot->quantity)}} |
@endforeach @endforeach
@if($shipping != null) @if($shipping != null)
| 1 | {{$shipping->shipping_price->name}} | {{money_format('%(#10n',$shipping->shipping_price->cost)}} | {{money_format('%(#10n',$shipping->shipping_price->cost)}} | | - | 1 | {{$shipping->shipping_price->name}} | {{money_format('%(#10n',$shipping->shipping_price->cost)}} | {{money_format('%(#10n',$shipping->shipping_price->cost)}} |
@endif @endif
@if($promo != null) @if($promo != null)
| 1 | Descuento *** {{$order->coupon}} *** | {{" - ".$promo['amount']}} | {{" - ".$promo['amount']}}| | - | 1 | Descuento *** {{$order->coupon}} *** | {{" - ".$promo['amount']}} | {{" - ".$promo['amount']}}|
@endif @endif
| - | - | Total: | {{money_format('%(#10n',$order->total)}}| | - | - | - | Total: | {{money_format('%(#10n',$order->total)}}|
@endcomponent @endcomponent
...@@ -61,6 +61,24 @@ Envio: ...@@ -61,6 +61,24 @@ Envio:
@endif @endif
@endcomponent @endcomponent
@if($variable != null)
@component('mail::panel')
Datos adicionales:
{{$variable->alias1 != null ? '- '.$variable->alias1.': ' : ''}} {{$additional->extra1 != null ? '*** '.$additional->extra1.' ***' : ''}}
{{$variable->alias2 != null ? '- '.$variable->alias2.': ' : ''}} {{$additional->extra2 != null ? '*** '.$additional->extra2.' ***' : ''}}
{{$variable->alias3 != null ? '- '.$variable->alias3.': ' : ''}} {{$additional->extra3 != null ? '*** '.$additional->extra3.' ***' : ''}}
{{$variable->alias4 != null ? '- '.$variable->alias4.': ' : ''}} {{$additional->extra4 != null ? '*** '.$additional->extra4.' ***' : ''}}
{{$variable->alias5 != null ? '- '.$variable->alias5.': ' : ''}} {{$additional->extra5 != null ? '*** '.$additional->extra5.' ***' : ''}}
{{$variable->alias6 != null ? '- '.$variable->alias6.': ' : ''}} {{$additional->extra6 != null ? '*** '.$additional->extra6.' ***' : ''}}
{{$variable->alias7 != null ? '- '.$variable->alias7.': ' : ''}} {{$additional->extra7 != null ? '*** '.$additional->extra7.' ***' : ''}}
{{$variable->alias8 != null ? '- '.$variable->alias8.': ' : ''}} {{$additional->extra8 != null ? '*** '.$additional->extra8.' ***' : ''}}
{{$variable->alias9 != null ? '- '.$variable->alias9.': ' : ''}} {{$additional->extra9 != null ? '*** '.$additional->extra9.' ***' : ''}}
{{$variable->alias10 != null ? '- '.$variable->alias10.': ' : ''}} {{$additional->extra10 != null ? '*** '.$additional->extra10.' ***' : ''}}
@endcomponent
@endif
Gracias por tu compra,<br> Gracias por tu compra,<br>
{{ config('app.name') }} {{ config('app.name') }}
......
...@@ -60,6 +60,27 @@ setlocale(LC_MONETARY, 'en_US'); ...@@ -60,6 +60,27 @@ setlocale(LC_MONETARY, 'en_US');
<br> <br>
</section> </section>
<section>
<h4>Información adicional</h4>
{!! Form::hidden('additional', true) !!}
<div class="form-group">
{!! Form::label('extra1', 'Fecha de envío', ['class'=>'']) !!}
{!! Form::text('extra1', null, ['class'=>'form-control', 'required'=>'required']) !!}
</div>
<div>
{!! Form::label('extra2', 'Hora de envio', ['class'=>'']) !!}
{!! Form::text('extra2', null, ['class'=>'form-control', 'required'=>'required']) !!}
</div>
<div>
{!! Form::label('extra3', 'Destinatario', ['class'=>'']) !!}
{!! Form::text('extra3', null, ['class'=>'form-control', 'required'=>'required']) !!}
</div>
<div>
{!! Form::label('extra4', 'Dedicatoria', ['class'=>'']) !!}
{!! Form::text('extra4', null, ['class'=>'form-control', 'required'=>'required']) !!}
</div>
</section>
{!! Form::submit('Enviar información', ['class'=>'']) !!} {!! Form::submit('Enviar información', ['class'=>'']) !!}
{!! Form::close() !!} {!! Form::close() !!}
......
<div class="form-group"> <div class="form-group">
{!! Form::label('razon', 'Nombre o razón social', ['class'=>'form-control']) !!} {!! Form::label('razon', 'Nombre o razón social *', ['class'=>'form-control']) !!}
{!! Form::text('razon', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('razon', null, ['class'=>'form-control','required'=>'required']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('rfc', 'RFC', ['class'=>'form-control']) !!} {!! Form::label('rfc', 'RFC *', ['class'=>'form-control']) !!}
{!! Form::text('rfc', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('rfc', null, ['class'=>'form-control','required'=>'required']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('correo', 'Correo electrónico', ['class'=>'form-control']) !!} {!! Form::label('correo', 'Correo electrónico *', ['class'=>'form-control']) !!}
{!! Form::text('correo', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('correo', null, ['class'=>'form-control','required'=>'required']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('calle', 'Calle', ['class'=>'form-control']) !!} {!! Form::label('calle', 'Calle', ['class'=>'form-control']) !!}
{!! Form::text('calle', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('calle', null, ['class'=>'form-control']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('numero', 'Numero', ['class'=>'form-control']) !!} {!! Form::label('numero', 'Numero', ['class'=>'form-control']) !!}
{!! Form::text('numero', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('numero', null, ['class'=>'form-control']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('colonia', 'Colonia', ['class'=>'form-control']) !!} {!! Form::label('colonia', 'Colonia', ['class'=>'form-control']) !!}
{!! Form::text('colonia', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('colonia', null, ['class'=>'form-control']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('estado', 'Estado', ['class'=>'form-control']) !!} {!! Form::label('estado', 'Estado', ['class'=>'form-control']) !!}
{!! Form::text('estado', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('estado', null, ['class'=>'form-control']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('ciudad', 'Ciudad o delegación', ['class'=>'form-control']) !!} {!! Form::label('ciudad', 'Ciudad o delegación', ['class'=>'form-control']) !!}
{!! Form::text('ciudad', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('ciudad', null, ['class'=>'form-control']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('cp', 'Codigo postal', ['class'=>'form-control']) !!} {!! Form::label('cp', 'Codigo postal', ['class'=>'form-control']) !!}
{!! Form::text('cp', null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::text('cp', null, ['class'=>'form-control']) !!}
</div> </div>
<div class="form-group"> <div class="form-group">
{!! Form::label('uso_cfdi', 'Uso del CFDI', ['class'=>'form-control']) !!} {!! Form::label('uso_cfdi', 'Uso del CFDI *', ['class'=>'form-control']) !!}
{!! Form::select('uso_cfdi', $uso_cfdi, null, ['class'=>'form-control','required'=>'required']) !!} {!! Form::select('uso_cfdi', $uso_cfdi, null, ['class'=>'form-control','required'=>'required']) !!}
</div> </div>
<div class="form-group">
{!! Form::label('forma_pago', 'Forma de pago *', ['class'=>'form-control']) !!}
{!! Form::select('forma_pago', $forma_pago, null, ['class'=>'form-control','required'=>'required']) !!}
</div>
@extends('crm-admin::main-layout') @extends('crm-admin::main-layout')
@section('breadcrumb')
<li class="breadcrumb-item">
<a href="{{route('home')}}">Home</a>
</li>
<li class="breadcrumb-item active">
Varriables información adicional
</li>
@endsection
@section('content') @section('content')
<div class='row'> <div class='row'>
<div class='col-md-12'> <div class='col-md-12'>
<div class='box'> <div class='box'>
<div class='box-header dark'> <div class='box-header dark'>
<h2>Mapeo de variables extras</h2> <h2>Variables extras de información adicional a una compra</h2>
</div> </div>
<div class='box-body'> <div class='box-body'>
<div class='col-md-12'> <div class='col-md-12'>
{!! Form::model($variable,['route'=> ['admin.product.variable.store'],"method"=>"POST"]) !!} {!! Form::model($variable,['route'=> ['admin.shop.variable.store'],"method"=>"POST"]) !!}
@include('product::variable.fields') @include('shop::variable.fields')
</div> </div>
</div> </div>
<div class='dker p-a text-right'> <div class='dker p-a text-right'>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment