Esempio n. 1
0
 public function actionProductos()
 {
     $query = Producto::find();
     $pagination = new Pagination(['defaultPageSize' => 9, 'totalCount' => $query->count()]);
     $productos = $query->orderBy('id')->offset($pagination->offset)->limit($pagination->limit)->all();
     return $this->render('productos', ['productos' => $productos, 'pagination' => $pagination]);
 }
 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function create(Request $request)
 {
     $productoId = $request->input("p_id");
     $producto = Producto::find($productoId);
     if (is_null($producto)) {
         App::abort(404);
     }
     $documento = new Producto_Documento();
     $form_data = array('route' => 'ProgramaDocumentos.store', 'method' => 'POST', 'role' => 'form', 'id' => 'form1', 'class' => 'col s10 offset-s1', 'files' => true);
     return view('admin.form_productoDocumento', compact('producto', 'documento', 'form_data'));
 }
Esempio n. 3
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Producto::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'precio' => $this->precio, 'idcategoria' => $this->idcategoria]);
     $query->andFilterWhere(['like', 'nombre', $this->nombre])->andFilterWhere(['like', 'descripcion', $this->descripcion])->andFilterWhere(['like', 'imagen', $this->imagen])->andFilterWhere(['like', 'codigo', $this->codigo]);
     return $dataProvider;
 }
Esempio n. 4
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Producto::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['idProducto' => $this->idProducto, 'codigo' => $this->codigo, 'precio' => $this->precio, 'embalaje_idEmbalaje' => $this->embalaje_idEmbalaje, 'impuestos_idImpuesto' => $this->impuestos_idImpuesto]);
     $query->andFilterWhere(['like', 'producto', $this->producto]);
     return $dataProvider;
 }
Esempio n. 5
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Producto::find();
     $query->joinWith(['idTipoProducto']);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'precio' => $this->precio, 'id_tipo_producto' => $this->id_tipo_producto, 'Eliminado' => $this->Eliminado]);
     $query->andFilterWhere(['like', 'nombre', $this->nombre])->andFilterWhere(['like', 'descripcion', $this->descripcion]);
     return $dataProvider;
 }
 public function buscarCitasProximas()
 {
     $date = Carbon::now()->addDays(3);
     $citas_1 = Cita::whereFecha($date->toDateString())->get();
     foreach ($citas_1 as $cita_1) {
         $user = User::find($cita_1->user_id);
         $producto = Producto::find($cita_1->producto_id);
         $this->sendFirstAppointmentReminder($user, $producto, $cita_1);
     }
     $tomorrow = Carbon::now()->tomorrow();
     $citas = Cita::whereFecha($tomorrow->toDateString())->get();
     foreach ($citas as $cita) {
         $user = User::find($cita->user_id);
         $producto = Producto::find($cita->producto_id);
         $this->sendAppointmentReminder($user, $producto, $cita);
     }
     Log::info('Se corrio cron para envio de recordatorios.');
 }
 public function asignarPrograma(Request $request)
 {
     $user = User::find($request->input('user_id'));
     if (is_null($user)) {
         return \Redirect::back()->with('error', 'El cliente enviado no existe.');
     }
     $programa = Producto::find($request->input('programa_id'));
     if (is_null($programa)) {
         return \Redirect::back()->with('error', 'El programa enviado no existe.');
     }
     $pivot = User_Producto::where('user_id', '=', $user->id)->where('producto_id', '=', $programa->id)->first();
     if (is_null($pivot)) {
         //aqui lo asignamos
         $configurado = $programa->con_citas == 1 ? 1 : 0;
         $user->Productos()->attach($programa->id, array('precio' => $programa->precio, 'estatus' => 'Exito', 'configurado' => $configurado, 'asignadoporadmin' => 1));
         return \Redirect::back()->with('message', 'El Programa fue Asignado con éxito.');
     } else {
         return \Redirect::back()->with('error', 'El programa ya ha sido asignado anteriormente al cliente.');
     }
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     $cabecera = $request->get('cabecera');
     $cabecera_guia = $request->get('cabecera_guia');
     $tipo_cambio_venta = DB::table('ts_tipocambiomoneda')->where('fecha', $cabecera['fecha'])->pluck('valor_venta');
     $id_igv = DB::table('ts_igv')->where('estado', 'true')->pluck('id');
     $incluido_igv_activo = DB::table('ts_igv')->where('estado', 'true')->pluck('valor_igv');
     // DB::transaction(function(){
     try {
         DB::beginTransaction();
         $filtro_existencia = '';
         $filtro_existencia_nota = '';
         // FILTRO --- EXISTE OTRO COMPROBANTE CON LA MISMA SERIE, NUMERO, CLIENTE Y FECHA
         if (DB::table('ts_comprobanteventa')->where('serie_comprobante', $cabecera['serie'])->where('numero_comprobante', $cabecera['numero'])->join('ts_detallecliente', 'ts_detallecliente.id', '=', 'ts_comprobanteventa.id_detalle_cliente')->pluck('ts_comprobanteventa.id') != null) {
             $filtro_existencia = 'EXISTE';
         }
         // FIN FILTRO --- EXISTE OTRO COMPROBANTE CON LA MISMA SERIE, NUMERO, CLIENTE Y FECHA
         // FILTRO --- EXISTE OTRA NOTA CON LA MISMA SERIE, NUMERO Y FECHA
         if (DB::table('ts_detalle_nota')->where('serie_nota', $cabecera['serie'])->where('numero_nota', $cabecera['numero'])->where('fecha', $cabecera['fecha'])->pluck('ts_detalle_nota.id') != null) {
             $filtro_existencia_nota = 'EXISTE';
         }
         // FIN FILTRO --- EXISTE OTRA NOTA CON LA MISMA SERIE, NUMERO Y FECHA
         if ($filtro_existencia == 'EXISTE') {
             // EXISTE COMPROBANTE DE VENTA, NO GUARDAMOS NADA
             return \Response::json(array('datos' => 'duplicidad'));
         } else {
             if ($filtro_existencia_nota == 'EXISTE') {
                 // EXISTE NOTA, NO GUARDAMOS NADA
                 return \Response::json(array('datos' => 'duplicidad_nota'));
             } else {
                 //SE EJECUTA NORMALMENTE PORQUE NO EXISTE COMPROBANTE DE VENTA
                 if ($cabecera['boolean_asociar'] == true) {
                     // CUANDO SE ASOCIA CON UNA GUIA
                     // dd($request->get('cabecera'));
                     $nuevaCabecera = new ComprobanteVenta();
                     $nuevaCabecera->id_tipoComprobante = 2;
                     $nuevaCabecera->serie_comprobante = $cabecera['serie'];
                     $nuevaCabecera->numero_comprobante = $cabecera['numero'];
                     $nuevaCabecera->orden_compra = $cabecera['orden_compra'];
                     $nuevaCabecera->fecha = $cabecera['fecha'];
                     $id_tipo_cambio = DB::table('ts_tipocambiomoneda')->where('fecha', $cabecera['fecha'])->pluck('id');
                     $nuevaCabecera->id_tipoCambio = $id_tipo_cambio;
                     $nuevaCabecera->id_moneda = $cabecera['moneda']['id'];
                     $nuevaCabecera->id_detalle_cliente = $cabecera['cliente']['id_direccion_seleccionada'];
                     $nuevaCabecera->id_igv = $id_igv;
                     $nuevaCabecera->total_comprobante = $cabecera['total'];
                     $nuevaCabecera->monto_retencion = $cabecera['retencion'];
                     // $nuevaCabecera->id_guiaRemision = ;
                     $nuevaCabecera->save();
                     $id_cabecera = $nuevaCabecera->id;
                     foreach ($cabecera['id_guiasRemision'] as $key => $value) {
                         $guiaRemision = GuiaRemision::find($value);
                         $guiaRemision->id_comprobanteVenta = $id_cabecera;
                         $guiaRemision->save();
                     }
                     $detalle = $request->get('detalle');
                     foreach ($detalle as $key => $value) {
                         // APLICANDO IGV INCLUIDO A PRECIO UNITARIO DE PRODUCTO
                         // $valor_dividir = $incluido_igv_activo+1;
                         // $value['precio'] = $value['precio']/$valor_dividir;
                         $nuevaDetalle = new ComprobanteDetalleVenta();
                         $nuevaDetalle->id_comprobanteVenta = $id_cabecera;
                         $nuevaDetalle->id_producto = $value['id_producto'];
                         $nuevaDetalle->unidades = $value['unidades'];
                         $nuevaDetalle->precio_unitario = $value['precio'];
                         $nuevaDetalle->save();
                         $producto = Producto::find($value['id_producto']);
                         $producto->stock = $producto->stock - $value['unidades'];
                         $producto->save();
                     }
                 } else {
                     // STORE NORMAL
                     // dd($cabecera);
                     $nuevaCabecera = new ComprobanteVenta();
                     $nuevaCabecera->id_tipoComprobante = 2;
                     $nuevaCabecera->serie_comprobante = $cabecera['serie'];
                     $nuevaCabecera->numero_comprobante = $cabecera['numero'];
                     $nuevaCabecera->orden_compra = $cabecera['orden_compra'];
                     $nuevaCabecera->fecha = $cabecera['fecha'];
                     $id_tipo_cambio = DB::table('ts_tipocambiomoneda')->where('fecha', $cabecera['fecha'])->pluck('id');
                     $nuevaCabecera->id_tipoCambio = $id_tipo_cambio;
                     $nuevaCabecera->id_moneda = $cabecera['moneda']['id'];
                     $nuevaCabecera->id_detalle_cliente = $cabecera['cliente']['id_direccion_seleccionada'];
                     $nuevaCabecera->id_igv = $id_igv;
                     $nuevaCabecera->total_comprobante = $cabecera['total'];
                     $nuevaCabecera->monto_retencion = $cabecera['retencion'];
                     $nuevaCabecera->save();
                     $id_cabecera = $nuevaCabecera->id;
                     foreach ($cabecera_guia as $key => $value) {
                         if ($cabecera_guia[$key]['generar_guia'] == true) {
                             // REGISTRAR CABECERA GUIAREMISION
                             $nuevaCabecera_guia = new GuiaRemision();
                             $nuevaCabecera_guia->id_tipoComprobante = 3;
                             $nuevaCabecera_guia->serie_guiaRemision = $cabecera_guia[$key]['serie'];
                             $nuevaCabecera_guia->numero_guiaRemision = $cabecera_guia[$key]['numero'];
                             $nuevaCabecera_guia->fecha_traslado = $cabecera_guia[$key]['fecha'];
                             $nuevaCabecera_guia->punto_partida = $cabecera_guia[$key]['punto_partida'];
                             $nuevaCabecera_guia->punto_llegada = $cabecera_guia[$key]['punto_llegada'];
                             $nuevaCabecera_guia->id_detalle_cliente = $cabecera['cliente']['id_direccion_seleccionada'];
                             $nuevaCabecera_guia->id_motivoTraslado = $cabecera_guia[$key]['motivo']['id'];
                             $nuevaCabecera_guia->id_personalTransporte = $cabecera_guia[$key]['personal_transporte']['id'];
                             $nuevaCabecera_guia->id_unidad_Transporte = $cabecera_guia[$key]['unidad_transporte']['id'];
                             $nuevaCabecera_guia->id_comprobanteVenta = $id_cabecera;
                             $nuevaCabecera_guia->save();
                             $id_cabecera_guia = $nuevaCabecera_guia->id;
                             foreach ($cabecera_guia[$key]['detalle_guia'] as $key_guia => $value_guia) {
                                 // REGISTRAR DETALLE DE GUIA
                                 $nuevaDetalle_guia = new GuiaRemisionDetalle();
                                 $nuevaDetalle_guia->id_guiaRemision = $id_cabecera_guia;
                                 $nuevaDetalle_guia->id_producto = $value_guia['id_producto'];
                                 if ($value_guia['producto'] != $value_guia['nombre_producto']) {
                                     $nuevaDetalle_guia->nombre_producto = $value_guia['nombre_producto'];
                                 }
                                 $nuevaDetalle_guia->unidades = $value_guia['cantidad'];
                                 $nuevaDetalle_guia->peso = $value_guia['peso'];
                                 $nuevaDetalle_guia->save();
                             }
                         }
                     }
                     $detalle = $request->get('detalle');
                     // dd($detalle);
                     foreach ($detalle as $key => $value) {
                         // APLICANDO IGV INCLUIDO A PRECIO UNITARIO DE PRODUCTO
                         // $valor_dividir = $incluido_igv_activo+1;
                         // $value['precio'] = $value['precio']/$valor_dividir;
                         $nuevaDetalle = new ComprobanteDetalleVenta();
                         $nuevaDetalle->id_comprobanteVenta = $id_cabecera;
                         $nuevaDetalle->id_producto = $value['id_producto'];
                         if (DB::table('ts_producto')->where('id', $value['id_producto'])->pluck('nombre_producto') != $value['nombre_producto']) {
                             $nuevaDetalle->nombre_producto = $value['nombre_producto'];
                         }
                         $nuevaDetalle->unidades = $value['cantidad'];
                         $nuevaDetalle->precio_unitario = $value['precio'];
                         $nuevaDetalle->save();
                         $producto = Producto::find($value['id_producto']);
                         $producto->stock = $producto->stock - $value['cantidad'];
                         $producto->save();
                     }
                 }
                 // total de comprobante, metiendo a una variable
                 $total_final = $cabecera['total'];
                 // GUARDANDO DETALLE DE NOTA
                 $nota = $request->get('nota');
                 if ($nota['tipo_nota']['id'] != null) {
                     $total_final = $nota['total_nota'];
                     $nuevaNota = new DetalleNota();
                     $nuevaNota->id_tipoNota = $nota['tipo_nota']['id'];
                     $nuevaNota->id_comprobanteVenta = $id_cabecera;
                     $nuevaNota->id_moneda = $cabecera['moneda']['id'];
                     $nuevaNota->serie_nota = $nota['serie_comprobante'];
                     $nuevaNota->numero_nota = $nota['numero_comprobante'];
                     $nuevaNota->fecha = $cabecera['fecha'];
                     $nuevaNota->descripcion = $nota['descripcion_nota'];
                     $nuevaNota->precio = $nota['precio_nota'];
                     $nuevaNota->total_nota = $nota['total_nota'];
                     $nuevaNota->save();
                 }
                 // GUARDANDO DETALLE DE FINANZAS
                 $finanzas = $request->get('finanzas');
                 // dd($monto_por_letra);
                 // dd($finanzas);
                 if ($finanzas['condicion']['id'] == 2) {
                     //EN LETRAS
                     $cont_indivisible = 0;
                     $resto_division = 0;
                     // CALCULANDO SI ES DIVISIBLE PARA EL NUMERO DE DIAS
                     if ($total_final % count($finanzas['detalles_letra']) != 0) {
                         $resto_division = round($total_final / count($finanzas['detalles_letra']), 3);
                         // dd($resto_division * (count($finanzas['detalles_letra']) ));
                         $monto_sumar = round($total_final - $resto_division * count($finanzas['detalles_letra']), 3);
                         $cont_indivisible = 1;
                         // dd(round($monto_sumar,3));
                     }
                     // INICIALIZANDO LA FECHA DE INICIO LA DEL COMPROBANTE
                     $fecha = date($cabecera['fecha']);
                     // CALCULANDO MONTO POR LETRA EN PARTES IGUALES
                     $monto_por_letra = round($total_final / count($finanzas['detalles_letra']), 3);
                     foreach ($finanzas['detalles_letra'] as $key => $value) {
                         // ADICIONANDO 1 DIA DEBIDO AL REDONDEO
                         if ($cont_indivisible == 1) {
                             $monto_por_letra = $monto_por_letra + $monto_sumar;
                         }
                         // CALCULANDO LA FECHA DE VENCIMIENTO PARA CADA LETRA
                         $fecha = date($cabecera['fecha']);
                         $fecha = strtotime('+' . round($value['numero_dias']) . ' day', strtotime($fecha));
                         $fecha = date('Y-m-j', $fecha);
                         $detallePago = new DetallePago();
                         // $detallePago->id_comprobanteVenta = $id_cabecera;
                         $detallePago->id_condicion_pago = $finanzas['condicion']['id'];
                         $detallePago->id_medio_pago = $finanzas['medio']['id'];
                         $detallePago->id_estado_letra = 4;
                         $detallePago->numero_dias = $value['numero_dias'];
                         $detallePago->numero_letra = $value['numero_letra'];
                         $detallePago->monto_letra = $value['monto_letra'];
                         // $detallePago->monto_letra = $value['monto_letra'];
                         $detallePago->fecha_vencimiento = $fecha;
                         $detallePago->detalle_estado = "";
                         $detallePago->save();
                         $RelacionLetras = new RelacionLetras();
                         $RelacionLetras->id_comprobanteVenta = $id_cabecera;
                         $RelacionLetras->id_detalle_pago = $detallePago->id;
                         $RelacionLetras->total_facturas = $total_final;
                         $RelacionLetras->save();
                         // RESTANDO 1 PARA LOS SIGUIENTES REGISTROS
                         if ($cont_indivisible == 1) {
                             $monto_por_letra = $monto_por_letra - $monto_sumar;
                             $cont_indivisible++;
                         }
                     }
                 }
                 // dd($finanzas);
                 if ($finanzas['condicion']['id'] == 1) {
                     // AL CONTADO
                     $detallePago = new DetallePago();
                     $detallePago->id_comprobanteVenta = $id_cabecera;
                     $detallePago->id_condicion_pago = $finanzas['condicion']['id'];
                     $detallePago->id_medio_pago = $finanzas['medio']['id'];
                     if ($finanzas['condicion']['id'] != 1) {
                         // DIFERENTE DE PENDIENTE
                         $detallePago->fecha_pago = $finanzas['medio']['fecha_pago'];
                         $detallePago->detalle_medio_pago = $finanzas['medio']['detalle_medio_pago'];
                     }
                     $detallePago->id_estado_letra = 6;
                     $detallePago->numero_dias = null;
                     $detallePago->numero_letra = null;
                     $detallePago->monto_letra = null;
                     $detallePago->fecha_vencimiento = null;
                     $detallePago->detalle_estado = null;
                     $detallePago->save();
                 }
                 // if($finanzas['condicion']['id'] == 3){
                 // 	$detallePago = new DetallePago;
                 // 	$detallePago->id_comprobanteVenta = $id_cabecera;
                 // 	$detallePago->id_condicion_pago = $finanzas['condicion']['id'];
                 // 	$detallePago->id_medio_pago = $finanzas['medio']['id'];
                 // 	$detallePago->id_estado_letra = 6;
                 // 	$detallePago->numero_dias = null;
                 // 	$detallePago->numero_letra = null;
                 // 	$detallePago->monto_letra = null;
                 // 	$detallePago->fecha_vencimiento = null;
                 // 	$detallePago->detalle_estado =  null;
                 // 	$detallePago->save();
                 // }
                 // if($finanzas['condicion']['id'] != null){
                 // 	// TRANSFORMANDO EN ARRAY EL FORMATO DE LETRA
                 // 	$array_letra = explode("-",$finanzas['numero_letra']);
                 // 	// EXTRAYENDO EL TOTAL DE DIAS PARA LAS LETRAS
                 // 	$total_dias = $finanzas['numero_dias'];
                 // 	// DIVIDIENDO EN PARTES IGUALES EL NUMERO DE DIAS
                 // 	$dias_por_letra = floor($total_dias / (count($array_letra)-1) );
                 // 	// DIVIDIENDO EN PARTES IGUALES EL MONTO
                 // 	$monto_por_letra = $total_final / (count($array_letra)-1);
                 // 	$cont_indivisible=0;
                 // 	$resto_division=0;
                 // 	// CALCULANDO SI ES DIVISIBLE PARA EL NUMERO DE DIAS
                 // 	if($total_dias % (count($array_letra)-1) != 0){
                 // 		$resto_division = $total_dias % (count($array_letra)-1);
                 // 		$cont_indivisible=1;
                 // 	}
                 // 	for ($i=1; $i < count($array_letra); $i++) {
                 // 		// ADICIONANDO 1 DIA DEBIDO AL REDONDEO
                 // 		if($cont_indivisible == 1){
                 // 			$dias_por_letra = $dias_por_letra+$resto_division;
                 // 		}
                 // 		$detallePago = new DetallePago;
                 // 		$detallePago->id_comprobanteVenta = $id_cabecera;
                 // 		$detallePago->id_condicion_pago = $finanzas['condicion']['id'];
                 // 		$detallePago->id_medio_pago = $finanzas['medio']['id'];
                 // 		$detallePago->id_estado_letra = $finanzas['estado']['id'];
                 // 		$detallePago->numero_dias = round($dias_por_letra);
                 // 		$detallePago->numero_letra = $array_letra[0].$array_letra[$i];
                 // 		$detallePago->monto_letra = $monto_por_letra;
                 // 		$detallePago->fecha_vencimiento = $fecha;
                 // 		$detallePago->detalle_estado = $finanzas['detalle_estado'];
                 // 		$detallePago->save();
                 // 		// RESTANDO 1 PARA LOS SIGUIENTES REGISTROS
                 // 		if($cont_indivisible == 1){
                 // 			$dias_por_letra = $dias_por_letra-$resto_division;
                 // 			$cont_indivisible++;
                 // 		}
                 // 	}
                 // }
                 // $id_cabecera = $nuevaCabecera->id;
                 DB::commit();
                 return \Response::json(array('datos' => 'correcto'));
             }
         }
     } catch (Exception $e) {
         DB::rollBack();
     }
     // });
 }
Esempio n. 9
0
 public function actionItemsPedidos($idPedido)
 {
     $contenido_pedido = Carropedido::findAll(['pedido_idPedido' => $idPedido]);
     $id_productos = array_map(function ($o) {
         return $o->producto_idProducto;
     }, $contenido_pedido);
     $productos = Producto::find()->where(['IN', 'idProducto', $id_productos])->all();
     $items = array_map(function ($u) use($idPedido) {
         $temp = Carropedido::findOne(['pedido_idPedido' => $idPedido, 'producto_idProducto' => $u->idProducto]);
         if (empty($temp)) {
             $cantidad = 0;
         } else {
             $cantidad = $temp->cantidad;
         }
         $row['idProducto'] = $u->idProducto;
         $row['codigo'] = $u->codigo;
         $row['nombre'] = $u->producto;
         $row['precio'] = $u->precio;
         $row['embalaje'] = $u->embalajeIdEmbalaje->nombre;
         $row['cantidad'] = $cantidad;
         return $row;
     }, $productos);
     return Json::encode($items);
 }
 public function publicar()
 {
     $id = $this->request->input("id");
     $producto = Producto::find($id);
     if (is_null($producto)) {
         App::abort(404);
     }
     if ($producto->visible == 1) {
         $producto->visible = 0;
     } elseif ($producto->visible == 0) {
         $producto->visible = 1;
     }
     $producto->save();
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     $tipo_cambio_compra_hoy = DB::table('ts_tipocambiomoneda')->where('fecha', date("Y-m-d"))->pluck('valor_venta');
     $id_igv = DB::table('ts_igv')->where('estado', 'true')->pluck('id');
     $incluido_igv_activo = DB::table('ts_igv')->where('estado', 'true')->pluck('valor_igv');
     // DB::transaction(function(){
     try {
         DB::beginTransaction();
         $cabecera = $request->get('cabecera');
         $cabecera_guia = $request->get('cabecera_guia');
         $filtro_existencia = '';
         // FILTRO --- EXISTE OTRO COMPROBANTE CON LA MISMA SERIE, NUMERO, PROVEEDOR Y FECHA
         if (DB::table('ts_comprobantecompra')->where('serie_comprobante', $cabecera['serie'])->where('numero_comprobante', $cabecera['numero'])->where('id_proveedor', $cabecera['cliente']['id'])->where('fecha', $cabecera['fecha'])->pluck('id') != null) {
             $filtro_existencia = 'EXISTE';
         }
         // FIN FILTRO --- EXISTE OTRO COMPROBANTE CON LA MISMA SERIE, NUMERO, PROVEEDOR Y FECHA
         if ($filtro_existencia == 'EXISTE') {
             // EXISTE COMPROBANTE DE COMPRA, NO GUARDAMOS NADA
             return \Response::json(array('datos' => 'duplicidad'));
         } else {
             //SE EJECUTA NORMALMENTE PORQUE NO EXISTE COMPROBANTE DE COMPRA
             $boolean_incluido_igv;
             if ($cabecera['incluido_igv'] === 'undefined' || $cabecera['incluido_igv'] === null) {
                 $boolean_incluido_igv = false;
             } else {
                 $boolean_incluido_igv = $cabecera['incluido_igv'];
             }
             $nuevaCabecera = new ComprobanteCompra();
             $nuevaCabecera->id_tipoComprobante = 1;
             $nuevaCabecera->serie_comprobante = $cabecera['serie'];
             $nuevaCabecera->numero_comprobante = $cabecera['numero'];
             $nuevaCabecera->fecha = $cabecera['fecha'];
             $nuevaCabecera->id_moneda = $cabecera['moneda']['id'];
             $nuevaCabecera->id_proveedor = $cabecera['cliente']['id'];
             $nuevaCabecera->id_igv = $id_igv;
             // $nuevaCabecera->indicador_asociado = 'true';
             $nuevaCabecera->estado_igv = json_encode($boolean_incluido_igv);
             $nuevaCabecera->total_comprobante = $cabecera['total'];
             $nuevaCabecera->save();
             $id_cabecera = $nuevaCabecera->id;
             // dd($cabecera_guia);
             foreach ($cabecera_guia as $key => $value) {
                 if ($cabecera_guia[$key]['generar_guia'] == true) {
                     // REGISTRAR CABECERA GUIAREMISION
                     $nuevaCabecera_guia = new GuiaRemision();
                     $nuevaCabecera_guia->id_tipoComprobante = 3;
                     $nuevaCabecera_guia->serie_guiaRemision = $cabecera_guia[$key]['serie'];
                     $nuevaCabecera_guia->numero_guiaRemision = $cabecera_guia[$key]['numero'];
                     $nuevaCabecera_guia->fecha_traslado = $cabecera_guia[$key]['fecha'];
                     $nuevaCabecera_guia->punto_partida = $cabecera_guia[$key]['punto_partida'];
                     $nuevaCabecera_guia->id_proveedor = $cabecera['cliente']['id'];
                     $nuevaCabecera_guia->id_motivoTraslado = $cabecera_guia[$key]['motivo']['id'];
                     $nuevaCabecera_guia->id_personalTransporte = $cabecera_guia[$key]['personal_transporte']['id'];
                     $nuevaCabecera_guia->id_unidad_Transporte = $cabecera_guia[$key]['unidad_transporte']['id'];
                     $nuevaCabecera_guia->id_comprobanteCompra = $id_cabecera;
                     $nuevaCabecera_guia->save();
                     $id_cabecera_guia = $nuevaCabecera_guia->id;
                     foreach ($cabecera_guia[$key]['detalle_guia'] as $key_guia => $value_guia) {
                         // REGISTRAR DETALLE DE GUIA
                         $nuevaDetalle_guia = new GuiaRemisionDetalle();
                         $nuevaDetalle_guia->id_guiaRemision = $id_cabecera_guia;
                         $nuevaDetalle_guia->id_producto = $value_guia['id_producto'];
                         if ($value_guia['producto'] != $value_guia['nombre_producto']) {
                             $nuevaDetalle_guia->nombre_producto = $value_guia['nombre_producto'];
                         }
                         $nuevaDetalle_guia->unidades = $value_guia['cantidad'];
                         $nuevaDetalle_guia->peso = $value_guia['peso'];
                         $nuevaDetalle_guia->save();
                     }
                 }
             }
             $detalle = $request->get('detalle');
             foreach ($detalle as $key => $value) {
                 $nuevaDetalle = new ComprobanteDetalleCompra();
                 $nuevaDetalle->id_comprobante = $id_cabecera;
                 $nuevaDetalle->id_producto = $value['id_producto'];
                 if (DB::table('ts_producto')->where('id', $value['id_producto'])->pluck('nombre_producto') != $value['nombre_producto']) {
                     $nuevaDetalle->nombre_producto = $value['nombre_producto'];
                 }
                 $nuevaDetalle->unidades = $value['cantidad'];
                 $nuevaDetalle->precio_unitario = $value['precio'];
                 $nuevaDetalle->save();
                 $producto = Producto::find($value['id_producto']);
                 // APLICANDO IGV INCLUIDO A PRECIO UNITARIO DE PRODUCTO
                 if ($cabecera['incluido_igv'] == true) {
                     $valor_dividir = $incluido_igv_activo + 1;
                     $value['precio'] = $value['precio'] / $valor_dividir;
                 }
                 // TRANSFORMANDO PRECIO UNITARIO - DE DOLARES A SOLES
                 if ($cabecera['moneda']['id'] == 2) {
                     $value['precio'] = $value['precio'] * $tipo_cambio_compra_hoy;
                 }
                 if ($producto->stock == null) {
                     $producto->stock = $value['cantidad'];
                     $producto->precio_unitario = $value['precio'];
                 } else {
                     // dd($value);
                     $producto->precio_unitario = ($producto->precio_unitario * $producto->stock + $value['precio'] * $value['cantidad']) / ($producto->stock + $value['cantidad']);
                     $producto->stock = $producto->stock + $value['cantidad'];
                 }
                 $producto->save();
             }
             // GUARDANDO DETALLE DE NOTA
             $nota = $request->get('nota');
             if ($nota['tipo_nota']['id'] != null) {
                 $total_final = $nota['total_nota'];
                 $nuevaNota = new DetalleNota();
                 $nuevaNota->id_tipoNota = $nota['tipo_nota']['id'];
                 $nuevaNota->id_comprobanteCompra = $id_cabecera;
                 $nuevaNota->id_moneda = $cabecera['moneda']['id'];
                 $nuevaNota->serie_nota = $nota['serie_comprobante'];
                 $nuevaNota->numero_nota = $nota['numero_comprobante'];
                 $nuevaNota->fecha = $cabecera['fecha'];
                 $nuevaNota->descripcion = $nota['descripcion_nota'];
                 $nuevaNota->precio = $nota['precio_nota'];
                 $nuevaNota->total_nota = $nota['total_nota'];
                 $nuevaNota->save();
             }
             // dd($request->get('finanzas'));
             // GUARDANDO DETALLE DE FINANZAS
             $finanzas = $request->get('finanzas');
             if ($finanzas['condicion']['id'] == 2) {
                 //EN LETRAS
                 // dd($finanzas);
                 // INICIALIZANDO LA FECHA DE INICIO LA DEL COMPROBANTE
                 $fecha = date($cabecera['fecha']);
                 foreach ($finanzas['detalles_letra'] as $key => $value) {
                     // CALCULANDO LA FECHA DE VENCIMIENTO PARA CADA LETRA
                     $fecha = date($cabecera['fecha']);
                     $fecha = strtotime('+' . round($value['numero_dias']) . ' day', strtotime($fecha));
                     $fecha = date('Y-m-j', $fecha);
                     $detallePago = new DetallePago();
                     // $detallePago->id_comprobanteCompra = $id_cabecera;
                     $detallePago->id_condicion_pago = $finanzas['condicion']['id'];
                     $detallePago->id_medio_pago = $finanzas['medio']['id'];
                     $detallePago->id_estado_letra = 4;
                     $detallePago->numero_dias = $value['numero_dias'];
                     $detallePago->numero_letra = $value['numero_letra'];
                     $detallePago->monto_letra = $value['monto_letra'];
                     $detallePago->fecha_vencimiento = $fecha;
                     $detallePago->detalle_estado = "";
                     $detallePago->save();
                     $RelacionLetras = new RelacionLetras();
                     $RelacionLetras->id_comprobanteCompra = $id_cabecera;
                     $RelacionLetras->id_detalle_pago = $detallePago->id;
                     $RelacionLetras->total_facturas = $total_final;
                     $RelacionLetras->save();
                 }
             }
             if ($finanzas['condicion']['id'] == 1) {
                 // AL CONTADO
                 $detallePago = new DetallePago();
                 $detallePago->id_comprobanteCompra = $id_cabecera;
                 $detallePago->id_condicion_pago = $finanzas['condicion']['id'];
                 $detallePago->id_medio_pago = $finanzas['medio']['id'];
                 $detallePago->id_estado_letra = 6;
                 $detallePago->numero_dias = null;
                 $detallePago->numero_letra = null;
                 $detallePago->monto_letra = null;
                 $detallePago->fecha_vencimiento = null;
                 $detallePago->detalle_estado = null;
                 $detallePago->save();
             }
             DB::commit();
             return \Response::json(array('datos' => 'correcto'));
         }
     } catch (Exception $e) {
         DB::rollBack();
     }
     // });
 }
Esempio n. 12
0
 /**
  * Devuelve todos los productos ordenados alfabeticamente.
  * @return Array
  */
 public function leerTodos()
 {
     return Producto::find()->orderBy("producto")->all();
 }
Esempio n. 13
0
use yii\helpers\ArrayHelper;
use kartik\widgets\Select2;
use kartik\money\MaskMoney;
/* @var $this yii\web\View */
/* @var $model app\models\Entrada */
/* @var $form yii\widgets\ActiveForm */
?>

<div class="entrada-form">

    <?php 
$form = ActiveForm::begin();
?>

    <?php 
echo $form->field($model, 'producto_idProducto')->widget(Select2::classname(), ['data' => ArrayHelper::map(Producto::find()->all(), 'idProducto', 'producto'), 'options' => ['placeholder' => 'Seleccione une opción'], 'pluginOptions' => ['allowClear' => true]]);
?>

    <?php 
echo $form->field($model, 'cantidad')->textInput();
?>

    <div class="form-group">
        <?php 
echo Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']);
?>
    </div>

    <?php 
ActiveForm::end();
?>
 public function obtenerMiCalendario($productoId)
 {
     $producto = Producto::find($productoId);
     if (is_null($producto)) {
         $code = 1;
         $message = "El producto no existe";
         $citasArray = array();
     } else {
         $citas = Auth::user()->Citas()->whereProducto_id($producto->id)->get();
         $code = 0;
         $message = "OK";
         $citasArray = $citas->toArray();
     }
     return response()->json(["success" => true, "code" => $code, "message" => $message, "citas" => $citasArray]);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     //
     $guiasalida = Producto::find($id);
     $guiasalida->delete();
     return \Response::json(array('datos' => Producto::with(['UnidadMedida'])->get()));
 }
 public function guardarCitaUnica(Request $request)
 {
     $producto = Producto::find($request->input('producto_id'));
     if (is_null($producto)) {
         App::abort(404);
     }
     $user = User::find(Auth::user()->id);
     $fechaCarbon = Carbon::createFromFormat("Y-m-d", $request->input('fecha'));
     $dia_cita = $fechaCarbon->dayOfWeek;
     $horaFormatHM = substr($request->input('hora'), 0, 5);
     $horario = Horario::whereNombre($horaFormatHM)->first();
     if (is_null($horario)) {
         return \Redirect::back()->with('error', 'Ocurrió un error con la fecha.');
     }
     $hora_cita = $horario->id;
     $cita = new Cita();
     $cita->user_id = Auth::user()->id;
     $cita->producto_id = $request->input('producto_id');
     $cita->fecha = $request->input('fecha');
     $cita->hora = $request->input('hora');
     $cita->dia_id = $dia_cita;
     $cita->hora_id = $hora_cita;
     $cita->save();
     //ponemos el producto configurado.
     $productoUser = Producto::find($request->input('producto_id'))->Usuarios()->updateExistingPivot(Auth::user()->id, array('configurado' => 2));
     $this->enviarCalendarioPorMail($producto, $user);
     return \Redirect("misproductos/ver/" . $request->input('producto_id'));
 }
 protected function saveOrder($producto_id)
 {
     $producto = Producto::find($producto_id);
     if (is_null($producto)) {
         App::abort(404);
     }
     $user = User::find(Auth::user()->id);
     $configurado = $producto->con_citas == 1 ? 1 : 0;
     $user->Productos()->attach($producto->id, array('precio' => $producto->precio, 'estatus' => 'Exito', 'configurado' => $configurado));
     $this->sendMailConfirmation($producto, $user);
 }
 public function configurar($id)
 {
     $producto = Producto::find($id);
     $user_producto = $producto->Usuarios()->whereUser_id(Auth::user()->id)->first();
     if (is_null($producto)) {
         App::abort(404);
     }
     if ($user_producto->pivot->configurado != 1) {
         return Redirect::route('mis_productos', array($producto->id));
     } else {
         return view('configurar_producto', compact('producto'));
     }
 }